annotate qualityControl.R @ 103:e7115e44d8d8 draft default tip

Uploaded
author nicolas
date Mon, 31 Oct 2016 07:20:49 -0400
parents f818e787d0c0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
1 ########################################################
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
2 #
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
3 # creation date : 09/08/16
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
4 # last modification : 16/08/16
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
5 # author : Dr Nicolas Beaume
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
6 # owner : IRRI
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
7 #
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
8 ########################################################
39
f818e787d0c0 Uploaded
nicolas
parents: 12
diff changeset
9
12
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
10 #######################################################
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
11 dataStats.nbNA <- function(x) {
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
12 return(length(x[is.na(x)]))
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
13 }
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
14 dataStats.matrixSize <- function(data) {
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
15 nbMarker <- nrow(data)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
16 nbSample <- ncol(data)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
17 return(list(nbMarker=nbMarker, nbSample=nbSample))
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
18 }
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
19
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
20 parseFrq <- function(freqFile) {
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
21 data <- read.table(freqFile, h=T)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
22 return(data.frame(chr=data$CHR, pos=data$SNP, maf=data$MAF))
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
23 }
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
24
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
25 parseHWE <- function(hweFile) {
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
26 data <- read.table(hweFile, h=T)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
27 return(data.frame(chr=data$CHR, pos=data$SNP, pvalue=data$P))
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
28 }
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
29
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
30 ########################## main function ##################
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
31 createReport <- function(genoFile, freqFile, hweFile, out="report.txt") {
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
32 # get basic statistics (nb markers, nb samples, nb NA)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
33 data <- read.table(genoFile, sep="\t", h=T)
39
f818e787d0c0 Uploaded
nicolas
parents: 12
diff changeset
34 missingData <- dataStats.nbNA(data)/length(data)
12
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
35 dataDimension <- dataStats.matrixSize(data)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
36 # get MAF info
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
37 freq <- parseFrq(freqFile)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
38 # get Hardy-Weinberg equilibrium
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
39 hwe <- parseHWE(hweFile)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
40 # merge info
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
41 info <- data.frame(freq, hwe=hwe[,3])
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
42 # write report
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
43 write(paste("number of marker :", dataDimension$nbMarker), file=out)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
44 write(paste("number of sample :", dataDimension$nbSample), file=out, append = T)
39
f818e787d0c0 Uploaded
nicolas
parents: 12
diff changeset
45 write(paste("ratio of missing data :", missingData), file=out, append = T)
f818e787d0c0 Uploaded
nicolas
parents: 12
diff changeset
46 suppressWarnings(suppressMessages(write.table(info, file=out, append = T)))
12
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
47 }
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
48 ############################ main ##########################
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
49 cmd <- commandArgs(T)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
50 source(cmd[1])
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
51 createReport(genotype, plinkFreq, plinkHWE, out)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
52 # # get basic statistics (nb markers, nb samples, nb NA)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
53 # data <- read.table(genotype, sep="\t", h=T)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
54 # dataDimension <- dataStats.matrixSize(data)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
55 # # get MAF info
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
56 # freq <- parseFrq(freqFile)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
57 # # get Hardy-Weinberg equilibrium
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
58 # hwe <- parseHWE(hweFile)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
59 # # merge info
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
60 # info <- data.frame(freq, hwe=hwe[,3])
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
61 # # write report
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
62 # cat(paste("number of marker : ", dataDimension$nbMarker, "\n", sep=""))
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
63 # cat(paste("number of sample : ", dataDimension$nbSample, "\n", sep=""))
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
64 # print(info)
87f772c49a20 Uploaded
nicolas
parents:
diff changeset
65 # cat("\n")