[med-svn] [Git][med-team/mcaller][master] 5 commits: Upstream does not provide tag for latest changes

Steffen Möller (@moeller) gitlab at salsa.debian.org
Sat Jun 19 23:14:29 BST 2021



Steffen Möller pushed to branch master at Debian Med / mcaller


Commits:
6d2245ff by Steffen Möller at 2021-06-19T23:58:58+02:00
Upstream does not provide tag for latest changes

- - - - -
1d4c1c12 by Steffen Möller at 2021-06-19T23:59:32+02:00
routine-update: New upstream version

- - - - -
7a1180cd by Steffen Möller at 2021-06-19T23:59:33+02:00
New upstream version 1.0.3+git20210331.f7a616a
- - - - -
ce5ecfb1 by Steffen Möller at 2021-06-19T23:59:47+02:00
Update upstream source from tag 'upstream/1.0.3+git20210331.f7a616a'

Update to upstream version '1.0.3+git20210331.f7a616a'
with Debian dir 0bbab8e6783ee0f035b6819bb2a72434ac3b7383
- - - - -
20ee86e6 by Steffen Möller at 2021-06-19T23:59:56+02:00
Remove unnecessary Team Upload line in changelog.

Changes-By: lintian-brush

- - - - -


19 changed files:

- README.md
- compare_genomes.py
- debian/changelog
- debian/watch
- extract_contexts.py
- + get_positions.py
- mCaller.py
- make_bed.py
- testdata/masonread1.eventalign.diffs.6
- + testdata/masonread1.methylation.summary.bed
- − testdata/r95_test_read.eventalign.diffs.6
- − testdata/r95_test_read.eventalign.tsv
- − testdata/r95_test_read.fast5
- − testdata/r95_test_read.fastq
- − testdata/r95_test_read.fastq.fast5.fofn
- − testdata/r95_test_read.sam
- − testdata/r95_test_read.sorted.bam
- − testdata/r95_test_read.sorted.bam.bai
- train_model.py


Changes:

=====================================
README.md
=====================================
@@ -7,6 +7,7 @@
 This program is designed to call m6A from nanopore data using the differences between measured and expected currents.  
 
 ## Dependencies/requirements
