Repository 'fastq_paired_unpaired'
hg clone https://toolshed.g2.bx.psu.edu/repos/peterjc/fastq_paired_unpaired

Changeset 4:09f9f0e29e47 (2015-08-05)
Previous changeset 3:528ba9c896e0 (2013-09-18) Next changeset 5:b38bbcbd458d (2015-08-05)
Commit message:
v0.0.6 use format_source; v0.0.5 error handling & citation
modified:
test-data/sanger-pairs-forward.fastq
test-data/sanger-pairs-interleaved.fastq
test-data/sanger-pairs-mixed.fastq
test-data/sanger-pairs-reverse.fastq
test-data/sanger-pairs-singles.fastq
added:
tools/fastq_paired_unpaired/README.rst
tools/fastq_paired_unpaired/fastq_paired_unpaired.py
tools/fastq_paired_unpaired/fastq_paired_unpaired.xml
removed:
tools/fastq/fastq_paired_unpaired.py
tools/fastq/fastq_paired_unpaired.rst
tools/fastq/fastq_paired_unpaired.xml
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 test-data/sanger-pairs-forward.fastq
--- a/test-data/sanger-pairs-forward.fastq Wed Sep 18 06:13:27 2013 -0400
+++ b/test-data/sanger-pairs-forward.fastq Wed Aug 05 11:06:38 2015 -0400
b
b"@@ -1,288 +1,288 @@\n @WTSI_1055_1a04.p1kpIBF bases 1 to 186\n TTACCCGTCGGCGCCGAAAGAGCCGAAGGCTTTGTGACTGAGGCCGGACACTGTGCTGTTAAGCTGGACATTGCCCGACCTGTCGAGTGCGCCGCTCGCCGAAATTCGTTATCGCGTAAATTTATTTATTTATTTTTATTTTTTTAAATAAAAATGACGACTAATTTGTAAGGGCATAACAACAA\n-+WTSI_1055_1a04.p1kpIBF bases 1 to 186\n++\n !,,,./644,,,-0377<:Q777<BB<<60,+.,+,.4.,))))//15>>550007:66>>==7@71/--0:<CDBB;;49/***/***22,/+)))11===798:3.,,1488?133??BKKMODFB?BDB7447B?:8--.E:F?B77?BKKC<<322B:..<41,46>>B<<::::5116..\n @WTSI_1055_1a05.p1kpIBF bases 1 to 642\n CGTGCCAGTTCTAAACTGGTCGTTCAGCGCCAACCGAAGTGCATACCCTGACGAGCATACACGCAGCTGAAGCGCTCCACAAGCAGCTCTCACCACTAGTCCACGCACCACCCCGCAAGGAGACGGCACGCAGCCACGGGCAAAAGCCGCCTGTTTCACACAACAGCCCGGCTGACCCGACCTTTAGAGCCAATTCTTTTCCCGAAGTTACGAATCTAATTTGCCGACTTCCCTTACCTACATTATTCTATCGACTAGAGGCTGTTCACCTTGGAGACCTGCTGCGGATATCGGTACGATCAGGCAGGAGATTCATATCGCTTCCCTCGCATTTTCAAGGGCCGTGTGGAGCGCACGAGACACCACAGGAACCGCGGTGCTTTACGGGCGCAACATCCCTATCTCAGGCTGAGCCACTTCCAGGCACGCACGCCCTAAACCAGAAAAGAGAACTCTGGCTCGGACTCCACACGACGTCTGCGAGTTCATTTGCGTTACCGCGCGAAACAGTTCTTGCGAACCGTCATTTCCCTGGCCTGGCGTGGGAATGTTAACCCACTTCCCTTTCGGCAACCGGATGGACAAACTGCGCAAGCACAGCAAAGTCTTCATCCGTAGTGTGTGACGGCATTAGCCGGTGC\n-+WTSI_1055_1a05.p1kpIBF bases 1 to 642\n++\n !<>AIHHCCCCCCCCIIIINNNNNTTTYYYYYYYYYYTTTTIIIIHHNIIIFDKFDDINNNTTTNIIIIINTTTTTTTYYYYYYTNNNNNTTYNIIIIIINNYYYYYYYYYYYYYYYYYTNNNNNTTTTTTYYYYYYYYYYYYYYYYYTLLJJJNNTTTTYYYYYYYYYTNNJNJLLTYYYYTONJJJOOYYYYYYYYYYYYYTTTTLOJJJJOOYYYYYYYYYTTTTTTYYYTTTTTTYYYYYYYYYYYYYYYYLJJJJJTYYYTLLLTOTJJJJJKKOYYYYTJNJJJOOTOOIIIILKYYYYTINDDDEEOSYYYYYYYYYYYYYYYYYYYYYYTTLTTTTTTTINIIIOYTKB888>>KMYYIIFIIITKYYYYKKKTOTYYYYYYYYYYYYYYYYYYYKIDDDD>>444>BKLKIIGGDIOYYYYIYYYQIIII@@7507>43--/<<IAAIIII>559==A@IIB>>===KMQM??/33?BIIQQIIFCCFCCFIIICIHA?@F>:>:>>=3...08AIIIMIQQQQCCCCQC:>=:6:>:>>IICA>>>>IFCCC>:>AA>99>;>AACAA>>>::7;7AIII>>>:>>IAI>833688949>@C>:>A;98777=;>99::>4755057132+\n @WTSI_1055_1a09.p1kpIBF bases 1 to 497\n CGAGCTCGGTACCCGGGGATCCCACCGTTTGGAGGGTGAATTCGCGCTGGAAAAAGGTTTTCCATGCAAAAAATGGAACTTCTTCAGCGTCCAAAGCTTTAGTCAGCCAGCAAAGTGTTGGCATTTCATCGAATGGAAATGGTTCAATAAGTAGCGGCAGCCCCAACGTTTTTGAGAAGTTTTGTGGCGTTTTCTCTGAAGGGGTAAAGTCAGGCGAATTGCTGGAAAAGGTGCCATTGGGTGATTTGGAAGTTGTTCTGTTGATGAACCTTTCATGTTCTAGGCGTTTGTGAAGGAATTTGCTGACAATTTGCTCCGAATCCAAAAGGACGTTGAGCGCTGTGATCGGACCATCAAATTCTATTCCAAACGGGACAATTTGGATGCTCTCCAACGGATAATTTGCACTTACATTTATCGTCGGCTGAAGTTGGACATTGAGGACGGTTACGTGCAGGGAATGTGCGATTTGGTCGCTCCTCTTTTGGTGGTGTTT\n-+WTSI_1055_1a09.p1kpIBF bases 1 to 497\n++\n !989>>CCCCCCIIYOICCCCOIYHHA8339>><@75.444N@IDHHHDDNTTYYYYYTTTIIIIINYYYYYTTTTTTTNNNHHHIHHIIIIOQIDKDDDFHIIITYYYYYYYTTTTTYYYYYYTTTTTTYYYYYYYYYYYYTTTTTTTNNNNNNTTTYYYYYYYTTTTYTYYYSSSYYYYYYYYYYYYYTNNNNNTYYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYOOKJJNOTTYYYYYYYTTTTTTTTTTYYYYYYYYTTTTTTYYYYYYTTNNLLLLLLYYMOKKKOYYYYYYYYYYYYYYYYYYTTTTTIIIIIITYYLIIIIIFFDDDFYYYYYYYTTTTTTYYYYYYQQMMMYYTTOKKKIIIIIIIKKNNNDDDNNNNTYTTOOKKKINNIIKQONN?N2::NHTQOKKKKFFFFFFMMIIIICBAAIII>>>>>>AAAB=?FBO>88+,+//><IIII<33/++/0<<4\n @WTSI_1055_1a10.p1kpIBF bases 1 to 512\n AACGACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGATTTCGAGCTCGGTACCCGGGGATCCCACGGCAAGAGACCAATCTGGTTTTGCAATGTAACATGCCAATTAATCATCAGCATTTTTCACATAAGTGATGGGATGACGGTTGGGGGGGGGGGAAATAAATGCATGTCGATCAGTGCATAGAAGCGAAAGAAATCGTAGAAATTTGCAGATGAAAATTTTGCAGTGGTAATTTGACCGTACCGAAAAGGAATGAGAGCTATTTACCTGTGGGAATGGGTGTAAAATGGAAACTAAATTGCGCGAGGGACAGTTTTGATTGGACGATATCTCCAGCGCAAAGGTCACATGACCAGCCGCTTGGAGATTGTTCGGGTAAGCGAGACAAAATACGAACAATCGGAGTTATTTGTACAACAACAACACATTGATTAAGTGATGGGAGAAAAAAAAAAGAAGGAATAATATGGCTTTGTGCATTTTTCTAAAGGTCTTAAAAATCAA\n-+WTSI_1055_1a10.p1kpIBF bases 1 to 512\n++\n !.6<:::60.1441+21441++AAAAEHHHHHHHHHHDBB4+,+<<IDCCCCCCCCCHITIIDDDCOOQH@@//)))059><10''*45EHMOFEDCCCCCDIIINTTIINNNNTTTTTTYYYYTIIIDDDDDHHHHHNOKKKKMOOTINNNNNYYYYQPPPPKKKLOKMMMKIINIIIKIIIIIFKIIIITOYSSYYYYYTTTLOKKKKKYYYYYYKLMMOOMSSYSLOKKFBBBFKKKSSYYYSSMMSSYYYSSSSMSSSSSMYYYYMOKKKKSSYYSKKKKKKSYYYPSSSSMMFIIOJJSYYYSSSMLOLIIIIIIYYYLLTLOIIIFFFKKMYYYYYYYYYTTTTTOOKKIINNNNTYYYYYYOFFFFFFIOYYYYYYYYYYQQKKKKKMMTTTTYYYIIIFFFFFFFDMMQQYYKKKKKKMKKKQQYQOKKKMOYYYA;777;>CIIIH@>>CA=94++,69ICCCC@>>7"..b"TTCCCGCCTCCCCCCCCCCTTTTGACCACCTGCCATTGTTGTCGTTGAGCAACCGAATTTGACTCTTCACCCGTCGACTGCTGGGCGTTCGCTGTTCCGCCATGAATTGGCGCCATTCTCTTTGGCCCTAAAAGTGAACCGGTTACCAACTACTAAAGTGTCCGATTCGCTCCCGAACCTGCCGAGTCTGGACAGAGGCCGGAATTTTTGGGAATGCCATCAATCCCGGAGCATTTTTGAAGCTGCTCTCGACATGAGTACCGGCTCCATTAAAATTATCCCCCTCCAAACCGACCACAATCACACGCCCCCACTCGTCCCTGCGCAACGTCGTCTCTTCGTCGTCCACCTCCGCCTCGTCCGTTCTCGCCCATTCCCTTTTCTCGTC\n-+WTSI_1055_1f20.p1kpIBF bases 1 to 491\n++\n !89><<<536::6001:41--<A?>CCCFCDDDDIIIYQKKGGNNNDCCCCCDDDDDHTNIDDDDTTIDA>9449;>@DHHHHHINNNNHDEEFHHNNNIIIIIIYYTIIIIITYYYYTTTTNNTTTTTIIIIIIFF>>2...@NNNTTTTTYYYYYYYYYYTTTTTNNLTTNYYYTTNNNLLLTTTTTTTTTTTTTTTYYYYTTTTTTYTNNNNILLNNNNNNNTTTTTTTTTTTTTTTYYYTTLTTTTTTTTTTTTTYYYYYYYYYYYYYYYYYTTTTTTYYTTTTTTYYTTNNNNIIKYYKKTTTTYYYYTTTTTTYYYYYYYYYYKKKKKKYYYYYTTTTTTYYYYIIIIBB=>7<<>>>CII??36-1(((()*+48ACIAA?4/)))'/***,++,539<>>>>>BD777777>>>>>>>>91/))01<::8=891,*117444,+,12777.,+44>440/0977-//-10++048:30---+\n @WTSI_1055_1f21.p1kpIBF bases 1 to 456\n TAAACGACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGAATTCGAGCTCGGTACCCGGGGATCCCACCTGGAGCAAACTGGTTGTGTCGTGGTCAGGGTACCGCCATTCCGTGAGATATGGTAGGTAAATGCGACCGGGATTATCCACAACTTTGGACGGCCTAATTCGCATACATGGAGTCGGCTTCACATAGCAATAGGGGCCTACGTTGGGATGATTTTCCAGAAAGTAAATGGCTACGGGAATGTTGTACACAGCTCCCTTAAGCTTTATGTATTAAACAAACAAACAAAGACCATACAGCCCACCTTATACAAGATGGGAATGGTCCCCGAAAAGGAAAGGCAATATTTCGGCATTCCGTCAGGGAAAACAAAATTCACAACGTCGGGCTGAAGATCTATAAAATTGTTGAGCGCAGTGAGTAAATCATCCTTCGTACTATCCTC\n-+WTSI_1055_1f21.p1kpIBF bases 1 to 456\n++\n !.348<<<<<4014:3.08::;<<ECCCIIIHCCBCCCDIYMMKKBNNNHDDDDDDDDDINYOIDDHHTTIDDAA<<<>BDDDDDDDDDIIHHHHIINNNIFDHHHIINIFFIINITTKFFIIIIIIIIIIIIIOOMMQQ8.))*25IHMQQQIIIIIIIIIITNNNNIIKYYYTTTTTTTTTTTTYNNIIIINNTTTTTNNIIITTTTTTTTNNNNTTYYYYYTTTTTTYYYTTTTTNTTTTTYYKKFFKKYYYYYYYYYTTTTTTTTTTTTYTTTTTTYTTTTTTTTLIFDDFJJJFFFIIJLOKFFMSSSYYYYYSSFB;??IIKKKKKKKKKLLKFFDDDDMDDDDB;789;AFNDBB;;BOMMMKKIDDDED@D@@8=@ENEBBBBBD;85//6?@@>77<@DFM?82228>D>>77273BB==97330/.--/8@75-,,/,,,0/53,\n @WTSI_1055_1f22.p1kpIBF bases 1 to 370\n CGACCAATGCTCGGTCCGTCACGTAGAGCAATCCGTTTGAGCGATCCACACGAAAATCTTAAGCGCAAAAAAGATTAATATTAATTATTTAACCATCTAATTATTTTAAAAATTTGCCGAAATAGTATCCGATCAAATCGGTTCTGACAATTTTACATTATCTGTTAGCCGTGCCAAAGTCTCTCTCTCACATTCGGTGGCAGCCGGTTGTCGTTGTCCAAGCACAAATTCTACGCTGCCATTATTGCCTTCGTCTCTGTCGCGTGCCAAAAAGCGTCCGATGGCGGTGCCAGCCGGCATATTGTCCAGTAGCCGAATGTGCGTGTCCTGGCGATCCCACAGGATCAGTGGCCGATTATCATTTTTGTC\n-+WTSI_1055_1f22.p1kpIBF bases 1 to 370\n++\n !89A>887>>:>68>AHHIIDCCCCCDNNYYTTTTTTTYTTTTTTYYYYYYYYYYNNHHHDF=@=>9BQQYYYIIIIIITTTTTTTTTTTTTNTTNNNNNTTTTTTTTTTYYYYYYYYYYTTTTTTYTTYTTTYTNNNNLNNNNNNNTLLYTTTTTTTTYYYYYYYYYYYYYYYYYYYYYTTTTTTTTOOKKKOYYYYYYYYYYYYYYYYYYYYYYTTTTLKKTTTTYYYYYYTNNNNNTYYYYYYYYYYYYYYYYYYYYYYYYYKKMMTTTTTTTYOKIIIGKKYYYYYOIIIOAQ==<:77:<IIIABBBCDO>>988>?FKYYPFBB,,.8>FAA:6698<>>D>>::33:4>>66,,,<<Q93+-\n @WTSI_1055_1g01.p1kpIBF bases 1 to 584\n CAAATCCTACTGGCCGGACAAAAGAAGCGGCCAAACAACGTGCTCTTCACAAGACGATCACCACCAAAAACATTCACACATGCTCAACGAGACATTGCTTGCAGGATGGCAAGTGCAGGAAGCACTTTCCGGTGCATTAGTTTACACTGACTATGTAACCTATTGTTAATTCCCTGTAGAAACCGTTTGAGTACGACACTGTGTACTCTGAAAATGCCTACCCTCGCTACAAGCGCCGCCCACCTCCGCCTTCACTCCAAGAAGCCCAGCAGAGTCCGGAATTATACGGGCGCGAAATGCAATACAAGGACCAGCGTGGCAAACTAATTCGCAAGGACAACTCTCACGTCGTGGCTTTCAGTCCATTTCTGTCAAGCAAATATGTCGCTCAGTAAAATTAATACTTTTTGTGACAAAATTGCTAACTTTTTTGCAGCATTAACGTCGAGTTTGTCGCGGGAGAAGGATGTATAAAGTACTTATGCAAGTACATGATGAAAGGAGCGGACATGGCCTTTGTCCAAGTCACGGATGCCAACACGGGCCAAAGTGCGCTGAACTACGACGAACTGCAGCAAATTCG\n-+WTSI_1055_1g01.p1kpIBF bases 1 to 584\n++\n !333;>HCDHHIIIYIIINTTYYYYTTTTTTYYYYYYNIIIIIININNTONB81+++04HQYTTTTTTTNIIINNTTNTTTTTTTTYYYTTTTTYTTTTTTYYYYYYYYYTTTTTTYYYYYTIIIIIITTTTTTTTTNNNNNNTNNTTTNNNNNNNNNNNNNNNNTTTTTYYTNNJJJJLYYYYYYYYYTTTTTTYTNNNNNNTYTTTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYYTNNNNNNTTYYYTNNNNNTTTNNNNTTYYYYYYYYYYYYYYYYYYYYYYTNNNNNTYYYYYYYYYYYYYYYYYYYYTNNNNNTYYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYTKKKTNNIIINTYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYYYYYYYTTTTTTOIICBBOQQQQQQC;<88:>>>CIFOYYYYYYQQQQQQQQQCCQQQQHCBAA:AAAAIIA>;A>AAAIC>>AAAACA>>>>III>::>AAACCCIIIA:;==<IIIIIQQAA<:::IA==::8::CQIIIIAA>>CI92\n"
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 test-data/sanger-pairs-interleaved.fastq
--- a/test-data/sanger-pairs-interleaved.fastq Wed Sep 18 06:13:27 2013 -0400
+++ b/test-data/sanger-pairs-interleaved.fastq Wed Aug 05 11:06:38 2015 -0400
b
b"@@ -1,576 +1,576 @@\n @WTSI_1055_1a04.p1kpIBF bases 1 to 186\n TTACCCGTCGGCGCCGAAAGAGCCGAAGGCTTTGTGACTGAGGCCGGACACTGTGCTGTTAAGCTGGACATTGCCCGACCTGTCGAGTGCGCCGCTCGCCGAAATTCGTTATCGCGTAAATTTATTTATTTATTTTTATTTTTTTAAATAAAAATGACGACTAATTTGTAAGGGCATAACAACAA\n-+WTSI_1055_1a04.p1kpIBF bases 1 to 186\n++\n !,,,./644,,,-0377<:Q777<BB<<60,+.,+,.4.,))))//15>>550007:66>>==7@71/--0:<CDBB;;49/***/***22,/+)))11===798:3.,,1488?133??BKKMODFB?BDB7447B?:8--.E:F?B77?BKKC<<322B:..<41,46>>B<<::::5116..\n @WTSI_1055_1a04.q1kpIBR bases 1 to 359\n TGATTACGCCAAGCTATTTAGGTGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCAGGGTACCCGACGTCCGATATCGCGAAAAATGATGTATCTAGATTTGTCAGGAAACGTCCCCGAGTCTGTTCGACAAACAAACGTTATTCCGAACTCCCAACAACAGTATTTGATTGTGTAAAAATCTCTTGGCCTGATTACTATACTTTAGACATTTTTAGTGCCTGTATTGGAGGTATTTTAGGAACTTTTGGAACGAGCTTTTATCGATTTAGGGAACTAAAAAACCGTTCCATATTCATTAGATGCTATTATTTAAAATCCGAGTCTGATTTGCGAT\n-+WTSI_1055_1a04.q1kpIBR bases 1 to 359\n++\n !41>;D>AA>;;=;;>>AA@@CDDAA>>>ADINIIHHDD>::79:>>FIICCCHHHHCCCCCCCCCHHHHIEA>9..''))**,,++''+)**.,,,-,00..0B+..33010701+++-1B1.,??KMOYYQQQQ<<61,))01<:CAIIIIIYYYYTYTTTTYYYYYTTTTNNKKKKYYYYYYYYYYYYPMMOKTTTTYTTTTTYNINNINTNTIIIIIIIIINNYYYYYYYTTOLKKKIIIINNNOKKKKKFFKKYYYYYYYYYYSSMMMQMYYYYYTTTTLLPIDDDDDDFFFFFFMMKKLNIDFFKQQMMMMMMMMHHFF>A>>:779=5<488>>7745/00::300+++0-\n @WTSI_1055_1a05.p1kpIBF bases 1 to 642\n CGTGCCAGTTCTAAACTGGTCGTTCAGCGCCAACCGAAGTGCATACCCTGACGAGCATACACGCAGCTGAAGCGCTCCACAAGCAGCTCTCACCACTAGTCCACGCACCACCCCGCAAGGAGACGGCACGCAGCCACGGGCAAAAGCCGCCTGTTTCACACAACAGCCCGGCTGACCCGACCTTTAGAGCCAATTCTTTTCCCGAAGTTACGAATCTAATTTGCCGACTTCCCTTACCTACATTATTCTATCGACTAGAGGCTGTTCACCTTGGAGACCTGCTGCGGATATCGGTACGATCAGGCAGGAGATTCATATCGCTTCCCTCGCATTTTCAAGGGCCGTGTGGAGCGCACGAGACACCACAGGAACCGCGGTGCTTTACGGGCGCAACATCCCTATCTCAGGCTGAGCCACTTCCAGGCACGCACGCCCTAAACCAGAAAAGAGAACTCTGGCTCGGACTCCACACGACGTCTGCGAGTTCATTTGCGTTACCGCGCGAAACAGTTCTTGCGAACCGTCATTTCCCTGGCCTGGCGTGGGAATGTTAACCCACTTCCCTTTCGGCAACCGGATGGACAAACTGCGCAAGCACAGCAAAGTCTTCATCCGTAGTGTGTGACGGCATTAGCCGGTGC\n-+WTSI_1055_1a05.p1kpIBF bases 1 to 642\n++\n !<>AIHHCCCCCCCCIIIINNNNNTTTYYYYYYYYYYTTTTIIIIHHNIIIFDKFDDINNNTTTNIIIIINTTTTTTTYYYYYYTNNNNNTTYNIIIIIINNYYYYYYYYYYYYYYYYYTNNNNNTTTTTTYYYYYYYYYYYYYYYYYTLLJJJNNTTTTYYYYYYYYYTNNJNJLLTYYYYTONJJJOOYYYYYYYYYYYYYTTTTLOJJJJOOYYYYYYYYYTTTTTTYYYTTTTTTYYYYYYYYYYYYYYYYLJJJJJTYYYTLLLTOTJJJJJKKOYYYYTJNJJJOOTOOIIIILKYYYYTINDDDEEOSYYYYYYYYYYYYYYYYYYYYYYTTLTTTTTTTINIIIOYTKB888>>KMYYIIFIIITKYYYYKKKTOTYYYYYYYYYYYYYYYYYYYKIDDDD>>444>BKLKIIGGDIOYYYYIYYYQIIII@@7507>43--/<<IAAIIII>559==A@IIB>>===KMQM??/33?BIIQQIIFCCFCCFIIICIHA?@F>:>:>>=3...08AIIIMIQQQQCCCCQC:>=:6:>:>>IICA>>>>IFCCC>:>AA>99>;>AACAA>>>::7;7AIII>>>:>>IAI>833688949>@C>:>A;98777=;>99::>4755057132+\n @WTSI_1055_1a05.q1kpIBR bases 1 to 219\n CTGTGTACAAAGGGCAGGGACGTATTCAGAGCGAGTTGATGACTCGCCCCTACAAGGAATTCCTCGTTCACGGACAATAATTGCAATGTCCGATCCCAATCACGGCAAATTTTCACCGGTTTACCAACCCCTTTCGGGGAAGGACAAGCACGCTGATTTTGCCAGTGTAGCGCGCGTGCAGCCCCGGACATCTAAGGGCATCACAGACCTGTTATTGC\n-+WTSI_1055_1a05.q1kpIBR bases 1 to 219\n++\n !>>>>>DDIFKOOTTTNDDDHHFTTOOKKKYYTTNNNIYYNNNNNNYTIIIIITIFNIDDKKKNNIIIFIITTTTNNNNNINIINGIKMYYYYYOTTTTTYKKLMMMYYYQOOAAAAIQ;7:<<<A>=AAQA>><<<>7::77::7>>IIIAAAA>:>A=>>5:88::=BIIIIIIIII>>7;9733999=8370---128999::14.,0,,0442+\n @WTSI_1055_1a09.p1kpIBF bases 1 to 497\n CGAGCTCGGTACCCGGGGATCCCACCGTTTGGAGGGTGAATTCGCGCTGGAAAAAGGTTTTCCATGCAAAAAATGGAACTTCTTCAGCGTCCAAAGCTTTAGTCAGCCAGCAAAGTGTTGGCATTTCATCGAATGGAAATGGTTCAATAAGTAGCGGCAGCCCCAACGTTTTTGAGAAGTTTTGTGGCGTTTTCTCTGAAGGGGTAAAGTCAGGCGAATTGCTGGAAAAGGTGCCATTGGGTGATTTGGAAGTTGTTCTGTTGATGAACCTTTCATGTTCTAGGCGTTTGTGAAGGAATTTGCTGACAATTTGCTCCGAATCCAAAAGGACGTTGAGCGCTGTGATCGGACCATCAAATTCTATTCCAAACGGGACAATTTGGATGCTCTCCAACGGATAATTTGCACTTACATTTATCGTCGGCTGAAGTTGGACATTGAGGACGGTTACGTGCAGGGAATGTGCGATTTGGTCGCTCCTCTTTTGGTGGTGTTT\n-+WTSI_1055_1a09.p1kpIBF bases 1 to 497\n++\n !989>>CCCCCCIIYOICCCCOIYHHA8339>><@75.444N@IDHHHDDNTTYYYYYTTTIIIIINYYYYYTTTTTTTNNNHHHIHHIIIIOQIDKDDDFHIIITYYYYYYYTTTTTYYYYYYTTTTTTYYYYYYYYYYYYTTTTTTTNNNNNNTTTYYYYYYYTTTTYTYYYSSSYYYYYYYYYYYYYTNNNNNTYYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"..b'KMQMMPPYYYTTTTTTYTTTTNNNNNNKFCCQQYYMMFF<<79?A8335:<:6-2+++\n @WTSI_1055_1f22.p1kpIBF bases 1 to 370\n CGACCAATGCTCGGTCCGTCACGTAGAGCAATCCGTTTGAGCGATCCACACGAAAATCTTAAGCGCAAAAAAGATTAATATTAATTATTTAACCATCTAATTATTTTAAAAATTTGCCGAAATAGTATCCGATCAAATCGGTTCTGACAATTTTACATTATCTGTTAGCCGTGCCAAAGTCTCTCTCTCACATTCGGTGGCAGCCGGTTGTCGTTGTCCAAGCACAAATTCTACGCTGCCATTATTGCCTTCGTCTCTGTCGCGTGCCAAAAAGCGTCCGATGGCGGTGCCAGCCGGCATATTGTCCAGTAGCCGAATGTGCGTGTCCTGGCGATCCCACAGGATCAGTGGCCGATTATCATTTTTGTC\n-+WTSI_1055_1f22.p1kpIBF bases 1 to 370\n++\n !89A>887>>:>68>AHHIIDCCCCCDNNYYTTTTTTTYTTTTTTYYYYYYYYYYNNHHHDF=@=>9BQQYYYIIIIIITTTTTTTTTTTTTNTTNNNNNTTTTTTTTTTYYYYYYYYYYTTTTTTYTTYTTTYTNNNNLNNNNNNNTLLYTTTTTTTTYYYYYYYYYYYYYYYYYYYYYTTTTTTTTOOKKKOYYYYYYYYYYYYYYYYYYYYYYTTTTLKKTTTTYYYYYYTNNNNNTYYYYYYYYYYYYYYYYYYYYYYYYYKKMMTTTTTTTYOKIIIGKKYYYYYOIIIOAQ==<:77:<IIIABBBCDO>>988>?FKYYPFBB,,.8>FAA:6698<>>D>>::33:4>>66,,,<<Q93+-\n @WTSI_1055_1f22.q1kpIBR bases 1 to 496\n CTATTTAGGTGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCGCATGAGGAATCGGAAGAGAATAATAACAAGAAAATGACAGATAAAAAGAGTGGAATTGAAGTAGAAGAGAAAAAGGGTAGAGTTGTAACAGAAGAGAAGAAAGTTTTAAATGAAGCGGAAGAAAAGAAGGACGAAGATCAGACGGAAGAGAAGAAAGAAAATGAAAAAGAAGTTAAAAGAAATAATGCGGAAGAGAAGAAGAAATTGGATGAAACTGAAGAGAAGCCGGATGAGGAAAGGGGAGAAAAGAAGAGCAGAGCTGAAGTGGAATTGGAAGAAACAACGAAGAAGAATAATGGACTTAAATATGTTTGGAAGCATCAAAATGAATCGGATGTAAAGAAGTACGAAAACATAATGGAAAGTATGGACGAAAAGAAAATGGAAGAGAAGGAGCTCGTGGACAATTACAGTAATATTTTGTTTGGAA\n-+WTSI_1055_1f22.q1kpIBR bases 1 to 496\n++\n !399>>>>CHHHHBDDDEIIINNTIIFDA>AAAADDDDDDDDDHHHDDHDIIIIIINNNOOBB+++89DFIKKFFINNTTYYYTTTLLLKKKOOTTOLYLLOLTTTTTTTYYYYYYYYYYYYYTIIIDDDFFKOTYYYYYYYYYYYYYTTTLLJTTTYYYYYYYYYYYYTTTNJJLTTLLTTTTYYYYYYYYYTNNNNNTLLMKNNNNNNTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTLLKKKYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTNNNNJJLNNNNNNNNNTTTTTTNNNNNTYTNNNLNNNTTTTTNNLLTTTTTTTTYYYYYYYYYTTNLLLLLLNNNTLYYYYYYYYYYYYYYYTTTTTTYYYYYYYTNNNNNTTTNNNILOOTINNNNNTTTTMYMMMYIIINFFIIIGINIIIIKLLTOKKKMGGDFFFGFFFFFFFFFNNNIN?CCMQ<<3<<D<<+,.66>>F=;>:5.\n @WTSI_1055_1g01.p1kpIBF bases 1 to 584\n CAAATCCTACTGGCCGGACAAAAGAAGCGGCCAAACAACGTGCTCTTCACAAGACGATCACCACCAAAAACATTCACACATGCTCAACGAGACATTGCTTGCAGGATGGCAAGTGCAGGAAGCACTTTCCGGTGCATTAGTTTACACTGACTATGTAACCTATTGTTAATTCCCTGTAGAAACCGTTTGAGTACGACACTGTGTACTCTGAAAATGCCTACCCTCGCTACAAGCGCCGCCCACCTCCGCCTTCACTCCAAGAAGCCCAGCAGAGTCCGGAATTATACGGGCGCGAAATGCAATACAAGGACCAGCGTGGCAAACTAATTCGCAAGGACAACTCTCACGTCGTGGCTTTCAGTCCATTTCTGTCAAGCAAATATGTCGCTCAGTAAAATTAATACTTTTTGTGACAAAATTGCTAACTTTTTTGCAGCATTAACGTCGAGTTTGTCGCGGGAGAAGGATGTATAAAGTACTTATGCAAGTACATGATGAAAGGAGCGGACATGGCCTTTGTCCAAGTCACGGATGCCAACACGGGCCAAAGTGCGCTGAACTACGACGAACTGCAGCAAATTCG\n-+WTSI_1055_1g01.p1kpIBF bases 1 to 584\n++\n !333;>HCDHHIIIYIIINTTYYYYTTTTTTYYYYYYNIIIIIININNTONB81+++04HQYTTTTTTTNIIINNTTNTTTTTTTTYYYTTTTTYTTTTTTYYYYYYYYYTTTTTTYYYYYTIIIIIITTTTTTTTTNNNNNNTNNTTTNNNNNNNNNNNNNNNNTTTTTYYTNNJJJJLYYYYYYYYYTTTTTTYTNNNNNNTYTTTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYYTNNNNNNTTYYYTNNNNNTTTNNNNTTYYYYYYYYYYYYYYYYYYYYYYTNNNNNTYYYYYYYYYYYYYYYYYYYYTNNNNNTYYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYTKKKTNNIIINTYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYYYYYYYTTTTTTOIICBBOQQQQQQC;<88:>>>CIFOYYYYYYQQQQQQQQQCCQQQQHCBAA:AAAAIIA>;A>AAAIC>>AAAACA>>>>III>::>AAACCCIIIA:;==<IIIIIQQAA<:::IA==::8::CQIIIIAA>>CI92\n @WTSI_1055_1g01.q1kpIBR bases 1 to 350\n TATGACTGATTACGCCAGCTATTTAGGTGAGACTATAGAATACTCACGCTAGCATGCCTGCAGGTCGACTCTAGAGGATCCCAGGATTGCTTTTTGGCTCGCATACTGCAGCCTGGGGAAGTAGTTGACGTTTTGAAGAATTGAGGGAAGTTGACGTGAAACGGCAACGCGGAGCAGGTCGGAAATCGCTTCGCTATCAGAGCCAAGCAACGAAATGGCGATTGCGCTTAAAAAACATTGGTTTGCTTAAAACATCAATGGTCTTCACCGGTAGAAGCAGTCGCCTAGACCAACGTTGTTGACGCAACGAATGGTGTTTTGCTGCTGGGCAGACGTGGGCGGAGTGCTA\n-+WTSI_1055_1g01.q1kpIBR bases 1 to 350\n++\n !..+---77CBI>7---77>>>DACCCHHHIDDDDCCIHHAA84)))%%%))+,32>>HHHHCCCCCCCCCHIIIIINN<B.,,,+++2.22OBNDHHHHHIIDDDDIIYTNNNNNTTTIIIIIITTTTKKYYYYYYYYYYQOB84-,,.<>FIIIIINNNIIIKKMSSSIIIIIIIIIIIILTOOIIIIIFLLLLLLYYSKKLKKKPMSSYSYSSMSS?KKKKFFFIIFKKKKKKKKSMMMSKKIDDDKKKFDDFFFBBDD=DDMMMKDDDDDDKKFFCCKKKKKFFFKKKKFMMMMMKKKKKKKK734:4B<??B@DC=<871<1314/--,,+++++.-5:97--,\n'
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 test-data/sanger-pairs-mixed.fastq
--- a/test-data/sanger-pairs-mixed.fastq Wed Sep 18 06:13:27 2013 -0400
+++ b/test-data/sanger-pairs-mixed.fastq Wed Aug 05 11:06:38 2015 -0400
b
b"@@ -1,800 +1,800 @@\n @WTSI_1055_1a03.p1kpIBF bases 1 to 312\n TTGTTGAACAGCAAAAAGGTCAAGAATATGGATGTTCTCGCCATGATTTTTGTGCCATAGGCGCGCATTCACAAGGTCCATCAGTCGNTCAGCCTGCCGCAACACCACCACCAGCCGCAGCAACAACAACAGCACCAGCAGCAGCTGATCCAATCGCATGTGCCACAGAATAACACCCAAAATCAATTAGCGACGGCCGCCCTCCAGCCGGTTCAGCAGCAGAAACAGCACGAAAAATGGGATCCGATCAAAGAATTTGGGCTGCAAAAGGACGAAATGGCGTTGAAGTCACCGCCCAGCAATGTTTGTGT\n-+WTSI_1055_1a03.p1kpIBF bases 1 to 312\n++\n !96CBHOOTTTYYYQMK???OOTYTTTNNNYYYYNIIIFFIIIIIIIYOOOMAA62.((((*,9@MIIIIO?A3007OOOMMII::%%%::AEHIIIQYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTOOKKKKKYMMYYYKIINNNTYYNIIIINYYYYTOLKKKOOKKKKOLTTYYYYSSSSYYYYSSSSSSMMSOOTLLLONIDDDNOTTYQQMMMMPBB9>BDOOTTQMMMMQMMMQQE:666QQYYPMMDDDADDM@B<FDBBDKKKKKKKKIGKINIFFFKDGGIDB?2/\n @WTSI_1055_1a04.p1kpIBF bases 1 to 186\n TTACCCGTCGGCGCCGAAAGAGCCGAAGGCTTTGTGACTGAGGCCGGACACTGTGCTGTTAAGCTGGACATTGCCCGACCTGTCGAGTGCGCCGCTCGCCGAAATTCGTTATCGCGTAAATTTATTTATTTATTTTTATTTTTTTAAATAAAAATGACGACTAATTTGTAAGGGCATAACAACAA\n-+WTSI_1055_1a04.p1kpIBF bases 1 to 186\n++\n !,,,./644,,,-0377<:Q777<BB<<60,+.,+,.4.,))))//15>>550007:66>>==7@71/--0:<CDBB;;49/***/***22,/+)))11===798:3.,,1488?133??BKKMODFB?BDB7447B?:8--.E:F?B77?BKKC<<322B:..<41,46>>B<<::::5116..\n @WTSI_1055_1a04.q1kpIBR bases 1 to 359\n TGATTACGCCAAGCTATTTAGGTGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCAGGGTACCCGACGTCCGATATCGCGAAAAATGATGTATCTAGATTTGTCAGGAAACGTCCCCGAGTCTGTTCGACAAACAAACGTTATTCCGAACTCCCAACAACAGTATTTGATTGTGTAAAAATCTCTTGGCCTGATTACTATACTTTAGACATTTTTAGTGCCTGTATTGGAGGTATTTTAGGAACTTTTGGAACGAGCTTTTATCGATTTAGGGAACTAAAAAACCGTTCCATATTCATTAGATGCTATTATTTAAAATCCGAGTCTGATTTGCGAT\n-+WTSI_1055_1a04.q1kpIBR bases 1 to 359\n++\n !41>;D>AA>;;=;;>>AA@@CDDAA>>>ADINIIHHDD>::79:>>FIICCCHHHHCCCCCCCCCHHHHIEA>9..''))**,,++''+)**.,,,-,00..0B+..33010701+++-1B1.,??KMOYYQQQQ<<61,))01<:CAIIIIIYYYYTYTTTTYYYYYTTTTNNKKKKYYYYYYYYYYYYPMMOKTTTTYTTTTTYNINNINTNTIIIIIIIIINNYYYYYYYTTOLKKKIIIINNNOKKKKKFFKKYYYYYYYYYYSSMMMQMYYYYYTTTTLLPIDDDDDDFFFFFFMMKKLNIDFFKQQMMMMMMMMHHFF>A>>:779=5<488>>7745/00::300+++0-\n @WTSI_1055_1a05.p1kpIBF bases 1 to 642\n CGTGCCAGTTCTAAACTGGTCGTTCAGCGCCAACCGAAGTGCATACCCTGACGAGCATACACGCAGCTGAAGCGCTCCACAAGCAGCTCTCACCACTAGTCCACGCACCACCCCGCAAGGAGACGGCACGCAGCCACGGGCAAAAGCCGCCTGTTTCACACAACAGCCCGGCTGACCCGACCTTTAGAGCCAATTCTTTTCCCGAAGTTACGAATCTAATTTGCCGACTTCCCTTACCTACATTATTCTATCGACTAGAGGCTGTTCACCTTGGAGACCTGCTGCGGATATCGGTACGATCAGGCAGGAGATTCATATCGCTTCCCTCGCATTTTCAAGGGCCGTGTGGAGCGCACGAGACACCACAGGAACCGCGGTGCTTTACGGGCGCAACATCCCTATCTCAGGCTGAGCCACTTCCAGGCACGCACGCCCTAAACCAGAAAAGAGAACTCTGGCTCGGACTCCACACGACGTCTGCGAGTTCATTTGCGTTACCGCGCGAAACAGTTCTTGCGAACCGTCATTTCCCTGGCCTGGCGTGGGAATGTTAACCCACTTCCCTTTCGGCAACCGGATGGACAAACTGCGCAAGCACAGCAAAGTCTTCATCCGTAGTGTGTGACGGCATTAGCCGGTGC\n-+WTSI_1055_1a05.p1kpIBF bases 1 to 642\n++\n !<>AIHHCCCCCCCCIIIINNNNNTTTYYYYYYYYYYTTTTIIIIHHNIIIFDKFDDINNNTTTNIIIIINTTTTTTTYYYYYYTNNNNNTTYNIIIIIINNYYYYYYYYYYYYYYYYYTNNNNNTTTTTTYYYYYYYYYYYYYYYYYTLLJJJNNTTTTYYYYYYYYYTNNJNJLLTYYYYTONJJJOOYYYYYYYYYYYYYTTTTLOJJJJOOYYYYYYYYYTTTTTTYYYTTTTTTYYYYYYYYYYYYYYYYLJJJJJTYYYTLLLTOTJJJJJKKOYYYYTJNJJJOOTOOIIIILKYYYYTINDDDEEOSYYYYYYYYYYYYYYYYYYYYYYTTLTTTTTTTINIIIOYTKB888>>KMYYIIFIIITKYYYYKKKTOTYYYYYYYYYYYYYYYYYYYKIDDDD>>444>BKLKIIGGDIOYYYYIYYYQIIII@@7507>43--/<<IAAIIII>559==A@IIB>>===KMQM??/33?BIIQQIIFCCFCCFIIICIHA?@F>:>:>>=3...08AIIIMIQQQQCCCCQC:>=:6:>:>>IICA>>>>IFCCC>:>AA>99>;>AACAA>>>::7;7AIII>>>:>>IAI>833688949>@C>:>A;98777=;>99::>4755057132+\n @WTSI_1055_1a05.q1kpIBR bases 1 to 219\n CTGTGTACAAAGGGCAGGGACGTATTCAGAGCGAGTTGATGACTCGCCCCTACAAGGAATTCCTCGTTCACGGACAATAATTGCAATGTCCGATCCCAATCACGGCAAATTTTCACCGGTTTACCAACCCCTTTCGGGGAAGGACAAGCACGCTGATTTTGCCAGTGTAGCGCGCGTGCAGCCCCGGACATCTAAGGGCATCACAGACCTGTTATTGC\n-+WTSI_1055_1a05.q1kpIBR bases 1 to 219\n++\n !>>>>>DDIFKOOTTTNDDDHHFTTOOKKKYYTTNNNIYYNNNNNNYTIIIIITIFNIDDKKKNNIIIFIITTTTNNNNNINIINGIKMYYYYYOTTTTTYKKLMMMYYYQOOAAAAIQ;7:<<<A>=AAQA>><<<>7::77::7>>IIIAAAA>:>A=>>5:88::=BIIIIIIIII>>7;9733999=8370---128999::14.,0,,0442+\n @WTSI_1055_1a07.p1kpIBF bases 1 to 574\n AACGACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGATTTCGAGCTCGGTACCCGGGGATCCCACCGGTACG"..b'AAAACTGATCAGGCGAACTGAAAGGGTGTAAAAAAGATAAAAGAAATTGTAAACGCAGCACATTGTCAAGCAAAGCAACCCAAAAAAATCGATTTTGAGTATAGTCAAAAAGGGTTACCCGTCAATGATGATCTGTTGCTGTTTGTTTGATACTCCTCCTTTCAATTTGCGATTGTTGTTGTTGCAATTGGCACGCGAA\n-+WTSI_1055_1f24.q1kpIBR bases 86 to 670\n++\n !88BHIQQQYYYITTTTIIINNIIIIKKKYYYYIIIIFFYOMTTTYYIIIIAA99//.1<BKKOOTYYYYTTTTNNTTINNNTTYTTNNNIIITTYTTTTTTTTYYYYYIIIIIOYYYYYYYYYYYTTTTTTNNNNTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTTOTLLYYYYYYYYYTTTTTTTTTTTTTTTTYYYYYYYYYYTTTTTTYYTNNNNNTYYYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYOKKKOOYYYYKK???KQMMMPPPPQMMKKKMPYYYKKKKKKKKKKMMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYQQQQQI51)%%)4<QQQQQQYYYYTTKTTTTTTTYYYYYYYNNNNNNYYYKKKKGGNNNNYYYYYYYYYYYQMMMMQOKKGIIKKKKYQYYYYYYYYTOOLKKIIIIIOYQQQQQQBA>:;AABAACCCIIIOIIBBIIIII:77<><AAIIIOQQIE=>>>CA>AAABBIIIIIII:00882389667>BAAA?A>77:<844>A?;4++0966.+4492000--4922./..++\n @WTSI_1055_1g01.p1kpIBF bases 1 to 584\n CAAATCCTACTGGCCGGACAAAAGAAGCGGCCAAACAACGTGCTCTTCACAAGACGATCACCACCAAAAACATTCACACATGCTCAACGAGACATTGCTTGCAGGATGGCAAGTGCAGGAAGCACTTTCCGGTGCATTAGTTTACACTGACTATGTAACCTATTGTTAATTCCCTGTAGAAACCGTTTGAGTACGACACTGTGTACTCTGAAAATGCCTACCCTCGCTACAAGCGCCGCCCACCTCCGCCTTCACTCCAAGAAGCCCAGCAGAGTCCGGAATTATACGGGCGCGAAATGCAATACAAGGACCAGCGTGGCAAACTAATTCGCAAGGACAACTCTCACGTCGTGGCTTTCAGTCCATTTCTGTCAAGCAAATATGTCGCTCAGTAAAATTAATACTTTTTGTGACAAAATTGCTAACTTTTTTGCAGCATTAACGTCGAGTTTGTCGCGGGAGAAGGATGTATAAAGTACTTATGCAAGTACATGATGAAAGGAGCGGACATGGCCTTTGTCCAAGTCACGGATGCCAACACGGGCCAAAGTGCGCTGAACTACGACGAACTGCAGCAAATTCG\n-+WTSI_1055_1g01.p1kpIBF bases 1 to 584\n++\n !333;>HCDHHIIIYIIINTTYYYYTTTTTTYYYYYYNIIIIIININNTONB81+++04HQYTTTTTTTNIIINNTTNTTTTTTTTYYYTTTTTYTTTTTTYYYYYYYYYTTTTTTYYYYYTIIIIIITTTTTTTTTNNNNNNTNNTTTNNNNNNNNNNNNNNNNTTTTTYYTNNJJJJLYYYYYYYYYTTTTTTYTNNNNNNTYTTTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYYTNNNNNNTTYYYTNNNNNTTTNNNNTTYYYYYYYYYYYYYYYYYYYYYYTNNNNNTYYYYYYYYYYYYYYYYYYYYTNNNNNTYYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYTKKKTNNIIINTYYYYYYYYYYYYYYTTTTTTYYYYYYYYYYYYYYYYYTTTTTTOIICBBOQQQQQQC;<88:>>>CIFOYYYYYYQQQQQQQQQCCQQQQHCBAA:AAAAIIA>;A>AAAIC>>AAAACA>>>>III>::>AAACCCIIIA:;==<IIIIIQQAA<:::IA==::8::CQIIIIAA>>CI92\n @WTSI_1055_1g01.q1kpIBR bases 1 to 350\n TATGACTGATTACGCCAGCTATTTAGGTGAGACTATAGAATACTCACGCTAGCATGCCTGCAGGTCGACTCTAGAGGATCCCAGGATTGCTTTTTGGCTCGCATACTGCAGCCTGGGGAAGTAGTTGACGTTTTGAAGAATTGAGGGAAGTTGACGTGAAACGGCAACGCGGAGCAGGTCGGAAATCGCTTCGCTATCAGAGCCAAGCAACGAAATGGCGATTGCGCTTAAAAAACATTGGTTTGCTTAAAACATCAATGGTCTTCACCGGTAGAAGCAGTCGCCTAGACCAACGTTGTTGACGCAACGAATGGTGTTTTGCTGCTGGGCAGACGTGGGCGGAGTGCTA\n-+WTSI_1055_1g01.q1kpIBR bases 1 to 350\n++\n !..+---77CBI>7---77>>>DACCCHHHIDDDDCCIHHAA84)))%%%))+,32>>HHHHCCCCCCCCCHIIIIINN<B.,,,+++2.22OBNDHHHHHIIDDDDIIYTNNNNNTTTIIIIIITTTTKKYYYYYYYYYYQOB84-,,.<>FIIIIINNNIIIKKMSSSIIIIIIIIIIIILTOOIIIIIFLLLLLLYYSKKLKKKPMSSYSYSSMSS?KKKKFFFIIFKKKKKKKKSMMMSKKIDDDKKKFDDFFFBBDD=DDMMMKDDDDDDKKFFCCKKKKKFFFKKKKFMMMMMKKKKKKKK734:4B<??B@DC=<871<1314/--,,+++++.-5:97--,\n @WTSI_1055_1g02.p1kpIBF bases 1 to 523\n AACGACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGAATTCGAGCTCGGTACCCGGGGATCCCACGACAAATTCACGGAAGCGTCTCGCACTTTGTGCCGAGGACTGCTGCACAAGGAGCCCACTCTGAGGTTGGGCTGTCGCCGGGTCGGCCGGCCTGAGGACGGCGCGGAAGAGCTGAAGGCACACGCGTTCTTCACACAACCGGACCAGAAGACAGGCAGGGAGCCAATTCCGTGGAGGAAGATGGAGGCCGGCAAGGTGGACGACATTCCCTTCTGAACTGCTAGAGAGGACTTGTAGGAATTCCGTCCTTCAGCTGACACCTCCATTTTGTCCGGACCCCCATTCGGTGTATGCCAAAGATGTGCTGGACATCGAGCAGTTCAGCACTGTCAAGGGAGTTCGTCCGCTTCCACCAAACTTTTCCTACCTGCTGAACCATTAGGTTCGACTTGACGCGACTGACAACTCCTTCTACGACAAGTTCAACAGCGGGTCCGTGTCCATACCTTGGC\n-+WTSI_1055_1g02.p1kpIBF bases 1 to 523\n++\n !08<=AAA:28::87;<::>ACECEIIIIIIIIIIINIKBB>C>QQYNHHHHDDHDHIITIDCCCCOONNNNGDFDDINMINNNNNIHHHHHIINNIIINNNNTYTIIIIDDIIIIYYYTTTTTTYIIIDDDGGITYYSKKKIDNNNNTTNNNNNTYYYTLLLLLLLLLLLYYTYJJJJJNTTTTTTTTTTYYOLLLTTOOOTTTTTTTYNNNNNJJJLLLLLLYYYYYYYYYYSSYYONNNNNNLLTTTTTTTYYYYYYYYYYYYYYYYTMMKKKYYYYYYYYYYYYYTTTTTOOLIILLLLTTLNLLLLLLYYYYYYTTTLLLTTTTTTTYYYYYYTTTTTTTTTTTYYYYYYYYYYYYYYYYYNIIIIITYYTTTLTTNIIFFFMYYYYYYYOOLKKOOTIFIFIINTTTTYYYYYYYYYYYYYYYYYYYYYYTNNNNNNNNTYYYYYYYYYYTTTNNNNNNNNTNIIFFFKYYOOOOOIIIA<:77:<<>>>>IOOIHHHDDEIQMMII<924595/4\n'
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 test-data/sanger-pairs-reverse.fastq
--- a/test-data/sanger-pairs-reverse.fastq Wed Sep 18 06:13:27 2013 -0400
+++ b/test-data/sanger-pairs-reverse.fastq Wed Aug 05 11:06:38 2015 -0400
b
b"@@ -1,288 +1,288 @@\n @WTSI_1055_1a04.q1kpIBR bases 1 to 359\n TGATTACGCCAAGCTATTTAGGTGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCAGGGTACCCGACGTCCGATATCGCGAAAAATGATGTATCTAGATTTGTCAGGAAACGTCCCCGAGTCTGTTCGACAAACAAACGTTATTCCGAACTCCCAACAACAGTATTTGATTGTGTAAAAATCTCTTGGCCTGATTACTATACTTTAGACATTTTTAGTGCCTGTATTGGAGGTATTTTAGGAACTTTTGGAACGAGCTTTTATCGATTTAGGGAACTAAAAAACCGTTCCATATTCATTAGATGCTATTATTTAAAATCCGAGTCTGATTTGCGAT\n-+WTSI_1055_1a04.q1kpIBR bases 1 to 359\n++\n !41>;D>AA>;;=;;>>AA@@CDDAA>>>ADINIIHHDD>::79:>>FIICCCHHHHCCCCCCCCCHHHHIEA>9..''))**,,++''+)**.,,,-,00..0B+..33010701+++-1B1.,??KMOYYQQQQ<<61,))01<:CAIIIIIYYYYTYTTTTYYYYYTTTTNNKKKKYYYYYYYYYYYYPMMOKTTTTYTTTTTYNINNINTNTIIIIIIIIINNYYYYYYYTTOLKKKIIIINNNOKKKKKFFKKYYYYYYYYYYSSMMMQMYYYYYTTTTLLPIDDDDDDFFFFFFMMKKLNIDFFKQQMMMMMMMMHHFF>A>>:779=5<488>>7745/00::300+++0-\n @WTSI_1055_1a05.q1kpIBR bases 1 to 219\n CTGTGTACAAAGGGCAGGGACGTATTCAGAGCGAGTTGATGACTCGCCCCTACAAGGAATTCCTCGTTCACGGACAATAATTGCAATGTCCGATCCCAATCACGGCAAATTTTCACCGGTTTACCAACCCCTTTCGGGGAAGGACAAGCACGCTGATTTTGCCAGTGTAGCGCGCGTGCAGCCCCGGACATCTAAGGGCATCACAGACCTGTTATTGC\n-+WTSI_1055_1a05.q1kpIBR bases 1 to 219\n++\n !>>>>>DDIFKOOTTTNDDDHHFTTOOKKKYYTTNNNIYYNNNNNNYTIIIIITIFNIDDKKKNNIIIFIITTTTNNNNNINIINGIKMYYYYYOTTTTTYKKLMMMYYYQOOAAAAIQ;7:<<<A>=AAQA>><<<>7::77::7>>IIIAAAA>:>A=>>5:88::=BIIIIIIIII>>7;9733999=8370---128999::14.,0,,0442+\n @WTSI_1055_1a09.q1kpIBR bases 1 to 558\n TGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCACCCAAAAAAAGTTTAAAAATTCGGAATGCGCTGTTTTCTTGGGTAAATATAAAGTAGGGTCCGGATTTATATTGTCTAAAACGCGAATTGACTTAAAAGATTGACCAAAAAAAGCCTAAAGTCCAAACTCTAATCAATAGAATAAAATGTTGGCAGAAATTTACGTCATGCAAAGGGTGTGCCAAATGGTTGATTTTGTGATTTTGATTTAATACAGAGGGTGCGAGATCAACTGAAATTTTGAGTAAATGCCGAGAGACTTTTTGTTTTTCAATTGTAATTTGAAGTTGGCCCTCTCTCCCCCCGACCGACAGTGGTACTCGGATAATCAGCCGAACAAACAAATATTCGTAGTGTTAAACAGAAGGGAAAGATGTAAGGTAACATTGGATTAGTTTGATGATGAGGCACTGAATTAAGGACAACTTGGTTATTATTATACATCCATGTGATTGTGAAGATTAAAGATGTTCTGGGACCAGGATGCCTTTGGAGAGGTTT\n-+WTSI_1055_1a09.q1kpIBR bases 1 to 558\n++\n !=>>>>>>>DIIIHHDHB99-//66@DIHHHHHHHHHDDCCCCCDHHIIDID@D>C=@KKYYYYKKTIIIIIIYNNIFFFIIMTIDDDDDHHHHDDKFFFIIDDHHHDDDHHHINNINIYYIIONNNINLNNNNNTYYYYYYYTNLLLLLLOOYYYYYYYYYYYYYYYYTTTTTTTTTTTTNNLLLLLLTTNNNJJJNNTTTYYYMMLOOKYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTTTTTTYYTTTTTTYYYYLTMTTTTNNNNLLTTTTTTTTTTLLTTTNNNJLLTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTTTTTTTTTTTTTTTTYYTTTTTTYYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYYYTTNNNNNNTONIIINNNNNNNKYYYIOINIIQMOOTNNNNNNNNNTTYYITIIIINNNNNIKKTTTTKTYYYYYYYYYYYYYLF@@@FBC>>=697038<<IIM88+++89I@QAI>::44--344;<><0056699:<9\n @WTSI_1055_1a10.q1kpIBR bases 1 to 431\n AAGCTATTTAGGTGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCACGTAAAAATCGAAAACATAGAAAAAGAAGCAAAGACCGACCGAACCGGTGGGAGAAAGGCTGAATGGGGCATGATTGGGGGAGGGGGGGAAGGTGACGAACCGAACGAATAAATGACAGGACGAGTTTCTCTTTTCTTCTTGGGTTTACATGTGTTGCGTGACCTTCTGAAATGGGCATTCAATGGATGATTGGGAGGGGGGGGGGGGAAGAAGGCCGACCACAGGTTGAATTTCGACTTTCTTCTAATTTTGCCCAACTTTCCCGATGGGGAAGGGCCTATGACCATTCGGTTTTGCAATGAAATCTGCCAATTAAACATCGTCCTTTTTCGTATCTGTGATGGTATGTCGATGGGGTGCG\n-+WTSI_1055_1a10.q1kpIBR bases 1 to 431\n++\n !9;75;;>;>>ACCCC@CCAADNNNNNIIF>>4::>>FFFDDDHHHHHHHDHDDDHHHHINHIIDD>42-55DFIIIIILYYKIIFIIINNYYYYYYYYYLTINNITTYYYYLONIIIILYYYTIIFIFFIMMSSSYSKKLKKOOTTTYYYYYYYSSSYYYLJJJJJTYYYYYYYLTTTTLYYYTTTMOLYYYYYYLLLNLIJIIIILLLYYTTOLKJJKKKTYYYSGGLLLLNLLKKFMJSSSMPMSSMMMSSYYYYSSMKKKKJJMMPSSMB>,,+++>9DDKKKF@@888F=?DFSK==19/99OFB11,,.,,/,.<E99,,,/9:?FB:0//002613../--,,,,.,,,,,-/0910/+-,0..,++..4+;+++4-,,,4./,//66B?54-,,.,,,,48+++2++,,+,,:6=1859/.,\n @WTSI_1055_1a11.q1kpIBR bases 1 to 301\n CGAAGGAAAGGCGGCGGAGAAAGTTTCGTCGTTGGCGGAAAAGCCGATGAAACGCGGGGGACGAACGAAGTTTGTGTTTTTTTTAAAAATCTTTTCTCGACGGTTTCCAGGGAATTGGCCAAGTCCATGGACAAAACCAATGCCAACGGTCCTTCGTCCGCTGATTCATCGACTTCGTGTCCCGGGAGCGCGGAGTGCCGCGGCATCCGCCTCAACAGAAAGGGCGTCAGCCGTCGTCCAACCATCACAGCGCCGTTCCCAAAAGCCGTGCCCCCTCGCGCAGTCGTTCGCCTCCACGGT\n-+WTSI_1055_1a11.q1kpIBR bases 1 to 301\n++\n !DDDDEIOTNNNNNTFDDHHHITINNNNNNNNNNNNIITYTTNNIILOYYTTTTTYQKDFFFFKOLLFIIIINTTTTYYYYHHAADHSYYYYYYYYYYYYOTTTTNTTTNITTTTTTNN"..b'IHDAA==8??FFDHHIIFYYYYYYYYYYYYYNNIIIINNTTTYTTTYTOOLYYYIIIILLYYYYKKYYYYYYYONNNNNTYYYYYYYYYYYYYYYYYTTTTTTYYYYYYYYNTTTTLYYYYYYJLLJLLYYYYYYYTTTTNNTJNNTLLTTTTTJTTTTTTTTYYYYTTTTTTYTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTTTTOOYKKLIIIIIIYLMKKKOOTTTTTYYYTNIIIIITTTYYYYYYYYYYYYYTTTTTTYYYYYYYYYTTTKKKNIIITTYYYYYIIGIGB@=@@FFNNIIKKKMHFFQIIFDDDDDKMKTIIIIOOKIIIIIOOMCBAAAAAQABEHIEIAA::0++1569>>>6///-\n @WTSI_1055_1f20.q1kpIBR bases 1 to 451\n AGCTATTTAGGTGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCACGAAATGTGTGTGATATTTTAATGAATAAACTTCTTTTTTAATATCATATTAATAATTATTGTATCGTTTTACAACTTTCTATTCATATACTTTTCATCATCATCCCATCCGGTATCACTGCTCCTCCTCCTGCGCCCACCGGCCATCAGTCACTTTCGTGTCATTCCGTCGACAGTGTGGTGGTGGTAGTCAAAATTTGTTGACGGAAAGCCTCCAAAAATTGTTGAAATTGGCCAGCCGTGAGGCCCATTGCCATCCGCGGGTGGCATTTGAACTGTCCGCCCCAGTTTGGTGCCATGGCGGACGCCGCATTCGTCGCGTTGCCAGCCGATCCTCAGCAAAGCCGCTTGGCCCACCGCCGGTGGGCATGTGCCGTTGTCGA\n-+WTSI_1055_1f20.q1kpIBR bases 1 to 451\n++\n !;>>>>>>>>>DDCC@CCDDDFFIINNNGEA=>@FFFFFHHHHHHHHHDDHDDDDDHHIIDFDDFDEDDKFIIIIINNIFFNNNIIIIIIYNTTTIINIIIIIOHHDDDDNIIIIIIIHHHHHHHHGDFIIFFINHLLLLLNNNNLNNNNNJNNNLLLLNLNNNNNTTTTTNNNNNNYLNNNNLNJJLNTTTYYYTTTMLOYYTTTTTLYYTTTNJNTTTYYYYTTTTTTYYYYYYYSSSONNNNNTYYYYYTTTTTTTTTTYYYYYYYYYYYYLTTOOLFFIOOOOOOOOYTTTTTTTKTTTTYYTNIIIIIITTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYPPPPPQOIGGGNNIIIIT?<5..8A82,+-..140011199>AAAA;;:<<A>>>@BAADDFDIKIIOIBBIIEII>:338:<II@B77/6-20;;IOA@;;91,\n @WTSI_1055_1f21.q1kpIBR bases 1 to 336\n GATTACGCCAAGCTATTTAGGTGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCAACAAGGATGCGTCTGCTTGTATAACCGGTAATCAAAAATGTGCAAATAATAAAATTGAGTGCATTTACAGGGAAACCGATCGTTGCTGGCGGTATTCATGGACGTGTTTCGGCCACGGGCCGTGGAATTTGGAAAGGGTTGGCGGTCTTCGTCAACGACAAGAACTACATGAGCAAATTGGGACTGACGACTGGATTTAAGGGGAAAACGTTCATCGTCCAAGGATTCGGTTTGTTTAGGGGAAAGGCATTGAAGGGG\n-+WTSI_1055_1f21.q1kpIBR bases 1 to 336\n++\n !1>;CCCIFCCA>>>>A;>>ADDDDDDDDDDFIIINNNNNDDDDDDFFKIHHHHHHHHDDDDDDDDDDHFFINNKKPPPPOTNNNNIHHHDDDDDDHHHIIINIIIIITYYYYYYYYYYYTNNNNNTYYTTTTTTTTOLLIJJLLNTTYJNNNNNTTTTTNNNNNNYTTTTTNTLLKKYYOTTNNNNNNNTTYYSSPSSSSSSYYYOTOOOYYYYYYYYYTIIIIIITMOKIKNNNNIITNNOLKKMQKKOOTTYQQKKKKLKKKIINNHDFKOOOKKMQMMPPYYYTTTTTTYTTTTNNNNNNKFCCQQYYMMFF<<79?A8335:<:6-2+++\n @WTSI_1055_1f22.q1kpIBR bases 1 to 496\n CTATTTAGGTGAGACTATAGAATACTCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCGCATGAGGAATCGGAAGAGAATAATAACAAGAAAATGACAGATAAAAAGAGTGGAATTGAAGTAGAAGAGAAAAAGGGTAGAGTTGTAACAGAAGAGAAGAAAGTTTTAAATGAAGCGGAAGAAAAGAAGGACGAAGATCAGACGGAAGAGAAGAAAGAAAATGAAAAAGAAGTTAAAAGAAATAATGCGGAAGAGAAGAAGAAATTGGATGAAACTGAAGAGAAGCCGGATGAGGAAAGGGGAGAAAAGAAGAGCAGAGCTGAAGTGGAATTGGAAGAAACAACGAAGAAGAATAATGGACTTAAATATGTTTGGAAGCATCAAAATGAATCGGATGTAAAGAAGTACGAAAACATAATGGAAAGTATGGACGAAAAGAAAATGGAAGAGAAGGAGCTCGTGGACAATTACAGTAATATTTTGTTTGGAA\n-+WTSI_1055_1f22.q1kpIBR bases 1 to 496\n++\n !399>>>>CHHHHBDDDEIIINNTIIFDA>AAAADDDDDDDDDHHHDDHDIIIIIINNNOOBB+++89DFIKKFFINNTTYYYTTTLLLKKKOOTTOLYLLOLTTTTTTTYYYYYYYYYYYYYTIIIDDDFFKOTYYYYYYYYYYYYYTTTLLJTTTYYYYYYYYYYYYTTTNJJLTTLLTTTTYYYYYYYYYTNNNNNTLLMKNNNNNNTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTLLKKKYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTNNNNJJLNNNNNNNNNTTTTTTNNNNNTYTNNNLNNNTTTTTNNLLTTTTTTTTYYYYYYYYYTTNLLLLLLNNNTLYYYYYYYYYYYYYYYTTTTTTYYYYYYYTNNNNNTTTNNNILOOTINNNNNTTTTMYMMMYIIINFFIIIGINIIIIKLLTOKKKMGGDFFFGFFFFFFFFFNNNIN?CCMQ<<3<<D<<+,.66>>F=;>:5.\n @WTSI_1055_1g01.q1kpIBR bases 1 to 350\n TATGACTGATTACGCCAGCTATTTAGGTGAGACTATAGAATACTCACGCTAGCATGCCTGCAGGTCGACTCTAGAGGATCCCAGGATTGCTTTTTGGCTCGCATACTGCAGCCTGGGGAAGTAGTTGACGTTTTGAAGAATTGAGGGAAGTTGACGTGAAACGGCAACGCGGAGCAGGTCGGAAATCGCTTCGCTATCAGAGCCAAGCAACGAAATGGCGATTGCGCTTAAAAAACATTGGTTTGCTTAAAACATCAATGGTCTTCACCGGTAGAAGCAGTCGCCTAGACCAACGTTGTTGACGCAACGAATGGTGTTTTGCTGCTGGGCAGACGTGGGCGGAGTGCTA\n-+WTSI_1055_1g01.q1kpIBR bases 1 to 350\n++\n !..+---77CBI>7---77>>>DACCCHHHIDDDDCCIHHAA84)))%%%))+,32>>HHHHCCCCCCCCCHIIIIINN<B.,,,+++2.22OBNDHHHHHIIDDDDIIYTNNNNNTTTIIIIIITTTTKKYYYYYYYYYYQOB84-,,.<>FIIIIINNNIIIKKMSSSIIIIIIIIIIIILTOOIIIIIFLLLLLLYYSKKLKKKPMSSYSYSSMSS?KKKKFFFIIFKKKKKKKKSMMMSKKIDDDKKKFDDFFFBBDD=DDMMMKDDDDDDKKFFCCKKKKKFFFKKKKFMMMMMKKKKKKKK734:4B<??B@DC=<871<1314/--,,+++++.-5:97--,\n'
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 test-data/sanger-pairs-singles.fastq
--- a/test-data/sanger-pairs-singles.fastq Wed Sep 18 06:13:27 2013 -0400
+++ b/test-data/sanger-pairs-singles.fastq Wed Aug 05 11:06:38 2015 -0400
b
b"@@ -1,224 +1,224 @@\n @WTSI_1055_1a03.p1kpIBF bases 1 to 312\n TTGTTGAACAGCAAAAAGGTCAAGAATATGGATGTTCTCGCCATGATTTTTGTGCCATAGGCGCGCATTCACAAGGTCCATCAGTCGNTCAGCCTGCCGCAACACCACCACCAGCCGCAGCAACAACAACAGCACCAGCAGCAGCTGATCCAATCGCATGTGCCACAGAATAACACCCAAAATCAATTAGCGACGGCCGCCCTCCAGCCGGTTCAGCAGCAGAAACAGCACGAAAAATGGGATCCGATCAAAGAATTTGGGCTGCAAAAGGACGAAATGGCGTTGAAGTCACCGCCCAGCAATGTTTGTGT\n-+WTSI_1055_1a03.p1kpIBF bases 1 to 312\n++\n !96CBHOOTTTYYYQMK???OOTYTTTNNNYYYYNIIIFFIIIIIIIYOOOMAA62.((((*,9@MIIIIO?A3007OOOMMII::%%%::AEHIIIQYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTOOKKKKKYMMYYYKIINNNTYYNIIIINYYYYTOLKKKOOKKKKOLTTYYYYSSSSYYYYSSSSSSMMSOOTLLLONIDDDNOTTYQQMMMMPBB9>BDOOTTQMMMMQMMMQQE:666QQYYPMMDDDADDM@B<FDBBDKKKKKKKKIGKINIFFFKDGGIDB?2/\n @WTSI_1055_1a07.p1kpIBF bases 1 to 574\n AACGACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGATTTCGAGCTCGGTACCCGGGGATCCCACCGGTACGGAGGGAAATTTGATCATCGCGGAAGTGCTCGTTTTGATTATCTTGGTGTATGGCGTCTGTGACCTTCTTTTTCGCTGGATGGGCATCGGGGCGTACGCCTGGGGTTCGCGCTCGAGCCCCAAAATCGCCCTCACTTTCGATGACGGGCCCAGCGAACACACCCGGTCCTTGCTCGAGCTGCTGCACCGCCATGGGGTAAAAGCTACCTTTTTTGTCACCGGCGTTCAGGCCGAGCGGCACCCCGACTTGCTAGAAGCCCTGCGGGCCGATGGCCATCAGATCGAATCGCACGGCTACTGGCACCGCCAAGCGTTCTTCCTGTGGCCTTGGCAAGAAGCGCGGCACATCCAACGGGTTCCGGGCAAACTATACCGCCCCCCCTATGGAGCCCACTCCCCCTTCACCCGGCTTCTTGCCCGGCTCCACGGCAAAGTGGTGGCGCTATGTGACCTCGAGTCCAAGGACTGGACCGACCGACCTGCCGAAGAACTGGCCG\n-+WTSI_1055_1a07.p1kpIBF bases 1 to 574\n++\n !>>>AAA:9.4441+35:88;;CHIIIIIIDDDCCCH>Q35-+*46?>CHHHHHHHHIIYOHHHHHTTYTHA72-35>:>DAKHHHQQTTNIIFIGNYNNNNIIIIIINTTYYFFFDDHIINTIIIIIITIIIIIIDDDDDDIIOTNTLIIIKLOYYYYYYYYTTTYYNNNNIIINNNNTIIINNLNIIINYYYYYYSSMMSYYTTMMKLLLNNTTTTTTTTLLKLLYTTJNLJLTYYYLLLLKLLTLLKKKLLTTTTTYYYYYYYTTTTTTTTOOKYLOTTTTYYYYYYTTTTTTYYYYYYYYYYTNNNNNTIFFFIFIIIIIOKKKYKKTOOKYYYYYYYTOOTIIOLKIINNNNNTYYYYYYYYYYYYYYYYYMTTTTTYTTTTIIOIIIQIIMIII:99>AAAIIBBIOOYYYYOKCCDAAFFFIOD@@>>>A<<926<QIQQQQMIIIIFDFFFDDFDDDAA===BGKKKKO943>>@B;BB?:?IMYYQB..+2,448:?88888<877:<>A810))*.12889600<<9411799>83,,,84337:<7227470..---.//+,\n @WTSI_1055_1a08.p1kpIBF bases 1 to 397\n TAAACGACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGAATTCGAGCTCGGTACCCGGGGATCCCACCTCCGAGAGCACTCGTGACGAATTGATTCCCCTGCTAAGCATCGAATGCGTAAAGTTAGGGCGTGCTCGTCGGCTTTATGAGAAGGGATTTCGCACCGTCGGATCGATAGCGAAAGCGGAGCCTCGCCAACTCATCGAAGCGTTAGGGGGCAAATTGAGCTGTTGCCAGTGCAGGAGGATGATCAGCAGTGCAAAGGTCCCCGGGGGTTGAGTAAATGGTGCTTAAAGGCCCCGTTCCGGAGACGATAAATTTATTCACTTTCAATTAGAGGCTTCAGAAGCTCAAAATTGTTCGAGTTTTTGTTCAGGCGATTATCCGCGATC\n-+WTSI_1055_1a08.p1kpIBF bases 1 to 397\n++\n !.006<=AA83059:85;<::>CCECIIIIIIIIFIIINIBB1160BBKFDHHHHIIIIIIYOHHHHHTOID?:.-+,*,+.,/5.,*+06:IAA99,,,66??:,++002:0--,,170/442//.44<?33/74323/+****+28;=BBDDB<9...9<:32231644460.1.9/5055@@OB@9552B0492//../1@;99///BBFF11.9444///<BF@=666;@<@66140,,.03;;>>???M::2448HHKKMMMMMPYYOLKKKKYYYYYYYQQMHFKHMKLLKOOYYQMMKFKOOTYTDDDDDDQKKKKKKP?B<FFOIIDIOO?633:?AHII=:77:>IQQ?C?BOOO>=695BBNN1-,88553</..8888,,,425.\n @WTSI_1055_1a15.p1kpIBF bases 1 to 312\n GACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGATTTCGAGCTCGGTACCCGGGGATCCCACGAAAATGTAATTTTTTTTCTTTTAATTTTGTCAACTTTTTTAGCAAAAGCATTGTATTTTAACTGTATATTGCGTTTTGGAGGCAGTCACTGGATTCAAGGGAGCAGACCAAGAAAAATTTTTACAAAGTTTCTAACCCTTTCAAGGTTTTGGACCAATTTCGTAACAAATTTCGCCAAAAAATGTGCATAATTTCTTTTACCACGCCTATCGGCATCAGTAAGTCGTCCCAGTAAAGCTAATA\n-+WTSI_1055_1a15.p1kpIBF bases 1 to 312\n++\n !:AA<4+1441+38::4..A<<BHHHCIIIICHI></4++*=:I>AHHFHDHDHIITIDDDDDOOOOMM@=30++,89QQQQOIIIIDDHHHHYTNNNNHHHIIOIIIIFFYYYYYYYNIIIIIIIIIIHHCC>81**'''(*6:IMMOQOIIIFFFIIILNNTTTTYYYYYYTNNNNIIKKKYTTTIIIMKTKTYTIDDDDDDTTNNIKKIIIIOOYFFFFFDIINNADDIIIKKKOOTLIOONHDKDDKKFFAD>AADMMMYOOOOLKKDIIIMKE966<<KB?>B70////2:B1../004.,,,..,\n @WTSI_1055_1a17.p1kpIBF bases 1 to 201\n AGAATGCGGAACAGCTGACGCAAATACATGTAGTCAGGCGCCTCGTCAAAGCGCGACCCGCGGCAGTAGTTCAAGTACATGNAGAACTCAAAGGGGAAGCCCTTGCACAGCATTTCCACCGGTGTCGACATTTTCTTAAAATGTTCACAAAAATGAACTTTTAATCGTAAAAAGGAGACCAATTTCGGGAACTTGTATGT\n-+WTSI_1055_1a17.p1kpIBF bases 1 to 201\n++\n !<CIIIIIIIITHHIHHHNNNTNNNNIIIIIIIIIIITYOIIIIIOMMQ=6+(%(((,.<<QQIFIIFFIIIIIIHEB::%%%45BB64****4IQQQQOOOOOOYYYYYYYYYYYYYYTTTNNNTMOYYYYOTNNNNTTYYTTTTTTYYYMYYYMMYYOOOK"..b'TCACAAGTCACCATGGTGAAAAGTTCCGTGGTACAAGCTCTAAGCCCGCAGAAAATAAAGGAAGGGCTATTGGAAGTGAGCGGCTTCCACAGCGAAATACCGGTGAAGCTGGACGCCCCACAATATAAACTACAAGTTGCCTTGGCAGACGGCCGTTCGGAGAACCTTGTAGCATATCGGGCCGATTGGATAGTCAGATCCATCCGCAGAGCTGAATGGAGCACCGGGAAAGTGGAAGCAGTTGACGATGAGCCGGATTTGCTCATTGGAATGCCAGAG\n-+WTSI_1055_1f17.p1kpIBF bases 1 to 436\n++\n !08<;=<:404::4.25:9<>>ECIIIIIIDDDDDHIINIMKKKNNNHDDDDDDDDDIIYNIDDDDTDCCCAA;97699;IIITTTTTTNNNNNIIIIIIIIIIITYYYYTTTNNNTTTYYYYYYYYYYYYTTNNNNOO@8@BEIIITTTYYYYNNNNNTNNNNNNNLLLLLLLLNTYTTTTTTTNNNNNTTTYNNNNNTYYYYTTTTTTYYYYYYYYYTNNNJNOYYYYYYYYYYYTTTTTTYYYYYYYYYYYYYYTTTTTTTTTTTTTTTTTTTTTTTTTTTTYTTOMKLYYYYTTTTTIINNNNTYYYYYYTNIFFIIIIYYYYYYYYYYYYYYOOOIINKKKQQYYTTTTTTYYYYYOIDDDDDFTKMKGGINKKINNYKKKKMMMKKKKKKMIHH>>==:?;BAAQ=963;<<<<::;33,4./,591,,\n @WTSI_1055_1f23.p1kpIBF bases 1 to 383\n AAACGACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGAATTCGAGCTCGGTACCCGGGGATCCCACCCCCTATCCCCGCAGAGGTCCATCCAGGAGTCCCAAGAGCACATGGAGAGCACTTTCAAGGCGTTGCGTCGTCAGCTGCCGGTGACGCGCTCCAAGCTGAACTGGCTGAACTTCCATTCCTTCCGCATCACTCAGCAGGAGATGAAGCAGCCGCCCTCGGCCGGCCAGCAACAACAGTCCCAGTGATGGAGCAGTCCAAGAAGAGGAAGCGAGCGAATTTGGAGCATCGCCCATTCATTTCAATTAATACCTTTCCGATTTGTGTACTTTCCCCGACATTTTCGCCATCCAATTATGGCAAGTGAAAGTTT\n-+WTSI_1055_1f23.p1kpIBF bases 1 to 383\n++\n !34:<<<<<;289:87;<::>AACCEDIIIFDDHHHINNTYYYKKNNNIIIIHDDDDDIIYNDDDDDTTYYYFDDAAADFKYMIFFDDDDHDDFIFFIIDDHHHITTTYINNIIIKKKOMIHHDHHIYYYYLYINNNNNOKFFFDENNNNNHGGLLLNLNNNNNYNNNLNJTTTNNNJLINNNNTYYYYYYYYYYYYYYNNNNNNYYYTTTTTYTTTTTTYYYYNLIIIIIIIIIYYYYYTTTTTTYYYYYLIIIIIIILTYYYYTTOOKLYTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYOOIFFIYYYYYYYYYYYYYYYYYYYYYYYYYYYYKKIIIITOYYYQQOIEEAACC>>@=;>5>AAAAAAIB94\n @WTSI_1055_1f24.q1kpIBR bases 86 to 670\n TTGGCACGCAAAAGACGCAATTCTTCAGACGGATTTAAATTGGCAAGAATATCGAGCTAAATGGCAAATGTTTAAAATGGTAATCCCGGAGGAAGAAGACCACGGATTTTTTAACAAAAATGTAAATTTATTTCATGAATTTGTTGCAAAAACCAAAAGGTGCCAAAATATTGATTTACGAAAAGCGCTAACTTCTTCAGCCAAATGCCCTCTTCAAACCCACTTGATCAATCGTTGCACTCAGTGCTTTTTGATCGCCATTTTCTCCACGTCAGATTTAACCAGTCAATTTTGTCATTGGCTTCCTTTCAATGCGGTTGCTGCTTCAAAATCATCTCTTCCATTAAATTCGGGTAACGAGCCCAATGTTCTTGATGCTTCAACGAAAACTGATCAGGCGAACTGAAAGGGTGTAAAAAAGATAAAAGAAATTGTAAACGCAGCACATTGTCAAGCAAAGCAACCCAAAAAAATCGATTTTGAGTATAGTCAAAAAGGGTTACCCGTCAATGATGATCTGTTGCTGTTTGTTTGATACTCCTCCTTTCAATTTGCGATTGTTGTTGTTGCAATTGGCACGCGAA\n-+WTSI_1055_1f24.q1kpIBR bases 86 to 670\n++\n !88BHIQQQYYYITTTTIIINNIIIIKKKYYYYIIIIFFYOMTTTYYIIIIAA99//.1<BKKOOTYYYYTTTTNNTTINNNTTYTTNNNIIITTYTTTTTTTTYYYYYIIIIIOYYYYYYYYYYYTTTTTTNNNNTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYTTOTLLYYYYYYYYYTTTTTTTTTTTTTTTTYYYYYYYYYYTTTTTTYYTNNNNNTYYYYYYTTTTTTYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYOKKKOOYYYYKK???KQMMMPPPPQMMKKKMPYYYKKKKKKKKKKMMYYYYYYYYYYYYYYYYYYYYYYYYYYYYYQQQQQI51)%%)4<QQQQQQYYYYTTKTTTTTTTYYYYYYYNNNNNNYYYKKKKGGNNNNYYYYYYYYYYYQMMMMQOKKGIIKKKKYQYYYYYYYYTOOLKKIIIIIOYQQQQQQBA>:;AABAACCCIIIOIIBBIIIII:77<><AAIIIOQQIE=>>>CA>AAABBIIIIIII:00882389667>BAAA?A>77:<844>A?;4++0966.+4492000--4922./..++\n @WTSI_1055_1g02.p1kpIBF bases 1 to 523\n AACGACGGCCAGTGAATTGTAATACGACTCACTATAGGGCGAATTCGAGCTCGGTACCCGGGGATCCCACGACAAATTCACGGAAGCGTCTCGCACTTTGTGCCGAGGACTGCTGCACAAGGAGCCCACTCTGAGGTTGGGCTGTCGCCGGGTCGGCCGGCCTGAGGACGGCGCGGAAGAGCTGAAGGCACACGCGTTCTTCACACAACCGGACCAGAAGACAGGCAGGGAGCCAATTCCGTGGAGGAAGATGGAGGCCGGCAAGGTGGACGACATTCCCTTCTGAACTGCTAGAGAGGACTTGTAGGAATTCCGTCCTTCAGCTGACACCTCCATTTTGTCCGGACCCCCATTCGGTGTATGCCAAAGATGTGCTGGACATCGAGCAGTTCAGCACTGTCAAGGGAGTTCGTCCGCTTCCACCAAACTTTTCCTACCTGCTGAACCATTAGGTTCGACTTGACGCGACTGACAACTCCTTCTACGACAAGTTCAACAGCGGGTCCGTGTCCATACCTTGGC\n-+WTSI_1055_1g02.p1kpIBF bases 1 to 523\n++\n !08<=AAA:28::87;<::>ACECEIIIIIIIIIIINIKBB>C>QQYNHHHHDDHDHIITIDCCCCOONNNNGDFDDINMINNNNNIHHHHHIINNIIINNNNTYTIIIIDDIIIIYYYTTTTTTYIIIDDDGGITYYSKKKIDNNNNTTNNNNNTYYYTLLLLLLLLLLLYYTYJJJJJNTTTTTTTTTTYYOLLLTTOOOTTTTTTTYNNNNNJJJLLLLLLYYYYYYYYYYSSYYONNNNNNLLTTTTTTTYYYYYYYYYYYYYYYYTMMKKKYYYYYYYYYYYYYTTTTTOOLIILLLLTTLNLLLLLLYYYYYYTTTLLLTTTTTTTYYYYYYTTTTTTTTTTTYYYYYYYYYYYYYYYYYNIIIIITYYTTTLTTNIIFFFMYYYYYYYOOLKKOOTIFIFIINTTTTYYYYYYYYYYYYYYYYYYYYYYTNNNNNNNNTYYYYYYYYYYTTTNNNNNNNNTNIIFFFKYYOOOOOIIIA<:77:<<>>>>IOOIHHHDDEIQMMII<924595/4\n'
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 tools/fastq/fastq_paired_unpaired.py
--- a/tools/fastq/fastq_paired_unpaired.py Wed Sep 18 06:13:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,241 +0,0 @@\n-#!/usr/bin/env python\n-"""Divides a FASTQ into paired and single (orphan reads) as separate files.\n-\n-The input file should be a valid FASTQ file which has been sorted so that\n-any partner forward+reverse reads are consecutive. The output files all\n-preserve this sort order. Pairing are recognised based on standard name\n-suffices. See below or run the tool with no arguments for more details.\n-\n-Note that the FASTQ variant is unimportant (Sanger, Solexa, Illumina, or even\n-Color Space should all work equally well).\n-\n-This script is copyright 2010-2013 by Peter Cock, The James Hutton Institute\n-(formerly SCRI), Scotland, UK. All rights reserved.\n-\n-See accompanying text file for licence details (MIT license).\n-"""\n-import os\n-import sys\n-import re\n-from galaxy_utils.sequence.fastq import fastqReader, fastqWriter\n-\n-if "-v" in sys.argv or "--version" in sys.argv:\n-    print "Version 0.0.8"\n-    sys.exit(0)\n-\n-def stop_err(msg, err=1):\n-   sys.stderr.write(msg.rstrip() + "\\n")\n-   sys.exit(err)\n-\n-msg = """Expect either 3 or 4 arguments, all FASTQ filenames.\n-\n-If you want two output files, use four arguments:\n- - FASTQ variant (e.g. sanger, solexa, illumina or cssanger)\n- - Sorted input FASTQ filename,\n- - Output paired FASTQ filename (forward then reverse interleaved),\n- - Output singles FASTQ filename (orphan reads)\n-\n-If you want three output files, use five arguments:\n- - FASTQ variant (e.g. sanger, solexa, illumina or cssanger)\n- - Sorted input FASTQ filename,\n- - Output forward paired FASTQ filename,\n- - Output reverse paired FASTQ filename,\n- - Output singles FASTQ filename (orphan reads)\n-\n-The input file should be a valid FASTQ file which has been sorted so that\n-any partner forward+reverse reads are consecutive. The output files all\n-preserve this sort order.\n-\n-Any reads where the forward/reverse naming suffix used is not recognised\n-are treated as orphan reads. The tool supports the /1 and /2 convention\n-originally used by Illumina, the .f and .r convention, and the Sanger\n-convention (see http://staden.sourceforge.net/manual/pregap4_unix_50.html\n-for details), and the new Illumina convention where the reads have the\n-same identifier with the fragment at the start of the description, e.g.\n-\n-@HWI-ST916:79:D04M5ACXX:1:1101:10000:100326 1:N:0:TGNCCA\n-@HWI-ST916:79:D04M5ACXX:1:1101:10000:100326 2:N:0:TGNCCA \n-\n-Note that this does support multiple forward and reverse reads per template\n-(which is quite common with Sanger sequencing), e.g. this which is sorted\n-alphabetically:\n-\n-WTSI_1055_4p17.p1kapIBF\n-WTSI_1055_4p17.p1kpIBF\n-WTSI_1055_4p17.q1kapIBR\n-WTSI_1055_4p17.q1kpIBR\n-\n-or this where the reads already come in pairs:\n-\n-WTSI_1055_4p17.p1kapIBF\n-WTSI_1055_4p17.q1kapIBR\n-WTSI_1055_4p17.p1kpIBF\n-WTSI_1055_4p17.q1kpIBR\n-\n-both become:\n-\n-WTSI_1055_4p17.p1kapIBF paired with WTSI_1055_4p17.q1kapIBR\n-WTSI_1055_4p17.p1kpIBF paired with WTSI_1055_4p17.q1kpIBR\n-"""\n-\n-if len(sys.argv) == 5:\n-    format, input_fastq, pairs_fastq, singles_fastq = sys.argv[1:]\n-elif len(sys.argv) == 6:\n-    pairs_fastq = None\n-    format, input_fastq, pairs_f_fastq, pairs_r_fastq, singles_fastq = sys.argv[1:]\n-else:\n-    stop_err(msg)\n-\n-format = format.replace("fastq", "").lower()\n-if not format:\n-    format="sanger" #safe default\n-elif format not in ["sanger","solexa","illumina","cssanger"]:\n-    stop_err("Unrecognised format %s" % format)\n-\n-def f_match(name):\n-   if name.endswith("/1") or name.endswith(".f"):\n-      return True\n-\n-#Cope with three widely used suffix naming convensions,\n-#Illumina: /1 or /2\n-#Forward/revered: .f or .r\n-#Sanger, e.g. .p1k and .q1k\n-#See http://staden.sourceforge.net/manual/pregap4_unix_50.html\n-re_f = re.compile(r"(/1|\\.f|\\.[sfp]\\d\\w*)$")\n-re_r = re.compile(r"(/2|\\.r|\\.[rq]\\d\\w*)$")\n-\n-#assert re_f.match("demo/1")\n-assert re_f.search("demo.f")\n-assert re_f.search("demo.s1")\n-assert re_f.search("demo.f1k")\n-assert re_f.search("demo.p1")\n-assert re_f.search("demo.p1k")\n-assert re_f.search("'..b'les = 0, 0, 0, 0, 0, 0\n-in_handle = open(input_fastq)\n-if pairs_fastq:\n-    pairs_f_writer = fastqWriter(open(pairs_fastq, "w"), format)\n-    pairs_r_writer = pairs_f_writer\n-else:\n-    pairs_f_writer = fastqWriter(open(pairs_f_fastq, "w"), format)\n-    pairs_r_writer = fastqWriter(open(pairs_r_fastq, "w"), format)\n-singles_writer = fastqWriter(open(singles_fastq, "w"), format)\n-last_template, buffered_reads = None, []\n-\n-for record in fastqReader(in_handle, format):\n-    count += 1\n-    name = record.identifier.split(None,1)[0]\n-    assert name[0]=="@", record.identifier #Quirk of the Galaxy parser\n-    is_forward = False\n-    suffix = re_f.search(name)\n-    if suffix:\n-        #============\n-        #Forward read\n-        #============\n-        template = name[:suffix.start()]\n-        is_forward = True\n-    elif re_illumina_f.match(record.identifier):\n-        template = name #No suffix\n-        is_forward = True\n-    if is_forward:\n-        #print name, "forward", template\n-        forward += 1\n-        if last_template == template:\n-            buffered_reads.append(record)\n-        else:\n-            #Any old buffered reads are orphans\n-            for old in buffered_reads:\n-                singles_writer.write(old)\n-                singles += 1\n-            #Save this read in buffer\n-            buffered_reads = [record]\n-            last_template = template\n-    else:\n-        is_reverse = False\n-        suffix = re_r.search(name)\n-        if suffix:\n-            #============\n-            #Reverse read\n-            #============\n-            template = name[:suffix.start()]\n-            is_reverse = True\n-        elif re_illumina_r.match(record.identifier):\n-            template = name #No suffix\n-            is_reverse = True\n-        if is_reverse:\n-            #print name, "reverse", template\n-            reverse += 1\n-            if last_template == template and buffered_reads:\n-                #We have a pair!\n-                #If there are multiple buffered forward reads, want to pick\n-                #the first one (although we could try and do something more\n-                #clever looking at the suffix to match them up...)\n-                old = buffered_reads.pop(0)\n-                pairs_f_writer.write(old)\n-                pairs_r_writer.write(record)\n-                pairs += 2\n-            else:\n-                #As this is a reverse read, this and any buffered read(s) are\n-                #all orphans\n-                for old in buffered_reads:\n-                    singles_writer.write(old)\n-                    singles += 1\n-                buffered_reads = []\n-                singles_writer.write(record)\n-                singles += 1\n-                last_template = None\n-        else:\n-            #===========================\n-            #Neither forward nor reverse\n-            #===========================\n-            singles_writer.write(record)\n-            singles += 1\n-            neither += 1\n-            for old in buffered_reads:\n-                singles_writer.write(old)\n-                singles += 1\n-            buffered_reads = []\n-            last_template = None\n-if last_template:\n-    #Left over singles...\n-    for old in buffered_reads:\n-        singles_writer.write(old)\n-        singles += 1\n-in_handle.close\n-singles_writer.close()\n-if pairs_fastq:\n-    pairs_f_writer.close()\n-    assert pairs_r_writer.file.closed\n-else:\n-    pairs_f_writer.close()\n-    pairs_r_writer.close()\n-\n-if neither:\n-    print "%i reads (%i forward, %i reverse, %i neither), %i in pairs, %i as singles" \\\n-           % (count, forward, reverse, neither, pairs, singles)\n-else:\n-    print "%i reads (%i forward, %i reverse), %i in pairs, %i as singles" \\\n-           % (count, forward, reverse, pairs, singles)\n-\n-assert count == pairs + singles == forward + reverse + neither, \\\n-       "%i vs %i+%i=%i vs %i+%i+%i=%i" \\\n-       % (count,pairs,singles,pairs+singles,forward,reverse,neither,forward+reverse+neither)\n'
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 tools/fastq/fastq_paired_unpaired.rst
--- a/tools/fastq/fastq_paired_unpaired.rst Wed Sep 18 06:13:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,113 +0,0 @@
-Galaxy tool to divide FASTQ files into paired and unpaired reads
-================================================================
-
-This tool is copyright 2010-2013 by Peter Cock, The James Hutton Institute
-(formerly SCRI, Scottish Crop Research Institute), UK. All rights reserved.
-See the licence text below (MIT licence).
-
-This tool is a short Python script which divides a FASTQ file into paired
-reads, and single or orphan reads. You can have separate files for the
-forward/reverse reads, or have them interleaved in a single file.
-
-Note that the FASTQ variant is unimportant (Sanger, Solexa, Illumina, or even
-Color Space should all work equally well).
-
-This tool is available from the Galaxy Tool Shed at:
-http://toolshed.g2.bx.psu.edu/view/peterjc/fastq_paired_unpaired
-
-
-Automated Installation
-======================
-
-This should be straightforward, Galaxy should automatically download and install
-the tool from the Galaxy Tool Shed, and run the unit tests
-
-
-Manual Installation
-===================
-
-There are just two files to install:
-
-* fastq_paired_unpaired.py (the Python script)
-* fastq_paired_unpaired.xml (the Galaxy tool definition)
-
-The suggested location is in the Galaxy folder tools/fastq next to other FASTQ
-tools provided with Galaxy.
-
-You will also need to modify the tools_conf.xml file to tell Galaxy to offer
-the tool. One suggested location is next to the fastq_filter.xml entry. Simply
-add the line::
-
-    <tool file="fastq/fastq_paired_unpaired.xml" />
-
-That's it.
-
-
-History
-=======
-
-======= ======================================================================
-Version Changes
-------- ----------------------------------------------------------------------
-v0.0.1  - Initial version, using Biopython
-v0.0.2  - Help text; cope with multiple pairs per template
-v0.0.3  - Galaxy XML wrappers added
-v0.0.4  - Use Galaxy library to handle FASTQ files (avoid Biopython dependency)
-v0.0.5  - Handle Illumina 1.8 style pair names
-v0.0.6  - Record script version when run from Galaxy
-        - Added unit test (FASTQ file using Sanger naming)
-v0.0.7  - Link to Tool Shed added to help text and this documentation.
-v0.0.8  - Use reStructuredText for this README file.
-        - Adopt standard MIT License.
-        - Updated citation information (Cock et al. 2013).
-======= ======================================================================
-
-
-Developers
-==========
-
-This script and other tools for filtering FASTA, FASTQ and SFF files were
-initially developed on the following hg branch:
-http://bitbucket.org/peterjc/galaxy-central/src/fasta_filter
-
-Development has now moved to a dedicated GitHub repository:
-https://github.com/peterjc/pico_galaxy/tree/master/tools/
-
-For making the "Galaxy Tool Shed" http://toolshed.g2.bx.psu.edu/ tarball use
-the following command from the Galaxy root folder::
-
-    $ tar -czf fastq_paired_unpaired.tar.gz tools/fastq/fastq_paired_unpaired.* test-data/sanger-pairs-*.fastq
-
-Check this worked::
-
-    $ tar -tzf fastq_paired_unpaired.tar.gz
-    tools/fastq/fastq_paired_unpaired.py
-    tools/fastq/fastq_paired_unpaired.rst
-    tools/fastq/fastq_paired_unpaired.xml
-    test-data/sanger-pairs-forward.fastq
-    test-data/sanger-pairs-interleaved.fastq
-    test-data/sanger-pairs-mixed.fastq
-    test-data/sanger-pairs-reverse.fastq
-    test-data/sanger-pairs-singles.fastq
-
-
-Licence (MIT)
-=============
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 tools/fastq/fastq_paired_unpaired.xml
--- a/tools/fastq/fastq_paired_unpaired.xml Wed Sep 18 06:13:27 2013 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,113 +0,0 @@
-<tool id="fastq_paired_unpaired" name="Divide FASTQ file into paired and unpaired reads" version="0.0.7">
- <description>using the read name suffices</description>
- <version_command interpreter="python">fastq_paired_unpaired.py --version</version_command>
- <command interpreter="python">
-fastq_paired_unpaired.py $input_fastq.extension $input_fastq
-#if $output_choice_cond.output_choice=="separate"
- $output_forward $output_reverse
-#elif $output_choice_cond.output_choice=="interleaved"
- $output_paired
-#end if
-$output_singles
- </command>
- <stdio>
- <!-- Anything other than zero is an error -->
- <exit_code range="1:" />
- <exit_code range=":-1" />
- </stdio>
- <inputs>
- <param name="input_fastq" type="data" format="fastq" label="FASTQ file to divide into paired and unpaired reads"/>
- <conditional name="output_choice_cond">
- <param name="output_choice" type="select" label="How to output paired reads?">
- <option value="separate">Separate (two FASTQ files, for the forward and reverse reads, in matching order).</option>
- <option value="interleaved">Interleaved (one FASTQ file, alternating forward read then partner reverse read).</option>
- </param>
- <!-- Seems need these dummy entries here, compare this to indels/indel_sam2interval.xml -->
- <when value="separate" />
- <when value="interleaved" />
- </conditional>
- </inputs>
- <outputs>
- <data name="output_singles" format="input" label="Orphan or single reads"/>
- <data name="output_forward" format="input" label="Forward paired reads">
- <filter>output_choice_cond["output_choice"] == "separate"</filter>
- </data>
- <data name="output_reverse" format="input" label="Reverse paired reads">
- <filter>output_choice_cond["output_choice"] == "separate"</filter>
- </data>
- <data name="output_paired" format="input" label="Interleaved paired reads">
- <filter>output_choice_cond["output_choice"] == "interleaved"</filter>
- </data>
- </outputs>
- <tests>
- <test>
- <param name="input_fastq" value="sanger-pairs-mixed.fastq" ftype="fastq"/>
- <param name="output_choice" value="separate"/>
- <output name="output_singles" file="sanger-pairs-singles.fastq" ftype="fastq"/>
- <output name="output_forward" file="sanger-pairs-forward.fastq" ftype="fastq"/>
- <output name="output_reverse" file="sanger-pairs-reverse.fastq" ftype="fastq"/>
- </test>
- <test>
- <param name="input_fastq" value="sanger-pairs-mixed.fastq" ftype="fastq"/>
- <param name="output_choice" value="interleaved"/>
- <output name="output_singles" file="sanger-pairs-singles.fastq" ftype="fastq"/>
- <output name="output_paired" file="sanger-pairs-interleaved.fastq" ftype="fastq"/>
- </test>
- </tests>
- <help>
-
-**What it does**
-
-Using the common read name suffix conventions, it divides a FASTQ file into
-paired reads, and orphan or single reads.
-
-The input file should be a valid FASTQ file which has been sorted so that
-any partner forward+reverse reads are consecutive. The output files all
-preserve this sort order. Pairing are recognised based on standard name
-suffices. See below or run the tool with no arguments for more details.
-
-Any reads where the forward/reverse naming suffix used is not recognised
-are treated as orphan reads. The tool supports the /1 and /2 convention
-originally used by Illumina, .f and .r convention, the Sanger convention
-(see http://staden.sourceforge.net/manual/pregap4_unix_50.html for details),
-and the current Illumina convention where the reads get the same identifier
-with the fragment number in the description, for example:
-
- * @HWI-ST916:79:D04M5ACXX:1:1101:10000:100326 1:N:0:TGNCCA
- * @HWI-ST916:79:D04M5ACXX:1:1101:10000:100326 2:N:0:TGNCCA 
-
-Note that this does support multiple forward and reverse reads per template
-(which is quite common with Sanger sequencing), e.g. this which is sorted
-alphabetically:
-
- * WTSI_1055_4p17.p1kapIBF
- * WTSI_1055_4p17.p1kpIBF
- * WTSI_1055_4p17.q1kapIBR
- * WTSI_1055_4p17.q1kpIBR
-
-or this where the reads already come in pairs:
-
- * WTSI_1055_4p17.p1kapIBF
- * WTSI_1055_4p17.q1kapIBR
- * WTSI_1055_4p17.p1kpIBF
- * WTSI_1055_4p17.q1kpIBR
-
-both become:
-
- * WTSI_1055_4p17.p1kapIBF paired with WTSI_1055_4p17.q1kapIBR
- * WTSI_1055_4p17.p1kpIBF paired with WTSI_1055_4p17.q1kpIBR
-
-**References**
-
-If you use this Galaxy tool in work leading to a scientific publication please
-cite the following paper:
-
-Peter J.A. Cock, Björn A. Grüning, Konrad Paszkiewicz and Leighton Pritchard (2013).
-Galaxy tools and workflows for sequence analysis with applications
-in molecular plant pathology. PeerJ 1:e167
-http://dx.doi.org/10.7717/peerj.167
-
-This tool is available to install into other Galaxy Instances via the Galaxy
-Tool Shed at http://toolshed.g2.bx.psu.edu/view/peterjc/fastq_paired_unpaired
- </help>
-</tool>
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 tools/fastq_paired_unpaired/README.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/fastq_paired_unpaired/README.rst Wed Aug 05 11:06:38 2015 -0400
b
@@ -0,0 +1,131 @@
+Galaxy tool to divide FASTQ files into paired and unpaired reads
+================================================================
+
+This tool is copyright 2010-2015 by Peter Cock, The James Hutton Institute
+(formerly SCRI, Scottish Crop Research Institute), UK. All rights reserved.
+See the licence text below (MIT licence).
+
+This tool is a short Python script which divides a FASTQ file into paired
+reads, and single or orphan reads. You can have separate files for the
+forward/reverse reads, or have them interleaved in a single file.
+
+Note that the FASTQ variant is unimportant (Sanger, Solexa, Illumina, or even
+Color Space should all work equally well).
+
+This tool is available from the Galaxy Tool Shed at:
+http://toolshed.g2.bx.psu.edu/view/peterjc/fastq_paired_unpaired
+
+
+Automated Installation
+======================
+
+This should be straightforward, Galaxy should automatically download and install
+the tool from the Galaxy Tool Shed, and run the unit tests
+
+
+Manual Installation
+===================
+
+There are just two files to install:
+
+* ``fastq_paired_unpaired.py`` (the Python script)
+* ``fastq_paired_unpaired.xml`` (the Galaxy tool definition)
+
+The suggested location is in the Galaxy folder tools/fastq next to other FASTQ
+tools provided with Galaxy.
+
+You will also need to modify the ``tools_conf.xml`` file to tell Galaxy to offer
+the tool. One suggested location is next to the ``fastq_filter.xml`` entry, or use
+a dedicated folder like ``tools/fastq_paired_unpaired``. Then simply add the line::
+
+    <tool file="fastq_paired_unpaired/fastq_paired_unpaired.xml" />
+
+That's it.
+
+
+History
+=======
+
+======= ======================================================================
+Version Changes
+------- ----------------------------------------------------------------------
+v0.0.1  - Initial version, using Biopython
+v0.0.2  - Help text; cope with multiple pairs per template
+v0.0.3  - Galaxy XML wrappers added
+v0.0.4  - Use Galaxy library to handle FASTQ files (avoid Biopython dependency)
+v0.0.5  - Handle Illumina 1.8 style pair names
+v0.0.6  - Record script version when run from Galaxy
+        - Added unit test (FASTQ file using Sanger naming)
+v0.0.7  - Link to Tool Shed added to help text and this documentation.
+v0.0.8  - Use reStructuredText for this README file.
+        - Adopt standard MIT License.
+        - Updated citation information (Cock et al. 2013).
+        - Development moved to GitHub.
+v0.0.9  - Renamed folder and adopted README.rst naming.
+        - Removed some unused code in the Python script.
+v0.1.0  - Switch to using Biopython (easier to use script outside of Galaxy).
+        - Leaves FASTQ plus lines blank (smaller output files).
+        - Tool definition now embeds citation information.
+v0.1.1  - Reorder XML elements (internal change only).
+        - Use ``format_source=...`` tag.
+        - Planemo for Tool Shed upload (``.shed.yml``, internal change only).
+======= ======================================================================
+
+
+Developers
+==========
+
+This script and other tools for filtering FASTA, FASTQ and SFF files were
+initially developed on the following hg branch:
+http://bitbucket.org/peterjc/galaxy-central/src/fasta_filter
+
+Development has now moved to a dedicated GitHub repository:
+https://github.com/peterjc/pico_galaxy/tree/master/tools/fastq_paired_unpaired
+
+For pushing a release to the test or main "Galaxy Tool Shed", use the following
+Planemo commands (which requires you have set your Tool Shed access details in
+``~/.planemo.yml`` and that you have access rights on the Tool Shed)::
+
+    $ planemo shed_update --shed_target testtoolshed --check_diff ~/repositories/pico_galaxy/tools/fastq_paired_unpaired/
+    ...
+
+or::
+
+    $ planemo shed_update --shed_target toolshed --check_diff ~/repositories/pico_galaxy/tools/fastq_paired_unpaired/
+    ...
+
+To just build and check the tar ball, use::
+
+    $ planemo shed_upload --tar_only  ~/repositories/pico_galaxy/tools/fastq_paired_unpaired/
+    ...
+    $ tar -tzf shed_upload.tar.gz 
+    test-data/sanger-pairs-forward.fastq
+    test-data/sanger-pairs-interleaved.fastq
+    test-data/sanger-pairs-mixed.fastq
+    test-data/sanger-pairs-reverse.fastq
+    test-data/sanger-pairs-singles.fastq
+    tools/fastq_paired_unpaired/README.rst
+    tools/fastq_paired_unpaired/fastq_paired_unpaired.py
+    tools/fastq_paired_unpaired/fastq_paired_unpaired.xml
+
+
+Licence (MIT)
+=============
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 tools/fastq_paired_unpaired/fastq_paired_unpaired.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/fastq_paired_unpaired/fastq_paired_unpaired.py Wed Aug 05 11:06:38 2015 -0400
[
b'@@ -0,0 +1,241 @@\n+#!/usr/bin/env python\n+"""Divides a FASTQ into paired and single (orphan reads) as separate files.\n+\n+The input file should be a valid FASTQ file which has been sorted so that\n+any partner forward+reverse reads are consecutive. The output files all\n+preserve this sort order. Pairing are recognised based on standard name\n+suffices. See below or run the tool with no arguments for more details.\n+\n+Note that the FASTQ variant is unimportant (Sanger, Solexa, Illumina, or even\n+Color Space should all work equally well).\n+\n+This script is copyright 2010-2013 by Peter Cock, The James Hutton Institute\n+(formerly SCRI), Scotland, UK. All rights reserved.\n+\n+See accompanying text file for licence details (MIT license).\n+"""\n+import os\n+import sys\n+import re\n+\n+if "-v" in sys.argv or "--version" in sys.argv:\n+    print("Version 0.1.0")\n+    sys.exit(0)\n+\n+def sys_exit(msg, err=1):\n+   sys.stderr.write(msg.rstrip() + "\\n")\n+   sys.exit(err)\n+\n+try:\n+    from Bio.SeqIO.QualityIO import FastqGeneralIterator\n+except ImportError:\n+    sys_exit("Biopython missing")\n+\n+msg = """Expect either 3 or 4 arguments, all FASTQ filenames.\n+\n+If you want two output files, use four arguments:\n+ - FASTQ variant (e.g. sanger, solexa, illumina or cssanger)\n+ - Sorted input FASTQ filename,\n+ - Output paired FASTQ filename (forward then reverse interleaved),\n+ - Output singles FASTQ filename (orphan reads)\n+\n+If you want three output files, use five arguments:\n+ - FASTQ variant (e.g. sanger, solexa, illumina or cssanger)\n+ - Sorted input FASTQ filename,\n+ - Output forward paired FASTQ filename,\n+ - Output reverse paired FASTQ filename,\n+ - Output singles FASTQ filename (orphan reads)\n+\n+The input file should be a valid FASTQ file which has been sorted so that\n+any partner forward+reverse reads are consecutive. The output files all\n+preserve this sort order.\n+\n+Any reads where the forward/reverse naming suffix used is not recognised\n+are treated as orphan reads. The tool supports the /1 and /2 convention\n+originally used by Illumina, the .f and .r convention, and the Sanger\n+convention (see http://staden.sourceforge.net/manual/pregap4_unix_50.html\n+for details), and the new Illumina convention where the reads have the\n+same identifier with the fragment at the start of the description, e.g.\n+\n+@HWI-ST916:79:D04M5ACXX:1:1101:10000:100326 1:N:0:TGNCCA\n+@HWI-ST916:79:D04M5ACXX:1:1101:10000:100326 2:N:0:TGNCCA \n+\n+Note that this does support multiple forward and reverse reads per template\n+(which is quite common with Sanger sequencing), e.g. this which is sorted\n+alphabetically:\n+\n+WTSI_1055_4p17.p1kapIBF\n+WTSI_1055_4p17.p1kpIBF\n+WTSI_1055_4p17.q1kapIBR\n+WTSI_1055_4p17.q1kpIBR\n+\n+or this where the reads already come in pairs:\n+\n+WTSI_1055_4p17.p1kapIBF\n+WTSI_1055_4p17.q1kapIBR\n+WTSI_1055_4p17.p1kpIBF\n+WTSI_1055_4p17.q1kpIBR\n+\n+both become:\n+\n+WTSI_1055_4p17.p1kapIBF paired with WTSI_1055_4p17.q1kapIBR\n+WTSI_1055_4p17.p1kpIBF paired with WTSI_1055_4p17.q1kpIBR\n+"""\n+\n+if len(sys.argv) == 5:\n+    format, input_fastq, pairs_fastq, singles_fastq = sys.argv[1:]\n+elif len(sys.argv) == 6:\n+    pairs_fastq = None\n+    format, input_fastq, pairs_f_fastq, pairs_r_fastq, singles_fastq = sys.argv[1:]\n+else:\n+    sys_exit(msg)\n+\n+format = format.replace("fastq", "").lower()\n+if not format:\n+    format="sanger" #safe default\n+elif format not in ["sanger","solexa","illumina","cssanger"]:\n+    sys_exit("Unrecognised format %s" % format)\n+\n+#Cope with three widely used suffix naming convensions,\n+#Illumina: /1 or /2\n+#Forward/revered: .f or .r\n+#Sanger, e.g. .p1k and .q1k\n+#See http://staden.sourceforge.net/manual/pregap4_unix_50.html\n+re_f = re.compile(r"(/1|\\.f|\\.[sfp]\\d\\w*)$")\n+re_r = re.compile(r"(/2|\\.r|\\.[rq]\\d\\w*)$")\n+\n+#assert re_f.match("demo/1")\n+assert re_f.search("demo.f")\n+assert re_f.search("demo.s1")\n+assert re_f.search("demo.f1k")\n+assert re_f.search("demo.p1")\n+assert re_f.search("demo.p1k")\n+assert re_f.search("demo.p1lk")\n+assert re_r.search("de'..b'_handle = open(input_fastq)\n+if pairs_fastq:\n+    pairs_f_handle = open(pairs_fastq, "w")\n+    pairs_r_handle = pairs_f_handle\n+else:\n+    pairs_f_handle = open(pairs_f_fastq, "w")\n+    pairs_r_handle = open(pairs_r_fastq, "w")\n+singles_handle = open(singles_fastq, "w")\n+last_template, buffered_reads = None, []\n+\n+for title, seq, qual in FastqGeneralIterator(in_handle):\n+    count += 1\n+    name = title.split(None,1)[0]\n+    is_forward = False\n+    suffix = re_f.search(name)\n+    if suffix:\n+        # ============\n+        # Forward read\n+        # ============\n+        template = name[:suffix.start()]\n+        is_forward = True\n+    elif re_illumina_f.match(title):\n+        template = name  # No suffix\n+        is_forward = True\n+    if is_forward:\n+        # print(name, "forward", template)\n+        forward += 1\n+        if last_template == template:\n+            buffered_reads.append((title, seq, qual))\n+        else:\n+            # Any old buffered reads are orphans\n+            for old in buffered_reads:\n+                singles_handle.write(FASTQ_TEMPLATE % old)\n+                singles += 1\n+            # Save this read in buffer\n+            buffered_reads = [(title, seq, qual)]\n+            last_template = template\n+    else:\n+        is_reverse = False\n+        suffix = re_r.search(name)\n+        if suffix:\n+            # ============\n+            # Reverse read\n+            # ============\n+            template = name[:suffix.start()]\n+            is_reverse = True\n+        elif re_illumina_r.match(title):\n+            template = name  # No suffix\n+            is_reverse = True\n+        if is_reverse:\n+            # print(name, "reverse", template)\n+            reverse += 1\n+            if last_template == template and buffered_reads:\n+                # We have a pair!\n+                # If there are multiple buffered forward reads, want to pick\n+                # the first one (although we could try and do something more\n+                # clever looking at the suffix to match them up...)\n+                old = buffered_reads.pop(0)\n+                pairs_f_handle.write(FASTQ_TEMPLATE % old)\n+                pairs_r_handle.write(FASTQ_TEMPLATE % (title, seq, qual))\n+                pairs += 2\n+            else:\n+                # As this is a reverse read, this and any buffered read(s) are\n+                # all orphans\n+                for old in buffered_reads:\n+                    singles_handle.write(FASTQ_TEMPLATE % old)\n+                    singles += 1\n+                buffered_reads = []\n+                singles_handle.write(FASTQ_TEMPLATE % (title, seq, qual))\n+                singles += 1\n+                last_template = None\n+        else:\n+            # ===========================\n+            # Neither forward nor reverse\n+            # ===========================\n+            singles_handle.write(FASTQ_TEMPLATE % (title, seq, qual))\n+            singles += 1\n+            neither += 1\n+            for old in buffered_reads:\n+                singles_handle.write(FASTQ_TEMPLATE % old)\n+                singles += 1\n+            buffered_reads = []\n+            last_template = None\n+if last_template:\n+    # Left over singles...\n+    for old in buffered_reads:\n+        singles_handle.write(FASTQ_TEMPLATE % old)\n+        singles += 1\n+in_handle.close\n+singles_handle.close()\n+if pairs_fastq:\n+    pairs_f_handle.close()\n+    assert pairs_r_handle.closed\n+else:\n+    pairs_f_handle.close()\n+    pairs_r_handle.close()\n+\n+if neither:\n+    print("%i reads (%i forward, %i reverse, %i neither), %i in pairs, %i as singles"\n+          % (count, forward, reverse, neither, pairs, singles))\n+else:\n+    print("%i reads (%i forward, %i reverse), %i in pairs, %i as singles"\n+          % (count, forward, reverse, pairs, singles))\n+\n+assert count == pairs + singles == forward + reverse + neither, \\\n+    "%i vs %i+%i=%i vs %i+%i+%i=%i" \\\n+    % (count,pairs,singles,pairs+singles,forward,reverse,neither,forward+reverse+neither)\n'
b
diff -r 528ba9c896e0 -r 09f9f0e29e47 tools/fastq_paired_unpaired/fastq_paired_unpaired.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/fastq_paired_unpaired/fastq_paired_unpaired.xml Wed Aug 05 11:06:38 2015 -0400
[
@@ -0,0 +1,120 @@
+<tool id="fastq_paired_unpaired" name="Divide FASTQ file into paired and unpaired reads" version="0.1.1">
+    <description>using the read name suffices</description>
+    <requirements>
+        <requirement type="package" version="1.64">biopython</requirement>
+        <requirement type="python-module">Bio</requirement>
+    </requirements>
+    <stdio>
+        <!-- Anything other than zero is an error -->
+        <exit_code range="1:" />
+        <exit_code range=":-1" />
+    </stdio>
+    <version_command interpreter="python">fastq_paired_unpaired.py --version</version_command>
+    <command interpreter="python">
+fastq_paired_unpaired.py $input_fastq.extension $input_fastq
+#if $output_choice_cond.output_choice=="separate"
+ $output_forward $output_reverse
+#elif $output_choice_cond.output_choice=="interleaved"
+ $output_paired
+#end if
+$output_singles
+    </command>
+    <inputs>
+        <param name="input_fastq" type="data" format="fastq" label="FASTQ file to divide into paired and unpaired reads"/>
+        <conditional name="output_choice_cond">
+            <param name="output_choice" type="select" label="How to output paired reads?">
+                <option value="separate">Separate (two FASTQ files, for the forward and reverse reads, in matching order).</option>
+                <option value="interleaved">Interleaved (one FASTQ file, alternating forward read then partner reverse read).</option>
+            </param>
+            <!-- Seems need these dummy entries here, compare this to indels/indel_sam2interval.xml -->
+            <when value="separate" />
+            <when value="interleaved" />
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="output_singles" format_source="input_fastq" label="Orphan or single reads"/>
+        <data name="output_forward" format_source="input_fastq" label="Forward paired reads">
+            <filter>output_choice_cond["output_choice"] == "separate"</filter>
+        </data>
+        <data name="output_reverse" format_source="input_fastq" label="Reverse paired reads">
+            <filter>output_choice_cond["output_choice"] == "separate"</filter>
+        </data>
+        <data name="output_paired" format_source="input_fastq" label="Interleaved paired reads">
+            <filter>output_choice_cond["output_choice"] == "interleaved"</filter>
+        </data>
+    </outputs>
+    <tests>
+        <test>
+            <param name="input_fastq" value="sanger-pairs-mixed.fastq" ftype="fastq"/>
+            <param name="output_choice" value="separate"/>
+            <output name="output_singles" file="sanger-pairs-singles.fastq" ftype="fastq"/>
+            <output name="output_forward" file="sanger-pairs-forward.fastq" ftype="fastq"/>
+            <output name="output_reverse" file="sanger-pairs-reverse.fastq" ftype="fastq"/>
+        </test>
+        <test>
+            <param name="input_fastq" value="sanger-pairs-mixed.fastq" ftype="fastq"/>
+            <param name="output_choice" value="interleaved"/>
+            <output name="output_singles" file="sanger-pairs-singles.fastq" ftype="fastq"/>
+            <output name="output_paired" file="sanger-pairs-interleaved.fastq" ftype="fastq"/>
+        </test>
+    </tests>
+    <help>
+
+**What it does**
+
+Using the common read name suffix conventions, it divides a FASTQ file into
+paired reads, and orphan or single reads.
+
+The input file should be a valid FASTQ file which has been sorted so that
+any partner forward+reverse reads are consecutive. The output files all
+preserve this sort order. Pairing are recognised based on standard name
+suffices. See below or run the tool with no arguments for more details.
+
+Any reads where the forward/reverse naming suffix used is not recognised
+are treated as orphan reads. The tool supports the /1 and /2 convention
+originally used by Illumina, .f and .r convention, the Sanger convention
+(see http://staden.sourceforge.net/manual/pregap4_unix_50.html for details),
+and the current Illumina convention where the reads get the same identifier
+with the fragment number in the description, for example:
+
+ * @HWI-ST916:79:D04M5ACXX:1:1101:10000:100326 1:N:0:TGNCCA
+ * @HWI-ST916:79:D04M5ACXX:1:1101:10000:100326 2:N:0:TGNCCA 
+
+Note that this does support multiple forward and reverse reads per template
+(which is quite common with Sanger sequencing), e.g. this which is sorted
+alphabetically:
+
+ * WTSI_1055_4p17.p1kapIBF
+ * WTSI_1055_4p17.p1kpIBF
+ * WTSI_1055_4p17.q1kapIBR
+ * WTSI_1055_4p17.q1kpIBR
+
+or this where the reads already come in pairs:
+
+ * WTSI_1055_4p17.p1kapIBF
+ * WTSI_1055_4p17.q1kapIBR
+ * WTSI_1055_4p17.p1kpIBF
+ * WTSI_1055_4p17.q1kpIBR
+
+both become:
+
+ * WTSI_1055_4p17.p1kapIBF paired with WTSI_1055_4p17.q1kapIBR
+ * WTSI_1055_4p17.p1kpIBF paired with WTSI_1055_4p17.q1kpIBR
+
+**References**
+
+If you use this Galaxy tool in work leading to a scientific publication please
+cite the following paper:
+
+Peter J.A. Cock, Björn A. Grüning, Konrad Paszkiewicz and Leighton Pritchard (2013).
+Galaxy tools and workflows for sequence analysis with applications
+in molecular plant pathology. PeerJ 1:e167
+http://dx.doi.org/10.7717/peerj.167
+
+This tool is available to install into other Galaxy Instances via the Galaxy
+Tool Shed at http://toolshed.g2.bx.psu.edu/view/peterjc/fastq_paired_unpaired
+    </help>
+    <citations>
+        <citation type="doi">10.7717/peerj.167</citation>
+    </citations>
+</tool>