changeset 0:2136c2725fc4 draft

planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit 0206b7bd377b39ad28592b0a02588f40575efd3e-dirty
author jdv
date Wed, 06 Sep 2017 12:15:45 -0400
parents
children a5db82bec597
files nanopolish_extract.py nanopolish_extract.xml nanopolish_variants.pl nanopolish_variants.xml test-data/test_data.fast5.tar.gz test-data/test_data.fastq
diffstat 6 files changed, 396 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nanopolish_extract.py	Wed Sep 06 12:15:45 2017 -0400
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+
+import sys, os
+import glob
+import tarfile
+import subprocess
+import shutil
+import h5py
+import numpy as np
+
+def main():
+    tar_file = sys.argv[1]
+    out_file = sys.argv[2]
+    threads  = sys.argv[3] # currently unused
+
+    extract_fast5(tar_file)
+
+    subprocess.call(["nanopolish",
+		"extract",
+		"--recurse",
+        "--fastq",
+        "--output", out_file,
+        "in_dir" ])
+
+def extract_fast5(fn):
+
+    try:
+        in_dir = "in_dir"
+        if not os.path.exists(in_dir):
+            os.makedirs(in_dir)
+
+        tar = tarfile.open(fn, mode='r')
+        tar.extractall(path=in_dir)
+
+        files = glob.glob(
+            os.path.join(in_dir, "**", "*.fast5"),
+            recursive=True
+        )
+        if len(files) < 1:
+            raise ValueError('No FAST5 files found')
+
+    except OSError as e:
+        print("Unexpected error:", e.strerror)
+        raise
+
+    except:
+        print("Unexpected error:", sys.exc_info()[0])
+        raise
+
+if __name__ == "__main__" :
+    main()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nanopolish_extract.xml	Wed Sep 06 12:15:45 2017 -0400
@@ -0,0 +1,86 @@
+<tool id="nanopolish_extract" name="Nanopolish::extract" version="0.7.2">
+
+    <description>FAST5 to FASTQ/A extraction</description>
+
+    <!-- ***************************************************************** -->
+   
+    <!--
+    <requirements>
+        <requirement type="package" version="0.7.2">nanopolish</requirement>
+    </requirements>
+    -->
+
+    <!-- ***************************************************************** -->
+
+    <version_command>nanopolish --version | perl -wnE'print "$1\n" for /^nanopolish version (.+)$/mg'</version_command>
+
+    <!-- ***************************************************************** -->
+
+    <command detect_errors="aggressive">
+    <![CDATA[
+
+    python3 $__tool_directory__/nanopolish_extract.py $input $output \${GALAXY_SLOTS:-1}
+
+    ]]>
+    </command>
+
+    <!-- ***************************************************************** -->
+
+    <inputs>
+
+        <param name="input" type="data" format="fast5_archive" label="Input reads" />
+        <param name="out_format" type="select" label="Output format">
+            <option value="fastq" selected="true">fastq</option>
+            <option value="fasta">fasta</option>
+        </param>
+
+    </inputs>
+
+    <!-- ***************************************************************** -->
+
+    <outputs>
+
+        <data name="output" format="fastqsanger" label="${tool.name} on ${on_string}">
+            <change_format>
+                <when input="out_format" value="fasta" format="fasta" />
+            </change_format>
+        </data>
+
+    </outputs>
+
+    <!-- ***************************************************************** -->
+
+    <tests>
+        <test>
+            <param name="input" value="test_data.fast5.tar.gz" ftype="fast5_archive" />
+            <output name="output" file="test_data.fastq" compare="sim_size" delta="0"/>
+        </test>
+    </tests>
+
+    <!-- ***************************************************************** -->
+
+    <help>
+    <![CDATA[
+
+**Description**
+
+Nanopolish is a software package for signal-level analysis of Oxford Nanopore
+sequencing data. Nanopolish can calculate an improved consensus sequence for a
+draft genome assembly, detect base modifications, call SNPs and indels with
+respect to a reference genome and more.
+
+The Galaxy wrapper has modified nanopolish to take a gzip tarball of FAST5 reads
+as input, such as can be produced by `poretools combine`, and always outputs a
+single FASTQ file.
+
+This is the `extract` module.
+
+    ]]>
+    </help>
+
+    <!-- ***************************************************************** -->
+    
+    <citations>
+    </citations>
+
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nanopolish_variants.pl	Wed Sep 06 12:15:45 2017 -0400
@@ -0,0 +1,127 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use 5.012;
+
+use Archive::Tar;
+use Cwd qw/getcwd abs_path/;
+use File::Copy qw/copy/;
+use Getopt::Long qw/:config pass_through/;
+use threads;
+use threads::shared;
+use BioX::Seq::Stream;
+
+my $fn_genome;
+my $threads = 1;
+my $fn_outfile;
+my $fn_consensus;
+my $fn_fast5;
+
+# remember full command string (with proper binary)
+
+# parse genome filename and add back to arg stack
+GetOptions(
+    'genome=s'    => \$fn_genome,
+    'threads=i'   => \$threads,
+    'outfile=s'   => \$fn_outfile,
+    'consensus=s' => \$fn_consensus,
+    'fast5=s'     => \$fn_fast5,
+);
+
+my $tmp_dir = 'tmp_dir';
+mkdir $tmp_dir;
+
+#extract FAST5 files to path where they are expected
+my $in_dir = 'in_dir';
+mkdir $in_dir;
+my $cwd = abs_path( getcwd() );
+chdir $in_dir;
+my $tar = Archive::Tar->new();
+$tar->read($fn_fast5);
+$tar->extract();
+chdir $cwd;
+
+my @cmd = @ARGV;
+unshift @cmd, 'nanopolish';
+push @cmd, '--genome', $fn_genome;
+
+say join ' ', @cmd;
+
+my @regions :shared;
+
+# build region tags to pass to nanopolish
+my $parser = BioX::Seq::Stream->new($fn_genome);
+while (my $seq = $parser->next_seq) {
+    push @regions, join( ':', $seq->id,
+        join( '-', 1, length($seq) ),
+    );
+}
+
+my @workers;
+for (1..$threads) {
+    push @workers, threads->create(\&run);
+}
+
+$_->join() for (@workers);
+
+my @fa_files  = glob "$tmp_dir/*.fasta";
+my @out_files = glob "$tmp_dir/*.vcf";
+
+open my $out_cons, '>', $fn_consensus
+    or die "Failed to open output consensus: $!";
+for (@fa_files) {
+    open my $in, '<', $_;
+    while (my $line = <$in>) {
+        print {$out_cons} $line;
+    }
+    close $in;
+}
+close $out_cons;
+
+# we may need to do extra processing on VCF output
+open my $out_vcf, '>', $fn_outfile
+    or die "Failed to open output file: $!";
+for my $i (0..$#out_files) {
+    my $v = $out_files[$i];
+    open my $in, '<', $v;
+    while (my $line = <$in>) {
+        next if ($line =~ /^\s*#/ && $i > 0);
+        print {$out_vcf} $line;
+    }
+    close $in;
+}
+close $out_vcf;
+
+
+sub run {
+
+    LOOP:
+    while (1) {
+
+        my $tag;
+
+        {
+            lock @regions;
+            last LOOP if (! scalar @regions);
+            $tag = shift @regions;
+        }
+
+        my $fn_out  = "$tmp_dir/$tag.vcf";
+        my $fn_cons = "$tmp_dir/$tag.fasta";
+
+        my @cmd_local = @cmd;
+        push @cmd_local, '--window', $tag;
+        push @cmd_local, '--outfile',   $fn_out;
+        push @cmd_local, '--consensus', $fn_cons;
+
+        my $ret = system @cmd_local;
+        warn "RET: $ret ($!)\n";
+
+        my $cmd_string = join ' ', @cmd_local;
+        die "Non-zero exit value for command: $cmd_string\n"
+            if ($ret);
+
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nanopolish_variants.xml	Wed Sep 06 12:15:45 2017 -0400
@@ -0,0 +1,100 @@
+<tool id="nanopolish_variants" name="Nanopolish::variants" version="0.7.2">
+
+    <description>Re-call consensus and variants from raw signal</description>
+
+    <!-- ***************************************************************** -->
+   
+    <!--
+    <requirements>
+        <requirement type="package" version="0.7.2">nanopolish</requirement>
+    </requirements>
+    -->
+
+    <!-- ***************************************************************** -->
+
+    <version_command>nanopolish --version | perl -wnE'print "$1\n" for /^nanopolish version (.+)$/mg'</version_command>
+
+    <!-- ***************************************************************** -->
+
+    <command detect_errors="aggressive">
+    <![CDATA[
+
+    ln -s $input_bam 'input.bam'  &&
+    ln -s $input_bam.metadata.bam_index input.bai &&
+
+    perl $__tool_directory__/nanopolish_variants.pl variants
+
+        --reads     $input_reads
+        --bam       input.bam
+        --genome    $input_ref
+        --consensus $out_consensus
+        --outfile   $out_variants
+        --threads \${GALAXY_SLOTS:-1}
+        --max-round $max_rounds
+        --max-haplotypes $max_haplotypes
+        --min-candidate-depth $min_candidate_depth
+        --min-candidate-frequency $min_candidate_frequency
+        --fast5 $input_fast5
+        $fix_homopolymers
+        $calculate_all_support
+
+    ]]>
+    </command>
+
+    <!-- ***************************************************************** -->
+
+    <inputs>
+
+        <param name="input_reads" type="data" format="fasta" label="Input reads (FASTA)" />
+        <param name="input_fast5" type="data" format="fast5_archive" label="Input reads (FAST5)" />
+        <param name="input_bam"   type="data" format="bam"   label="Alignment" />
+        <param name="input_ref"   type="data" format="fasta" label="Reference" />
+        <param name="min_candidate_frequency" type="float" value="0.2" size="5" label="Minimum candidate frequency" />
+        <param name="min_candidate_depth" type="integer" min="1" value="20" size="5" label="Minimum candidate depth" />
+        <param name="max_haplotypes" type="integer" min="0" value="1000" size="5" label="Maximum haplotype combinations" />
+        <param name="max_rounds" type="integer" min="0" value="50" size="5" label="Maximum iterations" />
+        <param name="fix_homopolymers" type="boolean" checked="false" truevalue="--fix-homopolymers" falsevalue="" label="Fix homopolymers" />
+        <param name="calculate_all_support" type="boolean" checked="false" truevalue="--calculate-all-support" falsevalue="" label="Calculate support for all four bases" /> 
+    </inputs>
+
+    <!-- ***************************************************************** -->
+
+    <outputs>
+
+        <data name="out_variants" format="vcf" label="${tool.name} on ${on_string} (variants)" />
+        <data name="out_consensus" format="fasta" label="${tool.name} on ${on_string} (consensus)" />
+
+    </outputs>
+
+    <!-- ***************************************************************** -->
+
+    <tests>
+    </tests>
+
+    <!-- ***************************************************************** -->
+
+    <help>
+    <![CDATA[
+
+**Description**
+
+Nanopolish is a software package for signal-level analysis of Oxford Nanopore
+sequencing data. Nanopolish can calculate an improved consensus sequence for a
+draft genome assembly, detect base modifications, call SNPs and indels with
+respect to a reference genome and more.
+
+The Galaxy wrapper has modified nanopolish to take a gzip tarball of FAST5 reads
+as input, such as can be produced by `poretools combine`, and always outputs a
+single FASTQ file.
+
+This is the `extract` module.
+
+    ]]>
+    </help>
+
+    <!-- ***************************************************************** -->
+    
+    <citations>
+    </citations>
+
+</tool>
Binary file test-data/test_data.fast5.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_data.fastq	Wed Sep 06 12:15:45 2017 -0400
@@ -0,0 +1,32 @@
+@3030a28d-1f16-4086-9ba1-ff31a97f434d_Basecall_1D_template:1D_001:template macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12068_ch_399_strand in_dir/out_dir/workspace/macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12068_ch_399_strand.fast5
+TCGTGTAGCCTGAATTCGATGCGTATCGCTTGAGAAAATAAACTCGCTGGCGTGACGAAACGTAATGAATTACGACGCTGTCGAAATGAAACTCTTCGCCGGCATGTCGCAGGCATTAGCGGGCCGAAACTAGTGATAGCACATTATCGATAAAAACTGGCGAATCTCATCTAAAGAGGCGGCGCTGTTCGTGAATAAGGGCAGCAATGGCTGCGAAGCGTGTTCAGGCAGAATTGCCAGAGAGAATCATCGAAGGCATCGAAAATGATATGCTCTTCTTTCGCTGGCGATATGAGAATGTCGAGAGCTTCGTTCGTAATAAATGGCGAGGCAATGTGAGCTCTCGTATAAAGATGGGCGGGCGTCTTGAATGGCATCGCGAAAGCCAAGCTTCGGTATGACTCGGTAGAAGCTGACGTGTTATCGAGGCATAGCGAGAGA
++
+"%(()""#2.,$.*->,,,,*-27,1,#"&"($&+6:0/$+.&)*&,0>E(,(($/.39'$""$'((+).%"&/'<&$&"($"$$#*&+'"#-$')""(&0.<+=0:?7C&'MN%K'&"*/),/9,/1&#"%#-##1"(*&*#4,,/=%%&,8:=27'*&"%-(-+-+&(("&*%)'-7D>FEE=<&*'(%'*'%%"$,)&$%"&))(**$"#")$$&#(,+%/#(6.'%0'(1)&*(#()()',(/6-))%&(--47?:&02@,%$)),-""$"#($%+(&*4+6)%'$#""&')+01/;C2.2$&:5>.&/71)B*.*(*"""$(&%(%)*1&(2.*((%''%"$"%.7.-$,/6*'-?/352&'&'*=0(+'),+$&+6EB35:2.&+2)--#%'--""#$(+#&&-+"$$'",&*"%""$=-0959&+'%#$+&&(%
+@86fd3e14-b5ee-4453-98fa-084d75821456_Basecall_1D_template:1D_001:template macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12091_ch_399_strand in_dir/out_dir/workspace/macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12091_ch_399_strand.fast5
+ATATTATGCTAAATTGGAAGTGCGTATGAATACAGAAGCTGACGCGAGAGTGAGCGAAAGCGAAATGACGAAGCATGTCAAAAATTACAACTTTAATATCGGCTAGAATGAGCTGCTAAGCATGTCGCAAGCGTGGGCCGAAACTAAAGATGATATTTGATATCATTAAGCTGGCATAGAATCAGAAAGCGGCGTAAAGTCTCGGCATCGAGCATTATAGTGCGAAAGCGGGAAATGATGAAGCGGTGAGAATACATCAAAGGCGCTCAAAGTAAATGTAGAATGCGCGATATCAATGATATATTAATGAAAGAAATATCGAAATCAGTGTATAAACGACACGGCTGGCGAATTCACTAATATCGAAATGGGCCGAGGCGGTAATGAGCCGAGCGCATCGCTGAGGCAGTATAGTGTAATCCTGATATAAATTCCAGGGCGCAATATACTCGAAGCTTTGCGAAGAGAGCGTGGAAACACAATGGCATATATGAGGGGCGTAGCAATGAGATATAAAGTAACGATGAAATTCTCATCGAGAGCTCAAATGAAATAATCGGCGCGGTCGTCCTGCCTCGAAGCCCTAAAGAGGTAATGAAGGCGAAATGATGAGGCATATCTCCCAAGCGAAAGCGAGAAAATGGAGAGCAATCAGGCCGAAGTGGCTCGGTATTGATCGAAAGTGCGCGATCGAAACGAGAGAGCGACGGGCGATCAGCCAGCGCTTGGTATAACGTAGCTCAATGGGCGAAACCGAAACACCGACAATAGTGATAAAGAAACGCGCCATTTC
++
+""$'#$+-.(55':)5-+*$'&#"%#$&32)%%"#(#))&0",0<64%*#')&()-557-*,-*''%&$"6/)3/4".0%1**),0$*'&',0))"#((('%&.4&2'%,$"$'"$%%#)+"'$1037'8&+*(%#"0)-2?540$.&#$'&$*"+0$#(&)4/",,(*"$#'$&"(#&8737)$,)&%#.74)0+&$%,)-$%$"#$%#()*+;%"#"#(&('./5$-(-"-&.+#$3)'&$"%"&$+%+.%$%$&%)0-33.)1/5-.'%#**#%"""**&),CCF87:>=0)%&$+,.40-?):0)61,%6D56)3%()(%'#,):++1,7&"#%'+,')%"">$)#7';1I,-"2.=>9F/2?D/7($6:3*,893/,0*(($+.),8)//<9<D*'$&*$'#&%)"(#&*%)$('(%&0/5.->7$0#,$%($&*).++&1387>>290.,:12#&&)2(+/$-,11+)(&#)""#%#%757?;A=1)'-12("$"$%)3A28/%#*$*-64#*#"&,122('+'()28>MN-#."1&'C(.;5,0B@52/4$&""$)*1?&"$$&&$-%%'*+'(*/0(&'-&('-1(/%('&%%"*&./(&*-+-.@/$$##$&*..1%#&*65245+%'3356.2**')+.01./)$015-/-&'%#"#&+(&$-"$"9123;1-.)((%(2/+%6)%'%($,2)$(##/.9F6%$+)&#&""#%""""+&""(%"#"#""$%%1%(%60++)01(%$((#""""#)"'$?--0':4-<?"+"""',$&#$3//"
+@2dd21811-c9af-4c4a-aaa0-4fd1f605abf8_Basecall_1D_template:1D_001:template macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12153_ch_399_strand in_dir/out_dir/workspace/macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12153_ch_399_strand.fast5
+CAAGTAATGTAATTGGATGTCCAACATGGTGGCGGTAGATGACGAGATAATTCCTAAAATTAAACGTGATGATGATAAAATTGCTAAGTAAACATTCTGGCTGTCAAATAGTAATAACGATGCATTTTAAGATTTAATGCTGACGCTGTATTATGCATAACATCGGCATCGGCATATGCATAGCGAGAATATTTGATGGAGTCGATAACCGTGAGATGGCATCTTTGTCTCTTCTGGCGCTGAGAGAATCAGAAGCCTCTCATCCAATAAACCATCATTTCAATGATAAATTTTAAGTAAGCGATAGTATTTAATTTGCTGGTGAAGATTATTATGTCGCGTAACTAACGATAATATCAATGGCGGCGGCGCTGGTACGGTAATTTTGTCATTATCTCTCATGATGCCGAGCTTCAATGACATCGTCTCTCGGTAACTTTTCGTATATCGCTATTTTATTGTATTTATTTTGCTTTTTGGCGCCGCGCCGTGTTTAATGAGTGGTATTAGCA
++
+"&#$%.*,$/+-*,%$"$"<7783348)/#%."'$"$("'((#$#.*.&')#+((,*-%+%<65<,:'-4--(##&#/(-,6,1)''"*(8.+'2-*(/""'(*%$$'/(,,510*+-,+2)(2<>4**"&".*+.36(*"$$3)*."**6-3022--+''%'8.**''"""").,/#'%%((,.*+0)'$*3,))-,'%"/'"%*'"%"%),,:0C2))(4%*/*#9/01'.#(%,'&'&)&('',)&%'%)+"&&(,45.2:$+".&-'""$(6.37*&(#%*:92##*.2)25+3(%%')+,''*%/6=073C:')$).,')#&#4(%:,((#(%"'"#%+"-&""#"$&#')*#0#+$&%4=*)&%(%#'.,'++?@D2NSL15?@CHM1EFFDB@%,-+.+&#(&+)+)'(*0223140#-)0%-(+0%(*('(&(%"&*1-+'""''.*)"$7)&*26=7/6?6+"$,07-&/&($(4*0&'*+2)9L8+""%##-#&%).++#%#
+@28daae22-d0dc-4fee-8453-3a2178b331c8_Basecall_1D_template:1D_001:template macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12175_ch_399_strand in_dir/out_dir/workspace/macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12175_ch_399_strand.fast5
+TCGTATGCTAGATCGTCGCATATCAGCGAATCCTGAGCGTAGCGTGAGTAGAGGCGAGGCCGGTAATGAGAGAGAATGAGTAGCCTGGCAGTCGAGCGTAGCGTCTCCTATCGTCATCGAGGCCTCCAGAAGCCGAAATCGCGCGAAGCTCGGTATTTTAGAAGAAACGCGAATGTGAAGCTCTCGTGAGTATTCGAGGCAAGGCCAATCTGTCGCTCTATTCAAAGAAATCCCTGAAATTGTGTTGCGTCGCCGTGGTTGTCGGCGAGGGAGCCTGCGTATGAGCCGTGGCAAAAATAGCCTAAATGAAATGAAGGCTGAAACGGCATGTTGAGGCGGTAAAGGCTATGCGAAGCTGAAATGAGCATTCATCAGGCGAAAGTAGCGCTCGTTACGCTCGACTAATTTGGCGCTTGCTGGTATGATATATGCGTAGGGTAAGGCGTGACGCGTGAAAACTGTGGCTATTATGTGCCGCTCAATGAAGCCGAGTAGCACGGCATCGTCACGAGCGAATGGCATTGCAGCCCGCTAATCGAGCATGAAACGAAATGGCCCGATAGCAAGGCGCGTAGGCGAAATGGCCTGAATCGATGGTGACGGCGAAGCCATGAAATGCGCGTAGAGCTGGGCGGAAATGCGCGGCCAATGAGAGCAGTGAGCTCGCCTAAAGCTCGATGCTGAATCTGAAACGTCTCAATAATGCGGCTCGCCCGAAAGCAATAATTGCCGAAATGGCAGCATTCGAAATGTCTCTCAAATGTGCGGCGGCATCGTGAATAATAAGCAATATCTGAATTATGATAAAATGCTAAAATGCGTATCAAATAAACAAATAGGTACAAGGCGCTGAAGAGTAACTCGAATCTATGAAGTATCGGCGAAGCGTAACAATGAGTATTGACGATATTCATTGTCGGCATAGGCTGGAAATGAAATACTCTTTGCTCGCATAAATGACTGG
++
+"'#*&'"#'%)&+)321/517.52"$"%$"&','('/00(##"#$)))*+)&+3<3+33.*-40&&'(&)#&%&(&##$&)#%(&&$,:'**&%.)/.4*&&,80310.<=2$+1()+2"1"+"%*#+'9,*."$+''-+0,26*(*&-5','$#,$#"#"7,(,1)..7032,%&('(&00.*-'<)-#+&%%$$)3*596:>?983<@,(../8-.0,<?2-1+(#%&"+,'&$&+#4(&+$9*'%&$*+9+*.,$$"#$/5;<:-.8+&%/,.-1*$%(-(),)#'"%#%*)*%$%#(""+<9=4/,.,0,'7&/"&0B%/(1.0H66+-+45.7+)<D*+***+$#$')**)2'143)-%(29C;<80$")'((-,-#+)&1.@91*(&"$'-@@8.1.((-/()&($'&$&%"'%''"%'5./02-434#48+,..*<7/7/,<5)50,)4;.-(+%/&))")*(.23,"%"&*(/*&$''$'$#)"')-''(-*5/'%#'#"%*,B@52/49K<#+%""%)1LB56.4?>./(*(9>532*'*05'&$)'<0+"-(""''$(%$""**'+..++44-*.&%*76:71$.&$5161:(&(0,*4?4><69$,%$/,**-)';94:./0:4570/-)))-$(#4,.-0-(34)@@3-:,*,"(#%0B;$<;5,)/05$)*%("""+'"()%"&*,1(/923.,&&''#7-('.A3,+.+-.091()%%(/)('#%'-5%,)(&4:+(%/174.+$'$%"+%-(208PGENL72,(6,+%(((+)=1/*.."&#')'%)"(&-79,I#%",0K>.58.H223"+$(E2)(34(%$*.-+#(&-&#%("1,0%$$(%'+)++&$*%('"#,&"#$*')$$('($""#&('.545&((1')+%)%'+'2'"+2/-/6>-,&#()2).,$/**'#6,$#"*,-,&4*-/4.3&).=?;0,-*""
+@15bdfe23-0646-4c89-b523-185bc14c3a2a_Basecall_1D_template:1D_001:template macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12081_ch_399_strand in_dir/out_dir/workspace/macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12081_ch_399_strand.fast5
+CATTGTAACTTGCATTCAAATTGCATGTCAGCCTAGGAAAATGCAGCCATCTAGTAGAGTAGAGTGTGTATTCAGGTAAATATATGGCTAAAAGCTAGGCCTAGTTAGCAGGAACTCATAGATGTATTATTTCAAATATACTACTGATCTCTTTGATCACAACAAACTCTTTAATCATTTGTTTCTGAAGCTTATAGACTCAGAACATTTATAAGCCGTACAAATTTTCTAAATTTGAGTAGAAATTATAAAATGCTGGTGGCTTTCTTAATAAGGCCGAGATGTAACCAAAGGACTCTAGAACTCGAGCTGTTACATAAACATTTGAAATTTTGGCTGGGAGACCGTACGGCATCATCATTGTAATGCCTCAGGAAATTGTAGGTACGTGCTTCTAGCCTACAAATGAAACCACTATGATGGCATCAGCCTTCCGCAGTGATCGAAATCACTTCAGAATTTCTTGATAATGTATGGTTTGAAGGCCTCGCGCCTGCCAGGCATCAGCTCGGCGTCCTCGGCCTCGTACCATAGGCTCAAATCGGCAAGAAGAATAAGAGGTAATGTCCTTCAGTACTCATCAAATTCTCTCCTGGGGAATGCAGCCTGCTTCTTCAAGCGCGATGGCCCTGATATACATTTGAAATAACTGCTCACCATGCTCGAGGCTTTCAGATAAAGCGCAGGCAAAAGCCTCGAAATGGTATCAAATTATATGTAAATCGTCGCAGGCACTTCTGCTGAAACGCGTATGCAGAGGCTCATCTCATTTTGCCTCACTGCTCTAGGGGTGCTCAATATGGCGGCATCAGCAGCTTATGGCCAACAAAATAACTCTGCAGGTGGGCCAGGCATGAAACAGTGGCGTGGCGCGCGGTGCATCGCGGGGAGAGTGTCAGGCTGGTATCATGGCGAGGCTGATCAATAATCGGGGCATCGCAGGTAACTGGCATGTTTTTGAAGTCAAATGGCGGTGGTACTGATGCGCCGGAAATAAAGGAAGAACTACTCGAAGCTAAGTAGAAGTATAAAATTGGCGGGGGCCATGCGGTATCAAGGCTCTCATATAAAATGCCATATAAGTGTTTCTCGGCTCGCATAGAGGTGTGCATATCAGCGGCGAAAAGTAAACACCTTCTGGAATCTCCTCATGTCTGTGCCACAAACCATACCGACAGGCGTCATCTGTGAAATCGACATCAATGCGCAAAAAGTACTTCGATACTAATCCGGTAGCTTCAGTACCTAAATCAGAGTAACTCCAGCAAATATCCCC
++
+""*&%1--)/.399DJ6-$"8#"#"''#%#$'+')/*00-,&"#""$#"#""+","&$#"$'%./*7+4110+')""#$$8.-')"%%63;@6"%")%#&$($&-+"#"#('%$#%%1))$)'#%(&'(:D+&-0&)()17-,$+,5445,17283,/"%/A((,("%%0/"2,.-((60'6JO8-*%$$+<B87(%(-43--..7)&)$"+)'(:1(4()'0*,11.((*-(7:))(*+&%2<';*/*455(+&""%&")*%12/"'+.%$,:0/A('"()*"*,&("/;0+,%##,,02,0,,6*001%%%&$'&+&+41(3?6(),)+"""&%##2)%##"%"'$""&$'")*8::/8.#*($)$$&(*&(($$#)""$"*&"#($*#%#&(%($)*)**12//(//./,(+&"$),-&'+).+(22+076'%*%$$%,-%%+36+)#&'%"%&()15)%$#$""&*%"$""6"<"&&'&.&.&##$%"*%"""""))%$$"#-/++%"#"#(+*(#"&&$&"#"%"""%'%$&%0<70#%&&),)*'$'*+%('$)('1--/"%&'%$"$$"*&/(-'&(*+++&0+0*',)&%-),&"$"(%%'(%%"&)&)%(%#')(/+,(%%%#"&#'#++3;/686&'"'&(&()'"$%$%"%&$&#-,&%.)""%#-&*''("""('%%+*&"((.(")-.""""$#%,.)C>4/('$"""""><E?,-(,&(&)+""""#&"%&%#/B?=77'"&'#)$''-+/')%&05.(".4%&"$'(1(%&$#'%(*-11:)90145-&*%'%3**,1&%(()+(""%&)('&:0080%**+./1%/%..2(1(),,*%'3387/#(&-)%&%)&+"""""%$$"#'$&&*9B9&)%&#"(#$)+&"'(&((&#'#&"'%*)#"'"""&02:C?@6CG+)&+2-6')&"'"(."&%.12HMF?0,0+)15+-$)#++9-+%##"""#%==@7<-*($$$06=*,(+046220+%'(%+($''+*'*+&--*.-%)5;(00;72,6++%"""""%&$&"##(%"&)0.)&"#$&')*(,''(%*"$"-)32:WJ@?F74BMK6>"""#","%#&&+%(#%%$"--.6/2D;('2%*$#"&$*#'&*)$%.14:&*5&+%)$%"-$(+$&,/,0>"#"5-/('#*(($&%"%(%#$$&*)('%"%#3-+#""$%+)7;:4(/&'1<4,)#$%&;?=B71##"##&4&%%)'()"""""#%''+'()+)3+3"3*.'"&+<5("
+@310f7b48-a3e0-4cdc-b396-09f4b86081dd_Basecall_1D_template:1D_001:template macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12113_ch_399_strand in_dir/out_dir/workspace/macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12113_ch_399_strand.fast5
+TCTTTCATTTGTGGCAGGTGGAGCGTATTCGAATCTCGAAACTGGCGCGGTGATGAAACTTGAGGTATTTTATCGCTAAATAATTTGGCCGAGGTTACTCGCTCAACTCTGCTTCGGCTGATAATTGAAACAATAAAGCGTCATCTGTTGACTGATGCTCTGTGTTGCTGTCGTGGCAGCGATCATTGTTCTTAGAGCTTTAGCGACAAGTGTTATAAACAAGAACAACGGAGGTAGGAATGCTCGTATGGCGGCGAAGTGTATGAATTTCATGAGAGGGCTCGACTATTGATGCAATAAAATTGCATTCGAGTCTCGTCAGGGGCTTTTGATAGCCCTGACGTCTCGTCGGTATATGAGAGAAATGGCGATGAAATTTCTCGCGATTCAACCATAACTATAAAGTACAATGGCCATCAGGTTTCGGCGTCAGTCGCTGAAAGTAAAACACCGACCATATGATATTTGTAAATGCGTTATTAACAATTCGTGCAATGCCGAGGCGCAAGCACCTGTTGGTATGGCGCATCAGGCAATCATCGATATTCTTCAATAGTCATATCGGTCGATATGGTGGCAGGCAGGCAATAGTCGTACCGAGTGGCACTCCATCGTTAACTACTCTCGAAATCGCTCATATCATTTTACGCGTCTTCTTCGTGTCCGGGCCGAAATTAGCCTGCTCTTGCATAAGAACCTGATGCGGCGCGGCCATCGAGGTCTCCGATGCTGCCGTCGTGCATGCTTGAAAACTTGTCTACTCGAAAGCTCGACGCGTGTCAAAGCTAAAATTATGTTTTTTATTGGCATATTTATCGCTT
++
+$"%%##",/')/#,)'/-70/$#"'4--+""*'%&&""1+%)'7*-/,*%#(#)".,($""&&)+,)-:.%%)'"%'-=0.)$/)"%""#+/))*,#&&#""%%#%*::0,..,(-*."("(+#("(#02,72)6B8,=9A,$+4545&&&%$%&/""(*6+5.2.#"&"/#&((1$"""$")2"&""%(#&#'%0#()1($%('#$(*"*"/)"""##$+/#''$%$"%/)-,$%*)(%&''**&/$'&4,6&"#'+)2--%"%'$@E--&$%#(%/26AB++%&)'4+,2D18/,1H96)>+$'+7@"#(+*-04075$:B:%"-*/'))'*#"(#"#$%"*+0/*-.,5+*+"%%)))*)*+&(0.6"**-/'*/&&-<37,&+'#+.+"$"$%$&$&+2.''%"&$%$"*)"+""+#-8'#%"%(3)$#('%()&850&,$51-'+6C::#)0101/04,0B;%()'#+*#%.'%++03161*-("0""#'*"&%*#7A&538/%&#%'2)6;-/,('+"$&46;8$+)%&#,0$'),%""/+%.+()"%&5<?>KLMKACC;4#(*,%.+(%"&*)($)&"")313:"$%"%##&*-610%()*+&-.,202""""/531'#09/--),6?9><8.*-57/%)*,-*)*:=NPA7?64F%61$5'%-6-0+'"'&*&*+-34$*'($)#--05%%+0)-2+0&,/69G35G+,'(#*./"#$$"((",&""%%##%'B2(%"(21,$+2*89D;B=1.&5/,'),)%",/334581693#-09PF'8//6DJJYWZ>%(,-.10)%25$%)%"%##
+@921ea44a-1215-4f98-9f38-bf36b1bdf69c_Basecall_1D_template:1D_001:template macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12085_ch_399_strand in_dir/out_dir/workspace/macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12085_ch_399_strand.fast5
+TCTTTCGGTAGCAAATTAAATCCAACGGTAACCGGCTTCATTCTGAAATGAAATTAAATAGAAGCGAAATAACCCTGAGGCAGTATGGTGTGACGTGGCATTCGCATTAGCCCTAAGTGCGTAATGAAGATGGTAGTGCGTCAGCAAGGCCCGGGGAGATAAATAATCCTCGATACATGGCCTTGGCTGAAAGATAGAAATTTAGAATTCATTGACCAAGTAACTCGAGCAATAGAGGCATTTCCCTCGTCGGCCTGAAGCCTCGGTGTGGAAATGGCATATAGTATTAATGCAGTAACTAATGAAATTGCCAAATGGGCATATAAGCATTGCGATGAGGGCCGTATTTGCATTGGGCTGAGGTGCGTGTGTCCTTATGGGCGAGGTAGGCTCGTCATGCCTCCGGTGAGGGGTGAGGTAGAAATATTACCGTAGAAGTGCTGAAAGCTAACCAATGAAATGGGTAAAACCATCGGAAGCGCCTAGCGATGGGCTATACAATTTCATTCGACAATCCAGCTATAAATGATGAGGCATCAGGGCGCATTCTAGAGAGGCGTGACAGCATTGATAGCATTTCGATGCAAACCATCTTCTGCGTAATGACACTGACACTATTCAGTGACAGCTCATC
++
+#"')*%"%%&"&()+-@58+2&&+#(&#,)$.1).((&$#+*(#&28/1..&(%%HBRC:,46')).A@11#.1+$%,:(P%+/6-%"-%"$"*'$##"%*@)"%$)"&")/.(4>)88=G-90,&,(%#)$*++$)&/$&$&%$*'/*>4)8=:*$&'-$'("*)""#)+,)+%*&-*,*#4(.""7""/1%,2,,6,-86)#)*+084(-1*%#$'((5+(578$&>?A?:,'&*/,*30&(0-5<CJ<'#%#%#+$%0'&$$+.,.%$+'&0(/1:=JD7(0&(,6',$&#$%%$$**A265,)7*%'%)+'C=<(%#*'006((%*'&*,,,&")/,$%(-'=A-#&$4'((""$)"(&$"&&).)&$3(4*&((,+&'&.,5)/7=;@00(#0"9D@;2*2@8+663)$(%+)&('./.**2'#-*(81)*&&#"')+.3-#%##"(,1.*(.5.0%,&"*.486=9A,)0,$,,%',-+$$'#'((%$)(%%#(1/;.++79/''""#'2%)"%/116A?/'&.,$4,')+(&.0-&,?-<*'""$#)%'"""#(((*'*#.&(-,'%%"'*)$%"#"")--7."'%,,"""""&).**%%%""%"%"$%"+%%*$##"$"5-$#"##
+@aabaf035-7aa8-439b-8773-523c69a350ca_Basecall_1D_template:1D_001:template macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12103_ch_399_strand in_dir/out_dir/workspace/macs_MacBook_local_20170809_FAH11850_MN21227_sequencing_run_AIV_run_1_84332_read_12103_ch_399_strand.fast5
+TTTTTTTTTTTTTTTTGCACTCATTTGGCCGCTAATTCGTCCGTATTGATCTAGTGACGCAGTGAGTAAGCAGGTATTTTCATCATCAAATAGTGAGCGAGGATTATATCTCGGCTCTGCTCGATGGTGGCGAGCAGGCATCGCTGACTGAAACATACCATGTGCCGATACCGCGTGAAACTGGCCGTGGCGCTTCGCTTTGTAGAACTTGCATTGAGGTATTTACCAAGACACCGTTTGCGGAGGTGATTGCTCGCACTCAGGTGCAGCCTATGCAGAAACGTGTAATTTAAGAGCTCATTAATGATATCATTAAAATTCGCGAGTGCTCGTCGAGGGGCTGATGCATTTCGACTCTCTGTGACATGTCTCAAGTGGCCGTGAAGTATCGCAGTAATATATGAAATATAATTAATGTCAGAGATTTCTGGCCGTCGAAATGCGCTAAAGTAAACAATATGATGTTAGCCGATAAAATTATTATAGTGCATTATTCTGATACTTGAAGCCTCGCTGATATTGAGGAAGTATGAAATATTATCGATATTCGACGTCATATCGATTAAATATGTCGAGAGCGAAATAGTCGTACAAGTATATCAAGGGCAACTTGCCGAATAAATGCTCGCTCTTATTTTTAAAAAAATTCGGCTGTTTCGTGGCCGGTGGTAGCACTCTTACTCTGGTAGCGGCCCATCAATCGGGCATCACTTTAAATTATCAGTCTGCCGATAATTGGCGGGCATGCGAAAACGTCTACTCGAAACCCGGCGACAGTGAATCGTAGCCTTTGTCGCACCAGCTTTTGCGACTCATAAGTATTC
++
+"$&')-/12348899&"#"&&.39PA:D66))-&>6O?;:79*0$)%"$33"&%)*.10)((')()'+6#*#0./)8A33*&)/+')/BJ>F$8))+1*,(&&28)/"$$)(0.1-0&"#&%))+()D-*#(#""#$(*%*&"#"#"#"&-+%"')'4)"$*+'+.#"#"%#"$&$"/3(.)&'%&&(%'&%(&*-"#.,&"3$,)1)-$"%#'"#"%%1,2B0$'&,+.#""($"$/$""&($,)#%$+'"$#""#"%$'),((#%*#)&&(+"*%%%#"#-)"'))').((($&(#&%*&1.743@A?>"@%.4917=,(&%-%.#.)+&&"'+'56D@?@980+*,.),.+#(+3.30.*$#,*'&#&"''"%)/+*./(('$-(*%$($')0)##$#$".-()"%'',"&#""%%$0$+(:A62%#%)&%,."#+)#$/(//:J>&6.(&#)*+(""",%3+(#((&$,.1.)0(+1""""%-+15=>,:0&""/;-'#"&*('&*'("#&""(#68%%*++-&&%$(-6F4)7-(,0*$+"+'$$$($*"%))3+0#3$347*0&"%$"#.0,++"##"&1:61-,.:*$)(+'(%'%03*3$"$'$"''&#'+-9-'%%'1'*+,62.CDIJ@583671)+&),2,($078/.-%"#$++&&$$#)(#(*+<8,/-)&'),%,)/$40%%%%.58'*31,&73"*%'&#&,0675.''1%%#$"",*(&>(+""+,02/2+-'.?@.2-+**+%%&-*7=,DB*"'$'B-)3''(**%$#)-%4;-(46&+#4,*-+'(*,-,.,B(("'(2"+'5-#