annotate old_version/optimizer.pl @ 2:6e4eb4856874 draft

Uploaded
author elixir-it
date Wed, 22 Jul 2020 19:20:30 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
1 #!/usr/bin/perl -w
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
2 use Cwd;
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
3
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
4 %arguments=
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
5 (
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
6 "fileR"=>"", #file: vcf file of affected individuals
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
7 "fileC"=>"", #file: vcf file of unaffected individuals
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
8 "ofile"=>"", #name: name of the output files
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
9 "AD"=>"T",
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
10 "XL"=>"F", #
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
11 "disease_clinvar"=>[4,6], #numeric mandadory, multiple values
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
12 "score_AF"=>[2,4], #numeric mandatory, multiple values
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
13 "score_functional"=>[4,6], #numeric mandatory, multiple values
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
14 "score_NS"=>[2,4], #numeric mandatory, multiple values
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
15 "score_nIND"=>[2,4], #numeric mandatory, multiple values
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
16 "scoreeQTL"=>[2,4], #numeric mandatory, multiple values
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
17 "scoreG"=>[3,5], #numeric mandatory, multiple values
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
18 "scoreI"=>[1..3],
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
19 "disease"=>"", #name optional
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
20 "similarD"=>"", #file optional
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
21 "lgenes"=>"", #file optional
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
22 "leQTL"=>"qfile", #file mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
23 "keywords"=>"kfile", #file mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
24 "effects"=>"efile", #file mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
25 "ifile"=>"inter_Hs.file"
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
26 "nind"=>5,
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
27 "AF"=>0.0001
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
28 );
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
29
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
30 @arguments=@ARGV;
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
31 for ($i=0;$i<=$#ARGV;$i+=2)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
32 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
33 $act=$ARGV[$i];
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
34 $act=~s/-//g;
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
35 $val=$ARGV[$i+1];
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
36 if (exists $arguments{$act})
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
37 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
38 unless ($val=~/\:/)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
39 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
40 $arguments{$act}=$val;
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
41 }else{
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
42 ($s,$e)=(split(/\:/,$val));
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
43 @vls=();
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
44 print "$s $e\n";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
45 for ($I=$s;$I<=$e;$I++)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
46 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
47 push(@vls,$I);
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
48 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
49 print "@vls\n";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
50 $arguments{$act}=\@vls;
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
51 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
52 }else{
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
53 warn("$act: unknown argument\n");
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
54 @valid=keys %arguments;
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
55 warn("Valid arguments are @valid\n");
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
56 die("All those moments will be lost in time, like tears in rain.\n Time to die!\n");
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
57 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
58 #print "$act $val\n";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
59 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
60
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
61 %compose_ARG=
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
62 (
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
63 "disease"=>1, #name optional
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
64 "similarD"=>1, #file optional
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
65 "lgenes"=>1, #file optional
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
66 "leQTL"=>1, #file mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
67 "keywords"=>1, #file mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
68 "effects"=>1, #file
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
69 "AF"=>1,
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
70 "nind"=>1,
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
71 "AD"=>1,
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
72 "XL"=>1,
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
73 "ifile"=>1
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
74
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
75 );
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
76
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
77 $dir=getcwd();
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
78 print "$dir\n";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
79 $add_string=" ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
80
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
81 foreach $a (keys %compose_ARG)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
82 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
83 $add_string.="-$a $arguments{$a} " if $arguments{$a} ne "";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
84 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
85
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
86 #print "$add_string";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
87
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
88
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
89 @DC=@{$arguments{"disease_clinvar"}}; #=>[2..8], #numeric mandadory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
90 @AF=@{$arguments{"score_AF"}}; #numeric mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
91 @FUN=@{$arguments{"score_functional"}}; #=>[2..8], #numeric mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
92 @NS=@{$arguments{"score_NS"}}; #=>[2..8], #numeric mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
93 @NI=@{$arguments{"score_nIND"}}; #=>[2..8], #numeric mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
94 @Q=@{$arguments{"scoreeQTL"}}; #numeric mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
95 @G=@{$arguments{"scoreG"}}; #=>[1..3], #numeric mandatory, but default value
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
96 @I=@{$arguments{"scoreI"}};
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
97
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
98 $Rfile=$arguments{"fileR"};
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
99 $Tfile=$arguments{"fileC"};
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
100 $Ofile=$arguments{"ofile"};
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
101 open(O,">$Ofile");
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
102 print O "disease_clinvar\tscore_AF\tscore_functional\tscore_NS\tscore_nIND\tscoreeQTL\tscoreG\tCut_off\tPosD\tPosH\tPvalue\tFold_change\n";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
103 $commandR="perl $dir/score_complete_alt_M.pl -vcf $dir/$Rfile -ofile $dir/R.csv -ovcfile $dir/R.vcf $add_string";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
104 $commandT="perl $dir/score_complete_alt_M.pl -vcf $dir/$Tfile -ofile $dir/T.csv -ovcfile $dir/T.vcf $add_string";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
105
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
106
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
107 foreach $dc (@DC)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
108 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
109
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
110 foreach $af (@AF)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
111 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
112
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
113 foreach $fun (@FUN)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
114 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
115
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
116 foreach $ns (@NS)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
117 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
118
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
119 foreach $ni (@NI)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
120 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
121
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
122
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
123 foreach $Q (@Q)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
124 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
125 foreach $G (@G)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
126 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
127 foreach $I (@I)
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
128 {
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
129 $commandR.="-score_AF $af ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
130 $commandT.="-score_AF $af ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
131 $commandR.="-score_functional $fun ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
132 $commandT.="-score_functional $fun ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
133 $commandR.="-score_NS $ns ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
134 $commandT.="-score_NS $ns ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
135 $commandR.="-score_nIND $ni ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
136 $commandT.="-score_nIND $ni ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
137 $commandR.="-scoreeQTL $Q ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
138 $commandT.="-scoreeQTL $Q ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
139 $commandR.="-disease_clinvar $dc ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
140 $commandT.="-disease_clinvar $dc ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
141 $commandR.="-scoreG $G ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
142 $commandT.="-scoreG $G ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
143 $commandR.="-scoreI $I ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
144 $commandT.="-scoreI $I ";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
145
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
146 #print "$commandR\n$commandT\n";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
147 system($commandR)==0||die("Non giro Rfile");
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
148 system($commandT)==0||die("Non giro Tfile");
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
149 $commandR="perl $dir/score_complete_alt_M.pl -vcf $dir/$Rfile -ofile $dir/R.csv -ovcfile $dir/R.vcf $add_string";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
150 $commandT="perl $dir/score_complete_alt_M.pl -vcf $dir/$Tfile -ofile $dir/T.csv -ovcfile $dir/T.vcf $add_string";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
151
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
152 $r=`Rscript --vanilla $dir/survival_optM.R $dir/R.csv $dir/T.csv`;
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
153
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
154 print O "$dc\t$af\t$fun\t$ns\t$ni\t$Q\t$G\t$r\n";
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
155 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
156 #die();
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
157 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
158 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
159 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
160 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
161 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
162 }
6e4eb4856874 Uploaded
elixir-it
parents:
diff changeset
163 }