Mercurial > repos > jdv > nanopolish
annotate nanopolish_index.pl @ 12:f64b148e6189 draft default tip
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
author | jdv |
---|---|
date | Fri, 09 Mar 2018 21:56:08 -0500 |
parents | 32cb27adeb34 |
children |
rev | line source |
---|---|
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
1 #!/usr/bin/env perl |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
2 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
3 use strict; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
4 use warnings; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
5 use 5.012; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
6 |
12
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
7 use autodie; |
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
8 |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
9 use Cwd qw/getcwd abs_path/; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
10 use File::Copy qw/copy/; |
12
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
11 use File::Temp qw/tempdir/; |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
12 use Getopt::Long qw/:config pass_through/; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
13 use threads; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
14 use threads::shared; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
15 use BioX::Seq::Stream; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
16 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
17 my $fn_link = 'reads'; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
18 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
19 my $fn_fast5; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
20 my $fn_reads; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
21 my $fn_outfile; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
22 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
23 # parse genome filename and add back to arg stack |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
24 GetOptions( |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
25 'fast5=s' => \$fn_fast5, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
26 'reads=s' => \$fn_reads, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
27 'outfile=s' => \$fn_outfile, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
28 ); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
29 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
30 my $ret; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
31 |
12
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
32 my $cwd = abs_path( getcwd() ); |
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
33 |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
34 $fn_fast5 = abs_path($fn_fast5); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
35 $fn_reads = abs_path($fn_reads); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
36 $fn_outfile = abs_path($fn_outfile); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
37 |
12
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
38 my $tmpdir = tempdir( CLEANUP => 1 ); |
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
39 |
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
40 chdir $tmpdir; |
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
41 |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
42 # extract FAST5 files to path where they are expected |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
43 my $fast5_dir = 'fast5'; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
44 if (-e $fast5_dir) { |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
45 warn "$fast5_dir exists, won't overwrite"; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
46 exit; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
47 } |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
48 mkdir $fast5_dir; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
49 chdir $fast5_dir; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
50 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
51 # use system 'tar' to transparently and safely handle absolute paths |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
52 $ret = system( |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
53 'tar', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
54 '-xf', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
55 $fn_fast5 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
56 ); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
57 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:
diff
changeset
|
58 if ($ret); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
59 |
12
f64b148e6189
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit ba4c46d7717e3acd346c9c6bf0bbc9bbecccc190
jdv
parents:
7
diff
changeset
|
60 chdir $tmpdir; |
7
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
61 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
62 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:
diff
changeset
|
63 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:
diff
changeset
|
64 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
65 # index reads |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
66 $ret = system( |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
67 'nanopolish', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
68 'index', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
69 '--directory' => $fast5_dir, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
70 $fn_link, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
71 ); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
72 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:
diff
changeset
|
73 if ($ret); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
74 |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
75 my @idx_fns = glob "$fn_link.*"; |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
76 $ret = system( |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
77 'tar', |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
78 '-cf' => $fn_outfile, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
79 @idx_fns, |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
80 ); |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
81 die "Failed tarball creation: $!\n" |
32cb27adeb34
planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 2dabc22c3707cc87100b094b25705160b842e9f9-dirty
jdv
parents:
diff
changeset
|
82 if ($ret); |