diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 298bb76..1142333 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,6 +41,18 @@ jobs: mkdir -p $HOME/bin cp ./minimap2-2.26_x64-linux/minimap2 $HOME/bin echo "$HOME/bin" >> $GITHUB_PATH + - name: Install dependencies for samtools + run: | + sudo apt-get update + sudo apt-get install -y libncurses5-dev libbz2-dev liblzma-dev zlib1g-dev + - name: Download and install samtools + run: | + curl -L https://github.com/samtools/samtools/releases/download/1.13/samtools-1.13.tar.bz2 | tar -jxvf - + cd samtools-1.13 + ./configure --prefix=$HOME/samtools + make + make install + echo "$HOME/samtools/bin" >> $GITHUB_PATH - name: Test external run: go test -v ./external/... openbsd-test: diff --git a/external/minimap2/minimap2.go b/external/minimap2/minimap2.go index 46a1cdc..274c261 100644 --- a/external/minimap2/minimap2.go +++ b/external/minimap2/minimap2.go @@ -20,12 +20,9 @@ For more information on minimap2, please visit Heng Li's git: https://github.com package minimap2 import ( - "context" "io" "os" "os/exec" - - "golang.org/x/sync/errgroup" ) // Minimap2 aligns sequences using minimap2 over the command line. Right @@ -69,37 +66,11 @@ func Minimap2(templateFastaInput io.Reader, fastqInput io.Reader, w io.Writer) e // Start minimap2 pointing to the temporary file and stdin for sequencing data cmd := exec.Command("minimap2", "-ax", "map-ont", tmpFile.Name(), "-") - stdout, err := cmd.StdoutPipe() - if err != nil { - return err - } - stdin, err := cmd.StdinPipe() - if err != nil { - return err - } + cmd.Stdout = w + cmd.Stdin = fastqInput if err := cmd.Start(); err != nil { return err } - // Create an errgroup group to manage goroutines - g, _ := errgroup.WithContext(context.Background()) - - // Write data to the stdin of minimap2 (sequencing data) using a goroutine - g.Go(func() error { - defer stdin.Close() - _, err := io.Copy(stdin, fastqInput) - return err - }) - - // Start copying the output of minimap2 to w using a goroutine - g.Go(func() error { - _, err := io.Copy(w, stdout) - return err - }) - - // Wait for all goroutines to complete - if err := g.Wait(); err != nil { - return err - } return cmd.Wait() } diff --git a/external/minimap2/minimap2_test.go b/external/minimap2/minimap2_test.go index 9ae45ed..b777959 100644 --- a/external/minimap2/minimap2_test.go +++ b/external/minimap2/minimap2_test.go @@ -28,7 +28,7 @@ func TestMinimap2(t *testing.T) { // Prepare the writer to capture the output var buf bytes.Buffer - // Execute the Minimap2Raw function + // Execute the Minimap2 function err = minimap2.Minimap2(templateFile, fastqFile, &buf) if err != nil { t.Errorf("Minimap2Raw returned an error: %v", err) diff --git a/external/samtools/data/aln.sam b/external/samtools/data/aln.sam new file mode 100644 index 0000000..cedf8d3 --- /dev/null +++ b/external/samtools/data/aln.sam @@ -0,0 +1,63 @@ +@HD VN:1.6 SO:unsorted GO:query +@SQ SN:Cn_Pp_Killer-alpha-MF-Delta LN:251 +@PG ID:minimap2 PN:minimap2 VN:2.24-r1155-dirty CL:minimap2 -ax map-ont template.fasta reads.fastq +cfb82bbe-269b-4e6d-affe-88441c17abff 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 99S251M123S * 0 0 TGACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTGGTCATAGCTGTTTCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAAATAAAGGTCATAAAA $%()*4AB@AA?PSKLMIGMS@???;<;<<>A@@OHE7777LSDQSLSSJIMSDEGG7777BB1111:>EGPGDSJOKSHGPKLKSSJKFSSFKFFGSGGDJFJSPJNOOKKSJSHSKSSDCDCDRHJJSKLLKKSSHKESOKFSJKSPSJSSKSGFSINIIFMSSNSA@?1111.)))))=>GMBE@>>CACSNQGGMSNNEHCGLSHSMKIGSS<;???SMHSJSKSJIJSISMSSMSSHJSSKJFMMSIISSCABCBSFHSINGSLGA@@@ASHJSSSOHIOLNSMMSMNMSLHSLSHSSHISSLFS44;EBIFDD<;-,,,*.GEFSDHPJKNMQJIJSMKMFISDE8655/)***+78777777633336@>==?0---.SJSJSSCB:2)((,4BEHLDEKJGHKSSPJSIKHMGJILSIH?44334>>CB==3,,-,)')%$$##$%&(&$# NM:i:0 ms:i:502 AS:i:502 nn:i:0 tp:A:P cm:i:39 s1:i:233 s2:i:0 de:f:0 rl:i:0 +4feeb657-f83c-437c-86c0-6befd25ff849 4 * 0 0 * * 0 0 ATGTTTATGTCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCGGAAACAGCTATGACCATGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATCATTACGGATTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTTAGCCGAAGGT ()(++)&''&$%$%%%&&,''(42655544@?55566EC633:/98=>?SKDGAA@BAMHMLKFNEKISIGEIEFDSPKJFFBHGISSLFEHMSSOSHMISSIGIGCDDABCIJFCEEDG:667?CEA@@@A=-++'%%,()+)'''%%&&%&&&%%$$%&%&&$##$$$'%$$$%$$$ rl:i:0 +0982afd4-ad4b-42f9-a0e6-d181326a6981 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 102S181M1D20M2D47M120S * 0 0 AACCACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCGCGTACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCATGTTGCTGTTCTGCCTTTTCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTACGTTTAACCTTAGCAATACGTAACTGAACGAAGTAGAGGACATA /.001178:<<=;;===><78878::;=>===<<<410*'&(()-59@@AA@?=>>=>>>>>>AABBCE???>>BAA?>=<<==??>???>?@@???<;;;<>??:3+%)&&&))))++?@@>>>=::99:<==;:::9:;;<>==<;;;;<<==>>>>>>>????>>><<=<<>>>>===<<=>=?B65967799=<<;<>>>?<<:::<<>?A=<:8899:<;9898:99;=@@?<===<<;988889:;89999?@A>=76688<66@:55657<:)))):9977::9=>??<<<<6-**4>>98888;<>BB,**9:**23;AC?><;;99,/8:>=>;;;;;>>>???>??;;:9988899=>=<<<;<<<<922+***/:;;<=@>>>?>><<<=<<<;<77((/0/346;936333338765557890////122132243333,,,))*''%$$%$%&&%$$ NM:i:3 ms:i:483 AS:i:482 nn:i:0 tp:A:P cm:i:32 s1:i:201 s2:i:0 de:f:0.0080 rl:i:0 +52cc0975-b468-4f03-a443-fc561883290b 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 98S31M1I18M2I142M1I60M125S * 0 0 CACGGGTTTGGAAGGTTAAACGTAACTTGGTTTGTTCCCTAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTCTCAGTCTCTATTTTATTCTTTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGGACAAACCAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAAGTACAGAACATAACAA $%$%$$%%%$$&)*)'(***)(((())(((*+--0,('()8;99888986555544543555765211236663210012566877543411222444565++++-753211235444333300/((()*+*---,--.////111-*+0344554455544323..//-----4544554676667533200112443455677754222348211//00140/0//2./02454344445410///../..1127886664333357776644330100023665544*(01000559:96554455210002369:99:99::87765321112444543-,,-------32223366543101125655665677876532222355666666898776566556678'7'&&/(+3353110/01146554333355652111135566311,,*+%%$####$$$$$%$$$$ NM:i:4 ms:i:483 AS:i:482 nn:i:0 tp:A:P cm:i:30 s1:i:210 s2:i:0 de:f:0.0118 rl:i:0 +0f6d0cd8-9e0d-4f0d-b2d5-c4961840f817 4 * 0 0 * * 0 0 ATGTTTTTGTGCCTATTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGAATCCGTAATCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTAAGGGAACAACGCGAGTTACGTTAACCTTTGACAATGGT *+,./000+)&%%%%&(')28333229::BAAC66CCBCLJHMHOHGISPFKG88888:?7771CDDGMSHLIIMMKGIKKHSLBCBCDIS>=<7NFFHNHSEMHHIKLFLGLFHFFFEKIINGSE80*&&&'*,.-,)&&&&&))/0;=<<=BDDI:0**))*)), rl:i:0 +28f1a87d-bdb4-48bf-96d9-ed443b0d3ccd 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 96S137M1D3M1I49M1I61M191S * 0 0 ATTACCATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCGCAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGTCCAAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGTAAAACGGTAAAATGATGGCCAGTGAATCCGTAATCATGGTCATAGCTGTTTCCTGATGGGCATCGGCATAGGCATAGGTGCTGTTCAGGGAAACGAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAAGTACAGGAC (&&((,)(()))>@@@>?FFQMGFBABEOSGFSKHMPOHRGISSIFGAC@DFIESSLLMJILLFDLJMKSNKSGRLSLSSSGIGSIHIJLSLIHNSSIJOSSISHGJHFGGIPNIJNMSKKLHHHSISISMKSLSHLSSHSSKSKISLGMECFHGSS00000DJMIKKKIKHIHHSHLDRIOISFGEFFCBCCDA@ECCFDBCECCD43337;887944334999GJFHFSHGEH>::9=>=ADGSGEKSSGNDIMB<,,,,->;;BCFHJG77777>>>>IGELFFHJSOQSQGA@@?CGEFEHHFKMHJA@444;SJMSLJGLMJGKSNIRJHHSNKHISSGLSIGGG999999LHIFGHJEMKCFCFJIHQL((:560-....11HFESISIJISKIJSHSJSIKGSLSGIGSIIHISHSMMSKHHSSHEIHSSS55566GFHSLJISESJF?=2(('&(''''<;;;=IHGGGEECC2222224CCABC877794420/1&&%$$###$# NM:i:3 ms:i:482 AS:i:482 nn:i:0 tp:A:P cm:i:33 s1:i:206 s2:i:0 de:f:0.0119 rl:i:0 +4f246d6c-45ac-4c80-b0e1-98d9c195ff18 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 99S138M1I2M1I6M1I101M132S * 0 0 TACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATCAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTTCTCAGTTATATGTGACTACTCAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGTGCTTGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGACAAACGAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAAGTACATGCCAACATAAACA &'(**---..38777422212443342223465532111128986555687654522211444654100115653310112577877655655444223224566666421111465543322/.../255444322334555556554444444554332223334344456766111115546433212224654566676755332335100//1000/*,,-0+++,-,,)&&&&''(+''''%$$$$%&&%%%&&1111132--+**/25434010/02367320.('(()*-/3227643222001223457888878889986642111256///0..()&&&%'''),.000211101111268777756667744322456:9:98777677666677666689854474////05432222454444344567633322544577881.,,('%%$#####$$%%%'&$## NM:i:8 ms:i:446 AS:i:446 nn:i:0 tp:A:P cm:i:32 s1:i:196 s2:i:0 de:f:0.0320 rl:i:0 +93f676c4-ab56-4f41-ba60-2aadb5d8172f 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 125S120M1D119M1I6M1D4M187S * 0 0 TTTGTATCTCCTCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCAGCATTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAGAGTATATGTCTGAGAGAACGTCGAGACCAAGTCGTCATAGCTGTTTCCCTGCAGTCTAAGTCTGTGTCTGGTCTTGATCTTCATCTGTATCCAGGAAACAGCTATGACCATGATTACGGATTCACTGGCCGTCGTTTTACTCGCTTACGCTTGAGCTCACGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATGGTT %&)('%%$$###%&&')+''())6622//144:=@?@CDDFEJFGSFCBA@@GF22222>A,)))++:;AJGLHDDC=>=>GOFIEISNFHHLLD>>DGEGGKKECDC<==;=;;:5688<>?@DEFHDGGEHGGHESJSIMSHIA=>=B@A@DBCFCFGEOHGIF<9A<00:789C?@@@BDBB@AFGEHEEGMKSOSHPIFDDBDDJC@@A>ABBB@BBDEHEHGIPOIOGNHGC98211000114489++++>?@BDDIICA@ABBE6666<<<<9:<=?D<;::;>?@>:::,,,,,3336867659:87000022469785012547456:;>>?@@321/232,+)**,--.2..***)**/))))1331120188;<=;783111//0-+,-+-<=@BBDDB@?=6***222222FIEEDLEHIGEB>==<;::>>DGGFDECCBBACDD?@ACFEFEHSHHHSJJLFSIESHES<;;;;CA>=<;<@ABGB@=.*((()'))(((*29665////0353.---.455766657888>=>>SHPIMI44444LSIJSGHHG?<<=?>?=?ACFJDBGKFFLDIEFSIQSKHQMHLHDFEGHHEHGEKECEDDBDDADB<<<86421+++4ADDJLFLFFODBD@EDE@@B?98:<0000BA@@CDEB=4.)+0/.,***+46=<<51/0EECGCDDLDE@@@A@GJGFFLFFJEBGFF-)C==A@?@BBCGEHEGGSREGECECIJFGCC971.---.5=AABABBDGJSFEPGJSLFJHMKQDCB>??732-)( NM:i:7 ms:i:457 AS:i:456 nn:i:0 tp:A:P cm:i:34 s1:i:202 s2:i:0 de:f:0.0240 rl:i:0 +82c9ec69-067a-426a-8230-cf788adc26eb 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 93S31M1I61M1D158M152S * 0 0 ATAATCGCCAAGGTTAACGTAACTTGGTTTGTTCCCTACAGCACCTGGCTAAGGCGAAGGCCAAGCTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTCTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTATATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATACTGTTTCCTGCAGCTAAGTGCTGAGGTGCTGTTCAGGGACAAACCAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAAGTAGAGGGCAAC *)+,(''&&7>??.-22266/--,+-*+1//.*'''+?BBC@?@A?>?>>@@@??@?><;<;<<<=;=CA?>>>>?BCEAB?>=>>??>9998<>>?A?>>>>86652-++++,+,+'''''****)))**+-58;>>??====??@@>=>>>?A?@?>>>>>@??@A@>><<;==@@CC7733247>:>>>@ABB??;;;;<>?@>?>77777888>@@><;;A@B@?=;;::;;;<99::;@AA>>>==???BDDDBDGBAF=;<88:;;AA@????@CDEDDEDD66667A?><<;=?AKFREHFHEEECBBAAA?@AACCDFEDCC@?><;;<<=@BB@@?=<==<>>=>=>=<:733///00////,++++->;<;;<==>>AA@@=>>>?A@@?@?A@??@<<=>>ABAA@A@BA2444;<33334BB?>=>>??>>>=><<==>A@>>>=????D??>60-,&%$$$%&%$%%$$ NM:i:2 ms:i:488 AS:i:488 nn:i:0 tp:A:P cm:i:32 s1:i:211 s2:i:0 de:f:0.0079 rl:i:0 +f7a72033-a105-4825-96e5-707d16491f5e 16 Cn_Pp_Killer-alpha-MF-Delta 5 60 101S124M1D1M1D120M124S * 0 0 AATCTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCCAAACCACGGCCAGTGACTTACTTTATGACACCAACACAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATCTTCACTGCTGTGCTATTTGCCGCTAGTTTTGTTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTGAGGTACAAACCAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAATACAGGCACATAAACA $%&'+,,,3346788754543343456587767780+****::<:9989:9988898876799741.+))))4,,,,7799999533*)))(((((.+*)))''''()((''''+++*++0/..//95654442346887776665665676676666555556666666777776666555642210011267779::<652211124640..)'''**,+****+002211001200011112//0103455775565688876767674432234777765456678889;:644335522212457::99999:::99765211113433366622211444666654100012333467556667888755433444668777784474445587'&%$$$&))/0/////542111236555433345210///.++++)(&%%$$$$%'&'%%$%%%%'''%$ NM:i:7 ms:i:448 AS:i:448 nn:i:0 tp:A:P cm:i:30 s1:i:204 s2:i:0 de:f:0.0283 rl:i:0 +b32b6160-b168-4b09-80d8-38777c6ed388 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 99S143M1D12M1D83M1I4M1D6M118S * 0 0 TGTCTATCGTGAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTCAGACCACCACGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAAGAGAGCGTCGAGACCAAGTGGTCATAGCTGTTTCTGCAGTCTAAGTCTGTGTCTGGAGGCGCTGTTCAGGGACAACTCAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAGTTAATAGGAAAA &(+*+,,---.SLNSA@2221155598767999>C=97667KSSMLIIJSHKFSMGKHSKMSSSIIOSMSJSIRHBDCFOQLIKNHEFHDGGCFGHHGKSJKNSHKKHHMINSLHKLSLILOIQLJHGA532445556B@GEHGNMSIIISHJHMIHSIGHEPA@?@@DJGEECCB@@==>@ASIDA@BECJFSINJSMHSHMISSLFGGHLGSHGJJHFDA@<+*)('''(())),,,++)('((+***'&''41////088>DH?>BFEELIFDEEDCAC@ACF@AGFIGHGSEF>>>>@IJGHIHGSKSSFDFFFGHDF44ABABCCBC431////.008(((()>@?@85777?@@AAC>==>=<*))??EED@@ABHPFFFKC@@@;;=*****;7)))&%&&&&'&((((*;;<@BAA@>>>>>FFFBBABAGGFABKFSGSJSSKHFFDFSH91126<>?NHSSHSKSJJLSIIIJSPSGSJFE70..2DDCEEEB<;211-&&&&(&&%%&&&'('+++++&&&%%%&)9=?>@?@@ISFL@@?>1111)(''',*..11245CDHEDQQIKPPSLIMHH33333=>BDGIFFDPM:999:HHEJSHIJM66666JKNSHSMSS=<<<?HGKKGSMSSLSOLIEJLSJIOMKSSADSC?>12EDFCSLISMJISIHIIPKEIFD@@90'''''03;;2110153334..:<;;:;PFOSCBC<<=<=><0/ NM:i:6 ms:i:451 AS:i:450 nn:i:0 tp:A:P cm:i:33 s1:i:207 s2:i:0 de:f:0.0206 rl:i:0 +0ca02773-a131-4cfd-b5e3-f59e0ad69ce4 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 114S127M1I71M1D52M125S * 0 0 ATATATTGCTCGACATAGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTGGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCAGTTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTCCGCTTCTATCGCGGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTAGGTGTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATT "##%$$##$&'&''&)*****;;78777??BCCDFFMGFEHJ@@>>3,/.***23AA@@EJGFHA1---9FSLMGKLSIJE<>3,,-?>>>AB@@A@CGQIFEEDDEJEDOFGHFEGCCCDCDGFEDECEBA@ABEDA>><<(((((?@@@ABABBDD>@C@?AAAA@AA@CDBCFC;=CCCBBBBDDECDHEB@A??>===?CC@A@::::@BCCBFEFEFEENEDE:66777;543333&%%%%&%'(122<<==B?<;::;<==?@?>@>>>>>=11111000899965444559?@@?>=?@?>886771180*?77???A==:**'&&&(677697<2+,:999:7965466<<@=:::44334:;;9;:944333,****'''',01245=>?@?====?@=====B@?@?>?=<65555:;412895*)),-*'%''''&'+%%%'),2/.0.+,,,,,.++-//0+-6666000112/.)(' NM:i:5 ms:i:470 AS:i:470 nn:i:0 tp:A:P cm:i:26 s1:i:189 s2:i:0 de:f:0.0198 rl:i:0 +4dd77244-65ef-4b3c-9e60-04dde51d3945 4 * 0 0 * * 0 0 ATGTCCTCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGCCAGACACAGACTAGACGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGCAGGGAACAAACCAAGTTACGTTAACCTTCACAATGGTT &&&(&''&'&'''&()../65443000/03444332333231/.../2422211200,,,1242212244111114222200///100/..---./32233355110014222236655555533211001235664433222431111130///024666764330)().-./..//./00132////0224444011113233454441.*(((()153211124655421.--)*31.,&&&&''&''( rl:i:0 +6fc80a53-c62a-4b99-a868-004f00983da1 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 97S81M1D3M1D165M125S * 0 0 AACGTATTGCTGAAGGTTAACCGTACTCGTGTTGTTCCCTGACACACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCACTAGATTCCCAGCATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTCAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAACCAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAAGTAGAGGAACATAACAT )+,./75**))*111151/..))((()****-)*0%%%%&'+++/15001111ABBAAESIHBDABAA@A@A43334FFDDFIEA@@?@9:::;EBABDDDEFDDDJCBDECBDDDCE:98,,,,-92116,,,,,/;;@A;<<<=ECDFEEDDBCDEHFFBCAABAB2222((''&&*),3,++,6;<<<<=FFFDJBBBACEB@AC?FCCEFHLPHGJIGINGDECCABABE?/((((9?@AAA<<2150-1888EHDIFBB<=<<??@EAHICCGGEFLA@BHBBBCCDD4234@8778877889IDGEBD@@A@@CFCEGEGHGGJDJAAAA???<;>>75556;;CDA@=<1.333333DDBCCESFEKEDCBDDGCCDD??><;87788<;<<;>41++&&%%%&$$$&&%%&&%&% NM:i:6 ms:i:462 AS:i:462 nn:i:0 tp:A:P cm:i:33 s1:i:207 s2:i:0 de:f:0.0239 rl:i:0 +5daad82d-0482-45ea-9c2a-d69fddcb14e1 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 115S63M1D59M1D59M2I4M1D10M2D51M99S * 0 0 TGTACGCACTTCGTTCAGTTACGTATTGCTAGGTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCACTCGTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGAGTAGTTTGGAATTGTTCTCTATTACCTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTCACAATGACAT $$%%%%%&&(,-/099DDCB=?>>;88325/*('&''(-0/1153//02346443,-,,-AFDKHGGFGIHNMPGGGKEFIIFCB?@AEEDDEE@@A@ASKFIFDCCCA****,5=??>>AA+*++,GDEEFEEJHGSEFCCC>===<=?@?@?BAAACCA?=<<>=@FGJEFCBB@@:3333144BEFDSSFGGEGMFIGDABDA@?>???ABIFEHSSDC>=8&&&&')*(((''''')+2211134333345667:;;;BCDFEFDEFCGFFECA@==>;;9311((&&&$$$%&&%%%%%%%&%%%%%))*(-(''''49:@@AECEEIFGEFFJGFCDEEL221976573101;9**(((''''''.29>?DDEFDCB@A@@6?77BABACDCDCDCFFFDDGGFFDDCDCFDGGB22222=BBCFCCFSFO@@@@AIGIFHMSLD755333,))'& NM:i:18 ms:i:394 AS:i:392 nn:i:0 tp:A:P cm:i:23 s1:i:168 s2:i:0 de:f:0.0637 rl:i:0 +6dd8f2a8-c59b-47fd-ab77-d7388f186210 4 * 0 0 * * 0 0 TTTGCCTGTACTTCGTTCAGTTAGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTCGACAGCTATCAGGAAACACATGACCATGGTCATAGCTGCTTGCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGAAACAAGAAGCCGACTACGTTTGATGATGT #%''&&))+((()''(()3544.((&&../39:::997676//...30+))))))0((('(0-)('&&'&&((*49:99966666<<<<;976667::2221289;=<5***)*2225556@@@;;7755577:9::99;:977789/..))***4100../00889899:65556<<=><;99*(((*222(3424000/---,--/''&'&''))6899777782221-,/+++(&%%%&%%$$$$$$$$#"#$$%$$ rl:i:0 +6ac32ffe-c9cc-42b7-a1d7-fb8e86d744ea 0 Cn_Pp_Killer-alpha-MF-Delta 2 60 121S80M1D8M1D147M1D7M1D4M98S * 0 0 ATGTTCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCGATGACAGAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATCGGTGGCCCGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTTAGAGAACGTCGAGACCAAGTGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAAATGGT %&&('%$%&(*-/345:HGESDGAEFHB@@>?BCABGKLHKLJBDBBASS>>=>0+9(((04::;;::<.....GIHLSLNHMSGHKNHLGFHNKHHHJKMGFE?;;;;----//,,,,-/((((((AEDGSSGESFSC;GMFKNOSJSKKSGNEIG?666SSJENCCI====FIFFFEE54444SJGRSGFGJFKINJJKGIMSISSMSBBCDCSCEECDEFKGIGGFEHDGDIG>9888633)*111558SHFKSHSSHNSKSFDGEM???@@?>?>?ILSKIHSSKSLMSLSJGKSKSLSSL>=>86660/* NM:i:11 ms:i:426 AS:i:426 nn:i:0 tp:A:P cm:i:34 s1:i:210 s2:i:0 de:f:0.0440 rl:i:0 +e514f197-f74c-4145-89ab-2977e1c7344f 0 Cn_Pp_Killer-alpha-MF-Delta 6 60 127S81M1I2M1I145M1I7M1I11M79S * 0 0 TTGCTTTATCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTACCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTGGTCTCGATCGAGCCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATATTCCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTTATCTCTGAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTGGGT &&&'')&$$$$&((5345GBAAC@ACCGDSFJEFBCBOSJNSLNMSJRSSIKGJJMD4***34BBGFIILGMNJIHFMSKOSKOQJJSSMFMFKOLQMJIRHFIIGKQLS@?==***,,'&%%%&&&''((DCGJHIIKGIIKIPGELHFFKGG87778KJSKHLQKMIHGSQOKSIHMSSJKSIKSMSOHNLSIISHHIKGS>>=<=(''''+&'CDFEDEDDHIJJIQJNJKJHJKJNISGFGJNSMJSLKKLHNKIOLKMKKMKNGLMNKEGF?=>=>DDDINIIJLQHISKE@EE>>>>>==@GCDDE<=?=<;6667:;;:>??<*))%%%%&2.001::=::8888000----))''&&&(*755677420/+&%%%&$%%$$%%&'(%$$%(((((((01102226999;;;<=<<<=<<<;:;:;<;;;====<;99:::==5330//0033:99??>?==99888:;>;0-+++,,..-,))&&&'7>;987799:::65667AAA===;:;:::=<<<>;88888,,+*****+..4;99888<;:9887889<=<<=><:--++(+++-5:===>>?>>=>11122=<<<<;;;6/'&&4*.0000>=;:999:99999:7555556998789;;A>6/)&%%$$###$%$$$$%%%$$$$ NM:i:19 ms:i:381 AS:i:380 nn:i:0 tp:A:P cm:i:22 s1:i:145 s2:i:0 de:f:0.0714 rl:i:0 +b3e28f80-6f2a-4674-8143-f5d25f273663 4 * 0 0 * * 0 0 TATGTCCTCTACTAGTCAGTTGATTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGAGCCATGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGGTCAACTGTTCCTGCATCTCTGAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAAGAAACCAAGTTACGTTAACCTTAGCAATACGTTATG ##$''$$$$%%((&&'&''''%$%%%&+)(***../0112/.../12222234345225852222333222345665665454310/11124444343445410))(''''++,.,++000/.---+,..///1-*))((+***+.0,----)(((()))25)&&&'1''''('$%%%'./2456500,,,--2421121233233/++++-...22355678954-,'&%%&$&)*))))))))&(,--/0///00--)('%$$ rl:i:0 +c365c4e3-3978-405c-9069-a37e936d0476 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 132S179M544S * 0 0 TTTTTACTGCAAGGTTCAGGCACACCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCACTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTCATAACAATGCTGCTTCCGCTTCTCTTGGCAGGAGGCAGCCCAGGGAGAGAGGTGTATGTATACGAGGAGCGTTGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGTCTTGATCTTCATCTGTATCCAGGAAACAGCTATGACCATGCAAAGAACCCCTCAAGACCCGTTAGAGGCCCCACAAGGGGTTATGCTAGTTATTGTTCAGCAGCTCGACGATTGACACCTCAGCGTGGTCTTCAACATCGCCTGTGTATAAGGGAGCCTGATGTAATACGCTGCTTCATAGCATACCTCTTGACATATTTCGGGTATACATATAGGTATATACTCTTATACCGCAAAAATCACGCGCAATTACATGTTATCTGGCTTTTAGTAGCGATGGCGAAGACTACTCCCACTCCACCTGAACCAAGTTGGCTCCGAAAAGCCTCCGGTCGGAGGCTTTTGACTACTGGCCGTCGTTTTACTCACAGGTGCTGTTGGGAACAAACCAAGTTACGTTTAACCTTAGCAATTGGTGATG #$%&&&%%$$$#########$$$$$'%%))**))))(**+-/0654444555543221234///00462--.27655456778855555321100001455664101115600/..002777775666687766553445587776422212445432220....033333475552./.++.+,,03333430)'&&&'''(/3333666674222243123.,,--..01888967//0975443-10+**''('&&%%&&&''),)))''''((%&%&&&%%%%&&$$%,**))(&%%%&))))('''%''&%&%%&%%%$$$$%'&%&&&(&''*)****'&&&%$###%$%%&)+*++)&%''(()&&&&$$#$&&&''&&&&'./13332////.///043333489:86221102122347222221101121212554554321113565899888855556965666899888885/211002::/11'(556675--+'''--123---7654346566**)((,'((((...../00337777788866654544699:9664557688553223367899;<99866654433456777765556555556/,()156.-,,))***395311(('''().1/(''&&(++.21*++++3//.-(&&&)),*+'&%%#$%,,,4555998;86333323333666655765655799:98999<;;<:::9421----.,+(((*-665534**+)****666888788:7666689660001130333233346444332(&%%(''(1///0224432222255455445532)''%$$$$ NM:i:1 ms:i:352 AS:i:352 nn:i:0 tp:A:P cm:i:25 s1:i:158 s2:i:0 de:f:0.0056 rl:i:0 +5bb931ae-46a7-4d32-b031-aede4552a9ea 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 123S33M1D40M1D152M1D12M2D9M138S * 0 0 TGTTATGTCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTGGTTCGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAGGTCTATGTCTAGAAGCGTCGAGACCGAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTATGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTACAATGGTC $$$&&&%&%$$$$$%%*(()::<:99:>54439::;CHDECCCBDGHSFDIHC:9874/2***++??GIHSJKFEDFFSFHILIHHIHKSC00./0CCBDDDEDCBEGABCBBDFDC?@AABHA@@>>@??AFD77777LNSEGJOC1.--((()+(((((//112562212588>A;;;;;EEGDICA@?****).((&'&(0000877;99<=<<<<<=<;;==ECDCBDFSFE>>=;998:;:9;;@DEGSGHIJHHCEDDFDE98---77?BCB99:9:CBBDCCFCC@B83334542000100.-,,/039989;56AFGH@@?>>>>>?=;:4++00-(((((('+)*)))+12463434378*)))*>=<;<==>@@66656><:8779;==<=<:4*%%%%(>@A?@A;;97788<>E?>@@@?A@C@@@>>??>=@GFC=+*&%&%&*& NM:i:8 ms:i:449 AS:i:448 nn:i:0 tp:A:P cm:i:29 s1:i:194 s2:i:0 de:f:0.0280 rl:i:0 +18e5abf8-a410-4f87-8f1c-3f519675f900 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 97S12M1D3M2D8M1D3M1I6M1D169M1D44M121S * 0 0 AATGTATTGCTAAGGTTAAACGTAATTTGTCTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCATGAGTTGTAGCCGCTTTAGTTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAATCTGAACCAAGTAGGCACACA &''-.11111377632.*))('&'&'(&'''(++.*,-../668:977775544411100567643122213,,,,,4344+++**,,,-,++*,*)*)(((&%&&%%'%%$$$#$$$$$$$%%%%%''&&&''''''++-.//....02235665545554544566455545444353111/01124433444655432212360//..0112.---+)('''((**-.///21102211100122786331111245667664434//...0144454433444555677711004--///0048878877766665543333453445677210.-.//355544*****211114544444556775432233354554333346345666445568042221100011542122233233446676420)''&&&&%%&&''&&&(&$#########$ NM:i:12 ms:i:423 AS:i:422 nn:i:0 tp:A:P cm:i:30 s1:i:199 s2:i:0 de:f:0.0438 rl:i:0 +395e5ec7-a0b7-4d97-a2e4-214dbacfcd80 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 120S198M1D41M1I6M122S * 0 0 ATGTCCTGTACTTCGTTCAGTTACGTACTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACAACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTGAGAGAACGTGAGCCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATGGCTGCTTTCCTAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATA &&&*&&&&'&&&2248ACEECDBEDSE55555DDHIJSKSISKNKSSIGAB@ABMHA::;;BPHQIKMGNGJBADD;EGHHQSSMOSMLFBBNFHHHIF11112LEIGEFDJFLHFSKKSIOFLJSHFI@FJKILKGPKHJMQSPKGO=<<=>>>>LSKSHPKGMKJHSIMKSSLRHIKIJKJJSDEHGCCGABBAA777779GHEGELGJFSGEKGSQIHNNFKHRF@DEDIGJA;::::CJHDEFDEBBAB=;;>74855B>7777@==44578?ABH>;=>2?>>SFEFHFLSIIHNSHJGIGGSSSM<<<<=F;;::664552988;DCGSSMHI)))))ABEAABBALFBKJIHKHJGGSHRSLGDGCDCCA..& NM:i:2 ms:i:478 AS:i:478 nn:i:0 tp:A:P cm:i:34 s1:i:221 s2:i:0 de:f:0.0081 rl:i:0 +4c4ea981-e66b-4754-9727-d31e9edaeb34 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 125S30M1I4M1D3M1I3M1D43M1D56M1D54M4D34M1I16M98S * 0 0 ATGTTATGTAGCTTACTTGGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCTGGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTGGTTTCATCTACTATTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATAAGATTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTACTCCATTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCAATGTATCTATACTGCTTCCGCCTCTATCGCAGCCAAGGAAGAAGGTGTATTGTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCGGGAACGAACCAAGAGTACGTTTAACCTTAGCAATAATT ())--'&%%$$$%%%()4)))*+;:::;?@A?>>>>@DA@@3111169@@AABB))))*073--)*;88:CBEBCAAAA@CHEGEC>===>B5541100(((((2333333431,,,,+&&'()*,-./;?>=>FCDGFG@A@A@ECD52/./)((('&&((((((0233.07;;>@BCEEGFBDB=9,,,,+,,+++((*,-/,,.----/1*)))+.**'(+6((((9::>AABCAB>==:9:..----*****)((((,))''&&&&&&&+*())))&%%%%%%%778:5430///154450112&%%%%%+)***=C?????@?SDCBBDDGGHLS<;;;;>@=210(((''(% NM:i:21 ms:i:375 AS:i:372 nn:i:0 tp:A:P cm:i:18 s1:i:138 s2:i:0 de:f:0.0717 rl:i:0 +cc60c8d2-550e-429a-bc97-f934aaeebd09 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 118S112M1I13M1I121M181S * 0 0 GTGTAACCTACTCAACTTTAGTTACGTATTGCTAAGGTTAAACACATTTAGCTTGTCCTTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAAGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTCCTTTCACTGCTGTGCTATTTTGCCGCTAGTTCCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAACGTAGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATGCGTGGTT $$$$%&&***+,+)))),+(***+/0000223454321-)'(''&&''(&''''(,232200066678889:::86644421222688763100003432////05565667787898211*****6:976531111244543311/....1533233434355444456435445667454435333323323554543322223478****-34647666688676311102,21000/..--.-((11122224666666221101112333444442212221222344344000*(((),/1233755544899:5555211002310/--./0654552221+**)))))')''&((((,*&&%%&'+///2432//0/..../21111267975210//0/012361112164334231////0433334689763210010124594333254333120..//15555457676622110212343322222322455777855333344543331111244444223223))))),&& NM:i:4 ms:i:468 AS:i:468 nn:i:0 tp:A:P cm:i:29 s1:i:195 s2:i:0 de:f:0.0161 rl:i:0 +fa958ecd-2ce0-497a-a242-1c2f4d3ec024 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 125S81M1I2M1D94M1D57M138S * 0 0 ATGTTTATGTTAACCTATTCGTTCAGTTACGTATTGCTAAGGTTAAATGTAACTTCGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATAGAATTTGCTGGTCCTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTAACTAGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAAAAGCTGTATGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCAGGTGCTGTTGGAACAAACCAAGTTTAGTTTAACCTTAAGACAATGCGTA $%&())&(''%$$$%%%%&**,--5---.9;@?@A@?B@@?DGCDHDCFKHJEFS88888;<444<;;;SGIOISKMJSCLBA9FFISIOSLINIGSKHNHMNMISIJCFKSSSKSHSG11111@@???AFJAA?BBHJGKSF@A@>>7-,---59@??@@@EFD@D??;487558;CGGGSIED=<;-,-00000<=85578<=>=FFE??>>>FCBA??@CCLF@@@AACBDNIK>==<=CBA<655*)))))*//11222331--,,/13::686,.=@?@EE?=>;;<=>>=754/---,,**))(('(36>>>=<;@:::::BBABCFEFGKEEKI7;<*)&&''+,(*)((((*+*++,4;@A<:54344556--,+' NM:i:11 ms:i:402 AS:i:402 nn:i:0 tp:A:P cm:i:29 s1:i:183 s2:i:0 de:f:0.0464 rl:i:0 +4e04f33a-cb72-4d12-a71b-267cb19e7ba9 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 119S74M1D42M1I78M1I2M2D36M2D13M102S * 0 0 GTCCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTCGTCTCAATGACCAAACCAACGCAAGTCTTAGTACGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTCGTTGTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTACGAGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTAGCTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTAGAGAAGCGTGGAGGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAT $$$%&&(-2222125634444222339>@==<<=@ACBCCDCFDJIHL*****01,))-)5ABCFDEHFDDCFDGGCDECCAABBEFFHDBA@AAADECCBBDFFFHDCBBDA*)))*A??@;<=<;=>?AFCDBCBBDIFG8544(((((-////..119:A@;::66;778AA@DCECAEDE==<<<=>;9@ACBCC88884-,,-.+,+*&&&())''(**+,,5++?A@A::733223669<:88566212...-+-)+++++,+**&%$%%'''))13588BBBBACDB???=>==>AABA@>>>@AF99989HGGEFCDDEBDDC<;<;;=A<--,,,2.----.-0000:D==6-,..55-+*%$$ NM:i:11 ms:i:434 AS:i:432 nn:i:0 tp:A:P cm:i:20 s1:i:178 s2:i:0 de:f:0.0360 rl:i:0 +4189960b-eeb4-4eac-9362-4197f6bfa753 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 119S35M2D5M4D3M1D148M3D50M99S * 0 0 TTTTTATGTACACTTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACCTGGCTAAGGCGAAGGCCAAGCATTGAAGCGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTGGTTCAGTCTATTTCTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTACCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCAATGTTGCTGTTCTGCCTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATA ##%%&&&%%$$###$%&(*)**++34320/,,,-///35444444442000013457556560....140/,,,-0433222////0456777211/*)*)*(''())*,5687545444544334447566630000166764200***))-,+((&(+*'(121533455633333645543332244454---('''((('(,(((((*1114477886443222210/002111/.///233345786665211///0/01212334533333312212433443442-'''''0///0..--++,*)((()*)(***---/01877766776665566550/)('''&'(((&&&&&&&((()+,,,,,,,/./03343346787644322322346944443432234552/('((*+/+))'&&.2444330011267787555454/-,+& NM:i:13 ms:i:434 AS:i:428 nn:i:0 tp:A:P cm:i:23 s1:i:165 s2:i:0 de:f:0.0286 rl:i:0 +1f640099-1cf2-477b-8b94-3aebfef8f6cf 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 126S143M1D8M1D4M6I48M1D1M1D43M99S * 0 0 ATGTTTACTTGGGGCGCCTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTACCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTAATACTATACTTGAAGAGAAGATGAATTGGAGGGTGACTGGAATGTTGCTGTTCTGCCTTTTTCCCACTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTA $$%&))())(&%$######$&,06>??=;::899:;?@?><<;;;;:;:;;<>ABD77677:7---01@???>??@ABCDCA@>>=>;;:;;AB876659999<=::989::=A>=<<<===??ACAA@@>956689@?><99989;:::7654445623333<8879:::<>><;=<;;;::;<<>;<;;<<<-----.---11-,-****+:<<<=?>>=?<::9:(1111::<><<:99<<>>>>??A@>>,,,,.1+***))))(''()*100/..////456888993-,,'&%&&((1114999999:;<;77455.))//0,++++0887998;=><<8544353433243444621114443333458899<;:;;;=>66645==?7889=>>=;::300/)((((39556:889000004:88;;:==>?><;;:9::;?A@@@66;:;<7653( NM:i:15 ms:i:430 AS:i:424 nn:i:0 tp:A:P cm:i:28 s1:i:185 s2:i:0 de:f:0.0397 rl:i:0 +e715e477-054b-427d-8f5b-a41a3c860d2d 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 123S5M1D123M1I101M116S * 0 0 GTTTTGTGTATGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACACGGCCAGTGACTTCGTTCTAATGACAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGTATATGTACGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATG #$%%&&&$$##$$%'',+--.-2.++*,344DB<33113@DDEDHJHSIMIJIDHHC.*9(((7(DDDGNSJOS;::::G5555;00001SFFDABBBDBBNHHA9857CFD+++++-,,--.'''%&%%&)--22359BBFIMKI99994445-....;>=<C:IEDISJ@??@@JGSNSKSKSIJHSIJ===<?437.***0022288>?A;;;;BBHJGFLEQI>=?AAECFFDBA@ACA1111;6550,,,,223121,))/..----+++**))*-135=CECCENIF@BCDDDACFDDGFMF?>?3331+&&# NM:i:2 ms:i:446 AS:i:446 nn:i:0 tp:A:P cm:i:35 s1:i:215 s2:i:0 de:f:0.0087 rl:i:0 +1fc7f51d-c920-4f44-a9c6-b02084c99efd 4 * 0 0 * * 0 0 ATGTTTATGTTAACCTACTCATTCATCAGTGTTAAGGTACAACGTAACTTGGTTTGTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGAAACAGCTATGACCATGGACTGGCCGTGGTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGAATCTACATTAACCTTGGCAATTCTGGT %&&+,,))('&%$$%%&&(%%%&%%%##$##$''')//'&%%%&(++,/0-,,-+)-'''++4333344411222444334444331////.012243335662110020/++*+00123++(((().0../,+,-3232--.-.32333433334654444665753222210,+*)((''&()()2,,,*,,---,(''(( rl:i:0 +9e2d02e5-39c5-4bd6-aab0-e4e96a6850ac 4 * 0 0 * * 0 0 TTGTCCTGTTCTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCATAAAGCGAAGGCCAGTAGACCATGGTCATAGCTGTTTTCCTGCAGTCTAAGTCTGTGTCTGGTATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTCCTGCAGTCTAATCTGTGTCTGGCATGGTCATAGCTTGTTCCTGCAGTCAGGTGCTGCGGGAACAACCGAGGTACGTTTAACCTTAGCAATACATTC $$$%%''%&&&&&%&'))353322011033343221111120..../233422322/,,-153110024456767443333////04520.,)))()''&&&()+.020.)))01243232/.//044431.6789761///.1112457555//.--//021//00153320353/--++++2211200.0/00186555341/../03)))))58541100/0011482222165434341////022////1475521111221*))(*('-&&--./00.-..)****47787/,)()+((%%%$ rl:i:0 +2528b538-69d6-4519-b0dc-b616e868f712 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 102S33M1I4M3D1M1D209M128S * 0 0 AACGTATTGCTTGTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAAGTCATTCATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAGGAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGACAAACCAAGTTACGTTTAACCTTAGCAATACTGACTCTGAACCAGGTACACGTGGCCACAC $&&')*.(%%%&&&-,+,,+'''&%%%$%%%&&,,,08155556;<;:88898654454454477784222344759..---43677899777755443223224656555410001365443224000006'%%&%&'&&&&&01113445555654444445566776554400--+)))*4/..//033365533466877521111455.-,,,++,,,00++*+,7998666667633111102001//11388877956:988776667332224464221/))///0446664432233110002369999989::877543111113455/.'''*,('''')*)&&&(((/000043334564455566787443233334476666656866656642223+****3*-1121442222223333334465)((&%%$%&'&'''*+(&%%$########$$$#$$$$ NM:i:6 ms:i:468 AS:i:466 nn:i:0 tp:A:P cm:i:33 s1:i:208 s2:i:0 de:f:0.0160 rl:i:0 +ee54ce88-a09a-4eab-86ab-f064c5047b68 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 112S46M2I3M1D173M3D25M227S * 0 0 TGTCCTCTACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACGACTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTCGTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTACCTTCTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTCCCGCTTCTATCGCAGCCAAGGAAGGTATATCTGTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGGAACCACAACCTTAACCTGACAGGAAACAGCTATGACCATGATTACGGATTCACTGGCCATCATTTTTTTACGCTTGGCCTTCGCCTTAGCCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTGTTAACCTTTGGCGATACGTTT ##$$%%%%%'('''**???@;;;;<=76+++++AFDDFILSGGKGJH2222.,8))*+.///)(&&&)17@BCCGFGEFEIEGKFMISFECGE;;;99<;?BCDCC@5,*++**.++****23BEHSJSF>>>>>?>>GJHEHHSSHOLQHFFEAE<8654200++,56==??IKSFFIIEIHEIJLFIAACFE00001::8<89=>4----->AAHGMRMSFMEGISSSILKJKSSHMOISINOKQSJHSKNSHSJIJSSJSGRKHPSFLJSGHLIEKCDGCD@===9++++,4569>?B@=?:444.+,,***)*7()CE;;;:ABB::::;@><975,)'%%%&+(''()../7>ABAFFFFEFKDJSEBCCCGGESJGIIHAGSISRKHKGJSSJHKSGJGIJFHSFSNGIGGIHSJIJHQKSSGE@??<=?EDCEDGH--,,,-)((()FJKGHK?6552234))('&&&&()34@CFEMBBCFJKLFHDF<888FGHPGRGISSISMGIKHHHSNMHQRSJLSLNGSGJIKSFMRKSJIGB>''&&',8000/./08753&(+*,1000+%&'&'''')('' NM:i:9 ms:i:455 AS:i:452 nn:i:0 tp:A:P cm:i:28 s1:i:192 s2:i:0 de:f:0.0240 rl:i:0 +2514af75-8b42-4817-a32e-74cd7e19fc86 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 99S32M1I99M1D2M2D6M1D64M1I3M1I41M119S * 0 0 AATGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTGGAGTTTATTTTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCAGGCTTTATTAATACTACTACTGAAGATGAATTGGAGGGTGACTTTGATGTTGCTGTTCTGCCTTTTTCCGCTTTCTTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAAGTAGAACAAA +./23320///67788.....2444552.(,,''+).---.89:876677550//32.---44555544434),45423334779997667565543333346744310..///263331011----&%%%%&(((().-+,12133323344555656777776665444345655544676757552+++++886545555-,+*)+,/36443001224100-&&%%&,,,..,+,--0011204333556344335445799774333'%%%%(**+*+//../0018777*)(''())-.//-.//07887787788767554222236688986611)))))*777677//...2222367666657667733222445778877887776677765566876544676654552211133554555644554530/../0123215,+*+(&$##$$%%$# NM:i:14 ms:i:415 AS:i:414 nn:i:0 tp:A:P cm:i:26 s1:i:182 s2:i:0 de:f:0.0514 rl:i:0 +5febdebe-6cf6-498f-878e-8a06a9d532f4 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 116S182M1I16M1I53M102S * 0 0 ATATTTCTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTACCAGCTAGTTCCGCTCTAGCTGCTCCAGTTAATATTACTACTGAAGATGAATTGGAGGGTGACTTGGAATCTTGCTGTTCTGCCTTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTTAGCAATATGGTGA $$'()+)+-.2466:>=<;;9999:=>=>;;;;;;;<::::;>@@87778472//024<::::;<<;;;<;;:999966667?==<;987778:<99877999:987889;<<<<<;<<;;;;55559==;88889;;:8764432233475555697677454..5333477899:676668778:9::::=<<;;:977788<@<:977678;<;;;;;>>?>>=<;:))--,,-.:;;;:;;;;98889:;<<<<;987544334579::98766778889;:::99:66650)'&''&'%%%&&&'''&&&'(.*)**.56667:777////0;211008;:9977555545*)*--.-.00.0.*'''''(++-4998654456755526;:<9866555779:221118886766688;;;3222269866533111124479996=>8541*+324533.--*( NM:i:8 ms:i:454 AS:i:454 nn:i:0 tp:A:P cm:i:27 s1:i:201 s2:i:0 de:f:0.0316 rl:i:0 +6df3d69b-46ca-4e42-932f-de6c4e2b4c9f 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 114S243M1D7M95S * 0 0 TGTTTTAGTTGTATTCGTTCAGTTACGTATTGCTAAGGTTATTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAAGGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTAGGGAACAAACCAAGTTACGTTTAACCTTCACAATGGT $$&&&%$#$%%&&%%''),,2,,,++**+04556=<<37&&')7AGFLIHMMKKFNHFSSPIFFLJSB(((''(&&' NM:i:2 ms:i:488 AS:i:488 nn:i:0 tp:A:P cm:i:39 s1:i:233 s2:i:0 de:f:0.0080 rl:i:0 +90b2bccb-6307-4615-8a9d-81722fe98510 4 * 0 0 * * 0 0 TTTGTTGTATTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGATTACGGATTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCACCAGACACAGACTTAGACTGCAGAAACAGCTATGACTGGCCGTCGTTTTACGCTTCC &&&'(&$$$$$&$&-7;=BBA?@@ABDDCB>778DGEFEDEECDHCDF=<<<=EE:7785=FIHFJNJHCDCBACDFNHNNHJHJFDBCAB@BCBA@@ADBFDBAABBDDDGFDDAA;;<544444CEC@>???@@@??>@@BEEJFDA?AADSGF==<8)( rl:i:0 +7724fda8-448f-42f6-98fb-157a91a6cf2c 4 * 0 0 * * 0 0 TATGTCCTGTACTTGGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTCTAAGTCTGTGTCTCACATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGTAGTCTGGTT $$%&&'''%%$$%)(*,,((((('&***,---20-+++11121/////14//.2+(.''',.3333468777878643221////1411,''(.---13,,,+-/014332222111225334+)))))1032000023111015654543210/...+,,+,2113334423200112533334993+)'')&&&& rl:i:0 +c0911846-63be-4587-bd8c-d4e86c9f1c4f 4 * 0 0 * * 0 0 CTATGTTTTGTACCTGGTTAGATTACGTATTGCTTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTCTAAGTCTGCATGGTCATCTTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCCTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGCGGAACAAAGCAGGAACACATGCTCACAATGT #$$$%&&&%%$####%&('%%%%%%&&,--.101/.--2233341...-.012222334233663111126678878643322./../333331-,,,-12,,,+,//152200010112332110000//000243477;00.10001012223213-,,++--,+--)))()+-',467661211132344664343456555,,(%%%%')''&%$$$$&&'''&(&&'()*)('%$ rl:i:0 +11e555e1-15a4-4e4d-96f5-1349f61bf8d9 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 121S15M6I101M2I50M1D16M5I11M2I4M3D12M1D14M118S * 0 0 ATGTGCATGTACTCGTTCACGAGTACGTATTGCTTAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACACAGAGGCACGTCTACATTCATCAAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGTCCCACTAGTTCCGCTCTAGCTGCTCCAGTTAATGCTCCTTCTGAAGATGAATGGAGGGTAGCTTCAAATTCTTGTTGCTGTTCTATACCTTCCGCTTCTCTGGGGCCAAGGGAGAGAATTATATGTAGAGAACGTCGAGACCAAGTGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTAGGGAACAAACCAAGTTACGTTTAACCTTCACGATGGCT &&&(%$$$$%%&%&&'(&&&%%&'&((().0113+((()0122323/.../**++))4(((0775555789:::99876654221124576641111145110//1135444445665666776545558:99766441('&'&&%$$$%&''++)((((())-21233354/0/))4))*/.--/0610///11554343233334433333433544422233672111.**+(''(()(''%''&'(('('''(-...,,,..02222210//0***''''%&&()))))).../00///)((('$$%%%(''''()('((((&&%%%'''(&&)**'&'%%&'&'((***)'&''&&&$%%%%)))&''(''((+*)())-.//.-..-+----1254442366665232112013011//1114433345754,+++365555555665222//00031111,,,**+++,+ NM:i:39 ms:i:279 AS:i:264 nn:i:0 tp:A:P cm:i:14 s1:i:98 s2:i:0 de:f:0.1130 rl:i:0 +258ce474-d1bb-42fb-b04a-8110680afd45 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 103S191M1D6M2D40M1I11M124S * 0 0 CTACGTATTGCTAAGGTTAAACGTAACTTGGTTCTTGTTCCTCAACAGCACCTGGCTAAGGCGAAGGCCAAGCGCAAACCATCTCGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTCTTCCTCTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAACTGAACCAAGTAGGCTACATAACA +/2288:<<<;;;;;;9677779:;==<700*)'&&&&''''*445?==<<=;;444799989>?;7530+*+++---,.5..138999?>====>=;;;98989<<<<==>=;88999;::9999:665559;;999867777999::::::;<<<;::9::::::::;::;:9:;;;<<<;::9::=:;8433332,,*('&')))'(((((<<98876888:44433677::<=<;=<<<;:9888877855566>=>;;;;;=::><<<;;;<;<711002::;**))),./0/..../0///.../:::<@@??><<=<>2247:77779:;1114:00/2532335<<;888:,,,-16679:9766667/.//./-+++,..059<;;;<::999::98899::76558=<==<=;97544456667777879;655(''&&&&&(*)**))10/(('''&((((+)'& NM:i:6 ms:i:465 AS:i:464 nn:i:0 tp:A:P cm:i:32 s1:i:204 s2:i:0 de:f:0.0199 rl:i:0 +6afaffc7-dd7f-4ede-aa23-08f5d00dd71c 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 122S139M1D35M1D9M1D12M1D52M93S * 0 0 ATGTGTAAGTTCTACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTACTGAGTTAATACTACTACTGAAGATGAATTGGAGGGTAGCTAGATGTACTATTATGCCTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAACAAGGTACCGTTAACCCTAATGGTT $$$$&&%&&))%%%&%&&*-788:::<<>?B@A11111DDCA@AA@ACCCJF+)))),.+++,,ABBEEEGJ@>;;;=@@@@@DCDCEJEFC::??@?@AA>>>>?ECCGCBBBCEGCENGHDCA@@AACBEDEEHEAB@@@CBFCA@?>>>@>>??EDFEEBCBBCBDCDBCA??@??ABCDBBCBCDCDCCBBBDCFJFFHFDDBDCB===.--,+++-)8;;=>DFDDDBA?<5-++((+++,,***,2226663+))'&''*,-:<>@@BC@?@?@B@??>?A@BDCB@<:9(&&%$$$%''((''''-----.1.*',44566B??=<<=>?BCCDAADDECCDBCDCA@A?=<<<@?3332254??>???????>==<<=>9:81B??D@@>===><<;<><:3+)*('&'())&%&&%&''(''))('&%%$%$%()& NM:i:12 ms:i:422 AS:i:422 nn:i:0 tp:A:P cm:i:29 s1:i:181 s2:i:0 de:f:0.0478 rl:i:0 +e7999831-91dc-46da-b78d-27552fe206eb 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 121S251M99S * 0 0 ATGTTTAACCTACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAATATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTAGGGAAGCAGAACCAAGTTACGTTTAACCTTCACAAATGGT #$&*''&'(5:;;=---;88888CC?A@>@>>FCCAAABA@BBBC@ABEB87788@2/,,./>>CDCBDFCCDEGDBBBCAAABABCGDEFIEH@>>>;31100=@??@NIDABBC8;:-,,,,.0@<.-...343/----??@B@DDEAABBAF@A?>/.--78CDDIDBCCAB>9987788BCA???@ABCEDEFEGBBABB?;;;;=>>983)''('-($$$$$$%'()))))*,,-/3434.%%'(())''& NM:i:1 ms:i:496 AS:i:496 nn:i:0 tp:A:P cm:i:36 s1:i:223 s2:i:0 de:f:0.0040 rl:i:0 +4a3ce919-1f9a-4ee0-b58d-c248d2d835c4 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 127S88M1I127M1I36M131S * 0 0 ATGTTATTGTGTAACCTACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTCGTTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCGATGAGATTTGCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTCTGCGTCTAAGTCTGTAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTA &'')*&&&%%%$###$$%%&$$%'(3///085556@BBFGCDJC@B@@B>@<<>>8))2+++12??BHLGHSGMFIFJSPSOSGISJHSHGS?@LHKGSSJOIFHIOJIFEEBCCA300,++,33434500000CFFHGKIIHHGJHIHGLBAB@?BABFSHFHSKHSHHHDEQMIFGHFEKILCDGCCIHHEGEGEKEA?.,,,,0((,2(''')<<=?A@B@CHGFGSIGJC@;;97)0//0200/,++*,666::;AABNSDEC@AA@@C>>>>>A@AACAFEEBAAAAA=;9=@A<;;:99<<=@DHHDKOLHGECGB?>@<8;4001;:<=??+**)(++,36<?@BEDGFKS=0699EBAABDECBABBDGHEGM????@?EEJCA?=>>??>33=>@DCD@A@@ADDB????AEEHHL76667>B?77778CEECDECBBBCBDMEDG;:?<<<75,+* NM:i:3 ms:i:484 AS:i:484 nn:i:0 tp:A:P cm:i:32 s1:i:209 s2:i:0 de:f:0.0119 rl:i:0 +2c9cd82c-7c66-4fb6-a79b-8a4362d10fef 0 Cn_Pp_Killer-alpha-MF-Delta 4 60 129S4M1I11M1I3M1D12M3I6M1D8M1I4M1D2M1D92M2I3M2I46M1D6M1D45M102S * 0 0 TTATGTGTAACCTACTCAGTTGAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTGGATCAGACCAAAACCAACGCACTGTTTAGTTCGTTCACTTGTCTGTTTGTATCCATTCACAAGTGTCCCCGCTGGTTTTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATATTCTACCCTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTCCTTTCTATCGCAGCCAAGGAAGAAGGTGTATCTATAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATAGT $$%&'(),,--15...-+,,,,111256444458;876666788876665566675566670000076677888889::987656333348987754344467222002238886765,,-++(&%$$$%$$%$%(''))&&$$$%$%%%%$$&&&&''%%####$$$$$&&%'%%%%$#$$%&'&%&&''()*(&%$$%''+,,-3544333344576320000145667768888854222124448/..../**+-,**+-/145676322121/,,,,,-,''-/32322232211123433433443+*+++/012383333486110,((''(''*+3///01767888:<<<;:65554**&&%%%++-10*))('&%&)++,-101110100254330-5448764433343456674444455434557555334/+,...4355565443111113444443445432))%$$ NM:i:29 ms:i:330 AS:i:326 nn:i:0 tp:A:P cm:i:19 s1:i:134 s2:i:0 de:f:0.0984 rl:i:0 +6f45d042-7eb0-49a5-83b9-d0753d14a455 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 101S37M1I2M1I91M1D3M2D1M4D8M1I102M212S * 0 0 AACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGATCTTGGGTTCTAATGACCAAACGAACGCAAGTCTTAGTTCGTTCAGTCTTCTTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTGAGGAGTTTTCAGCTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAACTGAACGAAGTAAATAGGAAATACACAACAT &&')+--+***22333444334556887878843523777789:9998996666677777:9999855445775442223378788)(((*('&''((()+6679986+++**///47;::;998433334((&%%'(())*6766666887887888788778888888877777888889444448<....7889;:9888899986543356:776444323300.&&%%%''')(*('&&''''6668<<:89877888;<<;99888:6543468:;884-,+****==?@@<;:98997655568:=>>>?>=>>><<=;85555689;;:;;<8866567778889:86766666679;:;;;:::<;;:865555899::::;::8666779767779:8999899;;72113367888989999;9777678666679;::::9999986511117779::<88785446699887978..-,886777777633333677888899;;9954334655569----+-&%%%$$&'&%&&&%%%%%&%%$$ NM:i:15 ms:i:418 AS:i:414 nn:i:0 tp:A:P cm:i:30 s1:i:191 s2:i:0 de:f:0.0440 rl:i:0 +481b86c7-82ff-42e2-9e9a-96d832824b8b 0 Cn_Pp_Killer-alpha-MF-Delta 1 60 117S122M1I3M2I53M1D19M1D52M99S * 0 0 TTATGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATCAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTACATTGCCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTCGATGTTGCTGTTCTGCCTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTAAGGAGAAACAAGCCGATTACGTTTAACCTTAGCAATGGTT #$$%%&$$%,()*?CDDFF@MDE;7733:??AHHIIGIIHS>?=<<3233479::4////0BCJJKIKEEGDE-((((,:?AEKMLGFEGS??@EDFHGJFHOKSLSSSOC??AEELSCGSKLHSHIIKGKJMIOSSSOSSJMMGMEFNFIGSJSIKNGEGSFHIJSPSJSILHKSSHILJHGEMILHNMMIGECEBC-,,,-:=69BBEIHKHHQKJSKSSNKOSHI655,,,,*)*)((&&&'(((,@CEMKREJSKMPABGHSLJHEEIBDKSIHIFJQNKJPJHIEBC@;;-)((&&&&&02558;99:::?LEFC>=@88EHGIHCFGHKIKNIFHCKSFQJSJN>1111H?@@HKJNMOIEE>;::8:996;=;::;>>@>>>674,+A66?777<<=NGSMIJKGGKGIMFGJF?11110)(''(++//0****+,,,,,.0112<::99;<=?>>>=<99888;;;<:9888789:9=999:9<;;;<<=;862--..678:<>>>>=>>>?@?><::977778<>?;:8889:<>===>=>>??@=<;:;<>>;;:9999::;===@??>??@B@A@?;:987899:<=;<===>>=;**779::=<<<=>?@@@?=<==<>??@EBB@@@AA?>7445823<<=><;;:::;;>>@@@==<;872/++**'(((&&&&***588::;;;:;;=<<<<<998665569:<;;<===<;:::98889:;>?=+*('(*,-)(((''%%%#$%''&%%$$$%$$%&''')+-./6:<;:;9899;;65..+*)&%&%&'&%$""#%$$%&$%%%$$$%$$$$$&((,--:877767878;54/.+++-10111674'''''66777866,,,,,6667::96676//.444;98888:;;;<=;:(((''((((()3665575566,,,,,33:954444689;;<=>==<<<<;9543*))))'),,,--0==<;97777789::;:8744455<77888=>=;88879;;;?=<76666999776679:;<;;:;<=85555/.+*,,,022225;;:66656445<<::889>?;::78888;:,+&&&'&*.//789:89:::;;<<;;;;;;<<;;;;;;<<<<=9;;;9:;;;>??////07+*)((('-.8878::<4+*)*++22224545598889;>?444424321111135988888<;;;::<<<;99::<=;;<===<('&&('&'()(48:::898555568:;99999:;:61)'&% NM:i:3 ms:i:484 AS:i:484 nn:i:0 tp:A:P cm:i:35 s1:i:216 s2:i:0 de:f:0.0119 SA:Z:Cn_Pp_Killer-alpha-MF-Delta,8,-,109S244M1I607S,60,1; rl:i:0 +292bb6f9-4c5e-49a4-b764-215cf6b1e9d4 2064 Cn_Pp_Killer-alpha-MF-Delta 8 60 109H200M1I44M607H * 0 0 AAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTC <::8788.-'((()*+70////??>;;;:9;;;9=<<<<;;;;;;<<;;;;;;<<;;:::98:987//.*&'&&&+,:;88887::;?>988::<<54465666:;;522220,,,*+./55558=<;:;;<;:97667799966667<=?;;;97888;=>=88877<5544478:;::98777779;<==0--,,,)'))))*3459;<<<<==>=<;;986444459:33,,,,,6655755 NM:i:1 ms:i:482 AS:i:482 nn:i:0 tp:A:P cm:i:36 s1:i:228 s2:i:0 de:f:0.0041 SA:Z:Cn_Pp_Killer-alpha-MF-Delta,1,+,124S251M2I584S,60,3; rl:i:0 +d840bfac-1865-4bc3-abe4-5fdcfdd5ee64 4 * 0 0 * * 0 0 TTATGTCCTCTACTGGTTCAGTTACGTATTGCTAAGCATACAGTAACAGATTGGTTTTATTACCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGCCAGACACAAGCTTAGACTGCCGTCTTTTACGCTTGGCCTTCGCCTTAGCCACTGGCCGTTTTGTTTCTTGCGTGGATGCTGTTTCAAGGTTCTCTT #$%))*$%%%%$%%%%%%%%%%%&'&()*,..4/(''&&&&%$$%((&&'''&'*+6..--)(())42222355,+++,22234542110/00232344454544565333346533323444453.-,,.)((()*14//4455744222348898875565200066677573112246432-.2/1**((())('''()&(,,,/211+++ rl:i:0 +13636eae-6bff-4833-8e61-6054cf5e5d90 4 * 0 0 * * 0 0 ATGTTTATGTGTGCCTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTTCAGGGAACAAACCAAGTTACGTTTAACCTTAAGCAATGGTA $$$$%%$$$$$$$$$%%%(*++/42110..../3443221122121/.../012200101122364322234556766432221..--.112231/////23..-+,-./3110000/112461111164334232....033444478865211%$$%(())**+00255333120----/33443567654221001013467544+422433320/('$%&'(+...2225456422100001233343/-,,,,)''& rl:i:0 +b6ebdc97-4f72-4b8c-9ef0-5eecf6ba8260 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 99S251M121S * 0 0 TTGACATTTGGTGAACAATAACTATGTACTGGTTCTTTGTTCAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAACCACGGCCAGTCACTTGGCTCCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAATGAAACGAATACATACATAAC $$%(()'%%$%%%%$%(((&%$&''&%&%%%%&&&(('&(*/;==AA?@@=;;:9:::;;:?=<:64)'&&&&%%%%%%&&;81..,,***(((''''),3,,,,1;<<866668:<;6666687678;::9:999:;:::99::::999::::9::;:;;::;;;;;;::;;<;<<;;<===<=;99889::<==<====<<;6222239;98755666987886778879::9<<<<:;::<:<;<<<97777:>?><;6333333:A??@?<;<;9;:88989:;=?AA@75656?@>==;::;;,,,1>=@==76665667932223<444987779<=<<;<;=<<<;9987777788;;<;<<===<;;;<;:999:.-)))2+*)****4=>???ABEDDCE945<22234DABDCCFG54434=@A@A@CBCCDGA3+();<<<=>?=>===>>CCE@>=<7556=?BA@@>=>>:;=>==86677;?<<==>A@AABA?@??@@????>@BBC=====A>>>?=?>>@ACBDB9887785339---**++)69:<66421444331((('()''((()*,,-2;>>>>?B22((@@>?@@?>965667=<<9885.-+++*('***-/-)))***--.//120---,..../125777779=>BD?4443*)(('&%%%&&&&&))()236***''''++))&&'&*./2468;6750+,,-4......332/0-+++*+*'''&%%%+&((++,+%&&&$ NM:i:18 ms:i:417 AS:i:406 nn:i:0 tp:A:P cm:i:24 s1:i:173 s2:i:0 de:f:0.0410 rl:i:0 +0afe9dfb-94ae-4f8a-afc3-e7070d35a28b 16 Cn_Pp_Killer-alpha-MF-Delta 1 60 83S210M1I41M250S * 0 0 TAAACGTAACTTGGTTTGTTTCCTTAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCACCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCCCTAACCCGAACCCCATATCAGGAAACAGCTATAACCATGCCTGTACCTGAACCCCATATCAGGAAACAGCTATGACCATGAGCAGGAAGAACTGGCCGTCGTTTTACCCTTACCCTTGACCTTCACCAGGTGCTGTTCAGGGACAAACCAAGTTACGTTTAACCTTAGCAATACGTAATGATCAGTAAGTACATAAACAT ')))((''&&&&&&+,,''&%&)*.458876677554442222265552210000121010/1114656555423336530-,-,+,---0//-----33333233400///343323211222333334433333333433222233444454344544454332235322//-..222114457675422234600///23330////22333344355544300///../--00167644532323355545444400///11333554334333223443/**)*-*&'(+./04787777777655332000012343.-,++./,,,,-223100-,,,,00001443333355544/.-,,-.,,**+,.11178764331++++.3441/../0387444433/.*)))&'(((''&&&&%(((),3453////0686433446100/013122125557663111136110.-.//433332500011443232011014467776643334531***2.*****55111113334433445511/,,,*('&%%%%%&&%$###$%&%$&$$### NM:i:2 ms:i:490 AS:i:490 nn:i:0 tp:A:P cm:i:33 s1:i:210 s2:i:0 de:f:0.0079 rl:i:0 diff --git a/external/samtools/data/reads.fastq b/external/samtools/data/reads.fastq new file mode 100644 index 0000000..1dd5fc7 --- /dev/null +++ b/external/samtools/data/reads.fastq @@ -0,0 +1,236 @@ +@cfb82bbe-269b-4e6d-affe-88441c17abff sample_id=build3-build3gg-u11 barcode=barcode08 read=269 ch=73 flow_cell_id=AQY258 barcode_alias=barcode08 parent_read_id=cfb82bbe-269b-4e6d-affe-88441c17abff basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T09:47:50.719061-08:00 protocol_group_id=nseq28 +TTTTATGACCTTTATTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGAAACAGCTATGACCACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTCA ++ +#$&(&%$##$$%)'),-,,3==BC>>43344?HISLIJGMHKISJPSSKHGJKEDLHEB4,(()2:BCSSJSJS.---0?==>@63333677777787+***)/5568EDSIFMKMSJIJQMNKJPHDSFEG.*,,,-;?@@@GIEEIJSC<;>@EBMG>=))))).1111?@ASNSSMFIINISFGSKSSJSPSKJSFKOSEKHSSKKLLKSJJHRDCDCDSSKSHSJSKKOONJPSJFJDGGSGFFKFSSFKJSSKLKPGHSKOJSDGPGE>:1111BB7777GGEDSMIJSSLSQDSL7777EHO@@A><<;<;???@SMGIMLKSP?AA@BA4*)(%$ +@4feeb657-f83c-437c-86c0-6befd25ff849 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=947 start_time=2023-12-29T09:56:01.719061-08:00 protocol_group_id=nseq28 parent_read_id=4feeb657-f83c-437c-86c0-6befd25ff849 ch=48 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode=barcode08 +ATGTTTATGTCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCGGAAACAGCTATGACCATGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATCATTACGGATTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTTAGCCGAAGGT ++ +()(++)&''&$%$%%%&&,''(42655544@?55566EC633:/98=>?SKDGAA@BAMHMLKFNEKISIGEIEFDSPKJFFBHGISSLFEHMSSOSHMISSIGIGCDDABCIJFCEEDG:667?CEA@@@A=-++'%%,()+)'''%%&&%&&&%%$$%&%&&$##$$$'%$$$%$$$ +@0982afd4-ad4b-42f9-a0e6-d181326a6981 ch=27 start_time=2023-12-29T10:56:51.719061-08:00 flow_cell_id=AQY258 parent_read_id=0982afd4-ad4b-42f9-a0e6-d181326a6981 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=7088 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 +TATGTCCTCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGAAAAGGCAGAACAGCAACATGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTACGCGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTGGTT ++ +$$%&&%$%$$%''*)),,,333342231221////098755567833333639;643/0/((77<;<<<=<<<>>?>>>@=<;;:/***+229<<<<;<<<=>=9988899:;;??>???>>>;;;;;>=>:8/,99;;<>?CA;32**:9**,BB><;88889>>4**-6<<<=9::7799:)))):<75655:@66<88667=>A@?99998;:988889;<<===<<:::<>><;<<=99776956B?=>=<<===>>>><<=<<>>>????>>>>>>>==<<;;;;<==><;;:9:::;==<:99::=>>>@@?++))))&&&)%+3:??><;;;???>??==<<=>?AAB>>???ECBBAA>>>>>>=>>=?@AA@@95-)((&'*014<<<===>=;::87887<>===;;=<<:871100./ +@52cc0975-b468-4f03-a443-fc561883290b runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T11:01:55.719061-08:00 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 read=7778 ch=90 protocol_group_id=nseq28 parent_read_id=52cc0975-b468-4f03-a443-fc561883290b +TTGTTATGTTCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAAAGAATAAAATAGAGACTGAGACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTAGGGAACAAACCAAGTTACGTTTAACCTTCCAAACCCGTG ++ +$$$$%$$$$$####$%%+*,,11366553111125655333345564110/0113533+(/&&'7'87665566567789866666655322223567877656655652110134566332223-------,,-34544421112356778::99:99:96320001255445569:95500010(*4455663200010334466777533334666887211../..///01454444345420/.2//0/04100//1128432224577765543442110023357666764554454-----//..3234455544554430+*-111////.--,---*+*)(((/003333444532112357-++++56544422211434577866521001236663211256755534544555568988899;8)('(,0--+*((())(((()***(')*)&$$%%%$$%$%$ +@0f6d0cd8-9e0d-4f0d-b2d5-c4961840f817 protocol_group_id=nseq28 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 ch=112 read=10022 start_time=2023-12-29T11:24:27.719061-08:00 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 parent_read_id=0f6d0cd8-9e0d-4f0d-b2d5-c4961840f817 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 +ATGTTTTTGTGCCTATTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGAATCCGTAATCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTAAGGGAACAACGCGAGTTACGTTAACCTTTGACAATGGT ++ +*+,./000+)&%%%%&(')28333229::BAAC66CCBCLJHMHOHGISPFKG88888:?7771CDDGMSHLIIMMKGIKKHSLBCBCDIS>=<7NFFHNHSEMHHIKLFLGLFHFFFEKIINGSE80*&&&'*,.-,)&&&&&))/0;=<<=BDDI:0**))*)), +@28f1a87d-bdb4-48bf-96d9-ed443b0d3ccd flow_cell_id=AQY258 protocol_group_id=nseq28 barcode=barcode08 parent_read_id=28f1a87d-bdb4-48bf-96d9-ed443b0d3ccd read=300152 ch=54 start_time=2023-12-29T11:25:00.719061-08:00 sample_id=build3-build3gg-u11 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 +GTCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTCCCTGAACAGCACCTATGCCTATGCCGATGCCCATCAGGAAACAGCTATGACCATGATTACGGATTCACTGGCCATCATTTTACCGTTTTACCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACCAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTTGGACAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGCGGAACAAACCAAGTTACGTTTAACCTTAGCAATGGTAAT ++ +#$###$$%&&1/024497778CBACC4222222CCEEGGGHI=;;;<''''(&'((2=?FJSESIJLSHFG66555SSSHIEHSSHHKSMMSHSIHIISGIGSLSGKISJSHSJIKSIJISISEFH11....-065:((LQHIJFCFCKMEJHGFIHL999999GGGISLGSSIHKNSHHJRINSKGJMLGJLSMJS;444@AJHMKFHHEFEGC?@@AGQSQOSJHFFLEGI>>>>77777GJHFCB;;>-,,,,=9::>HEGHSFHFJG999433449788;73334DCCECBDFCCE@ADCCBCFFEGFSIOIRDLHSHHIHKIKKKIMJD00000SSGHFCEMGLSIKSKSSHSSLHSLSKMSISISHHHLKKSMNJINPIGGFHJGHSISSOJISSNHILSLJIHISGIGSSSLSLRGSKNSKMJLDFLLIJMLLSSEIFD@CAGFISSIGRHOPMHKSFGSOEBABFGMQFF?>'%%%%'9@@@>)))((),((&&( +@4f246d6c-45ac-4c80-b0e1-98d9c195ff18 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=9303 ch=123 start_time=2023-12-29T11:29:10.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 parent_read_id=4f246d6c-45ac-4c80-b0e1-98d9c195ff18 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TGTTTATGTTGGCATGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCAAGCACTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTGAGTAGTCACATATAACTGAGAAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTGATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTA ++ +##$&'%%%$$#####$%%'(,,.18877544522333676544344445422223450////47445898666677666677677789:9:654223447766657777862111101112000.,)'''%&&&)(..0///6521112466899888788887543221002223467223/-*)(('(.02376320/01043452/**+--2311111&&%%%&&%$$$$%''''+(''&&&&),,-,+++0-,,*/0001//001533233557676665456422212334645511111667654443433322233455444444455655555433223444552/.../22334556411112466666542232244455655677877521101335651100145644411222545678655568982111123556432224334421222477783..---**('& +@93f676c4-ab56-4f41-ba60-2aadb5d8172f start_time=2023-12-29T11:30:57.719061-08:00 read=18970 ch=105 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 parent_read_id=93f676c4-ab56-4f41-ba60-2aadb5d8172f +TTTGTATCTCCTCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCAGCATTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAGAGTATATGTCTGAGAGAACGTCGAGACCAAGTCGTCATAGCTGTTTCCCTGCAGTCTAAGTCTGTGTCTGGTCTTGATCTTCATCTGTATCCAGGAAACAGCTATGACCATGATTACGGATTCACTGGCCGTCGTTTTACTCGCTTACGCTTGAGCTCACGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATGGTT ++ +%&)('%%$$###%&&')+''())6622//144:=@?@CDDFEJFGSFCBA@@GF22222>A,)))++:;AJGLHDDC=>=>GOFIEISNFHHLLD>>DGEGGKKECDC<==;=;;:5688<>?@DEFHDGGEHGGHESJSIMSHIA=>=B@A@DBCFCFGEOHGIF<9A<00:789C?@@@BDBB@AFGEHEEGMKSOSHPIFDDBDDJC@@A>ABBB@BBDEHEHGIPOIOGNHGC98211000114489++++>?@BDDIICA@ABBE6666<<<<9:<=?D<;::;>?@>:::,,,,,3336867659:87000022469785012547456:;>>?@@321/232,+)**,--.2..***)**/))))1331120188;<=;783111//0-+,-+-<=@BBDDB@?=6***222222FIEEDLEHIGEB>==<;::>>DGGFDECCBBACDD?@ACFEFEHSHHHSJJLFSIESHES<;;;;CA>=<;<@ABGB@=.*((()'))(((*29665////0353.---.455766657888>=>>SHPIMI44444LSIJSGHHG?<<=?>?=?ACFJDBGKFFLDIEFSIQSKHQMHLHDFEGHHEHGEKECEDDBDDADB<<<86421+++4ADDJLFLFFODBD@EDE@@B?98:<0000BA@@CDEB=4.)+0/.,***+46=<<51/0EECGCDDLDE@@@A@GJGFFLFFJEBGFF-)C==A@?@BBCGEHEGGSREGECECIJFGCC971.---.5=AABABBDGJSFEPGJSLFJHMKQDCB>??732-)( +@82c9ec69-067a-426a-8230-cf788adc26eb sample_id=build3-build3gg-u11 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 barcode=barcode08 barcode_alias=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=124204 ch=57 start_time=2023-12-29T11:54:18.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 parent_read_id=82c9ec69-067a-426a-8230-cf788adc26eb +GTTGCCCTCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTCAGCACTTAGCTGCAGGAAACAGTATGACCATGCCAGACACAGACTTAGACTGCAGGAAACGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATATAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAGACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTAGCTTGGCCTTCGCCTTAGCCAGGTGCTGTAGGGAACAAACCAAGTTACGTTAACCTTGGCGATTAT ++ +$$%%$%&%$$$%&,-06>??D????=>>>@A>==<<>=>>>??>>=>?BB43333<;4442AB@A@AABA>>=<<@??@A?@?@@A?>>>=@@AA>>==<;;<;>>==<<=>=>><==<=?@@BB@=<<;;<>?@CCDEFDCCAA@?AAABBCEEEHFHERFKA?=;<<>?A76666DDEDDEDC@????@AA;;:88<;=FABGDBDDDB???==>>>AA@;::99<;;;::;;=?@B@A>?@?<;;<>@@>88877777>?>@?><;;;;??BBA@>>>:>7423377CC@@==;<<>>@A@??@>>>>>?@?A?>>>=>@@??====??>>;85-+**)))****'''''+,+,++++-25668>>>>?A?>><8999>??>>=>?BAECB?>>>>?AC=;=<<<;<;<>?@??@@@>>?>?A@?@CBB?+'''*.//1+*-+,--/66222-.??>7&&''(,+)* +@f7a72033-a105-4825-96e5-707d16491f5e flow_cell_id=AQY258 protocol_group_id=nseq28 parent_read_id=f7a72033-a105-4825-96e5-707d16491f5e basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=19842 ch=7 barcode_alias=barcode08 start_time=2023-12-29T11:55:52.719061-08:00 sample_id=build3-build3gg-u11 barcode=barcode08 +TGTTTATGTGCCTGTATTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTACCTCAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAACAAAACTAGCGGCAAATAGCACAGCAGTGAAGATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGTGTTGGTGTCATAAAGTAAGTCACTGGCCGTGGTTTGGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATAGATT ++ +$%'''%%%%$%%'&'%$$$$%%&()++++.///012543334555632111245/////0/))&$$$%&'78554447448777786644433455788876665576433321000145666644411222666333431111256799:::99999::754212225533446:;9888766545677774322344767676788865655775543010//211110002100112200+****+,**''')..046421112256<::97776211001224655566667777766666665555566667667656656667778864324445659//../0++*+++''''(()('''')))*+.((((()))*3359999977,,,,4))))+.1479976788988899:9899:<::****+0877677856543433454578876433,,,+'&%$ +@b32b6160-b168-4b09-80d8-38777c6ed388 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 read=14416 ch=60 start_time=2023-12-29T12:04:52.719061-08:00 flow_cell_id=AQY258 parent_read_id=b32b6160-b168-4b09-80d8-38777c6ed388 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TTTTCCTATTAACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTGAGTTGTCCCTGAACAGCGCCTCCAGACACAGACTTAGACTGCAGAAACAGCTATGACCACTTGGTCTCGACGCTCTCTTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCGTGGTGGTCTGACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTCACGATAGACA ++ +$%&('&&'())+24***6466554445579801111CEKJGGIBA<<;;*((((&'&&&&%&)))7;*****=;;@@@CKFFFPHBA@@DEE??))*<=>==>CAA@@?77758@?@>)((((800.////134CBCCBABA44FDHGFFFDFSSKSGHIHGJI@>>>>FESGHGIFGA@FCA@CACDEEDFILEEFB>?HD>880////14''&'***+(('()++,,,)))(('''()*+<@ADFHJJGHSGLHGGFLSSIMHSHMSJNISFJCEB@ADISA@>==@@BCCEEGJD@@?@APEHGISHIMHJHSIIISMNGHEG@B655544235AGHJLQIOLILSLKHLSNIMHHKKHSNKJSKGHHGFCGGDHFEHNKILQOFCDBHRISJSMSOIISSSMKSHKGMSFKHSJIILMSSK76679=C>9997678955511222@ASNLS.---,,+*+(& +@218d6462-45c7-4f9d-8007-78c72f0ad3da runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 sample_id=build3-build3gg-u11 parent_read_id=218d6462-45c7-4f9d-8007-78c72f0ad3da read=11380 ch=111 start_time=2023-12-29T12:04:50.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +ATGTTTATGTGCTAGCCTTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATAGAGACTTTGGTCTCAACGCTACTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATCGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTAGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATAAC ++ +$$##$%$%%$$##$%%'(,-++..-1100/.---..../544445667800001<4++++*,,-(().787877888777889;;:<<;9986654556889899::556655'&&&')*+*&&&%%%$$)(++&&&&&./2333344579987745=<<<<=<864222337655567:;9898763//09:9::7622224:9::;9:40007966666<9943333555443445466566779666665/-.010001126343+)(''(*,5677777853321234575556666666776566666667666666766765555664433440++++*-,,---3333876665664222236888877432(''')**))./56788776333113347633334778777556657667776665655556787786655666777666444336656655677754++**) +@0c9d4ef5-e857-4255-aee9-5e400401c55c start_time=2023-12-29T12:15:01.719061-08:00 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 ch=86 read=15597 flow_cell_id=AQY258 protocol_group_id=nseq28 parent_read_id=0c9d4ef5-e857-4255-aee9-5e400401c55c basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 +GTTTATGTTCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCGGGTGATTGGTCTCAAGAAATCGTCAACCAACGCAAGTCTTAGTTCGTTCAGTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAGAGTTCTATGTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAA ++ +$%(*&'&'&%%'*,,//2246>@BAA@>>>>>FFFBBABAGGFABKFSGSJSSKHFFDFSH91126<>?NHSSHSKSJJLSIIIJSPSGSJFE70..2DDCEEEB<;211-&&&&(&&%%&&&'('+++++&&&%%%&)9=?>@?@@ISFL@@?>1111)(''',*..11245CDHEDQQIKPPSLIMHH33333=>BDGIFFDPM:999:HHEJSHIJM66666JKNSHSMSS=<<<?HGKKGSMSSLSOLIEJLSJIOMKSSADSC?>12EDFCSLISMJISIHIIPKEIFD@@90'''''03;;2110153334..:<;;:;PFOSCBC<<=<=><0/ +@0ca02773-a131-4cfd-b5e3-f59e0ad69ce4 start_time=2023-12-29T12:33:57.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode_alias=barcode08 parent_read_id=0ca02773-a131-4cfd-b5e3-f59e0ad69ce4 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=28981 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 ch=16 barcode=barcode08 +ATATATTGCTCGACATAGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTGGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCAGTTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTCCGCTTCTATCGCGGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTAGGTGTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATT ++ +"##%$$##$&'&''&)*****;;78777??BCCDFFMGFEHJ@@>>3,/.***23AA@@EJGFHA1---9FSLMGKLSIJE<>3,,-?>>>AB@@A@CGQIFEEDDEJEDOFGHFEGCCCDCDGFEDECEBA@ABEDA>><<(((((?@@@ABABBDD>@C@?AAAA@AA@CDBCFC;=CCCBBBBDDECDHEB@A??>===?CC@A@::::@BCCBFEFEFEENEDE:66777;543333&%%%%&%'(122<<==B?<;::;<==?@?>@>>>>>=11111000899965444559?@@?>=?@?>886771180*?77???A==:**'&&&(677697<2+,:999:7965466<<@=:::44334:;;9;:944333,****'''',01245=>?@?====?@=====B@?@?>?=<65555:;412895*)),-*'%''''&'+%%%'),2/.0.+,,,,,.++-//0+-6666000112/.)(' +@4dd77244-65ef-4b3c-9e60-04dde51d3945 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 protocol_group_id=nseq28 barcode=barcode08 parent_read_id=4dd77244-65ef-4b3c-9e60-04dde51d3945 sample_id=build3-build3gg-u11 barcode_alias=barcode08 read=1339 ch=100 start_time=2023-12-29T09:58:23.719061-08:00 flow_cell_id=AQY258 +ATGTCCTCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGCCAGACACAGACTAGACGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGCAGGGAACAAACCAAGTTACGTTAACCTTCACAATGGTT ++ +&&&(&''&'&'''&()../65443000/03444332333231/.../2422211200,,,1242212244111114222200///100/..---./32233355110014222236655555533211001235664433222431111130///024666764330)().-./..//./00132////0224444011113233454441.*(((()153211124655421.--)*31.,&&&&''&''( +@6fc80a53-c62a-4b99-a868-004f00983da1 read=18172 protocol_group_id=nseq28 barcode=barcode08 barcode_alias=barcode08 parent_read_id=6fc80a53-c62a-4b99-a868-004f00983da1 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 ch=113 start_time=2023-12-29T12:36:03.719061-08:00 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 +ATGTTATGTTCCTCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTGAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATGCTGGGAATCTAGTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGTGTCAGGGAACAACACGAGTACGGTTAACCTTCAGCAATACGTT ++ +%&%&&%%&&$$$&%%%&&++14>;<<;<88778;<>??DDCCGDDBCDEKEFSECCBDD333333.1<=@ADC;;65557>>>CF9999:?<;=??@@???@@GFQIFA==<::??<<<=ILEDFCFGFJE<;6,++,3,)*&&''((2222BABAACBFFHEDCBDDEEFDCE=<<<;A@;;/,,,,,61129-,,,,89:ECDDDBCEDBCJDDDFEDDDBABE;:::9@?@@AEIFDDFF43334A@A@AABADBHISEAABBA11110051/+++'&%%%%0*)-****)((())../151111*))**57/.,+) +@5daad82d-0482-45ea-9c2a-d69fddcb14e1 start_time=2023-12-29T12:36:02.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 barcode_alias=barcode08 ch=113 read=18168 sample_id=build3-build3gg-u11 barcode=barcode08 parent_read_id=5daad82d-0482-45ea-9c2a-d69fddcb14e1 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 +TGTACGCACTTCGTTCAGTTACGTATTGCTAGGTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCACTCGTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGAGTAGTTTGGAATTGTTCTCTATTACCTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTCACAATGACAT ++ +$$%%%%%&&(,-/099DDCB=?>>;88325/*('&''(-0/1153//02346443,-,,-AFDKHGGFGIHNMPGGGKEFIIFCB?@AEEDDEE@@A@ASKFIFDCCCA****,5=??>>AA+*++,GDEEFEEJHGSEFCCC>===<=?@?@?BAAACCA?=<<>=@FGJEFCBB@@:3333144BEFDSSFGGEGMFIGDABDA@?>???ABIFEHSSDC>=8&&&&')*(((''''')+2211134333345667:;;;BCDFEFDEFCGFFECA@==>;;9311((&&&$$$%&&%%%%%%%&%%%%%))*(-(''''49:@@AECEEIFGEFFJGFCDEEL221976573101;9**(((''''''.29>?DDEFDCB@A@@6?77BABACDCDCDCFFFDDGGFFDDCDCFDGGB22222=BBCFCCFSFO@@@@AIGIFHMSLD755333,))'& +@6dd8f2a8-c59b-47fd-ab77-d7388f186210 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 ch=16 start_time=2023-12-29T12:42:29.719061-08:00 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode_alias=barcode08 read=30304 protocol_group_id=nseq28 barcode=barcode08 parent_read_id=6dd8f2a8-c59b-47fd-ab77-d7388f186210 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TTTGCCTGTACTTCGTTCAGTTAGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTCGACAGCTATCAGGAAACACATGACCATGGTCATAGCTGCTTGCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGAAACAAGAAGCCGACTACGTTTGATGATGT ++ +#%''&&))+((()''(()3544.((&&../39:::997676//...30+))))))0((('(0-)('&&'&&((*49:99966666<<<<;976667::2221289;=<5***)*2225556@@@;;7755577:9::99;:977789/..))***4100../00889899:65556<<=><;99*(((*222(3424000/---,--/''&'&''))6899777782221-,/+++(&%%%&%%$$$$$$$$#"#$$%$$ +@6ac32ffe-c9cc-42b7-a1d7-fb8e86d744ea ch=125 start_time=2023-12-29T12:43:17.719061-08:00 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode_alias=barcode08 parent_read_id=6ac32ffe-c9cc-42b7-a1d7-fb8e86d744ea runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=20218 protocol_group_id=nseq28 barcode=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +ATGTTCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCGATGACAGAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATCGGTGGCCCGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTTAGAGAACGTCGAGACCAAGTGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAAATGGT ++ +%&&('%$%&(*-/345:HGESDGAEFHB@@>?BCABGKLHKLJBDBBASS>>=>0+9(((04::;;::<.....GIHLSLNHMSGHKNHLGFHNKHHHJKMGFE?;;;;----//,,,,-/((((((AEDGSSGESFSC;GMFKNOSJSKKSGNEIG?666SSJENCCI====FIFFFEE54444SJGRSGFGJFKINJJKGIMSISSMSBBCDCSCEECDEFKGIGGFEHDGDIG>9888633)*111558SHFKSHSSHNSKSFDGEM???@@?>?>?ILSKIHSSKSLMSLSJGKSKSLSSL>=>86660/* +@e514f197-f74c-4145-89ab-2977e1c7344f barcode_alias=barcode08 parent_read_id=e514f197-f74c-4145-89ab-2977e1c7344f basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode=barcode08 read=20615 ch=122 start_time=2023-12-29T12:43:05.719061-08:00 protocol_group_id=nseq28 +TTGCTTTATCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTACCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTGGTCTCGATCGAGCCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATATTCCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTTATCTCTGAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTGGGT ++ +&&&'')&$$$$&((5345GBAAC@ACCGDSFJEFBCBOSJNSLNMSJRSSIKGJJMD4***34BBGFIILGMNJIHFMSKOSKOQJJSSMFMFKOLQMJIRHFIIGKQLS@?==***,,'&%%%&&&''((DCGJHIIKGIIKIPGELHFFKGG87778KJSKHLQKMIHGSQOKSIHMSSJKSIKSMSOHNLSIISHHIKGS>>=<=(''''+&'CDFEDEDDHIJJIQJNJKJHJKJNISGFGJNSMJSLKKLHNKIOLKMKKMKNGLMNKEGF?=>=>DDDINIIJLQHISKE@EE>>>>>==@GCDDE<A;;9878996555557:99999:999:;=>0000.*4&&'/6;;;<<<<=22111>=>>?>>===:5-+++(++--:<>=<<=<9887889:;<88899>755.....3131'&&&%$$$%%%%%)/161135677779544?=;;9:=???<;4..+*****+,,88888;><<<=>@B<:::;:;===AAA76656:::997789;>>?@?A<7'&&&)),-..,,+++-0;>;:88899==?>??99:3300//0335==:::99;<====;;;<;:;:;<<<=<<<=<;;;99962220110(((((((%$$%('&%%$$%%$&%%%&+/024776557*(&&&''))----0008888::=::100.2&%%%%))*:;;:7666;<=?=>421+'&&&&43(((((*++*+..24466:;;;;)((''('')'''( +@b3e28f80-6f2a-4674-8143-f5d25f273663 sample_id=build3-build3gg-u11 barcode_alias=barcode08 parent_read_id=b3e28f80-6f2a-4674-8143-f5d25f273663 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T13:06:36.719061-08:00 protocol_group_id=nseq28 barcode=barcode08 read=121923 ch=28 flow_cell_id=AQY258 +TATGTCCTCTACTAGTCAGTTGATTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGAGCCATGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGGTCAACTGTTCCTGCATCTCTGAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAAGAAACCAAGTTACGTTAACCTTAGCAATACGTTATG ++ +##$''$$$$%%((&&'&''''%$%%%&+)(***../0112/.../12222234345225852222333222345665665454310/11124444343445410))(''''++,.,++000/.---+,..///1-*))((+***+.0,----)(((()))25)&&&'1''''('$%%%'./2456500,,,--2421121233233/++++-...22355678954-,'&%%&$&)*))))))))&(,--/0///00--)('%$$ +@c365c4e3-3978-405c-9069-a37e936d0476 barcode_alias=barcode08 parent_read_id=c365c4e3-3978-405c-9069-a37e936d0476 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 read=111460 ch=15 sample_id=build3-build3gg-u11 protocol_group_id=nseq28 barcode=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T13:08:03.719061-08:00 flow_cell_id=AQY258 +TTTTTACTGCAAGGTTCAGGCACACCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCACTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTCATAACAATGCTGCTTCCGCTTCTCTTGGCAGGAGGCAGCCCAGGGAGAGAGGTGTATGTATACGAGGAGCGTTGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGTCTTGATCTTCATCTGTATCCAGGAAACAGCTATGACCATGCAAAGAACCCCTCAAGACCCGTTAGAGGCCCCACAAGGGGTTATGCTAGTTATTGTTCAGCAGCTCGACGATTGACACCTCAGCGTGGTCTTCAACATCGCCTGTGTATAAGGGAGCCTGATGTAATACGCTGCTTCATAGCATACCTCTTGACATATTTCGGGTATACATATAGGTATATACTCTTATACCGCAAAAATCACGCGCAATTACATGTTATCTGGCTTTTAGTAGCGATGGCGAAGACTACTCCCACTCCACCTGAACCAAGTTGGCTCCGAAAAGCCTCCGGTCGGAGGCTTTTGACTACTGGCCGTCGTTTTACTCACAGGTGCTGTTGGGAACAAACCAAGTTACGTTTAACCTTAGCAATTGGTGATG ++ +#$%&&&%%$$$#########$$$$$'%%))**))))(**+-/0654444555543221234///00462--.27655456778855555321100001455664101115600/..002777775666687766553445587776422212445432220....033333475552./.++.+,,03333430)'&&&'''(/3333666674222243123.,,--..01888967//0975443-10+**''('&&%%&&&''),)))''''((%&%&&&%%%%&&$$%,**))(&%%%&))))('''%''&%&%%&%%%$$$$%'&%&&&(&''*)****'&&&%$###%$%%&)+*++)&%''(()&&&&$$#$&&&''&&&&'./13332////.///043333489:86221102122347222221101121212554554321113565899888855556965666899888885/211002::/11'(556675--+'''--123---7654346566**)((,'((((...../00337777788866654544699:9664557688553223367899;<99866654433456777765556555556/,()156.-,,))***395311(('''().1/(''&&(++.21*++++3//.-(&&&)),*+'&%%#$%,,,4555998;86333323333666655765655799:98999<;;<:::9421----.,+(((*-665534**+)****666888788:7666689660001130333233346444332(&%%(''(1///0224432222255455445532)''%$$$$ +@5bb931ae-46a7-4d32-b031-aede4552a9ea runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 ch=53 start_time=2023-12-29T13:11:33.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 barcode=barcode08 barcode_alias=barcode08 parent_read_id=5bb931ae-46a7-4d32-b031-aede4552a9ea read=28625 sample_id=build3-build3gg-u11 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TGTTATGTCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTGGTTCGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAGGTCTATGTCTAGAAGCGTCGAGACCGAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTATGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTACAATGGTC ++ +$$$&&&%&%$$$$$%%*(()::<:99:>54439::;CHDECCCBDGHSFDIHC:9874/2***++??GIHSJKFEDFFSFHILIHHIHKSC00./0CCBDDDEDCBEGABCBBDFDC?@AABHA@@>>@??AFD77777LNSEGJOC1.--((()+(((((//112562212588>A;;;;;EEGDICA@?****).((&'&(0000877;99<=<<<<<=<;;==ECDCBDFSFE>>=;998:;:9;;@DEGSGHIJHHCEDDFDE98---77?BCB99:9:CBBDCCFCC@B83334542000100.-,,/039989;56AFGH@@?>>>>>?=;:4++00-(((((('+)*)))+12463434378*)))*>=<;<==>@@66656><:8779;==<=<:4*%%%%(>@A?@A;;97788<>E?>@@@?A@C@@@>>??>=@GFC=+*&%&%&*& +@18e5abf8-a410-4f87-8f1c-3f519675f900 sample_id=build3-build3gg-u11 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=18163 start_time=2023-12-29T13:12:46.719061-08:00 flow_cell_id=AQY258 parent_read_id=18e5abf8-a410-4f87-8f1c-3f519675f900 ch=111 protocol_group_id=nseq28 barcode=barcode08 barcode_alias=barcode08 +TGTGTGCCTACTTGGTTCAGATTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAACGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAACTAAAGCGGCTACAACTCATGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAGACAAATTACGTTTAACCTTAGCAATACATT ++ +$#########$&(&&&''&&%%&&&&'')024676644332332221245110001122240865544666543643333455453332234577655444445411112*****445553//.-.0127765443543333455666677788788400///--4001177765554443344544410...//43446676654211113368722100111220112///.-**(('''()+---.2110..//06321223455644433442110/11135344454555466544545554556653220....//.-++''''''&&&''%%%%%$$$$$$$#$$$%%'%%&&%&((()*)*,*++,-,,,**+++4434,,,,,312221346765001114445577779:866/..-,*.++('''&('&'&'())*.23677311111.-''& +@395e5ec7-a0b7-4d97-a2e4-214dbacfcd80 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 read=18985 ch=112 start_time=2023-12-29T13:14:08.719061-08:00 parent_read_id=395e5ec7-a0b7-4d97-a2e4-214dbacfcd80 +ATGTCCTGTACTTCGTTCAGTTACGTACTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACAACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTGAGAGAACGTGAGCCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATGGCTGCTTTCCTAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATA ++ +&&&*&&&&'&&&2248ACEECDBEDSE55555DDHIJSKSISKNKSSIGAB@ABMHA::;;BPHQIKMGNGJBADD;EGHHQSSMOSMLFBBNFHHHIF11112LEIGEFDJFLHFSKKSIOFLJSHFI@FJKILKGPKHJMQSPKGO=<<=>>>>LSKSHPKGMKJHSIMKSSLRHIKIJKJJSDEHGCCGABBAA777779GHEGELGJFSGEKGSQIHNNFKHRF@DEDIGJA;::::CJHDEFDEBBAB=;;>74855B>7777@==44578?ABH>;=>2?>>SFEFHFLSIIHNSHJGIGGSSSM<<<<=F;;::664552988;DCGSSMHI)))))ABEAABBALFBKJIHKHJGGSHRSLGDGCDCCA..& +@4c4ea981-e66b-4754-9727-d31e9edaeb34 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode=barcode08 parent_read_id=4c4ea981-e66b-4754-9727-d31e9edaeb34 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 barcode_alias=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=18519 ch=89 start_time=2023-12-29T13:16:50.719061-08:00 protocol_group_id=nseq28 +ATGTTATGTAGCTTACTTGGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCTGGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTGGTTTCATCTACTATTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATAAGATTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTACTCCATTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCAATGTATCTATACTGCTTCCGCCTCTATCGCAGCCAAGGAAGAAGGTGTATTGTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCGGGAACGAACCAAGAGTACGTTTAACCTTAGCAATAATT ++ +())--'&%%$$$%%%()4)))*+;:::;?@A?>>>>@DA@@3111169@@AABB))))*073--)*;88:CBEBCAAAA@CHEGEC>===>B5541100(((((2333333431,,,,+&&'()*,-./;?>=>FCDGFG@A@A@ECD52/./)((('&&((((((0233.07;;>@BCEEGFBDB=9,,,,+,,+++((*,-/,,.----/1*)))+.**'(+6((((9::>AABCAB>==:9:..----*****)((((,))''&&&&&&&+*())))&%%%%%%%778:5430///154450112&%%%%%+)***=C?????@?SDCBBDDGGHLS<;;;;>@=210(((''(% +@cc60c8d2-550e-429a-bc97-f934aaeebd09 flow_cell_id=AQY258 parent_read_id=cc60c8d2-550e-429a-bc97-f934aaeebd09 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 ch=112 start_time=2023-12-29T13:22:52.719061-08:00 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=19411 +GTGTAACCTACTCAACTTTAGTTACGTATTGCTAAGGTTAAACACATTTAGCTTGTCCTTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAAGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTCCTTTCACTGCTGTGCTATTTTGCCGCTAGTTCCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAACGTAGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATGCGTGGTT ++ +$$$$%&&***+,+)))),+(***+/0000223454321-)'(''&&''(&''''(,232200066678889:::86644421222688763100003432////05565667787898211*****6:976531111244543311/....1533233434355444456435445667454435333323323554543322223478****-34647666688676311102,21000/..--.-((11122224666666221101112333444442212221222344344000*(((),/1233755544899:5555211002310/--./0654552221+**)))))')''&((((,*&&%%&'+///2432//0/..../21111267975210//0/012361112164334231////0433334689763210010124594333254333120..//15555457676622110212343322222322455777855333344543331111244444223223))))),&& +@fa958ecd-2ce0-497a-a242-1c2f4d3ec024 ch=15 start_time=2023-12-29T13:23:41.719061-08:00 sample_id=build3-build3gg-u11 parent_read_id=fa958ecd-2ce0-497a-a242-1c2f4d3ec024 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=112913 barcode=barcode08 barcode_alias=barcode08 flow_cell_id=AQY258 protocol_group_id=nseq28 +ATGTTTATGTTAACCTATTCGTTCAGTTACGTATTGCTAAGGTTAAATGTAACTTCGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATAGAATTTGCTGGTCCTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTAACTAGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAAAAGCTGTATGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCAGGTGCTGTTGGAACAAACCAAGTTTAGTTTAACCTTAAGACAATGCGTA ++ +$%&())&(''%$$$%%%%&**,--5---.9;@?@A@?B@@?DGCDHDCFKHJEFS88888;<444<;;;SGIOISKMJSCLBA9FFISIOSLINIGSKHNHMNMISIJCFKSSSKSHSG11111@@???AFJAA?BBHJGKSF@A@>>7-,---59@??@@@EFD@D??;487558;CGGGSIED=<;-,-00000<=85578<=>=FFE??>>>FCBA??@CCLF@@@AACBDNIK>==<=CBA<655*)))))*//11222331--,,/13::686,.=@?@EE?=>;;<=>>=754/---,,**))(('(36>>>=<;@:::::BBABCFEFGKEEKI7;<*)&&''+,(*)((((*+*++,4;@A<:54344556--,+' +@4e04f33a-cb72-4d12-a71b-267cb19e7ba9 parent_read_id=4e04f33a-cb72-4d12-a71b-267cb19e7ba9 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T13:45:54.719061-08:00 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode_alias=barcode08 read=44554 ch=14 protocol_group_id=nseq28 barcode=barcode08 +GTCCCTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTCGTCTCAATGACCAAACCAACGCAAGTCTTAGTACGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTCGTTGTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTACGAGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTAGCTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTAGAGAAGCGTGGAGGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTAT ++ +$$$%&&(-2222125634444222339>@==<<=@ACBCCDCFDJIHL*****01,))-)5ABCFDEHFDDCFDGGCDECCAABBEFFHDBA@AAADECCBBDFFFHDCBBDA*)))*A??@;<=<;=>?AFCDBCBBDIFG8544(((((-////..119:A@;::66;778AA@DCECAEDE==<<<=>;9@ACBCC88884-,,-.+,+*&&&())''(**+,,5++?A@A::733223669<:88566212...-+-)+++++,+**&%$%%'''))13588BBBBACDB???=>==>AABA@>>>@AF99989HGGEFCDDEBDDC<;<;;=A<--,,,2.----.-0000:D==6-,..55-+*%$$ +@4189960b-eeb4-4eac-9362-4197f6bfa753 barcode=barcode08 barcode_alias=barcode08 read=68362 ch=3 start_time=2023-12-29T14:01:23.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 parent_read_id=4189960b-eeb4-4eac-9362-4197f6bfa753 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TTTTTATGTACACTTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACCTGGCTAAGGCGAAGGCCAAGCATTGAAGCGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTGGTTCAGTCTATTTCTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTACCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCAATGTTGCTGTTCTGCCTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATA ++ +##%%&&&%%$$###$%&(*)**++34320/,,,-///35444444442000013457556560....140/,,,-0433222////0456777211/*)*)*(''())*,5687545444544334447566630000166764200***))-,+((&(+*'(121533455633333645543332244454---('''((('(,(((((*1114477886443222210/002111/.///233345786665211///0/01212334533333312212433443442-'''''0///0..--++,*)((()*)(***---/01877766776665566550/)('''&'(((&&&&&&&((()+,,,,,,,/./03343346787644322322346944443432234552/('((*+/+))'&&.2444330011267787555454/-,+& +@1f640099-1cf2-477b-8b94-3aebfef8f6cf parent_read_id=1f640099-1cf2-477b-8b94-3aebfef8f6cf runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=38046 start_time=2023-12-29T14:05:39.719061-08:00 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 ch=105 flow_cell_id=AQY258 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +ATGTTTACTTGGGGCGCCTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTACCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTAATACTATACTTGAAGAGAAGATGAATTGGAGGGTGACTGGAATGTTGCTGTTCTGCCTTTTTCCCACTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTA ++ +$$%&))())(&%$######$&,06>??=;::899:;?@?><<;;;;:;:;;<>ABD77677:7---01@???>??@ABCDCA@>>=>;;:;;AB876659999<=::989::=A>=<<<===??ACAA@@>956689@?><99989;:::7654445623333<8879:::<>><;=<;;;::;<<>;<;;<<<-----.---11-,-****+:<<<=?>>=?<::9:(1111::<><<:99<<>>>>??A@>>,,,,.1+***))))(''()*100/..////456888993-,,'&%&&((1114999999:;<;77455.))//0,++++0887998;=><<8544353433243444621114443333458899<;:;;;=>66645==?7889=>>=;::300/)((((39556:889000004:88;;:==>?><;;:9::;?A@@@66;:;<7653( +@e715e477-054b-427d-8f5b-a41a3c860d2d read=23246 ch=111 sample_id=build3-build3gg-u11 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 flow_cell_id=AQY258 protocol_group_id=nseq28 barcode=barcode08 barcode_alias=barcode08 parent_read_id=e715e477-054b-427d-8f5b-a41a3c860d2d basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 start_time=2023-12-29T14:08:04.719061-08:00 +GTTTTGTGTATGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACACGGCCAGTGACTTCGTTCTAATGACAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGTATATGTACGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATG ++ +#$%%&&&$$##$$%'',+--.-2.++*,344DB<33113@DDEDHJHSIMIJIDHHC.*9(((7(DDDGNSJOS;::::G5555;00001SFFDABBBDBBNHHA9857CFD+++++-,,--.'''%&%%&)--22359BBFIMKI99994445-....;>=<C:IEDISJ@??@@JGSNSKSKSIJHSIJ===<?437.***0022288>?A;;;;BBHJGFLEQI>=?AAECFFDBA@ACA1111;6550,,,,223121,))/..----+++**))*-135=CECCENIF@BCDDDACFDDGFMF?>?3331+&&# +@1fc7f51d-c920-4f44-a9c6-b02084c99efd protocol_group_id=nseq28 barcode_alias=barcode08 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode=barcode08 parent_read_id=1fc7f51d-c920-4f44-a9c6-b02084c99efd runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=25888 ch=27 start_time=2023-12-29T14:11:01.719061-08:00 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +ATGTTTATGTTAACCTACTCATTCATCAGTGTTAAGGTACAACGTAACTTGGTTTGTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGAAACAGCTATGACCATGGACTGGCCGTGGTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGAATCTACATTAACCTTGGCAATTCTGGT ++ +%&&+,,))('&%$$%%&&(%%%&%%%##$##$''')//'&%%%&(++,/0-,,-+)-'''++4333344411222444334444331////.012243335662110020/++*+00123++(((().0../,+,-3232--.-.32333433334654444665753222210,+*)((''&()()2,,,*,,---,(''(( +@9e2d02e5-39c5-4bd6-aab0-e4e96a6850ac ch=53 protocol_group_id=nseq28 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 parent_read_id=9e2d02e5-39c5-4bd6-aab0-e4e96a6850ac runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=54392 start_time=2023-12-29T14:46:07.719061-08:00 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TTGTCCTGTTCTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCATAAAGCGAAGGCCAGTAGACCATGGTCATAGCTGTTTTCCTGCAGTCTAAGTCTGTGTCTGGTATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTCCTGCAGTCTAATCTGTGTCTGGCATGGTCATAGCTTGTTCCTGCAGTCAGGTGCTGCGGGAACAACCGAGGTACGTTTAACCTTAGCAATACATTC ++ +$$$%%''%&&&&&%&'))353322011033343221111120..../233422322/,,-153110024456767443333////04520.,)))()''&&&()+.020.)))01243232/.//044431.6789761///.1112457555//.--//021//00153320353/--++++2211200.0/00186555341/../03)))))58541100/0011482222165434341////022////1475521111221*))(*('-&&--./00.-..)****47787/,)()+((%%%$ +@2528b538-69d6-4519-b0dc-b616e868f712 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=39246 ch=120 start_time=2023-12-29T14:46:38.719061-08:00 parent_read_id=2528b538-69d6-4519-b0dc-b616e868f712 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +GTGTGGCCACGTGTACCTGGTTCAGAGTCAGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTCCTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATGAATGACTTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTACAAGCAATACGTT ++ +$$$$#$$$########$%%&(+*'''&'&%$%%&(()5644333333222222441211-*3****+322246656668656666674433332344787665554465433340000/(((&&&)*)''''(,*'''./554311111345778::9899999632000113322344666440///))/122464422233766677889:65977888311//1002011113367666668997,+*++00,,,++,,,-.554111125778664335563330//../4*)))+--00445567766554444445655554431110&&&&&'&%&%%'60000042234456310001455565642232234455777799877634---..95744322248777445445445689888:;<;65555180,,,&&%%%$%%%&'''+,,+,-&&&%%%(.*)'&&$ +@ee54ce88-a09a-4eab-86ab-f064c5047b68 barcode_alias=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=30407 ch=60 start_time=2023-12-29T14:55:57.719061-08:00 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 flow_cell_id=AQY258 parent_read_id=ee54ce88-a09a-4eab-86ab-f064c5047b68 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TGTCCTCTACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACGACTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTCGTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTACCTTCTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTCCCGCTTCTATCGCAGCCAAGGAAGGTATATCTGTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGGAACCACAACCTTAACCTGACAGGAAACAGCTATGACCATGATTACGGATTCACTGGCCATCATTTTTTTACGCTTGGCCTTCGCCTTAGCCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTGTTAACCTTTGGCGATACGTTT ++ +##$$%%%%%'('''**???@;;;;<=76+++++AFDDFILSGGKGJH2222.,8))*+.///)(&&&)17@BCCGFGEFEIEGKFMISFECGE;;;99<;?BCDCC@5,*++**.++****23BEHSJSF>>>>>?>>GJHEHHSSHOLQHFFEAE<8654200++,56==??IKSFFIIEIHEIJLFIAACFE00001::8<89=>4----->AAHGMRMSFMEGISSSILKJKSSHMOISINOKQSJHSKNSHSJIJSSJSGRKHPSFLJSGHLIEKCDGCD@===9++++,4569>?B@=?:444.+,,***)*7()CE;;;:ABB::::;@><975,)'%%%&+(''()../7>ABAFFFFEFKDJSEBCCCGGESJGIIHAGSISRKHKGJSSJHKSGJGIJFHSFSNGIGGIHSJIJHQKSSGE@??<=?EDCEDGH--,,,-)((()FJKGHK?6552234))('&&&&()34@CFEMBBCFJKLFHDF<888FGHPGRGISSISMGIKHHHSNMHQRSJLSLNGSGJIKSFMRKSJIGB>''&&',8000/./08753&(+*,1000+%&'&'''')('' +@2514af75-8b42-4817-a32e-74cd7e19fc86 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T15:41:37.719061-08:00 flow_cell_id=AQY258 barcode=barcode08 parent_read_id=2514af75-8b42-4817-a32e-74cd7e19fc86 read=100546 ch=3 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TTTGTTCTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAAGAAAGCGGAAAAAGGCAGAACAGCAACATCAAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAATAAAGCCTGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAAAATAAACTCCAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATT ++ +#$%%$$##$&(+*+,5123210/../0354554465554553311122554566764456786655677766777887788775442223377667566667632222...//776777*)))))11668988663222245576788778778870//.-//.-))(''()*7778100/..//+*+**(%%%%'3334779975445334436553334021100--,+,..,,,&%%&&-00142210034463/,+)*+,-555545688+++++25575767644555654344456667777765655544332333121,+-.)((((&%%%%&----110133362///..01344764333334556576679997743332454,)43444555544---.23//055776678:98.---.)+'',,(.2554442.....88776///02332/.+ +@5febdebe-6cf6-498f-878e-8a06a9d532f4 read=39396 ch=122 protocol_group_id=nseq28 barcode=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T15:53:04.719061-08:00 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode_alias=barcode08 parent_read_id=5febdebe-6cf6-498f-878e-8a06a9d532f4 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +ATATTTCTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTACCAGCTAGTTCCGCTCTAGCTGCTCCAGTTAATATTACTACTGAAGATGAATTGGAGGGTGACTTGGAATCTTGCTGTTCTGCCTTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTTAGCAATATGGTGA ++ +$$'()+)+-.2466:>=<;;9999:=>=>;;;;;;;<::::;>@@87778472//024<::::;<<;;;<;;:999966667?==<;987778:<99877999:987889;<<<<<;<<;;;;55559==;88889;;:8764432233475555697677454..5333477899:676668778:9::::=<<;;:977788<@<:977678;<;;;;;>>?>>=<;:))--,,-.:;;;:;;;;98889:;<<<<;987544334579::98766778889;:::99:66650)'&''&'%%%&&&'''&&&'(.*)**.56667:777////0;211008;:9977555545*)*--.-.00.0.*'''''(++-4998654456755526;:<9866555779:221118886766688;;;3222269866533111124479996=>8541*+324533.--*( +@6df3d69b-46ca-4e42-932f-de6c4e2b4c9f barcode_alias=barcode08 start_time=2023-12-29T16:29:30.719061-08:00 sample_id=build3-build3gg-u11 ch=60 flow_cell_id=AQY258 protocol_group_id=nseq28 barcode=barcode08 parent_read_id=6df3d69b-46ca-4e42-932f-de6c4e2b4c9f basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=39657 +TGTTTTAGTTGTATTCGTTCAGTTACGTATTGCTAAGGTTATTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAAGGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTAGGGAACAAACCAAGTTACGTTTAACCTTCACAATGGT ++ +$$&&&%$#$%%&&%%''),,2,,,++**+04556=<<37&&')7AGFLIHMMKKFNHFSSPIFFLJSB(((''(&&' +@90b2bccb-6307-4615-8a9d-81722fe98510 barcode_alias=barcode08 parent_read_id=90b2bccb-6307-4615-8a9d-81722fe98510 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 start_time=2023-12-29T16:46:33.719061-08:00 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=72588 ch=110 protocol_group_id=nseq28 +TTTGTTGTATTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGATTACGGATTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCACCAGACACAGACTTAGACTGCAGAAACAGCTATGACTGGCCGTCGTTTTACGCTTCC ++ +&&&'(&$$$$$&$&-7;=BBA?@@ABDDCB>778DGEFEDEECDHCDF=<<<=EE:7785=FIHFJNJHCDCBACDFNHNNHJHJFDBCAB@BCBA@@ADBFDBAABBDDDGFDDAA;;<544444CEC@>???@@@??>@@BEEJFDA?AADSGF==<8)( +@7724fda8-448f-42f6-98fb-157a91a6cf2c runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=40138 ch=111 start_time=2023-12-29T17:01:01.719061-08:00 barcode=barcode08 barcode_alias=barcode08 parent_read_id=7724fda8-448f-42f6-98fb-157a91a6cf2c flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +TATGTCCTGTACTTGGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTCTAAGTCTGTGTCTCACATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGTAGTCTGGTT ++ +$$%&&'''%%$$%)(*,,((((('&***,---20-+++11121/////14//.2+(.''',.3333468777878643221////1411,''(.---13,,,+-/014332222111225334+)))))1032000023111015654543210/...+,,+,2113334423200112533334993+)'')&&&& +@c0911846-63be-4587-bd8c-d4e86c9f1c4f start_time=2023-12-30T01:33:48.719061-08:00 flow_cell_id=AQY258 parent_read_id=c0911846-63be-4587-bd8c-d4e86c9f1c4f ch=89 read=343367 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 +CTATGTTTTGTACCTGGTTAGATTACGTATTGCTTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTCTAAGTCTGCATGGTCATCTTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCCTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGCGGAACAAAGCAGGAACACATGCTCACAATGT ++ +#$$$%&&&%%$####%&('%%%%%%&&,--.101/.--2233341...-.012222334233663111126678878643322./../333331-,,,-12,,,+,//152200010112332110000//000243477;00.10001012223213-,,++--,+--)))()+-',467661211132344664343456555,,(%%%%')''&%$$$$&&'''&(&&'()*)('%$ +@11e555e1-15a4-4e4d-96f5-1349f61bf8d9 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 flow_cell_id=AQY258 parent_read_id=11e555e1-15a4-4e4d-96f5-1349f61bf8d9 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 read=1057333 ch=15 start_time=2023-12-30T02:42:45.719061-08:00 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 +ATGTGCATGTACTCGTTCACGAGTACGTATTGCTTAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACACAGAGGCACGTCTACATTCATCAAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGTCCCACTAGTTCCGCTCTAGCTGCTCCAGTTAATGCTCCTTCTGAAGATGAATGGAGGGTAGCTTCAAATTCTTGTTGCTGTTCTATACCTTCCGCTTCTCTGGGGCCAAGGGAGAGAATTATATGTAGAGAACGTCGAGACCAAGTGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTAGGGAACAAACCAAGTTACGTTTAACCTTCACGATGGCT ++ +&&&(%$$$$%%&%&&'(&&&%%&'&((().0113+((()0122323/.../**++))4(((0775555789:::99876654221124576641111145110//1135444445665666776545558:99766441('&'&&%$$$%&''++)((((())-21233354/0/))4))*/.--/0610///11554343233334433333433544422233672111.**+(''(()(''%''&'(('('''(-...,,,..02222210//0***''''%&&()))))).../00///)((('$$%%%(''''()('((((&&%%%'''(&&)**'&'%%&'&'((***)'&''&&&$%%%%)))&''(''((+*)())-.//.-..-+----1254442366665232112013011//1114433345754,+++365555555665222//00031111,,,**+++,+ +@258ce474-d1bb-42fb-b04a-8110680afd45 parent_read_id=258ce474-d1bb-42fb-b04a-8110680afd45 read=4159 ch=28 start_time=2023-12-29T10:12:57.719061-08:00 barcode_alias=barcode08 barcode=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 +TGTTATGTAGCCTACTTGGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAGAGGAAGACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGAGATGGTTTGCGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTGAGGAACAAGAACCAAGTTACGTTTAACCTTAGCAATACGTAG ++ +&')+((((&'''((/01))**)*(&&&&&''(556;97877776665444579;=<==<=85567::99889::999::<;;;<950..,+++-/.//./7666679:97661-,,,:888;<<5332352/00:4111;:97777:7422><=<<>??@@<:::/...///0/..../0/.,)))**;::200117<;<;;;<<<>::=;;;;;>=>6655587788889:;<<<=;<=<::77633444:88867889<<(((((')))'&'(*,,2333348;:=::9::;<<<;;;:9:;::;::::::::9::;<<<;::::::999777768999;;955566:9999::;99988;=>==<<<<98989;;;=>====>?999831..5.,---+++*+0357;?>989997444;;=<<==?544*''''&&&&')*007<==;:9777769;;;;;;<<<:8822/+ +@6afaffc7-dd7f-4ede-aa23-08f5d00dd71c start_time=2023-12-29T10:14:05.719061-08:00 sample_id=build3-build3gg-u11 parent_read_id=6afaffc7-dd7f-4ede-aa23-08f5d00dd71c runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=5599 ch=39 flow_cell_id=AQY258 protocol_group_id=nseq28 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 +ATGTGTAAGTTCTACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTACTGAGTTAATACTACTACTGAAGATGAATTGGAGGGTAGCTAGATGTACTATTATGCCTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAACAAGGTACCGTTAACCCTAATGGTT ++ +$$$$&&%&&))%%%&%&&*-788:::<<>?B@A11111DDCA@AA@ACCCJF+)))),.+++,,ABBEEEGJ@>;;;=@@@@@DCDCEJEFC::??@?@AA>>>>?ECCGCBBBCEGCENGHDCA@@AACBEDEEHEAB@@@CBFCA@?>>>@>>??EDFEEBCBBCBDCDBCA??@??ABCDBBCBCDCDCCBBBDCFJFFHFDDBDCB===.--,+++-)8;;=>DFDDDBA?<5-++((+++,,***,2226663+))'&''*,-:<>@@BC@?@?@B@??>?A@BDCB@<:9(&&%$$$%''((''''-----.1.*',44566B??=<<=>?BCCDAADDECCDBCDCA@A?=<<<@?3332254??>???????>==<<=>9:81B??D@@>===><<;<><:3+)*('&'())&%&&%&''(''))('&%%$%$%()& +@e7999831-91dc-46da-b78d-27552fe206eb read=6089 flow_cell_id=AQY258 protocol_group_id=nseq28 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 parent_read_id=e7999831-91dc-46da-b78d-27552fe206eb runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 ch=7 start_time=2023-12-29T10:17:24.719061-08:00 sample_id=build3-build3gg-u11 barcode=barcode08 +ATGTTTAACCTACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAATATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTAGGGAAGCAGAACCAAGTTACGTTTAACCTTCACAAATGGT ++ +#$&*''&'(5:;;=---;88888CC?A@>@>>FCCAAABA@BBBC@ABEB87788@2/,,./>>CDCBDFCCDEGDBBBCAAABABCGDEFIEH@>>>;31100=@??@NIDABBC8;:-,,,,.0@<.-...343/----??@B@DDEAABBAF@A?>/.--78CDDIDBCCAB>9987788BCA???@ABCEDEFEGBBABB?;;;;=>>983)''('-($$$$$$%'()))))*,,-/3434.%%'(())''& +@4a3ce919-1f9a-4ee0-b58d-c248d2d835c4 read=4017 ch=105 parent_read_id=4a3ce919-1f9a-4ee0-b58d-c248d2d835c4 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T10:18:43.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 +ATGTTATTGTGTAACCTACTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTCGTTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCGATGAGATTTGCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTCTGCGTCTAAGTCTGTAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTA ++ +&'')*&&&%%%$###$$%%&$$%'(3///085556@BBFGCDJC@B@@B>@<<>>8))2+++12??BHLGHSGMFIFJSPSOSGISJHSHGS?@LHKGSSJOIFHIOJIFEEBCCA300,++,33434500000CFFHGKIIHHGJHIHGLBAB@?BABFSHFHSKHSHHHDEQMIFGHFEKILCDGCCIHHEGEGEKEA?.,,,,0((,2(''')<<=?A@B@CHGFGSIGJC@;;97)0//0200/,++*,666::;AABNSDEC@AA@@C>>>>>A@AACAFEEBAAAAA=;9=@A<;;:99<<=@DHHDKOLHGECGB?>@<8;4001;:<=??+**)(++,36<?@BEDGFKS=0699EBAABDECBABBDGHEGM????@?EEJCA?=>>??>33=>@DCD@A@@ADDB????AEEHHL76667>B?77778CEECDECBBBCBDMEDG;:?<<<75,+* +@2c9cd82c-7c66-4fb6-a79b-8a4362d10fef barcode_alias=barcode08 parent_read_id=2c9cd82c-7c66-4fb6-a79b-8a4362d10fef ch=3 start_time=2023-12-29T10:21:24.719061-08:00 sample_id=build3-build3gg-u11 barcode=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=8662 flow_cell_id=AQY258 protocol_group_id=nseq28 +TTATGTGTAACCTACTCAGTTGAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTGGATCAGACCAAAACCAACGCACTGTTTAGTTCGTTCACTTGTCTGTTTGTATCCATTCACAAGTGTCCCCGCTGGTTTTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATATTCTACCCTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTCCTTTCTATCGCAGCCAAGGAAGAAGGTGTATCTATAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACATAGT ++ +$$%&'(),,--15...-+,,,,111256444458;876666788876665566675566670000076677888889::987656333348987754344467222002238886765,,-++(&%$$$%$$%$%(''))&&$$$%$%%%%$$&&&&''%%####$$$$$&&%'%%%%$#$$%&'&%&&''()*(&%$$%''+,,-3544333344576320000145667768888854222124448/..../**+-,**+-/145676322121/,,,,,-,''-/32322232211123433433443+*+++/012383333486110,((''(''*+3///01767888:<<<;:65554**&&%%%++-10*))('&%&)++,-101110100254330-5448764433343456674444455434557555334/+,...4355565443111113444443445432))%$$ +@6f45d042-7eb0-49a5-83b9-d0753d14a455 parent_read_id=6f45d042-7eb0-49a5-83b9-d0753d14a455 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=4851 ch=120 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 start_time=2023-12-29T10:25:23.719061-08:00 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 +ATGTTGTGTATTTCCTATTTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGCTGAAAACTCCTCAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAAGAAGACTGAACGAACTAAGACTTGCGTTCGTTTGGTCATTAGAACCCAAGATCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTCAGGGAACAAACCAAGTTACGTTTAACCTTAGCAATACGTT ++ +$$%%&%%%%%&&&%&'&$$%%%&-+----9655564334599;;998888776333336777777688,-..87978899664458788<::9777111156899999::::;9766668767779;99998988876331127;;9989998:9777679776668::;::::998555568:;;<:::;;;:;97666666768:9888777656688<;;:;;98655558;=<<>>>=>?>>>=:86555679989:;<@@?==****+,-488;:8643456:88899;<<;88877898:<<8666''''&&'(*()'''%%%&&.003323444677:6533456899988889:;9887....<8444449888887777788888888778878887887886666676*))(('%%&((433334899;::;74///**+++6899766+)(((''&'(*((()8878733222445775445589999:7777766666998999:98777732534887878865543344433322***+--+)'&& +@481b86c7-82ff-42e2-9e9a-96d832824b8b read=5313 ch=88 flow_cell_id=AQY258 barcode=barcode08 parent_read_id=481b86c7-82ff-42e2-9e9a-96d832824b8b basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 start_time=2023-12-29T10:30:49.719061-08:00 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode_alias=barcode08 +TTATGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTCGTTTGTCCCTTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATCAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTACATTGCCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTCGATGTTGCTGTTCTGCCTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTCGAGACCAAGTCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTAAGGAGAAACAAGCCGATTACGTTTAACCTTAGCAATGGTT ++ +#$$%%&$$%,()*?CDDFF@MDE;7733:??AHHIIGIIHS>?=<<3233479::4////0BCJJKIKEEGDE-((((,:?AEKMLGFEGS??@EDFHGJFHOKSLSSSOC??AEELSCGSKLHSHIIKGKJMIOSSSOSSJMMGMEFNFIGSJSIKNGEGSFHIJSPSJSILHKSSHILJHGEMILHNMMIGECEBC-,,,-:=69BBEIHKHHQKJSKSSNKOSHI655,,,,*)*)((&&&'(((,@CEMKREJSKMPABGHSLJHEEIBDKSIHIFJQNKJPJHIEBC@;;-)((&&&&&02558;99:::?LEFC>=@88EHGIHCFGHKIKNIFHCKSFQJSJN>1111H?@@HKJNMOIEE>;::8:996;=;::;>>@>>>674,+A66?777<<=NGSMIJKGGKGIMFGJF?11110)(''(++//0****+,,,,,.0112<::99;<=?>>>=<99888;;;<:9888789:9=999:9<;;;<<=;862--..678:<>>>>=>>>?@?><::977778<>?;:8889:<>===>=>>??@=<;:;<>>;;:9999::;===@??>??@B@A@?;:987899:<=;<===>>=;**779::=<<<=>?@@@?=<==<>??@EBB@@@AA?>7445823<<=><;;:::;;>>@@@==<;872/++**'(((&&&&***588::;;;:;;=<<<<<998665569:<;;<===<;:::98889:;>?=+*('(*,-)(((''%%%#$%''&%%$$$%$$%&''')+-./6:<;:;9899;;65..+*)&%&%&'&%$""#%$$%&$%%%$$$%$$$$$&((,--:877767878;54/.+++-10111674'''''66777866,,,,,6667::96676//.444;98888:;;;<=;:(((''((((()3665575566,,,,,33:954444689;;<=>==<<<<;9543*))))'),,,--0==<;97777789::;:8744455<77888=>=;88879;;;?=<76666999776679:;<;;:;<=85555/.+*,,,022225;;:66656445<<::889>?;::78888;:,+&&&'&*.//789:89:::;;<<;;;;;;<<;;;;;;<<<<=9;;;9:;;;>??////07+*)((('-.8878::<4+*)*++22224545598889;>?444424321111135988888<;;;::<<<;99::<=;;<===<('&&('&'()(48:::898555568:;99999:;:61)'&% +@d840bfac-1865-4bc3-abe4-5fdcfdd5ee64 flow_cell_id=AQY258 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode_alias=barcode08 parent_read_id=d840bfac-1865-4bc3-abe4-5fdcfdd5ee64 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=7213 ch=113 start_time=2023-12-29T10:41:09.719061-08:00 barcode=barcode08 +TTATGTCCTCTACTGGTTCAGTTACGTATTGCTAAGCATACAGTAACAGATTGGTTTTATTACCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACCATGCCAGACACAAGCTTAGACTGCCGTCTTTTACGCTTGGCCTTCGCCTTAGCCACTGGCCGTTTTGTTTCTTGCGTGGATGCTGTTTCAAGGTTCTCTT ++ +#$%))*$%%%%$%%%%%%%%%%%&'&()*,..4/(''&&&&%$$%((&&'''&'*+6..--)(())42222355,+++,22234542110/00232344454544565333346533323444453.-,,.)((()*14//4455744222348898875565200066677573112246432-.2/1**((())('''()&(,,,/211+++ +@13636eae-6bff-4833-8e61-6054cf5e5d90 start_time=2023-12-29T10:41:57.719061-08:00 sample_id=build3-build3gg-u11 barcode_alias=barcode08 parent_read_id=13636eae-6bff-4833-8e61-6054cf5e5d90 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 barcode=barcode08 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=5247 ch=111 flow_cell_id=AQY258 protocol_group_id=nseq28 +ATGTTTATGTGTGCCTTCGTTCAGTTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGCATGGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGAGGTGCTGTTTCAGGGAACAAACCAAGTTACGTTTAACCTTAAGCAATGGTA ++ +$$$$%%$$$$$$$$$%%%(*++/42110..../3443221122121/.../012200101122364322234556766432221..--.112231/////23..-+,-./3110000/112461111164334232....033444478865211%$$%(())**+00255333120----/33443567654221001013467544+422433320/('$%&'(+...2225456422100001233343/-,,,,)''& +@b6ebdc97-4f72-4b8c-9ef0-5eecf6ba8260 read=9217 ch=125 start_time=2023-12-29T10:43:34.719061-08:00 flow_cell_id=AQY258 barcode_alias=barcode08 parent_read_id=b6ebdc97-4f72-4b8c-9ef0-5eecf6ba8260 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 protocol_group_id=nseq28 sample_id=build3-build3gg-u11 barcode=barcode08 +GTTATGTATGTATTCGTTTCATTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGAGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGGAGCCAAGTGACTGGCCGTGGTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTGAACAAAGAACCAGTACATAGTTATTGTTCACCAAATGTCAA ++ +&'.--,,%$#$%&&&&'((&(%%%'))(((((,-/05676445/////<4****)*+2)))-.:999:;<;;;<===<<;<;;8877777899;<<<=;<;<<=<977789444<32223976656667==@=>1,,,;;::;==>@?65657@AA?=;:98988:;9;<;?>:77779<<<;<:<>=;99988::;===99898<<==E<::;:<<<<9::97887768878966655789;9322226;<<====<==<::98899;=<===<;;<<;<;;::;;;;;;::;;:;::9::::999::::99:::;:999:9::;8767866666;<:866668<<;1,,,,3,)''''(((***,,..18;&&%%%%%%&&&&')46:<=?:;;:::9:;;=@@?AA==;/*(&'((&&&%%%%&%&''&$%&(((%$%%%%$%%')((%$$ +@ff0e7de6-d4bc-4710-9819-67704ee92366 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 ch=105 start_time=2023-12-29T10:45:20.719061-08:00 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 parent_read_id=ff0e7de6-d4bc-4710-9819-67704ee92366 runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 read=7447 flow_cell_id=AQY258 protocol_group_id=nseq28 +GTTTTTGCGTACTTGGTTCGATTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTTCCCTGAACAGCACCTGGCTAAGGCGAAGGCCAAGCGTAAAACGACGGCCAGTGACTTGGTCTCAATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTCTTTCACTGCTGTGCTATTTACCACTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGATGAATACGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAGAGTGCTATCTCTAGAGAAGCGTCAGACCGAGCCCGTCATAGCTGTTTCCTGCAGTCTAAGTCTGTGTCTGGTCATTTTAGACTTTAGCTA ++ +&&')).*%$$#$%)&&'0-('''(*+--.01(((((<<<<<>=>???ABEDDCE945<22234DABDCCFG54434=@A@A@CBCCDGA3+();<<<=>?=>===>>CCE@>=<7556=?BA@@>=>>:;=>==86677;?<<==>A@AABA?@??@@????>@BBC=====A>>>?=?>>@ACBDB9887785339---**++)69:<66421444331((('()''((()*,,-2;>>>>?B22((@@>?@@?>965667=<<9885.-+++*('***-/-)))***--.//120---,..../125777779=>BD?4443*)(('&%%%&&&&&))()236***''''++))&&'&*./2468;6750+,,-4......332/0-+++*+*'''&%%%+&((++,+%&&&$ +@0afe9dfb-94ae-4f8a-afc3-e7070d35a28b runid=bb4427242f6da39e67293199a11c6c4b6ab2b141 flow_cell_id=AQY258 sample_id=build3-build3gg-u11 barcode=barcode08 barcode_alias=barcode08 basecall_model_version_id=dna_r10.4.1_e8.2_400bps_sup@v4.2.0 read=13276 ch=3 start_time=2023-12-29T10:47:42.719061-08:00 protocol_group_id=nseq28 parent_read_id=0afe9dfb-94ae-4f8a-afc3-e7070d35a28b +ATGTTTATGTACTTACTGATCATTACGTATTGCTAAGGTTAAACGTAACTTGGTTTGTCCCTGAACAGCACCTGGTGAAGGTCAAGGGTAAGGGTAAAACGACGGCCAGTTCTTCCTGCTCATGGTCATAGCTGTTTCCTGATATGGGGTTCAGGTACAGGCATGGTTATAGCTGTTTCCTGATATGGGGTTCGGGTTAGGGCCAGACACAGACTTAGACTGCAGGAAACAGCTATGACGACTTGGTCTCGACGCTTCTCTAGAGATACACCTTCTTCCTTGGCTGCGATAAGAAGCGGAAAAAGGCAGAACAGCAACATCGAAGTCACCCTCCAATTCATCTTCAGTAGTAGTATTAACTGGTGCAGCTAGAGCGGAACTAGCGGCAAATAGCACAGCAGTGAAAATACTAGGAAATCTCATTGCAACAACCAAGTGCAACAGTGTGATGAAGAATAAAATAGAGACTGAACGAACTAAGACTTGCGTTGGTTTGGTCATTGAGACCAAGTCACTGGCCGTCGTTTTACGCTTGGCCTTCGCCTTAGCCAGGTGCTGTTAAGGAAACAAACCAAGTTACGTTTA ++ +###$$&$%&%$###$%&&%%%%%&'(*,,,/11554433443331111155*****.2***135433346677764410110232344110005233334//.-.011631111366755521221310/0016443346860////3543,)(((%&&&&''((('&)))*./3344447830/../1443.++++13346787111.,+**,,.-,,-./44555333334410000,,,,-001322-,,,,/.++,-.34321000023355677777778740/.+('&*-*)**/34432233343345533311///00444454555332323544676100--/..///00344555344333322////03332///006432224576754411222..-//223532233454445443454444332222334333333334433333222112323343///00433233333-----//0---,+,-,-0356333245556564111/010121000012255562222244455776678854.*)&%&'',,+&&&&&&''(()))' diff --git a/external/samtools/data/template.fasta b/external/samtools/data/template.fasta new file mode 100644 index 0000000..9087ce0 --- /dev/null +++ b/external/samtools/data/template.fasta @@ -0,0 +1,2 @@ +>Cn_Pp_Killer-alpha-MF-Delta +AATGACCAAACCAACGCAAGTCTTAGTTCGTTCAGTCTCTATTTTATTCTTCATCACACTGTTGCACTTGGTTGTTGCAATGAGATTTCCTAGTATTTTCACTGCTGTGCTATTTGCCGCTAGTTCCGCTCTAGCTGCTCCAGTTAATACTACTACTGAAGATGAATTGGAGGGTGACTTCGATGTTGCTGTTCTGCCTTTTTCCGCTTCTATCGCAGCCAAGGAAGAAGGTGTATCTCTAGAGAAGCGTC diff --git a/external/samtools/samtools.go b/external/samtools/samtools.go new file mode 100644 index 0000000..84dcfa1 --- /dev/null +++ b/external/samtools/samtools.go @@ -0,0 +1,106 @@ +/* +Package samtools wraps the samtools cli to be used with Go. +*/ +package samtools + +import ( + "context" + "io" + "os" + "os/exec" + "syscall" + + "golang.org/x/sync/errgroup" +) + +// Pileup runs a +func Pileup(templateFastas io.Reader, samAlignments io.Reader, w io.Writer) error { + // Create a temporary file for the template fasta + tmpFile, err := os.CreateTemp("", "template_*.fasta") + if err != nil { + return err + } + defer os.Remove(tmpFile.Name()) // Clean up file afterwards + + // Write template fasta data to the temporary file + if _, err := io.Copy(tmpFile, templateFastas); err != nil { + return err + } + tmpFile.Close() // Close the file as it's no longer needed + + g, ctx := errgroup.WithContext(context.Background()) + + // Setup pipe connections between commands + viewSortReader, viewSortWriter := io.Pipe() + sortMpileupReader, sortMpileupWriter := io.Pipe() + + // Define commands with context + viewCmd := exec.CommandContext(ctx, "samtools", "view", "-bF", "4") + sortCmd := exec.CommandContext(ctx, "samtools", "sort", "-") + mpileupCmd := exec.CommandContext(ctx, "samtools", "mpileup", "-f", tmpFile.Name(), "-") + + // Goroutine for the first command: samtools view + g.Go(func() error { + defer viewSortWriter.Close() // ensure the pipe is closed after this function exits + + viewCmd.Stdin = samAlignments + viewCmd.Stdout = viewSortWriter + + if err := viewCmd.Start(); err != nil { + return err + } + + select { + case <-ctx.Done(): + viewCmd.Process.Signal(syscall.SIGTERM) + return ctx.Err() + default: + return viewCmd.Wait() + } + }) + + // Goroutine for the second command: samtools sort + g.Go(func() error { + defer sortMpileupWriter.Close() // ensure the pipe is closed after this function exits + + sortCmd.Stdin = viewSortReader + sortCmd.Stdout = sortMpileupWriter + + if err := sortCmd.Start(); err != nil { + return err + } + + select { + case <-ctx.Done(): + sortCmd.Process.Signal(syscall.SIGTERM) + return ctx.Err() + default: + return sortCmd.Wait() + } + }) + + // Goroutine for the third command: samtools mpileup + g.Go(func() error { + mpileupCmd.Stdin = sortMpileupReader + mpileupCmd.Stdout = w + + if err := mpileupCmd.Start(); err != nil { + return err + } + + select { + case <-ctx.Done(): + mpileupCmd.Process.Signal(syscall.SIGTERM) + return ctx.Err() + default: + return mpileupCmd.Wait() + } + }) + + // Wait for all goroutines to complete and return the first non-nil error + if err := g.Wait(); err != nil { + return err + } + + return nil +} diff --git a/external/samtools/samtools_test.go b/external/samtools/samtools_test.go new file mode 100644 index 0000000..8e95930 --- /dev/null +++ b/external/samtools/samtools_test.go @@ -0,0 +1,47 @@ +package samtools_test + +import ( + "bytes" + "os" + "testing" + + "github.com/koeng101/dnadesign/external/samtools" + "github.com/koeng101/dnadesign/lib/bio" +) + +func TestPileup(t *testing.T) { + // Open the template FASTA file + templateFile, err := os.Open("./data/template.fasta") + if err != nil { + t.Fatalf("Failed to open template FASTA file: %v", err) + } + defer templateFile.Close() + + // Open the sam file + samFile, err := os.Open("./data/aln.sam") + if err != nil { + t.Fatalf("Failed to open sam alignment file: %v", err) + } + defer samFile.Close() + + // Prepare the writer to capture the output + var buf bytes.Buffer + + // Execute the pileup function + err = samtools.Pileup(templateFile, samFile, &buf) + if err != nil { + t.Errorf("Pileup returned error: %s", err) + } + + // Read as pileup file + parser := bio.NewPileupParser(&buf) + lines, err := parser.Parse() + if err != nil { + t.Errorf("Failed while parsing: %s", err) + } + + expectedQuality := "3555457667367556657568659884340:7" + if lines[5].Quality != expectedQuality { + t.Errorf("Bad quality return. Got: %s Expected: %s", lines[5].Quality, expectedQuality) + } +} diff --git a/lib/bio/bio.go b/lib/bio/bio.go index 8662188..8a6cb7a 100644 --- a/lib/bio/bio.go +++ b/lib/bio/bio.go @@ -20,6 +20,7 @@ import ( "github.com/koeng101/dnadesign/lib/bio/fastq" "github.com/koeng101/dnadesign/lib/bio/genbank" "github.com/koeng101/dnadesign/lib/bio/pileup" + "github.com/koeng101/dnadesign/lib/bio/sam" "github.com/koeng101/dnadesign/lib/bio/slow5" "github.com/koeng101/dnadesign/lib/bio/uniprot" "golang.org/x/sync/errgroup" @@ -33,6 +34,7 @@ const ( Fastq Genbank Slow5 + Sam Pileup ) @@ -48,6 +50,7 @@ var DefaultMaxLengths = map[Format]int{ Fastq: 8 * 1024 * 1024, // The longest single nanopore sequencing read so far is 4Mb. A 8mb buffer should be large enough for any sequencing. Genbank: defaultMaxLineLength, Slow5: 128 * 1024 * 1024, // 128mb is used because slow5 lines can be massive, since a single read can be many millions of base pairs. + Sam: defaultMaxLineLength, Pileup: defaultMaxLineLength, } @@ -89,36 +92,36 @@ type Parser[Data io.WriterTo, Header io.WriterTo] struct { } // NewFastaParser initiates a new FASTA parser from an io.Reader. -func NewFastaParser(r io.Reader) (*Parser[*fasta.Record, *fasta.Header], error) { +func NewFastaParser(r io.Reader) *Parser[*fasta.Record, *fasta.Header] { return NewFastaParserWithMaxLineLength(r, DefaultMaxLengths[Fasta]) } // NewFastaParserWithMaxLineLength initiates a new FASTA parser from an // io.Reader and a user-given maxLineLength. -func NewFastaParserWithMaxLineLength(r io.Reader, maxLineLength int) (*Parser[*fasta.Record, *fasta.Header], error) { - return &Parser[*fasta.Record, *fasta.Header]{parserInterface: fasta.NewParser(r, maxLineLength)}, nil +func NewFastaParserWithMaxLineLength(r io.Reader, maxLineLength int) *Parser[*fasta.Record, *fasta.Header] { + return &Parser[*fasta.Record, *fasta.Header]{parserInterface: fasta.NewParser(r, maxLineLength)} } // NewFastqParser initiates a new FASTQ parser from an io.Reader. -func NewFastqParser(r io.Reader) (*Parser[*fastq.Read, *fastq.Header], error) { +func NewFastqParser(r io.Reader) *Parser[*fastq.Read, *fastq.Header] { return NewFastqParserWithMaxLineLength(r, DefaultMaxLengths[Fastq]) } // NewFastqParserWithMaxLineLength initiates a new FASTQ parser from an // io.Reader and a user-given maxLineLength. -func NewFastqParserWithMaxLineLength(r io.Reader, maxLineLength int) (*Parser[*fastq.Read, *fastq.Header], error) { - return &Parser[*fastq.Read, *fastq.Header]{parserInterface: fastq.NewParser(r, maxLineLength)}, nil +func NewFastqParserWithMaxLineLength(r io.Reader, maxLineLength int) *Parser[*fastq.Read, *fastq.Header] { + return &Parser[*fastq.Read, *fastq.Header]{parserInterface: fastq.NewParser(r, maxLineLength)} } // NewGenbankParser initiates a new Genbank parser form an io.Reader. -func NewGenbankParser(r io.Reader) (*Parser[*genbank.Genbank, *genbank.Header], error) { +func NewGenbankParser(r io.Reader) *Parser[*genbank.Genbank, *genbank.Header] { return NewGenbankParserWithMaxLineLength(r, DefaultMaxLengths[Genbank]) } // NewGenbankParserWithMaxLineLength initiates a new Genbank parser from an // io.Reader and a user-given maxLineLength. -func NewGenbankParserWithMaxLineLength(r io.Reader, maxLineLength int) (*Parser[*genbank.Genbank, *genbank.Header], error) { - return &Parser[*genbank.Genbank, *genbank.Header]{parserInterface: genbank.NewParser(r, maxLineLength)}, nil +func NewGenbankParserWithMaxLineLength(r io.Reader, maxLineLength int) *Parser[*genbank.Genbank, *genbank.Header] { + return &Parser[*genbank.Genbank, *genbank.Header]{parserInterface: genbank.NewParser(r, maxLineLength)} } // NewSlow5Parser initiates a new SLOW5 parser from an io.Reader. @@ -133,15 +136,27 @@ func NewSlow5ParserWithMaxLineLength(r io.Reader, maxLineLength int) (*Parser[*s return &Parser[*slow5.Read, *slow5.Header]{parserInterface: parser}, err } +// NewSamParser initiates a new SAM parser from an io.Reader. +func NewSamParser(r io.Reader) (*Parser[*sam.Alignment, *sam.Header], error) { + return NewSamParserWithMaxLineLength(r, DefaultMaxLengths[Sam]) +} + +// NewSamParserWithMaxLineLength initiates a new SAM parser from an io.Reader +// and a user-given maxLineLength. +func NewSamParserWithMaxLineLength(r io.Reader, maxLineLength int) (*Parser[*sam.Alignment, *sam.Header], error) { + parser, _, err := sam.NewParser(r, maxLineLength) + return &Parser[*sam.Alignment, *sam.Header]{parserInterface: parser}, err +} + // NewPileupParser initiates a new Pileup parser from an io.Reader. -func NewPileupParser(r io.Reader) (*Parser[*pileup.Line, *pileup.Header], error) { +func NewPileupParser(r io.Reader) *Parser[*pileup.Line, *pileup.Header] { return NewPileupParserWithMaxLineLength(r, DefaultMaxLengths[Pileup]) } // NewPileupParserWithMaxLineLength initiates a new Pileup parser from an // io.Reader and a user-given maxLineLength. -func NewPileupParserWithMaxLineLength(r io.Reader, maxLineLength int) (*Parser[*pileup.Line, *pileup.Header], error) { - return &Parser[*pileup.Line, *pileup.Header]{parserInterface: pileup.NewParser(r, maxLineLength)}, nil +func NewPileupParserWithMaxLineLength(r io.Reader, maxLineLength int) *Parser[*pileup.Line, *pileup.Header] { + return &Parser[*pileup.Line, *pileup.Header]{parserInterface: pileup.NewParser(r, maxLineLength)} } // NewUniprotParser initiates a new Uniprot parser from an io.Reader. No diff --git a/lib/bio/example_test.go b/lib/bio/example_test.go index 3ce7485..a93e79c 100644 --- a/lib/bio/example_test.go +++ b/lib/bio/example_test.go @@ -16,7 +16,7 @@ import ( func Example_read() { // Read lets you read files from disk into a parser. file, _ := os.Open("fasta/data/base.fasta") - parser, _ := bio.NewFastaParser(file) + parser := bio.NewFastaParser(file) records, _ := parser.Parse() @@ -28,7 +28,7 @@ func Example_read() { func Example_readGz() { fileGz, _ := os.Open("fasta/data/base.fasta.gz") file, _ := gzip.NewReader(fileGz) - parser, _ := bio.NewFastaParser(file) + parser := bio.NewFastaParser(file) records, _ := parser.Parse() fmt.Println(records[1].Sequence) @@ -54,7 +54,7 @@ DIDGDGQVNYEEFVQMMTAK*`)) zipWriter.Close() fileDecompressed, _ := gzip.NewReader(&file) // Decompress the file - parser, _ := bio.NewFastaParser(fileDecompressed) + parser := bio.NewFastaParser(fileDecompressed) records, _ := parser.Parse() // Parse all data records from file fmt.Println(records[1].Sequence) @@ -92,7 +92,7 @@ IENY ADQLTEEQIAEFKEAFSLFDKDGDGTITTKELGTVMRSLGQNPTEAELQDMINEVDADGNGTID FPEFLTMMARKMKDTDSEEEIREAFRVFDKDGNGYISAAELRHVMTNLGEKLTDEEVDEMIREA DIDGDGQVNYEEFVQMMTAK*`) - parser, _ := bio.NewFastaParser(file) + parser := bio.NewFastaParser(file) channel := make(chan *fasta.Record) ctx := context.Background() @@ -119,8 +119,8 @@ IENY ADQLTEEQIAEFKEAFSLFDKDGDGTITTKELGTVMRSLGQNPTEAELQDMINEVDADGNGTID FPEFLTMMARKMKDTDSEEEIREAFRVFDKDGNGYISAAELRHVMTNLGEKLTDEEVDEMIREA DIDGDGQVNYEEFVQMMTAK*`) - parser1, _ := bio.NewFastaParser(file1) - parser2, _ := bio.NewFastaParser(file2) + parser1 := bio.NewFastaParser(file1) + parser2 := bio.NewFastaParser(file2) channel := make(chan *fasta.Record) ctx := context.Background() @@ -181,7 +181,7 @@ IENY ADQLTEEQIAEFKEAFSLFDKDGDGTITTKELGTVMRSLGQNPTEAELQDMINEVDADGNGTID FPEFLTMMARKMKDTDSEEEIREAFRVFDKDGNGYISAAELRHVMTNLGEKLTDEEVDEMIREA DIDGDGQVNYEEFVQMMTAK*`) - parser, _ := bio.NewFastaParser(file) + parser := bio.NewFastaParser(file) records, _ := parser.Parse() // Parse all data records from file fmt.Println(records[1].Sequence) @@ -195,7 +195,7 @@ func ExampleNewFastqParser() { GATGTGCGCCGTTCCAGTTGCGACGTACTATAATCCCCGGCAACACGGTGCTGATTCTCTTCCTGTTCCAGAAAGCATAAACAGATGCAAGTCTGGTGTGATTAACTTCACCAAAGGGCTGGTTGTAATATTAGGAAATCTAACAATAGATTCTGTTGGTTGGACTCTAAAATTAGAAATTTGATAGATTCCTTTTCCCAAATGAAAGTTTAACGTACACTTTGTTTCTAAAGGAAGGTCAAATTACAGTCTACAGCATCGTAATGGTTCATTTTCATTTATATTTTAATACTAGAAAAGTCCTAGGTTGAAGATAACCACATAATAAGCTGCAACTTCAGCTGTCCCAACCTGAAGAAGAATCGCAGGAGTCGAAATAACTTCTGTAAAGCAAGTAGTTTGAACCTATTGATGTTTCAACATGAGCAATACGTAACT + $$&%&%#$)*59;/767C378411,***,('11<;:,0039/0&()&'2(/*((4.1.09751).601+'#&&&,-**/0-+3558,/)+&)'&&%&$$'%'%'&*/5978<9;**'3*'&&A?99:;:97:278?=9B?CLJHGG=9<@AC@@=>?=>D>=3<>=>3362$%/((+/%&+//.-,%-4:+..000,&$#%$$%+*)&*0%.//*?<<;>DE>.8942&&//074&$033)*&&&%**)%)962133-%'&*99><<=1144??6.027639.011/-)($#$(/422*4;:=122>?@6964:.5'8:52)*675=:4@;323&&##'.-57*4597)+0&:7<7-550REGB21/0+*79/&/6538())+)+23665+(''$$$'-2(&&*-.-#$&%%$$,-)&$$#$'&,);;AFDCBD{LNKKGIL{{JLKI{{IFG>==86668789=<><;056<;>=87:840/++1,++)-,-0{{&&%%&&),-13;<{HGVKCGFI{J{L{G{INJHEA@C540/3568;>EOI{{{I0000HHRJ{{{{{{{RH{N@@?AKLQEEC?==<433345588==FTA??A@G?@@@EC?==;10//2333?AB?<<<--(++*''&&-(((+@DBJQHJHGGPJH{.---@B?<''-++'--&%%&,,,FC:999IEGJ{HJHIGIFEGIFMDEF;8878{KJGFIJHIHDCAA=<<<<;DDB>:::EK{{@{E<==HM{{{KF{{{MDEQM{ECA?=>9--,.3))'')*++.-,**()%% NM:i:8 ms:i:408 AS:i:408 nn:i:0 tp:A:P cm:i:29 s1:i:195 s2:i:0 de:f:0.0345 SA:Z:pOpen_V3_amplified,2348,-,236S134M1D92S,60,1; rl:i:0`) + parser, _ := bio.NewSamParser(file) + records, _ := parser.Parse() // Parse all data records from file + + fmt.Println(records[0].CIGAR) + // Output: 8S54M1D3M1D108M1D1M1D62M226S +} diff --git a/lib/bio/sam/SAMv1.pdf b/lib/bio/sam/SAMv1.pdf new file mode 100644 index 0000000..b0e140f Binary files /dev/null and b/lib/bio/sam/SAMv1.pdf differ diff --git a/lib/bio/sam/data/aln.sam b/lib/bio/sam/data/aln.sam new file mode 100644 index 0000000..6198339 --- /dev/null +++ b/lib/bio/sam/data/aln.sam @@ -0,0 +1,25 @@ +@HD VN:1.6 SO:unsorted GO:query +@SQ SN:pOpen_V3_amplified LN:2482 +@PG ID:minimap2 PN:minimap2 VN:2.24-r1155-dirty CL:minimap2 -acLx map-ont - APX814_pass_barcode17_e229f2c8_109f9b91_0.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_1.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_10.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_11.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_12.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_13.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_14.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_15.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_16.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_17.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_18.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_19.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_2.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_20.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_21.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_22.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_23.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_24.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_25.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_26.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_27.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_28.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_29.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_3.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_30.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_31.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_32.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_33.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_34.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_35.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_36.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_37.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_38.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_39.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_4.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_40.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_41.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_42.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_43.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_44.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_45.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_46.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_47.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_48.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_49.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_5.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_50.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_51.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_52.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_6.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_7.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_8.fastq.gz APX814_pass_barcode17_e229f2c8_109f9b91_9.fastq.gz +ae9a66f5-bf71-4572-8106-f6f8dbd3b799 16 pOpen_V3_amplified 1 60 8S54M1D3M1D108M1D1M1D62M226S * 0 0 AGCATGCCGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGTGCTGAGTTGCTCTTGCCCGGCGTCAATACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCGACGTTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTCAGCATCAGGGCCGAGCGCAGAAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGAAGCTAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTGGTTACTGTTGATGTTCATGTAGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAACGGAACGAAGTACAGGGCAT %,AFDCBD{LNKKGIL{{JLKI{{IFG>==86668789=<><;056<;>=87:840/++1,++)-,-0{{&&%%&&),-13;<{HGVKCGFI{J{L{G{INJHEA@C540/3568;>EOI{{{I0000HHRJ{{{{{{{RH{N@@?AKLQEEC?==<433345588==FTA??A@G?@@@EC?==;10//2333?AB?<<<--(++*''&&-(((+@DBJQHJHGGPJH{.---@B?<''-++'--&%%&,,,FC:999IEGJ{HJHIGIFEGIFMDEF;8878{KJGFIJHIHDCAA=<<<<;DDB>:::EK{{@{E<==HM{{{KF{{{MDEQM{ECA?=>9--,.3))'')*++.-,**()%% NM:i:8 ms:i:408 AS:i:408 nn:i:0 tp:A:P cm:i:29 s1:i:195 s2:i:0 de:f:0.0345 SA:Z:pOpen_V3_amplified,2348,-,236S134M1D92S,60,1; rl:i:0 +ae9a66f5-bf71-4572-8106-f6f8dbd3b799 2064 pOpen_V3_amplified 2348 60 236H64M1D70M92H * 0 0 AGGGCCGAGCGCAGAAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGAAGCTAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTG H{N@@?AKLQEEC?==<433345588==FTA??A@G?@@@EC?==;10//2333?AB?<<<--(++*''&&-(((+@DBJQHJHGGPJH{.---@B?<''-++'--&%%&,,,FC:999IEGJ{HJHIGIFEGI NM:i:1 ms:i:262 AS:i:262 nn:i:0 tp:A:P cm:i:19 s1:i:124 s2:i:0 de:f:0.0074 SA:Z:pOpen_V3_amplified,1,-,8S228M4D226S,60,8; rl:i:0 +ee583067-e453-4393-81c8-89302f71f29f 0 pOpen_V3_amplified 1 60 85S63M1D3M1D2M1D4M2D14M1D61M2D4M1I66M2I1M1D5M1D137M1D112M1D5M3D9M2D311M1I1M1I127M1I43M1D11M2D63M1I3M1D12M2I7M2S * 0 0 GGTGTTGTATTGTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACCCTCCAGGAAAGTACCTCTGATCAGCACCTACCCCATATGCTTTTCTGTGACTAGTGAGTGCTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGAGTCATTGTCTGCCGCGTCAATACGAGAAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCCTCGGGGCCAACTTCTCAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTAGCGCATCTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCACAAAAAAGGGAATAAGGGCAACACGGAAATGTTGAATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATCTCTCATGAGCGGATACATATTTGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCGCGCACCTGCACCAGTCAGTAAAACGACGGCCAGTAGTCAAAAGCCTCCGAACGAAGCTGACTTCGTAGGTGAATGGGGAGTAGTCTTCGCCATCGCTCTTAAAAGCCAGATAACAGTATGCGTATTTGCGCGCTGATTTTTGCGGTATAAGAATATATACTGATATGTATACCCGAAGTATGTCAAAAAGAGGTATGCTATGAAGCAGCGTATTACAGTGACAGTTGACAGCGACAGCTATCAGTTGCTCAAGGCATATATGATGTCAATATCTCCGGTCTGGTAAGCACAACCATGCAGAATGAAGCCCGTCGTCTGCATACCGAACGCTGGAAAGCGGAAAATCAGGAAGGGATGGCTCAGGTGGCCCGGTTTATATCGAAATGAACGGCTCTTTTGCTGACGAGAACAGGGGCTGGTGAAATGCAGTTTAAGGTTTACACCTATAAAAGAGAGAGCCGTTATCGTCTGTTTGTGGATGTACAGAGTGATATTATTGACACACCCAGGGCGACGGATGGTGATCCCCCTGGCCAGTGCACGTCTGCTGTAGATAAAGTCTCGTGAACTTTACCCGGTGGTGCATATCGGGGATGAAAGCTGGCGCATGATGACCACCGATATGAGCCGTGTGCCAGTATTACCGTTATGC +++*+*''%#$%('''(++/010/.*()''-2867:87===?===>?@?885872670.-.24332389:;<776533=>CB@<;;;>?AB=<:;:333+++)))+&''&''''+('(034234236=>>><<<<<==?;;93.*(&&'''')*--0)'')+*,,+,,''%&&(+++*459=888:6566997689;9::@>>>?@B???>?A><:>::7.-.*)&')+-44*'(%''$%**268?<9;;:;=;::;;;:::6678<>==<:;;;;88<>?@A<75559@===>=;;:;<+****,/8;=@>><::385556@A0000666>CD>>>>B>?==ACA@;;7)(''5@EEBC?BC?<;;=AA'''(=889:@?::9:=>;;;;>>=999875374442C?7502{+(()(/02'''3,'9::;:;<;:;0/-,*+=<==>;;;<@?==2/./3=;;:;2/::<=DDB?@AE>9984210-&%%%()-389??@AAABAA?::::<=@E@9996778BA=;:9;<=@AA>;;;;7722321+))'(++,'''+.1'1..-/05:70/03435545;=>F5/..,-+((-9777222:34<&%&+../,,+,:6+>?B{DC=>=BGEO{J{H{GA::;8999:{{F====EKHPM{K{GJ@?EDIIGGEFCEGG{L{PLEDECFABCA:99;EFHOFHGEGJEDDEEIL{JE{PKR==<678=ADDIK@@A@PKJOCH{GK{PHL{{M;;:AIDELI{NJ{EDBJDY{I@@2222:;AAFGGNK{MLK{{H{HKUHE665333499((((((1-****/33FJGDODIH@@@:::=3//?@AJK{JEFHPEBBF{=<<<=>?EJJ{{{K{{WIIFC?62;66-,{/{75==?ECDFDCDDF9:95=>CH{IGKEJFEJJSNL{DC=??>?@11/++,)(((6>?----@AAF9997545=<.-0>?>?@ECA=>>?EGC>8(&&)*++)))+%$$*:=@EDECC43+@6<;:*)(((,''''KKECEABACFDCEPHJE?@@AGEFDDHIHIFM-+++1000341-''''''%&&'2977+& NM:i:56 ms:i:1831 AS:i:1824 nn:i:0 tp:A:P cm:i:137 s1:i:787 s2:i:0 de:f:0.0442 rl:i:0 +4ecff99b-8513-4705-9c38-2d8480ef044b 4 * 0 0 * * 0 0 GTGGTGTAGCGTGTACTTCAGTACGTACGTATTGCTAAGGTTAAACCCTCCAGGAAAGTACCTCTGATCAGCACCTGCACAAGCTTAAGCTGAAGCCACGATGCCTGTAGCAATGGATTACAGAACGAAAACTTCACTGCTGGCGACGCTGGATTACCTGAAGCCGTTACGCAGGAAAGAACCCAATACAGCAAATAGCGTTGATATTAGTCAACGCTGGCAGGAAATTACTCTGAAAACGCAGCAACTACGCCAAATGAATCAACATAACGGCTGGTTCTGGAAGGACAGTTCAGCGCAATCAACAGGCGCTGGAAATGTTGAAACCGCATCAGGAACCGACGCTATATGGGGCGAACGGTCAGACCTTCAACAACCCATCGCGGCGGTCAAAGAATTCGATCTGAAGATTATCTCCGGCCTGCACTGCAGGCCGGAATGCATTGTTACACCGTCCGGCGGGCAAATTACAGCTCGAAGCCCAGTACCGCCAGTGCAGCGAAGATCACGGCAATCCCCGCCAGCACGACCGCCATTAAACGCAGTAAACGCCAGGCAGTAACCAATGACCACTCCGGCATGATATGTAACATACCTAAAAGCACGCCAGACATCACCAGTACCGCCACCACCAGACACAGAACAGAAACGCCATCCAGCCGGGTTGCGGGGTAACCTATTACGCAACTGCCAGTAAAGCAGCGAAGCGTTCGACGCGCCGCCAGACCAATAGAAAGTGACAGCCCGGCATGTTTAAACAGACCAATAAACGCCAGGTTCATCAATTGCGTTAAAATCAGCGTAACGATGGCAATTTTCACTGGCGTTTTAATGTCCTGGCGGGAATAAAAGCCAGGAGCCAACACTTTCACTACAATCAGGCCGATCAAACCCACCGAGTAGGCAATTAACGCCCGCTGGGTCATCAGCGCATCAAACGCGGTAAATTTACCGTACTGGAACAGCGAAACGGTCAACAGACGGAAAGAATGCCCAACGCAACCGCACTGGGCGGCGCCAACAGGAAACAGACGCAACCCCCAGTCCATCAAACGGTTGTATTCATCATGATTGCCACTGGCAAAACTTTTGACAGCGACGGCAGCAAAATGGTGCGGCAGCCGCCCACGCACCGGACGGAAACTCCATTAAGCGGTCGGCGTAATACGTCCAACACGAACCGGAAGCAGAAACCAGGCAAAAATGGTGTTGATGATTAAGGAGATGTCGCTCACAGAGACGCCAAGGATCGCCGGTCCATCTGTTTCACCACGCGCATGCTACAGGCATCGTGGCTTCAGCTTAAGCTTCTGCAGGTGCTGAGTCGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAAATGGTTATG $$%$$$&%%%&'&&$$&'&%$$%&''/0<>?ACA>>;@FP{{{CCBADF544473211,**,*)))+78>@9:BC{HGBB@EE<;;**))136899999:;679877)((()>?9::788))(*//.-(((%%&),,/0./1?GKFHFH[I{FH{LD))))96556<::<:=<:200/'''..3.0,---,,-*++//88F{{HMF{{IH{{IHA{A>661-,-183.455/////>D@@@?FIIMO{GBBBM{AA@?///0101:<<<()=>ADDB@;IF:9688)(('''/@**')'))))656C{GDH<=;:0---/46/---@@BBDCEE;7,5,/2112=ABCF@?;:99=BBB7797''''0%$%)242011;9<9--,./*'((-*)%%&(((',20..,---6,++,338++**3./>6556?EJDCBL{`{IGEDECGDG;:/))))(&%$''%'''*&'**)))+-;@BGL{FM{{M{{IKFEA71)*,-,+*)%%&(-,/01=>BCBIHGUJABC;;;;I{97664{2/))*+**-=>5545;)''''''&'''(&*-'.-.3<=<,)))0?C@@A7767:68421/.0,&'')((''**/3678:CCDEGIHE8888GEJGF{KJF@ABCECDECACAB4444MIGP{{L{U{DCJDIJGCA;744359111169;F8F=555410))++,)),-,&''11011?EHGIIELFBABA7++**51>;63/00/-&%%$%%@CCJFFK2223GC;99:D??CGECLJI{MEGIG{JEIMMHOEA<<<>BBCBCHHFPTLIFI<;;:66275443469B=@>8779:1789:88<==>)))&))))(()++(+,133/;.-&$''),569;@AJF?>GFKHJFCEGFEG{MIH{B;;<>>EDDDDIHLIH{HKIFGDM??><9)))?EDFG{CJFEBD=899:''''(%$%%%$$$$'1*('')*;22;;<;;923666CDECB@@<==:/..--'')''%%&'&%&'.'&'())+(2)*-)(*,,/032-+**24355><44113/.-,(((((''(()%%%&----.6H{A<<<<@;<9:1000.../-',((),/5.004,79:EACE{EAADHHIII{6543433/('%%2.*-+--.&&((-,*+++-&%&$'''',3433374<;7668?<66444.../02533440,.*((& rl:i:0 +e353ee52-5532-46db-b95a-075c29716104 0 pOpen_V3_amplified 1 60 85S39M2D20M1D161M1D90M1D7M1D35M3D211M2S * 0 0 ATGTACCTCGTTCGTTACGTATTGCTAAGGTTAAACCCTCCAGGAAAGTACCTCTGATCAGCACCTGGATATGCATATCTATATGGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTCAATAGTGTATGCGGCGACCCGTTGCTCTTGCCCGGCGTCAATACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTAATCTCAGCATCTTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACACAGAAAGCTAAATCTCATACTCTTCCTTTTTCAATATTATTGAAGCATTCTGGGTTATTGTCTCATGAGCGGATACATATTTGAATGTATTTTCAAAAATAAACAAATAGGGGTTCCGCGCACCTGCACCAGTCAGTAAAACGACGGCCAGTAGTCAAAAGCCTCCGACCGGAGGCTTTTGACTTGGTTAAGGTGGAGTGGGAGTAGTCTTCGCCATCGCTACTAAAAGCCAGATAACAGTATGCGTATTTGCGCGCTGTA %%&&$#$%%(*+.((*///0311///,.BDJ{IQIVHIF3337<>>?BEFDKA==>C0..-336:=<=655654,+,-899799:A<433.,*))''(''''1-'';<=EBBBFBBBEDEGHIGI{{CBAAEIFFQ{JGBCABDCB==??2@AJHFHFD;;;(''(,,,,-B>443*,,.000LG>==DC;824//8:=?>=@:45JEFI{A?=;556AI{K{GGGOGGIMF{{{FFP8888{MJ{E8889,,,,200=>CEH@@@=*(():6BH4333EILKGPJJHM5555FDFGHLF{{KIGICDDFJ{EEFBD?@@J{GHGFILKJGGJGG000.0*)).4.''$##&$$$(32333:A=8=@FEIKL{EFDIFDHPFH{P<9/'((''6;:;632.,,-89;?AADDFHMMGJHDB?@@BGGHEJ?6((((LHHFFJJ.../,,,,B@::;:A{JHEA?>=A@CB{D::::AD{LKBBB<=<==;<;764...987410007:;9::>@=;854)(((+&&'(2123F=00//58AB65---++**.7>DDEAA?9878<=?89CB??>?DCB::12<CA<;;=KLOZ{FKFD;?EHH{CGEGE6553)''&&%$$%&'.-,''&'')*((*6;>@ACAC?@CECB@32222:;@CCCD@??=@AA@@<:<++++++++>>JIECA??>@CADEFJF?@CACCCFHJ{?=>MHDG<<7788CDDFFCEAE@776466&%%2('(*)&0.)(''+56AC@AA>AF<==>>=32+)*5547==><<<=>=<BBFIEAA@BCA@9779FD>>FBEC?>>?BIEDDD3333777?<856:8>>>>444::21&'$$%%&,8;;8<;<:544476+**'('*-77102**++064235)))*8;388>@>B<888;:;::<;<=<;433&&&&''(),++&&%$%&)*89:8877;<<=,+++++659888:;=2///:883333)&&&&&&'333,-))5:98::;<<=??><<;:;:=<>@><;8778;>?990../1-,,+-0*'&&(&$##$%(+6:996678:7=>>>==;;;;=;9879?:>?<;:'%%$ NM:i:25 ms:i:745 AS:i:742 nn:i:0 tp:A:P cm:i:50 s1:i:318 s2:i:0 de:f:0.0490 rl:i:0 +e10f8c1a-cb75-40b8-a849-13d2ff024b3a 0 pOpen_V3_amplified 1 60 95S61M1D13M2D19M1I201M2S * 0 0 ATGTTAACCCTTACTTCGTTCAGTTACGTATTGCTAAGGTTAAACCCTCCAGGAAAGTACCTCTGATCAGCACCTCGTATGCGGATGCGCATGCCGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCAGTTGCTCTTACCACGTCGATAAGGGATAATACCCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTTTCAAGGATCTTACCGCTGCCGAGATCAAGTTCGATGTAACCCACTGGTGCACCCAACTGATCTTCAGCATCTTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAAGA '((')%####$&%(&''*3554349;<=?EEDFCFAAG{E{EJ{FB@@77@BGFL{R{EGHEGHDEDBD{F{IIKJFGC@??FKHILKE{LKHLC<75:42215799HFI{SHCAC=/...9:5111498::76...///5555;::>>;;;4441&&&))-/)))%%'(*)*('())'''(5;333+****;?ACD{B@9678422/12.*=EIMFEGL@@?2111<<9>CJA>==>?>-+++:;755:?=<0.-.00241011)))'&)0,,++-144,*)*<:9:>>?B221&%%'99=@?<<<<=<<;<<<=;A?===:;::DI@?<6535*' NM:i:13 ms:i:515 AS:i:514 nn:i:0 tp:A:P cm:i:32 s1:i:202 s2:i:0 de:f:0.0404 rl:i:0 +ec8167f4-6448-480d-8810-3cee76950c52 16 pOpen_V3_amplified 1258 60 8S7M2D7M1D37M1I76M1D56M1D44M1I10M1I4M1D44M1I60M2I4M1I11M2D256M1D3M3D73M1I3M1I18M1I25M1D22M1D6M1I149M1I143M2I2M4D22M1D9M2D45M1D8M1D21M1D36M91S * 0 0 TTATCTTCGGCCTCTATGGGTCTCAGGGGTTTTTTGCATGGTCATAGCTGTTTCCTGAGAAGCTCGGCAGGTGATGACACACATTAACAAATTTCGTGAGGAGTCTCCAGAAGAATGCCATTAATTTCCATAGGCTCGTCCCCCCGACCAGCATCACAAAAATCGACGCTCAAGTCAGAGGTGGCGAAACCCACAGGACTATAAAGATACCAGGCGTTTCCCCCTGGAAGCTCCCTCCGCGCGCTCTCCCTGTCCGACCCTGCCGCTTACCGGATACCCGTCCCGCTTTCTCCCTTCCGGGAAGCGTGGCGCTTTCTCATAGCTCACGCTGTAGGTATCTCAGTTCGGTGCGTGCCGCTTTCGCCTCGAAGCTGGTCTGTGCACCAACCCCCCGTTCAGCCCTACCGCTGCGCCTTATCCGGTAACTATCGTCTTGAGTCCAACCCGGTAAGACACGACTTATCGCCACTGGCAGCAGCCACTGGTAACAGGATTAGCAGAGCGAGGTATGTAGGCGGTGCTACAGAGTTCTTGAAGTGGTGGCCTAACTACGGCTACACTAGAAGAACAGTATTTGGTATCTGCGCTCTGCTGAAGCCAGTTACCTTCGGAAAAAGAGTTGGTAGCTCTTATCTAAATAAACCACCGCTGGTAGCCGTGGTTTTTTTGTTTGCAAGCAGCAGATTACACGCAGAAAAAAAGGATCTCCAACAAAGGCCTACGATTAGCAGACAATGATCCTTTGATCTTTTCTACGGGTCTGACGCTCAGTGGAACGAAACTCTACGTTAAGGGATTTTGGTTATGAGATTATCAAAAAGGATCTTCACCTAGATCCTTTTAAATTAAAAATGAAGTTTTAAATCAATCTAAAGTATATATGAGTAAACTTGGTCTGACAGTTACCAATGCTTAATCAGTGAGGCACCTATCTGCAGCGATCTGTCTATTTCGTTCATCCATAGTTGCCTGACTCCCCGTCGTGTAGATAACTACGATACGGGAGGGCTTACCATCTGGCCCCAGTGCTGCAATGATACCGCGAGAACCACGCTCACCGGCTCCAGATTTATCAGCAGGGTCAGCCAGCCGGAAGGGCCGAGCCAGAAGTGGCTGGAGCTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGGAGCTATAGAAGTAGTTTGCCAGTTAATAGTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTGGCTTCAGCTTAAGCTTGTGCAGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAACTGAACGAAGCACACGCAC $$&'*'&'-01/(&(,+,-*(&&'6888=AIEA@@DA@>=>>ACB?>?>ACC>;:.-,*..('&&,11?>==A@@@C{{F?>>=>B@7;:77788989A7776>@@EED@A>>>=?@@B=559>GA:7667931-,,,012,)))'''(A@A>>B=>685762311221224433455;;?CF@//('%%''&')'.'&'(''*&()./,())%'.//215102>?@B<<;;@=31133+**+*.+**++*&),-*()*3,099=>,=--437@@AA@>?@;=8899=8898;:;@>33213+'%%$$$$#$)()*(*-(((*20/2&&&'')--3++++347@B;;94555@8(&'&011@>>==>==<=>53149::::9<;:;;;:5343257<;::9;<<===<;<<>:89;;B??A@AABA@A@>>>?>==93:;?=;998:=?BABA?>?B<:;;=>?=>=>BBB@ABACC?===?A@AE4333CBB@>><<889:?75--,.+*(('%%$$&+4:;;>?=;:99:<:8410.''/-..4;;:::AABB@B?>@@@??>41''2//&'&',)()%$$'%%&*))&,'''+111.--,((&&''21347<<=877553362345@A<;;;@@@ABBB?>>ADEB=B9C@A====*)))));70((('((*-*()%%%'2(''':>?@30//035>A?876588;::9:;;974445963/..,+*-'&&&,,657++1555122...,,-.4++.+--.@@>?;9701117::8+*))*56::BEGC@,***=>?HD323240//-)))/777>{{A?@??@BDCA?>?;:0++()1-.--...+,..35677988?@954441)(('&$$%))112111020///A@:995555AC@<;;;=>>6667;<=IJ>=2222?=<<<==>>>>>?>><<=196675432234566566?GH?>>BAABAFCA@>>>>?==<=8889DB=>>>?<<@=987/'''*,-,*)))99:::D6B=215A>@8866'&&*'&'((),,+)'%)()('&&'(,66559;>=??B====<<=A@@<:8423-2'&&&$$%%)(*)'',(*)')'$$$$%&&&**17??<::96776666@@ABA7667:?BF><<==?DBEFL{MNFEFFG{GD>=32449>;;;@CB55.'()62234BBFFEBA@A<<=??:::;OMSC=HGIKIJ??=A:44:5:544797//DDLHF{DFD>?LHEEPG7767;?;;210///8:4433013*(,))56>?ABBC?ED<:/./0//00004--+++,@AGEDCABCFIEFKEEEC8.*.,,-*****1.**BBFCCC))))BF{HFIFG>=>>CM{DHIIFXJ{{K{FG=<<7888DEH{K{{@@@:8889::IG;;222535566=DBAGFBFFIEEBCB??FCIGMKJNKL{PHGJFOG{PFJJLEHGF{P{H{{GJKJGJ{KIGG{{HGFC?=)))=2EGHHIJKJJGCB?AA{5555?=CIHNF{H{GFLGGL{JGG{KF{GD@H{GGD5?:2'''++++/--2>CHFGLBBBCD@>)*34:ABFHHFFJ{{{GPIGF{{O@@?@JIF5+(0-544444;<98/.++-()2.//2:CEF>=<>5552233?HHEELC>?@BC{KFHCFA+)))),('''''&%%%'/;=>CCK{JG{GIH?766448FLEGEFEFDI{EFDFINFH{{DEEFMCDDE>>?CC@>=;9''',2(++,(((+:=7666=CCKEHEBCBAB?DEEGJFFJEGGII{NNEJII{OJJF{N{{G>>>DDDCDCBHGH{H{BA::FHFI{U{GHHKEGCEBD{{{C?@??BCFEHED::92*))-0**))()--=;745837;=;;;=BDEHIGHEGJGEJHIGHDHJILM{HJ{{FPNHHE{HPOFGDBCCHIH{JNHPJ{HJGM{GDBGED@667--,.))*,8788:{FC<==>>>>>A=;=<=>::::<=<6444;>?=5;4.('&''&%%&&$$&%&&&%)19=9<<<=<:;9:<9888;=<>CCB><666))))32278;BB====?@??@>AAAAA@=;9;;>@=@==<<8/../133{{{{:5555=?B<9::>*((24??=<<===>;:9:;:;;;;;3323655579:=889>3336943468998(''9:)''))+))(**,,-11121<422261123421,,,+00163448574->?AB@A@?=<<::;;@?;987/-*('(----688:8999<@@=@?>><=?BB?>>8<72-,,.888===:<3333@@@AABBAABBD=::9=33323>;=:9;<=??ACC@<:;;>?<;;<=???@?>@??.../EA><:>7679:3*('''(,+&&'&+)))+((((122283/*+;<889>;<<=>===@==989:==>>?@?B@;99...18:8////*(((,.,,,0..-%&'A??=54,,3422220/.+)()&$$%%(,.9;;;:<=?:32156A6ABCEBACC>>?7667966)(((/+{/,,,,-13-)32.1248<=;9811/022+++785110/4/)((()('&()'''464+++./543'&&)$%%&&&&466:::2223==>FEBDFDEDBBDCCFGIED????DA@@@@B95/,*%%&'+,340.-.1>9>;;<=9999{194%%$$('%%(*7@8450111)0004=>===?C<557><9;:7A??@@E><=>BEB@@@ABDCEABDA@668,?@BBEGCDDE{GMKF><640+))***--<<=>>DE=>=>==;44.,,-8+++CG==D{GC=>32223>?B?@A:999ACEHEF:99,,,3E;;::7664.{%%%+,--=?FHJO{{HJ{G{MJHHIHJKQ{@@A555&&%$$%+**+-)((454001889?K{PH{XEJ?78JDA>BCHIJJIL{{FMG{GGHH{{{II{KJH??=)'&')'%%%),-*/AA@@AACIKFGJEFF=>??{N;;:@555+4,/77?BA:=;7541FHIJKIHGGFKMI{JM{KNVNHKF{{KHMLNFJH{{IIO{{K<;5;GCFE>::A@EJGINFJ{GFE@>=>CBBDEEAAD<<7:..044BH===<9555++++>-,8-*((+*())+,+-.,;@@:>322349;???=:864667B888ABA850'&&&'1??::?>9648=@888:E>=E{U{HHJJGIZ{OJGKE;:::IGN{JJIFL{{{EEDFFBBAAC>?@@{JIYFI{IG{KGI{F{GA>>@8888;99<;;E{DFEABDCAA?><<;>=>?>>?>=CDGEEDMFJ{HFIMUPKIFDIGF31/16:6?7777DAAABBCC;;>=@@AKCBDGEEFEC9888BD89AHOC8950////2256=;5:991333@>=>DCEDE::99BAEFDB;91/+)))>A@??,+*,-,,-2..-.3440.0561666666B;;67-,&%%'''+):A=@@@AC85,-.AFBCCAAA9110)& NM:i:72 ms:i:4559 AS:i:4540 nn:i:0 tp:A:P cm:i:349 s1:i:2096 s2:i:0 de:f:0.0222 rl:i:0 +28562250-774a-4697-a941-7f52276d1fdd 0 pOpen_V3_amplified 1 60 81S6M1D58M2D45M2I3M1D24M1I92M1D40M2I14M2I62M1D29M1I13M1I8M4D17M1I39M1D6M1I8M2D35M1I43M1I6M1D57M1D19M2D1M1D166M1D49M291S * 0 0 TATGTTAACCTGCTTCGTTCAGTTACGTATTGCTAAGGTTAAACCCTCCAGGAAAGTACCTCTGATCAGCACCTGCATGCCGCTTTTTGTGACTGGTGAGTACTCAACAGAATCATACTGAGAATAGTGTATGCGGCGACCGAGTCTATTGCCCGGCGTCAATACGGGATAATACCACGCCACATAGCAGAAAACTTAAAAGTGCTCATCATTGGAAAACCGTTCTTCGGGGCGAAAACCTTCAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTCAGCATCTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACGGGAAATTACAAAATGCCGCAAGAAAAAGGGAATAAGGGCGACACGGAAATGTTGAATACTCATACTCTTCCTTTTTCAATATTATGAAGCATTTATCAGGGTTATTGTTGCATAGAGCGGTTACGTATTTTGAATGTCGAAAAATAAACGAATGCGGGTTTCACCGCACCTGCACCAGTCAGTAAAACGACGGCGGTTGATTGAAAGCCAGCCAGGAGGCTTTTGATTTGGTTGAGGTGAAGTGGGGAGTAGTCTTCGCCATCGCTACTAAAAGCCAGACAACGGTATTGCATATTGCGCGCTGATTTTTGCGGTATAAGAATATATACTGATATGTATACCCGAAGTATGGAAAAAGAGGTATGCTATGGAGCGTATTACAGTGACAGTTGACAGCGACAGCTATCAGTTGCTCAAGGCATATATGATGTCAATATCTCCGGTCTGGTAAGCACAACCATGCAGAATGAAGCCCGTCGTCTGCGTGCCGAACGCTGGAAAGCGGAAAATCAGGAAGGGATGGCTGGGGTCACCCAGTTATTGAAATGAACGGCTCTTTTGCTGACGAGAACAGGGGCTGGTGAAAGTAAAAGATGCTGAAGATGAGTTGGGTGCACGAGTGGGTTACATCGAACTAGATATCAACAGCGGTAAGATCCTTGAGAGTTTTCGCCCCGAAGAACGTTTTCCAATGATGAGCACTTTTAAAGTTCTGCTATGTGGCGCGGTATTATCCGTATTGACGCCGGGCAAGGCGACTCGGTCGCCGCATACACTATTCTGGGATGAACTGGTTGAGTACTCACCAGTCACAAAAAGCGGGCGTGCGGTGCTGATCAGAGGTATTTTCCTGGAGGGTTTAACCTAACAATGGTGG &''**)&$##$$'**-256;>==<7666<>B<33212))1)AA<32138533+))*7777<=C5556ECDFIK{J{EIFG?>{{LKLFFOIFFFA>=>=-+**--)'')''13%$$$)*@>AAA@AGH{J{{J{=<<<30+*)(&&&%(:=?>?FEF^JRNIG533'''(;;>..'&'&(-+*,2690@I{P{H{{B@A>@AAFGIFNE6-*+2112/101:7(''//-&%&'(,-0<=>@@>F{G{GJ{THDDEFCGEE{IDBAA;853556222'''(=76>31BAANJ{{{JDFMHLHF=AD;;<=X?DGJHHSCDFBDD---/----9:=>87&%%%&%&%%%&(5:;7877=;3-*)&'''%(&('(,,-483220348CE{HPLHEEFGB@=)(19;;:;<+9;@@8(''()))()'%'''&.0',,+{<;>B{FIJPHGN{{{JIHILFGDKBA((((HH{J{HGMGECFEBCCNKEJECA><>?C<<ABEHHGCCCE@@@IIDBKFE{{NPGR{{KJDIN{M{M{H{QNGOIN{LMK{IJK{QN{GJX{{{GJDEECKEBAC;68642/01444.21.,)')*()))''+-7779999854(((),,+-+&&'(''&&)%#$%())*-,,-./78<::9;667CD80--*-('%%''(5;?:88..../43/,++32630//45626334/00&$$$%%$$$## NM:i:70 ms:i:1304 AS:i:1296 nn:i:0 tp:A:P cm:i:87 s1:i:579 s2:i:0 de:f:0.0707 SA:Z:pOpen_V3_amplified,1,-,57S244M4D924S,60,12; rl:i:0 +28562250-774a-4697-a941-7f52276d1fdd 2064 pOpen_V3_amplified 1 60 57H6M1D28M1D32M1D18M1D160M924H * 0 0 GCTTTTTGTGACTGGTGAGTACTCAACCAGTTCATCCCAGAATAGTGTATGCGGCGACCGAGTCGCCTTGCCCGGCGTCAATACGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAAGGATCTTACCGCTGTTGATATCTAGTTCGATGTAACCCACTCGTGCACCCAACTCATCTTCAGCATCTTTTACTTTCACCAGC 08DC766;9::<87/.-,,-*))(%$#%)&&''('&&+-+,,)(((4589999777-+'')))(*)'),.12.44410/24686;CABEKCEEDJG{{{XJG{NQ{KJI{KML{NIOGNQ{H{M{M{NIDJK{{RGPN{{EFKBDII@@@ECCCGHHEBA>=<=?D{{JG{{{{{H====E<<<>ACEJEKNCCBEFCEGMGH{J{HH((((ABKDGFLIHIJ{{{NGHPJIF{B>>=:: NM:i:12 ms:i:416 AS:i:416 nn:i:0 tp:A:P cm:i:24 s1:i:171 s2:i:0 de:f:0.0484 SA:Z:pOpen_V3_amplified,1,+,81S853M6D291S,60,70; rl:i:0 +17455a4d-f6d8-48ec-9bbb-6e9db765c287 0 pOpen_V3_amplified 1 60 92S76M1D20M2D61M1D1M1D35M1I48M1D2M1D8M1D8M1I136M4D91M1I21M1I1M1I56M3D6M3I19M1I163M2I175M1I95M1I28M3D71M3D2M1D62M1D72M5D164M3I1M1D43M1D116M1I163M1D3M1D2M1D28M1I33M1I103M1I114M1I299M1D1M1D57M1I63M71S * 0 0 GTGTCCTGTTACTTGGTTCAGTTACGTATTGCACCATTAAACCCTCCAGGAAAGTACCTCTGATCAGCACCTATGCCTATGCCGATGCCCATGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCGAGTTGCTCTTGCCCACATAAATACGGGATAATGCCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTACTTCGGGGCAAAAACTTAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAAACTTACACGTGCACCCAACTGATCTTCAGCATCTTTTACTTTCACCACGTTCTCGGTAGCAAAAACCAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACACGGAAATGTTGAATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAGCGGATACATATTTAAATATATAAAAATAAACAAATTGGGGTTCCGCGCACCTGCACCAGTCAGTAAAACGACGGCCAGTAGTCAAAAGCCTCCGACCGGAGGCTTTTGACTTGGGTTCAGGTGGAGTGGGAGGATGATCTTCGCCATCGCTACTAAAAGCCAGATAACAGTATGCGTATTTGCGCGCTGATTTCGGTGTAGAAAGAATATCCTCTGGTATGTTATACCCGAAGTATGTCAAAAAGAGGTATGCTATGAAGCAGCGTATTACAGTGACAGTTGACAGCGACAGCTATCAGTTGCTCAAGGCATATATGATGTCAATATCTCCGGTCTGGTAAGCACAACCATGCAGAATGAAGCCCGTCGTCTGCGTGCCGGACGCTTTGGAAAGCGGAAAATCAGGAAGGGATGGCTGAGGTCGCCCGGTTTATTGAAATGAACGGCTCTTTTGCTGACGAGAACAGGGGCTGGTGAAATGCAGTTTAAGGTTTACACCTATAAAAGAGAGAGCCGTTATCGTCTGTTTGTGGATGTACAGAGTGATATTATTGACACGCCCGGGGCGACGGATGGTGATCCCCCTGGCCAGTGCACGTCTGCTGTCAGATAAAGTCTCCCGTGAACTTTACCCGGTGGTGCATATCGGGGATGAAAGACTGGCGCATGATGACCACCGATATGGCCGTGCCGGTCTCCGTTATCGGGGAAGAAGTGGCTGATCTCAGCCACCGCGAAAATGACATCAAAAACGCCATCCAATATTCTGGGGAATATAAATGTCAGGCTCCCTTATACACAGGCGATGTTGAAGACCACGCTAGGTGTCAATAGTCGGAGCCGCTGAGCAATGACTGGCATAACCCCTTGGGGCCTCTAAACGGGTCTTGAGGGTTCCATGGTCATAGCTGTTTCCTGAGAGCTTGGCAGGTGATGACACACATTAACAAAACTCGTGAGGAGTCTCCAGAAGAATGCCATTAATTTCCATAGGCTCCGCCCCCCTGACGAGCATCACAAAAATCGACGCTCAAGTCAGAGGTGGCGAAACCCGACAGACTGCTATAAAGATACCAGGCGTTTCCCCTTGGAGACTCCCTCGTGCCGCTCCTGTTCCGACCCTGCCGCTTACCGGATACCTGTCCGCCTTTCTCCCTTCGGGAAGCGTGGCGCTTTCTCATAGCTCACGCTGTAGGTATCTCAGTTCGGTGTAGGTCATTCAGCTCCAAGCTGGGCTGTGTGCACGAACCCCCCGTTCAGCCCGACCGCTGCGCCTTATCCGGTAACTATCGTCTTGAGTCCAACCCGGTAAGACACGACTTATCGCCACTGGCAGCAGCCACTGGTAACAGGATTAGCAGAGCGAGGTATGTAGGCGGTGCTACGAGTCTGAAGTGGTAGCCTAACTACGGCTACACTTCGAAGAACAGTATTTGGTATCTGCGCTCTGCTAGAAGCCAGTTACCTTCGGAAAAAGAGTTGGTAGCTCTTCATACGGCAAACAAACCACCGCTGGTAGCGGTGGTTTTTTTGTTTGCAAGCAGCAGATTACACACAAGAAAAAAAGGATCTCAAGAAGGCCTACTATTAGCAACAACGATCCTTTGATCTTTTCTACGGGGTCTGACGCTGAGTGGAACGAAAACTCACGTTAAGGGATTTTGGTCATGAGGATTATCAAAAAGGATCTTCACCTAGATCCTTTTAAATTAAAAATGAAGTTTTAAATCAATCTAAAGTATATATGAGTAAACTTGGTCTGACAGTTACCAATGCTTAATCAGTGAGGCACCTATCTCAGCGATCTGTCTATTTCGTTCATCCATAGTTGCCTGACTCCCCGTCGTGTAGATAACTACAATACGGGAGGGCTTACCATCTGGCCCCAGTGCTGCAATGATACCGCGAGAGCCGCGCTCACCGGCTCCAGATTTATCAGCAATAAACCAGCCAGCCGGAAGGGCCGAGCGCGAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGGAAGCTCAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTGTAGCCTTGCCCTTCCCTTAAGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAG #%$&'&())+&&&+&**+753340.))**,'%%%&&'''(-3331689?BEYEDIFHGSJJEHGFCHIEJF{GNEDFFEG{E42128;>=543.-.,&'%%%%%(((((1+45566421/:::9:555544731155I{JIGH{G5445>;;CGFLIMF39(('))(''*)'&'))(**&,-110..0/:<=@@@@A@@A==5''2'')'&(,+''(()(&'%$%'---.982:::4334CEB@@A<<;:332('',@95554))95%=-***)'',,5:?@2**DGROKIEIFI{FGCBA=77GEHFAHHDDEFCDI{A@A7788OGRJKI{BAAB{H\999---->A>>>=?=N@999<@A455479;778A==>=>EJNHNI{RMH?>>>E8778877742//*'((&(*/,{1/-,2862../0*))(&$%)/..,.,-;>CB?@@AIMEEEE>>>>IJJ{R>>>;<<<555,,,,.67G{A@@AC@AAB<<=BA@>?BA76665''%')''(,(+)''&(.-.)&'()*///101>FJHI{QII{EL]{JHJENLM{OFJIG{F{{{JHN{{GJSJJ{GDC@.-4&%&/--*)))*)))+,-&&&$$&)..././*,,-951>@EKGC@?=<=>M{{EKIG{HF9999==>{K;:;=>AI{E::;H{{EFMP{EHEHFNIKHH{{{{EJ;;:9;401-,**.@DBA@?BB@--+++*+++((()-')((&%%%+*-/154556?865654447ABC@CA@<;;:;::;C<;;<@B@BECCDHEDEGFDDCB@?CA>>@A@?>64)))48:86:=>ABBDFHTEGDCFCBBBEEGHFBBBDFEICGEECH{{{LGGDCEBF999:DE>=7699?@B@?<;;<>BDFIDEGH<<;777:{/..-*34;<''''5*'(+)---+..3<<<=@DFEADDDE>>>?DEGBBC?ABBIFJIMG{CE?;???DED@@>?A6;?6<<;=<::88(''(---,***.1'((8??A>?ABFFFC???CBIEHF////++,888;?BAB?@ABEB/...??>;B@?<<<@A9999B<??HJFFFEHDFFEEHC>?BCGD@?@?CBABFEBAFDDFDCC:99&&(.99)(((+**+555>:::BD3338CEKGEDDDGNHBCACFFY{:001:78266.-.?@@BCH@?:0//+',*+*-01====<;<900/.-/1433{1,-.+,<>@@@ABA=<=={:{873)))()),+(%%'46?@CC==>@A56///8>=CDCEFGGJCEGMQ2H<;;?@@BCCBGFEHJFK=555100..,',.000=>?BB?BCDCBB@**)*0((..-,)*$$$%$&$$$$$$$343/-,@@A2,-9450012;<((((/+'-3**.>77787>>?AICHLHFHHEUCDCDMDAA?GD<<;??=<837>>JHJ?;<9;=4333:;G@???HLEAC{FLHGGJMI{HJBA@BA@C75212277788@H;;==6'''',(''+21,+,1(()4B==?{B===879?<;867611CJFECCDGQJEGOJFLJEHGJ{IHIIEHEEGBCCIGDDCCCEIGHKZII@BBCDFIDCDBFF?D?///0??>EH998998887912DCDCC{HCCD:88/**1=@ABBD;:86('*-::99=<;4$$$)%%&&*,.245((((2''')'')*4=EA...,++++7<<667222983:<>?;88833339841**)*-EHNHFIIEH{{DHDCFI{{IDDA>7@==>==>EA---%$$$'&'::<>?EECFECEHJHNRHDFOH@=;5:;=CEBA@B@JFHIFHIIHKDC@?AA{803*((35;DD{{DBA?<6698;<87:=<>>>>>===DCGJKJ{DFDEOKCD@A?BBAC?;64111-+,.2110''''6BFF{@??FGJEBCFFELEDJLPFDGBB?><***))(()*/./1011DG?==A?@A>@GIHD????A=BB@5**)*6>=?../???BABFGFHHH===;==>>C{{<100157@>A?=>DEHHDOGDCCGJIEBDGQ{FDCC0000EHDEGG{AA@@@@:798*))&*((&&',5*&&'23678BADNCCH{KJ=55GH<:;7445=>>JECEE;:::?<))))95534:32/3:4687;6666BCCCB<<?;>677/3/,+(&&%'%',,*&&'&'''7::F?DA@>ECBFFDOHPIEDA@>=>=?>;9.)+1.+-.79655'''24;>@@C=<<<>6788A@>8885555A=;<>=>---.877<<>;:::E@DF988<=>==-1+)+0,%&)17;64)(&$ NM:i:100 ms:i:4390 AS:i:4370 nn:i:0 tp:A:P cm:i:318 s1:i:1996 s2:i:0 de:f:0.0326 rl:i:0 +7f9007b3-33ec-4fd7-9de2-a0d62395d54b 16 pOpen_V3_amplified 1 60 9S29M1D57M1D292M1I3M2D2M2D41M1I181M2D8M1D245M1D79M2I4M1I2M2D52M1I72M2I74M1D20M1D208M2D2M1I77M1I13M1D11M1I127M1D104M3D154M1D5M1I263M3I2M1D31M1D4M1D31M2I3M1D28M1I161M1D70M92S * 0 0 ATGCATGCCGCTTTTCTGTGACTGGTGAGTACTCAACCAGTCATTCTGAGAATAGTGTATGCGGTGACTGAGTTGCTCTTGCCCGGCGTCAATACGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAAGGATCTTACCGCTGTTGAAATCCAGTTCGATGTAACCCACTCGTGCACCCAACTCATCTTCAGCATCTTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACACGGAAATGTTGAATACTGATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAAGCATATATTTGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCTGCGCACCTGCACCAGTCAGTAAAATCATGGCCAACAGTCAAAAGCCTCCGACCGGAGGCTTTTGACTTGGTTCAGGTGGAGTGGGAGTAGTCTTCGCCATCGCTACTAAAAGCCAGATAACAGTATGCGTATTTGCGCGCTGATTTTTGCGGTATAAGAATATATACGAATATGTATACCCAGTATGTCAAAAGAGGTATGCTATGAAGCAGCGTATTACAGTGACAGTTGACAGCGACAGCTATCAGTTGCTCAAGGCATATATGATGTCAATATCTCCGGTCTGGTAAGCACAACCATGCAGAATGAAGCCCGTCGTCTGCGTGCCGAACGCTGGAAAGCGGAAAATCAGGAAGGGATGGCTGAGGTCGCCCGGTTTATTGAAATGAACGGCTCTTTTGCTGACGAGAACAGGGGCTGGTGAAATGCAGTTTAGGTTTACACCTATAAAAGAGAGAGCCGTTATCGTCTGTTTGTGGATGTACAGAGTGATATTATTGACACGCCCGGGCGCAACGGAATTTATCCCCCTGGCCAGTGCACGTCTGCTGTCAGATAAAGTTCCCCGCGGAGTCTCACCCGGTGGTGCATATCGGGGATGAAAGCTGGCGCATGATGACCACCGATATGGCCAGTGTGCCGGTCCCCTCGTTATCGGGGAAGAAGTGGCTGATCTCAGCCACCGCGAAAATGACATCAAAAACGCCATTAACCTGATGTTCTGGGAATATAAATGTCAGAATCCTTATACACAGGCGATGTTGAAGACCACGCTGAGGTGTCAATCGTCGGAGCCGCTGAGCAATAACTAGCATAACCCCTTGGGGCCTCTAAACGGGTCTTGAGGGGTTTTTTGCATGGTCATAGCTGTTTCCTGAGAGCTTGGCAGGTGATGACACACATTAACAAATTTCGTGAGGAGTCTCCAGAAGAATGCCATTAATTTCCATAATAACTTTACCCTGACGAGCATCACAAAAATCGACGCTCAAGTCAGAGGTGGCGAAACCCGACAGGACTATAAAGATACCGAGGCGTTTCCCCCGGAGTTTCCCTCCGTGCGCTCTCCTGTTCCGACCCTGCCGCTTACCGGATACCTGTCCGCCTTTCTCCCTTCGGGAAGCGTGGCGCTTTCTCATAGCTCACGCTGTAGGTATCTCAGTTCGGTGTAGGTCGTTCGCTCCAGCTGGGCCGCGTGCACTGACCCCCCGTTCAGCCCGACCGCTGCGCCTTATCCGGTAACTATCGTCTTGAGTCCAACCCGGTAAGACACGACTTATCGCCACTGGCAGCTACTGGTAACAGGATTAGCAGAGCGAGGTATGTAGGCGGTGCTACAGAGTTCTTGAAGTGGTGGCCTAACTACGGCTACACTAGAAGAACAGTATTTGGTATCTGCGCTCTGCTGAAGCCAGTTACCTTCGGAAAAAGAGTTGGTAGCTTTGATCCCGGCAAACAAACCACCGCTGGTAGCGGTGGTTTTTTTGTTTGCAAGCAGCAGATTACACGCAGAAAAAAAGGATCTCAAGAAGGCCTACTATTAGCAACAACGATCCTTTGATCTTTTCTACGGGGTCTGACGCTCAGTGGAACGAAAACTCACGTTAAGGGATTTTGGTCATGAGATTATCAAAAAGGATCTTCACCTAGATCCTTTTAAATTAAAAATGAAGTTTTAAATCAATCTAAAGTATATATGAGTAAACTTGGTGTCCTACAGTTACCAATGCTTAATCAGTGAGGCACCATCTAGCGATCTGTCTATTTCGTTCATCCATAATTCGGCCCACTCCCCGTCGTGTAGATAACTACGATAATGGGAGGGCTTACCATCTGGCCCCAGTGCTGCAATGATACCGCGAGAACCACGCTCACCGGCTCCAGATTTATCAGCAATAAACCAGCCAGCCGGAAGGGCCGAGCGCAGAAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGAAGCTAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTGGCTTCAGCTTAAGCTTGTGCAGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAACTGAACGAGTAGCAGGACAT %&07:;=DDICCD@@AG{LBDEEJIDFDGHCCDDNG))79545655..00;:;CBCFHAB@,,,,,)))+/...AB<;;<:5325821118755)9:;:<<=@?A{*&&&2233>>AFILGMIFDD>33489<=>F?><>FICND{@@?GH[DCHFFG{FKGPD@43/045,5374444ACBA?C>9*'+**&''(7:;98;))))MHEHFKHL77@{FGBGGKNIFGCEFIGG{HFEL8;CHJFHFGLFHDJG5D9BNIONH{OLGFCCDHK{{LGLEC=<''644.-(()768@@>@@ABA==?@6569<21211888=6667MCE{SMQI{IQECBA,+++*)))),.+..)*,0{73448:?@?EHLJDFEHH{{J{BA???@<22----59***-:>={C:::
<<==?>?0*&&%'''''*+++*..+*+->??CCJG?>@@B;;>?FCBBC{K7779CFEGGL{JIK{IKGOHIJC==<>BBDCJIH=<;9000>CGFCBB>?1,++664222556>85:><6664.+*''''039>@@ABADFIFDIJMCACG?CFU?666>=@CC@?AAAB?@?E{{IKSJH{QJEF?DGRJDDCA<@ANGJLKG{??=???<<>=A>==?9999=;:56000///040//=:884333/,+,-+,*+0.-&&'&&&'&''''((--+**/0>>@CLF{{FOFGEGD{{{{{LGEEDKHDD;:977@,+++{{LKPECCFGHGCQECE7556;;:9::;<<<<;6668<7>8*))0/0--00,,,+,.237888CEEG{{HHFIJ{G{{GHFH@EEDFDBDBCA55559::DCC8888DBDBDJIAB?><88721-./*(%&)+,.267IIGDVM@CBAD;....10116==>>@==?@{IFJHII[KEJJ{{FH{N{KMPJJI{G{JKDAABCA4:0//:0HDBAA=986/../=?>?@{I{GF{EEBCKJB>:9----===764*))///.322.-,-??@E{HFFHNJKGH@>>>:8866:;G?AL^JKEDNJGZB@9646389=:@BJD@??BEEFG{M{{B;;;;=<>=?ACC@@AAGBJ?><4687779<>DHG{GJIGH{{B{{COLIIOH{KGIE=;987554../0689''''556BE7777C@AHDC:100*&&&&))))))+.%(-155AJF{GECCBBDAB978865+++,C=<88>@:>=:72375:::<;<>?CBA@?><-/.,+)&$$$&),74456@EB+)(+*+++/7;>430123{DHJ{FCB@<=7,,,-.)*-2=BBGRMJIG{FC6644...015..+--/1:AD9996=A?AAABBCMEK{CND@??@HGH@@??D@AABBCCBA@@A@BGK>>>>E{MHHGHEGI?=<<64**)122-1,,**,,55.'&&%&/6;?334.../B>=9:>@@+6.,---212013261222FFAC@47-+)''')'&'*+?@FML><;9=<<<;:77?@@:::;KQFG=:::@=89:=GCA@D)))).-75574567PGJIAABCHG:::9/.1,4@ADJMJ{PK{GGJLNKMEHJLMI;;;<<:90++,-/-(,.')))366:=4444767<548D=;;=FSE{NI{{{CCEEBB@{??@?EDHCBCD=?{{{==789;=?=650(&%('((&&*+....DECEEG{H{H???>BD9788;665..,+,,++,:55;;::;A@;;=8888?/0/*))'(),)&&&'-.AH:9----{FIKEFB@2223A@?('''(+++7?C<;;>>ADD998?@?EDFFD==<=CADA7701&&&')'''::=====BAB>=>@E{F{{{JF{LFGOLKMHJHEEJG{FJD:9BIJ<1119OEEPI{FDEC54446;<>?>@GMQEGGHHEFHAA@==GHGGGFDGIGGHIO{B@@BCEG{GSFHE445DBEEC@>?DDC>=@K{JJF{{FEBAADG{JKGIEFCDEAAB@K@00.044DGHM{{GJIFECDI{22200./.***,1''%%'&$$$$$$$&&'% NM:i:85 ms:i:4458 AS:i:4448 nn:i:0 tp:A:P cm:i:346 s1:i:2106 s2:i:0 de:f:0.0293 rl:i:0 +bdc37787-3a82-47ef-9537-a6c5a4e70223 0 pOpen_V3_amplified 1 60 93S75M2D69M2D14M1I69M1D104M2D90M1D67M1D88M1D691M1D77M1D68M1I48M1D338M4I45M1I92M1I24M1D57M1I313M1I55M1D4M1I4M2D20M1I53M71S * 0 0 TATGTTGGTCTACTTGGTTCAGTTACGTATTGCTAAGGTTAAACCCTTCCAGAAGTACCTCTGATCAGCACCTATGCCTATGCCGATGCCCATGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCGAGTTGCTCTTGCCGCGTCAATACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACATTCTGGGGCGAAAACTCTACAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTGAGCATTCTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACGCGGAAATGTTGAATACTCATACTCTTCCTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAGCGGATACATATTTGAATGTATTTAGAAAAATAAACGAATAGGGATTCGCGCACCTGCACCAGTCAGTAAAACGACGGCCAGTAGTCAAAAGCCTCCGACCGGAGGCTTTTGACTGGTTCAGGTGGAGTGGGAGTAGTCTTCGCCATCGCTACTAAAAGCCAGATAACAGTATGCGTATTTGCGCGCTGATTTTTGCGGTATTGGATCTATACTGATATGTATACCCGAAGTATGTCAAAAAGAGGTATGCTATGAAGCAGCGTATTACAGTGACAGTTGACAGCGACAGCTATCAGTTGCTCAAGGCATATATGATGTCAATATCTACGGTCTGGTAAGCACAACCATGCAGAATGAGACCCGTCGTCTGCGTGCCGAACGCTGGAAAGCGGAAGATGAGGAAGGGATGGCTGAGGTCGCCCGGTTTATTGAAATGAACGGCTCTTTTGCTGACGAGAACAGGGGCTGGTGAAATGCAGTTTAAGGTTTACACCTATAAAAGAGAGAGCCGTTATCGTCTGTTTGTGGATGTACAGAGTGATATTATTGACACGCCCGGGCGACGGATGGTGATCCCCCTGGCCAGTGCACGTCTGCTGTAGGATGAATTCTACCGTGAACTTTACCCGGTGGTGCATATCGGGGATGAAAGCTGGCGCATGATGACCACCGATATGGCCAGTGTGCCGGTCTCCGTTATCGGGGAAGAAGTGGCTGATCTCAGCCACCGCGAAAATGACATCAAAAACGCCTTTAACCTGATGTTCTGGGGAATATAAATGTCAGGCTCCCTTATACACAGGCGATGTTGAAGACCACGCTGAGGTGTCAATCGTCGGAGCCGCTGAGCAATGACTGGCATAACCCCTTGGGGCCTCTAAACGGGTCTTGAGGGTTTTTTCCATGGTCATAGCTGTTTCCTGAGAGCTTGGCAGGTGATGACACACATTAACAAATTTCGTGAGGAGTTCCAGAAGAATGCCATTAATTTCCATAGGCTCCGCCCCCCTGACGAGCATCACAAAAATCGACGCTCAGAGTCAGAGGTGGCGAAACCCGACAGGACTATAAAGATACCAGGCGTTTCCCCTGGAAGCTCCCTCGTGCGCTCTCCTGTTCCGACCCTGCCGCTTACCGGATACCTGTCCGCCTTTCTCCCTTCGGGAAGCGTGGCGCTTTCTCATAGCTCACGCTGTAGGTATCTCAGTTCGGTGTAGGTGACTCGCTCCAAGCTGGGCTGTGTCCACGAACCCCCCGTTCAGCCCGACCGCTGCGCCTTATCCGGTAACTATCGTCTTGAGTCCAACCCGGTAAGACACGACTTATCGCCACTGGCAGCAGCCACTGGTAACAGGATTAGCAGAGCGAGGTATGTAGGCGGTGCTACAGAGTTCTTGAAGTGGTGGCCTAACTACGGCTACACTTCGAAGAAGAACAGTATTTGGTATCTGCGCTCTGCTGAAGCCAGTTGCCTTTCGGAAAAAGAGTTGGTAGCTCTTAATACGGCAAACAAACCACCGCTGGTAGCGGTGATTTTTTTGTTTGCAAGCAGCAGATTACACGCAGAAAAAAAAGGATCTCAAGAAGGCCTCTATTAGCAACAACGATCCTTTGATCTTTTCTACGGGTGCTGACGCTCAGTGGAACGAAAAATTCACGTTAAGGGATTTTGGTCATGAGATTATCAAAAAGGATCTTCACCTAGATCCTTTTAAATTAAAAATGAAGTTTTAAATCAATCTAAAGTATATATCAGTAAACTTGGTCTGACAGTTACCAATGCTTAATCAGTGAGGCACCTATCTCAGCGATCTGTCTATTTCGTTCATCCATAGTTGCCTGACTCCCCGTCGTGTAGATAACTACGATACGGGAGGGCTTACCATCTGGCCCCAGTGCTGCAATGATACCGCGAGAACCACGCTCACCGGCTCCAGATTTATCAGCAATGAACCAGCCAGCGCGGAAGGGCCGAGCGCAGAAGTGGTCCTGCAACTTTATCCGCCTCCATCCGGTCTTTAATTTGTACGGGAAGCTAGAGTTGGTACGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTGTCCGCTTACGCTTGAGCTCAGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAA #&&)('$$%$%%%()&''&'''((',,-/0004333;;9*'(*,251.()',)*&+''',((1167AB??>8888IDHFFIEDCA>>?BEHCGG{HOHWGGHIM{LMJ{J{PMEH>===GLM{{GJIQJKI{CCACEDE{JHP{FIQOH=>=;::7778987+++())'&%&''/.++'''0>?@AAA@=@ACB7767?>GEGJIMGLHH{TOIMJJN8889GFPFGEGGD@.../6'''96,++,.05**&&&'**,))),+03001-,+*)).,+,2389;AACBFDDDDD?H{CBCC{{HKJHIGG999:BB)(();71-01+49:C>AB>==>99970.))*+((((*))//02799@AACCDFJ{EHC97'''*3341.4,'''''(-&&&&'&'5?BBCD9666>877228;<<:=72+((:3DFFE{GB?>8;=>;.*)(''''(((4647,++('$$'--77ADEDGDCBEBD{KFI{K{H{I{EA@ABGGE?>?>+&&&''',,--.-.9EBABCQFKVA878799:BF{JIFDEFFEDMGJCDCCEGG{GSRJGEHDD;99===<<=@9*(((-...---18NAAAA{EHGKGFCDA@@@CDCG{{KJJHJIGG{JGEN{K{HCHE@==?IB@:;=:::;ACC{{GJAHHX{HCE?;332,%%&&'&&'{>==>MHGS{IDEFFE@CCCMIDA@<667KGC:8:20011335<;=AAE{FHEI{ECFBEFEOSJFNGN{IGKPIJFJJEEEGB??@HCBBBDNJJDHHF{{KEBCCA4,,,+.*+%&&&),1@BACCCENGHEHEEDCDD:///-.((((),.*)*)/..../1E@AAADDC@{CBCBEEB=?(((&()+2=??;;=?<8778C====BABDIFFEEHIEGGTHNGFMDDDDDA>@>9-18+++.--++..,.{{035584==;;;8777:8888==@?>=<=?>557DKE{FJHHBCEGNFHJH,,,,,**+****+***:@CFCHFF?FA44AAJFFHJEDDF2225F92,,,,-..,002::;>><>@=IGIIEZHGHHXDDLE=8889;:;ADDDE<<<=HIFECGDBBCDGBBBBCEDJEHL{F:::78A?84,,,-30++//-('&%$$$):;???CBBGFE=>?RMHC@:5357;?4344CDCC@GD>?BDEDGKHF5555?433A@B@@=CAAB?@CGHG{=988:<<8998HC?<87('(-9;<0001,,,-?AAB@@AB@+++A>?6:9345CCFGFEA@4)(.(&&)...,,*/9:>@AC===>?@<@>>=A{{{DD@EDBDBCB:,++*''.--(&&'35>A?AF@ADDCEDBBCA7?93BCBBECA@=@6?>@A@4595555A@76>DDNJ?@4/..100*)'&(+.0017BCFDGEGEHH><7672222;;;=:88=@;;;>7776<=;721:>@77:<1,)*+9=87842,++((%%)--(&(-:9:=UD;-(--+)*+,@CA??@DKA995AA>E42@<:EFGAABCGGCB>::<;3333B:>88@AABA((@@ACBA/--.770.,'&&337<>D@?==?++**('())+&&&(0*)-(((((+(((+6678@BCFFD?@;:;<>BAAA?=>>GB72229.012>@?AIKEFKFEEDFE43334=<>?>=<=>>>664210///1;{7788=9?:>FDFB0++,***>BEIDRHJH::;BEBEG=>>7331446>3>5-?EC{F{TA@<<4404)'%$%%$%%&-=><>>>E,++-<:))))899:79FJFE>95644=?AB:::442.<@@?A{GI?=?=@;5000/.,./5:7:>E@D=>C;BD{{LC{{HHJ{{{{GWB;:;9;::=98334{{4'&&'=HLELFGFNK{NLIKJEG]{{{JFJFJNIG{BAAB{GHGG???>@A751011>>=0///;;>=DHKHJHOGHFICM87768;@?>>@E<==7332555;?>=>333332134492246.+)()-('*+6)))*<=>=00/352-*%%%%%&%&&%&&'389;<=A??DAD{GH{KKJ{FFDHEHGM>777---&&&&-)))*+)(%&&&'8:?B9@76667A=;85/0CLAIFGMMIGO{JGF?;;3336DB<877.,+,2**+50:1*1&&&&07=984+&&'*,%$%#%%%/26HGDFCEEDN{CADAD>=<;<;/.-.00-+++967555E{E666.---FFI=7547'>CFIHIIEDDAD?B@?8.121:;8711'% NM:i:70 ms:i:4545 AS:i:4538 nn:i:0 tp:A:P cm:i:340 s1:i:2096 s2:i:0 de:f:0.0253 rl:i:0 +22782c40-bbbf-46fb-8f5e-44990acc2321 16 pOpen_V3_amplified 1 60 73S210M1D181M1D55M5S * 0 0 CCATTGCCATTGATGCGTCAACCCTCCAAGGAAGGTACCTCTGATCAGCACCTGTGGTAGTGGGAGTGGCAGTGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCGAGTTGCTCTTGCCCGGCGTCAATACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAAGGATCTTACCGCTGTTGATATCTAGTTCGATGTAACCCACTCGTGATCGTACCGATCTTCAGCATCTTTTACTTTCACCAGCGTTTCTGGCGAAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACACGGAAATGTTGAATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAGCGGATACAGATCGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCGCGCACCTGCACCAGTCACAAAG $%%$$$''%$#$#$'%%%%(+,-1+&&/6-)'&(++/00/./6===@@BBCCC{EDEBCHF{TNIIKGF==>>EGHB;;=@CBBDF@@@@JDBD@BBBFB889A=??DHK{C>?>GFFEFBABAAAAACBB8889>888:;=AAC4222677BCBE<<<7@<<;6662///{>=<>BCEDEEID=>=?IA===:99899;=FFHIF=FI{G@;0/??8556>966359;9>F{>>>C>CDBDDG<<=810...,,*&&&&)))+*+0214549FDBBCDIDCBDINFHJMCCEDGHD332023136<;:>7=C?B>CBGEGNFJBACFDEC@?AE{H@CGIEDB?L{@@AAIOZPHQ{{{K{{NNNLIIAAAA{PMMOI{IH{PJ{FFDMDHFEHDECFJOKLF{NGHJK{JNJIGDHD@>455E?>BAB?@..+)*%%%%$)+-379868>CICHC@@DJJABA;B??DIIFFHEECGJAA?CDEEGGDFFDJEFHFKIIQF{LDB?@NEADENHCBBADB@10-/,+11=;977>AACHK{FGFIIKDDD;;;>BGF{IKGSGLIGDD?>@A@AEIGED;:9+)(((*&&&20*+93-2**684658:...BFLGC@???;<<;5---092278>??GC8778KDG{LEPHGDFFCHFCDHFREFFGFC-,**62677.,&&'3.*,*,-1....658:80/...;=>DBKFIFHCF;:;>>===*))(*553337=88://00BDDCBBAA+***-<=>KF?>?>52-:???8667('''+*)&&&('((>2223=BGJCBCDEEHKGLHIKA?@::::222+++++44GB=>@A@ACEA@@DEHIHC?611123'&&&&&'-.---&'))70/.243244DDEHHIHJE<:::8DFMEB==;<=>G>=>BB@@;;98<==FAB{AIB@AAA5>><'&&&)**'('*659@{{98CDEEDJGEHGGFF=0//2.(''$%$$$+:6603)+-1,+++BBDFDSJEGGCDCCCFDDEGFHEFFHEFEJDFPGDFDDIKBAABFEEHNH{KGFDJD{{GEEDHIGGDDGJFHNGBEEFO{HJFEBCDBBBCCCDYK{CAA>=;:9:;;11&&&&)('&&'(**,+*((*+2.*+@FHEBA<;=///-'$$()(&%$$#$%&,&$$%$%%%0:@?DFFHDJFBDDBADAD>;;JJEGDGDIBBBACA8777GB3555411345---,,-2;9??>>>?ABBDC@A?C?FDO{{{IEDAA@@BEA@?@BBDDDDGCFEFEDB9+((35AABBBB@@C@CCC{763002(68////6679222,++.:888=FFGHFHDICCABD?;:;4../446=?>86457+?@?EBB@FABA;:D6;:8:654+%&)--**))**'%%%)6:<;;>=BBLFGNFHIIFDEBCHFFCBBEDB?<==>BBAABB@A:89:DA5G{{22=>>E8888@108?BEFB?=6226861129;<;;;?>222889:>><>?>BCCAAAHGA?>@<===ABBABADA=<==:=89;;<<<=@@?>?>>>?@=997,,,19::4)))+,,)*+)5**)--'&&',-.)))%%'&(&%((870247732,,+&&**9<>>?CBBC>><<><9755.+&%&7;?@>=<=>?A:;@?BA88530++3))<3222@?==<==={{@==:=<?@?<;:::;==A;::::>?@><=<<5;47,,-*++9<><<<AAFEABBBBA<8::5443./(()&&''.86***&(&%%**1139??>872((((/81--.1333;:4-,-.33573.(%%&,39==<=:96-+'%%%'&&*,-..+%%%&((1.-*&&&'+*.(///.22,**())),+'''&(-,+)($%+)%$#$$&-/5751/%%%&++)-2=<<=;921/0,+(&%%%%)().-.,%%%%&%$$%'&'%$$%%$$(('(*+))-1)('&%&$%%()+++3**+)''&&&$$$%&$$#$%+),*)&% NM:i:61 ms:i:2584 AS:i:2572 nn:i:0 tp:A:P cm:i:201 s1:i:1204 s2:i:0 de:f:0.0327 SA:Z:pOpen_V3_amplified,593,-,12S845M30D1559S,60,128; rl:i:0 +903ca7fa-2851-4f9f-9ab1-3930b86c58a1 2064 pOpen_V3_amplified 593 60 12H5M1D21M1I7M1D15M1D2M1I34M1I4M1I57M2I13M2I45M1I6M1I17M1D2M1D4M1D40M8D56M1I43M3I9M1D48M5D12M2I21M1I8M2I12M1D3M1D2M1D27M3D9M1D16M3D2M2D17M1I27M7D13M2I16M7D3M2D7M1D46M1D1M2D31M1D4M1I25M1D24M1I67M1559H * 0 0 TATACGATATGTATACCCGAAGCATGCTGAAAAAAGGTGTACCGTGATGAGACGTATTACAGTGACAAATCACAGCGACAGCTATCAAATTCGCTCAAGGCATATATGATGTCAATATCTCCGGTCTGGTAAGCACAACCATGCAGAATCCAAAGTGCGTCGTCCGCGCGCGCCGAACGCTGGAAAGCGGAAAATCAGGAAGGGACGGCCGCAGGTCGCCCCGGTTTATTCAAGTGACGCTCTTTGCTGACGAGAACAGGGGCTGGTGAAATGCAGTTTAAGCTATAAAAGAGAGAGCCGTTATCGTCTGTTTGCCTATGTACAGAGTGATATTATTGCACACGCCCGGCGGACCAATGGCCATCCCCCTGGCCAGTGCACGTGCTCTGCTGTCGATAAAGTCTCCCGTGAACTTTACCCGGTGGTGCATATCGGGGATGAAGCGCATGATCCCCACACCGATATGGCCAGTGTGCCTGGTTTCCGCCTCATCGGGGAAGAGTGCGATCTCAGCCACCGCGAAAATGACATCAACGTGATTACCTGATGTTCTGGGGATATGTTAGGCTCCCTTATAACACAGGCGATGTTGAAGACCACGCTGAATCGTCGGAGCCTGGCTGAACAATAACTAGGCTCGGCCTCAAACGGGTCTTGAGGGGTTTTTTGCATGGTCATAGCTGTTTCCTGAATTGGCAGGTGATGACACACATTAAGATGTTTGTGAGGGAGTCTCCAGAAGAATGCCATTTATTCGATAGGCTCTGCCCCCCCTACTGAGCATCACAAAATTCGACGCTCAAGCCAGAGGTGGCGAAACCTGACAGGACTATAAAGATACCAGG &%$$$&&&'')+**3+++)(%%$&%&'()1-))+*('(($$%%$$%'&'%$$%&%%%%,.-.)()%%%%&(+,0/129;=<<=2-)++&%%%/157>77447{86622375-+,,,-/./1()(('&'+***+,))*%'$$$&&&&&%%&'(%%%$%&%'&&&&&'')+*(++,/30027/8,39*(*/2595556//.987,**+,(''+++''')+,**)+))))'%%&)----.--,-8--+)))&'&&)(**+,..,,.)))-.022469931.)'$$&*1488114(((*&&&&01)(('&&&())'%$&&'((**)-2121002100.%&%'(),,-754++)%&&%$&1237666:;=A::::?82//0+)'&&'%$&&$')()++*+*&)''(*,457764578<;;:+**(+,,...3:9878563(),,*+&&&%$$$%#$**,{.-++,,21450--()((*'&%%&)'))()'%$%%&),++,,*+'%$%%$$(///02=:=:99310*))('%&''''&'&&&&*)))*''%$&%&'((')+&&(''%%%&00018-(((''%&'&)*+('').+)('(8998;;2('%&&&&'','&)1-(*&&*))'&&$$%'''%&$$#$)+085911.*(('*)**++,.:<9811.-'(*1683212345...-,./+.+*+'&)')))(&&&&778<{{?<5/-&$$#$%)+%$()+,-(&'''+,)))(**,22.///(.*+'&&&*-.1((&%%%+..-,*&&'%%%'+-69:=<==93,&%%(.37533.-,-4:;3331.--18/((((278>??9311**%%&(&***68. NM:i:128 ms:i:1065 AS:i:1022 nn:i:0 tp:A:P cm:i:53 s1:i:396 s2:i:0 de:f:0.1056 SA:Z:pOpen_V3_amplified,1,+,92S1460M6D864S,60,61; rl:i:0 +5a0486fa-cae7-48bf-99cb-41da62c92d4b 16 pOpen_V3_amplified 1 60 9S126M1D36M1D41M1D46M1I59M2D135M102S * 0 0 GGCGGCAGTGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCGAGTTGCTCTTGCCCTGCGTCAATACGGGATAATACCGCGCCACATAGCAGAACTTTAAAGGTGCCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACGGTGCACCCAACTCATCTTCAGCATCTTTTACTTTCACCAGCGTTTCCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAAGGGCGACACGGACGTTTTATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAGCGGATACATATTTGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCGCGCACCTGCACCAGTCACAGAAAAGCACTGCCACTCCCACTACCACAGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAACGGAACCAAGTACACAACATA $''.//2338;:;<=?@C?:88////282213442...:9<=={J{CEK{QGHFEDFEJDBDBBCBDOEDH>=>>{HGGI{A*)))10/117756+79:CCFJEDFG{IGAA@>==?ANEFFIF<7365./8666>=;8779>B{BBBA{ELCA@<=<;7/..***,''&&**1:;==AGFN{JDDD<<==DEGFOBA@BIGEA@C>6(')'(''%%%%%%-1126CDFIGAA@@ACAB8***+>982.+*+,-02)'*56<<;::;;==:999317@HH{GMGD@?77=@@=<<=AOEDBBCEJK{{LJGDCACEFGDCBCHHKT{TI{HUKHHCCDFLJHHMEBDKHGFDHJ{;:63((1/+('(*>DBB99?442243:126:<8''&%%%$&')*)(((0'''(;<;9:<=>?>BA@84'&(12)(('*(%%%()&((+,,.*/.245,+++122/+**&/00555/...8{{;>B@A?<;;4222<=0..;0//1103<;@;9?@=:9:CC:6:71003((''0666999<<<(((2)(()'&&(01195230.(&#$&&('%*.'&&%&$%%'(),,,-/788BDDFFEH;::;;8///166:956A9GDFCCEE{{NJKMDCCAABCBDDG????@@@@KDLKKEBC>DDJGHEECACABAABBBAA><::;;?B6?:84+*'&&''(468CJDDBDI@AE<;:;B?>B@EBA>;442/..'''))))%$$$&)4589;=;;<;=<567>65+*'')**233-02334??>?NMIGCD{{KZG???BMGDEHFEA>6557@@@@DFD?=>:955768004677DHFGKGFDGECDF=87521114))((+++,,7;;;7644/.2...@A:6401>@?>9:::IH66:;?40001444?=>1666788;<<;444:9879;;784555644//((((?BBA@?900/252)-100****.0-*,-)(''(&$#$#$()4@BAE{FCGKLF{KE328>I{EB;;;?>9961/.)(('**,-+*..301124335;<<98900;=?9777777<;;<{IFDE&-**2..-04388,4=;{{8.../55500/&**+/221+++,542./*.,,+((&)(%%%(*'(()21(&'48@AB>?>=<:9;<;('''0((()*)'&$%%%&''8<:621:342244>*'%%&&&&+*&&%&%%$%&$$'&&''(,02'&$$$$###$(**-(&%$$&%((())+(('',,'&%'&'(')(*2//1984'&&(4446534+++-./-,,,,,.-.,/0/,((*%$%%%),.-)'''+%%)))()*+220*,-+'&&').,-)..01('').;=653366;849542&$$''&'&&&(%&'(.('''-,,,+*)(&&&%&+,2213301/((%%'''(//-+,)()* NM:i:69 ms:i:568 AS:i:560 nn:i:0 tp:A:P cm:i:32 s1:i:196 s2:i:0 de:f:0.1200 SA:Z:pOpen_V3_amplified,1953,-,542S528M2D92S,60,21; rl:i:0 +e7d58ab3-5d74-4f0c-be96-1b82985c5d65 0 pOpen_V3_amplified 1 60 91S7M2D13M1D19M1D20M1D3M1D2M1D4M2D69M2D12M3D69M1D67M1D31M1D3M2D5M1I14M2D11M1D9M1D17M2D2M2D24M1D19M62S * 0 0 TTGCCTGTACTTGGTTCAGTTACGTATTGCTAAGGTTAAACCCTCCAGGAAAGTACCTCTGATCAGCACCTGTGGTAGTGGGAGTGGCAGTGCTTTTCTGACTGGTGAGTATAAACCAAGTCATTCTGAGATAGTGTATGCGGCAGCCCATTGTCTGCCACGTGGATCCGGGATAATACCTCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACATTCTGGGGCAAAAACTAAGGATCTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTCAGCATCTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATGAGGCAACACGGAAATGTTGAATACTCATACTCTCCTTTCAGATATTATTGAAGCATATCAGGGTTATCTCTAGTGGCGGATACATATTTGAATATAGAAAAATAAACAAATAGGGGTTCGCGCACCTGCACCAGTCACAGAAAAGCACTGCCACTCCCACTACCACAGGTGCTGATCAGAGGTACTTTCCTGGAGGCAT %&'&('/0(((*'*++4+*))''$$%&+()++-//01/000014223463341/(((*))%%11146566786752323555644667844412/00)&&&*+0121/.-.+&&'(/1334334553((()/,,,+0/.0.**+%%$$#$#$%(&&%%*%'&&&&()****/4321/+++,+()),30.)))*++++4466557555666444311113445400003///00(((10**((+0.,++-.01/1132211421125644300011000357633,,,,433365333321236656210125111334001043001258435544455568:8664443334455200-''%&)-.34643211//00433''&&.17753322434220.-,-.*,((()5-11../332231121+*-)'**++01212..-4&%&%&'%%%&&&(*''()-/-*'('(*++210.//1.,,+(&%%&%%$%)-,./434566+***32550.1132344433357677:87.-..586543443.+****+++)))((('0852/)'$## NM:i:45 ms:i:614 AS:i:606 nn:i:0 tp:A:P cm:i:37 s1:i:241 s2:i:0 de:f:0.0818 rl:i:0 +244cfbbf-305e-42c6-bb76-cad3399504e4 16 pOpen_V3_amplified 1 60 72S59M1I28M1D115M2I3M1D92M2D10M1D136M110S * 0 0 CTACGTATTGCTAAGGTTAAACCCTCCAGGAAAGTACCTCTGATCAGCACCTATGCCTATGCCGATGCCCATGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGGCGACCCAAGTCGCTCTTGCCCGGCGTCAATACGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCAAGGATCTGACCGCTGTTGAGATCCAGTTCGATGTAACCCGAACTGTGCACCCAACTGATCTTCAGCATCTTTTACTTTCACCAGCGTTTCTGGGTGAGCAAAAACAGGAAGGCAAAATGCCGCAAAAAAGGGAATAGGCGACACGGAACGTTGAATACTCATACTCTTCCTTTTTCAATATTATTGAAGCATTTATCAGGGTTATTGTCTCATGAGCGGATACATATTTGAATGTATTTAGAAAAATAAACAAATAGGGGTTCCGCGCACCTGCACCAGTCACAGAAAAGCAAATATGGGCATCGGCATAGCTAACAGGCGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAACTGAACGAAAGGCTACAAAGC %&'''(+))++/AA@@BB@225204698888@?>;31**06>=96676644550+,,-06874477>@A?@ABBCDIGFDCG9999>=<=?EA:....../+**()-1556?@@CCEDB7-,)))''',----22358BE;228:8888@<<<0:@CCFEBFCEQ{HGHDA8897:99@A?::555<=>>DDFAAABGD@DH{{JKGIFF@>>,,130.-,*'(**0..24312----:==F{:998<>>EDGHF:::;EFE<;<<,)((0)*.<=@@A><<<---.CCACEGHGH{LPJGGLHK{{L????FHGHDHEUH<;;:>==@B;?AF{DM@{ABJGKFDC{KWLFIJDCGACD@77((+&&'))+++-+,,-32++--,+++-<;::;=C@455779==BFGS{J{GDIFGEL{HJ{LKK{I{JECAA>44))(22274322111011/++,3B@ABDKRAABG{{{POJHHIPIMFDHPGMEFC@C3211215782222@743()1/*+(('&())),1111,+&%'&&&%%"##$###$%(.23789:=4447;;::??BD>@;866?>@AB?;**44/,++**,$'&&%&&&&&-*(&%%%++/+*'& NM:i:12 ms:i:824 AS:i:822 nn:i:0 tp:A:P cm:i:62 s1:i:384 s2:i:0 de:f:0.0223 rl:i:0 diff --git a/lib/bio/sam/sam.go b/lib/bio/sam/sam.go new file mode 100644 index 0000000..6cbf6b0 --- /dev/null +++ b/lib/bio/sam/sam.go @@ -0,0 +1,532 @@ +/* +Package sam implements a SAM file parser and writer. + +SAM is a tab-delimited text format for storing DNA/RNA sequence alignment data. +It is the most widely used alignment format, complementing its binary +equivalent, BAM, which stores the same data in a compressed format. + +DNA sequencing works in the following way: + + - DNA is read in with some raw signal format from the sequencer machine. + - Raw signal is converted to fastq reads using basecalling software. + - Fastq reads are aligned to target template, producing SAM files. + - SAM files are used to answer bioinformatic queries. + +This parser allows parsing and writing of SAM files in Go. Unlike other SAM +parsers in Golang, we aim to be as close to underlying data types as possible, +with a goal of being as simple as possible, and no simpler. + +Paper: https://doi.org/10.1093%2Fbioinformatics%2Fbtp352 +Spec: http://samtools.github.io/hts-specs/SAMv1.pdf +Spec(locally): `dnadesign/lib/bio/sam/SAMv1.pdf` +*/ +package sam + +import ( + "bufio" + "errors" + "fmt" + "io" + "regexp" + "strconv" + "strings" +) + +const DefaultMaxLineSize int = 1024 * 32 * 2 // // 32kB is a magic number often used by the Go stdlib for parsing. We multiply it by two. + +// Each header in a SAM file begins with an @ followed by a two letter record +// code type. Each line is tab delimited, and contains TAG:VALUE pairs. HD, the +// first line, only occurs once, while SQ, RG, and PG can appear multiple +// times. Finally, @CO contains user generated comments. +// +// For more information, check section 1.3 of the reference document. +type Header struct { + HD map[string]string // File-level metadata. Optional. If present, there must be only one @HD line and it must be the first line of the file. + SQ []map[string]string // Reference sequence dictionary. The order of @SQ lines defines the alignment sorting order. + RG []map[string]string // Read group. Unordered multiple @RG lines are allowed. + PG []map[string]string // Program. + CO []string // One-line text comment. Unordered multiple @CO lines are allowed. UTF-8 encoding may be used. +} + +// headerWriteHelper helps write SAM headers in an ordered way. +func headerWriteHelper(sb io.StringWriter, headerString string, headerMap map[string]string, orderedKeys []string) { + _, _ = sb.WriteString(headerString) + // Write orderedKeys first, if they exist + for _, key := range orderedKeys { + if value, exists := headerMap[key]; exists { + _, _ = sb.WriteString(fmt.Sprintf("\t%s:%s", key, value)) + } + } + // Write the remaining key-value pairs + for key, value := range headerMap { + // Skip if the key is one of the specific keys + var skip bool + for _, orderedKey := range orderedKeys { + if key == orderedKey { + skip = true + } + } + if skip { + continue + } + _, _ = sb.WriteString(fmt.Sprintf("\t%s:%s", key, value)) + } + _, _ = sb.WriteString("\n") +} + +// WriteTo writes a SAM header to an io.Writer. +func (header *Header) WriteTo(w io.Writer) (int64, error) { + // Here we write the header into a SAM file. Please check the official + // documentation for the meaning of each tag used as ordered keys. + // Here, we iterate through each, and write it to a file. + var sb strings.Builder + if len(header.HD) > 0 { + headerWriteHelper(&sb, "@HD", header.HD, []string{"VN", "SO", "GO", "SS"}) + } + for _, sq := range header.SQ { + headerWriteHelper(&sb, "@SQ", sq, []string{"SN", "LN", "AH", "AN", "AS", "DS", "M5", "SP", "TP", "UR"}) + } + for _, rg := range header.RG { + headerWriteHelper(&sb, "@RG", rg, []string{"ID", "BC", "CN", "DS", "DT", "FO", "KS", "LB", "PG", "PI", "PL", "PM", "PU", "SM"}) + } + for _, pg := range header.PG { + headerWriteHelper(&sb, "@PG", pg, []string{"ID", "PN", "VN", "CL", "PP", "DS"}) + } + for _, co := range header.CO { + _, _ = sb.WriteString(fmt.Sprintf("@CO %s\n", co)) + } + + newWrittenBytes, err := w.Write([]byte(sb.String())) + return int64(newWrittenBytes), err +} + +// Validate validates that the header has all required information, as +// described in the SAMv1 specification document. Not implemented yet. +func (header *Header) Validate() error { + /* The following rules apply: + 1. @HD.VN: Format version. Accepted format: /^[0-9]+\.[0-9]+$/. + 2. @HD.SO: Valid values: unknown (default), unsorted, queryname and coordinate + 3. @HD.GO: Valid values: none (default), query (alignments are grouped by QNAME), and reference (alignments are grouped by RNAME/POS) + 4. @HD.SS: Regular expression: (coordinate|queryname|unsorted)(:[A-Za-z0-9_-]+)+ + 5. @SQ.SN: Regular expression: [:rname:^*=][:rname:]* + 6. @SQ.SN/AN: The SN tags and all individual AN names in all @SQ lines must be distinct + 7. @SQ.LN: Reference sequence length. Range: [1, 2^31 − 1] + 8. @SQ.AN: Regular expression: name(,name)* where name is [:rname:^*=][:rname:]* (definition of 6) + 9. @SQ.TP: Valid values: linear (default) and circular + 10. @RG.ID: Each @RG line must have a unique ID + 11. @RG.DT: Date the run was produced (ISO8601 date or date/time). + 12. @RG.FO: Format: /\*|[ACMGRSVTWYHKDBN]+/ + 13. @RG.PL: Valid values: CAPILLARY, DNBSEQ (MGI/BGI), ELEMENT, HELICOS, ILLUMINA, IONTORRENT, LS454, ONT (Oxford Nanopore), PACBIO (Pacific Bio-sciences), SOLID, and ULTIMA + 14. @PG.ID: Each @PG line must have a unique ID. + 15. @PG.PP: Previous @PG-ID. Must match another @PG header’s ID tag. @PG records may be chained using PP tag, with the last record in the chain having no PP tag + */ + + // Validate @HD tags + if len(header.HD) > 0 { + // Accessing HD map directly as it's not a function returning two values + hd := header.HD + + // 1. @HD VN + if vn, ok := hd["VN"]; ok { + matched, _ := regexp.MatchString(`^[0-9]+\.[0-9]+$`, vn) + if !matched { + return fmt.Errorf("Invalid format for @HD VN. Accepted format: /^[0-9]+\\.[0-9]+$/.\nGot: %s", vn) + } + } + // 2. @HD SO + if so, ok := hd["SO"]; ok { + validValues := map[string]bool{"unknown": true, "unsorted": true, "queryname": true, "coordinate": true} + if _, valid := validValues[so]; !valid { + return fmt.Errorf("Invalid value for @HD SO. Valid values: unknown (default), unsorted, queryname and coordinate. Got: %s", so) + } + } + // 3. @HD GO + if goTag, ok := hd["GO"]; ok { + validValues := map[string]bool{"none": true, "query": true, "reference": true} + if _, valid := validValues[goTag]; !valid { + return fmt.Errorf("Invalid value for @HD GO. Valid values: none (default), query (alignments are grouped by QNAME), and reference (alignments are grouped by RNAME/POS). Got: %s", goTag) + } + } + // 4. @HD SS + if ss, ok := hd["SS"]; ok { + matched, _ := regexp.MatchString(`(coordinate|queryname|unsorted)(:[A-Za-z0-9_-]+)+`, ss) + if !matched { + return fmt.Errorf("Invalid format for @HD SS. Needs to match: Regular expression: (coordinate|queryname|unsorted)(:[A-Za-z0-9_-]+)+\nGot: %s", ss) + } + } + } + + // Validate @SQ tags + snMap := make(map[string]bool) + for _, sq := range header.SQ { + // 5. @SQ SN + if sn, ok := sq["SN"]; ok { + // [:rname:^*=][:rname:]* isn't actually a valid regexp, so I'm not + // sure why they've used this as the definition. We skip this check + // because it doesn't make much sense. + if snMap[sn] { + return fmt.Errorf("Non-unique @SQ SN: %s", sn) + } + snMap[sn] = true + } + // 7. @SQ LN + if ln, ok := sq["LN"]; ok { + lnInt, err := strconv.Atoi(ln) + if err != nil || lnInt < 1 || lnInt > 2147483647 { + return fmt.Errorf("Invalid value for @SQ LN. Range: [1, 231 − 1], Got: %d", lnInt) + } + } + // 9. @SQ TP + if tp, ok := sq["TP"]; ok { + validValues := map[string]bool{"linear": true, "circular": true} + if _, valid := validValues[tp]; !valid { + return fmt.Errorf("Invalid value for @SQ TP. Valid values: linear (default) and circular, Got: %s", tp) + } + } + } + + // Validate @RG tags + rgIDMap := make(map[string]bool) + rgFoRegexp := regexp.MustCompile(`\*|[ACMGRSVTWYHKDBN]+`) + for _, rg := range header.RG { + // 10. @RG ID + if id, ok := rg["ID"]; ok { + if rgIDMap[id] { + return fmt.Errorf("Non-unique @RG ID. Got: %s", id) + } + rgIDMap[id] = true + } + // 12. @RG FO + if fo, ok := rg["FO"]; ok { + matched := rgFoRegexp.MatchString(fo) + if !matched { + return fmt.Errorf("Invalid format for @RG FO. Required regexp format: /\\*|[ACMGRSVTWYHKDBN]+/\nGot: %s", fo) + } + } + // 13. @RG PL + if pl, ok := rg["PL"]; ok { + validValues := map[string]bool{ + "CAPILLARY": true, "DNBSEQ": true, "ELEMENT": true, "HELICOS": true, "ILLUMINA": true, + "IONTORRENT": true, "LS454": true, "ONT": true, "PACBIO": true, "SOLID": true, "ULTIMA": true, + } + if _, valid := validValues[pl]; !valid { + return fmt.Errorf("Invalid value for @RG PL. Valid values: CAPILLARY, DNBSEQ (MGI/BGI), ELEMENT, HELICOS, ILLUMINA, IONTORRENT, LS454, ONT (Oxford Nanopore), PACBIO (Pacific Bio-sciences), SOLID, and ULTIMA. Got: %s", pl) + } + } + } + + // Validate @PG tags + pgIDMap := make(map[string]bool) + for _, pg := range header.PG { + // 14. @PG ID + if id, ok := pg["ID"]; ok { + if pgIDMap[id] { + return fmt.Errorf("Non-unique @PG ID. Got: %s", id) + } + pgIDMap[id] = true + } + } + return nil +} + +// Optional fields in SAM alignments are structured as TAG:TYPE:DATA, where +// the type identifiers the typing of the data. +// +// For more information, check section 1.5 of http://samtools.github.io/hts-specs/SAMv1.pdf. +type Optional struct { + Tag string // Tag is typically a two letter tag corresponding to what the optional represents. + Type rune // The type may be one of A (character), B (general array), f (real number), H (hexadecimal array), i (integer), or Z (string). + Data string // Optional data +} + +// Each alignment is a single line of a SAM file, representing a linear +// alignment of a segment, consisting of 11 or more tab delimited fields. The +// 11 fields (QNAME -> QUAL) are always available (if the data isn't there, a +// placeholder '0' or '*' is used instead), with additional optional fields +// following. +// +// For more information, check section 1.4 of the reference document. +type Alignment struct { + QNAME string // Query template NAME + FLAG uint16 // bitwise FLAG + RNAME string // References sequence NAME + POS int32 // 1- based leftmost mapping POSition + MAPQ byte // MAPping Quality + CIGAR string // CIGAR string + RNEXT string // Ref. name of the mate/next read + PNEXT int32 // Position of the mate/next read + TLEN int32 // observed Template LENgth + SEQ string // segment SEQuence + QUAL string // ASCII of Phred-scaled base QUALity+33 + Optionals []Optional // Map of TAG to {TYPE:DATA} +} + +// Alignment_WriteTo implements the io.WriterTo interface. It writes an +// alignment line. +func (alignment *Alignment) WriteTo(w io.Writer) (int64, error) { + var sb strings.Builder + _, _ = sb.WriteString(fmt.Sprintf("%s\t%d\t%s\t%d\t%d\t%s\t%s\t%d\t%d\t%s\t%s", alignment.QNAME, alignment.FLAG, alignment.RNAME, alignment.POS, alignment.MAPQ, alignment.CIGAR, alignment.RNEXT, alignment.PNEXT, alignment.TLEN, alignment.SEQ, alignment.QUAL)) + for _, optional := range alignment.Optionals { + _, _ = sb.WriteString(fmt.Sprintf("\t%s:%c:%s", optional.Tag, optional.Type, optional.Data)) + } + _, _ = sb.WriteString("\n") + newWrittenBytes, err := w.Write([]byte(sb.String())) + return int64(newWrittenBytes), err +} + +// Alignment_Validate validates an alignment as valid, given the REGEXP/range +// defined in the SAM document. Not implemented yet. +func (alignment *Alignment) Validate() error { + /* The following rules apply: + + 1 QNAME String [!-?A-~]{1,254} Query template NAME + 2 FLAG Int [0, 216 − 1] bitwise FLAG + 3 RNAME String \*|[:rname:∧*=][:rname:]* Reference sequence NAME11 + 4 POS Int [0, 231 − 1] 1-based leftmost mapping POSition + 5 MAPQ Int [0, 28 − 1] MAPping Quality + 6 CIGAR String \*|([0-9]+[MIDNSHPX=])+ CIGAR string + 7 RNEXT String \*|=|[:rname:∧*=][:rname:]* Reference name of the mate/next read + 8 PNEXT Int [0, 231 − 1] Position of the mate/next read + 9 TLEN Int [−231 + 1, 231 − 1] observed Template LENgth + 10 SEQ String \*|[A-Za-z=.]+ segment SEQuence + 11 QUAL String [!-~]+ ASCII of Phred-scaled base QUALity+33 + */ + // 1. Validate QNAME + qnameRegex := `^[!-?A-~]{1,254}$` + if matched, _ := regexp.MatchString(qnameRegex, alignment.QNAME); !matched { + return errors.New("Invalid QNAME: must match " + qnameRegex) + } + + // 2. FLAG is validated through uint16 typing. + + // 3. Validate RNAME + rnameRegex := `^\*|[:rname:^\*=][:rname:]*$` + if matched, _ := regexp.MatchString(rnameRegex, alignment.RNAME); !matched { + return errors.New("Invalid RNAME: must match " + rnameRegex) + } + + // 4. Validate POS + if alignment.POS < 0 || alignment.POS > 2147483647 { // 2^31 - 1 + return errors.New("Invalid POS: must be in range [0, 2147483647]") + } + + // 5. MAPQ is validated through byte typing. + + // 6. Validate CIGAR + cigarRegex := `^\*|([0-9]+[MIDNSHPX=])+$` + if matched, _ := regexp.MatchString(cigarRegex, alignment.CIGAR); !matched { + return errors.New("Invalid CIGAR: must match " + cigarRegex) + } + + // 7. Validate RNEXT + rnextRegex := `^\*|=\|[:rname:^\*=][:rname:]*$` + if matched, _ := regexp.MatchString(rnextRegex, alignment.RNEXT); !matched { + return errors.New("Invalid RNEXT: must match " + rnextRegex) + } + + // 8. Validate PNEXT + if alignment.PNEXT < 0 || alignment.PNEXT > 2147483647 { // 2^31 - 1 + return errors.New("Invalid PNEXT: must be in range [0, 2147483647]") + } + + // 9. TLEN is validated through int32 typing. + + // 10. Validate SEQ + seqRegex := `^\*|[A-Za-z=.]+$` + if matched, _ := regexp.MatchString(seqRegex, alignment.SEQ); !matched { + return errors.New("Invalid SEQ: must match " + seqRegex) + } + + // 11. Validate QUAL + qualRegex := `^[!-~]+$` + if matched, _ := regexp.MatchString(qualRegex, alignment.QUAL); !matched { + return errors.New("Invalid QUAL: must match " + qualRegex) + } + + return nil +} + +// Parser is a sam file parser that provide sample control over reading sam +// alignments. It should be initialized with NewParser. +type Parser struct { + reader bufio.Reader + line uint + FileHeader Header + firstLine string + readFirstLine bool +} + +// Header returns the parsed sam header. +func (p *Parser) Header() (*Header, error) { + return &p.FileHeader, nil +} + +func checkIfValidSamLine(lineBytes []byte) bool { + return len(strings.Split(strings.TrimSpace(string(lineBytes)), "\t")) >= 11 +} + +// NewParser creates a parser from an io.Reader for sam data. For larger +// alignments, you will want to increase the maxLineSize. +func NewParser(r io.Reader, maxLineSize int) (*Parser, Header, error) { + parser := &Parser{ + reader: *bufio.NewReaderSize(r, maxLineSize), + } + var header Header + var hdParsed bool + // Initialize header maps + header.HD = make(map[string]string) + header.SQ = []map[string]string{} + header.RG = []map[string]string{} + header.PG = []map[string]string{} + header.CO = []string{} + + // We need to first read the header before returning the parser to the + // user for analyzing alignments. + for { + lineBytes, err := parser.reader.ReadSlice('\n') + line := strings.TrimSpace(string(lineBytes)) + if err != nil { + // Check if we have an EOF, if we have a validSamLine, and we are + // not parsing a header. We do not check EOF + header line without + // any validSamLine because that is useless. + // + // This, on the other hand, will catch if we have a single line sam + // file with an EOF at the end, like we often have in tests. + if err == io.EOF && checkIfValidSamLine(lineBytes) && line[0] != '@' { + parser.firstLine = line + break + } + return parser, Header{}, err + } + parser.line++ + if len(line) == 0 { + return parser, Header{}, fmt.Errorf("Line %d is empty. Empty lines are not allowed in headers.", parser.line) + } + // If this line is the start of the alignments, set the firstLine + // into memory, and then break this loop. + if line[0] != '@' { + parser.firstLine = line + break + } + values := strings.Split(line, "\t") + if len(values) < 1 { + return parser, Header{}, fmt.Errorf("Line %d should contain at least 1 value. Got: %d. Line text: %s", parser.line, len(values), line) + } + + // If we haven't parsed HD, it is always the first line: lets parse it. + if !hdParsed { + if values[0] != "@HD" { + return parser, Header{}, fmt.Errorf("First line (%d) should always contain @HD first. Line text: %s", parser.line, line) + } + // Now parse the rest of the HD header + for _, value := range values[1:] { + valueSplit := strings.Split(value, ":") + header.HD[valueSplit[0]] = valueSplit[1] + } + hdParsed = true + continue + } + + // CO lines are unique in that they are just strings. So we try to parse them + // first. We include the entire comment line for these. + if values[0] == "@CO" { + header.CO = append(header.CO, line) + continue + } + + // HD/CO lines have been successfully parsed, now we work on SQ, RG, and PG. + // Luckily, each one has an identical form ( TAG:DATA ), so we can parse that + // first and then just apply it to the respect top level tag. + genericMap := make(map[string]string) + for _, value := range values[1:] { + valueSplit := strings.Split(value, ":") + genericMap[valueSplit[0]] = valueSplit[1] + } + switch values[0] { + case "@SQ": + header.SQ = append(header.SQ, genericMap) + case "@RG": + header.RG = append(header.RG, genericMap) + case "@PG": + header.PG = append(header.PG, genericMap) + default: + return parser, Header{}, fmt.Errorf("Line %d should contain @SQ, @RG, @PG or @CO as top level tags, but they weren't found. Line text: %s", parser.line, line) + } + } + parser.FileHeader = header + return parser, header, nil +} + +// Next parsers the next read from a parser. Returns an `io.EOF` upon EOF. +func (p *Parser) Next() (*Alignment, error) { + var alignment Alignment + var finalLine bool + var line string + + // We need to handle the firstLine after the header, as well as EOF checks. + if !p.readFirstLine { + line = p.firstLine + p.readFirstLine = true + } else { + lineBytes, err := p.reader.ReadSlice('\n') + if err != nil { + if err == io.EOF { + // This checks if the EOF is at the end of a line. If there is a + // final SAM line, skip the EOF till the next Next() + if len(strings.Split(strings.TrimSpace(string(lineBytes)), "\t")) >= 11 { + finalLine = true + } + } + } + if !finalLine { + if err != nil { + return nil, err + } + } + line = strings.TrimSpace(string(lineBytes)) + } + p.line++ + values := strings.Split(line, "\t") + if len(values) < 11 { + return nil, fmt.Errorf("Line %d had error: must have at least 11 tab-delimited values. Had %d", p.line, len(values)) + } + alignment.QNAME = values[0] + flag64, err := strconv.ParseUint(values[1], 10, 16) // convert string to uint16 + if err != nil { + return nil, fmt.Errorf("Line %d had error: %s", p.line, err) + } + alignment.FLAG = uint16(flag64) + alignment.RNAME = values[2] + pos64, err := strconv.ParseInt(values[3], 10, 32) // convert string to int32 + if err != nil { + return nil, fmt.Errorf("Line %d had error: %s", p.line, err) + } + alignment.POS = int32(pos64) + mapq64, err := strconv.ParseUint(values[4], 10, 8) // convert string to uint8 (otherwise known as byte) + if err != nil { + return nil, fmt.Errorf("Line %d had error: %s", p.line, err) + } + alignment.MAPQ = uint8(mapq64) + alignment.CIGAR = values[5] + alignment.RNEXT = values[6] + pnext64, err := strconv.ParseInt(values[7], 10, 32) + if err != nil { + return nil, fmt.Errorf("Line %d had error: %s", p.line, err) + } + alignment.PNEXT = int32(pnext64) + tlen64, err := strconv.ParseInt(values[8], 10, 32) + if err != nil { + return nil, fmt.Errorf("Line %d had error: %s", p.line, err) + } + alignment.TLEN = int32(tlen64) + alignment.SEQ = values[9] + alignment.QUAL = values[10] + + var optionals []Optional + for _, value := range values[11:] { + valueSplit := strings.Split(value, ":") + optionals = append(optionals, Optional{Tag: valueSplit[0], Type: rune(valueSplit[1][0]), Data: valueSplit[2]}) + } + alignment.Optionals = optionals + return &alignment, nil +} diff --git a/lib/bio/sam/sam_test.go b/lib/bio/sam/sam_test.go new file mode 100644 index 0000000..66c22b9 --- /dev/null +++ b/lib/bio/sam/sam_test.go @@ -0,0 +1,268 @@ +package sam + +import ( + "bytes" + "errors" + "fmt" + "io" + "os" + "strings" + "testing" +) + +func TestParse(t *testing.T) { + file, err := os.Open("data/aln.sam") + if err != nil { + t.Errorf("Failed to open aln.sam: %s", err) + } + parser, header, err := NewParser(file, DefaultMaxLineSize) + if err != nil { + t.Errorf("Got error on new parser: %s", err) + } + if len(header.HD) != 3 { + t.Errorf("HD should have 3 TAG:DATA pairs") + } + for { + _, err := parser.Next() + if err != nil { + if !errors.Is(err, io.EOF) { + t.Errorf("Got unknown error: %s", err) + } + break + } + } +} + +func ExampleNewParser() { + file := strings.NewReader(`@HD VN:1.6 SO:unsorted GO:query +@SQ SN:pOpen_V3_amplified LN:2482 +@PG ID:minimap2 PN:minimap2 VN:2.24-r1155-dirty CL:minimap2 -acLx map-ont - APX814_pass_barcode17_e229f2c8_109f9b91_0.fastq.gz +ae9a66f5-bf71-4572-8106-f6f8dbd3b799 16 pOpen_V3_amplified 1 60 8S54M1D3M1D108M1D1M1D62M226S * 0 0 AGCATGCCGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGTGCTGAGTTGCTCTTGCCCGGCGTCAATACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCGACGTTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTCAGCATCAGGGCCGAGCGCAGAAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGAAGCTAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTGGTTACTGTTGATGTTCATGTAGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAACGGAACGAAGTACAGGGCAT %,AFDCBD{LNKKGIL{{JLKI{{IFG>==86668789=<><;056<;>=87:840/++1,++)-,-0{{&&%%&&),-13;<{HGVKCGFI{J{L{G{INJHEA@C540/3568;>EOI{{{I0000HHRJ{{{{{{{RH{N@@?AKLQEEC?==<433345588==FTA??A@G?@@@EC?==;10//2333?AB?<<<--(++*''&&-(((+@DBJQHJHGGPJH{.---@B?<''-++'--&%%&,,,FC:999IEGJ{HJHIGIFEGIFMDEF;8878{KJGFIJHIHDCAA=<<<<;DDB>:::EK{{@{E<==HM{{{KF{{{MDEQM{ECA?=>9--,.3))'')*++.-,**()%% NM:i:8 ms:i:408 AS:i:408 nn:i:0 tp:A:P cm:i:29 s1:i:195 s2:i:0 de:f:0.0345 SA:Z:pOpen_V3_amplified,2348,-,236S134M1D92S,60,1; rl:i:0`) + parser, _, _ := NewParser(file, DefaultMaxLineSize) + samLine, _ := parser.Next() + + fmt.Println(samLine.CIGAR) + // Output: 8S54M1D3M1D108M1D1M1D62M226S +} + +func TestWriteTo(t *testing.T) { + fileString := `@HD VN:1.6 SO:unsorted GO:query +@SQ SN:pOpen_V3_amplified LN:2482 +@PG ID:minimap2 PN:minimap2 VN:2.24-r1155-dirty CL:minimap2 -acLx map-ont - APX814_pass_barcode17_e229f2c8_109f9b91_0.fastq.gz +ae9a66f5-bf71-4572-8106-f6f8dbd3b799 16 pOpen_V3_amplified 1 60 8S54M1D3M1D108M1D1M1D62M226S * 0 0 AGCATGCCGCTTTTCTGTGACTGGTGAGTACTCAACCAAGTCATTCTGAGAATAGTGTATGCGTGCTGAGTTGCTCTTGCCCGGCGTCAATACGGGATAATACCGCGCCACATAGCAGAACTTTAAAAGTGCTCATCATTGGAAAACGTTCTTCGGGGCGAAAACTCTCGACGTTTACCGCTGTTGAGATCCAGTTCGATGTAACCCACTCGTGCACCCAACTGATCTTCAGCATCAGGGCCGAGCGCAGAAGTGGTCCTGCAACTTTATCCGCCTCCATCCAGTCTATTAATTGTTGCCGGAAGCTAGAGTAAGTAGTTCGCCAGTTAATAGTTTGCGCAACGTTGTTGCCATTGCTACAGGCATCGTGGTTACTGTTGATGTTCATGTAGGTGCTGATCAGAGGTACTTTCCTGGAGGGTTTAACCTTAGCAATACGTAACGGAACGAAGTACAGGGCAT %,AFDCBD{LNKKGIL{{JLKI{{IFG>==86668789=<><;056<;>=87:840/++1,++)-,-0{{&&%%&&),-13;<{HGVKCGFI{J{L{G{INJHEA@C540/3568;>EOI{{{I0000HHRJ{{{{{{{RH{N@@?AKLQEEC?==<433345588==FTA??A@G?@@@EC?==;10//2333?AB?<<<--(++*''&&-(((+@DBJQHJHGGPJH{.---@B?<''-++'--&%%&,,,FC:999IEGJ{HJHIGIFEGIFMDEF;8878{KJGFIJHIHDCAA=<<<<;DDB>:::EK{{@{E<==HM{{{KF{{{MDEQM{ECA?=>9--,.3))'')*++.-,**()%% NM:i:8 ms:i:408 AS:i:408 nn:i:0 tp:A:P cm:i:29 s1:i:195 s2:i:0 de:f:0.0345 SA:Z:pOpen_V3_amplified,2348,-,236S134M1D92S,60,1; rl:i:0 +` + file := strings.NewReader(fileString) + parser, _, _ := NewParser(file, DefaultMaxLineSize) + read, _ := parser.Next() + header, _ := parser.Header() + var buffer bytes.Buffer + _, _ = header.WriteTo(&buffer) + _, _ = read.WriteTo(&buffer) + + if fileString != buffer.String() { + t.Errorf("Got diff! First:\n%s\nSecond:\n%s\n====", fileString, buffer.String()) + } +} + +// TestValidate ensures that every aspect of validation is covered +func TestValidate(t *testing.T) { + // Construct an alignment that is correct in all aspects + validAlignment := Alignment{ + QNAME: "ValidName", + FLAG: 255, + RNAME: "*", + POS: 123456, + MAPQ: 50, + CIGAR: "10M1I4M", + RNEXT: "*", + PNEXT: 234567, + TLEN: 1000, + SEQ: "ACTGACTGAC", + QUAL: "~~~~~~~~~~", + } + + // Should pass (no error) + if err := validAlignment.Validate(); err != nil { + t.Errorf("Valid alignment did not pass validation: %s", err) + } + + // Test cases for each field + testCases := []struct { + modify func(a *Alignment) + expected string + }{ + { // Invalid QNAME + func(a *Alignment) { a.QNAME = "Invalid QNAME due to length and spaces" }, + "Invalid QNAME", + }, + { // Invalid RNAME + func(a *Alignment) { a.RNAME = "Invalid RNAME" }, + "Invalid RNAME", + }, + { // Invalid POS, out of range + func(a *Alignment) { a.POS = -1 }, + "Invalid POS", + }, + { // Invalid CIGAR + func(a *Alignment) { a.CIGAR = "X" }, + "Invalid CIGAR", + }, + { // Invalid RNEXT + func(a *Alignment) { a.RNEXT = "Invalid RNEXT" }, + "Invalid RNEXT", + }, + { // Invalid PNEXT, out of range + func(a *Alignment) { a.PNEXT = -1 }, + "Invalid PNEXT", + }, + { // Invalid SEQ + func(a *Alignment) { a.SEQ = "ACTG123" }, + "Invalid SEQ", + }, + { // Invalid QUAL + func(a *Alignment) { a.QUAL = "qual string with lower case or invalid characters" }, + "Invalid QUAL", + }, + } + + for _, tc := range testCases { + // Copy the valid alignment and modify it for the test + invalidAlignment := validAlignment + tc.modify(&invalidAlignment) + + // Now validate it + err := invalidAlignment.Validate() + if err == nil || !contains(err.Error(), tc.expected) { + t.Errorf("Expected error for %s but got none or wrong error: %s", tc.expected, err) + } + } +} + +// contains is a helper function to check if errStr contains the expected substring +func contains(errStr, expected string) bool { + return errStr != "" && strings.Contains(errStr, expected) +} + +// TestValidateAllInOne - testing all validation rules in one function +func TestValidateAllInOne(t *testing.T) { + // Define a series of headers to test different validation scenarios + tests := []struct { + name string + header *Header + expectedError error + }{ + // Valid Complete Header + { + name: "Valid Complete Header", + header: &Header{ + HD: map[string]string{"VN": "1.0", "SO": "unsorted", "GO": "none", "SS": "coordinate:example"}, + SQ: []map[string]string{{"SN": "chr1", "LN": "1000", "TP": "linear"}}, + RG: []map[string]string{{"ID": "rg1", "PL": "ILLUMINA", "FO": "*", "DT": "2023-01-01"}}, + PG: []map[string]string{{"ID": "pg1"}}, + CO: []string{"This is a comment."}, + }, + expectedError: nil, + }, + // Invalid @HD VN format + { + name: "Invalid @HD VN format", + header: &Header{ + HD: map[string]string{"VN": "abc"}, // Invalid VN format + }, + expectedError: fmt.Errorf("Invalid format for @HD VN. Accepted format: /^[0-9]+\\.[0-9]+$/.\nGot: %s", "abc"), + }, + // Invalid @HD SO value + { + name: "Invalid @HD SO value", + header: &Header{ + HD: map[string]string{"VN": "1.0", "SO": "invalid_so"}, // Invalid SO value + }, + expectedError: fmt.Errorf("Invalid value for @HD SO. Valid values: unknown (default), unsorted, queryname and coordinate. Got: %s", "invalid_so"), + }, + // Invalid @HD GO value + { + name: "Invalid @HD GO value", + header: &Header{ + HD: map[string]string{"VN": "1.0", "GO": "invalid_go"}, // Invalid GO value + }, + expectedError: fmt.Errorf("Invalid value for @HD GO. Valid values: none (default), query (alignments are grouped by QNAME), and reference (alignments are grouped by RNAME/POS). Got: %s", "invalid_go"), + }, + // Invalid @HD SS format + { + name: "Invalid @HD SS format", + header: &Header{ + HD: map[string]string{"VN": "1.0", "SS": "invalid_ss"}, // Invalid SS format + }, + expectedError: fmt.Errorf("Invalid format for @HD SS. Needs to match: Regular expression: (coordinate|queryname|unsorted)(:[A-Za-z0-9_-]+)+\nGot: %s", "invalid_ss"), + }, + // Invalid @SQ LN range + { + name: "Invalid @SQ LN range", + header: &Header{ + SQ: []map[string]string{{"SN": "chr1", "LN": "2147483648"}}, // Invalid LN range + }, + expectedError: fmt.Errorf("Invalid value for @SQ LN. Range: [1, 231 − 1], Got: %d", 2147483648), + }, + // Invalid @SQ TP value + { + name: "Invalid @SQ TP value", + header: &Header{ + SQ: []map[string]string{{"SN": "chr1", "LN": "1000", "TP": "invalid_tp"}}, // Invalid TP value + }, + expectedError: fmt.Errorf("Invalid value for @SQ TP. Valid values: linear (default) and circular, Got: %s", "invalid_tp"), + }, + // Non-unique @RG ID + { + name: "Non-unique @RG ID", + header: &Header{ + RG: []map[string]string{{"ID": "rg1", "PL": "ILLUMINA"}, {"ID": "rg1", "PL": "SOLID"}}, + }, + expectedError: fmt.Errorf("Non-unique @RG ID. Got: %s", "rg1"), + }, + // Invalid @RG FO format + { + name: "Invalid @RG FO format", + header: &Header{ + RG: []map[string]string{{"ID": "rg1", "FO": "invalid_fo"}}, + }, + expectedError: fmt.Errorf("Invalid format for @RG FO. Required regexp format: /\\*|[ACMGRSVTWYHKDBN]+/\nGot: %s", "invalid_fo"), + }, + // Invalid @RG PL value + { + name: "Invalid @RG PL value", + header: &Header{ + RG: []map[string]string{{"ID": "rg1", "PL": "invalid_pl"}}, + }, + expectedError: fmt.Errorf("Invalid value for @RG PL. Valid values: CAPILLARY, DNBSEQ (MGI/BGI), ELEMENT, HELICOS, ILLUMINA, IONTORRENT, LS454, ONT (Oxford Nanopore), PACBIO (Pacific Bio-sciences), SOLID, and ULTIMA. Got: %s", "invalid_pl"), + }, + // Non-unique @PG ID + { + name: "Non-unique @PG ID", + header: &Header{ + PG: []map[string]string{{"ID": "pg1"}, {"ID": "pg1"}}, + }, + expectedError: fmt.Errorf("Non-unique @PG ID. Got: %s", "pg1"), + }, + // Non-unique @SN SQ + { + name: "Invalid @SQ SN format", + header: &Header{ + SQ: []map[string]string{{"SN": "invalid_sn", "LN": "1000"}, {"SN": "invalid_sn"}}, // Invalid SN format + }, + expectedError: fmt.Errorf("Non-unique @SQ SN: %s", "invalid_sn"), + }, + } + + // Iterate through each test case + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + // Run the validate function on the header + err := tc.header.Validate() + + // Check if the error matches the expected error + if (err != nil && tc.expectedError == nil) || (err == nil && tc.expectedError != nil) || (err != nil && tc.expectedError != nil && err.Error() != tc.expectedError.Error()) { + t.Errorf("Test %v - Got error %v, want %v", tc.name, err, tc.expectedError) + } + }) + } +} diff --git a/lib/seqhash/example_test.go b/lib/seqhash/example_test.go index 600d7b7..b9595b4 100644 --- a/lib/seqhash/example_test.go +++ b/lib/seqhash/example_test.go @@ -23,7 +23,7 @@ func Example_basic() { func ExampleRotateSequence() { file, _ := os.Open("../data/puc19.gbk") defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() sequenceLength := len(sequence.Sequence) diff --git a/lib/seqhash/seqhash_test.go b/lib/seqhash/seqhash_test.go index 6e6e8ce..82e3622 100644 --- a/lib/seqhash/seqhash_test.go +++ b/lib/seqhash/seqhash_test.go @@ -68,7 +68,7 @@ func TestHash2(t *testing.T) { func TestLeastRotation(t *testing.T) { file, _ := os.Open("../data/puc19.gbk") defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() var sequenceBuffer bytes.Buffer diff --git a/lib/synthesis/codon/codon_test.go b/lib/synthesis/codon/codon_test.go index bc9ba6c..7f0781e 100644 --- a/lib/synthesis/codon/codon_test.go +++ b/lib/synthesis/codon/codon_test.go @@ -54,7 +54,7 @@ func TestOptimize(t *testing.T) { file, _ := os.Open("../../bio/genbank/data/puc19.gbk") defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() table := NewTranslationTable(11) @@ -78,7 +78,7 @@ func TestOptimizeSameSeed(t *testing.T) { var gfpTranslation = "MASKGEELFTGVVPILVELDGDVNGHKFSVSGEGEGDATYGKLTLKFICTTGKLPVPWPTLVTTFSYGVQCFSRYPDHMKRHDFFKSAMPEGYVQERTISFKDDGNYKTRAEVKFEGDTLVNRIELKGIDFKEDGNILGHKLEYNYNSHNVYITADKQKNGIKANFKIRHNIEDGSVQLADHYQQNTPIGDGPVLLPDNHYLSTQSALSKDPNEKRDHMVLLEFVTAAGITHGMDELYK*" file, _ := os.Open(puc19path) defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() optimizationTable := NewTranslationTable(11) @@ -101,7 +101,7 @@ func TestOptimizeDifferentSeed(t *testing.T) { var gfpTranslation = "MASKGEELFTGVVPILVELDGDVNGHKFSVSGEGEGDATYGKLTLKFICTTGKLPVPWPTLVTTFSYGVQCFSRYPDHMKRHDFFKSAMPEGYVQERTISFKDDGNYKTRAEVKFEGDTLVNRIELKGIDFKEDGNILGHKLEYNYNSHNVYITADKQKNGIKANFKIRHNIEDGSVQLADHYQQNTPIGDGPVLLPDNHYLSTQSALSKDPNEKRDHMVLLEFVTAAGITHGMDELYK*" file, _ := os.Open(puc19path) defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() optimizationTable := NewTranslationTable(11) @@ -210,7 +210,7 @@ Codon Compromise + Add related tests begin here. func TestCompromiseCodonTable(t *testing.T) { file, _ := os.Open(puc19path) defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() // weight our codon optimization table using the regions we collected from the genbank file above @@ -222,7 +222,7 @@ func TestCompromiseCodonTable(t *testing.T) { file2, _ := os.Open("../../data/phix174.gb") defer file2.Close() - parser2, _ := bio.NewGenbankParser(file2) + parser2 := bio.NewGenbankParser(file2) sequence2, _ := parser2.Next() optimizationTable2 := NewTranslationTable(11) err = optimizationTable2.UpdateWeightsWithSequence(*sequence2) @@ -243,7 +243,7 @@ func TestCompromiseCodonTable(t *testing.T) { func TestAddCodonTable(t *testing.T) { file, _ := os.Open(puc19path) defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() // weight our codon optimization table using the regions we collected from the genbank file above @@ -256,7 +256,7 @@ func TestAddCodonTable(t *testing.T) { file2, _ := os.Open("../../data/phix174.gb") defer file2.Close() - parser2, _ := bio.NewGenbankParser(file2) + parser2 := bio.NewGenbankParser(file2) sequence2, _ := parser2.Next() optimizationTable2 := NewTranslationTable(11) err = optimizationTable2.UpdateWeightsWithSequence(*sequence2) @@ -285,7 +285,7 @@ func TestCapitalizationRegression(t *testing.T) { file, _ := os.Open(puc19path) defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() optimizationTable := NewTranslationTable(11) @@ -311,7 +311,7 @@ func TestOptimizeSequence(t *testing.T) { puc19 = func() genbank.Genbank { file, _ := os.Open("../../bio/genbank/data/puc19.gbk") defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() return *sequence }() diff --git a/lib/synthesis/codon/example_test.go b/lib/synthesis/codon/example_test.go index a9cf064..d9a84e9 100644 --- a/lib/synthesis/codon/example_test.go +++ b/lib/synthesis/codon/example_test.go @@ -26,7 +26,7 @@ func ExampleTranslationTable_Optimize() { file, _ := os.Open(puc19path) defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() codonTable := codon.NewTranslationTable(11) _ = codonTable.UpdateWeightsWithSequence(*sequence) @@ -83,7 +83,7 @@ func ExampleWriteCodonJSON() { func ExampleCompromiseCodonTable() { file, _ := os.Open(puc19path) defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() // weight our codon optimization table using the regions we collected from the genbank file above @@ -95,7 +95,7 @@ func ExampleCompromiseCodonTable() { file2, _ := os.Open(phix174path) defer file2.Close() - parser2, _ := bio.NewGenbankParser(file2) + parser2 := bio.NewGenbankParser(file2) sequence2, _ := parser2.Next() optimizationTable2 := codon.NewTranslationTable(11) @@ -118,7 +118,7 @@ func ExampleCompromiseCodonTable() { func ExampleAddCodonTable() { file, _ := os.Open(puc19path) defer file.Close() - parser, _ := bio.NewGenbankParser(file) + parser := bio.NewGenbankParser(file) sequence, _ := parser.Next() // weight our codon optimization table using the regions we collected from the genbank file above @@ -130,7 +130,7 @@ func ExampleAddCodonTable() { file2, _ := os.Open(phix174path) defer file2.Close() - parser2, _ := bio.NewGenbankParser(file2) + parser2 := bio.NewGenbankParser(file2) sequence2, _ := parser2.Next() optimizationTable2 := codon.NewTranslationTable(11)