Mercurial > repos > jdv > nanopolish
annotate nanopolish_variants.pl @ 7:32cb27adeb34 draft
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
author | jdv |
---|---|
date | Mon, 12 Feb 2018 00:58:10 -0500 |
parents | bdd6c1ab07c5 |
children | b437c0a7ca04 |
rev | line source |
---|---|
0
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
1 #!/usr/bin/env perl |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
2 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
3 use strict; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
4 use warnings; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
5 use 5.012; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
6 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
7 use Cwd qw/getcwd abs_path/; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
8 use File::Copy qw/copy/; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
9 use Getopt::Long qw/:config pass_through/; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
10 use threads; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
11 use threads::shared; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
12 use BioX::Seq::Stream; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
13 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
14 my $fn_genome; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
15 my $threads = 1; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
16 my $fn_outfile; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
17 my $fn_consensus; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
18 my $fn_fast5; |
3
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
19 my $fn_reads; |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
20 my $fn_index; |
0
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
21 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
22 # remember full command string (with proper binary) |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
23 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
24 # parse genome filename and add back to arg stack |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
25 GetOptions( |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
26 'genome=s' => \$fn_genome, |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
27 'threads=i' => \$threads, |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
28 'outfile=s' => \$fn_outfile, |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
29 'consensus=s' => \$fn_consensus, |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
30 'fast5=s' => \$fn_fast5, |
3
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
31 'reads=s' => \$fn_reads, |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
32 'index=s' => \$fn_index, |
0
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
33 ); |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
34 |
4
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
35 my $ret; |
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
36 |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
37 my $fn_link = 'reads'; |
0
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
38 my $tmp_dir = 'tmp_dir'; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
39 mkdir $tmp_dir; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
40 |
3
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
41 $fn_fast5 = abs_path($fn_fast5); |
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
42 |
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
43 # extract FAST5 files to path where they are expected |
4
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
44 # use system 'tar' to transparently and safely handle absolute paths |
3
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
45 my $fast5_dir = 'fast5'; |
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
46 mkdir $fast5_dir; |
0
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
47 my $cwd = abs_path( getcwd() ); |
3
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
48 chdir $fast5_dir; |
4
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
49 $ret = system( |
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
50 'tar', |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
51 '-xf', |
4
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
52 $fn_fast5 |
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
53 ); |
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
54 die "Failed to extract tarball: $!\n" |
bdd6c1ab07c5
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 83364d7d78ca5524a08065daef995bfcd54a379d
jdv
parents:
3
diff
changeset
|
55 if ($ret); |
0
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
56 chdir $cwd; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
57 |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
58 symlink( $fn_reads, $fn_link ) |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
59 or die "Failed to create symlink"; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
60 |
3
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
61 |
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
62 # index reads |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
63 if (defined $fn_index) { |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
64 $ret = system( |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
65 'tar', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
66 '-xf', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
67 $fn_index |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
68 ); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
69 die "Failed to extract tarball: $!\n" |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
70 if ($ret); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
71 } |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
72 else { |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
73 $ret = system( |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
74 'nanopolish', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
75 'index', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
76 '--directory' => $fast5_dir, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
77 $fn_link, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
78 ); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
79 die "Failed nanopolish indexing: $!\n" |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
80 if ($ret); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
81 } |
3
a1d433401bc2
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents:
0
diff
changeset
|
82 |
0
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
83 my @cmd = @ARGV; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
84 unshift @cmd, 'nanopolish'; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
85 push @cmd, '--genome', $fn_genome; |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
4
diff
changeset
|
86 push @cmd, '--reads', $fn_link; |
0
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
87 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
88 my @regions :shared; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
89 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
90 # build region tags to pass to nanopolish |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
91 my $parser = BioX::Seq::Stream->new($fn_genome); |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
92 while (my $seq = $parser->next_seq) { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
93 push @regions, join( ':', $seq->id, |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
94 join( '-', 1, length($seq) ), |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
95 ); |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
96 } |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
97 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
98 my @workers; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
99 for (1..$threads) { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
100 push @workers, threads->create(\&run); |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
101 } |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
102 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
103 $_->join() for (@workers); |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
104 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
105 my @fa_files = glob "$tmp_dir/*.fasta"; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
106 my @out_files = glob "$tmp_dir/*.vcf"; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
107 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
108 open my $out_cons, '>', $fn_consensus |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
109 or die "Failed to open output consensus: $!"; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
110 for (@fa_files) { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
111 open my $in, '<', $_; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
112 while (my $line = <$in>) { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
113 print {$out_cons} $line; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
114 } |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
115 close $in; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
116 } |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
117 close $out_cons; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
118 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
119 # we may need to do extra processing on VCF output |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
120 open my $out_vcf, '>', $fn_outfile |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
121 or die "Failed to open output file: $!"; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
122 for my $i (0..$#out_files) { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
123 my $v = $out_files[$i]; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
124 open my $in, '<', $v; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
125 while (my $line = <$in>) { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
126 next if ($line =~ /^\s*#/ && $i > 0); |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
127 print {$out_vcf} $line; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
128 } |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
129 close $in; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
130 } |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
131 close $out_vcf; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
132 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
133 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
134 sub run { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
135 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
136 LOOP: |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
137 while (1) { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
138 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
139 my $tag; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
140 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
141 { |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
142 lock @regions; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
143 last LOOP if (! scalar @regions); |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
144 $tag = shift @regions; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
145 } |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
146 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
147 my $fn_out = "$tmp_dir/$tag.vcf"; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
148 my $fn_cons = "$tmp_dir/$tag.fasta"; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
149 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
150 my @cmd_local = @cmd; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
151 push @cmd_local, '--window', $tag; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
152 push @cmd_local, '--outfile', $fn_out; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
153 push @cmd_local, '--consensus', $fn_cons; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
154 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
155 my $ret = system @cmd_local; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
156 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
157 my $cmd_string = join ' ', @cmd_local; |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
158 die "Non-zero exit value for command: $cmd_string\n" |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
159 if ($ret); |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
160 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
161 } |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
162 |
2136c2725fc4
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff
changeset
|
163 } |