annotate nanopolish_variants.pl @ 3:a1d433401bc2 draft

planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
author jdv
date Sat, 14 Oct 2017 00:05:43 -0400
parents 2136c2725fc4
children bdd6c1ab07c5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 Archive::Tar;
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
8 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
9 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
10 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
11 use threads;
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
12 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
13 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
14
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
15 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
16 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
17 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
18 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
19 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
20 my $fn_reads;
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,
0
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
32 );
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 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
35 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
36
3
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
37 $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
38
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
39 # extract FAST5 files to path where they are expected
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
40 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
41 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
42 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
43 chdir $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
44 my $tar = Archive::Tar->new();
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
45 $tar->read($fn_fast5);
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
46 $tar->extract();
3
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
47 say "done extracting $fn_fast5 here";
0
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
48 chdir $cwd;
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
49
3
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
50
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
51 # index reads
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
52 my $ret = system(
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
53 'nanopolish',
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
54 'index',
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
55 '--directory' => $fast5_dir,
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
56 $fn_reads,
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
57 );
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
58 die "Failed nanopolish indexing: $!\n"
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
59 if ($ret);
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
60
0
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
61 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
62 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
63 push @cmd, '--genome', $fn_genome;
3
a1d433401bc2 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit e9238df905c413aaab086ea146cb1b97e3ffa0fd
jdv
parents: 0
diff changeset
64 push @cmd, '--reads', $fn_reads;
0
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
65
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
66 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
67
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
68 # 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
69 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
70 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
71 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
72 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
73 );
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
74 }
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
75
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
76 my @workers;
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
77 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
78 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
79 }
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
80
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
81 $_->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
82
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
83 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
84 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
85
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
86 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
87 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
88 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
89 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
90 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
91 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
92 }
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
93 close $in;
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
94 }
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
95 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
96
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
97 # 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
98 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
99 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
100 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
101 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
102 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
103 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
104 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
105 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
106 }
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
107 close $in;
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
108 }
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
109 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
110
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
111
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
112 sub run {
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
113
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
114 LOOP:
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
115 while (1) {
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 my $tag;
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 {
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
120 lock @regions;
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
121 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
122 $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
123 }
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
124
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
125 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
126 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
127
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
128 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
129 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
130 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
131 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
132
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
133 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
134
2136c2725fc4 planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
jdv
parents:
diff changeset
135 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
136 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
137 if ($ret);
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 }
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 }