comparison 2.4/src/Annotate_SoftSearch.pl @ 16:8eb7d93f7e58 draft

Uploaded
author plus91-technologies-pvt-ltd
date Sat, 31 May 2014 11:23:36 -0400
parents e3609c8714fb
children
comparison
equal deleted inserted replaced
15:da93b6f4d684 16:8eb7d93f7e58
1 #!/usr/bin/perl
2 open(VCF,"$ARGV[0]")||die "Usage: <VCF> <Annotation.bed>\n\n\t\t The annotation BED should be of exons\n";
3
4 $bedtools=`which intersectBed`;
5 if(!$bedtools){die "Requires Bedtools in path\n\n"}
6 if(!$ARGV[1]){die "Usage: <VCF> <Annotation.bed>\n\n";}
7
8 while (<VCF>){
9 if($_=~/^#/){print;next}
10 chomp;
11 @data=split(/\t/,$_);
12 #Get left pair information
13 $chr1=$data[0];
14 $pos1a=$data[1]-1;
15 $pos1b=$data[1];
16 #Get right pair information
17 $data[4]=~s/[ACTGactghr\[\]]//g;#$data[4]=~s/hr/chr/;
18 @pos2=split(/:/,$data[4]);
19 $chr2="chr";
20 $chr2.=$pos2[0];
21 $pos2a=$pos2[1]-1;
22 $pos2b=$pos2[1];
23 #Now get left side annotations
24 #
25 #print "LEFT=get_anno($chr1,$pos1a,$pos1b)\n";
26 $left_gene=get_anno($chr1,$pos1a,$pos1b);
27 #print "RIGHT=get_anno($chr2,$pos2a,$pos2b)\n";
28 $right_gene=get_anno($chr2,$pos2a,$pos2b);
29 print "$_\t$left_gene\t$right_gene\n";
30 }
31
32 close VCF;
33
34 sub get_anno(){
35 my ($chr,$pos1,$pos2)=@_;
36 $result=`perl -e 'if(($chr)&&($pos1)&&($pos2)){print join(\"\\t\",$chr,$pos1,$pos2,\"\\n\")}else {print STDERR "Not all variables defined: chr,pos1,pos2=$chr,$pos1,$pos2\n$_\n"}'|intersectBed -a $ARGV[1] -b stdin|cut -f4|head -1`;
37 $result=~chomp;$result=~s/\n//;
38 if(!$result){$result="NA"};
39 return $result;
40 }