annotate GENEO_VINYL.R @ 3:221db2eb3c8e draft default tip

Uploaded
author elixir-it
date Wed, 22 Jul 2020 19:23:14 +0000
parents 6e4eb4856874
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
1 #!/usr/bin/env Rscript
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
2 args <- commandArgs(trailingOnly = TRUE)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
3 file1=args[1]
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
4 file2=args[2]
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
5 config=args[3]
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
6 minsV=as.vector(as.integer(unlist(strsplit(args[4], split=" "))))
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
7 maxV=as.vector(as.integer(unlist(strsplit(args[5], split=" "))))
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
8 ofile=args[6]
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
9
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
10 header=c("disease_clinvar","score_AF","score_functional","score_NS","score_nIND","scoreeQTL","scoreG","scoreT","scoreM","scoreR","scoreSP","scoreGW","survP","totP","survA","totA","p-value","ratio","score");
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
11
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
12 cat(paste(header,collapse="\t"),"\n",file=ofile,append=T);
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
13 evalVINYL=function(x)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
14 {
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
15
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
16 scoreN=c("-disease_clinvar","-score_AF","-score_functional",
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
17 "-score_NS","-score_nIND","-scoreeQTL",
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
18 "-scoreG","-scoreT","-scoreM",
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
19 "-scoreR","-scoreSP","-scoreGW")
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
20
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
21 params=unlist(paste(scoreN,x,sep=" ",collapse=" "))
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
22 onameprefix=as.integer(runif(1)*10000000)#paste(x,collapse="_");
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
23 oname_files1=unlist(paste(c("-ofile","-ovcfile","-osummary"),
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
24 paste(rep(file1,3), rep(onameprefix,3), c("ofile","ovcfile","osummary"),sep="."),sep=" ",collapse=" "))
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
25 oname_files2=unlist(paste(c("-ofile","-ovcfile","-osummary"),
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
26 paste(rep(file2,3), rep(onameprefix,3), c("ofile","ovcfile","osummary"),sep="."),sep=" ",collapse=" "))
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
27
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
28 command1=paste("perl ./score_complete_alt_M.pl -vcf",file1,config,params,oname_files1,sep=" ",collapse=" ")#,oname_files1)#,config)#,params)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
29 command2=paste("perl ./score_complete_alt_M.pl -vcf",file2,config,params,oname_files2,sep=" ",collapse=" ")#,oname_files2)#,config)#,params)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
30 Res1=system(command1,intern=FALSE)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
31 Res2=system(command2,intern=FALSE)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
32 fileR=paste(file1,onameprefix,"ofile",sep=".",collapse="")
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
33 fileT=paste(file2,onameprefix,"ofile",sep=".",collapse="")
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
34
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
35 data_R=read.table(fileR,header=T)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
36 data_T=read.table(fileT,header=T)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
37 range= rev(seq(min(data_R$VINYL_score),max(data_R$VINYL_score),0.5))
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
38 m=matrix(ncol=2,nrow=2)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
39 totR=nrow(data_R)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
40 totT=nrow(data_T)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
41 score=0;
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
42 surv1=0;
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
43 surv2=0;
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
44 rat=0;
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
45 pval=1;
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
46 for (r in range)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
47 {
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
48 posR=sum(data_R$VINYL_score>=r);
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
49 posT=sum(data_T$VINYL_score>=r)+1;
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
50 m[,1]=c(posR,totR);
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
51 m[,2]=c(posT,totT);
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
52
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
53 F=fisher.test(m,alternative="greater")
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
54 Fpv=F$p.value
3
221db2eb3c8e Uploaded
elixir-it
parents: 2
diff changeset
55 Fodds=F$estimate
0
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
56 localScore=0.5*-log10(Fpv)+0.3*Fodds-0.2*posT #+0.175*posR-0.125*posT
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
57 if (localScore>score)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
58 {
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
59
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
60 score=localScore
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
61 pval=Fpv
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
62 rat=Fodds
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
63 surv1=posR
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
64 surv2=posT
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
65
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
66 }
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
67
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
68 }
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
69 Command=system("rm *.ofile *.ovcfile *.osummary",intern=FALSE)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
70 outV=paste(round(x,digits=2),collapse="\t");
3
221db2eb3c8e Uploaded
elixir-it
parents: 2
diff changeset
71 if (surv1>60)
221db2eb3c8e Uploaded
elixir-it
parents: 2
diff changeset
72 {
221db2eb3c8e Uploaded
elixir-it
parents: 2
diff changeset
73 surv1=62;
221db2eb3c8e Uploaded
elixir-it
parents: 2
diff changeset
74 }
0
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
75 cat(paste(outV,surv1,totR,surv2,totT,pval,rat,score,"\n",sep="\t"),file=ofile,append=T);
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
76 return(score*-1);
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
77 }
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
78 library(genalg)
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
79
3
221db2eb3c8e Uploaded
elixir-it
parents: 2
diff changeset
80 G=rbga(stringMin=minsV,stringMax=maxV,popSize=50,iters=50,evalFunc=evalVINYL)
0
4c6529d120c3 Uploaded
elixir-it
parents:
diff changeset
81 #cat(summary(G),file=ofile,append=T)