annotate HaplophyleInBatch.pl @ 2:d6281dc90e20 draft default tip

Uploaded
author dereeper
date Wed, 09 Jun 2021 16:54:15 +0000
parents 6f11162b6fa2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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