annotate mpagenomics_normalize-7dc6ce39fb89/segmentation.R @ 0:84b13b0e2b85

Uploaded
author sblanck
date Thu, 07 May 2015 08:22:36 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
1 args<-commandArgs(TRUE)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
2
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
3 input=args[1]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
4 tmp_dir=args[2]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
5 nbcall=as.numeric(args[3])
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
6 cellularity=as.numeric(args[4])
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
7 output=args[5]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
8 method=args[6]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
9 userId=args[7]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
10 signalType=args[8]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
11
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
12 library(MPAgenomics)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
13 workdir=file.path(tmp_dir, "mpagenomics",userId)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
14 setwd(workdir)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
15
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
16 CN=read.table(input,header=TRUE)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
17 uniqueChr=unique(CN$chromosome)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
18 drops=c("chromosome","position","probeName")
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
19 CNsignal=CN[,!(names(CN)%in% drops),drop=FALSE]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
20
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
21 samples=names(CNsignal)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
22
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
23 if (signalType=="CN")
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
24 {
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
25
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
26 result=data.frame(sampleNames=character(0),chrom=character(0),chromStart=numeric(0),chromEnd=numeric(0),probes=numeric(0),means=numeric(0),calls=character(0),stringsAsFactors=FALSE)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
27
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
28 for (chr in uniqueChr)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
29 {
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
30 currentSubset=subset(CN, chromosome==chr)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
31 currentPositions=currentSubset["position"]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
32 for (sample in samples)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
33 {
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
34 currentSignal=currentSubset[sample]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
35 if (length(which(!is.na(unlist(currentSignal))))>1)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
36 {
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
37 currentSeg=segmentation(signal=unlist(currentSignal),position=unlist(currentPositions),method=method)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
38 callobj= callingObject(copynumber=currentSeg$signal, segmented=currentSeg$segmented,chromosome=rep(chr,length(currentSeg$signal)), position=currentSeg$startPos,sampleNames=sample)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
39 currentCall=callingProcess(callobj,nclass=nbcall,cellularity=cellularity,verbose=TRUE)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
40 currentResult=currentCall$segment
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
41 currentResult["sampleNames"]=c(rep(sample,length(currentCall$segment$chrom)))
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
42 result=rbind(result,currentResult)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
43 }
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
44 }
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
45 }
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
46 finalResult=data.frame(sampleNames=result["sampleNames"],chrom=result["chrom"],chromStart=result["chromStart"],chromEnd=result["chromEnd"],probes=result["probes"],means=result["means"],calls=result["calls"],stringsAsFactors=FALSE)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
47 sink(output)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
48 print(format(finalResult))
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
49 sink()
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
50 #write.table(finalResult,output,row.names = FALSE, quote=FALSE, sep = "\t")
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
51 } else {
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
52 result=data.frame(sampleNames=character(0),chrom=character(0),start=numeric(0),end=numeric(0),points=numeric(0),means=numeric(0),stringsAsFactors=FALSE)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
53
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
54 for (chr in uniqueChr)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
55 {
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
56 cat(paste0("chromosome ",chr,"\n"))
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
57 currentSubset=subset(CN, chromosome==chr)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
58 currentPositions=currentSubset["position"]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
59 for (sample in samples)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
60 {
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
61 cat(paste0(" sample ",sample,"..."))
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
62 currentSignal=currentSubset[sample]
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
63 if (length(which(!is.na(unlist(currentSignal))))>1)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
64 {
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
65 currentSeg=segmentation(signal=unlist(currentSignal),position=unlist(currentPositions),method=method)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
66 currentResult=currentSeg$segment
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
67 currentResult["chrom"]=c(rep(chr,length(currentSeg$segment$means)))
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
68 currentResult["sampleNames"]=c(rep(sample,length(currentSeg$segment$means)))
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
69 result=rbind(result,currentResult)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
70
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
71 }
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
72 cat(paste0("OK\n"))
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
73 }
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
74 }
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
75 finalResult=data.frame(sampleNames=result["sampleNames"],chrom=result["chrom"],chromStart=result["start"],chromEnd=result["end"],probes=result["points"],means=result["means"],stringsAsFactors=FALSE)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
76 sink(output)
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
77 print(format(finalResult))
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
78 sink()
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
79 #write.table(finalResult,output,row.names = FALSE, quote=FALSE, sep = "\t")
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
80 }
84b13b0e2b85 Uploaded
sblanck
parents:
diff changeset
81