Mercurial > repos > dereeper > haplophyle
annotate HaplophyleInBatch.pl @ 2:d6281dc90e20 draft default tip
Uploaded
author | dereeper |
---|---|
date | Wed, 09 Jun 2021 16:54:15 +0000 |
parents | 6f11162b6fa2 |
children |
rev | line source |
---|---|
0
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
1 #!/usr/bin/perl |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
2 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
3 use strict; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
4 use Switch; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
5 use Getopt::Long; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
6 use Bio::SeqIO; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
7 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
8 my $HAPLOPHYLE_EXE = "java -Xmx2048m -jar /usr/local/bioinfo/sniplay/Haplophyle/NetworkCreator_fat.jar"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
9 my $NEATO_EXE = "neato"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
10 my $CONVERT_EXE = "convert"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
11 my $RSCRIPT_EXE = "/usr/local/bioinfo/R/default/bin/Rscript"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
12 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
13 my $usage = qq~Usage:$0 <args> [<opts>] |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
14 where <args> are: |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
15 -i, --input <input> |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
16 <opts> |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
17 -r, --rscript <R scripts in zipfile> |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
18 ~; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
19 $usage .= "\n"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
20 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
21 my ($infile,$r_zip); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
22 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
23 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
24 GetOptions( |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
25 "input=s" => \$infile, |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
26 "rscript=s" => \$r_zip |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
27 ); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
28 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
29 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
30 die $usage |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
31 if ( !$infile); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
32 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
33 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
34 if (-e $r_zip) |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
35 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
36 system("unzip $r_zip"); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
37 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
38 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
39 my %inputs; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
40 my $gene; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
41 my $data = ""; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
42 open(my $I,$infile); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
43 while(<$I>) |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
44 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
45 if (/===(.*)===/) |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
46 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
47 $gene = $1; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
48 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
49 else |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
50 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
51 $inputs{$gene}.= $_; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
52 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
53 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
54 close($I); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
55 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
56 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
57 foreach my $gene(keys(%inputs)) |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
58 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
59 open(F,">$gene.distinct_haplo.fas"); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
60 print F $inputs{$gene}; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
61 close(F); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
62 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
63 my $input = "$gene.distinct_haplo.fas"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
64 my $outfile = "$gene.network.dot"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
65 my $out_png = "$gene.network.png"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
66 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
67 my $command = "$HAPLOPHYLE_EXE -in $input -out $outfile >> $gene.haplophyle.log 2>&1"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
68 system($command); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
69 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
70 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
71 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
72 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
73 open(OUTFILE,"$outfile"); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
74 open(OUTFILE2,">$outfile.vis"); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
75 print OUTFILE2 "var nodes = [\n"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
76 open(INFILE,"$input"); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
77 while(<INFILE>) |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
78 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
79 if (/>haplo(\d+)\|(\d+)/) |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
80 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
81 print OUTFILE2 "{id: $1, label: 'Haplo$1',shape:'image',radius:'$2'}\n"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
82 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
83 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
84 close(INFILE); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
85 print OUTFILE2 "];\n"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
86 print OUTFILE2 "var edges = [\n"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
87 my $n = 0; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
88 while(<OUTFILE>) |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
89 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
90 my $line = $_; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
91 if (/^haplo(\d+) -- haplo(\d+)/) |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
92 { |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
93 my $from = $1; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
94 my $to = $2; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
95 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
96 print OUTFILE2 "{from: $from, to: $to,length:'7',style: 'line',color:'black',},\n"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
97 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
98 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
99 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
100 close(OUTFILE); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
101 print OUTFILE2 "];\n"; |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
102 close(OUTFILE2); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
103 } |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
104 |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
105 system("zip networks.zip *network.dot"); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
106 #system("zip pies.zip *pie.eps"); |
6f11162b6fa2
planemo upload commit 11382afe87364aaafb19973470d5066229a6e34f
dereeper
parents:
diff
changeset
|
107 |