+> - python3 (as of mCaller version 1.0)
 > - nanopolish (https://github.com/jts/nanopolish)
 > - an aligner to create a bam file (has been tested with graphmap and bwa mem)
 python packages
@@ -84,17 +85,13 @@ arguments:
 
 ## Pipeline for methylation detection from R9 data
 
-1. extract template strand reads from fast5 files using a method that saves the file path in the fastq header, eg.
-``` 
-nanopolish extract -q -t template <fast5 directory> -o <filename>.fastq 
+1. extract template strand reads from fast5 files. Follow the most up-to-date guidelines from nanopolish (https://github.com/jts/nanopolish). As of April 2019:
+```
+nanopolish index -d <fast5 directory> -s sequencing_summary.txt <filename>.fastq
 ```
    or 
 ``` 
 poretools fastq --type fwd <fast5 directory> > <filename>.fastq 
-```
-  for albacore version > 2.0, follow the most up-to-date guidelines from nanopolish (https://github.com/jts/nanopolish). As of April 2019:
-```
-nanopolish index -d <fast5 directory> -s sequencing_summary.txt <filename>.fastq
 ```
 2. align fastq reads to reference assembly (we have used both GraphMap and bwa mem, with comparable results):
 ``` 
@@ -128,7 +125,7 @@ Results and analysis scripts for the E. coli datasets are provided in the bioRxi
 
 ## Test data
 
-Reference fasta, PacBio calls for m6A and a subset of A positions, and eventalign tsv + fastq are provided for a single read for testing purposes in the "testdata" folder. The testdata_from_fast5.sh bash script is also included and can be modified with paths to external programs as appropriate to test generation of output from a fast5 file. 
+Reference fasta, PacBio calls for m6A and a subset of A positions, and eventalign tsv + fastq are provided for a single read for testing purposes in the "testdata" folder. 
 
 1. To run mCaller on the testdata, use:
 ``` 


=====================================
compare_genomes.py
=====================================
@@ -28,7 +28,8 @@ def compare_by_position(bed1,bed2,xmfa):
                 t,pval3 = 'none','missing df'
             d,pval4 = ks_2samp(pos_dict[0][pos][1],pos_dict[0][pos][1])
             if pval4 < 0.9:
-                print pos, pos_dict[0][pos][0], pos_dict[1][pos][0], pval, pval2, pval3, pval4
+                print(pos, pos_dict[0][pos][0], pos_dict[1][pos][0], pval, pval2, pval3, pval4)
+                #print pos, pos_dict[0][pos][0], pos_dict[1][pos][0], pval, pval2, pval3, pval4
 
 
 
@@ -43,7 +44,7 @@ def main():
     args = parser.parse_args()
 
     if args.version:
-        print 'mCallerNP 0.1'
+        print('mCallerNP 0.3')
         sys.exit(0)
 
     assert os.path.isfile(args.bed1), 'file not found at '+args.bed1


=====================================
debian/changelog
=====================================
@@ -1,3 +1,9 @@
+mcaller (1.0.3+git20210331.f7a616a-1) UNRELEASED; urgency=medium
+
+  * New upstream version
+
+ -- Steffen Möller <moeller at debian.org>  Sat, 19 Jun 2021 23:59:32 +0200
+
 mcaller (1.0-1) unstable; urgency=medium
 
   * Initial release (Closes: #969558)


=====================================
debian/watch
=====================================
@@ -1,4 +1,4 @@
 version=4
-#opts="mode=git,pretty=0.3+git%cd.%h" https://github.com/al-mcintyre/mCaller.git HEAD
-opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%mcaller-$1.tar.gz%" \
-   https://github.com/al-mcintyre/mCaller/tags (?:.*?/)?v?(\d[\d.]*)\.tar\.gz
+opts="mode=git,pretty=1.0.3+git%cd.%h" https://github.com/al-mcintyre/mCaller.git HEAD
+#opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%mcaller-$1.tar.gz%" \
+#   https://github.com/al-mcintyre/mCaller/tags (?:.*?/)?v?(\d[\d.]*)\.tar\.gz


=====================================
extract_contexts.py
=====================================
@@ -2,8 +2,8 @@ from collections import defaultdict
 from Bio import SeqIO
 import scipy.stats as ss
 import numpy as np
-import cPickle
-#import _pickle as cPickle
+#import cPickle
+import pickle #_pickle as cPickle
 import sys
 import re
 import os
@@ -121,7 +121,7 @@ def extract_features(tsv_input,fasta_input,read2qual,k,skip_thresh,qual_thresh,m
     if not train:
         tsv_output = '.'.join(tsv_input.split('.')[:-1])+'.diffs.'+str(k)+'.tmp'+str(startline)
         modfi = open(modelfile,'rb')
-        model = cPickle.load(modfi)
+        model = pickle.load(modfi,encoding='latin')
         modfi.close()
         if type(model) != dict:
             model = {'general':model} #for compatibility with previously trained model
@@ -139,11 +139,18 @@ def extract_features(tsv_input,fasta_input,read2qual,k,skip_thresh,qual_thresh,m
     #tsv format: ecoli   805 CGCCAT  cc1da58e-3db3-4a4b-93c2-c78e1dbe6aba:1D_000:template    t   1   102.16  0.963   0.00175 CGCCAT  102.23  1.93    -0.03   101.973,100.037,102.403,101.758,104.338,102.618,101.973
     with open(tsv_input,'r') as tsv:
         tsv.seek(max(startline-500,0))
-        tsv.readline() #to start new line
-        while tsv.tell() <= endline-500: #TODO: why 500? 
-            lines = tsv.readlines(8000000) #TODO: why 8M? 
+        linepos = max(startline-500,0)
+        #startline, endline, and linepos are in characters -- previously used tsv.tell(), but incompatible with python3
+        while linepos <= endline-500:  
+            #print('current position',linepos)
+            lines = tsv.readlines(8000000) #TODO: why 8M? reasonable size for memory consumption, but could change
             for line in lines:
-                chrom, read_pos, read_kmer, read_name, x, read_ind, event_current, event_sd, y, ref_kmer, model_current, ref_sd  = line.split()[:12]
+                linepos += len(line)
+                try:
+                    chrom, read_pos, read_kmer, read_name, x, read_ind, event_current, event_sd, y, ref_kmer, model_current, ref_sd  = line.split()[:12]
+                except ValueError:
+                    continue
+                    
                 if chrom != last_contig:
                     try:
                         meth_fwd,meth_rev = find_and_methylate(fasta_input,chrom,base,motif,positions_list)
@@ -167,9 +174,6 @@ def extract_features(tsv_input,fasta_input,read2qual,k,skip_thresh,qual_thresh,m
                     meth_ref = meth_rev
                 read_pos = int(read_pos)
                 reference_kmer = meth_ref[read_pos:read_pos+k]
-                #if read_name == last_read and (reference_kmer != revcomp('M'.join(ref_kmer.split('A')),rev) and reference_kmer != revcomp('M'.join(ref_kmer.split('T')),rev)) : #true at pseudomethylated positions (to check) TODO: remove this
-                #    print 'issue with reference kmer in line', line, reference_kmer, rev, revcomp('M'.join(ref_kmer.split('A')),rev)
-                #    sys.exit(0)
 
                 #if finished context for previous potentially modified position, save and reset
                 if mpos and ((read_pos >= mpos+1 and read_name == last_read) or (read_name != last_read)):
@@ -212,15 +216,15 @@ def extract_features(tsv_input,fasta_input,read2qual,k,skip_thresh,qual_thresh,m
                                 towrite.append([chrom,last_read,str(mpos),context,','.join([str(diff) for diff in diffs]),strand(last_rev),label])
                                 last_info = last_read+'\t'+str(mpos)+'\t'+context+'\t'+','.join([str(diff) for diff in diffs])+'\t'+strand(last_rev)
                             except (IndexError,KeyError) as e:
-                                print last_read+'\t'+str(mpos)+'\t'+context+'\t'+','.join([str(diff) for diff in diffs])+'\t'+strand(last_rev),'- Index or Key Error'
-                                print model.keys(), base_model.keys(), context[int(len(context)/2):int(len(context)/2)+2]
-                                print e
-                                print model[twobase_model].predict_proba([diffs])
+                                print(last_read+'\t'+str(mpos)+'\t'+context+'\t'+','.join([str(diff) for diff in diffs])+'\t'+strand(last_rev),'- Index or Key Error')
+                                print(model.keys(), base_model.keys(), context[int(len(context)/2):int(len(context)/2)+2])
+                                print(e)
+                                print(model[twobase_model].predict_proba([diffs]))
                                 sys.exit(0)
                         else:
-                            print last_read+'\t'+str(mpos)+'\t'+context+'\t'+','.join([str(diff) for diff in diffs])+'\t'+strand(last_rev)
-                            print read_name, rev, last_read, last_rev, last_first
-                            print read_kmer,reference_kmer, ref_kmer, last_pos_in_kmer, mspacing, pos_in_kmer
+                            print(last_read+'\t'+str(mpos)+'\t'+context+'\t'+','.join([str(diff) for diff in diffs])+'\t'+strand(last_rev))
+                            print(read_name, rev, last_read, last_rev, last_first)
+                            print(read_kmer,reference_kmer, ref_kmer, last_pos_in_kmer, mspacing, pos_in_kmer)
                             sys.exit(0)
                         num_observations += 1
                         if num_observations%5000 == 0:
@@ -252,12 +256,12 @@ def extract_features(tsv_input,fasta_input,read2qual,k,skip_thresh,qual_thresh,m
                         diff_col = diffs
                         if len(diff_col) != k:
                             try:
-                                print last_info,'- n diffs off'
+                                print(last_info,'- n diffs off')
                             except:
                                 pass
                             #GGCGCM 613883 613878 False 2289b392-746e-4fa0-8226-d3ac661c9620_Basecall_2D_template 2289b392-746e-4fa0-8226-d3ac661c9620_Basecall_2D_template [[], [], [], [], [], [], []] 7
 
-                            print reference_kmer,last_mpos,mpos,mspacing,read_pos,read_pos-last_mpos,read_name,last_read,diff_col,mspacing, last_diff_col, last_diff_col[:-mspacing]
+                            print(reference_kmer,last_mpos,mpos,mspacing,read_pos,read_pos-last_mpos,read_name,last_read,diff_col,mspacing, last_diff_col, last_diff_col[:-mspacing])
                             diff_col = [[] for i in range(k)]
                             sys.exit(0)
 


=====================================
get_positions.py
=====================================
@@ -0,0 +1,93 @@
+#!/usr/bin/env python
+import sys
+import numpy as np
+from Bio import SeqIO
+from scipy import stats
+from scipy.cluster.hierarchy import fcluster,linkage
+import scipy.spatial.distance as ssd
+from extract_contexts import revcomp
+from plotlib import plot_w_labels
+import os
+import pandas as pd
+
+def make_pos_set(pos_list):
+    pos_set = set()
+    with open(pos_list,'r') as fi:
+        for line in fi:
+            if len(line) > 3:
+                pos_set.add(tuple(line.strip().split('\t')[:4]))
+    return pos_set
+
+def aggregate_by_pos(meth_fi,aggfi,depth_thresh,mod_thresh,pos_list,control,verbose_results,gff,ref,plot,plotdir,plotsummary):
+    pos_dict = {}
+    if verbose_results:
+        pos_dict_verbose = {}
+
+    if pos_list:
+        pos_set = make_pos_set(pos_list)
+
+    values_dict = {}
+    for line in open(meth_fi,'r'):
+        #try:
+            #print line
+            try:
+                csome,read,pos,context,values,strand,label,prob = tuple(line.split('\t'))
+            except: #for backwards compatibility; does not work with verbose results
+                csome,read,pos,context,values,strand,label = tuple(line.split('\t'))
+            nextpos = str(int(pos)+1)
+            if pos_list and (csome,pos,nextpos,strand) not in pos_set:
+                continue
+            if (csome,pos,nextpos,context,strand) not in pos_dict:
+                pos_dict[(csome,pos,nextpos,context,strand)] = []
+                values_dict[(csome,pos,nextpos,context,strand)] = []
+                if verbose_results:
+                    pos_dict_verbose[(csome,pos,nextpos,context,strand)] = []
+            if (pos_list and (csome,pos,nextpos,strand) in pos_set) or (not pos_list and plot):
+                values_dict[(csome,pos,nextpos,context,strand)].append([float(v) for v in values.split(',')][:-1])
+            if label[0] == 'm':
+                pos_dict[(csome,pos,nextpos,context,strand)].append(1)
+            else:
+                pos_dict[(csome,pos,nextpos,context,strand)].append(0)
+
+def main():
+    #parse command line options
+    from argparse import ArgumentParser
+    parser = ArgumentParser(description='Produce bed file of methylated positions based on mCaller output')
+    parser.add_argument('-d','--min_read_depth',type=int,required=False,help='minimum coverage of position to determine methylation (default = 15)',default=15)
+    parser.add_argument('-t','--mod_threshold',type=float,required=False,help='minimum %% of observations at a position to include in report (default = 0.5)',default=0.5)
+    parser.add_argument('-f','--mCaller_file',type=str,required=True,help='the output file from mCaller to summarize')
+    parser.add_argument('-p','--positions',type=str,required=False,help='~bed file of positions for which to calculate % methylated (chromosome,start,end,strand); ignores other thresholds')
+    parser.add_argument('--control',action='store_true',required=False,help='take unmethylated positions as a control for motif detection')
+    parser.add_argument('--gff',action='store_true',required=False,help='output PacBio-style gff instead of bed ("identificationQv" score will be average probability of methylation)')
+    parser.add_argument('--ref',type=str,required=False,help='use reference fasta to output longer contexts surrounding a base, from -20 to +20')
+    parser.add_argument('--plot',action='store_true',required=False,help='plot currents deviations at the positions included (not recommended for many positions)')
+    parser.add_argument('--plotsummary',action='store_true',required=False,help='plot currents deviations summarized across the positions included')
+    parser.add_argument('--plotdir',type=str,required=False,default='mCaller_position_plots',help='output directory for plots, default=mCaller_position_plots')
+    parser.add_argument('--vo',action='store_true',required=False,help='verbose output including probabilities for each position')
+    parser.add_argument('-v','--version',action='store_true',required=False,help='print version')
+    args = parser.parse_args()
+
+    if args.version:
+        print 'mCallerNP 0.3'
+        sys.exit(0)
+
+    assert os.path.isfile(args.mCaller_file), 'file not found at '+args.mCaller_file
+    if args.positions:
+        output_file = args.mCaller_file.split('.')[0]+'.methylation.positions.summary'
+    elif not args.control:
+        output_file = args.mCaller_file.split('.')[0]+'.methylation.summary'
+    else:
+        output_file = args.mCaller_file.split('.')[0]+'.methylation.control.summary'
+    if args.gff:
+        output_file = output_file+'.gff'
+    else:
+        output_file = output_file+'.bed'
+    if not os.path.isdir(args.plotdir):
+        os.mkdir(args.plotdir)
+
+    print args.mCaller_file
+
+    aggregate_by_pos(args.mCaller_file,output_file,args.min_read_depth,args.mod_threshold,args.positions,args.control,args.vo,args.gff,args.ref,args.plot,args.plotdir,args.plotsummary)
+
+if __name__ == "__main__":
+    main()


=====================================
mCaller.py
=====================================
@@ -3,9 +3,8 @@
 #Alexa McIntyre, 2016-2018
 
 import sys
-assert sys.version_info >= (2,7) and sys.version_info < (3,0), 'please use python 2.7'
-import cPickle
-#import _pickle as cPickle
+assert sys.version_info >= (3,0), 'please use python3'
+import pickle 
 from collections import defaultdict
 import numpy as np
 #import time
@@ -138,7 +137,7 @@ def main():
     parser.add_argument('-c','--classifier',type=str,required=False,help='use alternative classifier: options = NN (default), RF, LR, or NBC (non-default may significantly increase runtime)',default='NN')
     parser.add_argument('--plot_training',action='store_true',required=False,help='plot probabilities distributions for training positions (requires labels in positions file and --train)',default=False)
     #parser.add_argument('--plot_violin',action='store_true',required=False,help='train a new model (requires labels in positions file)',default=False)
-    parser.add_argument('-v','--version',action='version',help='print version',version='%(prog)s v0.3')
+    parser.add_argument('-v','--version',action='version',help='print version',version='%(prog)s v1.0')
     args = parser.parse_args()
 
     if args.base == 'A':


=====================================
make_bed.py
=====================================
@@ -81,7 +81,7 @@ def aggregate_by_pos(meth_fi,aggfi,depth_thresh,mod_thresh,pos_list,control,verb
             except: #for backwards compatibility; does not work with verbose results
                 csome,read,pos,context,values,strand,label = tuple(line.split('\t'))
             nextpos = str(int(pos)+1)
-            if (pos_list and (csome,pos,nextpos,strand) not in pos_set) or (context[len(context)/2] != 'M'):
+            if (pos_list and (csome,pos,nextpos,strand) not in pos_set) or (context[int(len(context)/2)] != 'M'):
                 continue
             if (csome,pos,nextpos,context,strand) not in pos_dict:
                 pos_dict[(csome,pos,nextpos,context,strand)] = []
@@ -98,6 +98,7 @@ def aggregate_by_pos(meth_fi,aggfi,depth_thresh,mod_thresh,pos_list,control,verb
                 pos_dict_verbose[(csome,pos,nextpos,context,strand)].append(prob.strip())
         #except:
         #    pass
+    print(values_dict)
     if plotsummary:
         print('plotting all current deviations...')
         num2lab = {0:'A',1:'m6A'}
@@ -149,6 +150,7 @@ def aggregate_by_pos(meth_fi,aggfi,depth_thresh,mod_thresh,pos_list,control,verb
                 gff_info = (locus[0],locus[2],locus[4],deets)
                 write_gff(outfi,gff_info)
             else:
+                print(aggfi)
                 out_line = '\t'.join(list(locus)[:-1]+[str(np.mean(pos_dict[locus]))]+[locus[-1]]+[str(len(pos_dict[locus]))]) #+[str(x) for x in values_dict[locus]])
                 if pos_list:
                     out_line = out_line + '\t' + '\t'.join([str(x) for x in values_dict[locus]])
@@ -157,9 +159,9 @@ def aggregate_by_pos(meth_fi,aggfi,depth_thresh,mod_thresh,pos_list,control,verb
                 outfi.write(out_line+'\n')
     if not pos_list:
         if not control:
-            print count, 'methylated loci found with min depth', depth_thresh, 'reads'
+            print(count, 'methylated loci found with min depth', depth_thresh, 'reads')
         else:
-            print count, 'unmethylated loci found with min depth', depth_thresh, 'reads'
+            print(count, 'unmethylated loci found with min depth', depth_thresh, 'reads')
 
 def main():
     #parse command line options
@@ -176,13 +178,9 @@ def main():
     parser.add_argument('--plotsummary',action='store_true',required=False,help='plot currents deviations summarized across the positions included')
     parser.add_argument('--plotdir',type=str,required=False,default='mCaller_position_plots',help='output directory for plots, default=mCaller_position_plots')
     parser.add_argument('--vo',action='store_true',required=False,help='verbose output including probabilities for each position')
-    parser.add_argument('-v','--version',action='store_true',required=False,help='print version')
+    parser.add_argument('-v','--version',action='version',help='print version',version='%(prog)s v1.0')
     args = parser.parse_args()
 
-    if args.version:
-        print 'mCallerNP 0.3'
-        sys.exit(0)
-
     assert os.path.isfile(args.mCaller_file), 'file not found at '+args.mCaller_file
     if args.positions:
         output_file = args.mCaller_file.split('.')[0]+'.methylation.positions.summary'
@@ -197,7 +195,7 @@ def main():
     if not os.path.isdir(args.plotdir):
         os.mkdir(args.plotdir)
 
-    print args.mCaller_file
+    print(args.mCaller_file)
 
     aggregate_by_pos(args.mCaller_file,output_file,args.min_read_depth,args.mod_threshold,args.positions,args.control,args.vo,args.gff,args.ref,args.plot,args.plotdir,args.plotsummary)
 


=====================================
testdata/masonread1.eventalign.diffs.6
=====================================
@@ -1,35 +1,9 @@
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	13673	CATTAMCAATC	1.1,-0.236666666667,0.28,1.17,-0.02,0.67,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	13861	GCCCGMTATAT	-0.53,-2.56,-0.46,-2.09,-5.4,1.05,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	14331	TTTTGMGATCC	0.06,-1.6,-3.48,1.365,1.06,3.94,7.05526534938	-	m6A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	14352	TCGTGMATGCA	2.98,1.47,-2.14,5.63,1.07,5.135,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	14444	TAAAAMAGAGA	-0.68,-0.74,-0.585,-0.48,-0.815,-1.08,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	14528	ATCAAMCCGAG	4.025,-0.115,-1.02,-0.48,0.173333333333,1.19,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	14836	GCTTTMGCAAA	-1.37333333333,0.18,-0.613333333333,-1.43,-0.005,-4.32,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	15536	TGCGTMTTCAA	-0.1,2.23,-2.058,2.78,-0.68,0.51,7.05526534938	-	m6A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	15630	CTTCCMGCCAC	-2.72,-1.03,-0.14,2.625,1.0375,-1.075,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	16154	AGATAMTAAAT	-2.38,-1.03,-2.88333333333,-0.59,-4.31,-4.94,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	16209	TCTTAMTAACA	-0.3075,4.23,0.88,0.326666666667,-4.165,0.93,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	16397	GTATTMTCAAT	-0.63,-2.97,-0.736666666667,-2.71,-1.12,-3.25111111111,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	16979	AAATGMGATTT	-1.44,-5.03,1.445,0.4,-0.588,-0.55,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	17243	AGTAGMTTGAT	-1.44333333333,-0.02,-0.0366666666667,-0.55,0.64,-2.71,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	17283	ACTTAMCCGGT	-1.23,-1.635,-0.24,1.10333333333,-2.215,-2.93,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	17486	AGCATMTTTAT	-0.21,0.075,-1.30833333333,4.15,-0.3,-0.215,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	17796	GTTATMTGCAA	-1.355,-0.34,-1.86333333333,-1.87,-1.265,-1.22,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	17923	GGTAAMAATTT	-5.64,-3.6,-5.13,-0.255,0.4,0.73,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	18402	GTGACMGTTTT	-1.14,0.94,-4.55,2.0,-0.34,-2.71,7.05526534938	-	m6A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	18488	GGCTTMTTTTA	1.02,-2.38,0.915,0.05,1.75,0.8875,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	18575	GGATGMAAGAA	-0.56,-3.505,1.02,-1.55,-0.714,-0.4825,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	18804	ATATTMTGCAT	3.49,1.3,-1.495,-2.3,-1.2,-0.62,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	18828	TCGTGMAAAAT	-1.405,-2.96,-3.1,0.57,-0.433333333333,-1.44,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	20255	AGGCCMTTCAA	-2.15,1.885,2.58,-0.36,4.26,-2.4625,7.05526534938	-	m6A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	20591	AATCAMAAGAA	1.485,4.095,-1.12,-0.91,-0.62,1.17,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	21448	TACTTMCCGCA	1.095,0.78,-2.38,1.47,-1.715,-0.828333333333,7.05526534938	-	m6A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	22359	AACTCMAGGTA	-3.59,1.85666666667,-0.96,0.0671428571429,0.573333333333,1.21,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	22558	GAAGAMTCAAC	1.005,3.05,3.07,0.4625,0.32,-0.603333333333,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	23402	GGATTMTTTCA	-0.19,-1.68,-2.3,0.56,-1.41,1.48,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	24474	CTGGAMAAAGC	-1.13,-1.67,-1.1,-0.5775,0.42,1.0225,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	24629	GGGCCMTTACC	0.005,-0.295,-0.54,3.96,1.47,0.065,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	24715	GGTGGMTGAAT	3.255,3.925,0.04,-0.156,-1.01,1.35333333333,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	24770	GGTTAMCGCGT	-0.08,-1.36666666667,0.84,-0.545,-3.22,-1.53,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	25340	TGTGGMGAAAC	-1.74,-2.56,-2.0775,1.84,-0.1,-0.3,7.05526534938	-	A
-26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	25919	AGAACMCTTTC	1.92,2.75,1.59,1.64333333333,1.59,1.27,7.05526534938	-	A
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	13791	GTAAGMTCCCT	-0.4066666666666667,1.6099999999999999,-1.6866666666666665,6.67,-4.55,1.775,7.055265349382997	-	m6A	0.71
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	14329	TTGAGMTCCGC	-3.48,1.365,1.06,3.94,1.6,0.98,7.055265349382997	-	A	0.45
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	14827	AACAGMTCTCC	-2.38,-2.11,-1.45,-1.4900000000000002,-1.98,0.53,7.055265349382997	-	A	0.1
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	15249	GCTTGMTCTCT	0.65,2.7,-3.18,1.41,0.76,3.43,7.055265349382997	-	m6A	0.67
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	19419	CACAGMTCTAC	1.41,-0.9933333333333332,-2.08,-3.42,-1.5650000000000002,-2.332,7.055265349382997	-	A	0.12
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	21759	TGGCGMTCCCT	-1.502,-2.01,-2.26,0.5433333333333333,-7.57,-3.11,7.055265349382997	-	A	0.3
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	22161	CAGCGMTCCGG	2.13,0.7219999999999999,-0.44,-0.08499999999999996,3.9250000000000003,2.86,7.055265349382997	-	m6A	0.71
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	23875	GTCCGMTCCGA	6.19,-2.07,0.695,2.71,3.575,3.1566666666666667,7.055265349382997	-	m6A	0.56
+ecoli	26dd376e-9d82-41fc-921e-71e559c8e8d1_Basecall_2D_template	24559	GCTCAMCGGCT	-0.53,1.9366666666666665,-1.86,0.58,4.6450000000000005,1.17,7.055265349382997	-	m6A	0.85


=====================================
testdata/masonread1.methylation.summary.bed
=====================================
@@ -0,0 +1,5 @@
+ecoli	13791	13792	GTAAGMTCCCT	1.0	-	1
+ecoli	15249	15250	GCTTGMTCTCT	1.0	-	1
+ecoli	22161	22162	CAGCGMTCCGG	1.0	-	1
+ecoli	23875	23876	GTCCGMTCCGA	1.0	-	1
+ecoli	24559	24560	GCTCAMCGGCT	1.0	-	1


=====================================
testdata/r95_test_read.eventalign.diffs.6 deleted
=====================================
@@ -1,20 +0,0 @@
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3647365	TCAGGMCCCGT	0.916666666667,-2.664,-2.25,-0.42,0.135,-1.362,18.3588624525	-	A	0.34
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3650835	AATTGMCCGTG	2.48666666667,-0.33,-3.24,-0.69,0.61,-0.955,18.3588624525	-	A	0.43
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3647734	AAGCGMCCGTC	-0.015,-0.42,-0.96,2.38,0.625,-1.29,18.3588624525	-	m6A	0.65
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3651075	GCCGGMCCATC	1.81,0.54,0.52,0.902,-0.51,1.91,18.3588624525	-	A	0.09
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3647914	TGGTGMCCGCG	1.69666666667,1.305,1.24,1.3,0.545,0.025,18.3588624525	-	A	0.24
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3647968	CGCTGMCCATG	0.6775,-1.24,-3.245,9.47390314347e-15,0.035,-1.57,18.3588624525	-	A	0.47
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3651343	TCATGMCCGCC	0.0125,0.19,-1.58333333333,-1.01,-0.35,-2.33,18.3588624525	-	A	0.21
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3648099	TTTCGMCCTGT	-1.795,-0.255,0.56,1.19666666667,1.69333333333,4.44,18.3588624525	-	A	0.13
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3651484	CTCTGMCCGTT	1.285,-0.0842857142857,2.365,4.36,3.12,2.715,18.3588624525	-	m6A	0.82
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3648591	GGTCGMCCAGG	0.235,-0.54,0.225,0.53,-0.753333333333,0.885,18.3588624525	-	A	0.05
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3651823	CTGCGMCCGGT	-0.336,-0.09,-2.95,-3.43,-0.68,-1.455,18.3588624525	-	A	0.19
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3651901	AACTGMCCGCC	0.8325,-2.36,-0.705,-1.10111111111,-0.645,-0.703333333333,18.3588624525	-	A	0.1
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3651937	CGCTGMCCTTA	-0.505,0.67,-3.07,-0.38,-1.215,-2.92,18.3588624525	-	m6A	0.5
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3651954	TACTGMCCGGC	-0.195,-0.66,-2.6875,-1.09,-0.976,-3.37444444444,18.3588624525	-	A	0.32
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3651972	TGCCGMCCTGA	-0.77,-1.61,-2.04,-1.2,0.55,-0.0233333333333,18.3588624525	-	A	0.07
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3649911	TAGCGMCCCGC	1.57,-0.94,0.1675,-0.406666666667,0.37,0.68,18.3588624525	-	A	0.08
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3650080	TTATGMCCGAA	3.865,-2.09,-1.09333333333,0.55,-1.2625,-3.34,18.3588624525	-	A	0.5
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3653093	CCAAGMCCGCA	-2.0525,-0.275,-1.91,-0.605,0.62,0.37,18.3588624525	-	A	0.05
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3653162	AATTGMCCAAC	-1.015,1.06,0.25,-1.05,0.56,0.09,18.3588624525	-	A	0.05
-ecoli	f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	3653422	CGATGMCCGTG	-1.21,0.04,0.853333333333,2.175,0.44,1.44,18.3588624525	-	A	0.11


=====================================
testdata/r95_test_read.eventalign.tsv deleted
=====================================
The diff for this file was not included because it is too large.

=====================================
testdata/r95_test_read.fast5 deleted
=====================================
Binary files a/testdata/r95_test_read.fast5 and /dev/null differ


=====================================
testdata/r95_test_read.fastq deleted
=====================================
@@ -1,4 +0,0 @@
- at f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template r95_test_read testdata/r95_test_read.fast5
-TCTCGTTTTTCCGGTAAAGATAATTAGAGAAAATATCGTTAAAAAATTTTACCAAATGTAGTATTTGACGAATATTGTCGGCCTCGCTGTTTCTTTTTCGAGTATATCCCCGTTAATCATGGATTCACGTTTGCCGATTGATTAGGATATTTTTATTTTACTGTCCAGAAACTGGTCAAAGTAAAGAGCCTTTTTTGTGGCTGGTTGCGTGGCCAACAATCGCGCTTCGACAGTTTGTTCACTGCTTTGGCAGCGATATGGGTATGTTGGTACTGGTTTCTGGCTGAAAAAGAAAGCGCCACGGCGGAACGGAAGCGTATCGTGATTATTGGGTCTGAGTCATGCTATTAACTGCGGTGGTATTAAACCAGCTGGAATTCAGGCGGTAATTCCTGTAAAACAGGCCAGCCAACGGTGACACCTGATAATGTACTTCGCGTCAGCAGAAACTGCTCTCTGTTCCCCGAAGATACCTCACACGAGATAGCTTTCCCGCTGTTCAGCATGATGCACCTTGTTTTCCGGCATTCATGTGGCGTTATTTCGTAAAGTTACGAGCCTTATCGCCCTTATTATTTTGTGGTTTTGCATTTCCCCTGAGTATGATTGGCGCACACTGGTTTACTGACATCATTGTCAGGTTCGATGACCGTGAAGTATTGATCGGTTTGCCACAGGTGTTGCTGACGCCATTGAAGTGATCAGATTAATCACCTTTTGAATAAATCACTACCGGGGAAGAAAACAAACATTTCCAAAACAAATAACTCACAGTAATTAACATCATCGGGTTACGTACATAGTAAGGGATAATCCTGATAGTGCACTACGTACTTTCATCTATCGAACGCAAAATGTTCTAAATTAAAATGAATGGATTGCATGCGTTTCACTCGTGTACTTTAATTGACCAACCCAGCAGTAACTTTCTGTCACTTAGCATAAAATCATGTAAAACCGCTCGCCAAGACCGCGCAATCGGGTAATCTCGAACTCGTTTTGCCTCGGCGGTGGAGATTATCTCACAGCATATAATTTTGTGCGTTGGTCACAGATTTGGCCTTAGGTGTTTCAACATACCGGGTAAGTGGTCTCGATGATAAGCGGCGTTTTTTTATAACGATGTTGTCGGTTAAGGACTTCAAAGGAAAACAAACAACATGGTCAAATCTCAACCGATTTTTGAGATATATCTTGCGCGGGATTCCCACGATTTTGATAGCAGTTCTGCTTTTCTGCATGTAGTACAAATAACACCGCAAAGAATATGCATCTGAGACGTGCAGTGGGTAGTGAAACATCATCACAACTTCTCGGATGAATTCTTTGGTTCGTAATGTCGGCAAATCGCGAATTATGGATCAGTATGCTGACTGGAAGGCGTACGTTATCGTCTGGGCGGCAGCACTAAAGGTATCGGTGTTCTGGTTTCGACAGCGTACATTCCGTGAGCAATTTGTGGCTTAGAACTTCCCGCGCGTTCGACTTACTTACGAACAGCAGGGAAATGGGTAAATCTGTTTCCGCGGTAATTTGCGTACGGGTGATTTAGTTCTGTTCCGTGCCAGTTCAACGGGACGCCATGTCGGCTGTTATATCGGCAACAATCAGTTTGTCAATGCTTCCACCAGCAGTGGTGTTATTATTTCAGCATGAATGAACCGTACTGGAAGAAGCGTGCCAAACGCCGGGTTCTCAGCCACTTGCAGCCCCAATAAACCTGTTGGATGCAATCCTTGGCTGACAGGTTAACTGAAAGCACTGCTTAGGCGGTGCTTTTTTTGTTCATTCATCCCAGAGAAAATGATGTTTCCGCGTCTTGATCGGGCTATAGTCCGATGTTATTATCTTTTAAATGTTGTATTAATTTCGGAAATTACGGGAATCATGTTCATACGCGCTCAATTTTGGACGTAAGCTCCTGCTTACCTGCATTGTGCAGGCGTAATGATTACGATACTGGTGAGTTGCCTTCAGTTTTAGTGGCGGCATAAAGCACGAAGTCAAATACGACACTGATTACCGGCGTACAAAAGTATCTCGATACCTATTTTTTGCCGACCGAAATCCACTACTGACCGGCTCAGCCGCTGACCTTAGATGCCGCCAGCAAGTAACTTCAGACGACCGCCCGCGCAGCTGAATGTCGAACGTTTGTGCTGGTGAAAGATAAAAAAACATTCTGTTCATCTGCGACCGGTGAGATGGACATTCCACTCAATAAGATTAGTTCGGCGCTCGACATTAATAAAACGTCGATATGGCGATCTTACCCGGCACGCCGATGGTGCCGAACAAACCCGCAGTATCGTCATCTGGTATCGCAGCCCTTTGCTGAAAAATAGCGGCGTCTTTGCCGCTCCTCCAGATCTCAACCCTGACGCCTTCACTCTTTTTTACATAGTTCACGGCGGGAAGATTACGATGGCGTCGCCTCATTGTGGCAATACTGCGCTATCACCTTTTCTTCGTTTGATGAACGTTAACGATTAACCGACGCTGATCCGTGAAACTAAAATTGCGGGCATTCCTCTGACCGTTCGGCTTTATACAAGATGACTGGACATGGAACGATATTAATGTTACATTTTACTGGGCGGCACATGAGTGGAACTGTCGTTGGCCTGCTCTGCTTTATTACCTGATGAGGCGTGCGTCAGTATGCACCCGGCAGGAAATCATGACCGCCATCAAGCGCAATTTCAATTTTACGTGGCGTATCAGCCGGTGGTGGATACAAAACTGCGAGTAACGGGCTGGAGATACTGCCTACGCTGGCGGCATCCTGTCACGGGAGAAATTCCCCGGATGCCTTCACAACTTTGCCGAATCGCAAAAGATGATTGTGCCATGACTCTCAGCACCTGTTTGAGGTTAATTGCCCACTTGATGCCATCAGAATTAGAAAAGTGCTGCTGTTGGGCGTCATTGAGTAATGTACTTGGACCATCTACTGTAAAGCTTTAAAACAGATATCAGAAACTGCTCACTTCCCTGCCCTTTACCAGTTCAGATTGTGCTGGAAATTACCAGGCGAGCCTGATATGTTGAAGAGCAGAAATACAACTCTTCGCTGGCTGCACTCGGTCAGCGTAGAAATTGCTATTGATGACTTCGGCACCGGGCACAGCGCGCTTATCTATCTTATTGAGCGTTTTACGCTCGATTATCCTGAAAATTGACCGTGGTTGTACAGCGCCATCGGTACAGGTGATCACTTCCCCGTACTTGACGCGGTGCTGACGCTGGCGAAACGCCTCAATATGCTGACTGGTTGCTGAAGGGTCGAAACGCCGGAACAGGCGCGATGGCTAACAGACTGACGTTAATTTCATGCAGGCTACTGGATTAACACGTTACCGCTGAGACGATTTTGTTCGCTGGCTAAAGAACTGTATACGCCGCAGTGGTGCAGGTGTGCTTACGTCCCTTATTATTCATGGTGAAAACATGCCGGATTGCGGCATTTAATGATGAGTAAAGGAAATCCGTTGCAGATGATTGGTACGCATACTGCTGCTGTTTATCGCTCTGTTCTGCTGGTGTGCAGGCGCAGGCTATCAAGGGAAAGCTATGCCTTTGCCGTGCTGGGCGAACCGGTACGCGTTAATTTCAACCGGTACCGGTATCGCTGAACCGCCACTAAAGGTGGTGAATAACGTTATCAATATCGGCACCTTCGATAATTTCAACCATATGCGCTGCGCGGCAACCCAGGCTACACCTGAGCAACTGTACGACATATTTGCGACTTCGATGACGAACCGGGGCGGTTATTACCCGCTGATTGCTGAAAGGCGCACGCTATGCTGACGTTATTCTGGTGAGTCCGCACTATTAATCCCGTTTTCATGATGGTTCGCCGTACTGCCCGCGATGTAGAGTTTACTTTTCAAAACACCGACCGAGGCGTGCCGCAATTTCGTCTGGTCACCACAAGGCACCACCGTCAAACCATTGCACCGTTAACCGTGCGCATTGGTTAGCTAAACCCGTGAAGATATGCTGAGTCTGTTTTCGCTGCCGGTATTTCCAGAAGTACTGGAAGGATCACAAACTTAGCGACCCGCTCGCCACGCGCCTCGCTTGCCAGTGGTCCATGCCGCGTTACGATCACGGAAGATGGAATGGCCGAATATTGTCTGTTCCGTGTGAGATTGCTGGGCAACAAACAAACTTACCGGTAAACCGTGGACGCTGGAATTTCCGACACCATTCGCTACGATTATTACCTCGATGATATGTCGCCTTTGAAGCGTTTAAAGCAGGTGCCTTTGATTTGCGTATGGAAAACGACGCCAAAACTGGGCCACGCGTTATACCGGTAAAATTTCGATAAAAAAGCTGTCATCAAAGATGACAAAGACAAGATCAGCCCGGGATGATACGCGTTGGCTGGCGTTTAATATCAACGTCCGGTATTCAGCGATCGCGCCGGGTCCGGGGAAGCTATCACTCTCGCGCCTGCTTTGACTTTGAATGGATGAACAAGGCGTTGTTTACATGCACGGAGTCACTGAACAGTTATTTTCAGAATACCGAATACGCGGCCAGAAATTACCCCAGCGCCGCGGAGCTGGTGCTTCTGGCACCAATGAAAAGATCTACCGTCAAGTCTTCACACCAAATCCACCAGCCGCCGGTATCAAAGGCGATGGCTACGATCGGCGAACAACCTACAGCCGACAAACTTCTCAACGAAGCGGGCTGGGTGCTGAAGGGTCAGCATGCGTTAATGCCACAACGGGTCAGCCACTCAGCTTTGGTGTACTTCCCGCAAGCAGCAATAGTCAGTGGGTATGCCGTTCCTTTGCAACCTGCAACGGCTGGTATCCAGCGCTTATGGACATTCGCAAGGTGGATAACTCGCCGTCACTAACCGCATGCGCAGTCGCGTATGACATGATGCCGCGTGGCGGGCGATGCCGTGGCCAGTTCCGGTTACAGTTAGATTTCTGGTCATCAGAATATATCAGATTCCACTTATAATGCCCCCGGCGTTACTGAAGCCCGGTTATCGACTCGCTGATCAACCAAATTATTGCGCGCAGGAATAGAAAAATTACTTTTGCCGTTGGGAGCGACACTGGATCGCGTAACGTGGAATATTACATGCTGCCAATGTGGTACATGGCGAGAAGATAGGCTCGCACAGGTGGGATAAATTCTCCCAGCCGGCCGTGCACCCATCTATAGCCTCGTATCGATACACGGTGGTATGACGTCAATAAAACGGCAAACTGCCGTCCGCCAGCAAACAGGGAGAGTAGATATGGGCGCTTACCTGATTCGCCGTCTGTTGCTGGTGATCCCAACATTATGGGCGATTATCGCCATCAACTTTCATCGCCAAATTACTGGCGGTCGGTCGACCAGTCTCGCCACGCCATTGAGTTTGGTAATGCCGGGTATTGCCCGGCGCGAACGGTAGAAGGTGTTCGATGCCAGCCATGCGCAAAACGGGGTGTCGGCAATATCAGCGACAGTATTACCGGCTGGCGGACGCCAGTTAGATCCAGAAGTGATCGCTGAGATCACTCATATCCTTTACGGTTTTTGATAAGCCGATCCGAACGTTTAAACCAAAATGCTCTGGGACTACATCCGCTTTGATTTTGGCGATAGCCTGTTTCGCGCGCCTCGGTGCTGACGCGATTAAAGACAGTCACCGCGGTTTCCATCACCCTCGGATTGGAACTTTGCTGATTATCTATCTGGTGTCGATTCAGATTTAGGCATTTCATAAAGCTGTTTATAATAGAACGCTTTGACGTCTGGGTAGCGCATTTATCATCATCGGCTACGCCATTCCGGCCTTTTGTTTGCCATCTACGGTGTCTTCTTCGCGGGCGGCAGCTATTTCGACCTGTTCCCTCTACAGCTGGTTTGCGCCTTTGATTCGCTGCCGTGACATCAGAAAATCACCAGATTATCAGCGGCATATCCGCGCTGCCGGTGCTGGCGACAGTGATTGGTGGCTTTGCGGCGCTGACCATGCTGACAAAAACTCATTCCTTGATGAGTGCATGACAATACATTGGTGACCGCGCGTGCGAAAGGGGTAAGTGAAAAATATACCAAACATGTGTTTCCGCAACGCCATGCTGCTGGTGATTGCTGCCGGGTTTTCCGGCGACTTTATCAGCATGTTTTTACCGGCTCGCTGCTGATTGAGGTGATGTTTTCGCGCTCAATGGTCTGGAGCTTACTGGACTGCAGAGCGACCGTCTCGCGCGGTGTCACGCACTGCACTCAATATTTTCACTGGTTCAATGCTGCTGAATATTGTCGGTGATATCGGCTATACGCTGTGGTTGATCGTGATGATTTTGAGGGACGCGTTAATGTCACGACTCAGCCCCGTCAATCAGGCCGTTGGGCGCGTTTCGTCATAACCATCGCGGCTACTGGTCGTTATGGATTTTCCTCGTCTTGTTTGGTTTTGAGTTGTTCTGAACTTATCGCCAACGATAAACCGTTGCTGAATTCAGATTATGACGGCAGTTGGTATTTCCCGTTATTGAAAAACTACAGCGAAAGCGATTTTGGCGGCCCGCTGGCAAGGTCAGGCTGATTATCGGGACCCGTGGCTGGAAACAACGGCTGGAAAATAACGGTGGCTGGAGTACTGTGGGCACCGAACCGCTTTGGTGCTACCAGTAGTAACTTTGCTACCAATGACCCTTCCTTCTCCACCCTCCCCGGCAAAACTGGCGCAGGAACGGATGCCAACGGCGGCGATGTGCTGGCACACGTTATTCTCTATGGCACGCGGATCTCGGTTCTGTTGTACAAGTGCTGACTCCTGTTCCAGCGTGATATGGGCGTGCTGGCGGGGGGCGCTACAAGGCTATTACGGCGGTAAAGTCGATCTCTGGGGTTAACTGTGAAGTATGGTCCGGGGATGCCGACGCTGTTTTGATTATTTTGCTTTCCAGCGTCGTACAGCCTAACTTCTGGTGGCTGGCAATTACTGTCTTGTTTGGCTGGATGAGTCTGGTCGGCGTGGATTGGGCGGAGTTTTTTACGTACTCGTAATTTCGACTACATTCGTGCGGCACAGGCGCTTGGCGTCAGCGATCCGCGGTATCGTCCTGCGTCAT
-+
-&$%%$-7CB20(--.58-,.../1.,*.,2:1)''(&*1+33BCCB?/.*%.*=D,+*%)()'*.,)((+-A/((+-3/-,.(0.+.+,6;2,/==0(*'(&'&*+,0=E/.4A6789.5.+-A04.1-):5168.-2--*1)&-.+(%=BCG;7>ED?-++'*++))3>:91/'(%.+*'%.70)*,,,,5@=6.8+*6567/<,(((,,+66>>@@=>766/112(*(,*17=/06=245501.225>6)775//+*(7.034,3>-,1&+(,+&*-&''/,445;=1.&/-+),(()%*0+++0(*-**,0'1.-*(1+B<026.2.7/')*+,).122526+'('*/033,)(,)/,*0.>ECB55/2200().+*%,(+*)*7>948*'%',-212*.&$'+'-++(*)+/*)+(2*%*23436.-((('),:9;9/23)'04223/.-01568>79/)&'-*+0/.11,-*0-25,5-.2/22A678+,-./120,.67:>44-/%(++,)(**/4*+'),;>967;8<<@:>6*-4))*',3.,41*-,1%>=(*>BD664,*>;>C6ADC at 8AA2EEF049.AGD199)(--,,--0-4;1;78::96:>@6501-228201236B@>>?'20 at 26122655:(3&-*+**-((,58-56B/(&%'(%4(**-**),,-/1C at 2A0(+*)+/253(((3>6F<=+)'*+++,-+*35-1?482-31+8<45*(29<;2 at F?C-7E;69,DD?D at A<;062/0340>@B.?,+)./98-+**.(0*.-'+(*()((()(-22/+3-,/:32,7*+5(-&(('*+.+6;DE1C5:--18++67+.2;72..0++,2/*)'&(+,98;ABCB71=/3+6*678C,,,10/'++,,26 at 5;-B/-/.)/&=4(+)3/&2.<*<A=/3'.-)&,((%.()-31)3221/.7>C>>D67A7*+&6-45<?/3(:,C2>3@;1299=;<108<?3-BE=-:8:383>=9B?080+05089;20)((+,.7569<@EC=9<1<-?,-()(&))1(552-4015/-.67'6)('<-0,-'2*1165:3(9+51@=7/-701.0-)*7=9.>?ADC at .'*3<65).'=E47A<)1,81,40@?:<5?/3;1+19-3E8A?+@>CAB:6+/((*BB9,AC97?GFF.9445549:=6@>6976+?;6:89</*..*720$&&+0)4'+=/,++-3AC8>@>3**'+/))*)1<41)(%./=.33B/*2896;:;811'('++.+-/7+1.19,.+4457=849<=?42')(+(,4*41//++(.*1*&%%'),:7=362835(**)'2:/-/8>3=6B6??ACCCC97?>BBCCB<DEE3:0/*/+265.3/+1C??>9001,).+),**.*55,&(3,48;*9-,9?@AEDE at A))*&&,0.+129E>?1<0-.-8=3:3++/365;/:;A=@4>D**250;9DB<<<*%?2<53463093130:<+67-+3987:C856<C?G-A0+,.89DDAFC=@57>@9>;==?AG:-95>04;CD=8-+)/..0<FC>41*0+(+$&'.13:4*.%)(.//08??5B at CA;AF8D//3C));;75-'+,069.1=3 at D.987:4/:.,55.1:<6,+025??CA7;CDE9E>@=A>3=)8**&%'%',4/,-1;=:?87C375/446()&''*+*4--+663?@1/7'*4>4.-/-3D318/++,''+'(?'->5C6<6:55;2-/16-.)-('.:<0BA;<A;?CD<--1;./@EFD4?0.(+.(38AB8ADC2CG3:?+.;?=7C7775.0;9??@9<;6*('2,.)&*,./,5864196817/++**)+*68-/*,0,.77,/18.041424;?GC==88832,,))*AAB1BDBA;AC61216/.,,-1+7?/01*5.+1(,(*-8475:22%2*+03461583.1/.0.83<@<@=--:A4,//,4..49784<=/+1.9,.1=>?:BAA:>:0,)0.248A54.0)//578;DC.2:120..9:?@?=5.*011/'004495-,29;9;9368567::;5'((.0..54:89=57?8>1263+-')00&9:=='*(-(&&('&'(,-**'5<-,21%&$%&'*6.*/2)'*-29C?//0;470,,*0/.43CAADGE950,?5..8EBBEE;;;64?D?-=.(5868:125@, at -&),/120)+%-<-((8D8;2:9 at CD@?:*.1.,-<FFC?=20,0124).53562<4%04...-'0(0,444@:435500?<EF=BE2(*('+-8678=5DC?D?>=AD:25'72.6A;9>87<CBC6:54>-;<@=3BG=8?E?@68+)',))<8800*+6<--8<A;<CCCA156883EAD-,,'*+27D=4<:@>(A582167E6<;<<BB at B<417=/7;41*+('*+)(%)(+869=?3/+048FC at 6300.1=::;.6.,,7?:7.8)(/-A/EC.-+')))',<;467;>.0/?BA5==?A>F>B/==A=5=//0=:;958250,3.+.46-+,3695963?;:>@C@?99785&,(,**)00)+*2=>;0@@E?@?>B<71466,2348.=9;16849>.20:441931,-3,40:62:C??@@>.9<950'85:%%37.51-(--+,*>+1)-/545:<:8 at B?=DBD00-'(651226649/DDA0.28:7>;:=@=,1);*8B>=598;--+.0=.)*=-0'),2:>?*2&1-30,2'.-4.+.)+(1123.738>BBAA?971/&),9941..2,,::783@,1,.,=C75301/-1>15C2.A=<()/44*)+A at 9=:4428>(+++((-.:529586<?AGB0,,4*/&&0'(<83&&'&)*1226(('/(/+2-)(0-0/,.2781.')-()2<6215,9-(''')0+'+&'+(91>323:85,2(+)*4,&(.483>=0836?,+++)*/89200/>2*.738F7<2CB+()((,)*()1''*&/-,*))6).'.//75;:('%%('+/++/>?@@C>E,81+((5-'10+(.1/8222 at C;-+,),-24?598;0?732*2/=:(./-.:-478=;*-;/*23=4/:9:>E/8110225,*)(&,(+-:908080')./.=>59FG86 at 739;:084,-7'(-4;A.DC=<C=-5///.&'%&('0,/1.13.;/78*.'$)/0<'-036CB-*2&,()/,4719(8()3-.D?>=<:5)-91/33::<8<:8752..('&*)84--)/2/;;.>619D=?:<??@?><77::=95675>?5927),*)%(%/.8=361 at 5/**%%)1;@>@CDDE43((%''1/07/++(+),,29<>:?EC=7AE>?AB><./-47,01.,'+../2/5<8;75A6772--7<;99-+/76;:<6<(4,07A7:EEA at 749,-50+36><45/9,634(*'&&,0(3)),>>>1..C:*2+18429C at A?:>>9CED8C0.&*'2195.(&-.9BBB at F?F8559-27<.(/3(,+*72@=B??>=>;?5</567.---;+3:(:92344=2/8+,1)(?=;=/288>8:893::)1-862.-+)&%(**()''+'&.&&$)'3)-)'(%*-1>5(,)%''*2703061(*)87<984/)++20**,+44:>5043=5::;9?=EA=99AD+2-2+1+45<A?CA?<=+:5-*+..*')(++,.2421'1-),*()()'*+582-008;770.-48;9''<.4(3:/2/:8A469./8--0A at 2=434647540)->98;2353-/,*/44/+//4B<,1.*,(,)+)%**.-35677',+'%.<==0110077>AG at 0./'*,,*,/41'1,/0,*5,-04F@:<:D?:7>>3++&+&/,640)+.6;=?CE at C589EB?:9;/11.-&&)/29@/@89>A9A@>BA/,6,88<9156<E9>>?>@E:?<ACD0B1;3/55&*-7>*0*'$')/-,/513222/)(*-BA=FF at 745120.282-3A/.0+&()&129:>@@950.21',-02+)&()1457C,189:+.+*/16.60+-)*-)(-+&*<;C1A+'((+)),5;;.,+&+.)*3;8<'/05+''&*&))*0A=2>31.44(5:71),+''**%5(()EA=)8/+00%%CDED=;98>0>1.=C>9DCE?7790038/:- at E-0(++/,8BCDFD??B<>3237,-01AA@@=5211/+0.56720/:002;.<:<E2;F?*@(?:>9:95>:=27;../.=4:A<3>>A?;/838087519>59576275<3?4227@=23,3=@59C?>8:8009565(+++44,0/:@+,+)++,6E1'-=8/++*+322=5/93/0((9630,./,:0A@>CE<CGE1>.0.75A9A=4254303A3+/117?>5625A6FB99.032,++)-4 at A4**-0<:2:/53+'&*1)*,99C?7*:7=D at C:7 at 6D310/+4**/1)''(&&++/-.))+*$&'(5:9,5:75;FFBB/,..+.1;./AA<<9;584,((/,)5--=A7)+*-(,*'(34(*+:>@C767E8><?81<8>986;>E5*1::1+62144.(+-0<>;++)+*78910&*29*05E:D<691-03*4*)'')(0:?>D<22..+((&(&((,0-(%$&+)0-+)*.;<22@>?C.,<+0/,/38 at C@@7578?04'*.:A;72%($')334283/-89*+-1.4=,/6+-1C65<<,28<CD;5>53'/1-15,.5;B,4-<?=8;*+:E3<@97&'&,*/.+5)-&&***53)8 at 8;<;=97<446<9<;2,+%&%&'&(-099B9>A=4:6-7/3=EAA?2??=**'/+,*6444>88<8B7:7818D=0/,2-<@?A289:?;=..-,)=,-7A at B>==/95120234*.=B=;1*61-09/%%3034B<2,188@?.0%+);0.0/3@('*435+(*/,/22/5,0=CD;56:28;164*.,)/?69727,0/<5<@>//-.2 at C>.8,31050'8)$'%((-+-'0(''&32?F<:7101+/,(0:.554;5('&)(4,26/DDC9)((-++?;><>:,70/82202-113322+*),*++&()0/9=--),0-/*()$'*,(/,,(0(''566:<74:725=D823<9131A*?)*%,**.==:6;60;=10,+&8002524-.4<28A>BDC8@>>?-<5<AD)@604,;7.9499569=125(5>@E<B+69)&+*,.06?=)35>==;;=?3>@>BBC@<49:-04..@>=BD?:=292<1.*-1,2014<<=11(++(,6)608C<3,+682442/(/*21,0-',(10@>B=A-?8</,4)(+(+(++,.'++38,*3333;FC7,--:/,.(++.-7<A+6A54:6/?.))2+13*'.,,-0.4:6-,1&-+''/31.,+%,//016,85)(()+'466<6<=:2364./,&((0.-1/.%&,<9>=?BC17+&'./&&81?)((/),*452.(*,,+/7A41333)+&05(*/,+55C5ACC+())(&')(()),('*07.-7*)+('01CE737?A?;7>:=44314>?.-+53,('-=A:0?8A@@:4:D5<=D33*1./7;?>?7>7<@9-,+&&54=8=?.),B6B43(+)+1/>4G;;D><<18:.+3+9'8-))*'*'*($&+.5?@>>C>>ED at 46588:73@<6)2&3***5AD02C;:637B=*@A at CD=10263+2&)/++1,,.:<@A:>@8332882656?,+,D=A@><C-50.15/64*(13+1/@B7EA6/?F?7=8+-+*,125:3012=/=EB:A;@3713/+4813/>:0+)(%(&02-./)++(*'-0-.3.3.'*)(').286>?<:>6984-/',-1:82/2?@1-0*+***14C142''((''*.;8D-)21548CA7 at 8/(+&&)7<5,433->/>//C0/6?@58:A:0127:88*2+++.27<FFD==@@/:B967969:3:133=&%&'+1<;=>-6.3*346DE:<?=7C8;337)866,56A-9,45C.+,''&+)(,;(+A<753B3:006;<=56<:6/19.48;@C?<7A.,'*/18DB/CF82?72066:-32.86414063<FEE<8;460/288:86AA>:=<50/?,+*/.7CC<.()&'.))(*,4*(&'-(+)+-.0:82'/*%,+0(*.DCE@<>>9:56848*1(1.*(%)%(%$(%(%'$%/05EEC;.2'(,/++)*+').**-.(564;633;(6*)*,*622321==,9'(*(--8.B12+-(&'+2224A>1+&9<1//.'(.90B089/)-.0798/+.'+''-,5--/372D?5=5/8A<'&+-E?;<@;4.6.(&&*1=940./199945-3@:8:=A;8FFC:?:=:>+164>FA>?>EA04'(1+*-:?:9>@?@@9=@916>B><8<>?==AB=C761)9-<21),/948,,.+1BD64C(*...9C1;F:39B3A10:B<D/2..0)((&)32..-)61.)7-63029-)-077788)49A06;::8:>DA<>*?AD>E7-/*'&'(*-.+3;-?3E456B@@5532038.')+-484&))46>>344.,$2&)&)*.,-.4.++0+-*+/**(*(&(*.+.33.2?<=5C1+(&-13=>@;5EDACD:=?<82 at E5058;F=6;;=**&++81;9;:@11'1097<(230&/.')/?3:4/3233)3-/3+2<:DD?7;:D>@?<;<EAA>>=2 at BD71-4.(**+**',+1*-*--6.*-6.6++,A=21,+'*19?=BECA?<9;+0CD?,>99//0,/-12>=B>.6.94-005@;1A<501332-.-.*,/((*+'4+)(,39??96?)<@D9 at F<F at EDE@@E;=EB>.8;<69ED?.94835/.2897 at 35/<0-/0)(*(+-/)-++(&(&))*&)0*(*-,(+071=GD:D:==FCB>19;<9<CD at 7@=;?>?).)02<?5:)+;95DF5:DBB=<9511702@=55>?EDC<@GB/=6:-2/00,3E?46/</D04380)/,*+21.51+,,+1,B at 989:11/*,


=====================================
testdata/r95_test_read.fastq.fast5.fofn deleted
=====================================
@@ -1 +0,0 @@
-f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	testdata/r95_test_read.fast5


=====================================
testdata/r95_test_read.sam deleted
=====================================
@@ -1,4 +0,0 @@
- at HD	VN:1.0	SO:unknown	
- at SQ	SN:ecoli	LN:4734145
- at PG	ID:graphmap	PN:graphmap	CL:graphmap -r testdata/pb_ecoli_polished_assembly.fasta -d testdata/r95_test_read.fastq -o testdata/r95_test_read.sam	VN:v0.3.0 compiled on Jun 16 2016 at 10:59:07
-f88c6bba-5f92-4766-b8cf-21b1af4cc0b1_Basecall_1D_template:1D_000:template	16	ecoli	3646849	40	20M1I56M1I13M1D2M1I42M1D1M2D46M1D20M1I11M3D3M2D45M1I17M2I15M1D9M1I1M1D5M1D32M3I36M2I1M1D12M1I14M1D7M1D17M1D1M1I37M1I4M3I23M1I28M1I72M1I1M1I3M1I33M1D1M1D2M1D5M1I56M1D13M1D33M2I14M1D2M1D3M1D6M1I1M1I38M1I2M2D5M2D10M1D3M1D2M5D7M1D1M1I2M1D19M1D2M1I14M1I12M2I34M1D17M1D12M1I2M1I1M2I27M1I11M3D1M1D1M2D38M1I8M1I3M2D4M1D15M1D60M1I19M1I34M3D10M1D1M1D1M1D44M1D1M1D5M1D10M1D42M1D14M1D1M1D22M1I7M1I2M1I28M1I3M1D3M1D23M1I17M1D18M1D56M1I7M2D13M1I9M3I36M1I1M1D11M2I6M1D23M1I4M1I17M1I11M1I4M1I2M1D14M1D23M2I5M2D12M1D8M3D8M1D6M2D70M2I35M1D25M1D1M1I9M1D13M1D36M1I14M1I29M1D8M1D1M2D14M1D4M1I9M3I11M2D2M1D2M1D7M1D39M1I2M1I26M1I19M1D4M2I1M2I4M1D10M1D19M2D1M2D17M2D24M1D30M4I1M1I6M1D14M1D1M1D3M2I9M1D31M3D2M1I1M1D37M1D48M1D3M3D6M1I2M1I21M1D22M1I10M1D1M1D12M2D35M1I1M1D46M1I2M2D6M1D1M1I3M1D3M1D34M5I16M1I9M1I1M1I23M1D23M2I1M1I12M1D2M1D4M1I4M1D13M1I2M1D14M1D26M1D62M1D34M1I30M4I18M2D6M1D20M3I9M1D1M1I2M1I28M1D2M1I1M1I41M2D42M4D15M1D27M1D17M1I1M1I2M1D24M1D6M1I2M3D33M1D1M1D19M6D2M1D9M2I2M1I2M1D2M1D2M1D3M1D6M1D17M1I27M1I14M1D13M3D16M1I3M2D2M1D25M1D25M1D15M1D1M1D1M1I5M1D3M2D6M2D6M1I1M1I2M1D3M1I15M1D10M2D31M1I25M2D36M1I22M1D13M2I1M1I52M1I20M1D26M1I11M3D16M1D17M1D2M1D2M1I1M1D30M1D13M1I47M1D12M3D3M1I15M1D2M1I2M1D16M1I22M3I72M1D14M3D3M1D5M1D11M2I1M2I2M1I2M1D20M1D8M1D26M1D20M1D5M2D7M4D1M1D3M1D1M1D2M1I1M1I3M1I1M1D2M2D19M1D13M1I7M2I12M1I14M2I6M1D33M1D12M1D36M1I6M1I1M1D4M1D13M2D2M1D39M3I2M1D24M1D8M1I5M1I1M1I7M1I13M2I30M2I11M1D5M2D6M2I24M1I50M1I1M1D3M2D9M1D19M2D11M1D17M1D7M1D34M2I1M2I18M1I9M1I1M1I2M1I55M2I52M1D20M1D3M1I1M1D3M1I76M1D8M8D15M1D1M1D2M1I7M1D9M1D20M1D22M1D7M2I38M2D21M1I7M2D6M1D43M1D35M2D20M1I3M1D8M1D23M3I6M1D1M3D12M1D30M2I12M1D34M1I2M1D3M5D6M1D11M1D3M1I8M2I6M4I17M2D2M1D1M2D1M1D31M1D55M1D4M1I64M1D20M1I10M4I10M2I3M1I12M1I1M1I26M1D12M1D9M3D33M1D32M1D3M2D16M1I3M6D9M1D6M1D2M3D27M2D6M1D39M1I15M1I1M1D33M1I51M1I4M1D22M2D2M1I2M1I2M1I14M1D14M1D1M2D2M1D15M1D28M1D8M2I36M1D29M2D6M2D1M1D7M2D13M2D23M1D1M1D26M1I7M1D5M1D2M1D25M1D2M1I5M1I1M1D11M1I20M1D47M1I2M1I14M1I3M2D15M1I8M1I16M1D4M1I16M2I16M1I35M1D5M1I10M1D8M1D21M1D2M1I8M1D25M1D19M1D1M1D5M1I1M1D15M2I10M1D4M1D15M1I3M1I9M2I1M1D2M1I1M1I4M1I3M4D9M1D31M1I1M1I38M1I4M1I17M2I1M1I2M1I6M1D6M1I3M1I16M1D18M4I1M1I3M2I10M1I10M1D13M1D16M1I8M1I1M1I7M1D11M1I2M1D2M1I2M1D4M1D22M1I30M1I1M1I1M1D10M2D21M1I6M2I5M1D6M1I7M1D1M1I20M1I4M1I8M1I1M	*	0	0	ATGACGCAGGACGATACCGCGGATCGCTGACGCCAAGCGCCTGTGCCGCACGAATGTAGTCGAAATTACGAGTACGTAAAAAACTCCGCCCAATCCACGCCGACCAGACTCATCCAGCCAAACAAGACAGTAATTGCCAGCCACCAGAAGTTAGGCTGTACGACGCTGGAAAGCAAAATAATCAAAACAGCGTCGGCATCCCCGGACCATACTTCACAGTTAACCCCAGAGATCGACTTTACCGCCGTAATAGCCTTGTAGCGCCCCCCGCCAGCACGCCCATATCACGCTGGAACAGGAGTCAGCACTTGTACAACAGAACCGAGATCCGCGTGCCATAGAGAATAACGTGTGCCAGCACATCGCCGCCGTTGGCATCCGTTCCTGCGCCAGTTTTGCCGGGGAGGGTGGAGAAGGAAGGGTCATTGGTAGCAAAGTTACTACTGGTAGCACCAAAGCGGTTCGGTGCCCACAGTACTCCAGCCACCGTTATTTTCCAGCCGTTGTTTCCAGCCACGGGTCCCGATAATCAGCCTGACCTTGCCAGCGGGCCGCCAAAATCGCTTTCGCTGTAGTTTTTCAATAACGGGAAATACCAACTGCCGTCATAATCTGAATTCAGCAACGGTTTATCGTTGGCGATAAGTTCAGAACAACTCAAAACCAAACAAGACGAGGAAAATCCATAACGACCAGTAGCCGCGATGGTTATGACGAAACGCGCCCAACGGCCTGATTGACGGGGCTGAGTCGTGACATTAACGCGTCCCTCAAAATCATCACGATCAACCACAGCGTATAGCCGATATCACCGACAATATTCAGCAGCATTGAACCAGTGAAAATATTGAGTGCAGTGCGTGACACCGCGCGAGACGGTCGCTCTGCAGTCCAGTAAGCTCCAGACCATTGAGCGCGAAAACATCACCTCAATCAGCAGCGAGCCGGTAAAAACATGCTGATAAAGTCGCCGGAAAACCCGGCAGCAATCACCAGCAGCATGGCGTTGCGGAAACACATGTTTGGTATATTTTTCACTTACCCCTTTCGCACGCGCGGTCACCAATGTATTGTCATGCACTCATCAAGGAATGAGTTTTTGTCAGCATGGTCAGCGCCGCAAAGCCACCAATCACTGTCGCCAGCACCGGCAGCGCGGATATGCCGCTGATAATCTGGTGATTTTCTGATGTCACGGCAGCGAATCAAAGGCGCAAACCAGCTGTAGAGGGAACAGGTCGAAATAGCTGCCGCCCGCGAAGAAGACACCGTAGATGGCAAACAAAAGGCCGGAATGGCGTAGCCGATGATGATAAATGCGCTACCCAGACGTCAAAGCGTTCTATTATAAACAGCTTTATGAAATGCCTAAATCTGAATCGACACCAGATAGATAATCAGCAAAGTTCCAATCCGAGGGTGATGGAAACCGCGGTGACTGTCTTTAATCGCGTCAGCACCGAGGCGCGCGAAACAGGCTATCGCCAAAATCAAAGCGGATGTAGTCCCAGAGCATTTTGGTTTAAACGTTCGGATCGGCTTATCAAAAACCGTAAAGGATATGAGTGATCTCAGCGATCACTTCTGGATCTAACTGGCGTCCGCCAGCCGGTAATACTGTCGCTGATATTGCCGACACCCCGTTTTGCGCATGGCTGGCATCGAACACCTTCTACCGTTCGCGCCGGGCAATACCCGGCATTACCAAACTCAATGGCGTGGCGAGACTGGTCGACCGACCGCCAGTAATTTGGCGATGAAAGTTGATGGCGATAATCGCCCATAATGTTGGGATCACCAGCAACAGACGGCGAATCAGGTAAGCGCCCATATCTACTCTCCCTGTTTGCTGGCGGACGGCAGTTTGCCGTTTTATTGACGTCATACCACCGTGTATCGATACGAGGCTATAGATGGGTGCACGGCCGGCTGGGAGAATTTATCCCACCTGTGCGAGCCTATCTTCTCGCCATGTACCACATTGGCAGCATGTAATATTCCACGTTACGCGATCCAGTGTCGCTCCCAACGGCAAAAGTAATTTTTCTATTCCTGCGCGCAATAATTTGGTTGATCAGCGAGTCGATAACCGGGCTTCAGTAACGCCGGGGGCATTATAAGTGGAATCTGATATATTCTGATGACCAGAAATCTAACTGTAACCGGAACTGGCCACGGCATCGCCCGCCACGCGGCATCATGTCATACGCGACTGCGCATGCGGTTAGTGACGGCGAGTTATCCACCTTGCGAATGTCCATAAGCGCTGGATACCAGCCGTTGCAGGTTGCAAAGGAACGGCATACCCACTGACTATTGCTGCTTGCGGGAAGTACACCAAAGCTGAGTGGCTGACCCGTTGTGGCATTAACGCATGCTGACCCTTCAGCACCCAGCCCGCTTCGTTGAGAAGTTTGTCGGCTGTAGGTTGTTCGCCGATCGTAGCCATCGCCTTTGATACCGGCGGCTGGTGGATTTGGTGTGAAGACTTGACGGTAGATCTTTTCATTGGTGCCAGAAGCACCAGCTCCGCGGCGCTGGGGTAATTTCTGGCCGCGTATTCGGTATTCTGAAAATAACTGTTCAGTGACTCCGTGCATGTAAACAACGCCTTGTTCATCCATTCAAAGTCAAAGCAGGCGCGAGAGTGATAGCTTCCCCGGACCCGGCGCGATCGCTGAATACCGGACGTTGATATTAAACGCCAGCCAACGCGTATCATCCCGGGCTGATCTTGTCTTTGTCATCTTTGATGACAGCTTTTTTATCGAAATTTTACCGGTATAACGCGTGGCCCAGTTTTGGCGTCGTTTTCCATACGCAAATCAAAGGCACCTGCTTTAAACGCTTCAAAGGCGACATATCATCGAGGTAATAATCGTAGCGAATGGTGTCGGAAATTCCAGCGTCCACGGTTTACCGGTAAGTTTGTTTGTTGCCCAGCAATCTCACACGGAACAGACAATATTCGGCCATTCCATCTTCCGTGATCGTAACGCGGCATGGACCACTGGCAAGCGAGGCGCGTGGCGAGCGGGTCGCTAAGTTTGTGATCCTTCCAGTACTTCTGGAAATACCGGCAGCGAAAACAGACTCAGCATATCTTCACGGGTTTAGCTAACCAATGCGCACGGTTAACGGTGCAATGGTTTGACGGTGGTGCCTTGTGGTGACCAGACGAAATTGCGGCACGCCTCGGTCGGTGTTTTGAAAAGTAAACTCTACATCGCGGGCAGTACGGCGAACCATCATGAAAACGGGATTAATAGTGCGGACTCACCAGAATAACGTCAGCATAGCGTGCGCCTTTCAGCAATCAGCGGGTAATAACCGCCCCGGTTCGTCATCGAAGTCGCAAATATGTCGTACAGTTGCTCAGGTGTAGCCTGGGTTGCCGCGCAGCGCATATGGTTGAAATTATCGAAGGTGCCGATATTGATAACGTTATTCACCACCTTTAGTGGCGGTTCAGCGATACCGGTACCGGTTGAAATTAACGCGTACCGGTTCGCCCAGCACGGCAAAGGCATAGCTTTCCCTTGATAGCCTGCGCCTGCACACCAGCAGAACAGAGCGATAAACAGCAGCAGTATGCGTACCAATCATCTGCAACGGATTTCCTTTACTCATCATTAAATGCCGCAATCCGGCATGTTTTCACCATGAATAATAAGGGACGTAAGCACACCTGCACCACTGCGGCGTATACAGTTCTTTAGCCAGCGAACAAAATCGTCTCAGCGGTAACGTGTTAATCCAGTAGCCTGCATGAAATTAACGTCAGTCTGTTAGCCATCGCGCCTGTTCCGGCGTTTCGACCCTTCAGCAACCAGTCAGCATATTGAGGCGTTTCGCCAGCGTCAGCACCGCGTCAAGTACGGGGAAGTGATCACCTGTACCGATGGCGCTGTACAACCACGGTCAATTTTCAGGATAATCGAGCGTAAAACGCTCAATAAGATAGATAAGCGCGCTGTGCCCGGTGCCGAAGTCATCAATAGCAATTTCTACGCTGACCGAGTGCAGCCAGCGAAGAGTTGTATTTCTGCTCTTCAACATATCAGGCTCGCCTGGTAATTTCCAGCACAATCTGAACTGGTAAAGGGCAGGGAAGTGAGCAGTTTCTGATATCTGTTTTAAAGCTTTACAGTAGATGGTCCAAGTACATTACTCAATGACGCCCAACAGCAGCACTTTTCTAATTCTGATGGCATCAAGTGGGCAATTAACCTCAAACAGGTGCTGAGAGTCATGGCACAATCATCTTTTGCGATTCGGCAAAGTTGTGAAGGCATCCGGGGAATTTCTCCCGTGACAGGATGCCGCCAGCGTAGGCAGTATCTCCAGCCCGTTACTCGCAGTTTTGTATCCACCACCGGCTGATACGCCACGTAAAATTGAAATTGCGCTTGATGGCGGTCATGATTTCCTGCCGGGTGCATACTGACGCACGCCTCATCAGGTAATAAAGCAGAGCAGGCCAACGACAGTTCCACTCATGTGCCGCCCAGTAAAATGTAACATTAATATCGTTCCATGTCCAGTCATCTTGTATAAAGCCGAACGGTCAGAGGAATGCCCGCAATTTTAGTTTCACGGATCAGCGTCGGTTAATCGTTAACGTTCATCAAACGAAGAAAAGGTGATAGCGCAGTATTGCCACAATGAGGCGACGCCATCGTAATCTTCCCGCCGTGAACTATGTAAAAAAGAGTGAAGGCGTCAGGGTTGAGATCTGGAGGAGCGGCAAAGACGCCGCTATTTTTCAGCAAAGGGCTGCGATACCAGATGACGATACTGCGGGTTTGTTCGGCACCATCGGCGTGCCGGGTAAGATCGCCATATCGACGTTTTATTAATGTCGAGCGCCGAACTAATCTTATTGAGTGGAATGTCCATCTCACCGGTCGCAGATGAACAGAATGTTTTTTTATCTTTCACCAGCACAAACGTTCGACATTCAGCTGCGCGGGCGGTCGTCTGAAGTTACTTGCTGGCGGCATCTAAGGTCAGCGGCTGAGCCGGTCAGTAGTGGATTTCGGTCGGCAAAAAATAGGTATCGAGATACTTTTGTACGCCGGTAATCAGTGTCGTATTTGACTTCGTGCTTTATGCCGCCACTAAAACTGAAGGCAACTCACCAGTATCGTAATCATTACGCCTGCACAATGCAGGTAAGCAGGAGCTTACGTCCAAAATTGAGCGCGTATGAACATGATTCCCGTAATTTCCGAAATTAATACAACATTTAAAAGATAATAACATCGGACTATAGCCCGATCAAGACGCGGAAACATCATTTTCTCTGGGATGAATGAACAAAAAAAGCACCGCCTAAGCAGTGCTTTCAGTTAACCTGTCAGCCAAGGATTGCATCCAACAGGTTTATTGGGGCTGCAAGTGGCTGAGAACCCGGCGTTTGGCACGCTTCTTCCAGTACGGTTCATTCATGCTGAAATAATAACACCACTGCTGGTGGAAGCATTGACAAACTGATTGTTGCCGATATAACAGCCGACATGGCGTCCCGTTGAACTGGCACGGAACAGAACTAAATCACCCGTACGCAAATTACCGCGGAAACAGATTTACCCATTTCCCTGCTGTTCGTAAGTAAGTCGAACGCGCGGGAAGTTCTAAGCCACAAATTGCTCACGGAATGTACGCTGTCGAAACCAGAACACCGATACCTTTAGTGCTGCCGCCCAGACGATAACGTACGCCTTCCAGTCAGCATACTGATCCATAATTCGCGATTTGCCGACATTACGAACCAAAGAATTCATCCGAGAAGTTGTGATGATGTTTCACTACCCACTGCACGTCTCAGATGCATATTCTTTGCGGTGTTATTTGTACTACATGCAGAAAAGCAGAACTGCTATCAAAATCGTGGGAATCCCGCGCAAGATATATCTCAAAAATCGGTTGAGATTTGACCATGTTGTTTGTTTTCCTTTGAAGTCCTTAACCGACAACATCGTTATAAAAAAACGCCGCTTATCATCGAGACCACTTACCCGGTATGTTGAAACACCTAAGGCCAAATCTGTGACCAACGCACAAAATTATATGCTGTGAGATAATCTCCACCGCCGAGGCAAAACGAGTTCGAGATTACCCGATTGCGCGGTCTTGGCGAGCGGTTTTACATGATTTTATGCTAAGTGACAGAAAGTTACTGCTGGGTTGGTCAATTAAAGTACACGAGTGAAACGCATGCAATCCATTCATTTTAATTTAGAACATTTTGCGTTCGATAGATGAAAGTACGTAGTGCACTATCAGGATTATCCCTTACTATGTACGTAACCCGATGATGTTAATTACTGTGAGTTATTTGTTTTGGAAATGTTTGTTTTCTTCCCCGGTAGTGATTTATTCAAAAGGTGATTAATCTGATCACTTCAATGGCGTCAGCAACACCTGTGGCAAACCGATCAATACTTCACGGTCATCGAACCTGACAATGATGTCAGTAAACCAGTGTGCGCCAATCATACTCAGGGGAAATGCAAAACCACAAAATAATAAGGGCGATAAGGCTCGTAACTTTACGAAATAACGCCACATGAATGCCGGAAAACAAGGTGCATCATGCTGAACAGCGGGAAAGCTATCTCGTGTGAGGTATCTTCGGGGAACAGAGAGCAGTTTCTGCTGACGCGAAGTACATTATCAGGTGTCACCGTTGGCTGGCCTGTTTTACAGGAATTACCGCCTGAATTCCAGCTGGTTTAATACCACCGCAGTTAATAGCATGACTCAGACCCAATAATCACGATACGCTTCCGTTCCGCCGTGGCGCTTTCTTTTTCAGCCAGAAACCAGTACCAACATACCCATATCGCTGCCAAAGCAGTGAACAAACTGTCGAAGCGCGATTGTTGGCCACGCAACCAGCCACAAAAAAGGCTCTTTACTTTGACCAGTTTCTGGACAGTAAAATAAAAATATCCTAATCAATCGGCAAACGTGAATCCATGATTAACGGGGATATACTCGAAAAAGAAACAGCGAGGCCGACAATATTCGTCAAATACTACATTTGGTAAAATTTTTTAACGATATTTTCTCTAATTATCTTTACCGGAAAAACGAGA	,*/11:989 at B,1+,,+15.12+*,/)08340D/</64?E3,00/2-:6=/BG@<CDE?>55=@2071159<=BBD:5FD59;+):5?<20).)?>?;=@7 at DC<9<;91>BCF==:D:DG=170+(,-*(*0)&*))&(&(++-)/-+(*()0/-0</53 at 7982./53849.?DE96<;8.>BE=;E@@EDE at F<F at 9D@<)?69??93,()+4'+*((/,*.-.-233105<A1;@500-49.6.>B=>21-/,0//99>,?DC0+;9<?ACEB=?91*'+,12=A,++6.6-*.6--*-*1+,'**+**(.4-17DB at 2=>>AAE<;<?@>D:;7?DD:<2+3/-3)3323/4:3?/)'./&032(<7901'11@:;9;18++&**=;;6=F;8505E at 28<?=:DCADE5;@>=31-&(+1C5=<?2.33.+.*(&(*(**/+*-+0++.4.-,.*)&)&2$,.443>>64))&484-+)'.8302355@@B654E3?-;3+.-*('&'*/-7E>DA?*><AD>:8::;60A94)887770-)-92036-7).16)-..23)&(()0..2/D<B:01A3B93:F;1C9...*(C46DB1+.,,849/,)12<-9)167C=BA==?><8<>B>619@=9@@?@>9:?:-*+1('40AE>?>AF>461+>:=:?:CFF8;A=:8:@3-549991/.049=1*&&(.6.4;@<;?E-+&'<A8/5=5?D273/--5,-''+'.+/8970.-)/980B09.('.//1<9&+1>A4222+'&(-+21B.8--(*('9,==123226*,*)*6(;336;465(.-**.)'+*)++/,('2.;CEE50/%$'%(%($%(%)%(*.1(1*84865:9>><@ECD.*(0+,%*/'28:0.-+)+(-'&(*4,*()).'&)(.<CC7./*+,?/05<=:>AA68:882/064;8<EEF<36041468.23-:66027?28FC/BD81/*',.A7<?C@;84.91/6:<65=<;600:3B357<A+(;,()+&'',+.C54,9-A65,668)733;8C7=?<:ED643*3.6->=;<1+'&%&=331:3:969769B:/@@==DFF<72.+++2*88:7210:A:85@?6/0C//>/>-334,5<7)&&+(/8 at 7AC84512)-D8;.*''((''241C41***+*0-1@?2/28:1-,'/-4896>:<?>682.)'()*'.3.3.-0-'*(++)/.-20&(%()+0:>/3184+/3173@;A:BE=/=2103:521,*+-+8=7?F?/6AE7B@/1+31(*46/51.05-C<>@A=D,+,?6562882338@>:A@<:.,,1++/)&2+36201=DC at A@*=B736:;C20DA5***3&2)6<@37:88564 at DE>>C>>@?5.+&$(*'*'*))-8'9+3+.:81<<>D;;G4>/1+)+(34B6B,).?=8=45&&+,-9@<7>7?>?;7/.1*33D=<5D:4:@@A8?0:A=-'(,35+-.?>41344=:>7;?A?737EC10'(+)*7-.70*'(,))(()'&())(+CCA5C55+,/*(50&+)33314A7/+,,*(.254*,)/(()?18&&/.'&+71CB?=>9<,&%./1-.0((&,/.4632:=<6<664'+)(()58,610//,%+,.13/''+-&1,-6:4.0-,,.'*31+2)).?/6:45A6+A<7-.++(.,/:--,7CF;3333*,83++'.,++(+(+()4,/<8?-A=B>@01(,'-0,12*/(/244286+,3<C806)6,(++(11=<<4102,1-*.1<292=:?DB=>@..40-:94<@CBB>@>3?=;;==>53)=?60.,*+&)96+B<E@>5(521=9659949.7;,406@)DA<5<-?>>@8CDB>A82<4.-4252008&+,01=;06;6:==.**,%*)?*A1319<328D=527:47<:665''(0(,,/(,*'$)(*/-0,)--=9/0)(&++*,)*+223311-20228/07,:><>;?++-(()9CDD/62,4()&'(5;455.:0(,/+1017:<F?23&''(0'-+-((%'$)8'05013,8.>C at 2.-//>@<5</0,72796?/),.*461;82:65;DC=0,5/22/,/*(+534*'(@3/0.0;)+%0.?@881,2<B4303%%/90-16*1;=B=.*43202159/==>B at A7-,=),-..=;?:982A?@<-2,/0=D8187:7B8<88>4446*,+/'**=??2?AAE=3/7-6:4=A>9B990-(&'&%&%+,2;<9<644<79=;<;8 at 8)35***&&-)5+./*,&'&79@<3E:+*;8=?<-4,B;5.,51-1/'35>5;DC<82,<<56C1-+6/,=4.1-+*98-/382433)'$(%27;A:.*'40?8757@@C at 83/,/0+<,.C?>@22<;.*)+-0)+&$%(-0,((&(&((+..22<D>?:0()'')*4*30-196<D:E50*92*&01987*+)++;><0-+(.44126+1::1*5E>;689>8<18?<>8E767C@>:+*(43('*,(-*+)7A=--5),/((,485;9<<AA/.;1.+..,/BBFF;57:5,9:5('&$*+)).-/++&&('')1/**4+/013D6 at 7:C at D=7:*7?C99,*)1*&'+35/:2:<0-**4A at 4-)++,230.99BF6A5265>?711/+3A3034524=A9A57.0.>1EGC<EC>@A0:,/.,0369((0/39/5=223+*++/8=-'1E6,++)+,+@:/0,44+++(5659008:8>?C95@=3,32=@7224?3<57267595>915780838/;?A>>3<A:4=./..;72=:>59:9>:?(@*?F;2E<:<.;200:/02765.0+/1125=@@AA10-,7323><B??DFDCB8,/++(0-E at -:/8300977?ECD9>C=.1>0>89;=DEDC%%00+/8)=AE)((5%**''+,)17:5(44.13>2=A0*))&*&''+50/'<8;3*).+&+,.;;5,))+(('+A1C;<*&+-()-*)-+06.61/*+.+:981,C7541)(&)+20-,'12.059@@>:921&)(&+0./A3-282.021547 at FF=AB-*()/222315/,-/)'$'*0*>7-*&55/3;1B0DCA<?:E@>?>>9E<6519<88,6,/AB>@A9A>98@/@92/)&&-.11/;9:?BE985C at EC?=;6.+)046,/&+&++3>>7:?D:<:@F40-,5*,0/,1'14/,*,,*'/.0 at GA>7700110==<.%'+,'77653-.**%)+),(,*.1,<B4//+/44/*,/-3532;89>-)045746434=2 at A0--8/.964A8:/2/:3(4.<''9;84-.077;800-285+*')()(*,)-1'1242.,++()'*..+*-5:+=<?AC?A<54+1+2-2+DA99=AE=?9;::5=3405>:44+,**02++)/489<78)*(1603072*''%),(5>1-*%(')-)3')$&&.&'+'')(**(%&)+-.268-1)::398:8>882/=;=?()1,+8/2=44329:(:3+;---.765/<5?;>=>??B=@27*+,(3/(.<72-9558F?F at BBB9.-&(.5912'*&.0C8DEC9>>:?A at C92481+2*:C..1>>>,))3(0,&&'*(436,9/54<>63+05-,947 at AEE:7A70,4(<6<:;67/+-99;<7--2776A57;8<5/2/..+',.10,74-/.<>BA?>EA7=CE?:><92,,)+(++/70/1''%((34EDDC@>@;1)%%**/5 at 163=8./%(%)*,)7295?>57659=::77<>?@??<:?=D916>.;;/2/)--48)*&'(..2578:<8<::33/19-)5:<=>?D.-3)(8(9174,/)(,&2*-BC630-'<0/)$'.*87/;.31.1/,0'(&%'&.///5-=C<=CD.A;4-('7-,480:;937 at 68GF95>=./.)'080809:-+(,&()*,5220118/E>:9:/4=32*/;-*;=874-:.-/.(:=/2*237?0;895?42-,),+-;C at 2228/1.(+01'-5((+18,E>C@@?>/++/+'(%%'(:;57//.'.)6))*,-/&*''1)(*),(()(+BC2<7F837.*2>/00298/*)+++,?6380=>384.(&,4*)+(2,58:323>19(+'&+'+0)'''(-9,5126<2)(-)'.1872.,/0-0()-2+/(/'((6221*)&'&&38<('0&&/*4,,0BGA?<685925:.-((+++(>8244:=9 at A+)*44/)(<=A.2C51>1-/10357C=,.,1, at 387::,,2..1499,)&/179?AABB>837.3211(+).+.4-.'2,03-1&2*?>:2,)'0-=*).=0.+--;895=>B8*;)1,=@=:;>7:82.0ADD/946622156('-00DBD=?B at 8:<:545/-)1+>*,+--(-15.73%%:58'059<9.>@@??C:26:04,3-,139144:02.>94861;9=.8432,66417<B>?@?E@@0;>=2*+)00)**,(,&58799?@C@>:;?3695963,+-64.+.3,052859;:=0//=5=A==/B>F>A?==5AB?/0.>;764;<,')))'+-.CE/A-/()8.7:?7,,.6.;::=1.0036 at CF840+/3?=968+()%()+*'(+*14;7/=714<B at BB<<;<6E761285A(>@:<4=D72+*',,-DAE388651ACCC<;A<8--<6+*0088<)),')+86@?E?8=GB3=@<;->45:6CBC<78>9;A6.27'52:DA=>?D?CD5=8768-+'(*(2EB=FE<?005534:@444,0(0'-...40%4<26535.)4210,02=?CFF<-,.1.*:?@DC at 9:2;8D8((-<-%+)021/,)&-@, at 521:8685(.=-?D?46;;;EEBBE8..5?,059EGDAAC34./0*,,074;0//?C92-*')2/*.6*'&%$&%12,-<5'**-,('&'(&&(-(*'==:9&00)'-+3621>8?75=98:45..0.(('5;::7658639;9;92,-594400'/110*.5=?@?:9..021:2.CD;875//)0.45A842.0),0:>:AAB:?>=1.,9.1+/=<48794..4,//,4A:--=@<@<38.0./1.38516430+*2%22:5748-*(,(1+.5*10/?7+1-,,./61216CA;ABDB1BAA*)),,23888==CG?;424140.81/,77.,0,*/-86*+)**++/7186914685,/.,*&).,2'(*6;<9@??9;0.5777C7=?;.+?:3GC2CDA8BA83(.+(.0?4DFE@/.;1--<DC?;A<;AB0<:.'(-).-61/-2;55:6<6C5>-'?('+'',++/813D3-/-.4>4*'7/1@?366+--4*+*''&)(644/573C78?:=;1-,/4,'%'%&**8)=3>A=@>E9EDC;7AC??520+,6<:1.55,.:/4:789.D at 3=1.960,+'-57;;))C3//D8FA;AC at B5??80//.()%.*4:31.'&$+(+0*14>CF<0../)+-8=DC;40>59-:GA?==;>9@>75@=CFADD98.,+0A-G?C<658C:7893+-76+<:03139036435<2?%*<<<BD9;052**D>4@=A;:/;563/++3:3=8-.-0<1?>E921+.0,&&*))A at EDEA@?9,-9*;84,3(&,55*.**,)+.),1009>??C1+/3.562+/*/0:3EED<BCCBB>?79CCCCA??6B6=3>8/-/:2')**(538263=7:,)'%%&*1*.(++//14*4,(+()'24?=<948=7544+.,91.1+7/-+.++'('118;:;6982*/B33.=/.%()14<1)*))/+'**3>@>8CA3-++,/=+'4)0+&&$027*..*/<98:6;?+6796>@6=:9455449.FFG?79CA,9BB*((/+6:BAC>@+?A8E3-91+1;3/?5<:?@04,18,1)<A74E='.)56<3*'. at CDA?>.9=7*)-0.107-/7=@15+9(3:5611*2'-,0-<'()6'76.-/5104-255(1))&()(-,?-<1<9=CE@<9657.,+(()02;98050+080?B9=>383:8:-=EB-3?<801<;=9921;@3>2C,:(3/?<54-6&+*7A76D>>C>7./1223)13-)(.%((,&)-.'3/=A<*<.2&/3)+(4=&/)./-/B-;5 at 62,,++'/01,,,C876*6+3/=17BCBA;89,+(&')*/2,++0..27;2.+76++81--:5C1ED;6+.+*'((&-(5+*7,23:/,-3+/22-()((()(*(+'-.*0(.**+-89/.)+,?.B@>0430/260;<A at D?DD,96;E7-C?F at 2;<92(*54<8+13-284?1-53*+-,+++*')+=<F6>3(((352/+)*+(0A2 at C1/-,,)**-**(4%('%&(/B65-85,((-**+*-&3(:55622162 at 02'?>>@B632102822-1056@>:69::87;1;4-0--,,--()991DGA.940FEE2AA8 at CDA6C>;>*,466DB>*(=>%1,-*14,.3,'*))4-*6>:@<<8;769>;,)'+*4/**(),++(%/-44>:76.,021/.-,+876A22/2.-5,52-0*-,11./0+*-'&)/97>86510-./32240')32/9;9:,)'(((-.63432*%*2(+)*/+)*(++-'+'$&.*212-,'%'*849>7*)*+(,%*+.)(0022/55BCE>.0*,/),(),330/*'('+625221.),+*)'/7.2.620<B+1(*-.1'0,**-*(0+++0*%)((,)+-/&.1=;544,/''&-*&+,(+&1,->3,430.7(*+//577)6>522.105542=60/=71*,(*(211/667>=@@>>66+,,(((,</7656*+8.6=@5,,,,*)07.%'*+.%('/19:>3))++*'++-?DE>7;GCB=%(+.-&)1*--2-.8615:)-1.40A-+.5.9876A4./E=0,+*&'&('*(0==/,2;6,+.+.0(.,-/3-+((/A-+((),.*')()%*+,D=*.%*./?BCCB33+1*&('')1:2,.*,.1/...,-85.--(02BC7-$%%$&	MD:Z:1G8A23^A10G0C1^G8G3T0T18^G0C9C0^C27T0G13G0C10^T4^C1T1A0^A13^G28A1T1^A13^C6G29A1G3^A14G8C1^T3A43A19G6A0T15G8^C3A0T4^T0T0T0T10^A28^A4^A3G21^G2A3^C1^G8T0G3A4T0^T24G0^C6G3^G21^T8^T9A5^A68T2^G39^T0T2C11A51^A6T0T1T0T5G14^G4G3^C2G22^A1C0^A4C0^T2G29A0^A1^T20C2^T0T1T11^A0T5T0T0^T1^T0T6^A0A27A1^C44^C24A3^C15^A2^A0A1^T10G2C0^A5T1A9C2^T0T3A15A2^T17G62G5G0C0^A5G21G27^C6^A0C27^T0G0C2^G6^A9^T0G0A0A0A0A1C15A1^G0T3^A32^A33^A0A0A7A1^T12^T82^C2A38G23A2^T23C31^C30T0^A1^A0A1^G2^G0C22T11^T11^C6^A0T0C0C0T3^G25A10^G1T39C0^A12^G0T0C1^T20C0G7^A8^A23^C0C35^T15G27^T6^C0T28^A0C9A35^T22^C17A2^T9^C4C0C3^A1^T15^G0T0T0T0A0G0C0A8^C74G4^G4^C20^A71A36G40A22^C5A1^T17^T11^A0C19^A9^A0T2C0^A48G23G1G2G3^G0C5^T57A5G0C10^A24^G22A15C2^G2^T0T13^C4^A27G15^C11T0^T32G0^C30G7G13^A7C1G1A7^A0A2^T7^A1^A3^C1^C0C0G0G7^G0C2A1C0^G11G8^C23G0C0A0^C4T3^C20^G16^A5^A3^G0C0C1C12^C15G94^A4^T2A14A0^A0A0C12^C60^G30^G3^A1G0^C1G15^A13G1C0^G0C0C37^A1C17A28A6G30^A23G30A0C2^T0T56^C0C10^T10A0T1T0T1A1^T9^C0C3G1G0^C0C3^A6^C1^G8G3G0C0C0^C24G0^C5A14G3G0^C2^G0C8G10^C0G0C5A7^C11A3A42^A6^C3^G2^G2^G13^G2^C0G0C0C0C0G18C0^A1^T32A0^T0T0T1T6^A24^T20^G27^A14G0^C0A0A0A42^A0A44^C15G1A13^T4A7A0A10A4^C6^A0A4A7G69^A62^A26^A13T0^A1A13^G5G2^C2^A7A28^C83^T3^A4^T6^G0C48^G36^A0A12^G1^A15T16^C20T8^G0T0T1A1^A47A0^C36A0^A3^T0T0G31^T8A3^C1^G14^G4A30A0A0^A24^A0C17^C0G1^A0T19^C7A2^T9^C8G35G1A39^C7^G2^A2^A0A24^G14^T0T1^A8^T34C0C1T6T30G3^C13^G10^T20G4^C93A11^T0T5T0^G6G1^G0C0C8^C10G1^C0A28^A5A8^A1G59^A16G0^G34C0G23^A0C8C0T0T52^A18^T14T0G24^T1G1^G1A0C26C11G0C15G1G1^G1^C14^A42^T10^C1G1T1^A1^T43G0^C1^G1^C6C3^T0A0A18G0T21T1T8A60^A15^A4^G0C1A7G35A3^T0T1^T1^T0G0G53^G17^T32A22G2A3^A16A1T0^A3^T1T1A2T0^T0T0G0G0T2^C1T0G0^T10^C0C2A2^G0G1C17A8A18^C1C1^T2^T22G24^C13^T10G50^T2^G1^T32G1G88A56T0T20^C15A1^G7^C26^T35G33^T1G0C1T0^G10^T72A0C3^G0C1T1^A0T0T31^T9A36^C0T1^G43G0^C71A5A11	NM:i:936	AS:i:26682	H0:i:1	ZE:f:0	ZF:f:0.567683	ZQ:i:7103	ZR:i:4734145


=====================================
testdata/r95_test_read.sorted.bam deleted
=====================================
Binary files a/testdata/r95_test_read.sorted.bam and /dev/null differ


=====================================
testdata/r95_test_read.sorted.bam.bai deleted
=====================================
Binary files a/testdata/r95_test_read.sorted.bam.bai and /dev/null differ


=====================================
train_model.py
=====================================
@@ -1,7 +1,6 @@
-import cPickle
-#import _pickle as cPickle
+import pickle 
 import numpy as np
-from plotlib import *
+#from plotlib import *
 from sklearn.model_selection import RandomizedSearchCV
 from sklearn.model_selection import GridSearchCV
 from sklearn.ensemble import RandomForestClassifier
@@ -86,9 +85,9 @@ def train_classifier(signals,groups,modelfile,classifier='NN',plot=False): #TODO
             sigs = sigs + signals[twobase_model][label][:num_examples]
             grps = grps + groups[twobase_model][label][:num_examples]
 
-        print labs[:10]
-        print sigs[:10]
-        print grps[:10]
+        print(labs[:10])
+        print(sigs[:10])
+        print(grps[:10])
 
         scores = cross_val_score(model,sigs,labs,cv=gfk,groups=grps)
         print("%s %s model scores: %s" %(classifier,twobase_model,','.join([str(s) for s in scores])))
@@ -109,7 +108,7 @@ def train_classifier(signals,groups,modelfile,classifier='NN',plot=False): #TODO
             plot_training_probabilities(prob_scores,twobase_model)      
 
     modfi = open(modelfile,'wb')
-    cPickle.dump(models,modfi)
+    pickle.dump(models,modfi)
     modfi.close()
     return models
 



View it on GitLab: https://salsa.debian.org/med-team/mcaller/-/compare/ecb0a82fb9d37058ece6e50d3e32aff5e68f4986...20ee86e6cad7216386777daa4da1f0fc87213e96

-- 
View it on GitLab: https://salsa.debian.org/med-team/mcaller/-/compare/ecb0a82fb9d37058ece6e50d3e32aff5e68f4986...20ee86e6cad7216386777daa4da1f0fc87213e96
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20210619/d9bebc4f/attachment-0001.htm>


More information about the debian-med-commit mailing list