annotate rapsodyn/mpileupfilteronblastxml.pl @ 15:b65abe3ecda1 draft

Uploaded
author mcharles
date Wed, 20 Aug 2014 12:17:41 -0400
parents ad321ff1b67d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
1 #!/usr/bin/perl
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
2 use strict;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
3 use warnings;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
4 use Getopt::Long;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
5
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
6 my $input_variant_file;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
7 my $input_blastxml_file;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
8 my $window_length = 50;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
9 my $nb_mismatch_max = 2;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
10
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
11 GetOptions (
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
12 "input_variant_file=s" => \$input_variant_file,
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
13 "input_blastxml_file=s" => \$input_blastxml_file,
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
14 "window_length=i" => \$window_length,
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
15 "nb_mismatch_max=i" => \$nb_mismatch_max
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
16 ) or die("Error in command line arguments\n");
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
17
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
18
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
19 open(INB, $input_blastxml_file) or die ("Can't open $input_blastxml_file\n");
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
20
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
21
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
22 my $iteration_stop="</Iteration>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
23 my $hit_stop="</Hit>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
24 my $hsp_stop="</Hsp>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
25 my $query_flag_start="<Iteration_query-def>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
26 my $query_flag_stop="</Iteration_query-def>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
27 my $subject_flag_start="<Hit_def>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
28 my $subject_flag_stop="</Hit_def>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
29 my $query_HSP_flag_from_start="<Hsp_query-from>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
30 my $query_HSP_flag_from_stop="</Hsp_query-from>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
31 my $query_HSP_flag_to_start="<Hsp_query-to>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
32 my $query_HSP_flag_to_stop="</Hsp_query-to>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
33 my $subject_HSP_flag_from_start="<Hsp_hit-from>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
34 my $subject_HSP_flag_from_stop="</Hsp_hit-from>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
35 my $subject_HSP_flag_to_start="<Hsp_hit-to>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
36 my $subject_HSP_flag_to_stop="</Hsp_hit-to>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
37 my $query_HSP_flag_seq_start="<Hsp_qseq>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
38 my $query_HSP_flag_seq_stop="</Hsp_qseq>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
39 my $subject_HSP_flag_seq_start="<Hsp_hseq>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
40 my $subject_HSP_flag_seq_stop="</Hsp_hseq>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
41 my $HSP_midline_flag_start="<Hsp_midline>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
42 my $HSP_midline_flag_stop="</Hsp_midline>";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
43
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
44 my %hash;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
45
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
46 my $compt=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
47 my $current_query="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
48 my $current_subject="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
49 my $current_HSP_query_from;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
50 my $current_HSP_query_to;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
51 my $current_HSP_subject_from;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
52 my $current_HSP_subject_to;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
53 my $current_HSP_midline;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
54 my $current_HSP_qseq;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
55 my $current_HSP_hseq;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
56 my $current_query_short;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
57
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
58 while (my $ligne = <INB>) {
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
59
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
60 if ($ligne=~/$subject_flag_start(.*?)$subject_flag_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
61 $current_subject=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
62 #print "--",$1,"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
63 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
64
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
65 if ($ligne=~/$query_flag_start(.*?)$query_flag_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
66 $current_query=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
67 $current_query_short=$current_query;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
68 if ($current_query =~ /^(.*?_\d+)\_/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
69 $current_query_short=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
70 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
71 if (!$hash{$current_query_short}){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
72 $hash{$current_query_short}=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
73 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
74
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
75
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
76 #print "--",$1,"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
77 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
78 if ($ligne=~/$query_HSP_flag_from_start(.*?)$query_HSP_flag_from_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
79 $current_HSP_query_from=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
80 #print "--",$1,"...";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
81 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
82 if ($ligne=~/$query_HSP_flag_to_start(.*?)$query_HSP_flag_to_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
83 $current_HSP_query_to=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
84 #print $1,"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
85 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
86 if ($ligne=~/$subject_HSP_flag_from_start(.*?)$subject_HSP_flag_from_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
87 $current_HSP_subject_from=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
88 #print "--",$1,"...";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
89 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
90 if ($ligne=~/$subject_HSP_flag_to_start(.*?)$subject_HSP_flag_to_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
91 $current_HSP_subject_to=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
92 #print $1,"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
93 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
94 if ($ligne=~/$query_HSP_flag_seq_start(.*?)$query_HSP_flag_seq_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
95 $current_HSP_qseq=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
96 #print "--",$1,"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
97 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
98 if ($ligne=~/$subject_HSP_flag_seq_start(.*?)$subject_HSP_flag_seq_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
99 $current_HSP_hseq=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
100 #print "--",$1,"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
101 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
102 if ($ligne=~/$HSP_midline_flag_start(.*?)$HSP_midline_flag_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
103 $current_HSP_midline=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
104 #print "--",$1,"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
105 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
106
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
107 if ($ligne=~/$hsp_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
108 if ($current_HSP_query_from){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
109 #print "\ntest1\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
110 #print "Query : $current_query\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
111 #print "Subject : $current_subject\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
112 #print "$current_HSP_query_from ... $current_HSP_query_to\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
113 #print "$current_HSP_subject_from ... $current_HSP_subject_to\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
114 for (my $i=1;$i<$current_HSP_query_from;$i++){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
115 $current_HSP_qseq = "N".$current_HSP_qseq;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
116 $current_HSP_midline = " ".$current_HSP_midline;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
117 $current_HSP_hseq = "N".$current_HSP_hseq;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
118 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
119 for (my $i=$current_HSP_query_to+1;$i<=$window_length*2+1;$i++){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
120 $current_HSP_qseq .= "N";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
121 $current_HSP_midline .= " ";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
122 $current_HSP_hseq .= "N";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
123 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
124
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
125 my @qseq = split(//,$current_HSP_qseq);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
126 my @midline = split(//,$current_HSP_midline);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
127 my @hseq = split(//,$current_HSP_hseq);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
128
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
129 my $comptbase=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
130 my $compt5p=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
131 my $compt3p=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
132 for (my $i=0;$i<=$#qseq;$i++){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
133 if ($qseq[$i] ne "-"){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
134 $comptbase++; # Va de 1 -> $window_length *2 +1
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
135 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
136 if ($midline[$i] eq " "){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
137 if ($comptbase<=$window_length){ #1 -> $window_length
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
138 $compt5p++;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
139 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
140 elsif ($comptbase>=$window_length+2){ #$window_length+2 -> $window_length *2 + 1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
141 $compt3p++;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
142 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
143 else { #+1-$window_length*2+1
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
144
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
145 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
146 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
147 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
148 if (($compt3p<=$nb_mismatch_max)||($compt5p<=$nb_mismatch_max)){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
149 $hash{$current_query_short}++;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
150 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
151
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
152 #print "$current_HSP_qseq\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
153 #print "$current_HSP_midline\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
154 #print "$current_HSP_hseq\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
155 #print "$compt5p // $compt3p\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
156 #print $hash{$current_query_short},"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
157
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
158 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
159
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
160 undef $current_HSP_query_from;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
161 undef $current_HSP_query_to;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
162 undef $current_HSP_subject_from;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
163 undef $current_HSP_subject_to;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
164 $current_HSP_midline="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
165 $current_HSP_qseq="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
166 $current_HSP_hseq="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
167 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
168
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
169 if ($ligne=~/$iteration_stop/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
170 if ($current_HSP_query_from){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
171 #print "\ntest2\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
172 #print "Query : $current_query\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
173 #print "Subject : $current_subject\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
174 #print "$current_HSP_query_from ... $current_HSP_query_to\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
175 #print "$current_HSP_subject_from ... $current_HSP_subject_to\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
176 for (my $i=1;$i<$current_HSP_query_from;$i++){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
177 $current_HSP_qseq = "N".$current_HSP_qseq;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
178 $current_HSP_midline = " ".$current_HSP_midline;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
179 $current_HSP_hseq = "N".$current_HSP_hseq;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
180 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
181 for (my $i=$current_HSP_query_to+1;$i<=$window_length*2+1;$i++){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
182 $current_HSP_qseq .= "N";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
183 $current_HSP_midline .= " ";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
184 $current_HSP_hseq .= "N";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
185 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
186
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
187 my @qseq = split(//,$current_HSP_qseq);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
188 my @midline = split(//,$current_HSP_midline);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
189 my @hseq = split(//,$current_HSP_hseq);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
190
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
191 my $comptbase=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
192 my $compt5p=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
193 my $compt3p=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
194 for (my $i=0;$i<=$#qseq;$i++){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
195 if ($qseq[$i] ne "-"){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
196 $comptbase++; # Va de 1 -> $window_length *2 +1
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
197 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
198 if ($midline[$i] eq " "){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
199 if ($comptbase<=$window_length){ #1 -> $window_length
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
200 $compt5p++;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
201 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
202 elsif ($comptbase>=$window_length+2){ #$window_length+2 -> $window_length *2 + 1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
203 $compt3p++;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
204 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
205 else { #+1-$window_length*2+1
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
206
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
207 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
208 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
209 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
210 if (($compt3p<=$nb_mismatch_max)||($compt5p<=$nb_mismatch_max)){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
211 $hash{$current_query_short}++;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
212 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
213
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
214 #print "$current_HSP_qseq\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
215 #print "$current_HSP_midline\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
216 #print "$current_HSP_hseq\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
217 #print "$compt5p // $compt3p\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
218 #print $hash{$current_query_short},"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
219 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
220 $current_query="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
221 $current_query_short="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
222 $current_subject="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
223 undef $current_HSP_query_from;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
224 undef $current_HSP_query_to;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
225 undef $current_HSP_subject_from;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
226 undef $current_HSP_subject_to;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
227 $current_HSP_midline="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
228 $current_HSP_qseq="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
229 $current_HSP_hseq="";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
230 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
231
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
232 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
233
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
234 close (INB);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
235
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
236 # foreach my $key (sort trinombre keys %hash){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
237 # print $key," ",$hash{$key},"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
238
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
239 # }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
240 # exit(0);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
241
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
242 open(INV, $input_variant_file) or die ("Can't open $input_variant_file\n");
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
243
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
244 while (my $ligne = <INV>) {
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
245 my @champs = split (/\s+/,$ligne);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
246 my $header = $champs[0]."_".$champs[1];
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
247
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
248 if ($hash{$header}){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
249 if ($hash{$header}==1){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
250 print "$ligne";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
251 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
252 else {
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
253 #print $hash{$header}," $ligne";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
254 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
255 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
256 else {
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
257 print STDERR "No blast result for ",$header,"\n";
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
258 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
259
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
260
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
261 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
262
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
263 close(INV);
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
264
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
265
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
266
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
267 sub trinombre {
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
268 my $chra=$a;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
269 my $posa=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
270 my $chrb=$b;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
271 my $posb=0;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
272
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
273 if ($a =~/(.*?)\_(\d+)/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
274 $chra=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
275 $posa=$2;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
276 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
277 if ($b =~/(.*?)\_(\d+)/){
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
278 $chrb=$1;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
279 $posb=$2;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
280 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
281
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
282
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
283 $chra cmp $chrb
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
284 ||
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
285 $posa <=> $posb;
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
286 }
ad321ff1b67d Uploaded
mcharles
parents:
diff changeset
287