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