galaxy-dev
Threads by month
- ----- 2026 -----
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- 10009 discussions
04 Aug '09
details: http://www.bx.psu.edu/hg/galaxy/rev/61dd78cafa09
changeset: 2517:61dd78cafa09
user: Kelly Vincent <kpvincent(a)bx.psu.edu>
date: Fri Jul 31 11:48:37 2009 -0400
description:
Added solid_to_fastq and fastq_conversions converters to Convert Formats section
14 file(s) affected in this change:
test-data/s2fq_out1.tabular
test-data/s2fq_out2.tabular
test-data/s2fq_out3.tabular
test-data/s2fq_paired_F3.csfasta
test-data/s2fq_paired_F3_QV.qualsolid
test-data/s2fq_paired_R3.csfasta
test-data/s2fq_paired_R3_QV.qualsolid
test-data/s2fq_phiX.csfasta
test-data/s2fq_phiX.qualsolid
tool_conf.xml.sample
tools/next_gen_conversion/fastq_conversions.py
tools/next_gen_conversion/fastq_conversions.xml
tools/next_gen_conversion/solid_to_fastq.py
tools/next_gen_conversion/solid_to_fastq.xml
diffs (2324 lines):
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_out1.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_out1.tabular Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,576 @@
+@1831_573_1004/1
+AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
++
+><C&&9952+C>5<.?<79,=42<292:<(9/-7
+@1831_573_1050/1
+TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
++
+;@@17?@=>7??@A8?==@4A?A4)&+.'&+'1,
+@1831_573_1067/1
+AAGTATGAGTCATTTACCGGGATGCGAAGAAAAG
++
+++#%(',%/$,+&1#&),)&+'*'*%#$&#%('$
+@1831_573_1219/1
+CGCCCTATAATAATACAGCGCGTTAGACCGCTCA
++
+@@=4/+)5)408?'665>*/5?<61';<3,:,5-
+@1831_573_1242/1
+GCTGAATCGCACCTAGCAACTATAGCCGGGCCGC
++
+>>::>17=A5?@@=;7A=;2.60>82<8=74+;;
+@1831_573_1333/1
+AGAATCGTTACCACACACTGCGTCTGGGTATCCG
++
+='@#%3=.>)/34*117,,/6-4+.9742456<)
+@1831_573_1362/1
+CGATCTCAACCAGGTCCGCGCCCACCCCTGCCTC
++
+B@@?@@?@C@BA?@>@<@8A@?@'.8'?17:,+?
+@1831_573_1448/1
+TCACGCCGGTCCTTGACTGGCGTTCTCTTCGAGG
++
+7=A)?,.@A@@:@@<=/7)@<-#8662%9613&+
+@1831_573_1490/1
+CTCGTCATGTTACGCAAAGGCACGTCACAGCACC
++
+@@@?,@??@$><=>+%/*>*1,)?26&12'9%7.
+@1831_573_1523/1
+ATGGAACGGAACGGGTGAGGAGGGGAACGTAGGG
++
+,//*,#8''.6''6'2&27/80)%�'%#*,2'
+@1831_573_1578/1
+CGAGTAGCAAACAAGACGCCAATCCAGGCGACCC
++
+?=@<@C@?@@??=>@;7<<8<694)3511(+1<.
+@1831_573_1647/1
+AGGGGTTTACACTATTCGACTGGGTGAGAGGCGT
++
+?@@<@@???;A==@@;9?@?3=;6.4/;6:=/;4
+@1831_573_1684/1
+TTCAACTGCGTCGACGTAGCGCACAGGCGTCCGT
++
+>1:8<@39@@??9=;@@<>?@@<;<?7>76?9>?
+@1831_573_1769/1
+TGGACGTATAGTGGCGATGAGCATGTAGGTTCTC
++
+54749&&767%/7;3$-7;3#,3//#,45/#&06
+@1831_573_1853/1
+CAAAACGCCCGGGGCCTCACATGCGCGGCAGTTC
++
+4./B@@72B+/4?@?7?+@9/+99.')2<2&)2&
+@1831_573_1943/1
+ATAACGTATGGCAGTGAACGGGCGGAACCTGCCC
++
+>/*1,),@-)'0*>5'$/?6(a)/.&?8/(')A43,
+@1831_573_1977/1
+GGCGTAGGGCTCATTGTGCAAGTATCCGACCTCC
++
+@?6@8@@9A@=4633A7?9?<3:+7>'@%@?%32
+@1831_574_109/1
+TCGGTTGCGTTACTTCATGGGAGGGCTTTACATT
++
+7651#4817>@65<2:84716=788<1995.7?6
+@1831_574_148/1
+CGAACCTCGTATAACGGAGTAGTCGGAAACAGTC
++
+;->3;;3>//>0;;7=,=4-4/+>029<9<624;
+@1831_574_185/1
+CCGTTTTGCCTAGTAATGCTCGGCGCAGCGTCGC
++
+<4;%%@7>#*>97%6;+8$#<07%1372$%<54#
+@1831_574_243/1
+AGGCACCGTAACTCAGGACATTCTCGATTAGTTA
++
+@@@95@=9?*><45$<@<4%@9?7#=?>7&>?97
+@1831_574_257/1
+ATACCTTCCAAAGCAATAGAATAAAAAACAGTAC
++
+>>B>)@?>B@B?@1%*%,#+00.'(+&5&%#$3&
+@1831_574_293/1
+TGCTGCAAATAAACATACAGCCTTCTAATGACTA
++
+')7'.*%#&$'/.$##$.$&*)+*$#8%&%#&&%
+@1831_574_389/1
+CATGGCTATGCACCGGTTTGTAGCGTACTCGAGA
++
+)$>/>8):2@:213;;.1)@3%64%+)<7)+$92
+@1831_574_575/1
+TTCTTGGCAAGCGCAGATTATGCGTTCCGCCTAG
++
+?@>=?@>8@@@=@6*%&<='5@<<',0<=4*5/<
+@1831_574_592/1
+TCATTTACCACGTCAGGGTCGGAGTCATTCATTA
++
+3-5)19,,<@>4067<2.-864346;9<1/;212
+@1831_574_617/1
+AAGCATCGGCGGGAGCGCAAGCTGGGAAGGTGCC
++
+>@?;>?=@==@>@=5?@+@:@40@><:0)')64-
+@1831_574_725/1
+GACAAGATGGCTATTATTTACAATCCGATCTGCA
++
+'>?52+5=;4$6;<8.1<47*9+?7(+5;-).)4
+@1831_574_734/1
+CCTGTACGAAAGAACGTAGGCATGGGCTGGGGGG
++
+-&.$2&<*(-%):/)%5:)/%7+,9034*A.?70
+@1831_574_824/1
+AGCGCAAATTATGCGTTCCGCCTAGCGGAGAACT
++
+@@@;;),+@<-<7;<&89??&29?<$2:A<);8?
+@1831_574_959/1
+CGCGCTAGGACTCGGCCCCAAGAGACGTTCCGCC
++
+A=;+?@9;/<@;<8#&&/*%(%.0$0$2)+1$-1
+@1831_574_1062/1
+ACCGGTAATATAAGGCAACATGATTACGGCCACG
++
+@821<//:136/8<1/5.427.;>288/0<1$)/
+@1831_574_1092/1
+GACTGGCGAAATCATCGCGGAAAAACCCCTATCA
++
+8?.,98)03%#,,,(,++$'69'#9'7#';6.%2
+@1831_574_1103/1
+ATCTCCTGATTAGACATATCTCCGTAGCTCACGC
++
+??>?@=>@@A<>?=@==<:?<;58'&&):+35'1
+@1831_574_1116/1
+CACCTCACGTGAGTATAGCAGCCCGAGCGTCACC
++
+(a)++,)/)?./)%<)2>.==:8?&;44&/&,)/*4
+@1831_574_1194/1
+TTATCACATTTGGGGATCGGAAGGGACTACTTCG
++
+5>;,??9@9@?@1@@=@3=@>@4?@@94?75/,6
+@1831_574_1204/1
+CTTACTGGTCTGCTGGACATATAGTGGCGATGAA
++
+A5A5B@5:;@@,.9?A1?#.?;3),>82%)='7*
+@1831_574_1306/1
+ATTGCTTAGATCCAGTGGCGCTCAATACAACGGA
++
+2.7&%''.$&#'%##$#'#%')')$'$%$,)'.1
+@1831_574_1387/1
+GTACTTCTCAATGCTGCACTACTATGTACGCCCC
++
+?A??:@?@@9?@@?9C;:>&).,,);&'<&7(/'
+@1831_574_1431/1
+GACCAGTTTCAGGGCTAACCGTCCCTACTCGACC
++
+7?>9BA897;+8*=6#6.+5&-#26$0.,5&'$1
+@1831_574_1560/1
+GGCGTCTTAGGATTGAAGAGGGCCTCCCACCCCC
++
+))&65<4=>99@:597(1&;+&(%&4#,#&&&*$
+@1831_574_1591/1
+TGAGCACTTATGGCTAGGCGTAGGGGACCGTGAG
++
+=<A><?@78@<=;@&@6>8:?,><&&<7>8(8+9
+@1831_574_1624/1
+ACGGGAAGGGCTGGAATCTACCCAGTAGGCATTG
++
+<6.&(,7-+))7..'/;43.)927.(<85&13-)
+@1831_574_1826/1
+TACGTCGCGACCGAGCGTTATATAGTCTGACCCC
++
+@<<,))459<?.+57'-'&6?1)(;1;0&%4,#$
+@1831_574_1903/1
+AGTGCAACATCTGCTTTGCTTATCAGCACACGGC
++
+956?@>;7@@@8:@>8><=9>9>@2=71?1:6;/
+@1831_574_1961/1
+GTTTCACTTCGGTTATTAAGAAACCCAAATGGAA
++
+>-07-@>(2'@<#064@%5%@@6.&<<(9)=:47
+@1831_575_54/1
+TTTCTTATGGGTAGAACAGCTGCCACTGACTGAA
++
+=@@68<2;<8;?@<>+9>7,,6972&57:4&9<8
+@1831_575_80/1
+TCTTTGGGTTTGGGGCAATTTGGTATGTTCGTCT
++
+?5><@?/=5%(&.5)+#/0'/'>#$/'37#()6&
+@1831_575_192/1
+AACTACGCCCCTTAATTACACAGCGCGTTAGACC
++
+:8<,9(.=/)#%8$,4'<,:)3/.'.5<,>-;7'
+@1831_575_197/1
+TTCGCCTACACTTAGATACCTCTTAAACTCAATG
++
+-:?463@A:88?6?437<=.2&1.;@67.4@%2,
+@1831_575_223/1
+ACGCACAAAGGAGCTCGGCGCATAGCAACGCAGA
++
+?>?8?@:?;>+$'%&,+#$.--#%$1'&#-7$&'
+@1831_575_420/1
+CCCACATGGAAAACACTCACCGCCGAACAGAGCG
++
+2?.>?(-''2+..@),$%1@;')1)?+)7.')..
+@1831_575_434/1
+ATCGCTGCGAGGTCACCCTGGTTACGCCCCTTCC
++
+@@><@B@>=@@?>><@?;)@?;6.?=4,'';/3)
+@1831_575_444/1
+TAGGCGACCGTGAGGACAAGAGCTGTTGCCTTGA
++
+2@@;<.=?@<+=:A<<@?<</>@><(<8>4&5;>
+@1831_575_459/1
+CTTATCAGCACACGGTTTACCAGTCCGACTCCAA
++
+@@C@?A@@A@??A@@'6@@B'=;C@'4<=9,@1.
+@1831_575_506/1
+CGCAGAACCCGCACGCTTGTGCTCACCACTGTAC
++
+?)2*5@3+.7=?A:8@,/&):@37/<89'+4*)*
+@1831_575_569/1
+AGCAGACTGCTGTAACACGGTGTGGTGTAAGGAT
++
+'9-,@29+479%&>9#&08=>7#9>,69/+'*3)
+@1831_575_622/1
+CCAAATCCGGCCCAGTAAGTGTCCTGTCGCACCC
++
+A8B=@@?<@?<>>=?96<497)<4/<':4+;74+
+@1831_575_644/1
+CTTGAATGGCGATCTCGTCGAGGAAATACCACTA
++
+<8>.>&,+)8.10':5(/-62&*.=/%(.<&&18
+@1831_575_663/1
+GGCAACTTATCCGCATTGGTCCCACTGGAGCGCA
++
+@@@@A</;A>@6>0792<5966:?;25+:><1,+
+@1831_575_681/1
+TCTCCTGATTAGACATATCACTGTTGAACACAGC
++
+72?.)25;96-14'*.03'#4#++$)/8+%/((&
+@1831_575_711/1
+TATGTTCGTCCACGTCAGACGCGCAAAGTTGCGC
++
+%+:2(#'1+.)&*45-#,<A-%4;>+))<;##*&
+@1831_575_730/1
+CACACAGGAACCATAGCGTATGTTATTCACCCCC
++
+%8<%-')5,*1&=#)(1*1)->7$.,4'4'&'*&
+@1831_575_904/1
+ACCCGCTTAAAGACGTGAATTTTGCCTCCGCGCC
++
+<><.689@@7@<54:4=@>69=:+6-=42;8<:#
+@1831_575_938/1
+TCATCAGGGAAGGCTAGGGGTTTACACTATTCGA
++
+:@@:?@;=8;>=;;:=<93<4.;<6:2<9;4)87
+@1831_575_970/1
+TGACTCCTACAGTCTTTATAGTACCGAGGGAGGC
++
+@=@=;@@><@@:9<:=?;>@=?9>>?@:2===<5
+@1831_575_991/1
+TTCGGCGATCCCCCCCACGGCGCGATGCCGCGCA
++
+>>;7???/4<:::,#&*%'$--5-#(7)&&,-)%
+@1831_575_1138/1
+TTGAAAGACCTGAACGCGATTTCATGTTTACTGC
++
+=0;%1936+?96?,?5<:2>@6@<:;4>.7;*:1
+@1831_575_1157/1
+TCGCTGTTTAGATTTCGGGAGGGTACTTCAGTGC
++
+B@B>?A?A@?9'?;?&8?@@6;<@=+<:99+965
+@1831_575_1180/1
+GAATTCACGGCAGTGTTATCACCGTTTCCTTCCA
++
+<B>5?':/78?;1;55:997@@>94=7<186->7
+@1831_575_1283/1
+GGTGGAATACTAAGGACTAATGTGCTGTCTCTTT
++
+C@A54><?A78@<?2>:#>=?@2>80:'?69.'7
+@1831_575_1302/1
+CGACTATTCGTTTCGTCTAGAACGTGACACTAGC
++
+12>/#2'&-2&%'7+$%*#$/1(&&12/$,2,,*
+@1831_575_1310/1
+CTTGCTCTCGAGCTATGCCTCAGGACACGCCCTT
++
+<<>663?99@(@7=11@:@@/7??<@<;>'3-7;
+@1831_575_1321/1
+CAACACAGTTGAACGGCGGAGGAGTAAAGATGCG
++
+;B@?@>=A@<A?>@>?6>@5>'4@9?)7@7?/89
+@1831_575_1373/1
+CGCTACCGGTTCCAACGGCTGCCTGACTCGCGGA
++
+@@@>@;=9<@??7@>@:@;@;17?630/7=4,2<
+@1831_575_1419/1
+TGGGGAATATAACAGCGTAGCGTTGAACACTAGA
++
+//3->&-.->%11/@&/&7:<,-1=,+2<6'%&<
+@1831_575_1436/1
+TGCATCTAGCGCGTATTGCGAGCCTTACGGATTC
++
+2@=;39*3<*4<:>52>>9'7:<='0=>1'136<
+@1831_575_1442/1
+TCTGACAAGGTTCCTGCACCTGCGTCTGAGAGGG
++
+>58<?7>+1B6-/9<<:5?>A:1@?539.@4/1>
+@1831_575_1454/1
+CCTCCTAACCACGAGCCGAGGGGTCTCTGCCCCT
++
+4=?8=6589=0:A=:?>6<;@/,4+-6+/'.,(,
+@1831_575_1500/1
+CACAAAAGGTCCCTACCTGTCTACCCTACATAGC
++
+?@@?A@?8<6<:985=99999==B3<5<<,7?>9
+@1831_575_1535/1
+CTCGACGATATGACCGCCAGCCACTTAACTCCGC
++
+B=@<@@B?:A@@=>@?68@=?@5?7;:6<<;>5<
+@1831_575_1724/1
+TCGTAAGTGTTAAGGAGCTGTGTACAAAACAACA
++
+<B.+@),2*.%)))4%2@;7#%(%+$8))85%&5
+@1831_575_1829/1
+CATTTGCTGACCCTGCGTAGTTTAGTCTCACAGC
++
+2(*'%.3$+7)@&%$'3*+*#/#/*+0.=&#)+0
+@1831_575_1898/1
+CTTACCATATCATCTCAACCCATAACAGCACTTA
++
+B>@@&1/))'40)%#8/.%#8$((#;4'$'63,,
+@1831_575_1964/1
+GACAGACCATGAGGCTGAAGACTACTAAGTGCGT
++
+>39)@2<2/@+9?2=&)>>@*62=5&2<42.'?+
+@1831_576_32/1
+TACGCAACGATTTATGGCCTTATAATTGAGGCCA
++
+<>?>?=7<2)522;><<@40@>704<>5=23@+&
+@1831_576_74/1
+ACATTCTGCAGTGGGACAGAGCGGTACGCCGCAA
++
+=@@?@>(??<B5?@@@9<@><+><;@';>6961?
+@1831_576_86/1
+ATGAAAACGCATTAGGACAACCATAATGGCCTCA
++
+811)2:*.++5</:3+43924*))/:,6&29)2/
+@1831_576_89/1
+GCTGTTTGATTTGAGAAGAGGAATTAAGCGCCGA
++
+)69+,'.4=-,>/>(*$#)3030*'(,%)2##$,
+@1831_576_266/1
+ATGGGGTCACTCGACCTAATCCCGCGGCTTTGGT
++
+@@?=;<?7=@>9,>@1$&&89$/:>7'3178%&6
+@1831_576_327/1
+GCCGTTCTACTCTAGCTGCAACTTGCGATTGCTA
++
+@?@6@@;<@?><@>==3@:==<3@@>53<9><6=
+@1831_576_331/1
+GACGCTTTACTCCGGTAGTACCGTGCCGTTTATA
++
+-2)+(*.*1/;5%.-9&#/1'+($*$##()%/$.
+@1831_576_387/1
+ACACGCCATGATCCGATAAGAAGGGAACGTAAGG
++
+8).$5#1#*%.$##.*#$%##-%,+,1#&%.%))
+@1831_576_406/1
+AGGTCTTACAGCACGGGGCTGAGCGCATCTGACC
++
+4<>%%14:*4656)&<251&2+3#&19,6&4>5(
+@1831_576_449/1
+CTCGAACCGCGGGGTCCAAAGACTGCTGCAAGGA
++
++'&'.,,$/+.)$$8&%#+?&,#)-&###7,+#*
+@1831_576_519/1
+TACCTGCCTACTACTTGCTCTCGAGCTATGCCTC
++
+=46<97@>2/6?;2<4A881>9121+<1/4.9+7
+@1831_576_603/1
+CAATATGTCTTAGTCGTGACTCGGCAACTTATCC
++
+@46=@C.??<A79@@;-<@@>29B?>55<B7598
+@1831_576_655/1
+GAACAGTCTATAGTGGCGGGAATCTCGTCGTCAG
++
+@AA9@@<6*>@@5/<@>9'=;>7+@?9>/9;+,%
+@1831_576_677/1
+TTTACTCAGTTGATACATCACTGTAGCACATAGG
++
+290&/*0#&'&,.2'#&*$&('#-%($*#%$)#%
+@1831_576_718/1
+CGTGCCTTTCAGGGTCTTTTCTGGTCTGGTCGCT
++
+4###$0###%(#########,####%####$###
+@1831_576_722/1
+CGTATGATGGCGAGTCTTTATAATCCAATCTGAA
++
+*,-,##.)*&(*1%*(%(-2#+)-#.&-#%%$')
+@1831_576_754/1
+AGGCGTCCTGCATCGACCGTTCTATCCGCTTAGA
++
+4//#(.$)'',>($<,##%((,#5?#0*%1*
+@1831_576_815/1
+TAGGCCTGATATGACACGATCACAGTGCAACATC
++
+3>@?9>@?B=>=;>A???=>:25=4.25?6<57.
+@1831_576_882/1
+TGTAAGACGGTGAGGTGTAAGGATCAGACCACGG
++
+26?8?@:4>@>96??<<=5'1<>9846=<9<1>8
+@1831_576_898/1
+AGTACTGTCGCGCATTGGGGTCCTGGTCGTTGCT
++
+@@C2?C>?<>@886B?;?.??87=B<8<15??=.
+@1831_576_923/1
+CTGGACATGAGAGACTGCACGCGGTACACGTCGG
++
+6.51=;.699<96>;;49<;;11;<@59:9=647
+@1831_576_930/1
+CTGGCATGTACGTCCATGTCAGACGAGCAGAACT
++
+#*0.2&.:((#'14'##-)#%$$2%#$/1&#%/#
+@1831_576_1019/1
+GATGCGCGCTGTCATGGCATCGAACCATCGGTCG
++
+<$>$,1,&++&@,.)'+/+#9'69/6'2(+-'9-
+@1831_576_1068/1
+AAGAGTGACTCACTTACCGGGATGCGATGGAGCC
++
+>><=4?;@7=??9?;9>5@9?:8@:=5';7;'#4
+@1831_576_1131/1
+AGTTCGGGAAGGGCTGGAATCTACCCAGTAGGCA
++
+04@#@/@,4>9?2+?1571@',>=;(759;*92<
+@1831_576_1168/1
+CACTTAACTCCGCTGTCGGAAGCCTTACAAGACA
++
+@CC6@@2?9=>7?;76<;467@;9,0%26'',4$
+@1831_576_1207/1
+CAACCTGACTAAACGGGGATACGCTGGCGCTACA
++
+$>2,(&?4?(,@:<&,@>?$&:8A%%=0.%,597
+@1831_576_1289/1
+TAGCGCAAGTCCAGAATGTTCATAGACTCGCGAT
++
+9<>1B@@;7@@663==28,5':8<<,.=2>>.50
+@1831_576_1329/1
+CCAATAGCAGAGACCTAATAGGAAACGAAAGCAA
++
+>&0,870/A@@/5.;=;:'&@3'&$$%,+#($&2
+@1831_576_1367/1
+GGTCTCATCCGTTCCAATCGGGACTTTGACCAGT
++
+?@@<>@@=@<@<=@>@??9:?<=>=<8;59@787
+@1831_576_1416/1
+TAGCGTTCAACGTCGATCTCATCTTGCCGATGGC
++
+';?..1.<@'.=+6.5?7<0-?7;(%=>56.98@
+@1831_576_1461/1
+GAGGGGCGGCCCGGTTCAAGCAGGTAAGCAACAA
++
+1&74#(#(&##$#,'###%#%%#*#&%%##%%%'
+@1831_576_1605/1
+AGTGCAACATCTGCTTTGCTTATCAGCACACGGC
++
+<@C@@>1;@:;<<@@9@???9<3?5-21=4877,
+@1831_576_1664/1
+CGCGCACAACTCGCCATGATACGACAAGACCCGA
++
+@?>?@=A:@@>@='=<>=).>=9*8)(7#/++;)
+@1831_576_1671/1
+GTCTTTGTAAGCCTGGCCTGGTCAGGTCTGGTCT
++
+@?@5>@@8&8?25#&)&5&&)15&&,&4%&,&6%
+@1831_576_1729/1
+CGTTTCGTCTACAACGTGACACTAGCACAGTATA
++
+?@?<?<@>A?/==?>?7>?@8<?@>99;><+0=>
+@1831_576_1880/1
+TATGCGCTGTTGAGCTTACAACTCACTAGCGAAT
++
+515/792,:,7/%/05,%$):+#8%2(1754))3
+@1831_576_1982/1
+AATGTCGTCAGACGACTTTGGCGCGAAAACCATA
++
+@@?@,A><@9@=?@9B=8<6@@6@2<A?>.7<+@
+@1831_576_1987/1
+AAGGTCTTCTGTCGGCGCTGGACTGAACACCTGA
++
+##()(#&##)%)/-#%$11#%3>'##&$,#$$'+
+@1831_576_2014/1
+CCGTGACACACAATGCCGGCCCCAGCCTAGCAAT
++
+@@9,B29-5>'?,+?79+/A';'2@'5&/9,6&1
+@1831_576_2028/1
+ACTCGCCGCATCCCCGAGTGACGCTCGAGACCAA
++
+<>9>5'2(&707.8#&&39,0%7/#(#,*%&5*+
+@1831_577_40/1
+CCCCGCGTTACGAACGAGAGAAATCTCTTATAAT
++
+2/4('.')(<*?#$)%&<,/39<(.2,+<=@611
+@1831_577_119/1
+TCCCACAAGCCATTGACATGCTCGCTCTAAACAG
++
+>?C11)-1/)#;#/,850*+.+$$5550+%-.40
+@1831_577_133/1
+TGCTTGTACGGTCTAACGGGGTATGGGTTTCTGG
++
+4@>>?=1?:+>@07@@><>@*<+1@15)96'2$)
+@1831_577_255/1
+ATTGAGGCCAAGATAATTGAGGAGAGAGAAGGTG
++
+<=87@>69%**#&#-+$.#&&#+$-+%&%.,%5#
+@1831_577_281/1
+TATGTACGTCGCGTACACTCCGGGGCCCGCAAAA
++
+-:B;8@=;>7@>4?=?+659?;5<7?;9@8(>:?
+@1831_577_288/1
+CATCCGAGGCTATCAAGGCGTAAGCACTGACCTA
++
+;/79??&=B::298*6.7/+4&21,7,6?.7#'6
+@1831_577_322/1
+GAATGCTGGAGTACATTATGACAAACTATCGGAG
++
+=;>4506;255464-<#7+194&2<?65968)7/
+@1831_577_362/1
+CGATTAGTTACCACTCGTATTCGCACGCCCAGGA
++
+2B?:@?@<?958=,3:,90:&'-99,6<5.($+6
+@1831_577_382/1
+GTCGCGTATTCCCCGATGCTATGTAGACTTGCAA
++
+2957/:1))=76(*24;,3+:<.&.&-=1=2/5*
+@1831_577_464/1
+TAGAGGCACCCTAACTCAGGGCTTTCTCGATTAG
++
+=<7/<826)>#.'&4204+5#/041.7*91&756
+@1831_577_488/1
+TGAATAGTTATGGCCAGAATGTCTGCACCGATAC
++
+48.,*>6566<?8=<=<2>6;94>;=9>@8924@
+@1831_577_511/1
+GGTGCTTATCAGTTCTTTCTCGGGACTTGTATTT
++
+7/+&$:<7%6,$$%'%/+)#$7((&*3>16'0/+
+@1831_577_545/1
+ACCGCTCTTTGGGTATGGGGCAATCTGGCATGTT
++
+><<9?<>?A<481@<@8==@76/61<95.5988-
+@1831_577_559/1
+GTGCCACTATGTTCGACAGACCCTAAGGCGGAAG
++
+<@;??@>@?/2<.@1=>12=61/;=?.&2+92)'
+@1831_577_562/1
+GTTCCACTACGTTCCACGCAAAGGAATCCGAATC
++
+((&*&0%)1%)#($2-,***%/-,,))&,-.1'*
+@1831_577_637/1
+GCCTTCGCGGGAGCATATCAGTCGATACATCCCA
++
+-,4#>:-6+:8,&(5;3=0>7=68&1/9&'?;4,
+@1831_577_641/1
+TATCTACCACCGCGGTGGCGCGAGAATGCTCCCT
++
+47;/':A;;5?:72,(=),#*?+.#&7$8#%7/'
+@1831_577_692/1
+CCGGTGAGAATTACATCGCGAGTACGCCCAAGGA
++
+B,@?@B(@A?@+@@>@+?=>@'=<@<=<9=?75<
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_out2.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_out2.tabular Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,192 @@
+@1378_11_329/2
+GTTCGTGGCCGGTGGGTGTTTGGG
++
+###$$#$#$&#####$'$#$###$
+@1378_17_1788/2
+TGGGTGGATGTGTTGTCGTTCATG
++
+#$#$###$#$#######$#$####
+@1378_25_2035/2
+GTGCGTCGGGGAGGGTGCTGTCGG
++
+######%#$%#$$###($###&&%
+@1378_28_770/2
+GGTTGGGAGTTGGCGCGCGTGGTT
++
+###$##%%$####%#%$#%%#($$
+@1378_33_1945/2
+GGGGGGGGGGGGGGGGGGGGGGGG
++
+.6;?;55697>8779457986264
+@1378_34_789/2
+GGGCTTGCGTTAGTGAGAGGTTGT
++
+###%$%$%%###$####$###$#&
+@1378_35_263/2
+GGCGGGGGGGGGGGGGGGGGGGGG
++
+$%%&,)3/)%$-6'$&5&#$''5.
+@1378_43_186/2
+GCTAGGGTTTGGGTTTGCGGTGGG
++
+$%#$########%##%#$###'#'
+@1378_51_1671/2
+GGTGTTGTTCGGATGTAGCGTGGG
++
+##%$$####$########$##0##
+@1378_56_324/2
+GCTGGGTGATCTAAGGAATGTAAT
++
+#$#####$$$#$$$$##%###*(#
+@1378_56_773/2
+TCTGGTCGGTTTCGGGGAGTGGAA
++
+##%%#&$###$#$##%$####%%$
+@1378_62_2027/2
+GTTGGCCTGGCCTGCCGTGCTGCG
++
+*##),/%##$)#%##1$#'%.#&#
+@1378_62_2029/2
+GGCGGTGTGTGGTGCGGCTGTGCG
++
+/$$$=(####%####)$$%$-&%#
+@1378_67_1795/2
+CGTGCCAACGACCGTCCTACGGAG
++
+@@.?7@@@.@:@A<<>>=>70<@7
+@1378_68_466/2
+GTGTCATCTGAGGTAAAGCATTGT
++
+/##$09#$#.=$#$76+$%1'###
+@1378_68_1692/2
+TGTTCGATTTAGGTCTTGCCTCGC
++
+###%%$%%##%$#$##$###$$#$
+@1378_80_664/2
+TGTCTGCGTTGTATCTCTGGTGTA
++
+%##%,%$$#&$$###$#$%##'%#
+@1378_85_1786/2
+CCCTAGGAGCGTATACCGGACGAG
++
+,'&/%/@,&1,&'/)&,6&&1)((
+@1378_86_1011/2
+AGGCGATGGGATATTATTTTACTT
++
+:$###)%##$9$###1$$#$2###
+@1378_86_1789/2
+GGCCAGGTACTAATAAATTCAACA
++
+1.51/&%#'$,*?%#6&0$$5,20
+@1378_91_1596/2
+GCTTTTTCATTCGGTGCCTTTGGA
++
+'>%/3%=()8'#.%?50$&5>%)%
+@1378_94_1595/2
+GCGGGTTAACCCAGTACCTCTGGC
++
+,8@6'>8<76>@@(->9)7'*941
+@1378_95_1039/2
+GTTCTGTGCCAGGTGAGGTACGGA
++
+&##,./#$&)6##+,'#$$0(##$
+@1378_95_1767/2
+CTAATTGACCGGGCAAGCTATTAA
++
+',,2'(10/>:=/7).3&%6&)&6
+@1378_96_1037/2
+CTGCTGGGCCATTTGACTTACTCA
++
+'$#+#(##-%5##+*&###-.$$$
+@1378_96_1764/2
+TCTTTGTAACCCACTTAGTATTTC
++
+4='28>.@4881B807:822>%)1
+@1378_98_1574/2
+AGGCGAGTGTGGGGGTTGTTTGAG
++
++%%$#)##%##$####%###$%$#
+@1378_107_1647/2
+GGTCTGGTTCTATGTTGGTCGACT
++
+###'$$#$$$(#%###(#$##$%#
+@1378_111_829/2
+GGTCTTCTATGGTGCTAAATTAGT
++
+$##'&###$##)#%($#$%#$'%#
+@1378_111_1900/2
+GCACGCCTTTGGGCTAAGCCGTAA
++
+)$)'#%$########$'#&%$#(#
+@1378_112_1483/2
+TGGAGTGGTGTGTTTGCTGAGCCA
++
+#$#)#############$#%#%'%
+@1378_125_1287/2
+TGACGTGGGTTGTCCCGTGAGATT
++
+##$%%#$###$##$$#&%##$(%%
+@1378_126_468/2
+AAAAAACGGGCCGGGCGGACTAGG
++
+@@B@@@>@2>1+?:92)>@8&&<+
+@1378_127_664/2
+TCGCTTTGCCTATGTTTGTTCGGA
++
+#%$%#&##$%#%%###$$###)-'
+@1378_129_463/2
+AAAAAAAAAAAAAAAAAAAAAAAA
++
+,)&20%8'(&35-***1-2&+510
+@1378_129_875/2
+GACCTTTACGTATTGGGGGTTGGC
++
+###)###+###$##$#&%##$,#$
+@1378_140_1251/2
+TTTCCTTCGTGTGCGTGCGGAGTG
++
+#%#%$##$$$######.$$$%#%(
+@1378_141_809/2
+TCTCGTGGTTTCTTTTTTATGTGT
++
+##%)##$$#####%$#$#%%#'##
+@1378_144_983/2
+GTTCGTTCGTGGTGTACGAGGGTG
++
+#(#%#####($#%##$$#%##%#)
+@1378_153_270/2
+GGCCGTGTGCGGGTGTAGATTGGA
++
+%$##($######&##$&$$$$%##
+@1378_155_1689/2
+CGCGTTCGGACAAAGCTAGCACCT
++
+@4@@=6=@@<4:@@681@@@.24.
+@1378_157_1580/2
+GGGATTGAAGGGATGTATGCTAGG
++
+#%$&%#$$'%$%#$##*#%$$$$#
+@1378_161_317/2
+AATCCATACCCACAAAAGCAGGCC
++
+.&%','(@''?7//+&)+2.+)0)
+@1378_177_735/2
+CGAGCCCTAAACCATGAGATCGGA
++
+@@B>@AC9@A<B8@=9>7@5)>,0
+@1378_181_1684/2
+TTTCTGTTGTGGTTTTGTTGGGGT
++
+$##'$%'##%##$%$#$$####$*
+@1378_187_1407/2
+TTGGGTGAAATCTTGTCGAGTGGA
++
+####&##$$###$#####%##%%)
+@1378_203_721/2
+CCTTTACGATCATAAACCATGACC
++
+9<&./1&@;12')?<1',?/)&/.
+@1378_206_2039/2
+CCCCCCCCCCCCCCCCCCCCCCCC
++
+?=>>?=:;<>>4::<=56199(05
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_out3.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_out3.tabular Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,192 @@
+@1378_11_329/1
+AGACCGGGCGGGGTGGCGTTCGGT
++
+%##+'#######%###$#$##$(#
+@1378_17_1788/1
+TGCCGTGTCTTGCTAACGCCGATT
++
+#'#$$#$###%%##$$$$######
+@1378_25_2035/1
+CTGCGTGTTGGTGTCTACTGGGGT
++
+#%#'##$#$##&%#%$$$%#%#'#
+@1378_28_770/1
+CTGCTATGCCGGCCGCCTGCCCCT
++
+%##(#$$#%$#$%###$%%$##$#
+@1378_33_1945/1
+GGGGGGGGGGGGGGGGGGGGGGGG
++
++9;64287788752796/576352
+@1378_34_789/1
+ATGGTGGCTGACGCGTTTGACTGT
++
+#$##%#$##$&$#%##$##$###$
+@1378_35_263/1
+GGGCGGGGGGCGGCGGGGGGGGGG
++
+),,#%'$)'-(%&%'%',%%&&(&
+@1378_43_186/1
+ATACTAGTTGGGACGCGTTGTGCT
++
+#$(4%$########$#$###$$$#
+@1378_51_1671/1
+TGGGTAGGTGCGGCTCTTGCGGTC
++
+##$#$%###%%#%#$##$$#####
+@1378_56_324/1
+AGGCTTGGATTGTTGCGCTGACCT
++
+/+#**###%%##%#####$$$#$#
+@1378_56_773/1
+TGTCGTGAGGTCACTTATCCCCAT
++
+&%#%##%%#####&#$%##$%##$
+@1378_62_2027/1
+CTTCCACGATCTGCTCGCTGTGGT
++
+(#&&$##$$#$%#%$$$#$###'#
+@1378_62_2029/1
+TCTGGGCTGTCTTCGGGTCGGTGT
++
+$%$$####$##$$#)##%%#$###
+@1378_67_1795/1
+TAGTGGGCTAGTCCGGGATCTACC
++
+B@C2@@?;-@@1>'A@@91@.@1'
+@1378_68_466/1
+GTGATCGTCGGTGCCAGTCCCTGT
++
+#(%)+##$#$#%#+$%##$#####
+@1378_68_1692/1
+GGTCTTCTGGGCACGGGCCAAGTT
++
+###)%'&%##$###%#######$#
+@1378_80_664/1
+CTGCTTTGATCCCCGGTGGAGCAC
++
+7#%###$$6#######$##$$$##
+@1378_85_1786/1
+ATACTATGTCGATCTGTAAAAAAA
++
+)&.)#3%(a)$&%-,2#&+.-%0&./
+@1378_86_1011/1
+CTACGTTATTGCTCTGTTTGTCCT
++
+######$%##$$$%###%#$####
+@1378_86_1789/1
+CGAATATCCCCTGGTTTAGAAGTA
++
+61?1;@/>@<=/(.7'(<5@=%$=
+@1378_91_1596/1
+TTAGCGGTTGACTATCTGCTGACA
++
+*&+'#9'(%*'#//,&<),/)'*#
+@1378_94_1595/1
+CGTGCGACAGCCCATGTTTTCAGA
++
+-=..5,3826&*+.+#+#%%6;%#
+@1378_95_1039/1
+CGGCGTCCATCTTCGCCTTGAGAT
++
+$##.#$##$$#%$#$%%$###$)$
+@1378_95_1767/1
+ACACGCACCATCTGGCGGCTAACC
++
+86<65<4<C27/$5+#;-$+#2%$
+@1378_96_1037/1
+ATCCCCCAAGATGCCTGTTGATTG
++
+$#$'##$$$#%$$#%###+##$#$
+@1378_96_1764/1
+TACACCGGAACCTTGCACTAAAGC
++
+6-9'<#+81?+*<8-=69&6;*3)
+@1378_98_1574/1
+GTTCTGCCGGTGTCTGTGGCGGGC
++
+$$#+&$$####%$$$###$%#%%#
+@1378_107_1647/1
+AGGCCTACTACGCGTCATTGATAG
++
+&#$$#$(.#%#$$####&$%##($
+@1378_111_829/1
+TGCGGCACTTGCTTCTTCGTATTT
++
+%#%##%#$%#$#%###$$##&#$$
+@1378_111_1900/1
+TCCCCTCGCTCGGCTCTGTGCTGT
++
+$&%*$#(#)##$#'##%(##$#$%
+@1378_112_1483/1
+TGTCCAGCTATGCGGCTTCCTCCT
++
+%#$+#%#&#$#####%####%$##
+@1378_125_1287/1
+TGTCTCTGGGGGGCCTGGTTAGGT
++
+$##13$'%#$###$$###$$$#&#
+@1378_126_468/1
+TCTCCTGATTAGACATATCTCCGT
++
+7>@318?=,=8@49579?..7,7)
+@1378_127_664/1
+AGAGGTTGGTGTCTTGTCGCAGCT
++
+##'#$######$$%######$$$#
+@1378_129_463/1
+CCTGTGGGCCAAGCCCAATGAAAG
++
+8),,<6(--)<()5&.&/8+;.2+
+@1378_129_875/1
+TTTCTATGGCTTACGCTGTCTGCC
++
+#$($##%####%$#$#####$###
+@1378_140_1251/1
+ATCCTAGCGCGGTGTCTTGGGGAC
++
+#$%1#$$$##$##$#$#$##$%$$
+@1378_141_809/1
+TGTCCTCCAGTGTCTGTTGGGTGT
++
+%&,-##$$#(%###$#$$'###'#
+@1378_144_983/1
+AGCGCCCGGTTGGTGCGGCTCGTC
++
+-$(&%*$#*#))#$$$#%%$#$##
+@1378_153_270/1
+AGTCCTTGTCCCCTGGGTTTTCCC
++
++''$#&%$%#$##&$$($#&#$$#
+@1378_155_1689/1
+TTGGGAGGGAGAGAGACTAGACCG
++
+?4@@4<<??<?-@4@=4<5<?:/>
+@1378_157_1580/1
+TGGGCCTCGGTGCCCTTGGTCTGT
++
+#%)$##'#$$$&#####%#$#$##
+@1378_161_317/1
+TTGGCCGGCAACCCCGGTACCTAA
++
+7<,<'@)@>.)2@/')'&(?/-<(
+@1378_177_735/1
+AGTACGCCATGTATTTGCGACCAG
++
+=?@?C<88@=>:7>@55/.,416,
+@1378_181_1684/1
+CGACTCCCGCATTCACGGTCAAGT
++
+&*#,##$#&$*$$#$#$$$#%$##
+@1378_187_1407/1
+TGGCGTCCACTCGTGGGTCTATCG
++
+$#$'%#$%$%&$%#####$#$#%#
+@1378_203_721/1
+CCTAAATAACCCAGGGTAAAAGAT
++
+9<1+2+1@=259@+;2.71&@+2&
+@1378_206_2039/1
+CCCCCCCCCCCCCCCCCCCCCCCC
++
+9@?8>;>>><<994;=895895-8
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_paired_F3.csfasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_paired_F3.csfasta Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,99 @@
+# Fri Jan 23 21:37:16 2009 /share/apps/corona/bin/filter_fasta.pl --output=/data/results/0176/0176_20090114_1/skmusc_cov_25/results.01/primary.20090124033450140 --name=0176_20090114_1_skmusc_cov_25_ --tag=F3 --minlength=25 --mask=1111111111111111111111111 --prefix=T /data/results/0176/0176_20090114_1/skmusc_cov_25/jobs/postPrimerSetPrimary.1708/rawseq
+# Cwd: /home/pipeline
+# Title: 0176_20090114_1_skmusc_cov_25_
+>1378_11_329_F3
+T0020112221222232212331223
+>1378_17_1788_F3
+T0321123231332130012112033
+>1378_25_2035_F3
+T0132123233223231301322223
+>1378_28_770_F3
+T0132130321122112113211113
+>1378_33_1945_F3
+T2222222222222222222222222
+>1378_34_789_F3
+T0032232213201212333201323
+>1378_35_263_F3
+T0222122222212212222222222
+>1378_43_186_F3
+T0030130233222012123323213
+>1378_51_1671_F3
+T0322230223212213133212231
+>1378_56_324_F3
+T0022133220332332121320113
+>1378_56_773_F3
+T2323123202231013303111103
+>1378_62_2027_F3
+T0133110120313213121323223
+>1378_62_2029_F3
+T0313222132313312223122323
+>1378_67_1795_F3
+T0302322213023112220313011
+>1378_68_466_F3
+T0232031231223211023111323
+>1378_68_1692_F3
+T0223133132221012221100233
+>1378_80_664_F3
+T2132133320311112232202101
+>1378_85_1786_F3
+T0030130323120313230000000
+>1378_86_1011_F3
+T0130123303321313233323113
+>1378_86_1789_F3
+T0120030311113223330200230
+>1378_91_1596_F3
+T3330212233201303132132010
+>1378_94_1595_F3
+T2123212010211103233331020
+>1378_95_1039_F3
+T0122123110313312113320203
+>1378_95_1767_F3
+T2010121011031322122130011
+>1378_96_1037_F3
+T0031111100203211323320332
+>1378_96_1764_F3
+T0301011220011332101300021
+>1378_98_1574_F3
+T0233132112232313232212221
+>1378_107_1647_F3
+T0022113013012123103320302
+>1378_111_829_F3
+T0321221013321331331230333
+>1378_111_1900_F3
+T0311113121312213132321323
+>1378_112_1483_F3
+T0323110213032122133113113
+>1378_125_1287_F3
+T0323131322222211322330223
+>1378_126_468_F3
+T2313113203302010303131123
+>1378_127_664_F3
+T0020223322323133231210213
+>1378_129_463_F3
+T3113232221100211100320002
+>1378_129_875_F3
+T0333130322133012132313211
+>1378_140_1251_F3
+T0031130212122323133222201
+>1378_141_809_F3
+T0323113110232313233222323
+>1378_144_983_F3
+T1021211122332232122131231
+>1378_153_270_F3
+T0023113323111132223333111
+>1378_155_1689_F3
+T0332220222020202013020112
+>1378_157_1580_F3
+T3322211312232111332231323
+>1378_161_317_F3
+T1332211221001111223011300
+>1378_177_735_F3
+T1023012110323033321201102
+>1378_181_1684_F3
+T0120131112103310122310023
+>1378_187_1407_F3
+T0322123110131232223130312
+>1378_203_721_F3
+T0113000300111022230000203
+>1378_206_2039_F3
+T1111111111111111111111111
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_paired_F3_QV.qualsolid
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_paired_F3_QV.qualsolid Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,99 @@
+# Fri Jan 23 21:37:16 2009 /share/apps/corona/bin/filter_fasta.pl --output=/data/results/0176/0176_20090114_1/skmusc_cov_25/results.01/primary.20090124033450140 --name=0176_20090114_1_skmusc_cov_25_ --tag=F3 --minlength=25 --mask=1111111111111111111111111 --prefix=T /data/results/0176/0176_20090114_1/skmusc_cov_25/jobs/postPrimerSetPrimary.1708/rawseq
+# Cwd: /home/pipeline
+# Title: 0176_20090114_1_skmusc_cov_25_
+>1378_11_329_F3
+7 4 2 2 10 6 2 2 2 2 2 2 2 4 2 2 2 3 2 3 2 2 3 7 2
+>1378_17_1788_F3
+6 2 6 2 3 3 2 3 2 2 2 4 4 2 2 3 3 3 3 2 2 2 2 2 2
+>1378_25_2035_F3
+9 2 4 2 6 2 2 3 2 3 2 2 5 4 2 4 3 3 3 4 2 4 2 6 2
+>1378_28_770_F3
+2 4 2 2 7 2 3 3 2 4 3 2 3 4 2 2 2 3 4 4 3 2 2 3 2
+>1378_33_1945_F3
+18 10 24 26 21 19 17 23 22 22 23 23 22 20 17 22 24 21 14 20 22 21 18 20 17
+>1378_34_789_F3
+2 2 3 2 2 4 2 3 2 2 3 5 3 2 4 2 2 3 2 2 3 2 2 2 3
+>1378_35_263_F3
+3 8 11 11 2 4 6 3 8 6 12 7 4 5 4 6 4 6 11 4 4 5 5 7 5
+>1378_43_186_F3
+2 2 3 7 19 4 3 2 2 2 2 2 2 2 2 3 2 3 2 2 2 3 3 3 2
+>1378_51_1671_F3
+2 2 2 3 2 3 4 2 2 2 4 4 2 4 2 3 2 2 3 3 2 2 2 2 2
+>1378_56_324_F3
+3 14 10 2 9 9 2 2 2 4 4 2 2 4 2 2 2 2 2 3 3 3 2 3 2
+>1378_56_773_F3
+9 5 4 2 4 2 2 4 4 2 2 2 2 2 5 2 3 4 2 2 3 4 2 2 3
+>1378_62_2027_F3
+9 7 2 5 5 3 2 2 3 3 2 3 4 2 4 3 3 3 2 3 2 2 2 6 2
+>1378_62_2029_F3
+4 3 4 3 3 2 2 2 2 3 2 2 3 3 2 8 2 2 4 4 2 3 2 2 2
+>1378_67_1795_F3
+33 33 31 34 17 31 31 30 26 12 31 31 16 29 6 32 31 31 24 16 31 13 31 16 6
+>1378_68_466_F3
+4 2 7 4 8 10 2 2 3 2 3 2 4 2 10 3 4 2 2 3 2 2 2 2 2
+>1378_68_1692_F3
+3 2 2 2 8 4 6 5 4 2 2 3 2 2 2 4 2 2 2 2 2 2 2 3 2
+>1378_80_664_F3
+8 22 2 4 2 2 2 3 3 21 2 2 2 2 2 2 2 3 2 2 3 3 3 2 2
+>1378_85_1786_F3
+6 8 5 13 8 2 18 4 31 3 5 4 12 11 17 2 5 10 13 12 4 15 5 13 14
+>1378_86_1011_F3
+2 2 2 2 2 2 2 3 4 2 2 3 3 3 4 2 2 2 4 2 3 2 2 2 2
+>1378_86_1789_F3
+31 21 16 30 16 26 31 14 29 31 27 28 14 7 13 22 6 7 27 20 31 28 4 3 28
+>1378_91_1596_F3
+4 9 5 10 6 2 24 6 7 4 9 6 2 14 14 11 5 27 8 11 14 8 6 9 2
+>1378_94_1595_F3
+8 12 28 13 13 20 11 18 23 17 21 5 9 10 13 10 2 10 2 4 4 21 26 4 2
+>1378_95_1039_F3
+2 3 2 2 13 2 3 2 2 3 3 2 4 3 2 3 4 4 3 2 2 2 3 8 3
+>1378_95_1767_F3
+12 23 21 27 21 20 27 19 27 34 17 22 14 3 20 10 2 26 12 3 10 2 17 4 3
+>1378_96_1037_F3
+2 3 2 3 6 2 2 3 3 3 2 4 3 3 2 4 2 2 2 10 2 2 3 2 3
+>1378_96_1764_F3
+29 21 12 24 6 27 2 10 23 16 30 10 9 27 23 12 28 21 24 5 21 26 9 18 8
+>1378_98_1574_F3
+2 3 3 2 10 5 3 3 2 2 2 2 4 3 3 3 2 2 2 3 4 2 4 4 2
+>1378_107_1647_F3
+2 5 2 3 3 2 3 7 13 2 4 2 3 3 2 2 2 2 5 3 4 2 2 7 3
+>1378_111_829_F3
+2 4 2 4 2 2 4 2 3 4 2 3 2 4 2 2 2 3 3 2 2 5 2 3 3
+>1378_111_1900_F3
+10 3 5 4 9 3 2 7 2 8 2 2 3 2 6 2 2 4 7 2 2 3 2 3 4
+>1378_112_1483_F3
+9 4 2 3 10 2 4 2 5 2 3 2 2 2 2 2 4 2 2 2 2 4 3 2 2
+>1378_125_1287_F3
+4 3 2 2 16 18 3 6 4 2 3 2 2 2 3 3 2 2 2 3 3 3 2 5 2
+>1378_126_468_F3
+23 22 29 31 18 16 23 30 28 11 28 23 31 19 24 20 22 24 30 13 13 22 11 22 8
+>1378_127_664_F3
+9 2 2 6 2 3 2 2 2 2 2 2 3 3 4 2 2 2 2 2 2 3 3 3 2
+>1378_129_463_F3
+4 23 8 11 11 27 21 7 12 12 8 27 7 8 20 5 13 5 14 23 10 26 13 17 10
+>1378_129_875_F3
+2 2 3 7 3 2 2 4 2 2 2 2 4 3 2 3 2 2 2 2 2 3 2 2 2
+>1378_140_1251_F3
+12 2 3 4 16 2 3 3 3 2 2 3 2 2 3 2 3 2 3 2 2 3 4 3 3
+>1378_141_809_F3
+7 4 5 11 12 2 2 3 3 2 7 4 2 2 2 3 2 3 3 6 2 2 2 6 2
+>1378_144_983_F3
+11 12 3 7 5 4 9 3 2 9 2 8 8 2 3 3 3 2 4 4 3 2 3 2 2
+>1378_153_270_F3
+8 10 6 6 3 2 5 4 3 4 2 3 2 2 5 3 3 7 3 2 5 2 3 3 2
+>1378_155_1689_F3
+31 30 19 31 31 19 27 27 30 30 27 30 12 31 19 31 28 19 27 20 27 30 25 14 29
+>1378_157_1580_F3
+3 2 4 8 3 2 2 6 2 3 3 3 5 2 2 2 2 2 4 2 3 2 3 2 2
+>1378_161_317_F3
+8 22 27 11 27 6 31 8 31 29 13 8 17 31 14 6 8 6 5 7 30 14 12 27 7
+>1378_177_735_F3
+31 28 30 31 30 34 27 23 23 31 28 29 25 22 29 31 20 20 14 13 11 19 16 21 11
+>1378_181_1684_F3
+13 5 9 2 11 2 2 3 2 5 3 9 3 3 2 3 2 3 3 3 2 4 3 2 2
+>1378_187_1407_F3
+2 3 2 3 6 4 2 3 4 3 4 5 3 4 2 2 2 2 2 3 2 3 2 4 2
+>1378_203_721_F3
+33 24 27 16 10 17 10 16 31 28 17 20 24 31 10 26 17 13 22 16 5 31 10 17 5
+>1378_206_2039_F3
+26 24 31 30 23 29 26 29 29 29 27 27 24 24 19 26 28 23 24 20 23 24 20 12 23
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_paired_R3.csfasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_paired_R3.csfasta Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,99 @@
+# Mon Jan 19 06:35:55 2009 /share/apps/corona/bin/filter_fasta.pl --output=/data/results/0176/0176_20090114_1/skmusc_cov_25/results.01/primary.20090119120505312 --name=0176_20090114_1_skmusc_cov_25_ --tag=R3 --minlength=25 --mask=1111111111111111111111111 --prefix=G /data/results/0176/0176_20090114_1/skmusc_cov_25/jobs/postPrimerSetPrimary.1512/rawseq
+# Cwd: /home/pipeline
+# Title: 0176_20090114_1_skmusc_cov_25_
+>1378_11_329_R3
+G2233123221122322232333222
+>1378_17_1788_R3
+G3322232203232332312331032
+>1378_25_2035_R3
+G2232123122220222321323122
+>1378_28_770_R3
+G2223322202332212121232233
+>1378_33_1945_R3
+G2222222222222222222222222
+>1378_34_789_R3
+G3222133212330232020223323
+>1378_35_263_R3
+G2221222222222222222222222
+>1378_43_186_R3
+G3213022233322233321223222
+>1378_51_1671_R3
+G2223233233122032302123222
+>1378_56_324_R3
+G3213222320313002200323003
+>1378_56_773_R3
+G1313223122333122220232200
+>1378_62_2027_R3
+G2233221132211321123213212
+>1378_62_2029_R3
+G2221223232322321221323212
+>1378_67_1795_R3
+G1123211001201123113012202
+>1378_68_466_R3
+G1232310313202230002103323
+>1378_68_1692_R3
+G3323312033302231332113121
+>1378_80_664_R3
+G2323132123323031313223230
+>1378_85_1786_R3
+G3111302202123030112201202
+>1378_86_1011_R3
+G1022120322203033033330133
+>1378_86_1789_R3
+G1221102230130030003310010
+>1378_91_1596_R3
+G2213333310331223211333220
+>1378_94_1595_R3
+G3212223300111023011313221
+>1378_95_1039_R3
+G3233132321102232022301220
+>1378_95_1767_R3
+G2130033201122210021303300
+>1378_96_1037_R3
+G0132132221103332013301310
+>1378_96_1764_R3
+G3313332300111013302303331
+>1378_98_1574_R3
+G2022120232322222332333202
+>1378_107_1647_R3
+G3223132233130323322312013
+>1378_111_829_R3
+G2223133130322321300033023
+>1378_111_1900_R3
+G2210121133322213002112300
+>1378_112_1483_R3
+G3322023223232333213202110
+>1378_125_1287_R3
+G3320123222332311123202033
+>1378_126_468_R3
+G1000000122211222122013022
+>1378_127_664_R3
+G3312133321130323332331220
+>1378_129_463_R3
+G0000000000000000000000000
+>1378_129_875_R3
+G3201133301230332222233221
+>1378_140_1251_R3
+G3333113312323212321220232
+>1378_141_809_R3
+G3313123223331333333032323
+>1378_144_983_R3
+G2233123312322323012022232
+>1378_153_270_R3
+G2221123232122232302033220
+>1378_155_1689_R3
+G1121233122010002130210113
+>1378_157_1580_R3
+G3222033200222032303213022
+>1378_161_317_R3
+G2003110301110100002102211
+>1378_177_735_R3
+G2120211130001103202031220
+>1378_181_1684_R3
+G3333132332322333323322223
+>1378_187_1407_R3
+G3332223200031332312023220
+>1378_203_721_R3
+G1113330120310300011032011
+>1378_206_2039_R3
+G1111111111111111111111111
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_paired_R3_QV.qualsolid
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_paired_R3_QV.qualsolid Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,99 @@
+# Mon Jan 19 06:35:55 2009 /share/apps/corona/bin/filter_fasta.pl --output=/data/results/0176/0176_20090114_1/skmusc_cov_25/results.01/primary.20090119120505312 --name=0176_20090114_1_skmusc_cov_25_ --tag=R3 --minlength=25 --mask=1111111111111111111111111 --prefix=G /data/results/0176/0176_20090114_1/skmusc_cov_25/jobs/postPrimerSetPrimary.1512/rawseq
+# Cwd: /home/pipeline
+# Title: 0176_20090114_1_skmusc_cov_25_
+>1378_11_329_R3
+2 2 2 2 3 3 2 3 2 3 5 2 2 2 2 2 3 6 3 2 3 2 2 2 3
+>1378_17_1788_R3
+2 2 3 2 3 2 2 2 3 2 3 2 2 2 2 2 2 2 3 2 3 2 2 2 2
+>1378_25_2035_R3
+2 2 2 2 2 2 2 4 2 3 4 2 3 3 2 2 2 7 3 2 2 2 5 5 4
+>1378_28_770_R3
+2 2 2 2 3 2 2 4 4 3 2 2 2 2 4 2 4 3 2 4 4 2 7 3 3
+>1378_33_1945_R3
+26 13 21 26 30 26 20 20 21 24 22 29 23 22 22 24 19 20 22 24 23 21 17 21 19
+>1378_34_789_R3
+3 2 2 2 4 3 4 3 4 4 2 2 2 3 2 2 2 2 3 2 2 2 3 2 5
+>1378_35_263_R3
+7 3 4 4 5 11 8 18 14 8 4 3 12 21 6 3 5 20 5 2 3 6 6 20 13
+>1378_43_186_R3
+2 3 4 2 3 2 2 2 2 2 2 2 2 4 2 2 4 2 3 2 2 2 6 2 6
+>1378_51_1671_R3
+2 2 2 4 3 3 2 2 2 2 3 2 2 2 2 2 2 2 2 3 2 2 15 2 2
+>1378_56_324_R3
+2 2 3 2 2 2 2 2 3 3 3 2 3 3 3 3 2 2 4 2 2 2 9 7 2
+>1378_56_773_R3
+4 2 2 4 4 2 5 3 2 2 2 3 2 3 2 2 4 3 2 2 2 2 4 4 3
+>1378_62_2027_R3
+10 9 2 2 8 11 14 4 2 2 3 8 2 4 2 2 16 3 2 6 4 13 2 5 2
+>1378_62_2029_R3
+8 14 3 3 3 28 7 2 2 2 2 4 2 2 2 2 8 3 3 4 3 12 5 4 2
+>1378_67_1795_R3
+33 31 31 13 30 22 31 31 31 13 31 25 31 32 27 27 29 29 28 29 22 15 27 31 22
+>1378_68_466_R3
+12 14 2 2 3 15 24 2 3 2 13 28 3 2 3 22 21 10 3 4 16 6 2 2 2
+>1378_68_1692_R3
+4 2 2 2 4 4 3 4 4 2 2 4 3 2 3 2 2 3 2 2 2 3 3 2 3
+>1378_80_664_R3
+4 4 2 2 4 11 4 3 3 2 5 3 3 2 2 2 3 2 3 4 2 2 6 4 2
+>1378_85_1786_R3
+5 11 6 5 14 4 14 31 11 5 16 11 5 6 14 8 5 11 21 5 5 16 8 7 7
+>1378_86_1011_R3
+11 25 3 2 2 2 8 4 2 2 3 24 3 2 2 2 16 3 3 2 3 17 2 2 2
+>1378_86_1789_R3
+19 16 13 20 16 14 5 4 2 6 3 11 9 30 4 2 21 5 15 3 3 20 11 17 15
+>1378_91_1596_R3
+11 6 29 4 14 18 4 28 7 8 23 6 2 13 4 30 20 15 3 5 20 29 4 8 4
+>1378_94_1595_R3
+18 11 23 31 21 6 29 23 27 22 21 29 31 31 7 12 29 24 8 22 6 9 24 19 16
+>1378_95_1039_R3
+6 5 2 2 11 13 14 2 3 5 8 21 2 2 10 11 6 2 3 3 15 7 2 2 3
+>1378_95_1767_R3
+8 6 11 11 17 6 7 16 15 14 29 25 28 14 22 8 13 18 5 4 21 5 8 5 21
+>1378_96_1037_R3
+13 6 3 2 10 2 7 2 2 12 4 20 2 2 10 9 5 2 2 2 12 13 3 3 3
+>1378_96_1764_R3
+13 19 28 6 17 23 29 13 31 19 23 23 16 33 23 15 22 25 23 17 17 29 4 8 16
+>1378_98_1574_R3
+3 10 4 4 3 2 8 2 2 4 2 2 3 2 2 2 2 4 2 2 2 3 4 3 2
+>1378_107_1647_R3
+3 2 2 2 6 3 3 2 3 3 3 7 2 4 2 2 2 7 2 3 2 2 3 4 2
+>1378_111_829_R3
+3 3 2 2 6 5 2 2 2 3 2 2 8 2 4 7 3 2 3 4 2 3 6 4 2
+>1378_111_1900_R3
+6 8 3 8 6 2 4 3 2 2 2 2 2 2 2 2 3 6 2 5 4 3 2 7 2
+>1378_112_1483_R3
+2 2 3 2 8 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 4 2 4 6 4
+>1378_125_1287_R3
+2 2 2 3 4 4 2 3 2 2 2 3 2 2 3 3 2 5 4 2 2 3 7 4 4
+>1378_126_468_R3
+30 31 31 33 31 31 31 29 31 17 29 16 10 30 25 24 17 8 29 31 23 5 5 27 10
+>1378_127_664_R3
+2 2 4 3 4 2 5 2 2 3 4 2 4 4 2 2 2 3 3 2 2 2 8 12 6
+>1378_129_463_R3
+13 11 8 5 17 15 4 23 6 7 5 18 20 12 9 9 9 16 12 17 5 10 20 16 15
+>1378_129_875_R3
+4 2 2 2 8 2 2 2 10 2 2 2 3 2 2 3 2 5 4 2 2 3 11 2 3
+>1378_140_1251_R3
+2 2 4 2 4 3 2 2 3 3 3 2 2 2 2 2 2 13 3 3 3 4 2 4 7
+>1378_141_809_R3
+2 2 2 4 8 2 2 3 3 2 2 2 2 2 4 3 2 3 2 4 4 2 6 2 2
+>1378_144_983_R3
+4 2 7 2 4 2 2 2 2 2 7 3 2 4 2 2 3 3 2 4 2 2 4 2 8
+>1378_153_270_R3
+4 4 3 2 2 7 3 2 2 2 2 2 2 5 2 2 3 5 3 3 3 3 4 2 2
+>1378_155_1689_R3
+31 31 19 31 31 28 21 28 31 31 27 19 25 31 31 21 23 16 31 31 31 13 17 19 13
+>1378_157_1580_R3
+2 2 4 3 5 4 2 3 3 6 4 3 4 2 3 2 2 9 2 4 3 3 3 3 2
+>1378_161_317_R3
+8 13 5 4 6 11 6 7 31 6 6 30 22 14 14 10 5 8 10 17 13 10 8 15 8
+>1378_177_735_R3
+31 31 31 33 29 31 32 34 24 31 32 27 33 23 31 28 24 29 22 31 20 8 29 11 15
+>1378_181_1684_R3
+2 3 2 2 6 3 4 6 2 2 4 2 2 3 4 3 2 3 3 2 2 2 2 3 9
+>1378_187_1407_R3
+2 2 2 2 2 5 2 2 3 3 2 2 2 3 2 2 2 2 2 4 2 2 4 4 8
+>1378_203_721_R3
+24 24 27 5 13 14 16 5 31 26 16 17 6 8 30 27 16 6 11 30 14 8 5 14 13
+>1378_206_2039_R3
+31 30 28 29 29 30 28 25 26 27 29 29 19 25 25 27 28 20 21 16 24 24 7 15 20
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_phiX.csfasta
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_phiX.csfasta Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,288 @@
+>1831_573_1004_F3
+T00030133312212111300011021310132222
+>1831_573_1050_F3
+T03330322230322112131010221102122113
+>1831_573_1067_F3
+T00023032023103330112220321200200002
+>1831_573_1219_F3
+T11211130300300301021212330201121310
+>1831_573_1242_F3
+T02132003121011302100130302112221121
+>1831_573_1333_F3
+T00200312330110101013212313222303112
+>1831_573_1362_F3
+T21203131001102231121211101111321131
+>1831_573_1448_F3
+T23101211223113320132212331313312022
+>1831_573_1490_F3
+T31312310323301210002210123101021011
+>1831_573_1523_F3
+T10322001220012223202202222001230222
+>1831_573_1578_F3
+T21202302100010020121100311022120111
+>1831_573_1647_F3
+T10222233301013033120132223202022123
+>1831_573_1684_F3
+T13310013212312012302121010221231123
+>1831_573_1769_F3
+T33220123030232212032021032302233131
+>1831_573_1853_F3
+T11000012111222211310103212122102331
+>1831_573_1943_F3
+T20300123032210232001222122001132111
+>1831_573_1977_F3
+T22212302221310332321002303112011311
+>1831_574_109_F3
+T13122332123301331032220222133301033
+>1831_574_148_F3
+T01200113123030012202302312200010231
+>1831_574_185_F3
+T21123333211302300321312212102123121
+>1831_574_243_F3
+T30221011230013102201033131203302330
+>1831_574_257_F3
+T00301133110002100302003000000102301
+>1831_574_293_F3
+T23213210003000103010211331300320130
+>1831_574_389_F3
+T21032213032101122333230212301312020
+>1831_574_575_F3
+T33313322100212102033032123311211302
+>1831_574_592_F3
+T33103330110123102223122023103310330
+>1831_574_617_F3
+T20021031221222021210021322200223211
+>1831_574_725_F3
+T32010020322130330333010031120313210
+>1831_574_734_F3
+T31132301200020012302210322213222222
+>1831_574_824_F3
+T30212100033032123311211302122020013
+>1831_574_959_F3
+T11212130220131221111002020123311211
+>1831_574_1062_F3
+T30112230030300221001032033012211012
+>1831_574_1092_F3
+T02013221200031031212200000111130310
+>1831_574_1103_F3
+T20313113203302010303131123021310121
+>1831_574_1116_F3
+T21011310123202303021021112021231011
+>1831_574_1194_F3
+T23303101033322220312200222013013312
+>1831_574_1204_F3
+T21330132231321322010303023221203200
+>1831_574_1306_F3
+T10332133020311023221213100301001220
+>1831_574_1387_F3
+T12301331310032132101301303230121111
+>1831_574_1431_F3
+T12011023331022213001123111301312011
+>1831_574_1560_F3
+T32212313302203320020222113111011111
+>1831_574_1591_F3
+T23202101330322130221230222201123202
+>1831_574_1624_F3
+T20122200222132200313011102302210332
+>1831_574_1826_F3
+T13012312120112021233030302313201111
+>1831_574_1903_F3
+T30232100103132133321330310210101221
+>1831_574_1961_F3
+T02333101331223303300200011100032200
+>1831_575_54_F3
+T13331330322230200102132110132013200
+>1831_575_80_F3
+T33133322233322221003332230323312313
+>1831_575_192_F3
+T30013012111133003301010212123302011
+>1831_575_197_F3
+T33312113010133020301131330001310032
+>1831_575_223_F3
+T10121010002202131221210302100121020
+>1831_575_420_F3
+T31110103220000101310112112001020212
+>1831_575_434_F3
+T30312132120223101113223301211113311
+>1831_575_444_F3
+T33022120112320220100202132332113320
+>1831_575_459_F3
+T31330310210101223330110231120131100
+>1831_575_506_F3
+T31210200111210121332321310110132301
+>1831_575_569_F3
+T10210201321323001012232322323002203
+>1831_575_622_F3
+T01100031122111023002323113231210111
+>1831_575_644_F3
+T11332003221203131231202200030110130
+>1831_575_663_F3
+T32210013303112103322311101322021210
+>1831_575_681_F3
+T23131132033020103031013233200101021
+>1831_575_711_F3
+T03032331231101231020121210002332121
+>1831_575_730_F3
+T31010102200110302123032330331011111
+>1831_575_904_F3
+T20111213300020123200333321131121211
+>1831_575_938_F3
+T13103102220022130222233301013033120
+>1831_575_970_F3
+T23201311301023133303023011202220221
+>1831_575_991_F3
+T33312212031111111012212120321121210
+>1831_575_1138_F3
+T23320002011320012120333103233301321
+>1831_575_1157_F3
+T13121323330203331222022230133102321
+>1831_575_1180_F3
+T32003310122102323303101123331133110
+>1831_575_1283_F3
+T02232200301300220130032321323131333
+>1831_575_1302_F3
+T01201303312333123130200123201013021
+>1831_575_1310_F3
+T31332131312021303211310220101211133
+>1831_575_1321_F3
+T11001010233200122122022023000203212
+>1831_575_1373_F3
+T21213011223311001221321132013121220
+>1831_575_1419_F3
+T33222200303001021230212332001013020
+>1831_575_1436_F3
+T13210313021212303321202113301220331
+>1831_575_1442_F3
+T33132010022331132101132123132020222
+>1831_575_1454_F3
+T11131130011012021120222231313211113
+>1831_575_1500_F3
+T11010000223111301132313011130103021
+>1831_575_1535_F3
+T21312012030320112110211013300131121
+>1831_575_1724_F3
+T33123002323300220213232301000010010
+>1831_575_1829_F3
+T21033321320111321230233302313101021
+>1831_575_1898_F3
+T31330110303103131001110300102101330
+>1831_575_1964_F3
+T22010201103202213200201301300232123
+>1831_576_32_F3
+T13012100120333032211330300332022110
+>1831_576_74_F3
+T30103313210232220102021223012112100
+>1831_576_86_F3
+T10320000121033022010011030032211310
+>1831_576_89_F3
+T02132333203332020020220033002121120
+>1831_576_266_F3
+T30322223101312011300311121221333223
+>1831_576_327_F3
+T22112331301313021321001332120332130
+>1831_576_331_F3
+T32012133301311223023011232112333030
+>1831_576_387_F3
+T00101211032031120300200222001230022
+>1831_576_406_F3
+T00223133010210122221320212103132011
+>1831_576_449_F3
+T31312001121222231100020132132100220
+>1831_576_519_F3
+T03011321130130133213131202130321131
+>1831_576_603_F3
+T21003032313302312320131221001330311
+>1831_576_655_F3
+T02001023130302322122200313123123102
+>1831_576_677_F3
+T13330131023320301031013230210103022
+>1831_576_718_F3
+T31232113331022231333313223132231213
+>1831_576_722_F3
+T31230320322120231333030031100313200
+>1831_576_754_F3
+T30221231132103120112331303112133020
+>1831_576_815_F3
+T23022113203032010120310102321001031
+>1831_576_882_F3
+T13230020122320223230022031020110122
+>1831_576_898_F3
+T10230132312121033222231132231233213
+>1831_576_923_F3
+T21322010320202013210121223010123122
+>1831_576_930_F3
+T21322103230123110323102012021020013
+>1831_576_1019_F3
+T22032121213231032210312001103122312
+>1831_576_1068_F3
+T00020232013101330112220321203220211
+>1831_576_1131_F3
+T10233122200222132200313011102302210
+>1831_576_1168_F3
+T31013300131121323122002113301002010
+>1831_576_1207_F3
+T21001132013000122220301213221213010
+>1831_576_1289_F3
+T03021210023110200323310302013121203
+>1831_576_1329_F3
+T01100302102020113003022000120002100
+>1831_576_1367_F3
+T12231310311233110031222013332011023
+>1831_576_1416_F3
+T33021233100123120313103133211203221
+>1831_576_1461_F3
+T32022221221112233100210223002100100
+>1831_576_1605_F3
+T30232100103132133321330310210101221
+>1831_576_1664_F3
+T31212101001312110320301201002011120
+>1831_576_1671_F3
+T22313332300211322113223102231322313
+>1831_576_1729_F3
+T11233312313010012320101302101023030
+>1831_576_1880_F3
+T13032121323320213301001310130212003
+>1831_576_1982_F3
+T00032312310201201333221212000011030
+>1831_576_1987_F3
+T30022313313231221213220132001011320
+>1831_576_2014_F3
+T31123201010100321122111102113021003
+>1831_576_2028_F3
+T20131211210311112023201213120201100
+>1831_577_40_F3
+T11111212330120012020200031313303003
+>1831_577_119_F3
+T33111010021103320103213121313000102
+>1831_577_133_F3
+T33213323012231300122223032223331322
+>1831_577_255_F3
+T00332022110020300332022020202002232
+>1831_577_281_F3
+T03032301231212301013112222111210000
+>1831_577_288_F3
+T01031120221303100221230021013201130
+>1831_577_322_F3
+T12003213220230103303201000130312202
+>1831_577_362_F3
+T31203302330110131230331210121110220
+>1831_577_382_F3
+T32312123033111120321303230201332100
+>1831_577_464_F3
+T13020221011130013102221333131203302
+>1831_577_488_F3
+T13200302330322110200323132101120301
+>1831_577_511_F3
+T32232133031023313331312220133230333
+>1831_577_545_F3
+T00112131333222303222210031322103233
+>1831_577_559_F3
+T32321101303233120102011130022122002
+>1831_577_562_F3
+T32331101301233110121000220031120031
+>1831_577_637_F3
+T22113312122202103031023120301031110
+>1831_577_641_F3
+T13031301101121223221212020032131113
+>1831_577_692_F3
+T01122320200330103121202301211100220
diff -r 54aa0543925b -r 61dd78cafa09 test-data/s2fq_phiX.qualsolid
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/s2fq_phiX.qualsolid Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,288 @@
+>1831_573_1004_F3
+4 29 27 34 5 5 24 24 20 17 10 34 29 20 27 13 30 27 22 24 11 28 19 17 27 17 24 17 25 27 7 24 14 12 22
+>1831_573_1050_F3
+8 26 31 31 16 22 30 31 28 29 22 30 30 31 32 23 30 28 28 31 19 32 30 32 19 8 5 10 13 6 5 10 6 16 11
+>1831_573_1067_F3
+13 10 10 2 4 7 6 11 4 14 3 11 10 5 16 2 5 8 11 8 5 10 6 9 6 9 4 2 3 5 2 4 7 6 3
+>1831_573_1219_F3
+31 31 31 28 19 14 10 8 20 8 19 15 23 30 6 21 21 20 29 9 14 20 30 27 21 16 6 26 27 18 11 25 11 20 12
+>1831_573_1242_F3
+29 29 29 25 25 29 16 22 28 32 20 30 31 31 28 26 22 32 28 26 17 13 21 15 29 23 17 27 23 28 22 19 10 26 26
+>1831_573_1333_F3
+8 28 6 31 2 4 18 28 13 29 8 14 18 19 9 16 16 22 11 11 14 21 12 19 10 13 24 22 19 17 19 20 21 27 8
+>1831_573_1362_F3
+34 33 31 31 30 31 31 30 31 34 31 33 32 30 31 29 31 27 31 23 32 31 30 31 6 13 23 6 30 16 22 25 11 10 30
+>1831_573_1448_F3
+22 22 28 32 8 30 11 13 31 32 31 31 25 31 31 27 28 14 22 8 31 27 12 2 23 21 21 17 4 24 21 16 18 5 10
+>1831_573_1490_F3
+31 31 31 31 30 11 31 30 30 31 3 29 27 28 29 10 4 14 9 29 9 16 11 8 30 17 21 5 16 17 6 24 4 22 13
+>1831_573_1523_F3
+7 11 14 14 9 11 2 23 6 6 13 21 6 6 21 6 17 5 17 22 14 23 15 8 4 5 2 15 6 4 2 9 11 17 6
+>1831_573_1578_F3
+31 30 28 31 27 31 34 31 30 31 31 30 30 28 29 31 26 22 27 27 23 27 21 24 19 8 18 20 16 16 7 10 16 27 13
+>1831_573_1647_F3
+28 30 31 31 27 31 31 30 30 30 26 32 28 28 31 31 26 24 30 31 30 18 28 26 21 13 19 14 26 21 25 28 14 26 19
+>1831_573_1684_F3
+22 29 16 25 23 27 31 18 24 31 31 30 30 24 28 26 31 31 27 29 30 31 31 27 26 27 30 22 29 22 21 30 24 29 30
+>1831_573_1769_F3
+22 20 19 22 19 24 5 5 22 21 22 4 14 22 26 18 3 12 22 26 18 2 11 18 14 14 2 11 19 20 14 2 5 15 21
+>1831_573_1853_F3
+21 19 13 14 33 31 31 22 17 33 10 14 19 30 31 30 22 30 10 31 24 14 10 24 24 13 6 8 17 27 17 5 8 17 5
+>1831_573_1943_F3
+7 29 14 9 16 11 8 11 31 12 8 6 15 9 29 20 6 3 14 30 21 31 14 13 5 30 23 14 7 6 8 32 19 18 11
+>1831_573_1977_F3
+31 31 30 21 31 23 31 31 24 32 31 28 19 21 18 18 32 22 30 24 30 27 18 25 10 22 29 6 31 4 31 30 4 18 17
+>1831_574_109_F3
+15 22 21 20 16 2 19 23 16 22 29 31 21 20 27 17 25 23 19 22 16 21 28 22 23 23 27 16 24 24 20 13 22 30 21
+>1831_574_148_F3
+27 26 12 29 18 26 26 18 29 14 14 29 15 26 26 22 28 11 28 19 12 19 14 10 29 15 17 24 27 24 27 21 17 19 26
+>1831_574_185_F3
+31 27 19 26 4 4 31 22 29 2 9 29 24 22 4 21 26 10 23 3 2 27 15 22 4 16 18 22 17 3 4 27 20 19 2
+>1831_574_243_F3
+2 31 31 31 24 20 31 28 24 30 9 29 27 19 20 3 27 31 27 19 4 31 24 30 22 2 28 30 29 22 5 29 30 24 22
+>1831_574_257_F3
+4 29 29 33 29 8 31 30 29 33 31 33 30 31 16 4 9 4 11 2 10 15 15 13 6 7 10 5 20 5 4 2 3 18 5
+>1831_574_293_F3
+5 6 8 22 6 13 9 4 2 5 3 6 14 13 3 2 2 3 13 3 5 9 8 10 9 3 2 23 4 5 4 2 5 5 4
+>1831_574_389_F3
+8 8 3 29 14 29 23 8 25 17 31 25 17 16 18 26 26 13 16 8 31 18 4 21 19 4 10 8 27 22 8 10 3 24 17
+>1831_574_575_F3
+22 30 31 29 28 30 31 29 23 31 31 31 28 31 21 9 4 5 27 28 6 20 31 27 27 6 11 15 27 28 19 9 20 14 27
+>1831_574_592_F3
+22 18 12 20 8 16 24 11 11 27 31 29 19 15 21 22 27 17 13 12 23 21 19 18 19 21 26 24 27 16 14 26 17 16 17
+>1831_574_617_F3
+31 29 31 30 26 29 30 28 31 28 28 31 29 31 28 20 30 31 10 31 25 31 19 15 31 29 27 25 15 8 6 8 21 19 12
+>1831_574_725_F3
+24 6 29 30 20 17 10 20 28 26 19 3 21 26 27 23 13 16 27 19 22 9 24 10 30 22 7 10 20 26 12 8 13 8 19
+>1831_574_734_F3
+13 12 5 13 3 17 5 27 9 7 12 4 8 25 14 8 4 20 25 8 14 4 22 10 11 24 15 18 19 9 32 13 30 22 15
+>1831_574_824_F3
+26 31 31 31 26 26 8 11 10 31 27 12 27 22 26 27 5 23 24 30 30 5 17 24 30 27 3 17 25 32 27 8 26 23 30
+>1831_574_959_F3
+22 32 28 26 10 30 31 24 26 14 27 31 26 27 23 2 5 5 14 9 4 7 4 13 15 3 15 3 17 8 10 16 3 12 16
+>1831_574_1062_F3
+19 31 23 17 16 27 14 14 25 16 18 21 14 23 27 16 14 20 13 19 17 22 13 26 29 17 23 23 14 15 27 16 3 8 14
+>1831_574_1092_F3
+27 23 30 13 11 24 23 8 15 18 4 2 11 11 11 7 11 10 10 3 6 21 24 6 2 24 6 22 2 6 26 21 13 4 17
+>1831_574_1103_F3
+31 30 30 29 30 31 28 29 31 31 32 27 29 30 28 31 28 28 27 25 30 27 26 20 23 6 5 5 8 25 10 18 20 6 16
+>1831_574_1116_F3
+8 31 10 10 11 8 14 8 30 13 14 8 4 27 8 17 29 13 28 28 25 23 30 5 26 19 19 5 14 5 11 8 14 9 19
+>1831_574_1194_F3
+25 20 29 26 11 30 30 24 31 24 31 30 31 16 31 31 28 31 18 28 31 29 31 19 30 31 31 24 19 30 22 20 14 11 21
+>1831_574_1204_F3
+32 32 20 32 20 33 31 20 25 26 31 31 11 13 24 30 32 16 30 2 13 30 26 18 8 11 29 23 17 4 8 28 6 22 9
+>1831_574_1306_F3
+15 17 13 22 5 4 6 6 13 3 5 2 6 4 2 2 3 2 6 2 4 6 8 6 8 3 6 3 4 3 11 8 6 13 16
+>1831_574_1387_F3
+12 30 32 30 30 25 31 30 31 31 24 30 31 31 30 24 34 26 25 29 5 8 13 11 11 8 26 5 6 27 5 22 7 14 6
+>1831_574_1431_F3
+29 22 30 29 24 33 32 23 24 22 26 10 23 9 28 21 2 21 13 10 20 5 12 2 17 21 3 15 13 11 20 5 6 3 16
+>1831_574_1560_F3
+28 8 8 5 21 20 27 19 28 29 24 24 31 25 20 24 22 7 16 5 26 10 5 7 4 5 19 2 11 2 5 5 5 9 3
+>1831_574_1591_F3
+28 28 27 32 29 27 30 31 22 23 31 27 28 26 31 5 31 21 29 23 25 30 11 29 27 5 5 27 22 29 23 7 23 10 24
+>1831_574_1624_F3
+2 27 21 13 5 7 11 22 12 10 8 8 22 13 13 6 14 26 19 18 13 8 24 17 22 13 7 27 23 20 5 16 18 12 8
+>1831_574_1826_F3
+10 31 27 27 11 8 8 19 20 24 27 30 13 10 20 22 6 12 6 5 21 30 16 8 7 26 16 26 15 5 4 19 11 2 3
+>1831_574_1903_F3
+27 24 20 21 30 31 29 26 22 31 31 31 23 25 31 29 23 29 27 28 24 29 24 29 31 17 28 22 16 30 16 25 21 26 14
+>1831_574_1961_F3
+21 29 12 15 22 12 31 29 7 17 6 31 27 2 15 21 19 31 4 20 4 31 31 21 13 5 27 27 7 24 8 28 25 19 22
+>1831_575_54_F3
+29 28 31 31 21 23 27 17 26 27 23 26 30 31 27 29 10 24 29 22 11 11 21 24 22 17 5 20 22 25 19 5 24 27 23
+>1831_575_80_F3
+9 30 20 29 27 31 30 14 28 20 4 7 5 13 20 8 10 2 14 15 6 14 6 29 2 3 14 6 18 22 2 7 8 21 5
+>1831_575_192_F3
+15 25 23 27 11 24 7 13 28 14 8 2 4 23 3 11 19 6 27 11 25 8 18 14 13 6 13 20 27 11 29 12 26 22 6
+>1831_575_197_F3
+11 12 25 30 19 21 18 31 32 25 23 23 30 21 30 19 18 22 27 28 13 17 5 16 13 26 31 21 22 13 19 31 4 17 11
+>1831_575_223_F3
+31 30 29 30 23 30 31 25 30 26 29 10 3 6 4 5 11 10 2 3 13 12 12 2 4 3 16 6 5 2 12 22 3 5 6
+>1831_575_420_F3
+23 17 30 13 29 30 7 12 6 6 17 10 13 13 31 8 11 3 4 16 31 26 6 8 16 8 30 10 8 22 13 6 8 13 13
+>1831_575_434_F3
+27 31 31 29 27 31 33 31 29 28 31 31 30 29 29 27 31 30 26 8 31 30 26 21 13 30 28 19 11 6 6 26 14 18 8
+>1831_575_444_F3
+27 17 31 31 26 27 13 28 30 31 27 10 28 25 32 27 27 31 30 27 27 14 29 31 29 27 7 27 23 29 19 5 20 26 29
+>1831_575_459_F3
+30 31 31 34 31 30 32 31 31 32 31 30 30 32 31 31 6 21 31 31 33 6 28 26 34 31 6 19 27 28 24 11 31 16 13
+>1831_575_506_F3
+23 30 8 17 9 20 31 18 10 13 22 28 30 32 25 23 31 11 14 5 8 25 31 18 22 14 27 23 24 6 10 19 9 8 9
+>1831_575_569_F3
+14 6 24 12 11 31 17 24 10 19 22 24 4 5 29 24 2 5 15 23 28 29 22 2 24 29 11 21 24 14 10 6 9 18 8
+>1831_575_622_F3
+31 32 23 33 28 31 31 30 27 31 30 27 29 29 28 30 24 21 27 19 24 22 8 27 19 14 27 6 25 19 10 26 22 19 10
+>1831_575_644_F3
+27 27 23 29 13 29 5 11 10 8 23 13 16 15 6 25 20 7 14 12 21 17 5 9 13 28 14 4 7 13 27 5 5 16 23
+>1831_575_663_F3
+31 31 31 31 31 32 27 14 26 32 29 31 21 29 15 22 24 17 27 20 24 21 21 25 30 26 17 20 10 25 29 27 16 11 10
+>1831_575_681_F3
+13 22 17 30 13 8 17 20 26 24 21 12 16 19 6 9 13 15 18 6 2 19 2 10 10 3 8 14 23 10 4 14 7 7 5
+>1831_575_711_F3
+19 4 10 25 17 7 2 6 16 10 13 8 5 9 19 20 12 2 11 27 32 12 4 19 26 29 10 8 8 27 26 2 2 9 5
+>1831_575_730_F3
+11 4 23 27 4 12 6 8 20 11 9 16 5 28 2 8 7 16 9 16 8 12 29 22 3 13 11 19 6 19 6 5 6 9 5
+>1831_575_904_F3
+30 27 29 27 13 21 23 24 31 31 22 31 27 20 19 25 19 28 31 29 21 24 28 25 10 21 12 28 19 17 26 23 27 25 2
+>1831_575_938_F3
+26 25 31 31 25 30 31 26 28 23 26 29 28 26 26 25 28 27 24 18 27 19 13 26 27 21 25 17 27 24 26 19 8 23 22
+>1831_575_970_F3
+28 31 28 31 28 26 31 31 29 27 31 31 25 24 27 25 28 30 26 29 31 28 30 24 29 29 30 31 25 17 28 28 28 27 20
+>1831_575_991_F3
+31 29 29 26 22 30 30 30 14 19 27 25 25 25 11 2 5 9 4 6 3 12 12 20 12 2 7 22 8 5 5 11 12 8 4
+>1831_575_1138_F3
+27 28 15 26 4 16 24 18 21 10 30 24 21 30 11 30 20 27 25 17 29 31 21 31 27 25 26 19 29 13 22 26 9 25 16
+>1831_575_1157_F3
+31 33 31 33 29 30 32 30 32 31 30 24 6 30 26 30 5 23 30 31 31 21 26 27 31 28 10 27 25 24 24 10 24 21 20
+>1831_575_1180_F3
+14 27 33 29 20 30 6 25 14 22 23 30 26 16 26 20 20 25 24 24 22 31 31 29 24 19 28 22 27 16 23 21 12 29 22
+>1831_575_1283_F3
+4 34 31 32 20 19 29 27 30 32 22 23 31 27 30 17 29 25 2 29 28 30 31 17 29 23 15 25 6 30 21 24 13 6 22
+>1831_575_1302_F3
+5 16 17 29 14 2 17 6 5 12 17 5 4 6 22 10 3 4 9 2 3 14 16 7 5 5 16 17 14 3 11 17 11 11 9
+>1831_575_1310_F3
+21 27 27 29 21 21 18 30 24 24 31 7 31 22 28 16 16 31 25 31 31 14 22 30 30 27 31 27 26 29 6 18 12 22 26
+>1831_575_1321_F3
+15 26 33 31 30 31 29 28 32 31 27 32 30 29 31 29 30 21 29 31 20 29 6 19 31 24 30 8 22 31 22 30 14 23 24
+>1831_575_1373_F3
+32 31 31 31 29 31 26 28 24 27 31 30 30 22 31 29 31 25 31 26 31 26 16 22 30 21 18 15 14 22 28 19 11 17 27
+>1831_575_1419_F3
+29 14 14 18 12 29 5 12 13 12 29 4 16 16 14 31 5 14 5 22 25 27 11 12 16 28 11 10 17 27 21 6 4 5 27
+>1831_575_1436_F3
+9 17 31 28 26 18 24 9 18 27 9 19 27 25 29 20 17 29 29 24 6 22 25 27 28 6 15 28 29 16 6 16 18 21 27
+>1831_575_1442_F3
+23 29 20 23 27 30 22 29 10 16 33 21 12 14 24 27 27 25 20 30 29 32 25 16 31 30 20 18 24 13 31 19 14 16 29
+>1831_575_1454_F3
+17 19 28 30 23 28 21 20 23 24 28 15 25 32 28 25 30 29 21 27 26 31 14 11 19 10 12 21 10 14 6 13 11 7 11
+>1831_575_1500_F3
+17 30 31 31 30 32 31 30 23 27 21 27 25 24 23 20 28 24 24 24 24 24 28 28 33 18 27 20 27 27 11 22 30 29 24
+>1831_575_1535_F3
+31 33 28 31 27 31 31 33 30 25 32 31 31 28 29 31 30 21 23 31 28 30 31 20 30 22 26 25 21 27 27 26 29 20 27
+>1831_575_1724_F3
+24 27 33 13 10 31 8 11 17 9 13 4 8 8 8 19 4 17 31 26 22 2 4 7 4 10 3 23 8 8 23 20 4 5 20
+>1831_575_1829_F3
+17 17 7 9 6 4 13 18 3 10 22 8 31 5 4 3 6 18 9 10 9 2 14 2 14 9 10 15 13 28 5 2 8 10 15
+>1831_575_1898_F3
+31 33 29 31 31 5 16 14 8 8 6 19 15 8 4 2 23 14 13 4 2 23 3 7 7 2 26 19 6 3 6 21 18 11 11
+>1831_575_1964_F3
+16 29 18 24 8 31 17 27 17 14 31 10 24 30 17 28 5 8 29 29 31 9 21 17 28 20 5 17 27 19 17 13 6 30 10
+>1831_576_32_F3
+10 27 29 30 29 30 28 22 27 17 8 20 17 17 26 29 27 27 31 19 15 31 29 22 15 19 27 29 20 28 17 18 31 10 5
+>1831_576_74_F3
+23 28 31 31 30 31 29 7 30 30 27 33 20 30 31 31 31 24 27 31 29 27 10 29 27 26 31 6 26 29 21 24 21 16 30
+>1831_576_86_F3
+22 23 16 16 8 17 25 9 13 10 10 20 27 14 25 18 10 19 18 24 17 19 9 8 8 14 25 11 21 5 17 24 8 17 14
+>1831_576_89_F3
+17 8 21 24 10 11 6 13 19 28 12 11 29 14 29 7 9 3 2 8 18 15 18 15 9 6 7 11 4 8 17 2 2 3 11
+>1831_576_266_F3
+27 31 31 30 28 26 27 30 22 28 31 29 24 11 29 31 16 3 5 5 23 24 3 14 25 29 22 6 18 16 22 23 4 5 21
+>1831_576_327_F3
+27 31 30 31 21 31 31 26 27 31 30 29 27 31 29 28 28 18 31 25 28 28 27 18 31 31 29 20 18 27 24 29 27 21 28
+>1831_576_331_F3
+26 12 17 8 10 7 9 13 9 16 14 26 20 4 13 12 24 5 2 14 16 6 10 7 3 9 3 2 2 7 8 4 14 3 13
+>1831_576_387_F3
+14 23 8 13 3 20 2 16 2 9 4 13 3 2 2 13 9 2 3 4 2 2 12 4 11 10 11 16 2 5 4 13 4 8 8
+>1831_576_406_F3
+27 19 27 29 4 4 16 19 25 9 19 21 20 21 8 5 27 17 20 16 5 17 10 18 2 5 16 24 11 21 5 19 29 20 7
+>1831_576_449_F3
+7 10 6 5 6 13 11 11 3 14 10 13 8 3 3 23 5 4 2 10 30 5 11 2 8 12 5 2 2 2 22 11 10 2 9
+>1831_576_519_F3
+28 28 19 21 27 24 22 31 29 17 14 21 30 26 17 27 19 32 23 23 16 29 24 16 17 16 10 27 16 14 19 13 24 10 22
+>1831_576_603_F3
+31 31 19 21 28 31 34 13 30 30 27 32 22 24 31 31 26 12 27 31 31 29 17 24 33 30 29 20 20 27 33 22 20 24 23
+>1831_576_655_F3
+28 31 32 32 24 31 31 27 21 9 29 31 31 20 14 27 31 29 24 6 28 26 29 22 10 31 30 24 29 14 24 26 10 11 4
+>1831_576_677_F3
+21 17 24 15 5 14 9 15 2 5 6 5 11 13 17 6 2 5 9 3 5 7 6 2 12 4 7 3 9 2 4 3 8 2 4
+>1831_576_718_F3
+3 19 2 2 2 3 15 2 2 2 4 7 2 2 2 2 2 2 2 2 2 11 2 2 2 2 4 2 2 2 2 3 2 2 2
+>1831_576_722_F3
+7 9 11 12 11 2 2 13 8 9 5 7 9 16 4 9 7 4 7 12 17 2 10 8 12 2 13 5 12 2 4 4 3 6 8
+>1831_576_754_F3
+13 19 14 14 2 7 13 3 8 6 6 11 29 7 5 2 16 3 27 11 2 2 4 7 7 11 2 20 30 2 15 9 4 16 9
+>1831_576_815_F3
+27 18 29 31 30 24 29 31 30 33 28 29 28 26 29 32 30 30 30 28 29 25 17 20 28 19 13 17 20 30 21 27 20 22 13
+>1831_576_882_F3
+30 17 21 30 23 30 31 25 19 29 31 29 24 21 30 30 27 27 28 20 6 16 27 29 24 23 19 21 28 27 24 27 16 29 23
+>1831_576_898_F3
+28 31 31 34 17 30 34 29 30 27 29 31 23 23 21 33 30 26 30 13 30 30 23 22 28 33 27 23 27 16 20 30 30 28 13
+>1831_576_923_F3
+22 21 13 20 16 28 26 13 21 24 24 27 24 21 29 26 26 19 24 27 26 26 16 16 26 27 31 20 24 25 24 28 21 19 22
+>1831_576_930_F3
+17 2 9 15 13 17 5 13 25 7 7 2 6 16 19 6 2 2 12 8 2 4 3 3 17 4 2 3 14 16 5 2 4 14 2
+>1831_576_1019_F3
+17 27 3 29 3 11 16 11 5 10 10 5 31 11 13 8 6 10 14 10 2 24 6 21 24 14 21 6 17 7 10 12 6 24 12
+>1831_576_1068_F3
+25 29 29 27 28 19 30 26 31 22 28 30 30 24 30 26 24 29 20 31 24 30 25 23 31 25 28 20 6 26 22 26 6 2 19
+>1831_576_1131_F3
+16 15 19 31 2 31 14 31 11 19 29 24 30 17 10 30 16 20 22 16 31 6 11 29 28 26 7 22 20 24 26 9 24 17 27
+>1831_576_1168_F3
+29 31 34 34 21 31 31 17 30 24 28 29 22 30 26 22 21 27 26 19 21 22 31 26 24 11 15 4 17 21 6 6 11 19 3
+>1831_576_1207_F3
+4 3 29 17 11 7 5 30 19 30 7 11 31 25 27 5 11 31 29 30 3 5 25 23 32 4 4 28 15 13 4 11 20 24 22
+>1831_576_1289_F3
+31 24 27 29 16 33 31 31 26 22 31 31 21 21 18 28 28 17 23 11 20 6 25 23 27 27 11 13 28 17 29 29 13 20 15
+>1831_576_1329_F3
+27 29 5 15 11 23 22 15 14 32 31 31 14 20 13 26 28 26 25 6 5 31 18 6 5 3 3 4 11 10 2 7 3 5 17
+>1831_576_1367_F3
+30 30 31 31 27 29 31 31 28 31 27 31 27 28 31 29 31 30 30 24 25 30 27 28 29 28 27 23 26 20 24 31 22 23 22
+>1831_576_1416_F3
+10 6 26 30 13 13 16 13 27 31 6 13 28 10 21 13 20 30 22 27 15 12 30 22 26 7 4 28 29 20 21 13 24 23 31
+>1831_576_1461_F3
+2 16 5 22 19 2 7 2 7 5 2 2 3 2 11 6 2 2 2 4 2 4 4 2 9 2 5 4 4 2 2 4 4 4 6
+>1831_576_1605_F3
+21 27 31 34 31 31 29 16 26 31 25 26 27 27 31 31 24 31 30 30 30 24 27 18 30 20 12 17 16 28 19 23 22 22 11
+>1831_576_1664_F3
+31 31 30 29 30 31 28 32 25 31 31 29 31 28 6 28 27 29 28 8 13 29 28 24 9 23 8 7 22 2 14 10 10 26 8
+>1831_576_1671_F3
+31 31 30 31 20 29 31 31 23 5 23 30 17 20 2 5 8 5 20 5 5 8 16 20 5 5 11 5 19 4 5 11 5 21 4
+>1831_576_1729_F3
+31 30 31 30 27 30 27 31 29 32 30 14 28 28 30 29 30 22 29 30 31 23 27 30 31 29 24 24 26 29 27 10 15 28 29
+>1831_576_1880_F3
+15 20 16 20 14 22 24 17 11 25 11 22 14 4 14 15 20 11 4 3 8 25 10 2 23 4 17 7 16 22 20 19 8 8 18
+>1831_576_1982_F3
+11 31 31 30 31 11 32 29 27 31 24 31 28 30 31 24 33 28 23 27 21 31 31 21 31 17 27 32 30 29 13 22 27 10 31
+>1831_576_1987_F3
+8 2 2 7 8 7 2 5 2 2 8 4 8 14 12 2 4 3 16 16 2 4 18 29 6 2 2 5 3 11 2 3 3 6 10
+>1831_576_2014_F3
+31 31 31 24 11 33 17 24 12 20 29 6 30 11 10 30 22 24 10 14 32 6 26 6 17 31 6 20 5 14 24 11 21 5 16
+>1831_576_2028_F3
+20 27 29 24 29 20 6 17 7 5 22 15 22 13 23 2 5 5 18 24 11 15 4 22 14 2 7 2 11 9 4 5 20 9 10
+>1831_577_40_F3
+24 17 14 19 7 6 13 6 8 7 27 9 30 2 3 8 4 5 27 11 14 18 24 27 7 13 17 11 10 27 28 31 21 16 16
+>1831_577_119_F3
+24 29 30 34 16 16 8 12 16 14 8 2 26 2 14 11 23 20 15 9 10 13 10 3 3 20 20 20 15 10 4 12 13 19 15
+>1831_577_133_F3
+14 19 31 29 29 30 28 16 30 25 10 29 31 15 22 31 31 29 27 29 31 9 27 10 16 31 16 20 8 24 21 6 17 3 8
+>1831_577_255_F3
+22 27 28 23 22 31 29 21 24 4 9 9 2 5 2 12 10 3 13 2 5 5 2 10 3 12 10 4 5 4 13 11 4 20 2
+>1831_577_281_F3
+22 12 25 33 26 23 31 28 26 29 22 31 29 19 30 28 30 10 21 20 24 30 26 20 27 22 30 26 24 31 23 7 29 25 30
+>1831_577_288_F3
+20 26 14 22 24 30 30 5 28 33 25 25 17 24 23 9 21 13 22 14 10 19 5 17 16 11 22 11 21 30 13 22 2 6 21
+>1831_577_322_F3
+24 28 26 29 19 20 15 21 26 17 20 20 19 21 19 12 27 2 22 10 16 24 19 5 17 27 30 21 20 24 21 23 8 22 14
+>1831_577_362_F3
+21 17 33 30 25 31 30 31 27 30 24 20 23 28 11 18 25 11 24 15 25 5 6 12 24 24 11 21 27 20 13 7 3 10 21
+>1831_577_382_F3
+16 17 24 20 22 14 25 16 8 8 28 22 21 7 9 17 19 26 11 18 10 25 27 13 5 13 5 12 28 16 28 17 14 20 9
+>1831_577_464_F3
+18 28 27 22 14 27 23 17 21 8 29 2 13 6 5 19 17 15 19 10 20 2 14 15 19 16 13 22 9 24 16 5 22 20 21
+>1831_577_488_F3
+25 19 23 13 11 9 29 21 20 21 21 27 30 23 28 27 28 27 17 29 21 26 24 19 29 26 28 24 29 31 23 24 17 19 31
+>1831_577_511_F3
+2 22 14 10 5 3 25 27 22 4 21 11 3 3 4 6 4 14 10 8 2 3 22 7 7 5 9 18 29 16 21 6 15 14 10
+>1831_577_545_F3
+29 29 27 27 24 30 27 29 30 32 27 19 23 16 31 27 31 23 28 28 31 22 21 14 21 16 27 24 20 13 20 24 23 23 12
+>1831_577_559_F3
+13 27 31 26 30 30 31 29 31 30 14 17 27 13 31 16 28 29 16 17 28 21 16 14 26 28 30 13 5 17 10 24 17 8 6
+>1831_577_562_F3
+2 7 7 5 9 5 15 4 8 16 4 8 2 7 3 17 12 11 9 9 9 4 14 12 11 11 8 8 5 11 12 13 16 6 9
+>1831_577_637_F3
+23 12 11 19 2 29 25 12 21 10 25 23 11 5 7 20 26 18 28 15 29 22 28 21 23 5 16 14 24 5 6 30 26 19 11
+>1831_577_641_F3
+5 19 22 26 14 6 25 32 26 26 20 30 25 22 17 11 7 28 8 11 2 9 30 10 13 2 5 22 3 23 2 4 22 14 6
+>1831_577_692_F3
+31 33 11 31 30 31 33 7 31 32 30 31 10 31 31 29 31 10 30 28 29 31 6 28 27 31 27 28 27 24 28 30 22 20 27
diff -r 54aa0543925b -r 61dd78cafa09 tool_conf.xml.sample
--- a/tool_conf.xml.sample Fri Jul 31 11:38:03 2009 -0400
+++ b/tool_conf.xml.sample Fri Jul 31 11:48:37 2009 -0400
@@ -77,6 +77,8 @@
<tool file="maf/maf_to_bed.xml" />
<tool file="maf/maf_to_fasta.xml" />
<tool file="fasta_tools/tabular_to_fasta.xml" />
+ <tool file="next_gen_conversion/solid_to_fastq.xml" />
+ <tool file="next_gen_conversion/fastq_conversions.xml" />
</section>
<section name="Extract Features" id="features">
<tool file="filters/ucsc_gene_bed_to_exon_bed.xml" />
diff -r 54aa0543925b -r 61dd78cafa09 tools/next_gen_conversion/fastq_conversions.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/next_gen_conversion/fastq_conversions.py Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,41 @@
+#! /usr/bin/python
+
+"""
+Performs various conversions around Sanger FASTQ data
+
+usage: %prog [options]
+ -c, --command=c: Command to run
+ -i, --input=i: Input file to be converted
+ -o, --outputFastqsanger=o: FASTQ Sanger converted output file for sol2std
+ -s, --outputFastqsolexa=s: FASTQ Solexa converted output file
+ -f, --outputFasta=f: FASTA converted output file
+
+usage: %prog command input_file output_file
+"""
+
+import os, sys, tempfile
+from galaxy import eggs
+import pkg_resources; pkg_resources.require( "bx-python" )
+from bx.cookbook import doc_optparse
+
+def stop_err( msg ):
+ sys.stderr.write( "%s\n" % msg )
+ sys.exit()
+
+def __main__():
+ #Parse Command Line
+ options, args = doc_optparse.parse( __doc__ )
+
+ cmd = "fq_all2std.pl %s %s > %s"
+ if options.command == 'sol2std':
+ cmd = cmd % (options.command, options.input, options.outputFastqsanger)
+ elif options.command == 'std2sol':
+ cmd = cmd % (options.command, options.input, options.outputFastqsolexa)
+ elif options.command == 'fq2fa':
+ cmd = cmd % (options.command, options.input, options.outputFasta)
+ try:
+ os.system(cmd)
+ except Exception, eq:
+ stop_err("Error converting data format.\n" + str(eq))
+
+if __name__=="__main__": __main__()
diff -r 54aa0543925b -r 61dd78cafa09 tools/next_gen_conversion/fastq_conversions.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/next_gen_conversion/fastq_conversions.xml Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,133 @@
+<tool id="fastq_conversions" name="FASTQ Conversions" version="1.0.0">
+ <description>converts between FASTQ data and other data formats</description>
+ <command interpreter="python">
+ fastq_conversions.py
+ --command=$conversionType.type
+ --input=$input
+ #if $conversionType.type == "sol2std":
+ --outputFastqsanger=$outputFastqsanger
+ #else:
+ --outputFastqsanger="None"
+ #end if
+ #if $conversionType.type == "std2sol":
+ --outputFastqsolexa=$outputFastqsolexa
+ #else:
+ --outputFastqsolexa="None"
+ #end if
+ #if $conversionType.type == "fq2fa":
+ --outputFasta=$outputFasta
+ #else:
+ --outputFasta="None"
+ #end if
+ </command>
+ <inputs>
+ <conditional name="conversionType">
+ <param name="type" type="select" label="What type of conversion do you want to do?">
+ <option value="sol2std">Solexa/Illumina FASTQ to standard Sanger FASTQ</option>
+ <option value="std2sol">Standard Sanger FASTQ to Solexa/Illumina FASTQ</option>
+ <option value="fq2fa">Various FASTQ to FASTA</option>
+ </param>
+ <when value="sol2std">
+ <param name="input" type="data" format="fastqsolexa" label="File to convert" />
+ </when>
+ <when value="std2sol">
+ <param name="input" type="data" format="fastqsanger" label="File to convert" />
+ </when>
+ <when value="fq2fa">
+ <param name="input" type="data" format="fastqsolexa, fastqsanger" label="File to convert" />
+ </when>
+ </conditional>
+ </inputs>
+ <outputs>
+ <data name="outputFastqsanger" format="fastqsanger">
+ <filter>conversionType['type'] == 'sol2std'</filter>
+ </data>
+ <data name="outputFastqsolexa" format="fastqsolexa">
+ <filter>conversionType['type'] == 'std2sol'</filter>
+ </data>
+ <data name="outputFasta" format="fasta">
+ <filter>conversionType['type'] == 'fq2fa'</filter>
+ </data>
+ </outputs>
+ <tests>
+ <test>
+ <param name="type" value="sol2std" />
+ <param name="input" value="bwa_phiX_sanger.fastq" ftype="fastqsolexa" />
+ <output name="outputFastqsanger" file="fastq_conv_out1.fastqsanger" />
+ </test>
+ <test>
+ <param name="type" value="std2sol" />
+ <param name="input" value="1.fastqsanger" ftype="fastqsanger" />
+ <output name="outputFastqsolexa" file="fastq_conv_out2.fastqsolexa" />
+ </test>
+ <test>
+ <param name="type" value="fq2fa" />
+ <param name="input" value="1.fastqsanger" ftype="fastqsanger" />
+ <output name="outputFasta" file="fastq_conv_out4.fasta" />
+ </test>
+ </tests>
+ <help>
+**What it does**
+
+This tool offers several conversions options relating to the FASTQ format.
+
+-----
+
+**Examples**
+
+- Converting the Solexa/Illumina FASTQ data::
+
+ @081017-and-081020:1:1:1715:1759
+ GGACTCAGATAGTAATCCACGCTCCTTTAAAATATC
+ +
+ II#IIIIIII$5+.(9IIIIIII$%*$G$A31I&&B
+
+- will produce the following Sanger FASTQ data::
+
+ @081017-and-081020:1:1:1715:1759
+ GGACTCAGATAGTAATCCACGCTCCTTTAAAATATC
+ +
+ ++!+++++++!!!!!"+++++++!!!!)!%!!+!!%!
+
+- Converting standard Sanger FASTQ::
+
+ @1831_573_1004/1
+ AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
+ +
+ ><C&&9952+C>5<.?<79,=42<292:<(9/-7
+ @1831_573_1050/1
+ TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
+ +
+ ;@@17?@=>7??@A8?==@4A?A4)&+.'&+'1,
+
+- will produce the following Solexa/Illumina FASTQ data::
+
+ @1831_573_1004/1
+ AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
+ +
+ ][bEEXXTQJb]T[M^[VXK\SQ[QXQY[GXNLV
+ @1831_573_1050/1
+ TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
+ +
+ Z__PV^_\]V^^_`W^\\_S`^`SHEJMFEJFPK
+
+- Converting the Sanger FASTQ data::
+
+ @1831_573_1004/1
+ AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
+ +
+ ><C&&9952+C>5<.?<79,=42<292:<(9/-7
+ @1831_573_1050/1
+ TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
+ +
+ ;@@17?@=>7??@A8?==@4A?A4)&+.'&+'1,
+
+- will produce the following FASTA data::
+
+ >1831_573_1004/1
+ AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
+ >1831_573_1050/1
+ TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
+
+ </help>
+</tool>
diff -r 54aa0543925b -r 61dd78cafa09 tools/next_gen_conversion/solid_to_fastq.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/next_gen_conversion/solid_to_fastq.py Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,53 @@
+#! /usr/bin/python
+
+"""
+Converts SOLiD data to Sanger FASTQ format.
+
+usage: %prog [options]
+ -i, --input1=i: Forward reads file
+ -q, --input2=q: Forward qual file
+ -I, --input3=I: Reverse reads file
+ -Q, --input4=Q: Reverse qual file
+ -o, --output1=o: Forward output
+ -r, --output2=r: Reverse output
+
+usage: %prog forward_reads_file forwards_qual_file reverse_reads_file(or_None) reverse_qual_file(or_None) output_file ouptut_id output_dir
+"""
+
+import os, sys, tempfile
+from galaxy import eggs
+import pkg_resources; pkg_resources.require( "bx-python" )
+from bx.cookbook import doc_optparse
+
+def stop_err( msg ):
+ sys.stderr.write( "%s\n" % msg )
+ sys.exit()
+
+def __main__():
+ #Parse Command Line
+ options, args = doc_optparse.parse( __doc__ )
+ # if paired-end data (have reverse input files)
+ if options.input3 != "None" and options.input4 != "None":
+ tmpf = tempfile.NamedTemporaryFile() #forward reads
+ tmpr = tempfile.NamedTemporaryFile() #reverse reads
+
+ cmd1 = "bwa_solid2fastq_modified.pl 'yes' %s %s %s %s %s %s %s 2>&1" %(tmpf.name,tmpr.name,None,options.input1,options.input2,options.input3,options.input4)
+ try:
+ os.system(cmd1)
+ os.system('gunzip -c %s >> %s' %(tmpf.name,options.output1))
+ os.system('gunzip -c %s >> %s' %(tmpr.name,options.output2))
+
+ except Exception, eq:
+ stop_err("Error converting data to fastq format.\n" + str(eq))
+ # if single-end data
+ else:
+ tmpf = tempfile.NamedTemporaryFile()
+ cmd1 = "bwa_solid2fastq_modified.pl 'no' %s %s %s %s %s %s %s 2>&1" % (tmpf.name, None, None, options.input1, options.input2, None, None)
+ try:
+ os.system(cmd1)
+ os.system('gunzip -c %s >> %s' % (tmpf.name, options.output1))
+ tmpf.close()
+ except Exception, eq:
+ stop_err("Error converting data to fastq format.\n" + str(eq))
+
+if __name__=="__main__": __main__()
diff -r 54aa0543925b -r 61dd78cafa09 tools/next_gen_conversion/solid_to_fastq.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/next_gen_conversion/solid_to_fastq.xml Fri Jul 31 11:48:37 2009 -0400
@@ -0,0 +1,101 @@
+<tool id="solid_to_fastq" name="SOLiD-to-FASTQ" version="1.0.0">
+ <description>converts SOLiD data to FASTQ data</description>
+ <command interpreter="python">
+ solid_to_fastq.py
+ --input1=$input1
+ --input2=$input2
+ #if $paired.pairedSingle == "single":
+ --input3="None"
+ --input4="None"
+ #else:
+ --input3=$input3
+ --input4=$input4
+ #end if
+ --output1=$output1
+ #if $paired.pairedSingle == "single":
+ --output2="None"
+ #else:
+ --output2=$output2
+ #end if
+ </command>
+ <inputs>
+ <conditional name="paired">
+ <param name="pairedSingle" type="select" label="Is this library mate-paired?">
+ <option value="single">Single</option>
+ <option value="paired">Paired</option>
+ </param>
+ <when value="single">
+ <param name="input1" type="data" format="csfasta" label="F3 read file" />
+ <param name="input2" type="data" format="qualsolid" label="F3 qual file" />
+ </when>
+ <when value="paired">
+ <param name="input1" type="data" format="csfasta" label="F3 read file" />
+ <param name="input2" type="data" format="qualsolid" label="F3 qual file" />
+ <param name="input3" type="data" format="csfasta" label="R3 read file" />
+ <param name="input4" type="data" format="qualsolid" label="R3 qual file" />
+ </when>
+ </conditional>
+ </inputs>
+ <outputs>
+ <!-- Variable number of outputs. Either one (for single-end) or two (for paired-end) -->
+ <data name="output1" format="tabular"/>
+ <data name="output2" format="tabular">
+ <filter>paired['pairedSingle'] == 'paired'</filter>
+ </data>
+ </outputs>
+ <tests>
+ <test>
+ <param name="pairedSingle" value="single" />
+ <param name="input1" value="s2fq_phiX.csfasta" ftype="csfasta" />
+ <param name="input2" value="s2fq_phiX.qualsolid" ftype="qualsolid" />
+ <output name="output1" file="s2fq_out1.tabular" />
+ </test>
+ <!-- testing framework does not deal with multiple outputs yet
+ <test>
+ <param name="pairedSingle" value="paired" />
+ <param name="input1" value="s2fq_paired_F3.csfasta" ftype="csfasta" />
+ <param name="input2" value="s2fq_paired_F3_QV.qualsolid" ftype="qualsolid" />
+ <param name="input3" value="s2fq_paired_R3.csfasta" ftype="csfasta" />
+ <param name="input4" value="s2fq_paired_R3_QV.qualsolid" ftype="qualsolid" />
+ <output name="output1" file="s2fq_out2.tabular" />
+ <output name="output2" file="s2fq_out3.tabular" />
+ </test>
+ -->
+ </tests>
+ <help>
+
+**What it does**
+
+This tool takes reads and quality files and converts them to FASTQ data ( Sanger variant ). Note that it also converts sequences to base pairs.
+
+-----
+
+**Example**
+
+- Converting the following sequences::
+
+ >seq1
+ T00030133312212111300011021310132222
+ >seq2
+ T03330322230322112131010221102122113
+
+- and quality scores::
+
+ >seq1
+ 4 29 34 34 32 32 24 24 20 17 10 34 29 20 34 13 30 34 22 24 11 28 19 17 34 17 24 17 25 34 7 24 14 12 22
+ >seq2
+ 8 26 31 31 16 22 30 31 28 29 22 30 30 31 32 23 30 28 28 31 19 32 30 32 19 8 32 10 13 6 32 10 6 16 11
+
+- will produce the following Sanger FASTQ data::
+
+ @seq1
+ AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
+ +
+ >CCAA9952+C>5C.?C79,=42C292:C(9/-7
+ @seq2
+ TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
+ +
+ ;@@17?@=>7??@A8?==@4A?A4)A+.'A+'1,
+
+ </help>
+</tool>
1
0
Hello,
I'd like to suggest a new feature - administrative lock which prevents new jobs from starting.
Use case:
1. I need to stop my galaxy server (to upgrade, to add new tool, to add new dbkey, etc).
2. I want to stop it in a friendly way, without killing running jobs, but not allow new jobs to start.
3. Once all the running jobs complete (and new jobs are not started), I can stop the server, fix it, and restart.
4. Restarting the server (and assuming jobs are tracked in the database), all the held jobs are started normally.
Code changes:
1. new administrative method ( job_lock() in ./lib/galaxy/web/controller/admin.py )
2. new template ( ./templates/admin/job_lock.mako )
3. job lock code in lib/galaxy/jobs/schedulingpolicy/roundrobin.py
I'm still testing this patch, but comments are welcomed.
-gordon.
3
2
31 Jul '09
Hi Chris,
Sorry about missing the reply, I was on vacation when you wrote back.
Also, I've moved this over to the dev mailing list since it's regarding
local installation issues.
Could you do the following:
Paste the <iframe> tags from "View Source" on the main page.
Paste the log output from the server (or paster.log if you're running as
a daemon) of your client connecting to Galaxy.
Thanks,
--nate
Chris Cole wrote:
> Just realised I'd not sent this to the list. Whoops!
>
> This is still broken, anyone have any ideas?
> Cheers,
>
> Chris
>
> -------- Original Message --------
> Subject: Re: [galaxy-user] Fresh install has wrong layout
> Date: Tue, 21 Jul 2009 10:47:50 +0100
> From: Chris Cole <chris(a)compbio.dundee.ac.uk>
> Organisation: University of Dundee
> To: Nate Coraor <nate(a)bx.psu.edu>
> References: <4A4E147C.6010107(a)compbio.dundee.ac.uk>
> <4A4E1506.5030609(a)bx.psu.edu> <4A4E1716.2070800(a)compbio.dundee.ac.uk>
> <4A52AFFA.5020102(a)bx.psu.edu>
>
> Hi Nate,
>
> Sorry for not replying earlier, I've been on holiday. Attached should be
> my universe_wsgi.ini for the updated server. (The file has a .txt
> extension to avoid sending blockage).
>
> I've used the same settings (where applicable) for my currently working
> svn version 1686.
>
> Chris
>
> Nate Coraor wrote:
>> Chris,
>>
>> Could you send us your universe_wsgi.ini? We haven't seen this happen
>> without a proxy before.
>>
>> --nate
>>
>> Chris Cole wrote:
>>> Hi Nate,
>>>
>>> Nope. There's no proxy configured. The only things I changed in the HTTP
>>> config part of the universe_wsgi.ini are the host and the port.
>>> Cheers,
>>>
>>> Chris
>>>
>>> Nate Coraor wrote:
>>>> Hi Chris,
>>>>
>>>> It sounds like you maybe be running through a proxy, away from the
>>>> server root, without the proxy-prefix option set in universe_wsgi.ini?
>>>> If so, have a look at the documentation here:
>>>>
>>>> http://g2.trac.bx.psu.edu/wiki/HowToInstall/ApacheProxy#Apacheconfiguration…
>>>>
>>>> --nate
>>>>
>>>> Chris Cole wrote:
>>>>> Hi,
>>>>>
>>>>> I've been using the subversion version of Galaxy for a while, but now I
>>>>> want to update to the latest mercurial release.
>>>>>
>>>>> I installed it in a new location as per the wiki and set-up the SGE
>>>>> settings as per my previous install and all the tests pass. It launches
>>>>> fine, but when viewing the website the frames seem to be off-by-one.
>>>>> i.e., the 'Tools' frame is empty except for "This link may not be
>>>>> followed from within Galaxy.", the tools are in the middle window and
>>>>> the 'History' frame has general information.
>>>>>
>>>>> I can't see any errors in the paster.log file, so where can I look to
>>>>> sort out this error?
>>>>> Thanks,
>>>>>
>>>>> Chris
>>>>> _______________________________________________
>>>>> galaxy-user mailing list
>>>>> galaxy-user(a)bx.psu.edu
>>>>> http://mail.bx.psu.edu/cgi-bin/mailman/listinfo/galaxy-user
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> galaxy-user mailing list
> galaxy-user(a)bx.psu.edu
> http://mail.bx.psu.edu/cgi-bin/mailman/listinfo/galaxy-user
2
1
31 Jul '09
details: http://www.bx.psu.edu/hg/galaxy/rev/aabcc797c1da
changeset: 2515:aabcc797c1da
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Thu Jul 30 16:23:47 2009 -0400
description:
Add new flag, allow_datatype_change, to Datatypes. When set to False, datasets of this datatype cannot be changed from or into.
This is needed, i.e. for Rgenetics Datatypes to prevent loss of metadata ('base_name') which occurs when changing to datatypes without this metadata parameter and would render the dataset unusable (composite filenames could be incorrect).
8 file(s) affected in this change:
lib/galaxy/datatypes/data.py
lib/galaxy/datatypes/genetics.py
lib/galaxy/web/controllers/admin.py
lib/galaxy/web/controllers/library.py
lib/galaxy/web/controllers/root.py
templates/admin/library/ldda_edit_info.mako
templates/dataset/edit_attributes.mako
templates/library/ldda_edit_info.mako
diffs (287 lines):
diff -r 904a72f5cf4c -r aabcc797c1da lib/galaxy/datatypes/data.py
--- a/lib/galaxy/datatypes/data.py Thu Jul 30 15:03:53 2009 -0400
+++ b/lib/galaxy/datatypes/data.py Thu Jul 30 16:23:47 2009 -0400
@@ -51,6 +51,8 @@
copy_safe_peek = True
is_binary = True #The dataset contains binary data --> do not space_to_tab or convert newlines, etc. Allow binary file uploads of this type when True.
+
+ allow_datatype_change = True #Allow user to change between this datatype and others. If False, this datatype cannot be changed from or into.
#Composite datatypes
composite_type = None
diff -r 904a72f5cf4c -r aabcc797c1da lib/galaxy/datatypes/genetics.py
--- a/lib/galaxy/datatypes/genetics.py Thu Jul 30 15:03:53 2009 -0400
+++ b/lib/galaxy/datatypes/genetics.py Thu Jul 30 16:23:47 2009 -0400
@@ -122,6 +122,7 @@
file_ext="html"
composite_type = 'auto_primary_file'
+ allow_datatype_change = False
def missing_meta( self, dataset ):
"""Checks for empty meta values"""
@@ -255,6 +256,8 @@
file_ext = None
is_binary = True
+
+ allow_datatype_change = False
composite_type = 'basic'
diff -r 904a72f5cf4c -r aabcc797c1da lib/galaxy/web/controllers/admin.py
--- a/lib/galaxy/web/controllers/admin.py Thu Jul 30 15:03:53 2009 -0400
+++ b/lib/galaxy/web/controllers/admin.py Thu Jul 30 16:23:47 2009 -0400
@@ -1094,7 +1094,7 @@
replace_dataset = None
# Let's not overwrite the imported datatypes module with the variable datatypes?
# The built-in 'id' is overwritten in lots of places as well
- ldatatypes = [ x for x in trans.app.datatypes_registry.datatypes_by_extension.iterkeys() ]
+ ldatatypes = [ dtype_name for dtype_name, dtype_value in trans.app.datatypes_registry.datatypes_by_extension.iteritems() if dtype_value.allow_datatype_change ]
ldatatypes.sort()
if params.get( 'new_dataset_button', False ):
upload_option = params.get( 'upload_option', 'upload_file' )
@@ -1247,17 +1247,20 @@
elif action == 'edit_info':
if params.get( 'change', False ):
# The user clicked the Save button on the 'Change data type' form
- trans.app.datatypes_registry.change_datatype( ldda, params.datatype )
- trans.app.model.flush()
- msg = "Data type changed for library dataset '%s'" % ldda.name
- return trans.fill_template( "/admin/library/ldda_edit_info.mako",
- ldda=ldda,
- library_id=library_id,
- datatypes=ldatatypes,
- restrict=params.get( 'restrict', True ),
- render_templates=params.get( 'render_templates', False ),
- msg=msg,
- messagetype=messagetype )
+ if ldda.datatype.allow_datatype_change and trans.app.datatypes_registry.get_datatype_by_extension( params.datatype ).allow_datatype_change:
+ trans.app.datatypes_registry.change_datatype( ldda, params.datatype )
+ trans.app.model.flush()
+ msg = "Data type changed for library dataset '%s'" % ldda.name
+ return trans.fill_template( "/admin/library/ldda_edit_info.mako",
+ ldda=ldda,
+ library_id=library_id,
+ datatypes=ldatatypes,
+ restrict=params.get( 'restrict', True ),
+ render_templates=params.get( 'render_templates', False ),
+ msg=msg,
+ messagetype=messagetype )
+ else:
+ return trans.show_error_message( "You are unable to change datatypes in this manner. Changing %s to %s is not allowed." % ( ldda.extension, params.datatype ) )
elif params.get( 'save', False ):
# The user clicked the Save button on the 'Edit Attributes' form
old_name = ldda.name
diff -r 904a72f5cf4c -r aabcc797c1da lib/galaxy/web/controllers/library.py
--- a/lib/galaxy/web/controllers/library.py Thu Jul 30 15:03:53 2009 -0400
+++ b/lib/galaxy/web/controllers/library.py Thu Jul 30 16:23:47 2009 -0400
@@ -430,7 +430,7 @@
replace_dataset = None
# Let's not overwrite the imported datatypes module with the variable datatypes?
# The built-in 'id' is overwritten in lots of places as well
- ldatatypes = [ x for x in trans.app.datatypes_registry.datatypes_by_extension.iterkeys() ]
+ ldatatypes = [ dtype_name for dtype_name, dtype_value in trans.app.datatypes_registry.datatypes_by_extension.iteritems() if dtype_value.allow_datatype_change ]
ldatatypes.sort()
if id:
if params.get( 'permissions', False ):
@@ -505,10 +505,14 @@
if trans.app.security_agent.allow_action( trans.user,
trans.app.security_agent.permitted_actions.LIBRARY_MODIFY,
library_item=ldda ):
- trans.app.datatypes_registry.change_datatype( ldda, params.datatype )
- trans.app.model.flush()
- msg = "Data type changed for library dataset '%s'" % ldda.name
- messagetype = 'done'
+ if ldda.datatype.allow_datatype_change and trans.app.datatypes_registry.get_datatype_by_extension( params.datatype ).allow_datatype_change:
+ trans.app.datatypes_registry.change_datatype( ldda, params.datatype )
+ trans.app.model.flush()
+ msg = "Data type changed for library dataset '%s'" % ldda.name
+ messagetype = 'done'
+ else:
+ msg = "You are unable to change datatypes in this manner. Changing %s to %s is not allowed." % ( ldda.extension, params.datatype )
+ messagetype = 'error'
else:
msg = "You are not authorized to change the data type of dataset '%s'" % ldda.name
messagetype = 'error'
diff -r 904a72f5cf4c -r aabcc797c1da lib/galaxy/web/controllers/root.py
--- a/lib/galaxy/web/controllers/root.py Thu Jul 30 15:03:53 2009 -0400
+++ b/lib/galaxy/web/controllers/root.py Thu Jul 30 16:23:47 2009 -0400
@@ -247,8 +247,11 @@
params = util.Params( kwd, safe=False )
if params.change:
# The user clicked the Save button on the 'Change data type' form
- trans.app.datatypes_registry.change_datatype( data, params.datatype )
- trans.app.model.flush()
+ if data.datatype.allow_datatype_change and trans.app.datatypes_registry.get_datatype_by_extension( params.datatype ).allow_datatype_change:
+ trans.app.datatypes_registry.change_datatype( data, params.datatype )
+ trans.app.model.flush()
+ else:
+ return trans.show_error_message( "You are unable to change datatypes in this manner. Changing %s to %s is not allowed." % ( data.extension, params.datatype ) )
elif params.save:
# The user clicked the Save button on the 'Edit Attributes' form
data.name = params.name
@@ -314,7 +317,7 @@
data.metadata.dbkey = data.dbkey
# let's not overwrite the imported datatypes module with the variable datatypes?
# the built-in 'id' is overwritten in lots of places as well
- ldatatypes = [x for x in trans.app.datatypes_registry.datatypes_by_extension.iterkeys()]
+ ldatatypes = [ dtype_name for dtype_name, dtype_value in trans.app.datatypes_registry.datatypes_by_extension.iteritems() if dtype_value.allow_datatype_change ]
ldatatypes.sort()
trans.log_event( "Opened edit view on dataset %s" % str(id) )
return trans.fill_template( "/dataset/edit_attributes.mako", data=data, datatypes=ldatatypes )
diff -r 904a72f5cf4c -r aabcc797c1da templates/admin/library/ldda_edit_info.mako
--- a/templates/admin/library/ldda_edit_info.mako Thu Jul 30 15:03:53 2009 -0400
+++ b/templates/admin/library/ldda_edit_info.mako Thu Jul 30 16:23:47 2009 -0400
@@ -99,24 +99,30 @@
<div class="toolForm">
<div class="toolFormTitle">Change data type of ${ldda.name}</div>
<div class="toolFormBody">
- <form name="change_datatype" action="${h.url_for( controller='admin', action='library_dataset_dataset_association', library_id=library_id, folder_id=ldda.library_dataset.folder.id, edit_info=True )}" method="post">
- <input type="hidden" name="id" value="${ldda.id}"/>
+ %if ldda.datatype.allow_datatype_change:
+ <form name="change_datatype" action="${h.url_for( controller='admin', action='library_dataset_dataset_association', library_id=library_id, folder_id=ldda.library_dataset.folder.id, edit_info=True )}" method="post">
+ <input type="hidden" name="id" value="${ldda.id}"/>
+ <div class="form-row">
+ <label>New Type:</label>
+ <div style="float: left; width: 250px; margin-right: 10px;">
+ ${datatype( ldda, datatypes )}
+ </div>
+ <div class="toolParamHelp" style="clear: both;">
+ This will change the datatype of the existing dataset
+ but <i>not</i> modify its contents. Use this if Galaxy
+ has incorrectly guessed the type of your dataset.
+ </div>
+ <div style="clear: both"></div>
+ </div>
+ <div class="form-row">
+ <input type="submit" name="change" value="Save"/>
+ </div>
+ </form>
+ %else:
<div class="form-row">
- <label>New Type:</label>
- <div style="float: left; width: 250px; margin-right: 10px;">
- ${datatype( ldda, datatypes )}
- </div>
- <div class="toolParamHelp" style="clear: both;">
- This will change the datatype of the existing dataset
- but <i>not</i> modify its contents. Use this if Galaxy
- has incorrectly guessed the type of your dataset.
- </div>
- <div style="clear: both"></div>
+ <div class="warningmessagesmall">${_('Changing the datatype of this dataset is not allowed.')}</div>
</div>
- <div class="form-row">
- <input type="submit" name="change" value="Save"/>
- </div>
- </form>
+ %endif
</div>
</div>
diff -r 904a72f5cf4c -r aabcc797c1da templates/dataset/edit_attributes.mako
--- a/templates/dataset/edit_attributes.mako Thu Jul 30 15:03:53 2009 -0400
+++ b/templates/dataset/edit_attributes.mako Thu Jul 30 16:23:47 2009 -0400
@@ -102,27 +102,34 @@
</div>
<p />
%endif
+
<div class="toolForm">
<div class="toolFormTitle">${_('Change data type')}</div>
<div class="toolFormBody">
- <form name="change_datatype" action="${h.url_for( controller='root', action='edit' )}" method="post">
- <input type="hidden" name="id" value="${data.id}"/>
+ %if data.datatype.allow_datatype_change:
+ <form name="change_datatype" action="${h.url_for( controller='root', action='edit' )}" method="post">
+ <input type="hidden" name="id" value="${data.id}"/>
+ <div class="form-row">
+ <label>
+ ${_('New Type')}:
+ </label>
+ <div style="float: left; width: 250px; margin-right: 10px;">
+ ${datatype( data, datatypes )}
+ </div>
+ <div class="toolParamHelp" style="clear: both;">
+ ${_('This will change the datatype of the existing dataset but <i>not</i> modify its contents. Use this if Galaxy has incorrectly guessed the type of your dataset.')}
+ </div>
+ <div style="clear: both"></div>
+ </div>
+ <div class="form-row">
+ <input type="submit" name="change" value="${_('Save')}"/>
+ </div>
+ </form>
+ %else:
<div class="form-row">
- <label>
- ${_('New Type')}:
- </label>
- <div style="float: left; width: 250px; margin-right: 10px;">
- ${datatype( data, datatypes )}
- </div>
- <div class="toolParamHelp" style="clear: both;">
- ${_('This will change the datatype of the existing dataset but <i>not</i> modify its contents. Use this if Galaxy has incorrectly guessed the type of your dataset.')}
- </div>
- <div style="clear: both"></div>
+ <div class="warningmessagesmall">${_('Changing the datatype of this dataset is not allowed.')}</div>
</div>
- <div class="form-row">
- <input type="submit" name="change" value="${_('Save')}"/>
- </div>
- </form>
+ %endif
</div>
</div>
<p />
diff -r 904a72f5cf4c -r aabcc797c1da templates/library/ldda_edit_info.mako
--- a/templates/library/ldda_edit_info.mako Thu Jul 30 15:03:53 2009 -0400
+++ b/templates/library/ldda_edit_info.mako Thu Jul 30 16:23:47 2009 -0400
@@ -99,24 +99,30 @@
<div class="toolForm">
<div class="toolFormTitle">Change data type</div>
<div class="toolFormBody">
- <form name="change_datatype" action="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library_id, folder_id=ldda.library_dataset.folder.id, edit_info=True )}" method="post">
- <input type="hidden" name="id" value="${ldda.id}"/>
+ %if ldda.datatype.allow_datatype_change:
+ <form name="change_datatype" action="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library_id, folder_id=ldda.library_dataset.folder.id, edit_info=True )}" method="post">
+ <input type="hidden" name="id" value="${ldda.id}"/>
+ <div class="form-row">
+ <label>New Type:</label>
+ <div style="float: left; width: 250px; margin-right: 10px;">
+ ${datatype( ldda, datatypes )}
+ </div>
+ <div class="toolParamHelp" style="clear: both;">
+ This will change the datatype of the existing dataset
+ but <i>not</i> modify its contents. Use this if Galaxy
+ has incorrectly guessed the type of your dataset.
+ </div>
+ <div style="clear: both"></div>
+ </div>
+ <div class="form-row">
+ <input type="submit" name="change" value="Save"/>
+ </div>
+ </form>
+ %else:
<div class="form-row">
- <label>New Type:</label>
- <div style="float: left; width: 250px; margin-right: 10px;">
- ${datatype( ldda, datatypes )}
- </div>
- <div class="toolParamHelp" style="clear: both;">
- This will change the datatype of the existing dataset
- but <i>not</i> modify its contents. Use this if Galaxy
- has incorrectly guessed the type of your dataset.
- </div>
- <div style="clear: both"></div>
+ <div class="warningmessagesmall">${_('Changing the datatype of this dataset is not allowed.')}</div>
</div>
- <div class="form-row">
- <input type="submit" name="change" value="Save"/>
- </div>
- </form>
+ %endif
</div>
</div>
<p/>
1
0
30 Jul '09
details: http://www.bx.psu.edu/hg/galaxy/rev/904a72f5cf4c
changeset: 2514:904a72f5cf4c
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Thu Jul 30 15:03:53 2009 -0400
description:
Fix for trans.log_event when undeleting a history.
1 file(s) affected in this change:
lib/galaxy/web/controllers/history.py
diffs (12 lines):
diff -r 3574137cf7fb -r 904a72f5cf4c lib/galaxy/web/controllers/history.py
--- a/lib/galaxy/web/controllers/history.py Thu Jul 30 14:13:04 2009 -0400
+++ b/lib/galaxy/web/controllers/history.py Thu Jul 30 15:03:53 2009 -0400
@@ -166,7 +166,7 @@
default_permissions[ default_action ] = [ private_user_role ]
trans.app.security_agent.history_set_default_permissions( history, default_permissions )
n_undeleted += 1
- trans.log_event( "History (%s) %d marked as undeleted" % history.name )
+ trans.log_event( "History (%s) %d marked as undeleted" % ( history.name, history.id ) )
status = SUCCESS
message_parts = []
if n_undeleted:
1
0
30 Jul '09
details: http://www.bx.psu.edu/hg/galaxy/rev/3574137cf7fb
changeset: 2513:3574137cf7fb
user: Nate Coraor <nate(a)bx.psu.edu>
date: Thu Jul 30 14:13:04 2009 -0400
description:
Only require access permission to view private datasets at external sites.
1 file(s) affected in this change:
lib/galaxy/web/controllers/dataset.py
diffs (12 lines):
diff -r 315ac197ff33 -r 3574137cf7fb lib/galaxy/web/controllers/dataset.py
--- a/lib/galaxy/web/controllers/dataset.py Thu Jul 30 12:56:16 2009 -0400
+++ b/lib/galaxy/web/controllers/dataset.py Thu Jul 30 14:13:04 2009 -0400
@@ -144,7 +144,7 @@
redirect_url = kwd['redirect_url'] % urllib.quote_plus( kwd['display_url'] )
if trans.app.security_agent.allow_action( None, data.permitted_actions.DATASET_ACCESS, dataset = data ):
return trans.response.send_redirect( redirect_url ) # anon access already permitted by rbac
- if trans.app.security_agent.allow_action( trans.user, data.permitted_actions.DATASET_MANAGE_PERMISSIONS, dataset = data ):
+ if trans.app.security_agent.allow_action( trans.user, data.permitted_actions.DATASET_ACCESS, dataset = data ):
trans.app.host_security_agent.set_dataset_permissions( data, trans.user, site )
return trans.response.send_redirect( redirect_url )
else:
1
0
30 Jul '09
details: http://www.bx.psu.edu/hg/galaxy/rev/315ac197ff33
changeset: 2512:315ac197ff33
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Thu Jul 30 12:56:16 2009 -0400
description:
Add a new flag -f/--force_retry to cleanup_datasets.py. This flag will cause the script to attempt to perform the requestion action on objects regardless if it has been performed before.
This is useful, i.e. if purge_datasets was called with out using --remove_from_disk, but it is later decided to remove these files: the purge_datasets script should be called with both -r and -f.
1 file(s) affected in this change:
scripts/cleanup_datasets/cleanup_datasets.py
diffs (162 lines):
diff -r ec59d6bcf827 -r 315ac197ff33 scripts/cleanup_datasets/cleanup_datasets.py
--- a/scripts/cleanup_datasets/cleanup_datasets.py Thu Jul 30 12:12:26 2009 -0400
+++ b/scripts/cleanup_datasets/cleanup_datasets.py Thu Jul 30 12:56:16 2009 -0400
@@ -24,6 +24,7 @@
parser.add_option( "-d", "--days", dest="days", action="store", type="int", help="number of days (60)", default=60 )
parser.add_option( "-r", "--remove_from_disk", action="store_true", dest="remove_from_disk", help="remove datasets from disk when purged", default=False )
parser.add_option( "-i", "--info_only", action="store_true", dest="info_only", help="info about the requested action", default=False )
+ parser.add_option( "-f", "--force_retry", action="store_true", dest="force_retry", help="performs the requested actions, but ignores whether it might have been done before. Useful when -r wasn't used, but should have been", default=False )
parser.add_option( "-1", "--delete_userless_histories", action="store_true", dest="delete_userless_histories", default=False, help="delete userless histories and datasets" )
@@ -73,28 +74,32 @@
print "# Datasets will NOT be removed from disk.\n"
if options.delete_userless_histories:
- delete_userless_histories( app, cutoff_time, info_only = options.info_only )
+ delete_userless_histories( app, cutoff_time, info_only = options.info_only, force_retry = options.force_retry )
elif options.purge_histories:
- purge_histories( app, cutoff_time, options.remove_from_disk, info_only = options.info_only )
+ purge_histories( app, cutoff_time, options.remove_from_disk, info_only = options.info_only, force_retry = options.force_retry )
elif options.purge_datasets:
- purge_datasets( app, cutoff_time, options.remove_from_disk, info_only = options.info_only )
+ purge_datasets( app, cutoff_time, options.remove_from_disk, info_only = options.info_only, force_retry = options.force_retry )
elif options.purge_libraries:
- purge_libraries( app, cutoff_time, options.remove_from_disk, info_only = options.info_only )
+ purge_libraries( app, cutoff_time, options.remove_from_disk, info_only = options.info_only, force_retry = options.force_retry )
elif options.purge_folders:
- purge_folders( app, cutoff_time, options.remove_from_disk, info_only = options.info_only )
+ purge_folders( app, cutoff_time, options.remove_from_disk, info_only = options.info_only, force_retry = options.force_retry )
sys.exit(0)
-def delete_userless_histories( app, cutoff_time, info_only = False ):
+def delete_userless_histories( app, cutoff_time, info_only = False, force_retry = False ):
# Deletes userless histories whose update_time value is older than the cutoff_time.
# The purge history script will handle marking DatasetInstances as deleted.
# Nothing is removed from disk yet.
history_count = 0
print '# The following datasets and associated userless histories have been deleted'
start = time.clock()
- histories = app.model.History.filter( and_( app.model.History.table.c.user_id==None,
- app.model.History.table.c.deleted==False,
- app.model.History.table.c.update_time < cutoff_time ) ).all()# \
+ if force_retry:
+ histories = app.model.History.filter( and_( app.model.History.table.c.user_id==None,
+ app.model.History.table.c.update_time < cutoff_time ) ).all()
+ else:
+ histories = app.model.History.filter( and_( app.model.History.table.c.user_id==None,
+ app.model.History.table.c.deleted==False,
+ app.model.History.table.c.update_time < cutoff_time ) ).all()
for history in histories:
if not info_only:
history.deleted = True
@@ -106,7 +111,7 @@
print "Elapsed time: ", stop - start, "\n"
-def purge_histories( app, cutoff_time, remove_from_disk, info_only = False ):
+def purge_histories( app, cutoff_time, remove_from_disk, info_only = False, force_retry = False ):
# Purges deleted histories whose update_time is older than the cutoff_time.
# The dataset associations of each history are also marked as deleted.
# The Purge Dataset method will purge each Dataset as necessary
@@ -115,10 +120,15 @@
history_count = 0
print '# The following datasets and associated deleted histories have been purged'
start = time.clock()
- histories = app.model.History.filter( and_( app.model.History.table.c.deleted==True,
- app.model.History.table.c.purged==False,
- app.model.History.table.c.update_time < cutoff_time ) ) \
- .options( eagerload( 'datasets' ) ).all()
+ if force_retry:
+ histories = app.model.History.filter( and_( app.model.History.table.c.deleted==True,
+ app.model.History.table.c.update_time < cutoff_time ) ) \
+ .options( eagerload( 'datasets' ) ).all()
+ else:
+ histories = app.model.History.filter( and_( app.model.History.table.c.deleted==True,
+ app.model.History.table.c.purged==False,
+ app.model.History.table.c.update_time < cutoff_time ) ) \
+ .options( eagerload( 'datasets' ) ).all()
for history in histories:
for dataset_assoc in history.datasets:
_purge_dataset_instance( dataset_assoc, app, remove_from_disk, info_only = info_only ) #mark a DatasetInstance as deleted, clear associated files, and mark the Dataset as deleted if it is deletable
@@ -136,7 +146,7 @@
print '# Purged %d histories.' % ( history_count ), '\n'
print "Elapsed time: ", stop - start, "\n"
-def purge_libraries( app, cutoff_time, remove_from_disk, info_only = False ):
+def purge_libraries( app, cutoff_time, remove_from_disk, info_only = False, force_retry = False ):
# Purges deleted libraries whose update_time is older than the cutoff_time.
# The dataset associations of each library are also marked as deleted.
# The Purge Dataset method will purge each Dataset as necessary
@@ -145,9 +155,13 @@
library_count = 0
print '# The following libraries and associated folders have been purged'
start = time.clock()
- libraries = app.model.Library.filter( and_( app.model.Library.table.c.deleted==True,
- app.model.Library.table.c.purged==False,
- app.model.Library.table.c.update_time < cutoff_time ) ).all()
+ if force_retry:
+ libraries = app.model.Library.filter( and_( app.model.Library.table.c.deleted==True,
+ app.model.Library.table.c.update_time < cutoff_time ) ).all()
+ else:
+ libraries = app.model.Library.filter( and_( app.model.Library.table.c.deleted==True,
+ app.model.Library.table.c.purged==False,
+ app.model.Library.table.c.update_time < cutoff_time ) ).all()
for library in libraries:
_purge_folder( library.root_folder, app, remove_from_disk, info_only = info_only )
if not info_only:
@@ -159,7 +173,7 @@
print '# Purged %d libraries .' % ( library_count ), '\n'
print "Elapsed time: ", stop - start, "\n"
-def purge_folders( app, cutoff_time, remove_from_disk, info_only = False ):
+def purge_folders( app, cutoff_time, remove_from_disk, info_only = False, force_retry = False ):
# Purges deleted folders whose update_time is older than the cutoff_time.
# The dataset associations of each folder are also marked as deleted.
# The Purge Dataset method will purge each Dataset as necessary
@@ -168,9 +182,13 @@
folder_count = 0
print '# The following folders have been purged'
start = time.clock()
- folders = app.model.LibraryFolder.filter( and_( app.model.LibraryFolder.table.c.deleted==True,
- app.model.LibraryFolder.table.c.purged==False,
- app.model.LibraryFolder.table.c.update_time < cutoff_time ) ).all()
+ if force_retry:
+ folders = app.model.LibraryFolder.filter( and_( app.model.LibraryFolder.table.c.deleted==True,
+ app.model.LibraryFolder.table.c.update_time < cutoff_time ) ).all()
+ else:
+ folders = app.model.LibraryFolder.filter( and_( app.model.LibraryFolder.table.c.deleted==True,
+ app.model.LibraryFolder.table.c.purged==False,
+ app.model.LibraryFolder.table.c.update_time < cutoff_time ) ).all()
for folder in folders:
_purge_folder( folder, app, remove_from_disk, info_only = info_only )
print "%d" % folder.id
@@ -179,17 +197,22 @@
print '# Purged %d folders.' % ( folder_count ), '\n'
print "Elapsed time: ", stop - start, "\n"
-def purge_datasets( app, cutoff_time, remove_from_disk, info_only = False ):
+def purge_datasets( app, cutoff_time, remove_from_disk, info_only = False, repurge = False, force_retry = False ):
# Purges deleted datasets whose update_time is older than cutoff_time. Files may or may
# not be removed from disk.
dataset_count = 0
disk_space = 0
print '# The following deleted datasets have been purged'
start = time.clock()
- datasets = app.model.Dataset.filter( and_( app.model.Dataset.table.c.deleted==True,
- app.model.Dataset.table.c.purgable==True,
- app.model.Dataset.table.c.purged==False,
- app.model.Dataset.table.c.update_time < cutoff_time ) ).all()
+ if force_retry:
+ datasets = app.model.Dataset.filter( and_( app.model.Dataset.table.c.deleted==True,
+ app.model.Dataset.table.c.purgable==True,
+ app.model.Dataset.table.c.update_time < cutoff_time ) ).all()
+ else:
+ datasets = app.model.Dataset.filter( and_( app.model.Dataset.table.c.deleted==True,
+ app.model.Dataset.table.c.purgable==True,
+ app.model.Dataset.table.c.purged==False,
+ app.model.Dataset.table.c.update_time < cutoff_time ) ).all()
for dataset in datasets:
file_size = dataset.file_size
_purge_dataset( dataset, remove_from_disk, info_only = info_only )
1
0
30 Jul '09
details: http://www.bx.psu.edu/hg/galaxy/rev/ec59d6bcf827
changeset: 2511:ec59d6bcf827
user: Nate Coraor <nate(a)bx.psu.edu>
date: Thu Jul 30 12:12:26 2009 -0400
description:
Fix a problem introduced in db version 10 (MySQL's length limits prevent the creation of an index)
1 file(s) affected in this change:
lib/galaxy/model/migrate/versions/0011_v0010_mysql_index_fix.py
diffs (55 lines):
diff -r fab59b1e756d -r ec59d6bcf827 lib/galaxy/model/migrate/versions/0011_v0010_mysql_index_fix.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/galaxy/model/migrate/versions/0011_v0010_mysql_index_fix.py Thu Jul 30 12:12:26 2009 -0400
@@ -0,0 +1,51 @@
+from sqlalchemy import *
+from sqlalchemy.orm import *
+from sqlalchemy.exceptions import *
+from migrate import *
+from migrate.changeset import *
+
+import datetime
+now = datetime.datetime.utcnow
+
+import sys, logging
+log = logging.getLogger( __name__ )
+log.setLevel(logging.DEBUG)
+handler = logging.StreamHandler( sys.stdout )
+format = "%(name)s %(levelname)s %(asctime)s %(message)s"
+formatter = logging.Formatter( format )
+handler.setFormatter( formatter )
+log.addHandler( handler )
+
+# Need our custom types, but don't import anything else from model
+from galaxy.model.custom_types import *
+
+metadata = MetaData( migrate_engine )
+db_session = scoped_session( sessionmaker( bind=migrate_engine, autoflush=False, transactional=False ) )
+
+HistoryDatasetAssociationDisplayAtAuthorization_table = Table( "history_dataset_association_display_at_authorization", metadata,
+ Column( "id", Integer, primary_key=True ),
+ Column( "create_time", DateTime, default=now ),
+ Column( "update_time", DateTime, index=True, default=now, onupdate=now ),
+ Column( "history_dataset_association_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
+ Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
+ Column( "site", TrimmedString( 255 ) ) )
+
+def upgrade():
+ if migrate_engine.name == 'mysql':
+ # Load existing tables
+ metadata.reflect()
+ i = Index( "ix_hdadaa_history_dataset_association_id", HistoryDatasetAssociationDisplayAtAuthorization_table.c.history_dataset_association_id )
+ try:
+ i.create()
+ except Exception, e:
+ log.debug( "Adding index 'ix_hdadaa_history_dataset_association_id' to table 'history_dataset_association_display_at_authorization' table failed: %s" % str( e ) )
+
+def downgrade():
+ if migrate_engine.name == 'mysql':
+ # Load existing tables
+ metadata.reflect()
+ i = Index( "ix_hdadaa_history_dataset_association_id", HistoryDatasetAssociationDisplayAtAuthorization_table.c.history_dataset_association_id )
+ try:
+ i.drop()
+ except Exception, e:
+ log.debug( "Removing index 'ix_hdadaa_history_dataset_association_id' from table 'history_dataset_association_display_at_authorization' table failed: %s" % str( e ) )
1
0
30 Jul '09
details: http://www.bx.psu.edu/hg/galaxy/rev/fab59b1e756d
changeset: 2510:fab59b1e756d
user: Kelly Vincent <kpvincent(a)bx.psu.edu>
date: Thu Jul 30 12:06:24 2009 -0400
description:
Added fastqsanger data format and required bwa_wrapper to take only that format as input
9 file(s) affected in this change:
datatypes_conf.xml.sample
lib/galaxy/datatypes/registry.py
lib/galaxy/datatypes/sequence.py
lib/galaxy/datatypes/test/1.fastqsanger
lib/galaxy/datatypes/test/2.fastqsanger
test-data/1.fastqsanger
test-data/2.fastqsanger
test/functional/test_sniffing_and_metadata_settings.py
tools/sr_mapping/bwa_wrapper.xml
diffs (298 lines):
diff -r f06777cbd5bb -r fab59b1e756d datatypes_conf.xml.sample
--- a/datatypes_conf.xml.sample Thu Jul 30 11:05:03 2009 -0400
+++ b/datatypes_conf.xml.sample Thu Jul 30 12:06:24 2009 -0400
@@ -20,6 +20,7 @@
<datatype extension="fasta" type="galaxy.datatypes.sequence:Fasta" display_in_upload="true">
<converter file="fasta_to_tabular_converter.xml" target_datatype="tabular"/>
</datatype>
+ <datatype extension="fastqsanger" type="galaxy.datatypes.sequence:FastqSanger" display_in_upload="true"/>
<datatype extension="fastqsolexa" type="galaxy.datatypes.sequence:FastqSolexa" display_in_upload="true">
<converter file="fastqsolexa_to_fasta_converter.xml" target_datatype="fasta"/>
<converter file="fastqsolexa_to_qual_converter.xml" target_datatype="qualsolexa"/>
@@ -195,6 +196,7 @@
<sniffer type="galaxy.datatypes.qualityscore:QualityScore454"/>
<sniffer type="galaxy.datatypes.sequence:Fasta"/>
<sniffer type="galaxy.datatypes.sequence:FastqSolexa"/>
+ <sniffer type="galaxy.datatypes.sequence:FastqSanger"/>
<sniffer type="galaxy.datatypes.interval:Wiggle"/>
<sniffer type="galaxy.datatypes.images:Html"/>
<sniffer type="galaxy.datatypes.sequence:Axt"/>
diff -r f06777cbd5bb -r fab59b1e756d lib/galaxy/datatypes/registry.py
--- a/lib/galaxy/datatypes/registry.py Thu Jul 30 11:05:03 2009 -0400
+++ b/lib/galaxy/datatypes/registry.py Thu Jul 30 12:06:24 2009 -0400
@@ -117,6 +117,7 @@
'customtrack' : interval.CustomTrack(),
'csfasta' : sequence.csFasta(),
'fasta' : sequence.Fasta(),
+ 'fastqsanger' : sequence.FastqSanger(),
'fastqsolexa' : sequence.FastqSolexa(),
'gff' : interval.Gff(),
'gff3' : interval.Gff3(),
@@ -144,6 +145,7 @@
'customtrack' : 'text/plain',
'csfasta' : 'text/plain',
'fasta' : 'text/plain',
+ 'fastqsanger' : 'text/plain',
'fastqsolexa' : 'text/plain',
'gff' : 'text/plain',
'gff3' : 'text/plain',
@@ -173,6 +175,7 @@
qualityscore.QualityScore454(),
sequence.Fasta(),
sequence.FastqSolexa(),
+ sequence.FastqSanger(),
interval.Wiggle(),
images.Html(),
sequence.Axt(),
diff -r f06777cbd5bb -r fab59b1e756d lib/galaxy/datatypes/sequence.py
--- a/lib/galaxy/datatypes/sequence.py Thu Jul 30 11:05:03 2009 -0400
+++ b/lib/galaxy/datatypes/sequence.py Thu Jul 30 12:06:24 2009 -0400
@@ -176,16 +176,139 @@
except:
qscore_int = False
+ # check length and range of quality scores
if qscore_int:
if len( headers[3] ) != len( headers[1][0] ):
return False
+ if not self.check_qual_values_within_range(headers[3], 'int'):
+ return False
+ try:
+ if not self.check_qual_values_within_range(headers[7], 'int'):
+ return False
+ try:
+ if not self.check_qual_values_within_range(headers[11], 'int'):
+ return False
+ except IndexError:
+ pass
+ except IndexError:
+ pass
else:
if len( headers[3][0] ) != len( headers[1][0] ):
- return False
+ return False
+ if not self.check_qual_values_within_range(headers[3][0], 'char'):
+ return False
+ try:
+ if not self.check_qual_values_within_range(headers[7][0], 'char'):
+ return False
+ try:
+ if not self.check_qual_values_within_range(headers[11][0], 'char'):
+ return False
+ except IndexError:
+ pass
+ except IndexError:
+ pass
return True
return False
except:
return False
+ def check_qual_values_within_range( self, qual_seq, score_type ):
+ if score_type == 'char':
+ for val in qual_seq:
+ if ord(val) < 59 or ord(val) > 104:
+ return False
+ elif score_type == 'int':
+ for val in qual_seq:
+ if int(val) < -5 or int(val) > 40:
+ return False
+ return True
+
+
+class FastqSanger( Sequence ):
+ """Class representing a FASTQ sequence ( the Sanger variant )"""
+ file_ext = "fastqsanger"
+
+ def set_peek( self, dataset ):
+ if not dataset.dataset.purged:
+ dataset.peek = data.get_file_peek( dataset.file_name )
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
+
+ def sniff( self, filename ):
+ """
+ Determines whether the file is in fastqsanger format (Sanger Variant)
+ For details, see http://maq.sourceforge.net/fastq.shtml
+
+ Note: There are two kinds of FASTQ files, known as "Sanger" (sometimes called "Standard") and Solexa
+ These differ in the representation of the quality scores
+
+ >>> fname = get_test_fname( '1.fastqsanger' )
+ >>> FastqSanger().sniff( fname )
+ True
+ >>> fname = get_test_fname( '2.fastqsanger' )
+ >>> FastqSanger().sniff( fname )
+ True
+ """
+ headers = get_headers( filename, None )
+ bases_regexp = re.compile( "^[NGTAC]*$" )
+ try:
+ if len( headers ) >= 4 and headers[0][0] and headers[0][0][0] == "@" and headers[2][0] and headers[2][0][0] == "+" and headers[1][0]:
+ # Check the sequence line, make sure it contains only G/C/A/T/N
+ if not bases_regexp.match( headers[1][0] ):
+ return False
+ # Check quality score: integer or ascii char.
+ try:
+ check = int(headers[3][0])
+ qscore_int = True
+ except:
+ qscore_int = False
+
+ # check length and range of quality scores
+ if qscore_int:
+ if len( headers[3] ) != len( headers[1][0] ):
+ return False
+ if not self.check_qual_values_within_range(headers[3], 'int'):
+ return False
+ try:
+ if not self.check_qual_values_within_range(headers[7], 'int'):
+ return False
+ try:
+ if not self.check_qual_values_within_range(headers[11], 'int'):
+ return False
+ except IndexError:
+ pass
+ except IndexError:
+ pass
+ else:
+ if len( headers[3][0] ) != len( headers[1][0] ):
+ return False
+ if not self.check_qual_values_within_range(headers[3][0], 'char'):
+ return False
+ try:
+ if not self.check_qual_values_within_range(headers[7][0], 'char'):
+ return False
+ try:
+ if not self.check_qual_values_within_range(headers[11][0], 'char'):
+ return False
+ except IndexError:
+ pass
+ except IndexError:
+ pass
+ return True
+ return False
+ except:
+ return False
+ def check_qual_values_within_range( self, qual_seq, score_type ):
+ if score_type == 'char':
+ for val in qual_seq:
+ if ord(val) >= 33 and ord(val) <= 126:
+ return True
+ elif score_type == 'int':
+ for val in qual_seq:
+ if int(val) >= 0 and int(val) <= 93:
+ return True
+ return False
try:
from galaxy import eggs
diff -r f06777cbd5bb -r fab59b1e756d lib/galaxy/datatypes/test/1.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/galaxy/datatypes/test/1.fastqsanger Thu Jul 30 12:06:24 2009 -0400
@@ -0,0 +1,8 @@
+@1831_573_1004/1
+AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
++
+><C&&9952+C>5<.?<79,=42<292:<(9/-7
+@1831_573_1050/1
+TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
++
+;@@17?@=>7??@A8?==@4A?A4)&+.'&+'1,
\ No newline at end of file
diff -r f06777cbd5bb -r fab59b1e756d lib/galaxy/datatypes/test/2.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/galaxy/datatypes/test/2.fastqsanger Thu Jul 30 12:06:24 2009 -0400
@@ -0,0 +1,8 @@
+@1831_573_1004/1
+AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
++
+29 27 34 5 5 24 24 20 17 10 34 29 20 27 13 30 27 22 24 11 28 19 17 27 17 24 17 25 27 7 24 14 12 22
+@1831_573_1050/1
+TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
++
+26 31 31 16 22 30 31 28 29 22 30 30 31 32 23 30 28 28 31 19 32 30 32 19 8 5 10 13 6 5 10 6 16 11
\ No newline at end of file
diff -r f06777cbd5bb -r fab59b1e756d test-data/1.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1.fastqsanger Thu Jul 30 12:06:24 2009 -0400
@@ -0,0 +1,8 @@
+@1831_573_1004/1
+AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
++
+><C&&9952+C>5<.?<79,=42<292:<(9/-7
+@1831_573_1050/1
+TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
++
+;@@17?@=>7??@A8?==@4A?A4)&+.'&+'1,
\ No newline at end of file
diff -r f06777cbd5bb -r fab59b1e756d test-data/2.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2.fastqsanger Thu Jul 30 12:06:24 2009 -0400
@@ -0,0 +1,8 @@
+@1831_573_1004/1
+AATACTTTCGGCGCCCTAAACCAGCTCACTGGGG
++
+29 27 34 5 5 24 24 20 17 10 34 29 20 27 13 30 27 22 24 11 28 19 17 27 17 24 17 25 27 7 24 14 12 22
+@1831_573_1050/1
+TTTATGGGTATGGCCGCTCACAGGCCAGCGGCCT
++
+26 31 31 16 22 30 31 28 29 22 30 30 31 32 23 30 28 28 31 19 32 30 32 19 8 5 10 13 6 5 10 6 16 11
\ No newline at end of file
diff -r f06777cbd5bb -r fab59b1e756d test/functional/test_sniffing_and_metadata_settings.py
--- a/test/functional/test_sniffing_and_metadata_settings.py Thu Jul 30 11:05:03 2009 -0400
+++ b/test/functional/test_sniffing_and_metadata_settings.py Thu Jul 30 12:06:24 2009 -0400
@@ -216,6 +216,16 @@
assert latest_hda is not None, "Problem retrieving wig hda from the database"
if not latest_hda.name == '1.wig' and not latest_hda.extension == 'wig':
raise AssertionError, "wig data type was not correctly sniffed."
+ def test_085_fastqsanger_datatype( self ):
+ """Testing correctly sniffing fastqsanger ( the Sanger variant ) data type upon upload"""
+ self.upload_file( '1.fastqsanger' )
+ self.verify_dataset_correctness( '1.fastqsanger' )
+ self.check_history_for_string( '1.fastqsanger format: <span class="fastqsanger">fastqsanger</span>, database: \? Info: uploaded fastqsanger file' )
+ latest_hda = galaxy.model.HistoryDatasetAssociation.query() \
+ .order_by( desc( galaxy.model.HistoryDatasetAssociation.table.c.create_time ) ).first()
+ assert latest_hda is not None, "Problem retrieving fastqsanger hda from the database"
+ if not latest_hda.name == '1.fastqsanger' and not latest_hda.extension == 'fastqsanger':
+ raise AssertionError, "fastqsanger data type was not correctly sniffed."
def test_9999_clean_up( self ):
self.delete_history( id=self.security.encode_id( history1.id ) )
self.logout()
diff -r f06777cbd5bb -r fab59b1e756d tools/sr_mapping/bwa_wrapper.xml
--- a/tools/sr_mapping/bwa_wrapper.xml Thu Jul 30 11:05:03 2009 -0400
+++ b/tools/sr_mapping/bwa_wrapper.xml Thu Jul 30 12:06:24 2009 -0400
@@ -71,7 +71,7 @@
<option value="history">Use one from the history</option>
</param>
<when value="history">
- <param name="ownFile" type="data" label="Select a reference genome" />
+ <param name="ownFile" type="data" format="fasta" label="Select a reference genome" />
</when>
<when value="indexed">
<param name="indices" type="select" label="Select a reference genome">
@@ -91,7 +91,7 @@
<option value="history">Use one from the history</option>
</param>
<when value="history">
- <param name="ownFile" type="data" label="Select a reference genome" />
+ <param name="ownFile" type="data" format="fasta" label="Select a reference genome" />
</when>
<when value="indexed">
<param name="indices" type="select" label="Select a reference genome">
@@ -111,11 +111,11 @@
<option value="paired">Paired-end</option>
</param>
<when value="single">
- <param name="input1" type="data" label="FASTQ file" />
+ <param name="input1" type="data" format="fastqsanger" label="FASTQ file" />
</when>
<when value="paired">
- <param name="input1" type="data" label="Forward FASTQ file" />
- <param name="input2" type="data" label="Reverse FASTQ file" />
+ <param name="input1" type="data" format="fastqsanger" label="Forward FASTQ file" />
+ <param name="input2" type="data" format="fastqsanger" label="Reverse FASTQ file" />
</when>
</conditional>
<conditional name="params">
1
0
30 Jul '09
details: http://www.bx.psu.edu/hg/galaxy/rev/f06777cbd5bb
changeset: 2509:f06777cbd5bb
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Thu Jul 30 11:05:03 2009 -0400
description:
Add a new config setting to universe_wsgi.ini: new_user_dataset_access_role_default_private.
When set to True, new users will have default dataset access permissions for histories set to their Private role. Default is False (original behavior); datasets are left as public.
Resolves ticket #111.
4 file(s) affected in this change:
lib/galaxy/config.py
lib/galaxy/security/__init__.py
lib/galaxy/web/controllers/user.py
universe_wsgi.ini.sample
diffs (58 lines):
diff -r e01bfc281e09 -r f06777cbd5bb lib/galaxy/config.py
--- a/lib/galaxy/config.py Tue Jul 28 14:16:19 2009 -0400
+++ b/lib/galaxy/config.py Thu Jul 30 11:05:03 2009 -0400
@@ -46,6 +46,7 @@
self.require_login = string_as_bool( kwargs.get( "require_login", "False" ) )
self.allow_user_creation = string_as_bool( kwargs.get( "allow_user_creation", "True" ) )
self.allow_user_deletion = string_as_bool( kwargs.get( "allow_user_deletion", "False" ) )
+ self.new_user_dataset_access_role_default_private = string_as_bool( kwargs.get( "new_user_dataset_access_role_default_private", "False" ) )
self.template_path = resolve_path( kwargs.get( "template_path", "templates" ), self.root )
self.template_cache = resolve_path( kwargs.get( "template_cache_path", "database/compiled_templates" ), self.root )
self.local_job_queue_workers = int( kwargs.get( "local_job_queue_workers", "5" ) )
diff -r e01bfc281e09 -r f06777cbd5bb lib/galaxy/security/__init__.py
--- a/lib/galaxy/security/__init__.py Tue Jul 28 14:16:19 2009 -0400
+++ b/lib/galaxy/security/__init__.py Thu Jul 30 11:05:03 2009 -0400
@@ -206,12 +206,16 @@
else:
return None
return role
- def user_set_default_permissions( self, user, permissions={}, history=False, dataset=False, bypass_manage_permission=False ):
+ def user_set_default_permissions( self, user, permissions={}, history=False, dataset=False, bypass_manage_permission=False, default_access_private = False ):
# bypass_manage_permission is used to change permissions of datasets in a userless history when logging in
if user is None:
return None
if not permissions:
- permissions = { self.permitted_actions.DATASET_MANAGE_PERMISSIONS : [ self.get_private_user_role( user, auto_create=True ) ] }
+ #default permissions
+ permissions = { self.permitted_actions.DATASET_MANAGE_PERMISSIONS : [ self.get_private_user_role( user, auto_create=True ) ] }
+ #new_user_dataset_access_role_default_private is set as True in config file
+ if default_access_private:
+ permissions[ self.permitted_actions.DATASET_ACCESS ] = permissions.values()[ 0 ]
# Delete all of the current default permissions for the user
for dup in user.default_permissions:
dup.delete()
diff -r e01bfc281e09 -r f06777cbd5bb lib/galaxy/web/controllers/user.py
--- a/lib/galaxy/web/controllers/user.py Tue Jul 28 14:16:19 2009 -0400
+++ b/lib/galaxy/web/controllers/user.py Thu Jul 30 11:05:03 2009 -0400
@@ -157,7 +157,7 @@
user.flush()
trans.app.security_agent.create_private_user_role( user )
# We set default user permissions, before we log in and set the default history permissions
- trans.app.security_agent.user_set_default_permissions( user )
+ trans.app.security_agent.user_set_default_permissions( user, default_access_private = trans.app.config.new_user_dataset_access_role_default_private )
# The handle_user_login() method has a call to the history_set_default_permissions() method
# (needed when logging in with a history), user needs to have default permissions set before logging in
trans.handle_user_login( user )
diff -r e01bfc281e09 -r f06777cbd5bb universe_wsgi.ini.sample
--- a/universe_wsgi.ini.sample Tue Jul 28 14:16:19 2009 -0400
+++ b/universe_wsgi.ini.sample Thu Jul 30 11:05:03 2009 -0400
@@ -156,6 +156,9 @@
# Can an admin user delete user accounts?
#allow_user_deletion = False
+# Should default dataset access permissions be private for new users; default is False (datasets are public)
+new_user_dataset_access_role_default_private = False
+
# ---- Job Execution --------------------------------------------------------
# Number of concurrent jobs to run (local job runner)
1
0