galaxy-dev
Threads by month
- ----- 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
- 10007 discussions
[hg] galaxy 1515: Forgot to update tool_conf.sample with the new...
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
22 Sep '08
details: http://www.bx.psu.edu/hg/galaxy/rev/280e8b68f845
changeset: 1515:280e8b68f845
user: guru
date: Wed Sep 17 17:14:59 2008 -0400
description:
Forgot to update tool_conf.sample with the new tool details.
1 file(s) affected in this change:
tool_conf.xml.sample
diffs (10 lines):
diff -r 33e06a98b6d8 -r 280e8b68f845 tool_conf.xml.sample
--- a/tool_conf.xml.sample Wed Sep 17 16:42:08 2008 -0400
+++ b/tool_conf.xml.sample Wed Sep 17 17:14:59 2008 -0400
@@ -281,5 +281,6 @@
<tool file="metag_tools/megablast_wrapper.xml" />
<tool file="metag_tools/megablast_xml_parser.xml" />
<tool file="metag_tools/blat_wrapper.xml" />
+ <tool file="metag_tools/mapping_to_ucsc.xml" />
</section>
</toolbox>
1
0
[hg] galaxy 1507: add SHRiMP mapper for short reads analysis.
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
22 Sep '08
details: http://www.bx.psu.edu/hg/galaxy/rev/842f1883cf53
changeset: 1507:842f1883cf53
user: wychung
date: Mon Sep 15 15:04:41 2008 -0400
description:
add SHRiMP mapper for short reads analysis.
6 file(s) affected in this change:
test-data/shrimp_phix_anc.fa
test-data/shrimp_wrapper_test1.fastq
test-data/shrimp_wrapper_test1.out1
tool_conf.xml.sample
tools/metag_tools/shrimp_wrapper.py
tools/metag_tools/shrimp_wrapper.xml
diffs (853 lines):
diff -r 26825f08d362 -r 842f1883cf53 test-data/shrimp_phix_anc.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/shrimp_phix_anc.fa Mon Sep 15 15:04:41 2008 -0400
@@ -0,0 +1,2 @@
+>PHIX174
+GAGTTTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGAGTCGAAAAATTATCTTGATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGGACTGCTGGCGGAAAATGAGAAAATTCGACCTATCCTTGCGCAGCTCGAGAAGCTCTTACTTTGCGACCTTTCGCCATCAACTAACGATTCTGTCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGCACGTTCGTCAAGGACTGGTTTAGATATGAGTCACATTTTGTTCATGGTAGAGATTCTCTTGTTGACATTTTAAAAGAGCGTGGATTACTATCTGAGTCCGATGCTGTTCAACCACTAATAGGTAAGAAATCATGAGTCAAGTTACTGAACAATCCGTACGTTTCCAGACCGCTTTGGCCTCTATTAAGCTCATTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTTCGATTTTCTGACGAGTAACAAAGTTTGGATTGCTACTGACCGCTCTCGTGCTCGTCGCTGCGTTGAGGCTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCTCCTGTTGAGTTTATTGCTGCCGTCATTGCTTATTATGTTCATCCCGTCAACATTCAAACGGCCTGTCTCATCATGGAAGGCGCTGAATTTACGGAAAACATTATTAATGGCGTCGAGCGTCCGGTTAAAGCCGCTGAATTGTTCGCGTTTACCTTGCGTGTACGCGCAGGAAACACTGACGTTCTTACTGACGCAGAAGAAAACGTGCGTCAAAAATTACGTGCaGAAGGAGTGATGTAATGTCTAAAGGTAAAAAACGTTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACTAAAGGCAAGCGTAAAGGCGCTCGTCTTTGGTATGTAGGTGGTCAACAATTTTAATTGCAGGGGCTTCGGCCCCTTACTT
GAGGATAAATTATGTCTAATATTCAAACTGGCGCCGAGCGTATGCCGCATGACCTTTCCCATCTTGGCTTCCTTGCTGGTCAGATTGGTCGTCTTATTACCATTTCAACTACTCCGGTTATCGCTGGCGACTCCTTCGAGATGGACGCCGTTGGCGCTCTCCGTCTTTCTCCATTGCGTCGTGGCCTTGCTATTGACTCTACTGTAGACATTTTTACTTTTTATGTCCCTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGTGTTAATGCCACTCCTCTCCCGACTGTTAACACTACTGGTTATATTGACCATGCCGCTTTTCTTGGCACGATTAACCCTGATACCAATAAAATCCCTAAGCATTTGTTTCAGGGTTATTTGAATATCTATAACAACTATTTTAAAGCGCCGTGGATGCCTGACCGTACCGAGGCTAACCCTAATGAGCTTAATCAAGATGATGCTCGTTATGGTTTCCGTTGCTGCCATCTCAAAAACATTTGGACTGCTCCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCACATCTATTGACATTATGGGTCTGCAAGCTGCTTATGCTAATTTGCATACTGACCAAGAACGTGATTACTTCATGCAGCGTTACCgTGATGTTATTTCTTCATTTGGAGGTAAAACCTCTTATGACGCTGACAACCGTCCTTTACTTGTCATGCGCTCTAATCTCTGGGCATCTGGCTATGATGTTGATGGAACTGACCAAACGTCGTTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGCCGCGTTTCTTTGTTCCTGAGCATGGCACTATGTTTACTCTTGCGCTTGTTCGTTTTCCGCCTACTGCGACTAAAGAGATTCAGTACCTTAACGCTAAAGGTGCTTTGACTTATACCGATATTGCTGGCGACCCTGTTTTGTATGGCAACTTGCCGCCG
CGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGTCTAAGAAGTTTAAGATTGCTGAGGGTCAGTGGTATCGTTATGCGCCTTCGTATGTTTCTCCTGCTTATCACCTTCTTGAAGGCTTCCCATTCATTCAGGAACCGCCTTCTGGTGATTTGCAAGAACGCGTACTTATTCGCCACCATGATTATGACCAGTGTTTCCAGTCCGTTCAGTTGTTGCAGTGGAATAGTCAGGTTAAATTTAATGTGACCGTTTATCGCAATCTGCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGAGTGTGAGGTTATAACGCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGTTGACCAAGCGAAGCGCGGTAGGTTTTCTGCTTAGGAGTTTAATCATGTTTCAGACTTTTATTTCTCGCCATAATTCAAACTTTTTTTCTGATAAGCTGGTTCTCACTTCTGTTACTCCAGCTTCTTCGGCACCTGTTTTACAGACACCTAAAGCTACATCGTCAACGTTATATTTTGATAGTTTGACGGTTAATGCTGGTAATGGTGGTTTTCTTCATTGCATTCAGATGGATACATCTGTCAACGCCGCTAATCAGGTTGTTTCTGTTGGTGCTGATATTGCTTTTGATGCCGACCCTAAATTTTTTGCCTGTTTGGTTCGCTTTGAGTCTTCTTCGGTTCCGACTACCCTCCCGACTGCCTATGATGTTTATCCTTTGAATGGTCGCCATGATGGTGGTTATTATACCGTCAAGGACTGTGTGACTATTGACGTCCTTCCCCGTACGCCGGGCAATAAtGTTTATGTTGGTTTCATGGTTTGGTCTAACTTTACCGCTACTAAATGCCGCGGATTGGTTTCGCTGAATCAGGTTATTAAAGAGATTATTTGTCTCCAGCCACTTAAGTGAGGTGATTTATGTTTGGTGCTATTGCTGGCGGTATTGCTTCTGCTC
TTGCTGGTGGCGCCATGTCTAAATTGTTTGGAGGCGGTCAAAAAGCCGCCTCCGGTGGCATTCAAGGTGATGTGCTTGCTACCGATAACAATACTGTAGGCATGGGTGATGCTGGTATTAAATCTGCCATTCAAGGCTCTAATGTTCCTAACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTGGTGCTATGGCTAAAGCTGGTAAAGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGATAAGTTGCTTGATTTGGTTGGACTTGGTGGCAAGTCTGCCGCTGATAAAGGAAAGGATACTCGTGATTATCTTGCTGCTGCATTTCCTGAGCTTAATGCTTGGGAGCGTGCTGGTGCTGATGCTTCCTCTGCTGGTATGGTTGACGCCGGATTTGAGAATCAAAAAGAGCTTACTAAAATGCAACTGGACAATCAGAAAGAGATTGCCGAGATGCAAAATGAGACTCAAAAAGAGATTGCTGGCATTCAGTCGGCGACTTCACGCCAGAATACGAAAGACCAGGTATATGCACAAAATGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTATTATGGAAAACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATGCTTACTCAAGCTCAAACGGCTGGTCAGTATTTTACCAATGACCAAATCAAAGAAATGACTCGCAAGGTTAGTGCTGAGGTTGACTTAGTTCATCAGCAAACGCAGAATCAGCGGTATGGCTCTTCTCATATTGGCGCTACTGCAAAGGATATTTCTAATGTCGTCACTGATGCTGCTTCTGGTGTGGTTGATATTTTTCATGGTATTGATAAAGCTGTTGCCGATACTTGGAACAATTTCTGGAAAGACGGTAAAGCTGATGGTATTGGCTCTAATTTGTCTAGGAAATAACCGTCAGGATTGACACCCTCCCAATTGTATGTTTTCATG
CCTCCAAATCTTGGAGGCTTTTTTATGGTTCGTTCTTATTACCCTTCTGAATGTCACGCTGATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTATTGAGGCTTGTGGCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATGGATAACCGCATCAAGCTCTTGGAAGAGATTCTGTCTTTTCGTATGCAGGGCGTTGAGTTCGATAATGGTGATATGTATGTTGACGGCCATAAGGCTGCTTCTGACGTTCGTGATGAGTTTGTATCTGTTACTGAGAAGTTAATGGATGAATTGGCACAATGCTACAATGTGCTCCCCCAACTTGATATTAATAACACTATAGACCACCGCCCCGAAGGGGACGAAAAATGGTTTTTAGAGAACGAGAAGACGGTTACGCAGTTTTGCCGCAAGCTGGCTGCTGAACGCCCTCTTAAGGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATGAGTGTTCAAGATTGCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTaCTATTCAGCGTTTGATGAATGCAATGCGACAGGCTCATGCTGATGGTTGGTTTATCGTTTTTGACACTCTCACGTTGGCTGACGACCGATTAGAGGCGTTTTATGATAATCCCAATGCTTTGCGTGACTATTTTCGTGATATTGGTCGTATGGTTCTTGCTGCCGAGGGTCGCAAGGCTAATGATTCACACGCCGACTGCTATCAGTATTTTTGTGTGCCTGAGTATGGTACAGCTAATGGCCGTCTTCATTTCCATGCGGTGCAtTTTATGCGGACACTTCCTACAGGTAGCGTTGACCCTAATTTTGGTCGTCGGGTACGCAATCGCCGCCAGTTAAATAGCTTGCAAAATACGTGGCCTTATGGTTACAGTATGCCCATCGCAGTTCGCTACACGCAGGACGCTTTTTCACGTTCTGGTTGGTT
GTGGCCTGTTGATGCTAAAGGTGAGCCGCTTAAAGCTACCAGTTATATGGCTGTTGGTTTCTATGTGGCTAAATACGTTAACAAAAAGTCAGATATGGACCTTGCTGCTAAAGGTCTAGGAGCTAAAGAATGGAACAACTCACTAAAAACCAAGCTGTCGCTACTTCCCAAGAAGCTGTTCAGAATCAGAATGAGCCGCAACTTCGGGATGAAAATGCTCACAATGACAAATCTGTCCACGGAGTGCTTAATCCAACTTACCAAGCTGGGTTACGACGCGACGCCGTTCAACCAGATATTGAAGCAGAACGCAAAAAGAGAGATGAGATTGAGGCTGGGAAAAGTTACTGTAGCCGACGTTTTGGCGGCGCAACCTGTGACGACAAATCTGCTCAAATTTATGCGCGCTTCGATAAAAATGATTGGCGTATCCAACCTGCA
diff -r 26825f08d362 -r 842f1883cf53 test-data/shrimp_wrapper_test1.fastq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/shrimp_wrapper_test1.fastq Mon Sep 15 15:04:41 2008 -0400
@@ -0,0 +1,40 @@
+@HWI-EAS91_1_306UPAAXX:6:1:959:874
+GCGGGCTGCGACATAAAGCATACCGCCTGGGCGGCG
++HWI-EAS91_1_306UPAAXX:6:1:959:874
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+@HWI-EAS91_1_306UPAAXX:6:1:1630:1975
+GAAAGAAAATCAGCAACAGTGGCATCGATTTTACGG
++HWI-EAS91_1_306UPAAXX:6:1:1630:1975
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+@HWI-EAS91_1_306UPAAXX:6:1:770:994
+GCAGGCAGCGTGCTGCGAGTCTTTTCGAATGATAAG
++HWI-EAS91_1_306UPAAXX:6:1:770:994
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+@HWI-EAS91_1_306UPAAXX:6:1:1274:306
+GTCTTTGGTATGTAGGTGGTCAACAATTTTAATTGC
++HWI-EAS91_1_306UPAAXX:6:1:1274:306
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\h
+@HWI-EAS91_1_306UPAAXX:6:1:1339:209
+GTTTGGTCAGTTCCATCAACATCATAGCCAGATGCC
++HWI-EAS91_1_306UPAAXX:6:1:1339:209
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+@HWI-EAS91_1_306UPAAXX:6:1:203:1240
+GATTCTCTTGTTGACATTTTAAAAGAGCGTGGATTA
++HWI-EAS91_1_306UPAAXX:6:1:203:1240
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+@HWI-EAS91_1_306UPAAXX:6:1:869:448
+GCTGGCCATCAGTTCGCGGATACCGGCGGCAAACAT
++HWI-EAS91_1_306UPAAXX:6:1:869:448
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhKhhhhhhh
+@HWI-EAS91_1_306UPAAXX:6:1:939:928
+GGAGGCCTCCAGCAATCTTGAACACTCATCCTTAAT
++HWI-EAS91_1_306UPAAXX:6:1:939:928
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+@HWI-EAS91_1_306UPAAXX:6:1:1756:1476
+GCGTAGAGGCTTTACTATTCAGCGTTTGATGAATGC
++HWI-EAS91_1_306UPAAXX:6:1:1756:1476
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+@HWI-EAS91_1_306UPAAXX:6:1:1528:181
+GGCTGGTCAGTATTTTACCAATGACCAAATCAAAGA
++HWI-EAS91_1_306UPAAXX:6:1:1528:181
+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
diff -r 26825f08d362 -r 842f1883cf53 test-data/shrimp_wrapper_test1.out1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/shrimp_wrapper_test1.out1 Mon Sep 15 15:04:41 2008 -0400
@@ -0,0 +1,7 @@
+#FORMAT: readname contigname strand contigstart contigend readstart readend readlength score editstring
+>HWI-EAS91_1_306UPAAXX:6:1:1528:181 PHIX174 + 3644 3679 1 36 36 3600 36
+>HWI-EAS91_1_306UPAAXX:6:1:1756:1476 PHIX174 + 4505 4540 1 36 36 3600 36
+>HWI-EAS91_1_306UPAAXX:6:1:203:1240 PHIX174 + 310 345 1 36 36 3600 36
+>HWI-EAS91_1_306UPAAXX:6:1:1274:306 PHIX174 + 933 968 1 36 36 3600 36
+>HWI-EAS91_1_306UPAAXX:6:1:939:928 PHIX174 - 4458 4493 1 36 36 3600 36
+>HWI-EAS91_1_306UPAAXX:6:1:1339:209 PHIX174 - 1732 1767 1 36 36 3600 36
diff -r 26825f08d362 -r 842f1883cf53 tool_conf.xml.sample
--- a/tool_conf.xml.sample Sun Sep 14 14:58:50 2008 -0400
+++ b/tool_conf.xml.sample Mon Sep 15 15:04:41 2008 -0400
@@ -276,6 +276,7 @@
<tool file="metag_tools/blat_coverage_report.xml" />
</section>
<section name="Short Read Mapping" id="solexa_tools">
+ <tool file="metag_tools/shrimp_wrapper.xml" />
<tool file="sr_mapping/lastz_wrapper.xml" />
<tool file="metag_tools/megablast_wrapper.xml" />
<tool file="metag_tools/megablast_xml_parser.xml" />
diff -r 26825f08d362 -r 842f1883cf53 tools/metag_tools/shrimp_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/metag_tools/shrimp_wrapper.py Mon Sep 15 15:04:41 2008 -0400
@@ -0,0 +1,577 @@
+#! /usr/bin/python
+
+"""
+SHRiMP wrapper
+
+Inputs:
+ reference seq and reads
+
+Outputs:
+ table of 8 columns:
+ chrom ref_loc read_id read_loc ref_nuc read_nuc quality coverage
+ SHRiMP output
+
+Parameters:
+ -s Spaced Seed (default: 111111011111)
+ -n Seed Matches per Window (default: 2)
+ -t Seed Hit Taboo Length (default: 4)
+ -9 Seed Generation Taboo Length (default: 0)
+ -w Seed Window Length (default: 115.00%)
+ -o Maximum Hits per Read (default: 100)
+ -r Maximum Read Length (default: 1000)
+ -d Kmer Std. Deviation Limit (default: -1 [None])
+
+ -m S-W Match Value (default: 100)
+ -i S-W Mismatch Value (default: -150)
+ -g S-W Gap Open Penalty (Reference) (default: -400)
+ -q S-W Gap Open Penalty (Query) (default: -400)
+ -e S-W Gap Extend Penalty (Reference) (default: -70)
+ -f S-W Gap Extend Penalty (Query) (default: -70)
+ -h S-W Hit Threshold (default: 68.00%)
+
+Command:
+%rmapper -s spaced_seed -n seed_matches_per_window -t seed_hit_taboo_length -9 seed_generation_taboo_length -w seed_window_length -o max_hits_per_read -r max_read_length -d kmer -m sw_match_value -i sw_mismatch_value -g sw_gap_open_ref -q sw_gap_open_query -e sw_gap_ext_ref -f sw_gap_ext_query -h sw_hit_threshold <query> <target> > <output> 2> <log>
+
+SHRiMP output:
+>7:2:1147:982/1 chr3 + 36586562 36586595 2 35 36 2900 3G16G13
+>7:2:1147:982/1 chr3 + 95338194 95338225 4 35 36 2700 9T7C14
+>7:2:587:93/1 chr3 + 14913541 14913577 1 35 36 2960 19--16
+
+Testing:
+%python shrimp_wrapper.py single ~/Desktop/shrimp_wrapper/phix_anc.fa tmp tmp1 ~/Desktop/shrimp_wrapper/phix.10.solexa.fastq
+%python shrimp_wrapper.py paired ~/Desktop/shrimp_wrapper/eca_ref_chrMT.fa tmp tmp1 ~/Desktop/shrimp_wrapper/eca.5.solexa_1.fastq ~/Desktop/shrimp_wrapper/eca.5.solexa_2.fastq
+
+"""
+
+import os, sys, tempfile, os.path
+
+assert sys.version_info[:2] >= (2.4)
+
+def stop_err( msg ):
+
+ sys.stderr.write( "%s\n" % msg )
+ sys.exit()
+
+def reverse_complement(s):
+
+ complement_dna = {"A":"T", "T":"A", "C":"G", "G":"C", "a":"t", "t":"a", "c":"g", "g":"c", "N":"N", "n":"n" , ".":".", "-":"-"}
+ reversed_s = []
+ for i in s:
+ reversed_s.append(complement_dna[i])
+ reversed_s.reverse()
+ return "".join(reversed_s)
+
+def generate_sub_table(result_file, ref_file, score_files, table_outfile, hit_per_read):
+
+ """
+ TODO: the cross-over error has not been addressed yet.
+ """
+
+ insertion_size = 600
+
+ all_score_file = score_files.split('&')
+
+ if len(all_score_file) != hit_per_read: stop_err('Un-equal number of files!')
+
+ temp_table_name = tempfile.NamedTemporaryFile().name
+ temp_table = open(temp_table_name, 'w')
+
+ outfile = open(table_outfile,'w')
+
+ # reference seq: not a single fasta seq
+ refseq = {}
+ chrom_cov = {}
+ seq = ''
+
+ for i, line in enumerate(file(ref_file)):
+ line = line.rstrip()
+ if not line or line.startswith('#'): continue
+
+ if line.startswith('>'):
+ if seq:
+ if refseq.has_key(title):
+ pass
+ else:
+ refseq[title] = seq
+ chrom_cov[title] = {}
+ seq = ''
+ title = line[1:]
+ else:
+ seq += line
+ if seq:
+ if not refseq.has_key(title):
+ refseq[title] = seq
+ chrom_cov[title] = {}
+
+ # find hits : one end and/or the other
+ hits = {}
+ for i, line in enumerate(file(result_file)):
+ line = line.rstrip()
+ if not line or line.startswith('#'): continue
+
+ #FORMAT: readname contigname strand contigstart contigend readstart readend readlength score editstring
+ fields = line.split('\t')
+ readname = fields[0][1:]
+ chrom = fields[1]
+ strand = fields[2]
+ chrom_start = int(fields[3]) - 1
+ chrom_end = int(fields[4])
+ read_start = fields[5]
+ read_end = fields[6]
+ read_len = fields[7]
+ score = fields[8]
+ editstring = fields[9]
+
+ if hit_per_read == 1:
+ endindex = '1'
+ else:
+ readname, endindex = readname.split('/')
+
+ if hits.has_key(readname):
+ if hits[readname].has_key(endindex):
+ hits[readname][endindex].append([strand, editstring, chrom_start, chrom_end, read_start, chrom])
+ else:
+ hits[readname][endindex] = [[strand, editstring, chrom_start, chrom_end, read_start, chrom]]
+ else:
+ hits[readname] = {}
+ hits[readname][endindex] = [[strand, editstring, chrom_start, chrom_end, read_start, chrom]]
+
+ # find score : one end and the other end
+ hits_score = {}
+ readname = ''
+ score = ''
+ for num_score_file in range(len(all_score_file)):
+ score_file = all_score_file[num_score_file]
+ for i, line in enumerate(file(score_file)):
+ line = line.rstrip()
+ if not line or line.startswith('#'): continue
+
+ if line.startswith('>'):
+ if score:
+ if hits.has_key(readname):
+ if len(hits[readname]) == hit_per_read:
+ if hits_score.has_key(readname):
+ if hits_score[readname].has_key(endindex):
+ pass
+ else:
+ hits_score[readname][endindex] = score
+ else:
+ hits_score[readname] = {}
+ hits_score[readname][endindex] = score
+ score = ''
+ if hit_per_read == 1:
+ readname = line[1:]
+ endindex = '1'
+ else:
+ readname, endindex = line[1:].split('/')
+ else:
+ score = line
+ if score: # the last one
+ if hits.has_key(readname):
+ if len(hits[readname]) == hit_per_read:
+ if hits_score.has_key(readname):
+ if hits_score[readname].has_key(endindex):
+ pass
+ else:
+ hits_score[readname][endindex] = score
+ else:
+ hits_score[readname] = {}
+ hits_score[readname][endindex] = score
+
+ # mutation call to all mappings
+ for readkey in hits.keys():
+ if len(hits[readkey]) != hit_per_read: continue
+
+ matches = []
+ match_count = 0
+
+ if hit_per_read == 1:
+ matches = [ hits[readkey]['1'] ]
+ match_count = 1
+ else:
+ end1_data = hits[readkey]['1']
+ end2_data = hits[readkey]['2']
+
+ for i, end1_hit in enumerate(end1_data):
+ crin_strand = {'+': False, '-': False}
+ crin_insertSize = {'+': False, '-': False}
+
+ crin_strand[end1_hit[0]] = True
+ crin_insertSize[end1_hit[0]] = int(end1_hit[2])
+
+ for j, end2_hit in enumerate(end2_data):
+ crin_strand[end2_hit[0]] = True
+ crin_insertSize[end2_hit[0]] = int(end2_hit[2])
+
+ if end1_hit[-1] != end2_hit[-1] : continue
+
+ if crin_strand['+'] and crin_strand['-']:
+ if (crin_insertSize['-'] - crin_insertSize['+']) <= insertion_size:
+ matches.append([end1_hit, end2_hit])
+ match_count += 1
+
+ if match_count == 1:
+ for x, end_data in enumerate(matches[0]):
+
+ end_strand, end_editstring, end_chr_start, end_chr_end, end_read_start, end_chrom = end_data
+ end_read_start = int(end_read_start) - 1
+
+ if end_strand == '-':
+ refsegment = reverse_complement(refseq[end_chrom][end_chr_start:end_chr_end])
+ else:
+ refsegment = refseq[end_chrom][end_chr_start:end_chr_end]
+
+ match_len = 0
+ editindex = 0
+ gap_read = 0
+
+ while editindex < len(end_editstring):
+ editchr = end_editstring[editindex]
+ chrA = ''
+ chrB = ''
+ locIndex = []
+ if editchr.isdigit():
+ editcode = ''
+ while editchr.isdigit() and editindex < len(end_editstring):
+ editcode += editchr
+ editindex += 1
+ if editindex < len(end_editstring): editchr = end_editstring[editindex]
+ for baseIndex in range(int(editcode)):
+ chrA += refsegment[match_len+baseIndex]
+ chrB = chrA
+ match_len += int(editcode)
+ elif editchr == 'x':
+ # crossover: inserted between the appropriate two bases
+ # Two sequencing errors: 4x15x6 (25 matches with 2 crossovers)
+ # Treated as errors in the reads; Do nothing.
+ editindex += 1
+
+ elif editchr.isalpha():
+ editcode = editchr
+ editindex += 1
+ chrA = refsegment[match_len]
+ chrB = editcode
+ match_len += len(editcode)
+
+ elif editchr == '-':
+ editcode = editchr
+ editindex += 1
+ chrA = refsegment[match_len]
+ chrB = editcode
+ match_len += len(editcode)
+ gap_read += 1
+
+ elif editchr == '(':
+ editcode = ''
+ while editchr != ')' and editindex < len(end_editstring):
+ if editindex < len(end_editstring): editchr = end_editstring[editindex]
+ editcode += editchr
+ editindex += 1
+ editcode = editcode[1:-1]
+ chrA = '-'*len(editcode)
+ chrB = editcode
+
+ else:
+ print 'Warning! Unknown symbols', editchr
+
+ if end_strand == '-':
+ chrA = reverse_complement(chrA)
+ chrB = reverse_complement(chrB)
+
+ pos_line = ''
+ rev_line = ''
+
+ for mappingIndex in range(len(chrA)):
+ # reference
+ chrAx = chrA[mappingIndex]
+ # read
+ chrBx = chrB[mappingIndex]
+
+ if chrAx and chrBx and chrBx.upper() != 'N':
+ if end_strand == '+':
+ chrom_loc = end_chr_start+match_len-len(chrA)+mappingIndex
+ read_loc = end_read_start+match_len-len(chrA)+mappingIndex-gap_read
+ if chrAx == '-': chrom_loc -= 1
+
+ if chrBx == '-':
+ scoreBx = '-1'
+ else:
+ scoreBx = hits_score[readkey][str(x+1)].split()[read_loc]
+
+ # 1-based on chrom_loc and read_loc
+ pos_line = pos_line + '\t'.join([end_chrom, str(chrom_loc+1), readkey+'/'+str(x+1), str(read_loc+1), chrAx, chrBx, scoreBx]) + '\n'
+ else:
+ chrom_loc = end_chr_end-match_len+mappingIndex
+ read_loc = end_read_start+match_len-1-mappingIndex-gap_read
+ if chrAx == '-': chrom_loc -= 1
+
+ if chrBx == '-':
+ scoreBx = '-1'
+ else:
+ scoreBx = hits_score[readkey][str(x+1)].split()[read_loc]
+
+ # 1-based on chrom_loc and read_loc
+ rev_line = '\t'.join([end_chrom, str(chrom_loc+1), readkey+'/'+str(x+1), str(read_loc+1), chrAx, chrBx, scoreBx]) +'\n' + rev_line
+
+ if chrom_cov.has_key(end_chrom):
+ if chrom_cov[end_chrom].has_key(chrom_loc):
+ chrom_cov[end_chrom][chrom_loc] += 1
+ else:
+ chrom_cov[end_chrom][chrom_loc] = 1
+ else:
+ chrom_cov[end_chrom] = {}
+ chrom_cov[end_chrom][chrom_loc] = 1
+
+ if pos_line: temp_table.write('%s\n' %(pos_line.rstrip('\r\n')))
+ if rev_line: temp_table.write('%s\n' %(rev_line.rstrip('\r\n')))
+
+ temp_table.close()
+
+ # chrom-wide coverage
+ for i, line in enumerate(open(temp_table_name)):
+ line = line.rstrip()
+ if not line or line.startswith('#'): continue
+
+ fields = line.split()
+ chrom = fields[0]
+ eachBp = int(fields[1])
+ readname = fields[2]
+
+ if hit_per_read == 1:
+ fields[2] = readname.split('/')[0]
+
+ if chrom_cov[chrom].has_key(eachBp):
+ outfile.write('%s\t%d\n' %('\t'.join(fields), chrom_cov[chrom][eachBp]))
+ else:
+ outfile.write('%s\t%d\n' %('\t'.join(fields), 0))
+
+ outfile.close()
+
+ if os.path.exists(temp_table_name): os.remove(temp_table_name)
+
+ return True
+
+def convert_fastqsolexa_to_fasta_qual(infile_name, query_fasta, query_qual):
+
+ outfile_seq = open( query_fasta, 'w' )
+ outfile_score = open( query_qual, 'w' )
+
+ seq_title_startswith = ''
+ qual_title_startswith = ''
+
+ default_coding_value = 64
+ fastq_block_lines = 0
+
+ for i, line in enumerate( file( infile_name ) ):
+ line = line.rstrip()
+ if not line or line.startswith( '#' ): continue
+
+ fastq_block_lines = ( fastq_block_lines + 1 ) % 4
+ line_startswith = line[0:1]
+
+ if fastq_block_lines == 1:
+ # first line is @title_of_seq
+ if not seq_title_startswith:
+ seq_title_startswith = line_startswith
+
+ if line_startswith != seq_title_startswith:
+ outfile_seq.close()
+ outfile_score.close()
+ stop_err( 'Invalid fastqsolexa format at line %d: %s.' % ( i + 1, line ) )
+
+ read_title = line[1:]
+ outfile_seq.write( '>%s\n' % line[1:] )
+
+ elif fastq_block_lines == 2:
+ # second line is nucleotides
+ read_length = len( line )
+ outfile_seq.write( '%s\n' % line )
+
+ elif fastq_block_lines == 3:
+ # third line is +title_of_qualityscore ( might be skipped )
+ if not qual_title_startswith:
+ qual_title_startswith = line_startswith
+
+ if line_startswith != qual_title_startswith:
+ outfile_seq.close()
+ outfile_score.close()
+ stop_err( 'Invalid fastqsolexa format at line %d: %s.' % ( i + 1, line ) )
+
+ quality_title = line[1:]
+ if quality_title and read_title != quality_title:
+ outfile_seq.close()
+ outfile_score.close()
+ stop_err( 'Invalid fastqsolexa format at line %d: sequence title "%s" differes from score title "%s".' % ( i + 1, read_title, quality_title ) )
+
+ if not quality_title:
+ outfile_score.write( '>%s\n' % read_title )
+ else:
+ outfile_score.write( '>%s\n' % line[1:] )
+
+ else:
+ # fourth line is quality scores
+ qual = ''
+ fastq_integer = True
+ # peek: ascii or digits?
+ val = line.split()[0]
+ try:
+ check = int( val )
+ fastq_integer = True
+ except:
+ fastq_integer = False
+
+ if fastq_integer:
+ # digits
+ qual = line
+ else:
+ # ascii
+ quality_score_length = len( line )
+ if quality_score_length == read_length + 1:
+ # first char is qual_score_startswith
+ qual_score_startswith = ord( line[0:1] )
+ line = line[1:]
+ elif quality_score_length == read_length:
+ qual_score_startswith = default_coding_value
+ else:
+ stop_err( 'Invalid fastqsolexa format at line %d: the number of quality scores ( %d ) is not the same as bases ( %d ).' % ( i + 1, quality_score_length, read_length ) )
+
+ for j, char in enumerate( line ):
+ score = ord( char ) - qual_score_startswith # 64
+ qual = "%s%s " % ( qual, str( score ) )
+
+ outfile_score.write( '%s\n' % qual )
+
+ outfile_seq.close()
+ outfile_score.close()
+
+ return True
+
+def __main__():
+
+ # I/O
+ type_of_reads = sys.argv[1] # single or paired
+ input_target = sys.argv[2] # fasta
+ shrimp_outfile = sys.argv[3] # shrimp output
+ table_outfile = sys.argv[4] # table output
+
+ # SHRiMP parameters: total = 15
+ # TODO: put threshold on each of these parameters
+ if len(sys.argv) == 21 or len(sys.argv) == 22:
+ spaced_seed = sys.argv[5]
+ seed_matches_per_window = sys.argv[6]
+ seed_hit_taboo_length = sys.argv[7]
+ seed_generation_taboo_length = sys.argv[8]
+ seed_window_length = sys.argv[9]
+ max_hits_per_read = sys.argv[10]
+ max_read_length = sys.argv[11]
+ kmer = sys.argv[12]
+ sw_match_value = sys.argv[13]
+ sw_mismatch_value = sys.argv[14]
+ sw_gap_open_ref = sys.argv[15]
+ sw_gap_open_query = sys.argv[16]
+ sw_gap_ext_ref = sys.argv[17]
+ sw_gap_ext_query = sys.argv[18]
+ sw_hit_threshold = sys.argv[19]
+
+ # Single-end parameters
+ if type_of_reads == 'single':
+ input_query = sys.argv[20] # single-end
+ hit_per_read = 1
+ query_fasta = tempfile.NamedTemporaryFile().name
+ query_qual = tempfile.NamedTemporaryFile().name
+ else: # Paired-end parameters
+ input_query_end1 = sys.argv[20] # paired-end
+ input_query_end2 = sys.argv[21]
+ hit_per_read = 2
+ query_fasta_end1 = tempfile.NamedTemporaryFile().name
+ query_fasta_end2 = tempfile.NamedTemporaryFile().name
+ query_qual_end1 = tempfile.NamedTemporaryFile().name
+ query_qual_end2 = tempfile.NamedTemporaryFile().name
+ else:
+ spaced_seed = '111111011111'
+ seed_matches_per_window = '2'
+ seed_hit_taboo_length = '4'
+ seed_generation_taboo_length = '0'
+ seed_window_length = '115.0'
+ max_hits_per_read = '100'
+ max_read_length = '1000'
+ kmer = '-1'
+ sw_match_value = '100'
+ sw_mismatch_value = '-150'
+ sw_gap_open_ref = '-400'
+ sw_gap_open_query = '-400'
+ sw_gap_ext_ref = '-70'
+ sw_gap_ext_query = '-70'
+ sw_hit_threshold = '68.0'
+
+ # Single-end parameters
+ if type_of_reads == 'single':
+ input_query = sys.argv[5] # single-end
+ hit_per_read = 1
+ query_fasta = tempfile.NamedTemporaryFile().name
+ query_qual = tempfile.NamedTemporaryFile().name
+ else: # Paired-end parameters
+ input_query_end1 = sys.argv[5] # paired-end
+ input_query_end2 = sys.argv[6]
+ hit_per_read = 2
+ query_fasta_end1 = tempfile.NamedTemporaryFile().name
+ query_fasta_end2 = tempfile.NamedTemporaryFile().name
+ query_qual_end1 = tempfile.NamedTemporaryFile().name
+ query_qual_end2 = tempfile.NamedTemporaryFile().name
+
+
+ # temp file for shrimp log file
+ shrimp_log = tempfile.NamedTemporaryFile().name
+
+ # convert fastq to fasta and quality score files
+ if type_of_reads == 'single':
+ return_value = convert_fastqsolexa_to_fasta_qual(input_query, query_fasta, query_qual)
+ else:
+ return_value = convert_fastqsolexa_to_fasta_qual(input_query_end1, query_fasta_end1, query_qual_end1)
+ return_value = convert_fastqsolexa_to_fasta_qual(input_query_end2, query_fasta_end2, query_qual_end2)
+
+ # SHRiMP command
+ if type_of_reads == 'single':
+ command = ' '.join(['rmapper-ls', '-s', spaced_seed, '-n', seed_matches_per_window, '-t', seed_hit_taboo_length, '-9', seed_generation_taboo_length, '-w', seed_window_length, '-o', max_hits_per_read, '-r', max_read_length, '-d', kmer, '-m', sw_match_value, '-i', sw_mismatch_value, '-g', sw_gap_open_ref, '-q', sw_gap_open_query, '-e', sw_gap_ext_ref, '-f', sw_gap_ext_query, '-h', sw_hit_threshold, query_fasta, input_target, '>', shrimp_outfile, '2>', shrimp_log])
+
+ try:
+ os.system(command)
+ except Exception, e:
+ if os.path.exists(query_fasta): os.remove(query_fasta)
+ if os.path.exists(query_qual): os.remove(query_qual)
+ stop_err(str(e))
+
+ else:
+ command_end1 = ' '.join(['rmapper-ls', '-s', spaced_seed, '-n', seed_matches_per_window, '-t', seed_hit_taboo_length, '-9', seed_generation_taboo_length, '-w', seed_window_length, '-o', max_hits_per_read, '-r', max_read_length, '-d', kmer, '-m', sw_match_value, '-i', sw_mismatch_value, '-g', sw_gap_open_ref, '-q', sw_gap_open_query, '-e', sw_gap_ext_ref, '-f', sw_gap_ext_query, '-h', sw_hit_threshold, query_fasta_end1, input_target, '>', shrimp_outfile, '2>', shrimp_log])
+ command_end2 = ' '.join(['rmapper-ls', '-s', spaced_seed, '-n', seed_matches_per_window, '-t', seed_hit_taboo_length, '-9', seed_generation_taboo_length, '-w', seed_window_length, '-o', max_hits_per_read, '-r', max_read_length, '-d', kmer, '-m', sw_match_value, '-i', sw_mismatch_value, '-g', sw_gap_open_ref, '-q', sw_gap_open_query, '-e', sw_gap_ext_ref, '-f', sw_gap_ext_query, '-h', sw_hit_threshold, query_fasta_end2, input_target, '>>', shrimp_outfile, '2>>', shrimp_log])
+
+ try:
+ os.system(command_end1)
+ os.system(command_end2)
+ except Exception, e:
+ if os.path.exists(query_fasta_end1): os.remove(query_fasta_end1)
+ if os.path.exists(query_fasta_end2): os.remove(query_fasta_end2)
+ if os.path.exists(query_qual_end1): os.remove(query_qual_end1)
+ if os.path.exists(query_qual_end2): os.remove(query_qual_end2)
+ stop_err(str(e))
+
+ # convert to table
+ if type_of_reads == 'single':
+ return_value = generate_sub_table(shrimp_outfile, input_target, query_qual, table_outfile, hit_per_read)
+ else:
+ return_value = generate_sub_table(shrimp_outfile, input_target, query_qual_end1+'&'+query_qual_end2, table_outfile, hit_per_read)
+
+ # remove temp. files
+ if type_of_reads == 'single':
+ if os.path.exists(query_fasta): os.remove(query_fasta)
+ if os.path.exists(query_qual): os.remove(query_qual)
+ else:
+ if os.path.exists(query_fasta_end1): os.remove(query_fasta_end1)
+ if os.path.exists(query_fasta_end2): os.remove(query_fasta_end2)
+ if os.path.exists(query_qual_end1): os.remove(query_qual_end1)
+ if os.path.exists(query_qual_end2): os.remove(query_qual_end2)
+
+ if os.path.exists(shrimp_log): os.remove(shrimp_log)
+
+if __name__ == '__main__': __main__()
+
diff -r 26825f08d362 -r 842f1883cf53 tools/metag_tools/shrimp_wrapper.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/metag_tools/shrimp_wrapper.xml Mon Sep 15 15:04:41 2008 -0400
@@ -0,0 +1,196 @@
+<tool id="shrimp_wrapper" name="SHRiMP" version="1.0.0">
+ <description>SHort Read Mapping Package</description>
+ <command interpreter="python">
+ #if ($type_of_reads.single_or_paired=="single" and $param.skip_or_full=="skip"):#shrimp_wrapper.py $type_of_reads.single_or_paired $input_target $output1 $output2 $input_query
+ #elif ($type_of_reads.single_or_paired=="paired" and $param.skip_or_full=="skip"):#shrimp_wrapper.py $type_of_reads.single_or_paired $input_target $output1 $output2 ${type_of_reads.input1} ${type_of_reads.input2}
+ #elif ($type_of_reads.single_or_paired=="single" and $param.skip_or_full=="full"):#shrimp_wrapper.py $type_of_reads.single_or_paired $input_target $output1 $output2 $param.spaced_seed $param.seed_matches_per_window $param.seed_hit_taboo_length $param.seed_generation_taboo_length $param.seed_window_length $param.max_hits_per_read $param.max_read_length $param.kmer $param.sw_match_value $param.sw_mismatch_value $param.sw_gap_open_ref $param.sw_gap_open_query $param.sw_gap_ext_ref $param.sw_gap_ext_query $param.sw_hit_threshold $input_query
+ #elif ($type_of_reads.single_or_paired=="paired" and $param.skip_or_full=="full"):#shrimp_wrapper.py $type_of_reads.single_or_paired $input_target $output1 $output2 $param.spaced_seed $param.seed_matches_per_window $param.seed_hit_taboo_length $param.seed_generation_taboo_length $param.seed_window_length $param.max_hits_per_read $param.max_read_length $param.kmer $param.sw_match_value $param.sw_mismatch_value $param.sw_gap_open_ref $param.sw_gap_open_query $param.sw_gap_ext_ref $param.sw_gap_ext_query $param.sw_hit_threshold ${type_of_reads.input1} ${type_of_reads.input2}
+ #end if
+ </command>
+ <inputs>
+ <page>
+ <param name="input_target" type="data" format="fasta" label="Reference sequence" />
+ <conditional name="type_of_reads">
+ <param name="single_or_paired" type="select" label="Single- or Paired-ends">
+ <option value="single">Single-end</option>
+ <option value="paired">Paired-end</option>
+ </param>
+ <when value="single">
+ <param name="input_query" type="data" format="fastqsolexa" label="Sequence file" />
+ </when>
+ <when value="paired">
+ <param name="input1" type="data" format="fastqsolexa" label="One end" />
+ <param name="input2" type="data" format="fastqsolexa" label="The other end" />
+ </when>
+ </conditional>
+ <conditional name="param">
+ <param name="skip_or_full" type="select" label="SHRiMP parameter selection">
+ <option value="skip">Default setting</option>
+ <option value="full">Full list</option>
+ </param>
+ <when value="skip" />
+ <when value="full">
+ <param name="spaced_seed" type="text" size="30" value="111111011111" label="Spaced Seed" />
+ <param name="seed_matches_per_window" type="integer" size="5" value="2" label="Seed Matches per Window" />
+ <param name="seed_hit_taboo_length" type="integer" size="5" value="4" label="Seed Hit Taboo Length" />
+ <param name="seed_generation_taboo_length" type="integer" size="5" value="0" label="Seed Generation Taboo Length" />
+ <param name="seed_window_length" type="float" size="10" value="115.0" label="Seed Window Length" help="in percentage"/>
+ <param name="max_hits_per_read" type="integer" size="10" value="100" label="Maximum Hits per Read" />
+ <param name="max_read_length" type="integer" size="10" value="1000" label="Maximum Read Length" />
+ <param name="kmer" type="integer" size="10" value="-1" label="Kmer Std. Deviation Limit" help="-1 as None"/>
+ <param name="sw_match_value" type="integer" size="10" value="100" label="S-W Match Value" />
+ <param name="sw_mismatch_value" type="integer" size="10" value="-150" label="S-W Mismatch Value" />
+ <param name="sw_gap_open_ref" type="integer" size="10" value="-400" label="S-W Gap Open Penalty (Reference)" />
+ <param name="sw_gap_open_query" type="integer" size="10" value="-400" label="S-W Gap Open Penalty (Query)" />
+ <param name="sw_gap_ext_ref" type="integer" size="10" value="-70" label="S-W Gap Extend Penalty (Reference)" />
+ <param name="sw_gap_ext_query" type="integer" size="10" value="-70" label="S-W Gap Extend Penalty (Query)" />
+ <param name="sw_hit_threshold" type="float" size="10" value="68.0" label="S-W Hit Threshold" help="in percentage"/>
+ </when>
+ </conditional>
+ </page>
+ </inputs>
+ <outputs>
+ <data name="output1" format="tabular"/>
+ <data name="output2" format="tabular"/>
+ </outputs>
+ <requirements>
+ <requirement type="binary">SHRiMP_rmapper</requirement>
+ </requirements>
+ <tests>
+ <test>
+ <param name="single_or_paired" value="single" />
+ <param name="skip_or_full" value="skip" />
+ <param name="input_target" value="shrimp_phix_anc.fa" ftype="fasta" />
+ <param name="input_query" value="shrimp_wrapper_test1.fastq" ftype="fastqsolexa"/>
+ <output name="output1" file="shrimp_wrapper_test1.out1" />
+ </test>
+ <!--
+ <test>
+ <param name="input1" value="shrimp_wrapper_test2_end1.fastq" ftype="fastqsolexa" />
+ <param name="input2" value="shrimp_wrapper_test2_end2.fastq" ftype="fastqsolexa" />
+ <param name="single_or_paired" value="paired" />
+ <param name="skip_or_full" value="skip" />
+ <param name="input_target" value="shrimp_eca_chrMT.fa" ftype="fasta" />
+ <output name="output1" file="shrimp_wrapper_test2.out1" />
+ </test>
+ <test>
+ <param name="single_or_paired" value="single" />
+ <param name="skip_or_full" value="full" />
+ <param name="input_target" value="shrimp_phix_anc.fa" ftype="fasta" />
+ <param name="input_query" value="shrimp_wrapper_test1.fastq" ftype="fastqsolexa"/>
+ <param name="spaced_seed" value="111111011111" />
+ <param name="seed_matches_per_window" value="2" />
+ <param name="seed_hit_taboo_length" value="4" />
+ <param name="seed_generation_taboo_length" value="0" />
+ <param name="seed_window_length" value="115.0" />
+ <param name="max_hits_per_read" value="100" />
+ <param name="max_read_length" value="1000" />
+ <param name="kmer" value="-1" />
+ <param name="sw_match_value" value="100" />
+ <param name="sw_mismatch_value" value="-150" />
+ <param name="sw_gap_open_ref" value="-400" />
+ <param name="sw_gap_open_query" value="-400" />
+ <param name="sw_gap_ext_ref" value="-70" />
+ <param name="sw_gap_ext_query" value="-70" />
+ <param name="sw_hit_threshold" value="68.0" />
+ <output name="output1" file="shrimp_wrapper_test1.out1" />
+ </test>
+ <test>
+ <param name="single_or_paired" value="paired" />
+ <param name="skip_or_full" value="full" />
+ <param name="input_target" value="shrimp_eca_chrMT.fa" ftype="fasta" />
+ <param name="spaced_seed" value="111111011111" />
+ <param name="seed_matches_per_window" value="2" />
+ <param name="seed_hit_taboo_length" value="4" />
+ <param name="seed_generation_taboo_length" value="0" />
+ <param name="seed_window_length" value="115.0" />
+ <param name="max_hits_per_read" value="100" />
+ <param name="max_read_length" value="1000" />
+ <param name="kmer" value="-1" />
+ <param name="sw_match_value" value="100" />
+ <param name="sw_mismatch_value" value="-150" />
+ <param name="sw_gap_open_ref" value="-400" />
+ <param name="sw_gap_open_query" value="-400" />
+ <param name="sw_gap_ext_ref" value="-70" />
+ <param name="sw_gap_ext_query" value="-70" />
+ <param name="sw_hit_threshold" value="68.0" />
+ <param name="input1" value="shrimp_wrapper_test2_end1.fastq" ftype="fastqsolexa"/>
+ <param name="input2" value="shrimp_wrapper_test2_end2.fastq" ftype="fastqsolexa"/>
+ <output name="output1" file="shrimp_wrapper_test2.out1" />
+ </test>
+ -->
+ </tests>
+<help>
+
+.. class:: warningmark
+
+Only nucleotide sequences as query.
+
+-----
+
+**What it does**
+
+Run SHRiMP on letter-space reads.
+
+-----
+
+**Example**
+
+- Input a multiple-fastq file like the following::
+
+ @seq1
+ TACCCGATTTTTTGCTTTCCACTTTATCCTACCCTT
+ +seq2
+ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
+
+- Use default settings (for detail explanations, please see **Parameters** section)
+
+- Search against your own uploaded file, result will be in the following format::
+
+ +-------+-------+--------+----------+----------+---------+--------+--------+-------+------------+
+ | id | chrom | strand | t.start | t.end | q.start | q.end | length | score | editstring |
+ +-------+-------+--------+----------+----------+---------+--------+--------+-------+------------+
+ | >seq1 | chrMT | + | 14712 | 14747 | 1 | 36 | 36 | 3350 | 24T11 |
+ +-------+-------+--------+----------+----------+---------+--------+--------+-------+------------+
+
+- The result will be formatted Table::
+
+ +-------+---------+---------+----------+---------+----------+---------+----------+
+ | chrom | ref_loc | read_id | read_loc | ref_nuc | read_nuc | quality | coverage |
+ +-------+---------+---------+----------+---------+----------+---------+----------+
+ | chrMT | 14711 | seq1 | 0 | T | T | 40 | 1 |
+ | chrMT | 14712 | seq1 | 1 | A | A | 40 | 1 |
+ | chrMT | 14713 | seq1 | 2 | C | C | 40 | 1 |
+ +-------+---------+---------+----------+---------+----------+---------+----------+
+
+-----
+
+**Parameters**
+
+Parameter list with default value settings::
+
+ -s Spaced Seed (default: 111111011111)
+ -n Seed Matches per Window (default: 2)
+ -t Seed Hit Taboo Length (default: 4)
+ -9 Seed Generation Taboo Length (default: 0)
+ -w Seed Window Length (default: 115.00%)
+ -o Maximum Hits per Read (default: 100)
+ -r Maximum Read Length (default: 1000)
+ -d Kmer Std. Deviation Limit (default: -1 [None])
+
+ -m S-W Match Value (default: 100)
+ -i S-W Mismatch Value (default: -150)
+ -g S-W Gap Open Penalty (Reference) (default: -400)
+ -q S-W Gap Open Penalty (Query) (default: -400)
+ -e S-W Gap Extend Penalty (Reference) (default: -70)
+ -f S-W Gap Extend Penalty (Query) (default: -70)
+ -h S-W Hit Threshold (default: 68.00%)
+
+-----
+
+**Reference**
+
+ **SHRiMP**: Stephen M. Rumble, Michael Brudno, Phil Lacroute, Vladimir Yanovsky, Marc Fiume, Adrian Dalca. shrimp at cs dot toronto dot edu.
+
+</help>
+</tool>
1
0
[hg] galaxy 1513: Quick 'n easy solution to the EMBOSS stage in/...
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
22 Sep '08
details: http://www.bx.psu.edu/hg/galaxy/rev/cf17b5a16eff
changeset: 1513:cf17b5a16eff
user: Nate Coraor <nate(a)bx.psu.edu>
date: Wed Sep 17 10:45:20 2008 -0400
description:
Quick 'n easy solution to the EMBOSS stage in/out problem: read the
outputs from the "real" galaxy path instead of the temp stage path.
1 file(s) affected in this change:
lib/galaxy/jobs/runners/pbs.py
diffs (31 lines):
diff -r 1e408bab8941 -r cf17b5a16eff lib/galaxy/jobs/runners/pbs.py
--- a/lib/galaxy/jobs/runners/pbs.py Tue Sep 16 15:23:23 2008 -0400
+++ b/lib/galaxy/jobs/runners/pbs.py Wed Sep 17 10:45:20 2008 -0400
@@ -146,7 +146,7 @@
if self.app.config.pbs_application_server:
pbs_ofile = self.app.config.pbs_application_server + ':' + ofile
pbs_efile = self.app.config.pbs_application_server + ':' + efile
- stagein = self.get_stage_in_out( job_wrapper.get_input_fnames() + job_wrapper.get_output_fnames() )
+ stagein = self.get_stage_in_out( job_wrapper.get_input_fnames() + job_wrapper.get_output_fnames(), symlink=True )
stageout = self.get_stage_in_out( job_wrapper.get_output_fnames() )
job_attrs = pbs.new_attropl(5)
job_attrs[0].name = pbs.ATTR_o
@@ -372,15 +372,15 @@
self.queue.put( self.STOP_SIGNAL )
log.info( "pbs job runner stopped" )
- def get_stage_in_out( self, fnames ):
+ def get_stage_in_out( self, fnames, symlink=False ):
"""Convenience function to create a stagein/stageout list"""
stage = ''
for fname in fnames:
if os.access(fname, os.R_OK):
- if stage != '':
+ if stage:
stage += ','
# pathnames are now absolute
- if self.app.config.pbs_stage_path != '':
+ if symlink and self.app.config.pbs_stage_path:
stage_name = os.path.join(self.app.config.pbs_stage_path, os.path.split(fname)[1])
else:
stage_name = fname
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/c3ce08879473
changeset: 1511:c3ce08879473
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Tue Sep 16 14:26:14 2008 -0400
description:
Merge local heads
0 file(s) affected in this change:
diffs (12 lines):
diff -r eb941905fd70 -r c3ce08879473 lib/galaxy/tools/parameters/validation.py
--- a/lib/galaxy/tools/parameters/validation.py Tue Sep 16 14:09:16 2008 -0400
+++ b/lib/galaxy/tools/parameters/validation.py Tue Sep 16 14:26:14 2008 -0400
@@ -247,7 +247,7 @@
if line_startswith is None or line.startswith( line_startswith ):
fields = line.split( '\t' )
if metadata_column < len( fields ):
- self.valid_values.append( fields[metadata_column] )
+ self.valid_values.append( fields[metadata_column].strip() )
def validate( self, value, history = None ):
if not value: return
if hasattr( value, "metadata" ):
1
0
[hg] galaxy 1512: The MetadataCollection object is now created o...
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
22 Sep '08
details: http://www.bx.psu.edu/hg/galaxy/rev/1e408bab8941
changeset: 1512:1e408bab8941
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Tue Sep 16 15:23:23 2008 -0400
description:
The MetadataCollection object is now created only once per dataset object instance (and when datatype is changed), instead of each time dataset.metadata is called.
The 'no_value' attribute for a metadata element's spec is returned when the metadata element's value is None.
2 file(s) affected in this change:
lib/galaxy/datatypes/metadata.py
lib/galaxy/model/__init__.py
diffs (89 lines):
diff -r c3ce08879473 -r 1e408bab8941 lib/galaxy/datatypes/metadata.py
--- a/lib/galaxy/datatypes/metadata.py Tue Sep 16 14:26:14 2008 -0400
+++ b/lib/galaxy/datatypes/metadata.py Tue Sep 16 15:23:23 2008 -0400
@@ -151,9 +151,16 @@
"""
def __init__(self, parent, spec):
self.parent = parent
- self.bunch = parent._metadata or dict()
if spec is None: self.spec = MetadataSpecCollection()
else: self.spec = spec
+
+ #set default metadata values
+ if not self.parent._metadata:
+ self.parent._metadata = {}
+ for name, value in self.spec.items():
+ if name not in self.bunch:
+ self.bunch[name] = value.default
+
def __iter__(self):
return self.bunch.__iter__()
def get( self, key, default=None ):
@@ -168,19 +175,21 @@
def __nonzero__(self):
return self.bunch.__nonzero__()
def __getattr__(self, name):
- if self.bunch.get( name ):
- return self.bunch.get( name )
+ if name == "bunch":
+ return self.parent._metadata
+ rval = self.bunch.get( name )
+ if rval is None:
+ rval = self.spec.get( name, None )
+ if rval:
+ rval = rval.no_value
+ return rval
+ def __setattr__(self, name, value):
+ if name in ["parent","spec"]:
+ self.__dict__[name] = value
+ elif name == "bunch":
+ self.parent._metadata = value
else:
- if self.spec.get(name, None):
- return self.spec[name].default
- else:
- return None
- def __setattr__(self, name, value):
- if name in ["parent","bunch","spec"]:
- self.__dict__[name] = value
- else:
- self.__dict__["bunch"][name] = value
- self.bunch = self.parent._metadata = dict( self.bunch )
+ self.bunch[name] = value
MetadataElement = Statement(MetadataElementSpec)
diff -r c3ce08879473 -r 1e408bab8941 lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py Tue Sep 16 14:26:14 2008 -0400
+++ b/lib/galaxy/model/__init__.py Tue Sep 16 15:23:23 2008 -0400
@@ -113,7 +113,7 @@
self.peek = peek
self.extension = extension
self.designation = designation
- self._metadata = metadata or dict()
+ self.metadata = metadata or dict()
self.dbkey = dbkey
self.deleted = deleted
self.visible = visible
@@ -159,9 +159,9 @@
return datatypes_registry.get_datatype_by_extension( self.extension )
def get_metadata( self ):
- if not self._metadata:
- self._metadata = dict()
- return MetadataCollection( self, self.datatype.metadata_spec )
+ if not hasattr( self, '_metadata_collection' ):
+ self._metadata_collection = MetadataCollection( self, self.datatype.metadata_spec )
+ return self._metadata_collection
def set_metadata( self, bunch ):
# Needs to accept a MetadataCollection, a bunch, or a dict
self._metadata = dict( bunch.items() )
@@ -191,6 +191,8 @@
def change_datatype( self, new_ext ):
self.clear_associated_files()
+ if hasattr( self, '_metadata_collection' ):
+ del self._metadata_collection
datatypes_registry.change_datatype( self, new_ext )
def get_size( self ):
"""Returns the size of the data on disk"""
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/4e2ed1801931
changeset: 1504:4e2ed1801931
user: Anton Nekrutenko <anton(a)bx.psu.edu>
date: Fri Sep 12 15:35:50 2008 -0400
description:
Typos
1 file(s) affected in this change:
tools/sr_mapping/lastz_wrapper.xml
diffs (17 lines):
diff -r 777e41dbdf1f -r 4e2ed1801931 tools/sr_mapping/lastz_wrapper.xml
--- a/tools/sr_mapping/lastz_wrapper.xml Fri Sep 12 15:14:20 2008 -0400
+++ b/tools/sr_mapping/lastz_wrapper.xml Fri Sep 12 15:35:50 2008 -0400
@@ -216,11 +216,11 @@
**Full Parameter List**
-The modes gives you a fuller control over lastz. The description of these and other parameters is found at the end of this page. Note, that not all parameters are included in this interface. If you would like to make additional options available through Galaxy, e-mail us at galaxy-bugs(a)bx.psu.edu.
+This modes gives you a fuller control over lastz. The description of these and other parameters is found at the end of this page. Note, that not all parameters are included in this interface. If you would like to make additional options available through Galaxy, e-mail us at galaxy-bugs(a)bx.psu.edu.
------
-** Do you want to modify reference name?**
+**Do you want to modify reference name?**
This option allows you set the name of the reference sequence manually. This is helpful when, for example, you would like to make reference name compatible with the UCSC naming conventions to be able to display your lastz results as a custom track at UCSC Genome Browser.
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/26825f08d362
changeset: 1506:26825f08d362
user: Anton Nekrutenko <anton(a)bx.psu.edu>
date: Sun Sep 14 14:58:50 2008 -0400
description:
Forgot two test datasets
2 file(s) affected in this change:
test-data/B1.fa
test-data/phiX.fa
diffs (1087 lines):
diff -r b6ff467f4522 -r 26825f08d362 test-data/B1.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/B1.fa Sun Sep 14 14:58:50 2008 -0400
@@ -0,0 +1,1000 @@
+>HWI-EAS91_1_306UPAAXX:6:1:1503:1160
+GGTGGTCTATAGTGTTATTAATATCAAGTTGGGGGG
+>HWI-EAS91_1_306UPAAXX:6:1:1564:1179
+GCGAGCAGTAGACTCCTTCTGTTGATAAGCAAGCAT
+>HWI-EAS91_1_306UPAAXX:6:1:1704:1082
+GATGAGGAGAAGTGGCTTAATATGCTTGGCACGTTC
+>HWI-EAS91_1_306UPAAXX:6:1:1588:1797
+GTATGTTTCTCCTGCTTATCACCTTCTTGAAGGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:1304:1526
+GTAGTTGAAATGGTAATAAGACGACCAATCTGACCT
+>HWI-EAS91_1_306UPAAXX:6:1:1490:1582
+GTCGTGTTCAACAGACCTATAAACATTCTGTGCCGC
+>HWI-EAS91_1_306UPAAXX:6:1:1356:1339
+GTAGACATTTTTACTTTTTATGTCCCTCATCGTCAC
+>HWI-EAS91_1_306UPAAXX:6:1:1311:853
+GGTTGGTTTATCGTTTTTGACACTCTCACGTTGTCT
+>HWI-EAS91_1_306UPAAXX:6:1:1257:1552
+GTTCGCTTTGAGTCTTCTTCGGTTCCGACTACCCTC
+>HWI-EAS91_1_306UPAAXX:6:1:1486:1402
+GTTACTGAGAAGTTAATGGATGAATTGGCACAATGC
+>HWI-EAS91_1_306UPAAXX:6:1:1028:1081
+GGATTGGTTTCGCTGAATCAGGTTATTAAAGAGATT
+>HWI-EAS91_1_306UPAAXX:6:1:1167:752
+GGTTTTCTTCATTGCATTCAGATGGATACATCTGTC
+>HWI-EAS91_1_306UPAAXX:6:1:1507:1113
+GTCAACGTTATATTTTGATAGTTTGACGGTTAATTC
+>HWI-EAS91_1_306UPAAXX:6:1:1654:1311
+GGATGAAAATGCTCACAATGACAAATCTGTCCACGG
+>HWI-EAS91_1_306UPAAXX:6:1:1386:1060
+GTTCTTGGTCAGTATGCAAATTAGCATAAGCAGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:1070:1356
+GGTTACAGTATGCCCATCGCAGTTCGCTACACGCAG
+>HWI-EAS91_1_306UPAAXX:6:1:787:1032
+GCTAAAGGTCTAGGAGCTAAAGAATGGAACAACTCA
+>HWI-EAS91_1_306UPAAXX:6:1:834:1017
+GCTACACGCAGGACGCTTTTTCACGTTCTGGTTGGT
+>HWI-EAS91_1_306UPAAXX:6:1:1703:1155
+GGATTGGTTTCGCTGAATCAGGTTATTAAAGAGATT
+>HWI-EAS91_1_306UPAAXX:6:1:1406:593
+GTTGAGTTCGATAATGGTGATATGTATGTTTACGGC
+>HWI-EAS91_1_306UPAAXX:6:1:1411:886
+GTCCTTTACTTGTCATGCGCTCTAATCTCTGGGCAT
+>HWI-EAS91_1_306UPAAXX:6:1:923:972
+GCATGACAAGTAAAGGACGGTTGTCAGCGTCATAAG
+>HWI-EAS91_1_306UPAAXX:6:1:1279:1004
+GCCATAGCACCAGAAACAAAACTAGGGGCGGCCTCT
+>HWI-EAS91_1_306UPAAXX:6:1:1070:840
+GGTTGTCAGCGTCATAAGAGGTTTTACCTCCAAATG
+>HWI-EAS91_1_306UPAAXX:6:1:1595:1040
+GTTTCTGATAAGTTGCTTGATTTGGTTGGACTTGGT
+>HWI-EAS91_1_306UPAAXX:6:1:1002:559
+GAGATTGCCGAGATGCAAAATGAGACTCAAAAAGAG
+>HWI-EAS91_1_306UPAAXX:6:1:999:974
+GTTTGGATTGCTACTGACCGCTCTCGTGCTCGTCGC
+>HWI-EAS91_1_306UPAAXX:6:1:896:982
+GTGGCTGGAGACAAATAATCTCTTTAATAACCTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:1366:741
+GTTCAAGATTGCTGGAGGCCTCCACTATGAAATCGC
+>HWI-EAS91_1_306UPAAXX:6:1:749:1469
+GTTTATGGTGAACAGTGGATTAAGTTCATGAAGGAT
+>HWI-EAS91_1_306UPAAXX:6:1:1010:592
+GAGTTTATTGCTGCCGTCATTGCTTATTATGTTCAT
+>HWI-EAS91_1_306UPAAXX:6:1:1393:650
+GTGACTCATATCTAAACCAGTCCTTGACGAACGTGC
+>HWI-EAS91_1_306UPAAXX:6:1:1238:1731
+GAGAAATAAAAGTCTGAAACATGATTAAACTCCTAA
+>HWI-EAS91_1_306UPAAXX:6:1:1629:908
+GATGCGGTTATCCATCTGCTTATGGAAGCCAAGCAT
+>HWI-EAS91_1_306UPAAXX:6:1:1560:849
+GCTGTCGCTACTTCCCAAGAAGCTGTTCAGAATCAG
+>HWI-EAS91_1_306UPAAXX:6:1:1029:783
+GAGAAGTTAATGGATGAATTGGCACAATGCTACAAT
+>HWI-EAS91_1_306UPAAXX:6:1:1152:1324
+GACAATCAGAAAGAGATTGCCGAGATGCAAAATGAG
+>HWI-EAS91_1_306UPAAXX:6:1:1614:2042
+GAAATGCCACAAGCCTCAATAGCAGGTTTAAGAGCC
+>HWI-EAS91_1_306UPAAXX:6:1:1398:439
+GATGGTTGGTTTATCGTTTTTGACACTCTCACGTTG
+>HWI-EAS91_1_306UPAAXX:6:1:955:616
+GACTAAAGAGATTCAGTACCTTAACGCTAAAGGTGC
+>HWI-EAS91_1_306UPAAXX:6:1:1672:753
+GAATGCCAGCAATCTCTTTTTGAGTCTCATTTTGCT
+>HWI-EAS91_1_306UPAAXX:6:1:1195:1293
+GCAATGCGACAGGCTCATGCTGATGGTTGGTTTATC
+>HWI-EAS91_1_306UPAAXX:6:1:1074:755
+GCAAGAGTAAACATAGTGCCATGCTCAGGAACAAAG
+>HWI-EAS91_1_306UPAAXX:6:1:984:499
+GACTTAGTTCATCAGCAAACGCAGAATCAGCGGTAT
+>HWI-EAS91_1_306UPAAXX:6:1:1452:1833
+GCGTGCTGGTGCTGATGCTTCCTCTGCTGGTATGGT
+>HWI-EAS91_1_306UPAAXX:6:1:863:710
+GAGTTCGATAATGGTGATATGTATGTTGACGGCCAT
+>HWI-EAS91_1_306UPAAXX:6:1:885:649
+GCAGAAGTTAACACTTTCGGATATTTCTGATGAGTC
+>HWI-EAS91_1_306UPAAXX:6:1:917:1214
+GACAGATGTATCCATCTGAATGCAATGAAGAAAACC
+>HWI-EAS91_1_306UPAAXX:6:1:892:1254
+GCTCAGGAAATGCAGCAGCAAGATAATCACGAGTAT
+>HWI-EAS91_1_306UPAAXX:6:1:1555:1005
+GCATTTGGCGCATAATCTCGGAAACCTGCTGTTGCT
+>HWI-EAS91_1_306UPAAXX:6:1:1637:1413
+GATGCTGTTCAACCACTAATAGGTAAGAAATCATGT
+>HWI-EAS91_1_306UPAAXX:6:1:1102:1567
+GGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAA
+>HWI-EAS91_1_306UPAAXX:6:1:799:1337
+GTATATGCACAAAATGAGATGCTTGCTTATCAACAG
+>HWI-EAS91_1_306UPAAXX:6:1:1353:1843
+GCAGACCCATAATGTCAATAGATGTGGTAGAAGTCG
+>HWI-EAS91_1_306UPAAXX:6:1:1196:789
+GCGGCATACGCTCGGCGCCAGTTTGAATATTAGACA
+>HWI-EAS91_1_306UPAAXX:6:1:1056:1676
+GTAAAATACTGACCAGCCGTTTGAGCTTGAGTAAGC
+>HWI-EAS91_1_306UPAAXX:6:1:1349:1836
+GGAAAACACCAATCTTTCCAAGCAACAGCAGGTTTC
+>HWI-EAS91_1_306UPAAXX:6:1:1027:788
+GGTGTTAATGCCACTCCTCTCCCGACTGTTAACACT
+>HWI-EAS91_1_306UPAAXX:6:1:990:1283
+GCTTAGGGATTTTATTGGTATCAGGGTTAATCGTGC
+>HWI-EAS91_1_306UPAAXX:6:1:904:939
+GAGAAGTTAATGGATGAATTGGCACAATGCTACAAT
+>HWI-EAS91_1_306UPAAXX:6:1:1732:793
+GTCAACATACATATCACCATTATCGAACTCAACGCC
+>HWI-EAS91_1_306UPAAXX:6:1:1355:2003
+GTTAGACCAAACCATGAAACCAACATAAACATTATT
+>HWI-EAS91_1_306UPAAXX:6:1:1337:977
+GCACCAGAAACAAAACTAGGGGCGGCCTCATCAGGG
+>HWI-EAS91_1_306UPAAXX:6:1:1605:1175
+GGAGGTAAAACCTCTTATGACGCTGACAACCGTCCT
+>HWI-EAS91_1_306UPAAXX:6:1:1763:1192
+GACAGGCCGTTTGAATGTTGACGGGATGAACATAAT
+>HWI-EAS91_1_306UPAAXX:6:1:722:483
+GTTATTATACCGTCAAGGACTGTGTGACTATTGACT
+>HWI-EAS91_1_306UPAAXX:6:1:1760:1136
+GCAAAGCATTGGGATTATCATAAAACGCCTCTAATC
+>HWI-EAS91_1_306UPAAXX:6:1:1088:798
+GGAAACCTGCTGTTGCTTGGAAAGATTGGTGTTTTC
+>HWI-EAS91_1_306UPAAXX:6:1:633:1076
+GCTACTTCCCAAGAAGCTGTTCAGAATCAGAATGAG
+>HWI-EAS91_1_306UPAAXX:6:1:673:754
+GTCATGGAAGCGATAAAACTCTGCAGGTTGGATATT
+>HWI-EAS91_1_306UPAAXX:6:1:1759:2019
+GTAAAGGACGGTTGTCAGCGTCATAAGAGGTTTTAC
+>HWI-EAS91_1_306UPAAXX:6:1:1064:1797
+GCGGTTATCCATCTGCTTATGGAAGCCAAGCATTGG
+>HWI-EAS91_1_306UPAAXX:6:1:1112:1669
+GCTCATGCTGATGGTTGGTTTATCGTTTTTGACACT
+>HWI-EAS91_1_306UPAAXX:6:1:510:1447
+GCATTAAGCTCAGGAAATGCAGCAGCAAGATAATCA
+>HWI-EAS91_1_306UPAAXX:6:1:877:1573
+GTGCTATTGCTGGCGGTATTTCTTCTTCTTTTTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:870:542
+GAATGTCACGCTGATTATTTTGACTTTGAGCGTATC
+>HWI-EAS91_1_306UPAAXX:6:1:966:384
+GCACCTGTTTTACAGACACCTAAAGCTACATCGTCA
+>HWI-EAS91_1_306UPAAXX:6:1:1186:1903
+GCCAGCGATAACCGGAGTAGTTGAAATGGTAATAAG
+>HWI-EAS91_1_306UPAAXX:6:1:1632:1742
+GCATCACCCATGCCTACAGTATTGTTATCGGTAGCC
+>HWI-EAS91_1_306UPAAXX:6:1:1521:559
+GAGAGCGCCAACGGCGTCCATCTCGAAGGAGTCGCC
+>HWI-EAS91_1_306UPAAXX:6:1:683:454
+GCTTATTATGTTCATCCCGTCAACATTCAAACGTCC
+>HWI-EAS91_1_306UPAAXX:6:1:112:1280
+GTTGGCGCTCTCCGTCTTTCTCCATTTCGTCGTGTC
+>HWI-EAS91_1_306UPAAXX:6:1:891:381
+GACCAGGGCGAGCGCCAGAACGTTTTTTACCTTTAG
+>HWI-EAS91_1_306UPAAXX:6:1:1348:958
+GATTGAGGCTGGGAAAAGTTACTGTAGCCGACGTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1785:1915
+GCCCCGAAGGGGACNANAAATGGTTTTTAGAGAACG
+>HWI-EAS91_1_306UPAAXX:6:1:1418:42
+GTATGCCCATCGCAGTTCGCTACACGCAGGACGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:1421:743
+GGTCAACGCTACCTGTAGGAAGTGTCCGCATAAAAT
+>HWI-EAS91_1_306UPAAXX:6:1:1079:790
+GCCAAATGCTTACTCAAGCTCAAACGGCTGGTCAGT
+>HWI-EAS91_1_306UPAAXX:6:1:663:740
+GGTATTAAGGATGAGTGTTCAAGATTGCTGGATGCC
+>HWI-EAS91_1_306UPAAXX:6:1:1245:413
+GTTTGAATGTTGACGGGATGAACATAATAAGCAATG
+>HWI-EAS91_1_306UPAAXX:6:1:1378:1035
+GCTCTTGCTGGTGGCGCCATGTCTAAATTGTTTGGG
+>HWI-EAS91_1_306UPAAXX:6:1:903:1746
+GTACGGGGAAGGACGTCAATAGTCACACAGTCCTTG
+>HWI-EAS91_1_306UPAAXX:6:1:1713:1134
+GGCGTACGGGGAAGGACGTCAATAGTCACACAGTCC
+>HWI-EAS91_1_306UPAAXX:6:1:1246:1887
+GCTCTAATCTCTGGGCATCTGGCTATGATGTTGATG
+>HWI-EAS91_1_306UPAAXX:6:1:872:1731
+GGGCGGCCTCATCAGGGTTAGGAACATTAGAGCCTT
+>HWI-EAS91_1_306UPAAXX:6:1:1714:1582
+GCTTTCCTGCTCCTGTTGAGTTTATTGCTTCCGTCT
+>HWI-EAS91_1_306UPAAXX:6:1:1785:763
+GNCGAGAAATAAAANNNTGAAACATGATTAAANTCC
+>HWI-EAS91_1_306UPAAXX:6:1:1684:542
+GAAAAGACAGAATCTCTTCCAAGAGCTTGATGCGGT
+>HWI-EAS91_1_306UPAAXX:6:1:1581:1665
+GACTTTGAGCGTATCGAGGCTCTTAAACCTGCTATT
+>HWI-EAS91_1_306UPAAXX:6:1:901:1581
+GTGCTGATATTGCTTTTGATGCCGACCCTAAATTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1128:239
+GGTTATTATACCGTCAAGGACTGTGTGACTATTGAC
+>HWI-EAS91_1_306UPAAXX:6:1:969:441
+GGTAAGAAATCATGAGTCAAGTTACTGAACAATCCG
+>HWI-EAS91_1_306UPAAXX:6:1:630:1087
+GCCACCATGATTATGACCAGTGTTTCCAGTCCGTTC
+>HWI-EAS91_1_306UPAAXX:6:1:606:1852
+GGAGACAAATAATCTCTTTAATAACCTGATTCAGCG
+>HWI-EAS91_1_306UPAAXX:6:1:489:1315
+GAAAGCTCAGTCTCAGGAGGAAGCGGAGCAGTCCAC
+>HWI-EAS91_1_306UPAAXX:6:1:465:1983
+GAGCCAATACCATCAGCTTTACCGTCTTTCCAGAAA
+>HWI-EAS91_1_306UPAAXX:6:1:559:1028
+GAGTGCTTAATCCAACTTACCAAGCTGGGTTACGAC
+>HWI-EAS91_1_306UPAAXX:6:1:1655:1413
+GTATGTTGACGGCCATAAGGCTGCTTCTGACGTTCG
+>HWI-EAS91_1_306UPAAXX:6:1:980:605
+GCCGTTTGAATGTTGACGGGATGAACATAATAAGCA
+>HWI-EAS91_1_306UPAAXX:6:1:1629:1865
+GAAAAGCGGCATGGTCAATATAACCAGTAGTGTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:1180:1920
+GCACTCCGTGGACAGATTTGTCATTGTGAGCATTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1116:383
+GCGCAGGAAACACTGACGTTCTTACTGACGCAGAAG
+>HWI-EAS91_1_306UPAAXX:6:1:906:2041
+GTCACGTTTATGGTGAACAGTGGATTAAGTTCATGA
+>HWI-EAS91_1_306UPAAXX:6:1:1514:157
+GTCAATAGATGTGGTAGAAGTCGTCATTTGGCGTGG
+>HWI-EAS91_1_306UPAAXX:6:1:1032:1857
+GCAATCGCCGCCAGTTAAATAGCTTGCAAAATACGT
+>HWI-EAS91_1_306UPAAXX:6:1:638:609
+GATTCTGTCAAAAACTGACGCGTTGGATGAGGAGAT
+>HWI-EAS91_1_306UPAAXX:6:1:74:750
+GATAATCACGAGTATCCTTTCCTTTATCATCTTCAT
+>HWI-EAS91_1_306UPAAXX:6:1:486:822
+GTTGACGATGTAGCTTTAGGTGTCTTTAAAACAGGT
+>HWI-EAS91_1_306UPAAXX:6:1:899:473
+GAACAGCATCGGACTCAGATAGTAATCCACGCTCTT
+>HWI-EAS91_1_306UPAAXX:6:1:1613:197
+GTGACATTCAGAAGGGTAATAAGAACGAACCATAAA
+>HWI-EAS91_1_306UPAAXX:6:1:326:1747
+GTTGAGGCTTTCGTTTATTGTACGCTTTGCTTTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1487:526
+GCAAAATACGTGGCCTTATGGTTACAGTATGCCCAT
+>HWI-EAS91_1_306UPAAXX:6:1:629:665
+GAAATGCAGCAGCAAGATAATCACGAGTATCCTTTC
+>HWI-EAS91_1_306UPAAXX:6:1:766:744
+GGCCGTCAACATACATATCACCATTATCGAACTCAA
+>HWI-EAS91_1_306UPAAXX:6:1:391:1771
+GTGGTTGATATTTTTCATGGTATTGATAAATCTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:591:1102
+GCTTTGCGTGACTATTTTCGTGATATTGTTCGTTTG
+>HWI-EAS91_1_306UPAAXX:6:1:917:664
+GCCATGATGGTGGTTATTATACCGTCAAGGACTGTG
+>HWI-EAS91_1_306UPAAXX:6:1:217:737
+GTTCAGTTGTTGCATTGGAATATTCAGTTTAAATTT
+>HWI-EAS91_1_306UPAAXX:6:1:1047:839
+GACCATTCAAAGGATAAACATCATAGGCAGTCGGGG
+>HWI-EAS91_1_306UPAAXX:6:1:558:1040
+GCCACCAGCAAGAGCAGAAGCAATACCGCCAGCAAT
+>HWI-EAS91_1_306UPAAXX:6:1:1207:524
+GCCAATACCATCAGCTTTACCGTCTTTCCAGAAATT
+>HWI-EAS91_1_306UPAAXX:6:1:708:1634
+GCCATTCAAGGCTCTAATGTTCCTAACCCTGATGAG
+>HWI-EAS91_1_306UPAAXX:6:1:576:1851
+GTGCTATGGCTAAAGCTGGTAAAGGACTTCTTGAAG
+>HWI-EAS91_1_306UPAAXX:6:1:906:460
+GTAGACATTTTTACTTTTTATGTCCCTCATCGTCAC
+>HWI-EAS91_1_306UPAAXX:6:1:693:1260
+GCGAAAGGTCGCAAAGTAAGAGCTTCTCGAGCTGCG
+>HWI-EAS91_1_306UPAAXX:6:1:1373:286
+GGACACTTCCTACAGGTAGCGTTGACCCTAATTTTG
+>HWI-EAS91_1_306UPAAXX:6:1:762:41
+GATACTTGGAACAATTTCTGGAAAGACGGTAAAGCT
+>HWI-EAS91_1_306UPAAXX:6:1:475:1091
+GTCACACAGTCCTTGACGGTATAATAACCACCATCT
+>HWI-EAS91_1_306UPAAXX:6:1:791:627
+GCCTCCGGTGGCATTCAAGGTGATGTGCTTGCTACC
+>HWI-EAS91_1_306UPAAXX:6:1:336:1791
+GAAGGAGTCGCCAGCGATAACCGGAGTAGTTGAAAT
+>HWI-EAS91_1_306UPAAXX:6:1:1483:943
+GCACGTAATTTTTGACGCACGTTTTCTTCTGCGTCT
+>HWI-EAS91_1_306UPAAXX:6:1:641:1071
+GATGGGCATACTGTAACCATAAGGCCACGTATTTTG
+>HWI-EAS91_1_306UPAAXX:6:1:196:755
+GAACGCCCTCTTAAGGATATTCGCGATGAGTATAAT
+>HWI-EAS91_1_306UPAAXX:6:1:463:1398
+GTCATAAGAGGTTTTACCTCCAAATGAAGAAATAAC
+>HWI-EAS91_1_306UPAAXX:6:1:1559:460
+GCTCACAATGACAAATCTGTCCACGGAGTGCTTAAT
+>HWI-EAS91_1_306UPAAXX:6:1:1625:1561
+GAGGAGTGGCATTAACACCATCCTTCATGAACTTAC
+>HWI-EAS91_1_306UPAAXX:6:1:1729:1588
+GCTGATAAAGGAAAGGATACTCGTGATTATCTTGCT
+>HWI-EAS91_1_306UPAAXX:6:1:945:393
+GGCCTCATCAGGGTTAGGAACATTAGAGCCTTGAAT
+>HWI-EAS91_1_306UPAAXX:6:1:298:1391
+GTAAAGTTAGACCAAACCATGAAACCAACATAAACA
+>HWI-EAS91_1_306UPAAXX:6:1:1270:1500
+GAATTACTACTGCTTGTTTACGAATTAAATATATGT
+>HWI-EAS91_1_306UPAAXX:6:1:481:1546
+GCTGGCATTCAGTCGGCGACTTCACGCCAGAATACG
+>HWI-EAS91_1_306UPAAXX:6:1:473:1729
+GTTCTTACTGACGCAGAAGAAAACGTGCGTCAAAAT
+>HWI-EAS91_1_306UPAAXX:6:1:801:1831
+GCTGAGGTTGACTTAGTTCATCAGCAAACGCAGAAT
+>HWI-EAS91_1_306UPAAXX:6:1:536:639
+GCCGACCCTAAATTTTTTGCCTGTTTGGTTCTCTTT
+>HWI-EAS91_1_306UPAAXX:6:1:259:938
+GTAGAGATTCTCTTGTTGACATTTTAAAAGAGCGTG
+>HWI-EAS91_1_306UPAAXX:6:1:907:1513
+GGCATGGGTGATGCTGGTATTAAATCTGCCATTCAC
+>HWI-EAS91_1_306UPAAXX:6:1:372:1409
+GATGAGTATAATTACCCCAAAAAGAAAGGTATTAAG
+>HWI-EAS91_1_306UPAAXX:6:1:485:1626
+GATGGCAGCAACGGAAACCATAACGAGCATCATCTT
+>HWI-EAS91_1_306UPAAXX:6:1:583:1679
+GCTCAAAGTCAAAATAATCAGCGTGACATTCAGAAG
+>HWI-EAS91_1_306UPAAXX:6:1:690:1610
+GACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:257:918
+GCAGGCTGGCACTTCTGCCGTTTCTGATAAGTTTCT
+>HWI-EAS91_1_306UPAAXX:6:1:818:33
+GTGTTAATGCCACTCCTCTCCCGACTGTTAACTCTG
+>HWI-EAS91_1_306UPAAXX:6:1:541:1242
+GGGATTATCATAAAACGCCTCTAATCGGTCGTCAGC
+>HWI-EAS91_1_306UPAAXX:6:1:1014:279
+GTAAAAATGTCTACAGTAGAGTCAATAGCAAGGCCC
+>HWI-EAS91_1_306UPAAXX:6:1:672:1790
+GGCCGTTTGAATGTTGACGGGATGAACATAATAAGC
+>HWI-EAS91_1_306UPAAXX:6:1:708:464
+GGAGACAAATAATCTCTTTAATAACCTGATTCAGCG
+>HWI-EAS91_1_306UPAAXX:6:1:633:1486
+GGGAAAGGTCATGCGGCATACGCTCGGCGCCAGTTT
+>HWI-EAS91_1_306UPAAXX:6:1:328:696
+GTTCCGACTACCCTCCCGACTGCCTATGATGTTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:259:1389
+GCGTACTTATTCGCCACCATGATTATTACCAGTGTT
+>HWI-EAS91_1_306UPAAXX:6:1:1315:41
+GCTTTCCGTGATGTCACAGCCTGCTTTGATGTGTCG
+>HWI-EAS91_1_306UPAAXX:6:1:1647:549
+GCTTAATCCAACTTACCAAGCTGGGTTACGACGCGC
+>HWI-EAS91_1_306UPAAXX:6:1:300:886
+GTTCTTGGTCAGTATGCAAATTAGCATAAGCAGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:317:1411
+GTACGCTGTACTTTGTGGGATACCCTCGCTTTCCTT
+>HWI-EAS91_1_306UPAAXX:6:1:321:1819
+GGCTTAATATGCTTGGCACGTTCGTCAAGGACTGGT
+>HWI-EAS91_1_306UPAAXX:6:1:631:70
+GTGGATTACTATCTGAGTCCGATGCTGTTCAACCAC
+>HWI-EAS91_1_306UPAAXX:6:1:624:1040
+GCTGGCGACTCCTTCGAGATGGACGCCGTTTGCGCT
+>HWI-EAS91_1_306UPAAXX:6:1:662:1187
+GGGAGAGGAGTGGCATTAACACCATCCTTCATGACC
+>HWI-EAS91_1_306UPAAXX:6:1:1440:1959
+GAATCAGCGGTATGGCTCCTCTCCTATTTTTGCTTC
+>HWI-EAS91_1_306UPAAXX:6:1:458:1629
+GCTGGTGGCGCCATGTCTAAATTTTTTGGAGGCGGT
+>HWI-EAS91_1_306UPAAXX:6:1:216:790
+GGGATGAAAATGCTCACAATGACAAATCTGTCCACG
+>HWI-EAS91_1_306UPAAXX:6:1:1407:1174
+TTACCTATTAGTGGTTGAACAGCATCGGACTCAGAT
+>HWI-EAS91_1_306UPAAXX:6:1:999:1790
+GTCCTGCGTGTAGCGAACTGCGATGGGCATACTGTC
+>HWI-EAS91_1_306UPAAXX:6:1:141:1994
+GGCTTTTTTATGGTTCGTTCTTATTACCCTTCTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:225:465
+GTCAGATATGGACCTTGCTGCTAAAGGTCTAGGAGC
+>HWI-EAS91_1_306UPAAXX:6:1:649:1760
+GACCCATAATGTCAATAGATGTGGTAGAAGTCGTCT
+>HWI-EAS91_1_306UPAAXX:6:1:300:986
+GTTGAACACGACCAGAAAACTGGCCTAACGACGTTT
+>HWI-EAS91_1_306UPAAXX:6:1:478:605
+GAGACTGAGCTTTCTCGCCAAATGACGACTTCTACC
+>HWI-EAS91_1_306UPAAXX:6:1:622:395
+GGTAGCTTTAAGCGGCTCACCTTTAGCATCAACAGG
+>HWI-EAS91_1_306UPAAXX:6:1:1701:574
+GTAAAGCCTCTACGCGATTTCATAGTGGAGGCCTCC
+>HWI-EAS91_1_306UPAAXX:6:1:646:59
+GGAAGTGTCCGCATAAAATGCACCGCATGGAAATGT
+>HWI-EAS91_1_306UPAAXX:6:1:284:2031
+GACAGAATCGTTAGTTGATGGCGAAAGGTCGCAAAG
+>HWI-EAS91_1_306UPAAXX:6:1:22:1009
+GATGGATACATCTGTCAACGCCGCTAATCAGGTTGT
+>HWI-EAS91_1_306UPAAXX:6:1:47:1826
+GCGCAGCTCGAGAAGCTCTTACTTTGCGACCTTTCG
+>HWI-EAS91_1_306UPAAXX:6:1:1025:1236
+TGGATGAGGAGAAGTGGCTTAATATGCTTGGCACGT
+>HWI-EAS91_1_306UPAAXX:6:1:773:591
+GAGCAGGAAAGCGAGGGTATCCCACAAAGTCCAGCG
+>HWI-EAS91_1_306UPAAXX:6:1:1753:527
+GGTGGCATTCAAGGTGATGTGCTTGCTACCGATAAC
+>HWI-EAS91_1_306UPAAXX:6:1:426:1717
+GTAGCGCCAATATGAGAAGAGCCATACCGCTGATTC
+>HWI-EAS91_1_306UPAAXX:6:1:959:818
+TTCTGATAAGCTGGTTCTCACTTCTGTTACTCCAGC
+>HWI-EAS91_1_306UPAAXX:6:1:459:1344
+GCCTATGATGTTTATCCTTTGAATGGTCGCCATGAT
+>HWI-EAS91_1_306UPAAXX:6:1:973:1367
+TTCGTGATGAGTTTGTATCTGTTACTGATAAGTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:201:871
+GATTAGAGGCGTTTTATGATAATCCCAATGCTTTTC
+>HWI-EAS91_1_306UPAAXX:6:1:713:1672
+GGCGTACGGGGAAGGACGTCAATAGTCACACAGTCC
+>HWI-EAS91_1_306UPAAXX:6:1:444:1435
+TTTGTGGGATACCCTCGCTTTCCTGCTCCTGTTGTG
+>HWI-EAS91_1_306UPAAXX:6:1:288:1136
+GCCTTCCATGATGAGACAGGCCGTTTTAATTTTTTC
+>HWI-EAS91_1_306UPAAXX:6:1:1653:225
+GCAAGGCCACGACGCAATGGAGAAAGACGGAGAGCG
+>HWI-EAS91_1_306UPAAXX:6:1:537:1764
+GCTCCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAA
+>HWI-EAS91_1_306UPAAXX:6:1:196:1854
+GTATCGAGGCTCTTAAACCTGCTATTTAGGCTTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:312:1707
+GCGTCATAAGAGGTTTTACCTCCAAATGAAGAAATA
+>HWI-EAS91_1_306UPAAXX:6:1:651:183
+GTATGTTTCTCCTGCTTATCACCTTCTTGAAGGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:295:694
+GTGATTACTTCATGCAGCGTTACCGTGATGTTATTT
+>HWI-EAS91_1_306UPAAXX:6:1:330:1895
+GCAAGTCTGCCGCTGATAAAGGAAAGGATACTCGTG
+>HWI-EAS91_1_306UPAAXX:6:1:590:331
+GAAATTTCTATGAATGATGTTTTCCGTTCTGGTGAT
+>HWI-EAS91_1_306UPAAXX:6:1:481:1687
+GCAGATTGCGATAAACGGTCACATTAAATTTAACCT
+>HWI-EAS91_1_306UPAAXX:6:1:1112:1279
+TGTGCATATACCTGGTCTTTCGTATTCTGTCGTGAT
+>HWI-EAS91_1_306UPAAXX:6:1:1099:1216
+TTAGAGCGCATGACAAGTAAAGGACGGTTGTCAGCG
+>HWI-EAS91_1_306UPAAXX:6:1:221:1238
+GTATCCTTTCCTTTATCATCGGCAGACTTTTCACCT
+>HWI-EAS91_1_306UPAAXX:6:1:1015:364
+GCCAGCGATAACCGGAGTAGTTGAAATGGTAATAAG
+>HWI-EAS91_1_306UPAAXX:6:1:735:1806
+TGTTATTAATATCAAGTTGGGGGAGCACATTGTAGC
+>HWI-EAS91_1_306UPAAXX:6:1:320:411
+GCTCTTGGAAGAGATTCTGTCTTTTCGTATGCAGTG
+>HWI-EAS91_1_306UPAAXX:6:1:1273:1031
+TTAAGGATATTCGCGATGAGTATAATTACCCCAAAA
+>HWI-EAS91_1_306UPAAXX:6:1:1456:1088
+AATAATCAGCGTGACATTCAGAAGGGTAATAAGAAC
+>HWI-EAS91_1_306UPAAXX:6:1:1365:307
+GACGGCCATAAGGCTGCTTCTGACGTTCGTGATGAG
+>HWI-EAS91_1_306UPAAXX:6:1:478:252
+GATGCGGTTATCCATCTGCTTATTGAAGCCAAGCAT
+>HWI-EAS91_1_306UPAAXX:6:1:915:1232
+TATTAATAACACTATAGACCACCGCCCCGAAGGGGC
+>HWI-EAS91_1_306UPAAXX:6:1:680:1357
+TTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGC
+>HWI-EAS91_1_306UPAAXX:6:1:238:1279
+GCCGAAGCCCCTGCAATTAAAATTGTTGACCACCTA
+>HWI-EAS91_1_306UPAAXX:6:1:1583:35
+GCAAATTAGCATAAGCAGCTTGCAGACCCATAATGT
+>HWI-EAS91_1_306UPAAXX:6:1:502:283
+GTTCCGACTACCCTCCCGACTGCCTATGATGTTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:418:1730
+GAAGGCTTCCCATTCATTCAGGAACCGCCTTCTGGT
+>HWI-EAS91_1_306UPAAXX:6:1:596:647
+GCCTCAACGCAGCGACGAGCACGAGAGCGGTCAGTA
+>HWI-EAS91_1_306UPAAXX:6:1:92:1591
+GTTCATGAAGGATGGTGTTAATGCCACTCCTCTCCC
+>HWI-EAS91_1_306UPAAXX:6:1:430:1938
+GCAGGACGCTTTTTCACGTTCTGGTTGGTTGTGTCC
+>HWI-EAS91_1_306UPAAXX:6:1:212:527
+GGTATTGATAAAGCTGTTGCCGATACTTGTAACAAT
+>HWI-EAS91_1_306UPAAXX:6:1:594:942
+GACGACATTAGAAATATCCTTTGCAGTAGCGCCAAT
+>HWI-EAS91_1_306UPAAXX:6:1:169:1774
+GCCTTCCATGATGAGACAGGCCGTTTTAATTTTTAC
+>HWI-EAS91_1_306UPAAXX:6:1:1090:210
+GGAGAGCGCCAACGGCGTCCATCTCGAAGGAGTCGC
+>HWI-EAS91_1_306UPAAXX:6:1:589:96
+GGCGGCCCCATCAGGGTTAGGAACATTAGAGCCTTG
+>HWI-EAS91_1_306UPAAXX:6:1:1477:1231
+TAGGAACATTAGAGCCTTGAATGGCAGATTTAATAC
+>HWI-EAS91_1_306UPAAXX:6:1:707:1076
+TCTGACGTTCGTGATGAGTTTGTATCTTTTTCTTTG
+>HWI-EAS91_1_306UPAAXX:6:1:749:1715
+GAACATAATAAGCAATGACGGCAGCAATAAACTCAA
+>HWI-EAS91_1_306UPAAXX:6:1:1738:1884
+GCTCACCTTTAGCATCAACAGGCCACAACCAACCAG
+>HWI-EAS91_1_306UPAAXX:6:1:1160:1088
+TCACATTTTGTTCATGGTAGAGATTCTCTTGTTGAC
+>HWI-EAS91_1_306UPAAXX:6:1:517:119
+GCAAGGCTAATGATTCACACGCCGACTGCTATCAGT
+>HWI-EAS91_1_306UPAAXX:6:1:1472:716
+TGGTAATGGTGGTTTTCTTCATTTCATTCAGTTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:281:441
+GAGCAGTAGACTCCTTCTGTTGATAAGCAAGCATCT
+>HWI-EAS91_1_306UPAAXX:6:1:1101:324
+AATACCATCAGCTTTACCGTCTTTCCAGAAATTGTT
+>HWI-EAS91_1_306UPAAXX:6:1:1225:1494
+TTCTCAAATCCGGCGTCAACCATACCAGCAGAGGAA
+>HWI-EAS91_1_306UPAAXX:6:1:1509:1025
+TTCTTGCTGCCGAGGGTCGCAAGGCTATTGTTTCAC
+>HWI-EAS91_1_306UPAAXX:6:1:592:510
+GATACCAATAAAATCCCTAAGCATTTGTTTCTGGTT
+>HWI-EAS91_1_306UPAAXX:6:1:324:1729
+GAACAAAGAAACGCGGCACAGAATGTTTATAGGTCT
+>HWI-EAS91_1_306UPAAXX:6:1:128:1925
+GGAACAACTCACTAAAAACCAAGCTGTCGCTACTTC
+>HWI-EAS91_1_306UPAAXX:6:1:786:893
+TACGGGGAAGGACGTCAATAGTCACACAGTCCTTGC
+>HWI-EAS91_1_306UPAAXX:6:1:248:955
+GCTACAATGTGCTCCCCCAACTTGATATTAATAACA
+>HWI-EAS91_1_306UPAAXX:6:1:388:1127
+GATATTGGTCGTATGGTTCTTGCTGCCTAGTGTCTC
+>HWI-EAS91_1_306UPAAXX:6:1:721:1156
+TCTGGTTGGTTGTGGCCTTTTTATGCTAAATGTTAG
+>HWI-EAS91_1_306UPAAXX:6:1:1564:1468
+TTACTTTTTATGTCCCTCATCGTCACGTTTATGTTG
+>HWI-EAS91_1_306UPAAXX:6:1:750:77
+GGCTCATTCTGATTCTGAACAGCTTCTTGGGAAGTA
+>HWI-EAS91_1_306UPAAXX:6:1:405:487
+GTTGGATTAAGCACTCCGTGGACAGATTTGTCATTT
+>HWI-EAS91_1_306UPAAXX:6:1:836:1204
+TTGCTTCTGCTCTTGCTTGTGGCGCCATGTCTAAAT
+>HWI-EAS91_1_306UPAAXX:6:1:224:1548
+GCTGCCGTCATTGCTTATTATGTTCATCCCTTCAAC
+>HWI-EAS91_1_306UPAAXX:6:1:931:1015
+TTAAGGTACTGAATCTCTTTAGTCGCAGTAGGCGGT
+>HWI-EAS91_1_306UPAAXX:6:1:329:579
+GTCCCTCATCGTCACGTTTATGGTGAACAGTGGATT
+>HWI-EAS91_1_306UPAAXX:6:1:260:1145
+GCTTGCGTTTATGGTACGCTGGACTTTTTGTGATAC
+>HWI-EAS91_1_306UPAAXX:6:1:1523:1253
+TTGGTAAAATACTGACCAGCCGTTTGAGCTTGAGTA
+>HWI-EAS91_1_306UPAAXX:6:1:326:1271
+GACCACTCGCGATTCAATCATGACTTCGTGATAAAT
+>HWI-EAS91_1_306UPAAXX:6:1:213:622
+GCACCTGTTTTACAGACACCTAAAGCTACATCGTCA
+>HWI-EAS91_1_306UPAAXX:6:1:274:712
+GCGGTCAAAAAGCCGCCTCCGGTGGCATTCAAGGTG
+>HWI-EAS91_1_306UPAAXX:6:1:1549:627
+TATGGTTCTTGCTGCCGAGGGTCGCAAGGCTAATGT
+>HWI-EAS91_1_306UPAAXX:6:1:1714:737
+TCTTTCGTATTCTGGCGTGAAGTCGCCGACTGAATG
+>HWI-EAS91_1_306UPAAXX:6:1:760:1217
+TACACGCAGGACGCTTTTTCACGTTCTGGTTGGTTT
+>HWI-EAS91_1_306UPAAXX:6:1:174:768
+GTTGGCTGACGACCGATTAGAGGCGTTTTTTTATAT
+>HWI-EAS91_1_306UPAAXX:6:1:172:1412
+GGTCGGCAGATTGCGATAAACGTTCACATTAAATTT
+>HWI-EAS91_1_306UPAAXX:6:1:1393:869
+TTCATCCCGTCAACATTCAAACGGCCTGTCTCATCT
+>HWI-EAS91_1_306UPAAXX:6:1:301:481
+GTTATAGATATTCAAATAACCCTGAAACAAATGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:648:1093
+TAACGCTGCATGAAGTAATCACGTTCTTGGTCAGTT
+>HWI-EAS91_1_306UPAAXX:6:1:1233:591
+TTCCCATCTTGGCTTCCTTGCTGGTCAGATTGGTCT
+>HWI-EAS91_1_306UPAAXX:6:1:540:1415
+TTATTAAAGAGATTATTTTTCTCCAGCCACTTATGT
+>HWI-EAS91_1_306UPAAXX:6:1:151:1792
+GCAAGCTGCTTATGCTAATTTGCATACTGACCAAGA
+>HWI-EAS91_1_306UPAAXX:6:1:748:1378
+TGGATTACTATCTGAGTCCGATGCTGTTCAACCACT
+>HWI-EAS91_1_306UPAAXX:6:1:1526:1479
+TGGTTGGTTGTGGCCTGTTGATGCTAAAGGTGAGCC
+>HWI-EAS91_1_306UPAAXX:6:1:985:1093
+TAACCGTCTTCTCGTTCTCTAAAAACCATTTTTCTT
+>HWI-EAS91_1_306UPAAXX:6:1:480:1378
+TCAACCTCAGCACTAACCTTGCGAGTCATTTCTTTG
+>HWI-EAS91_1_306UPAAXX:6:1:903:753
+TGTGGCCTGTTGATGCTAAAGGTGAGCCGCTTAAAG
+>HWI-EAS91_1_306UPAAXX:6:1:1697:1737
+GGCGACCCTGTTTTGTATGGCAACTTGCCGCCGCGT
+>HWI-EAS91_1_306UPAAXX:6:1:803:1037
+TGTTTGGTTCGCTTTGAGTCTTCTTCGGTTCCTACT
+>HWI-EAS91_1_306UPAAXX:6:1:1727:1244
+TTAATGCTTGGGAGCGTGCTGGTGCTGATGCTTCCT
+>HWI-EAS91_1_306UPAAXX:6:1:253:1162
+GCATTTAGTAGCGGTAAAGTTTGACCAAACCATTAT
+>HWI-EAS91_1_306UPAAXX:6:1:216:856
+GTCCGGTTAAAGCCGCTGAATTGTTCGCGTTTACCT
+>HWI-EAS91_1_306UPAAXX:6:1:825:886
+TCCCACAAAGTCCAGCGTACCATAAACGCAAGCCTC
+>HWI-EAS91_1_306UPAAXX:6:1:1699:962
+TGATTTCGATTTTCTGACGAGTAACAAAGTTTGGAT
+>HWI-EAS91_1_306UPAAXX:6:1:1210:625
+TCAGATAGTAATCCACGCTCTTTTAAAATGTCAACA
+>HWI-EAS91_1_306UPAAXX:6:1:538:616
+TAAAGGCAAGCGTAAAGGCGCTCGTCTTTGGTATGT
+>HWI-EAS91_1_306UPAAXX:6:1:184:1849
+GCTCACCTTTAGCATCAACAGGCCACAACCAACCAG
+>HWI-EAS91_1_306UPAAXX:6:1:1636:1103
+TATCTGACTTTTTGTTAACGTATTTAGCCACATAGA
+>HWI-EAS91_1_306UPAAXX:6:1:605:223
+GGTTATTTGAATATCTATAACAACTATTTTAAATCG
+>HWI-EAS91_1_306UPAAXX:6:1:256:1052
+GGTAAAGGACTTCTTGAAGGTACGTTGCAGTCTGGC
+>HWI-EAS91_1_306UPAAXX:6:1:300:1515
+GCCATGATGGTGGTTATTATACCGTCAAGGACTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1684:1320
+TGCTTGGCTTCCATAAGCAGATGGATAACCGCATCA
+>HWI-EAS91_1_306UPAAXX:6:1:1186:895
+TCAGATGGATACATCTGTCAACGCCGCTAATCAGGT
+>HWI-EAS91_1_306UPAAXX:6:1:1463:754
+TCACTTCTGTTACTCCAGCTTCTTCGGCACCTGTTT
+>HWI-EAS91_1_306UPAAXX:6:1:808:1053
+TGTCCACGGAGTGCTTAATCCAACTTACCAAGCTGG
+>HWI-EAS91_1_306UPAAXX:6:1:960:1218
+TTTCTAATGTCGTCACTGATGCTGCTTCTGTTGTTT
+>HWI-EAS91_1_306UPAAXX:6:1:521:1646
+GGAAAACGAACAAGCGCAAGAGTAAACATAGTGCCA
+>HWI-EAS91_1_306UPAAXX:6:1:289:1885
+GCCAGCGATAACCGGAGTAGTTGAAATGGTAATAAG
+>HWI-EAS91_1_306UPAAXX:6:1:471:170
+GGTCAGTTCCATCAACATCATAGCCAGATGCCCAGA
+>HWI-EAS91_1_306UPAAXX:6:1:828:754
+TTTGCGTGACTATTTTCGTGATATTGTTCGTATGGT
+>HWI-EAS91_1_306UPAAXX:6:1:924:1679
+TTTAATGTGACCGTTTATCGCAATCTGCCGACCACT
+>HWI-EAS91_1_306UPAAXX:6:1:837:901
+TGCATTTTAGTAAGCTCTTTTTGATTCTCAAATCCG
+>HWI-EAS91_1_306UPAAXX:6:1:543:16
+GCTTAATGCTTGGGAGCGTGCTGGTGCTGATGCTTC
+>HWI-EAS91_1_306UPAAXX:6:1:1482:578
+TCTTTAGCTCCTAGACCTTTAGCAGCAAGGTCCATA
+>HWI-EAS91_1_306UPAAXX:6:1:1254:1668
+TTATGCGCCTTCGTATGTTTCTCCTGCTTATCACCT
+>HWI-EAS91_1_306UPAAXX:6:1:1402:898
+TCATGAGTCAAGTTACTGAACAATCCGTACGTTTCC
+>HWI-EAS91_1_306UPAAXX:6:1:764:1534
+TTATACCGTCAAGGACTGTGTGACTATTGACGTCCT
+>HWI-EAS91_1_306UPAAXX:6:1:681:1079
+TGGCGAATAAGTACGCGTTCTTGCAAATCACCAGAA
+>HWI-EAS91_1_306UPAAXX:6:1:672:1350
+TTGCGCAGCTCGAGAAGCTCTTACTTTGCGACCTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1266:493
+TGACCAGCCGTTTGAGCTTGAGTAAGCATTTGGCGC
+>HWI-EAS91_1_306UPAAXX:6:1:118:238
+GACGGTATAATAACCACCATCATGGCGACCATTCAA
+>HWI-EAS91_1_306UPAAXX:6:1:699:433
+TTATTGCCCGGCGTACGGGGAAGGACGTCAATAGTC
+>HWI-EAS91_1_306UPAAXX:6:1:708:1387
+TGCTTCTGACGTTCGTGATGAGTTTGTATCTGTTAC
+>HWI-EAS91_1_306UPAAXX:6:1:498:1085
+TTATGATAATCCCAATGCTTTGCGTGACTATTTTCT
+>HWI-EAS91_1_306UPAAXX:6:1:1101:1301
+TCCGTACGTTTCCAGACCGCTTTGGCCTCTATTAAT
+>HWI-EAS91_1_306UPAAXX:6:1:261:213
+GAATGGTCGCCATGATGGTGGTTATTATACCGTCAC
+>HWI-EAS91_1_306UPAAXX:6:1:1287:1267
+TGCTACTGACCGCTCTCGTGCTCGTCGCTGCGTTGT
+>HWI-EAS91_1_306UPAAXX:6:1:744:331
+TTAATGGATGAATTGGCACAATGCTACAATGTGCTC
+>HWI-EAS91_1_306UPAAXX:6:1:614:814
+TGTCAGCGTCATAAGAGGTTTTACCTCCAAATGAAG
+>HWI-EAS91_1_306UPAAXX:6:1:1362:1063
+TAAACGCAAGCCTCAACGCAGCGACGAGCACGAGAG
+>HWI-EAS91_1_306UPAAXX:6:1:1238:1508
+TCAACTAACGATTCTGTCAAAAACTGACGCGTTGGT
+>HWI-EAS91_1_306UPAAXX:6:1:904:1130
+TTATCGCAATCTGCCGACCACTCGCGATTCAATCAT
+>HWI-EAS91_1_306UPAAXX:6:1:465:216
+GACCATGCCGCTTTTCTTGGCACGATTAACCCTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:844:628
+TAATGTCAATAGATGTGGTAGAAGTCGTCATTTGGC
+>HWI-EAS91_1_306UPAAXX:6:1:684:1444
+TATCCCACAAAGTCCAGCGTACCATAAACGCAAGCC
+>HWI-EAS91_1_306UPAAXX:6:1:515:1373
+TAAGTTCATGAAGGATGGTGTTAATGCCACTCCTCT
+>HWI-EAS91_1_306UPAAXX:6:1:764:1667
+TTGAGTTCGATAATGGTGATATGTATGTTGACGTCC
+>HWI-EAS91_1_306UPAAXX:6:1:1722:598
+TGAGTTTATTGCTGCCGTCATTGCTTATTATGTTCT
+>HWI-EAS91_1_306UPAAXX:6:1:670:1188
+TTCTGTCAAAAACTGACGCGTTGGATGAGGAGAAGT
+>HWI-EAS91_1_306UPAAXX:6:1:1682:1705
+TAGCCACATAGAAACCAACAGCCATATAACTGGTAG
+>HWI-EAS91_1_306UPAAXX:6:1:1008:1616
+TCCTTTACTTGTCATGCGCTCTAATCTCTGTGCATC
+>HWI-EAS91_1_306UPAAXX:6:1:490:1220
+TAAAAATTTTAATTTTTGCCGCTGAGGGGTTGACCT
+>HWI-EAS91_1_306UPAAXX:6:1:891:1437
+TAATGGTGATATGTATGTTTACGTCCATAAGGCTGT
+>HWI-EAS91_1_306UPAAXX:6:1:1310:321
+TCAATCCCCAATGCTTGGCTTCCATAAGCAGATGGT
+>HWI-EAS91_1_306UPAAXX:6:1:827:1597
+TGCGAGGTACTAAAGGCAAGCGTAAAGGCGCTCGTC
+>HWI-EAS91_1_306UPAAXX:6:1:1062:1158
+TAGAGTCAATAGCAAGGCCACGACGCAATGGAGAAA
+>HWI-EAS91_1_306UPAAXX:6:1:1419:208
+TGGCGCATAATCTCGGAAACCTGCTGTTGCTTGGAA
+>HWI-EAS91_1_306UPAAXX:6:1:691:1018
+AAATATCAACCACACCAGAAGCAGCATCAGTGACGA
+>HWI-EAS91_1_306UPAAXX:6:1:374:113
+GATAAAGCTGTTGCCGATACTTGGAACAATTTCTGT
+>HWI-EAS91_1_306UPAAXX:6:1:1720:784
+TGAGGATAAATTATGTCTAATATTCAAACTGGCGCC
+>HWI-EAS91_1_306UPAAXX:6:1:1424:1394
+ATAAAAATGATTGGCGTATCCAACCTGCAGAGTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1063:1760
+TAGTTCATCAGCAAACGCAGAATCAGCGGTATGGCT
+>HWI-EAS91_1_306UPAAXX:6:1:1235:729
+TTTTTATGTCCCTCATCGTCACGTTTATGGTGAACA
+>HWI-EAS91_1_306UPAAXX:6:1:167:1507
+TAGTGTTATTAATATCAAGTTTTTGGAGCACATTGT
+>HWI-EAS91_1_306UPAAXX:6:1:717:1569
+TCAGGAACCGCCTTCTGGTGATTTGCAAGAACGCGT
+>HWI-EAS91_1_306UPAAXX:6:1:610:765
+TTCAGCGCCTTCCATGATGAGACAGGCCGTTTGAAT
+>HWI-EAS91_1_306UPAAXX:6:1:663:380
+TAAACATTCTGTGCCGCGTTTCTTTGTTCCTTATCT
+>HWI-EAS91_1_306UPAAXX:6:1:790:1358
+TTATCACCTTATTGAAGGCTTATCATTCATTTAGGT
+>HWI-EAS91_1_306UPAAXX:6:1:965:1633
+TAGATGTGGTAGAAGTCGTCATTTGGCGAGAAAGCT
+>HWI-EAS91_1_306UPAAXX:6:1:673:319
+TTCTTGCAAATCACCAGAAGGCGGTTCCTGAATGAT
+>HWI-EAS91_1_306UPAAXX:6:1:684:371
+TAGCGGTAAAGTTAGACCAAACCATGAAACCAACAT
+>HWI-EAS91_1_306UPAAXX:6:1:1147:1444
+ATCTGTCCACGGAGTGCTTAATCCAACTTACCAAGC
+>HWI-EAS91_1_306UPAAXX:6:1:983:678
+ATACCTGGTCTTTCGTATTCTGGCGTGAAGTCGCCG
+>HWI-EAS91_1_306UPAAXX:6:1:1608:1119
+TCACGCGGCGGCAAGTTGCCATACAAAACAGGGTCG
+>HWI-EAS91_1_306UPAAXX:6:1:1048:1193
+TAGTCAGGTTAAATTTAATGTGACCGTTTATCGCAT
+>HWI-EAS91_1_306UPAAXX:6:1:1265:1429
+ATATTTTTCATGGTATTGATAAAGCTGTTGCCGATT
+>HWI-EAS91_1_306UPAAXX:6:1:1607:1677
+TGTTGCTTGGAAAGATTGGTGTTTTCCATAATAGAC
+>HWI-EAS91_1_306UPAAXX:6:1:1087:1421
+ACGAACGTCAGAAGCAGCCTTATGGCCGTCAACATC
+>HWI-EAS91_1_306UPAAXX:6:1:324:490
+GCACCAAACATAAATCACCTCACTTAAGTGGCTGGG
+>HWI-EAS91_1_306UPAAXX:6:1:1596:614
+TTACCGCTACTAAATGCCGCGGATTGGTTTCGCTGT
+>HWI-EAS91_1_306UPAAXX:6:1:343:83
+GTTACGCAGTTTTGCCGCAAGCTGGCTGCTGTACGC
+>HWI-EAS91_1_306UPAAXX:6:1:203:667
+GCATGAATGTGCTTAATAGAGGCCAAGGCGGTCTAG
+>HWI-EAS91_1_306UPAAXX:6:1:34:480
+GGCAAGTTGCCATACAAAACAGGGTCGCCAGCAATT
+>HWI-EAS91_1_306UPAAXX:6:1:606:1743
+TAGCGACAGCTTGGTTTTTAGTGAGTTGTTCCATTC
+>HWI-EAS91_1_306UPAAXX:6:1:254:1391
+TATAATTACCCCAAAAAGAAAGGTATTAAGGATGAG
+>HWI-EAS91_1_306UPAAXX:6:1:1568:1750
+TAACCAGTAGTGTTAACAGTCGGGAGAGGAGTGGCT
+>HWI-EAS91_1_306UPAAXX:6:1:1538:869
+TACCCCAAAAAGAAAGGTATTAAGGATGAGTGTTCA
+>HWI-EAS91_1_306UPAAXX:6:1:255:38
+GTCAGGATTGACACCCTCCCAATTGTATGTTTTCAT
+>HWI-EAS91_1_306UPAAXX:6:1:1543:1555
+TAAAACGCCTCTAATCGGTCGTCAGCCAACGTGAGG
+>HWI-EAS91_1_306UPAAXX:6:1:1365:733
+AGAATCAGCGGTATGGCTCTTCTCCTTTTTTCGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:1604:943
+TACTTGTCATGCGCTCTAATCTCTGGGCATCTGGCT
+>HWI-EAS91_1_306UPAAXX:6:1:1574:1632
+TCAGTATGCAAATTAGCATAAGCAGCTTGCAGACCC
+>HWI-EAS91_1_306UPAAXX:6:1:565:1799
+TCTTGGTCAGTATGCAAATTAGCATAAGCAGCTTGC
+>HWI-EAS91_1_306UPAAXX:6:1:1004:380
+TATTGACTCTACTGTAGACATTTTTACTTTTTATTT
+>HWI-EAS91_1_306UPAAXX:6:1:1345:965
+ATTCAAAGGATAAACATCATAGGCAGTCGGGAGGGT
+>HWI-EAS91_1_306UPAAXX:6:1:1704:756
+TGGTAAAGGACTTCTTGAAGGTACGTTGCAGGCTGG
+>HWI-EAS91_1_306UPAAXX:6:1:310:1346
+TATAACGTTGACGATGTAGCTTTAGTTTTCTTTAAA
+>HWI-EAS91_1_306UPAAXX:6:1:900:1858
+TTTACCGCTTCGGCGTTATAACCTCACACTCAATCT
+>HWI-EAS91_1_306UPAAXX:6:1:1250:1741
+TAAATCCAAAACGGCAGAAGCCTGAATGAGCTTAAT
+>HWI-EAS91_1_306UPAAXX:6:1:1170:1317
+TCAAACTGGCGCCGAGCGTATGCCGCATGACCTTTC
+>HWI-EAS91_1_306UPAAXX:6:1:149:1896
+GCTCGAGAAGCTCTTACTTTGCGACCTTTCGCCATC
+>HWI-EAS91_1_306UPAAXX:6:1:1504:494
+TGTCTACAGTAGAGTCAATAGCAAGGCCACGACGCC
+>HWI-EAS91_1_306UPAAXX:6:1:395:256
+GTCCATATCTGACTTTTTGTTAACGTATTTATCCAC
+>HWI-EAS91_1_306UPAAXX:6:1:1110:1109
+ACCGCTTCGGCGTTATAACCTCACACTCAATCTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:895:649
+TTCTGCACGTAATTTTTGACGCACGTTTTCTTCTGC
+>HWI-EAS91_1_306UPAAXX:6:1:827:1378
+TGCAAGCTGCTTATGCTAATTTGCATACTGACCAAG
+>HWI-EAS91_1_306UPAAXX:6:1:1051:1587
+TTTGACACTCTCACGTTGGCTGACGACCGATTAGAG
+>HWI-EAS91_1_306UPAAXX:6:1:1656:1549
+AACCTGCTGTTGCTTGGAAAGATTGGTGTTTTCCAT
+>HWI-EAS91_1_306UPAAXX:6:1:366:150
+GGTCAGTAGCAATCCAAACTTTGTTACTCGTCAGAA
+>HWI-EAS91_1_306UPAAXX:6:1:955:1792
+ATTAAGCTCATTCAGGCTTCTGCCGTTTTGGATTTA
+>HWI-EAS91_1_306UPAAXX:6:1:1340:1403
+ATAAAATGCACCGCATGGAAATGAAGACGGCCATTA
+>HWI-EAS91_1_306UPAAXX:6:1:1693:1017
+TGAGTTTGTATCTGTTACTGAGAAGTTAATGGATGT
+>HWI-EAS91_1_306UPAAXX:6:1:1099:1572
+AATTTTTACCGCTTCGGCGTTATAACCTCACACTCA
+>HWI-EAS91_1_306UPAAXX:6:1:218:1148
+TATGCAAATTAGCATAAGCAGCTTGCAGACCCATAT
+>HWI-EAS91_1_306UPAAXX:6:1:403:614
+TGGTGCTGATGCTTCCTCTGCTGGTATGGTTTACGC
+>HWI-EAS91_1_306UPAAXX:6:1:1651:646
+TCAAGCTCTTGGAAGAGATTCTGTCTTTTCGTATGC
+>HWI-EAS91_1_306UPAAXX:6:1:1566:499
+TGCGGTGCATTTTATGCGGACACTTCCTACAGGTAG
+>HWI-EAS91_1_306UPAAXX:6:1:825:951
+ACAGGCCGTTTGAATGTTTACGGGGTGTACATAATA
+>HWI-EAS91_1_306UPAAXX:6:1:1745:1865
+TTAACTTCTGCGTCATGGAAGCGATAAAACTCTGCG
+>HWI-EAS91_1_306UPAAXX:6:1:973:1992
+TAGTAATTCCTGCTTTATCAAGATAATTTTTCGACT
+>HWI-EAS91_1_306UPAAXX:6:1:171:1653
+TAATAATGTTTTCCGTAAATTCAGCGCCTTCCATGT
+>HWI-EAS91_1_306UPAAXX:6:1:397:363
+TGAGGAGAAGTGGCTTAATATGCTTGGCACGTTCGT
+>HWI-EAS91_1_306UPAAXX:6:1:1336:1155
+ATATGTATGTTGACGGCCATAAGGCTGCTTCTGACG
+>HWI-EAS91_1_306UPAAXX:6:1:685:629
+AGTATGCAAATTAGCATAAGCAGCTTGCAGACCCAT
+>HWI-EAS91_1_306UPAAXX:6:1:1409:510
+ACATAATAAGCAATGACGGCAGCAATAAACTCAACA
+>HWI-EAS91_1_306UPAAXX:6:1:1631:998
+AACCATCAGCATGAGCCTGTCGCATTGCATTCATCC
+>HWI-EAS91_1_306UPAAXX:6:1:260:1698
+TTATTATGTTCATCCCGTCAACATTCAAACTGCCTT
+>HWI-EAS91_1_306UPAAXX:6:1:578:971
+TTAACGCTACTAAATTCCGCGGATTGGTTTCGTTGT
+>HWI-EAS91_1_306UPAAXX:6:1:1613:642
+ATAGAAATTTCACGCGGCGGCAAGTTGCCATACAAA
+>HWI-EAS91_1_306UPAAXX:6:1:237:650
+GACGGTATAATAACCACCATCATGGCGACCATTCAA
+>HWI-EAS91_1_306UPAAXX:6:1:1100:1875
+TTATGGTTCGTTCTTATTACCCTTCTGAATGTCACG
+>HWI-EAS91_1_306UPAAXX:6:1:352:32
+GTACCATAAACGCAAGCCTCAACGCAGCGACGAGCC
+>HWI-EAS91_1_306UPAAXX:6:1:443:229
+GCAGTAGGCGGAAAACGAACAAGCGCAAGAGTAAAC
+>HWI-EAS91_1_306UPAAXX:6:1:1131:731
+AGCAGTCGGCGTGTGAATCATTAGCCTTGCGACCCT
+>HWI-EAS91_1_306UPAAXX:6:1:133:1089
+AAGGTTAGTGCTGAGGTTGACTTAGTTCATCATCAA
+>HWI-EAS91_1_306UPAAXX:6:1:65:1307
+TGTGGGATACCCTCGCTTTCCTGCTCCTGTTGAGTT
+>HWI-EAS91_1_306UPAAXX:6:1:905:1493
+TCAGCTTTACCGTCTTTCCAGAAATTGTTCCAAGTT
+>HWI-EAS91_1_306UPAAXX:6:1:733:540
+TGCCGCGGATTGGTTTCGCTGAATCAGGTTATTAAT
+>HWI-EAS91_1_306UPAAXX:6:1:161:1707
+TAATGTCGTCACTGATGCTGCTTCTGTTGTTGTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:380:1861
+TCTGGGCATCTGGCTATGATGTTGATGGAACTGACC
+>HWI-EAS91_1_306UPAAXX:6:1:1761:566
+TATTGGTCGTATGGTTCTTGCTGCCGAGGGTCGCAT
+>HWI-EAS91_1_306UPAAXX:6:1:1486:651
+TGGCGGTATTTCTTCTTCTCTTTCTTGTTGCGCCCT
+>HWI-EAS91_1_306UPAAXX:6:1:508:1380
+TCCATCAACATCATAGCCAGATGCCCAGAGATTAGA
+>HWI-EAS91_1_306UPAAXX:6:1:1763:855
+TGTTTTGTATGGCAACTTGCCGCCGCGTGAAATTTC
+>HWI-EAS91_1_306UPAAXX:6:1:1553:553
+TAATTGCAGGGGCTTCGGCCCCTTACTTGAGGATAA
+>HWI-EAS91_1_306UPAAXX:6:1:1424:507
+TCCACTGCAACAACTGAACGGACTGGAAACACTGGT
+>HWI-EAS91_1_306UPAAXX:6:1:988:135
+TAAGCTGGTTCTCACTTCTGTTACTCCAGCTTCTTC
+>HWI-EAS91_1_306UPAAXX:6:1:810:1918
+TTTTCATCCCGAAGTTGCGGCTCATTCTGATTCTGT
+>HWI-EAS91_1_306UPAAXX:6:1:588:559
+TCTGGTTGAACGGCGTCGCGTCGTAACCCAGCTTGG
+>HWI-EAS91_1_306UPAAXX:6:1:1264:1214
+ATCAGGTTATTAAAGAGATTATTTGTCTCCAGCCAC
+>HWI-EAS91_1_306UPAAXX:6:1:1000:1475
+TCCGTTCTGGTGATTCGTCTAAGAAGTTTAAGATTG
+>HWI-EAS91_1_306UPAAXX:6:1:1389:160
+TTATTCGCCACCATGATTATGACCAGTGTTTCCAGT
+>HWI-EAS91_1_306UPAAXX:6:1:422:1296
+TTCAACTACTCCGGTTATCGCTGGCGACTCCTTCGT
+>HWI-EAS91_1_306UPAAXX:6:1:1273:856
+TAGCCATAGCACCAGAAACAAAACTAGGGGCGGCCT
+>HWI-EAS91_1_306UPAAXX:6:1:450:969
+TGTTTTCCATAATAGACGCAACGCGAGCAGTAGACT
+>HWI-EAS91_1_306UPAAXX:6:1:1202:828
+ATCGTCAACGTTATATTTTGATAGTTTGACGTTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:1721:1800
+GGGTTAGGGACATTAGAGCCTTGACTGACTGAGTTT
+>HWI-EAS91_1_306UPAAXX:6:1:228:2019
+TTGAGTAAGCATTTGGCGCATAATCTCGGAAACCTG
+>HWI-EAS91_1_306UPAAXX:6:1:1579:1214
+ACGTTTGGTCAGTTCCATCAACATCATAGCCAGATG
+>HWI-EAS91_1_306UPAAXX:6:1:429:1055
+TTTTGCCTGTTTGGTTCGCTTTGAGTCTTCTTCTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1359:1689
+AAGAGCAGAAGCAATACCGCCAGCAATAGCACCAAA
+>HWI-EAS91_1_306UPAAXX:6:1:1474:1056
+TCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGAC
+>HWI-EAS91_1_306UPAAXX:6:1:105:1818
+TTGGGGATTGAGAAAGAGTAGAAATGCCACAAGCCT
+>HWI-EAS91_1_306UPAAXX:6:1:208:1538
+TAAAATGCAACTGGACAATCAGAAAGAGATTGCCGA
+>HWI-EAS91_1_306UPAAXX:6:1:1361:1623
+AATCCGTACGTTTCCAGACCGCTTTGGCCTCTATTA
+>HWI-EAS91_1_306UPAAXX:6:1:595:1670
+TGAATCTCTTTAGTCGCAGTAGGCGGAAAACGAACA
+>HWI-EAS91_1_306UPAAXX:6:1:6:1885
+TCTAATGTCGTCACTGATGCTGCTTCTGGTGTGTTT
+>HWI-EAS91_1_306UPAAXX:6:1:706:1085
+TGGTTCGTTCTTATTACCCTTCTGAATGTCACGCTG
+>HWI-EAS91_1_306UPAAXX:6:1:1307:825
+AGCGGTAAAGTTAGACCAAACCATGAAACCAACATA
+>HWI-EAS91_1_306UPAAXX:6:1:762:802
+TGGCATTAACACCATCCTTCATGAACTTAATCCACT
+>HWI-EAS91_1_306UPAAXX:6:1:1657:506
+TTGCGACCCTCGGCAGCAAGAACCATACGACCAATT
+>HWI-EAS91_1_306UPAAXX:6:1:184:811
+TTCTGATAAGCTGGTTCTCACTTCTGTTACTCCAGC
+>HWI-EAS91_1_306UPAAXX:6:1:1469:1718
+TGACCGCTCTCGTGCTCGTCGCTGCGTTGAGGCTTT
+>HWI-EAS91_1_306UPAAXX:6:1:815:1640
+TGGCGGCGATTGCGTACCCGACGACCCAAATTAGGG
+>HWI-EAS91_1_306UPAAXX:6:1:1580:1388
+AAGGCTTCCCATTCATTCAGGAACCGCCTTCTGGTG
+>HWI-EAS91_1_306UPAAXX:6:1:1617:1554
+TACGGGGAAGGACGTCAATAGTCACACAGTCCTTGA
+>HWI-EAS91_1_306UPAAXX:6:1:1544:431
+TGATGCTAAAGGTGAGCCGCTTAAAGCTACCAGTTA
+>HWI-EAS91_1_306UPAAXX:6:1:1604:1541
+TCAGTGACGACATTAGAAATATCCTTTGCAGTAGCG
+>HWI-EAS91_1_306UPAAXX:6:1:1485:741
+ATCAAACGCTGAATAGTAAAGCCTCTACGCGATTTC
+>HWI-EAS91_1_306UPAAXX:6:1:1226:393
+TGCCACAAGCCTCAATAGCAGGTTTAAGAGCCTCGA
+>HWI-EAS91_1_306UPAAXX:6:1:1506:973
+ATTAGGGTCAACGCTACCTGTAGGAAGTGTCCGCAT
+>HWI-EAS91_1_306UPAAXX:6:1:890:1838
+TGTCTAATATTCAAACTGGCGCCGAGCGTATGCCGC
+>HWI-EAS91_1_306UPAAXX:6:1:453:1527
+TAAGAGGGCGTTCAGCAGCCAGCTTGCGGCAAAACT
+>HWI-EAS91_1_306UPAAXX:6:1:1056:570
+ACATTGTAGCATTGTGCCAATTCATCCATTAACTTC
+>HWI-EAS91_1_306UPAAXX:6:1:1736:74
+TATCCGAAAGTGTTAACTTCTGCGTCATGGAAGCGT
+>HWI-EAS91_1_306UPAAXX:6:1:169:1896
+GTATGCAAATTAGCATAAGCAGCTTGCAGACCCATA
+>HWI-EAS91_1_306UPAAXX:6:1:259:949
+TGAGGATAAATTATGTCTAATATTCAAACTTGCTCC
+>HWI-EAS91_1_306UPAAXX:6:1:1205:893
+ATTTCTGGAAAGACGGTAAAGCTGATGGTATTGGCT
+>HWI-EAS91_1_306UPAAXX:6:1:732:1335
+TACTCGTGATTATCTTGCTGCTGCATTTCCTGAGCT
+>HWI-EAS91_1_306UPAAXX:6:1:667:664
+TCTGAGTCCGATGCTGTTCAACCACTAATAGGTAAG
+>HWI-EAS91_1_306UPAAXX:6:1:535:587
+TTAGAGGCGTTTTATGATAATCCCAATGCTTTGCGT
+>HWI-EAS91_1_306UPAAXX:6:1:412:446
+GTGTGGTTGATATTTTTCATGGTATTGATAAAGCTT
+>HWI-EAS91_1_306UPAAXX:6:1:507:1599
+TTGCTGGCGGTTTTTCTTTTTTTTTTTTTTTTTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:575:1818
+TAAAATGCACCGCATGGAAATGAAGACGGCCATTAG
+>HWI-EAS91_1_306UPAAXX:6:1:1568:1428
+ACCAGTTATATGGCTGGTTGTTTTTTTTTTTTTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:1417:982
+AACAAGAGAATCTCTACCATGAACAAAATGTGACTC
+>HWI-EAS91_1_306UPAAXX:6:1:280:1340
+GGCCAAACCAGTGGCGATGGCCGCGCTGGAGGTTTT
+>HWI-EAS91_1_306UPAAXX:6:1:966:144
+TACTAAATGCCGCGGATTGGTTTCGCTGAATCAGGT
+>HWI-EAS91_1_306UPAAXX:6:1:1391:1987
+TAATAATGTTTTCCGTAAATTCAGCGCCTTCCATGT
+>HWI-EAS91_1_306UPAAXX:6:1:1280:278
+ATGGAAATGAAGACGGCCATTAGCTGTACCATACTC
+>HWI-EAS91_1_306UPAAXX:6:1:631:858
+TGATATTGGTCGTATGGTTCTTGCTTCCGTGGGTCT
+>HWI-EAS91_1_306UPAAXX:6:1:518:573
+TTAGGTGTCTGTAAAACAGGTGCCGAAGAAGCTGGT
+>HWI-EAS91_1_306UPAAXX:6:1:54:981
+TTGACATTTTAAAAGAGCGTGGATTACTATCTGATT
+>HWI-EAS91_1_306UPAAXX:6:1:218:1165
+TATTGACTCTACTGTAGACATTTTTACTTTTTATTT
+>HWI-EAS91_1_306UPAAXX:6:1:1727:1530
+TCAACGCAGCGACGAGCACGAGAGCGGTCAGTAGCA
+>HWI-EAS91_1_306UPAAXX:6:1:519:657
+TGAACAGCATCGGACTCAGATAGTAATCCACGCTCT
+>HWI-EAS91_1_306UPAAXX:6:1:939:967
+ATACCGTCAAGGACTGTGTGACTATTGACGTCCTTC
+>HWI-EAS91_1_306UPAAXX:6:1:299:1060
+TATAACTGGTAGCTTTAAGCGGCTCACCTTTAGCAT
+>HWI-EAS91_1_306UPAAXX:6:1:438:665
+TAATTCGTAAACAAGCAGTAGTAATTCCTGCTTTAT
+>HWI-EAS91_1_306UPAAXX:6:1:1303:1971
+AGCATTGTGCCAATTCATCCATTAACTTCTCAGTAA
+>HWI-EAS91_1_306UPAAXX:6:1:214:1264
+TCAGCACCAACAGAAACAACCTGATTAGCGGCGTTG
+>HWI-EAS91_1_306UPAAXX:6:1:1454:1423
+AACGGAAAACATCCTTCATAGAAATTTCACGCGGCG
+>HWI-EAS91_1_306UPAAXX:6:1:1633:340
+TTCCATAATAGACGCAACGCGAGCAGTAGACTCCTT
+>HWI-EAS91_1_306UPAAXX:6:1:671:1196
+ATACGAAAAGACAGAATCTCTTCCAAGAGCTTGATG
diff -r b6ff467f4522 -r 26825f08d362 test-data/phiX.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/phiX.fa Sun Sep 14 14:58:50 2008 -0400
@@ -0,0 +1,79 @@
+>phiX
+GAGTTTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGAGTCGAAAAATTATCTT
+GATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGGACTGCTGGCGGAAAATGAGAAA
+ATTCGACCTATCCTTGCGCAGCTCGAGAAGCTCTTACTTTGCGACCTTTCGCCATCAACTAACGATTCTG
+TCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGCACGTTCGTCAAGGACTGGTTTA
+GATATGAGTCACATTTTGTTCATGGTAGAGATTCTCTTGTTGACATTTTAAAAGAGCGTGGATTACTATC
+TGAGTCCGATGCTGTTCAACCACTAATAGGTAAGAAATCATGAGTCAAGTTACTGAACAATCCGTACGTT
+TCCAGACCGCTTTGGCCTCTATTAAGCTCATTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTT
+CGATTTTCTGACGAGTAACAAAGTTTGGATTGCTACTGACCGCTCTCGTGCTCGTCGCTGCGTTGAGGCT
+TGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCTCCTGTTGAGTTTATTGCTGCCG
+TCATTGCTTATTATGTTCATCCCGTCAACATTCAAACGGCCTGTCTCATCATGGAAGGCGCTGAATTTAC
+GGAAAACATTATTAATGGCGTCGAGCGTCCGGTTAAAGCCGCTGAATTGTTCGCGTTTACCTTGCGTGTA
+CGCGCAGGAAACACTGACGTTCTTACTGACGCAGAAGAAAACGTGCGTCAAAAATTACGTGCGGAAGGAG
+TGATGTAATGTCTAAAGGTAAAAAACGTTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACT
+AAAGGCAAGCGTAAAGGCGCTCGTCTTTGGTATGTAGGTGGTCAACAATTTTAATTGCAGGGGCTTCGGC
+CCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCGCCGAGCGTATGCCGCATGACCTTTCCCA
+TCTTGGCTTCCTTGCTGGTCAGATTGGTCGTCTTATTACCATTTCAACTACTCCGGTTATCGCTGGCGAC
+TCCTTCGAGATGGACGCCGTTGGCGCTCTCCGTCTTTCTCCATTGCGTCGTGGCCTTGCTATTGACTCTA
+CTGTAGACATTTTTACTTTTTATGTCCCTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAA
+GGATGGTGTTAATGCCACTCCTCTCCCGACTGTTAACACTACTGGTTATATTGACCATGCCGCTTTTCTT
+GGCACGATTAACCCTGATACCAATAAAATCCCTAAGCATTTGTTTCAGGGTTATTTGAATATCTATAACA
+ACTATTTTAAAGCGCCGTGGATGCCTGACCGTACCGAGGCTAACCCTAATGAGCTTAATCAAGATGATGC
+TCGTTATGGTTTCCGTTGCTGCCATCTCAAAAACATTTGGACTGCTCCGCTTCCTCCTGAGACTGAGCTT
+TCTCGCCAAATGACGACTTCTACCACATCTATTGACATTATGGGTCTGCAAGCTGCTTATGCTAATTTGC
+ATACTGACCAAGAACGTGATTACTTCATGCAGCGTTACCATGATGTTATTTCTTCATTTGGAGGTAAAAC
+CTCTTATGACGCTGACAACCGTCCTTTACTTGTCATGCGCTCTAATCTCTGGGCATCTGGCTATGATGTT
+GATGGAACTGACCAAACGTCGTTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGC
+CGCGTTTCTTTGTTCCTGAGCATGGCACTATGTTTACTCTTGCGCTTGTTCGTTTTCCGCCTACTGCGAC
+TAAAGAGATTCAGTACCTTAACGCTAAAGGTGCTTTGACTTATACCGATATTGCTGGCGACCCTGTTTTG
+TATGGCAACTTGCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGTCTAAGAAGT
+TTAAGATTGCTGAGGGTCAGTGGTATCGTTATGCGCCTTCGTATGTTTCTCCTGCTTATCACCTTCTTGA
+AGGCTTCCCATTCATTCAGGAACCGCCTTCTGGTGATTTGCAAGAACGCGTACTTATTCGCCACCATGAT
+TATGACCAGTGTTTCCAGTCCGTTCAGTTGTTGCAGTGGAATAGTCAGGTTAAATTTAATGTGACCGTTT
+ATCGCAATCTGCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGAGTGTGAGGTTATAAC
+GCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGTTGACCAAGCGAAGCGCGGTAGGTTTTCTGC
+TTAGGAGTTTAATCATGTTTCAGACTTTTATTTCTCGCCATAATTCAAACTTTTTTTCTGATAAGCTGGT
+TCTCACTTCTGTTACTCCAGCTTCTTCGGCACCTGTTTTACAGACACCTAAAGCTACATCGTCAACGTTA
+TATTTTGATAGTTTGACGGTTAATGCTGGTAATGGTGGTTTTCTTCATTGCATTCAGATGGATACATCTG
+TCAACGCCGCTAATCAGGTTGTTTCTGTTGGTGCTGATATTGCTTTTGATGCCGACCCTAAATTTTTTGC
+CTGTTTGGTTCGCTTTGAGTCTTCTTCGGTTCCGACTACCCTCCCGACTGCCTATGATGTTTATCCTTTG
+AATGGTCGCCATGATGGTGGTTATTATACCGTCAAGGACTGTGTGACTATTGACGTCCTTCCCCGTACGC
+CGGGCAATAACGTTTATGTTGGTTTCATGGTTTGGTCTAACTTTACCGCTACTAAATGCCGCGGATTGGT
+TTCGCTGAATCAGGTTATTAAAGAGATTATTTGTCTCCAGCCACTTAAGTGAGGTGATTTATGTTTGGTG
+CTATTGCTGGCGGTATTGCTTCTGCTCTTGCTGGTGGCGCCATGTCTAAATTGTTTGGAGGCGGTCAAAA
+AGCCGCCTCCGGTGGCATTCAAGGTGATGTGCTTGCTACCGATAACAATACTGTAGGCATGGGTGATGCT
+GGTATTAAATCTGCCATTCAAGGCTCTAATGTTCCTAACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTG
+GTGCTATGGCTAAAGCTGGTAAAGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGA
+TAAGTTGCTTGATTTGGTTGGACTTGGTGGCAAGTCTGCCGCTGATAAAGGAAAGGATACTCGTGATTAT
+CTTGCTGCTGCATTTCCTGAGCTTAATGCTTGGGAGCGTGCTGGTGCTGATGCTTCCTCTGCTGGTATGG
+TTGACGCCGGATTTGAGAATCAAAAAGAGCTTACTAAAATGCAACTGGACAATCAGAAAGAGATTGCCGA
+GATGCAAAATGAGACTCAAAAAGAGATTGCTGGCATTCAGTCGGCGACTTCACGCCAGAATACGAAAGAC
+CAGGTATATGCACAAAATGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTATTA
+TGGAAAACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATGCTTACTCAAGCTCA
+AACGGCTGGTCAGTATTTTACCAATGACCAAATCAAAGAAATGACTCGCAAGGTTAGTGCTGAGGTTGAC
+TTAGTTCATCAGCAAACGCAGAATCAGCGGTATGGCTCTTCTCATATTGGCGCTACTGCAAAGGATATTT
+CTAATGTCGTCACTGATGCTGCTTCTGGTGTGGTTGATATTTTTCATGGTATTGATAAAGCTGTTGCCGA
+TACTTGGAACAATTTCTGGAAAGACGGTAAAGCTGATGGTATTGGCTCTAATTTGTCTAGGAAATAACCG
+TCAGGATTGACACCCTCCCAATTGTATGTTTTCATGCCTCCAAATCTTGGAGGCTTTTTTATGGTTCGTT
+CTTATTACCCTTCTGAATGTCACGCTGATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTAT
+TGAGGCTTGTGGCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATGGATAACCGC
+ATCAAGCTCTTGGAAGAGATTCTGTCTTTTCGTATGCAGGGCGTTGAGTTCGATAATGGTGATATGTATG
+TTGACGGCCATAAGGCTGCTTCTGACGTTCGTGATGAGTTTGTATCTGTTACTGAGAAGTTAATGGATGA
+ATTGGCACAATGCTACAATGTGCTCCCCCAACTTGATATTAATAACACTATAGACCACCGCCCCGAAGGG
+GACGAAAAATGGTTTTTAGAGAACGAGAAGACGGTTACGCAGTTTTGCCGCAAGCTGGCTGCTGAACGCC
+CTCTTAAGGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATGAGTGTTCAAGATT
+GCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTGCTATTCAGCGTTTGATGAATGCAATGCGACAG
+GCTCATGCTGATGGTTGGTTTATCGTTTTTGACACTCTCACGTTGGCTGACGACCGATTAGAGGCGTTTT
+ATGATAATCCCAATGCTTTGCGTGACTATTTTCGTGATATTGGTCGTATGGTTCTTGCTGCCGAGGGTCG
+CAAGGCTAATGATTCACACGCCGACTGCTATCAGTATTTTTGTGTGCCTGAGTATGGTACAGCTAATGGC
+CGTCTTCATTTCCATGCGGTGCACTTTATGCGGACACTTCCTACAGGTAGCGTTGACCCTAATTTTGGTC
+GTCGGGTACGCAATCGCCGCCAGTTAAATAGCTTGCAAAATACGTGGCCTTATGGTTACAGTATGCCCAT
+CGCAGTTCGCTACACGCAGGACGCTTTTTCACGTTCTGGTTGGTTGTGGCCTGTTGATGCTAAAGGTGAG
+CCGCTTAAAGCTACCAGTTATATGGCTGTTGGTTTCTATGTGGCTAAATACGTTAACAAAAAGTCAGATA
+TGGACCTTGCTGCTAAAGGTCTAGGAGCTAAAGAATGGAACAACTCACTAAAAACCAAGCTGTCGCTACT
+TCCCAAGAAGCTGTTCAGAATCAGAATGAGCCGCAACTTCGGGATGAAAATGCTCACAATGACAAATCTG
+TCCACGGAGTGCTTAATCCAACTTACCAAGCTGGGTTACGACGCGACGCCGTTCAACCAGATATTGAAGC
+AGAACGCAAAAAGAGAGATGAGATTGAGGCTGGGAAAAGTTACTGTAGCCGACGTTTTGGCGGCGCAACC
+TGTGACGACAAATCTGCTCAAATTTATGCGCGCTTCGATAAAAATGATTGGCGTATCCAACCTGCA
+
1
0
[hg] galaxy 1505: Update MAF stitcher to be more efficient. Requ...
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
by gregļ¼ scofield.bx.psu.edu 22 Sep '08
22 Sep '08
details: http://www.bx.psu.edu/hg/galaxy/rev/b6ff467f4522
changeset: 1505:b6ff467f4522
user: Dan Blankenberg <dan(a)bx.psu.edu>
date: Fri Sep 12 15:50:20 2008 -0400
description:
Update MAF stitcher to be more efficient. Requires bx-pyhon rev>=449.
2 file(s) affected in this change:
eggs.ini
lib/galaxy/tools/util/maf_utilities.py
diffs (188 lines):
diff -r 4e2ed1801931 -r b6ff467f4522 eggs.ini
--- a/eggs.ini Fri Sep 12 15:35:50 2008 -0400
+++ b/eggs.ini Fri Sep 12 15:50:20 2008 -0400
@@ -55,12 +55,12 @@
MySQL_python = _5.0.51a_static
python_lzo = _static
flup = .dev_r2311
-bx_python = _dev_r448
+bx_python = _dev_r449
nose = .dev_r101
; source location, necessary for scrambling
[source]
-bx_python = http://dist.g2.bx.psu.edu/bx-python_dist-r448.tar.bz2
+bx_python = http://dist.g2.bx.psu.edu/bx-python_dist-r449.tar.bz2
Cheetah = http://umn.dl.sourceforge.net/sourceforge/cheetahtemplate/Cheetah-1.0.tar.gz
DRMAA_python = http://gridengine.sunsource.net/files/documents/7/36/DRMAA-python-0.2.tar.gz
MySQL_python = http://superb-west.dl.sourceforge.net/sourceforge/mysql-python/MySQL-pythonā¦ http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/mysql-5.0.51a.tar.gz
diff -r 4e2ed1801931 -r b6ff467f4522 lib/galaxy/tools/util/maf_utilities.py
--- a/lib/galaxy/tools/util/maf_utilities.py Fri Sep 12 15:35:50 2008 -0400
+++ b/lib/galaxy/tools/util/maf_utilities.py Fri Sep 12 15:50:20 2008 -0400
@@ -54,11 +54,15 @@
#sets a position for a species
def set_position( self, index, species, base ):
+ if len( base ) != 1: raise "A genomic position can only have a length of 1."
+ return self.set_range( index, species, base )
+ #sets a range for a species
+ def set_range( self, index, species, bases ):
if index >= self.size or index < 0: raise "Your index (%i) is out of range (0 - %i)." % ( index, self.size - 1 )
- if len(base) != 1: raise "A genomic position can only have a length of 1."
+ if len( bases ) == 0: raise "A set of genomic positions can only have a positive length."
if species not in self.sequences.keys(): self.add_species( species )
self.sequences[species].seek( index )
- self.sequences[species].write( base )
+ self.sequences[species].write( bases )
#Flush temp file of specified species, or all species
def flush( self, species = None ):
@@ -164,32 +168,40 @@
except:
return ( None, None )
+def chop_block_by_region( block, src, region, species = None, mincols = 0, force_strand = None ):
+ ref = block.get_component_by_src( src )
+ #We want our block coordinates to be from positive strand
+ if ref.strand == "-":
+ block = block.reverse_complement()
+ ref = block.get_component_by_src( src )
+
+ #save old score here for later use
+ old_score = block.score
+ slice_start = max( region.start, ref.start )
+ slice_end = min( region.end, ref.end )
+
+ #slice block by reference species at determined limits
+ block = block.slice_by_component( ref, slice_start, slice_end )
+
+ if block.text_size > mincols:
+ if ( force_strand is None and region.strand != ref.strand ) or ( force_strand is not None and force_strand != ref.strand ):
+ block = block.reverse_complement()
+ # restore old score, may not be accurate, but it is better than 0 for everything
+ block.score = old_score
+ if species is not None:
+ block = block.limit_to_species( species )
+ block.remove_all_gap_columns()
+ return block
+ return None
#generator yielding only chopped and valid blocks for a specified region
def get_chopped_blocks_for_region( index, src, region, species = None, mincols = 0, force_strand = None ):
- for block in index.get_as_iterator( src, region.start, region.end ):
- ref = block.get_component_by_src( src )
- #We want our block coordinates to be from positive strand
- if ref.strand == "-":
- block = block.reverse_complement()
- ref = block.get_component_by_src( src )
-
- #save old score here for later use
- old_score = block.score
- slice_start = max( region.start, ref.start )
- slice_end = min( region.end, ref.end )
-
- #slice block by reference species at determined limits
- block = block.slice_by_component( ref, slice_start, slice_end )
-
- if block.text_size > mincols:
- if ( force_strand is None and region.strand != ref.strand ) or ( force_strand is not None and force_strand != ref.strand ):
- block = block.reverse_complement()
- # restore old score, may not be accurate, but it is better than 0 for everything
- block.score = old_score
- if species is not None:
- block = block.limit_to_species( species )
- block.remove_all_gap_columns()
- yield block
+ for block, idx, offset in get_chopped_blocks_with_index_offset_for_region( index, src, region, species, mincols, force_strand ):
+ yield block
+def get_chopped_blocks_with_index_offset_for_region( index, src, region, species = None, mincols = 0, force_strand = None ):
+ for block, idx, offset in index.get_as_iterator_with_index_and_offset( src, region.start, region.end ):
+ block = chop_block_by_region( block, src, region, species, mincols )
+ if block is not None:
+ yield block, idx, offset
#returns a filled region alignment for specified regions
def get_region_alignment( index, primary_species, chrom, start, end, strand = '+', species = None, mincols = 0 ):
@@ -199,46 +211,51 @@
#fills a region alignment
def fill_region_alignment( alignment, index, primary_species, chrom, start, end, strand = '+', species = None, mincols = 0 ):
- #first step through blocks, save index and score in array, then order by score (array will start as 0=index0,scoreX)
- #step through ordered list, step through maf blocks, stopping at index, store, then break inner loop
region = bx.intervals.Interval( start, end )
region.chrom = chrom
region.strand = strand
primary_src = "%s.%s" % ( primary_species, chrom )
-
+
+ def reduce_block_by_primary_genome( block ):
+ #returns ( startIndex, {species:texts}
+ #where texts' contents are reduced to only positions existing in the primary genome
+ ref = block.get_component_by_src( primary_src )
+ start_offset = ref.start - start
+ species_texts = {}
+ for c in block.components:
+ species_texts[ c.src.split( '.' )[0] ] = list( c.text )
+ #remove locations which are gaps in the primary species, starting from the downstream end
+ for i in range( len( species_texts[ primary_species ] ) - 1, -1, -1 ):
+ if species_texts[ primary_species ][i] == '-':
+ for text in species_texts.values():
+ text.pop( i )
+ for spec, text in species_texts.items():
+ species_texts[spec] = ''.join( text )
+ return ( start_offset, species_texts )
+
#Order blocks overlaping this position by score, lowest first
- blocks_order = []
- for i, block in enumerate( get_chopped_blocks_for_region( index, primary_src, region, species, mincols ) ):
- for j in range( 0, len( blocks_order ) ):
- if float( block.score ) < float( blocks_order[j]['score'] ):
- blocks_order.insert( j, {'index':i, 'score':block.score} )
+ blocks = []
+ for block, idx, offset in index.get_as_iterator_with_index_and_offset( primary_src, start, end ):
+ score = float( block.score )
+ for i in range( 0, len( blocks ) ):
+ if score < blocks[i][0]:
+ blocks.insert( i, ( score, idx, offset ) )
break
else:
- blocks_order.append( {'index':i, 'score':block.score} )
+ blocks.append( ( score, idx, offset ) )
- #Loop through ordered block indexes and layer blocks by score
- for block_dict in blocks_order:
- for block_index, block in enumerate( get_chopped_blocks_for_region( index, primary_src, region, species, mincols ) ):
- if block_index == block_dict['index']:
- ref = block.get_component_by_src( primary_src )
- #skip gap locations due to insertions in secondary species relative to primary species
- start_offset = ref.start - start
- num_gaps = 0
- for i in range( len( ref.text.rstrip().rstrip("-") ) ):
- if ref.text[i] in ["-"]:
- num_gaps += 1
- continue
- #Set base for all species
- for spec in [ c.src.split( '.' )[0] for c in block.components ]:
- try:
- #NB: If a gap appears in higher scoring secondary species block,
- #it will overwrite any bases that have been set by lower scoring blocks
- #this seems more proper than allowing, e.g. a single base from lower scoring alignment to exist outside of its genomic context
- alignment.set_position( start_offset + i - num_gaps, spec, block.get_component_by_src_start( spec ).text[i] )
- except:
- #species/sequence for species does not exist
- pass
- break
+ #Loop through ordered blocks and layer by increasing score
+ for block_dict in blocks:
+ block = chop_block_by_region( block_dict[1].get_at_offset( block_dict[2] ), primary_src, region, species, mincols, strand )
+ if block is None: continue
+ start_offset, species_texts = reduce_block_by_primary_genome( block )
+ for spec, text in species_texts.items():
+ try:
+ alignment.set_range( start_offset, spec, text )
+ except:
+ #species/sequence for species does not exist
+ pass
+
return alignment
#returns a filled spliced region alignment for specified region with start and end lists
1
0
I see from the parameters code that dynamic_options are to be replaced
with options as part of workflow buildout.
I'm finding lots of use cases where the dynamic_options returned by
code from an included module makes some complicated things really easy
for users. For example. In the new gene expression tools, each
expression experiment is stored as a new Galaxy datatype based on the
Bioconductor representation (affybatch, eset etc). Each of those
structures has (optional!) accompanying experimental metadata
(phenodata) which at the time the affybatch is being created, is in
the form of a tab delimited file with a header row. For constructing
design and contrast matrices for analyses, the user has to choose one
or more of those phenodata columns for that experiment - and the
choice typically might be limited to those columns containing
*exactly* two values - ie dichotomous contrasts.
I have code working that allows the user to choose an input (eg
affybatch) experiment file from their history, then to choose from
among *only* the dichotomous phenotype columns, and run the analysis -
you cannot imagine what a big deal this is compared with trying to
teach people to generate design and contrast matrices interactively in
R!
But of course, these miracles all rely on dynamic_options calling some
code included with the tool.
What's the best way forward for a situation where we need to obtain
this kind of drop down list for a tool, that depends on the choice on
a previous page, that will be compatible with workflows in the
long-haul?
I guess one approach is that when generating the (eg affybatch)
metadata, I guess I could create all the option lists I'm going to
ever need as additional metadata datastructures that could be used
like the options from files are used elsewhere - the catch is that
they'd all have to be precomputed rather than being computed on the
fly by the tool - is that reasonable or is there some way to allow
dynamic computing on the metadata (and it's a little complex,
involving parsing the phenodata and constructing a concordance of the
values in each column and eg returning only the columns with exactly
two values)
--
python -c "foo = map(None,'moc.liamg(a)surazal.ssor'); foo.reverse();
print ''.join(foo)"
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/777e41dbdf1f
changeset: 1503:777e41dbdf1f
user: Anton Nekrutenko <anton(a)bx.psu.edu>
date: Fri Sep 12 15:14:20 2008 -0400
description:
Lastz with additional short read changes
10 file(s) affected in this change:
test-data/lastz_census.txt
test-data/lastz_diffs.txt
test-data/lastz_diffs_ref_name.txt
test-data/lastz_maf.txt
tool_conf.xml.sample
tools/metag_tools/blat_wrapper.xml
tools/metag_tools/megablast_wrapper.xml
tools/sr_mapping/fastq_statistics.xml
tools/sr_mapping/lastz_code.py
tools/sr_mapping/lastz_wrapper.xml
diffs (truncated from 7931 to 3000 lines):
diff -r 6bb33bc9903f -r 777e41dbdf1f test-data/lastz_census.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/lastz_census.txt Fri Sep 12 15:14:20 2008 -0400
@@ -0,0 +1,5386 @@
+phiX 1 255
+phiX 2 255
+phiX 3 255
+phiX 4 255
+phiX 5 255
+phiX 6 255
+phiX 7 255
+phiX 8 255
+phiX 9 255
+phiX 10 255
+phiX 11 255
+phiX 12 255
+phiX 13 255
+phiX 14 255
+phiX 15 255
+phiX 16 255
+phiX 17 255
+phiX 18 255
+phiX 19 255
+phiX 20 255
+phiX 21 255
+phiX 22 255
+phiX 23 255
+phiX 24 255
+phiX 25 255
+phiX 26 255
+phiX 27 255
+phiX 28 255
+phiX 29 255
+phiX 30 255
+phiX 31 255
+phiX 32 255
+phiX 33 255
+phiX 34 255
+phiX 35 255
+phiX 36 255
+phiX 37 255
+phiX 38 255
+phiX 39 255
+phiX 40 255
+phiX 41 255
+phiX 42 255
+phiX 43 255
+phiX 44 255
+phiX 45 255
+phiX 46 255
+phiX 47 255
+phiX 48 255
+phiX 49 255
+phiX 50 255
+phiX 51 255
+phiX 52 255
+phiX 53 255
+phiX 54 255
+phiX 55 255
+phiX 56 255
+phiX 57 255
+phiX 58 255
+phiX 59 255
+phiX 60 255
+phiX 61 255
+phiX 62 255
+phiX 63 255
+phiX 64 255
+phiX 65 255
+phiX 66 255
+phiX 67 255
+phiX 68 255
+phiX 69 255
+phiX 70 255
+phiX 71 255
+phiX 72 255
+phiX 73 255
+phiX 74 255
+phiX 75 255
+phiX 76 255
+phiX 77 255
+phiX 78 255
+phiX 79 255
+phiX 80 255
+phiX 81 255
+phiX 82 255
+phiX 83 255
+phiX 84 255
+phiX 85 255
+phiX 86 255
+phiX 87 255
+phiX 88 255
+phiX 89 255
+phiX 90 255
+phiX 91 255
+phiX 92 255
+phiX 93 255
+phiX 94 255
+phiX 95 255
+phiX 96 255
+phiX 97 255
+phiX 98 255
+phiX 99 255
+phiX 100 255
+phiX 101 255
+phiX 102 255
+phiX 103 255
+phiX 104 255
+phiX 105 255
+phiX 106 255
+phiX 107 255
+phiX 108 255
+phiX 109 255
+phiX 110 255
+phiX 111 255
+phiX 112 255
+phiX 113 255
+phiX 114 255
+phiX 115 255
+phiX 116 255
+phiX 117 255
+phiX 118 255
+phiX 119 255
+phiX 120 255
+phiX 121 255
+phiX 122 255
+phiX 123 255
+phiX 124 255
+phiX 125 255
+phiX 126 255
+phiX 127 255
+phiX 128 255
+phiX 129 255
+phiX 130 255
+phiX 131 255
+phiX 132 255
+phiX 133 255
+phiX 134 255
+phiX 135 255
+phiX 136 255
+phiX 137 255
+phiX 138 255
+phiX 139 255
+phiX 140 255
+phiX 141 255
+phiX 142 255
+phiX 143 255
+phiX 144 255
+phiX 145 255
+phiX 146 255
+phiX 147 255
+phiX 148 255
+phiX 149 255
+phiX 150 255
+phiX 151 255
+phiX 152 255
+phiX 153 255
+phiX 154 255
+phiX 155 255
+phiX 156 255
+phiX 157 255
+phiX 158 255
+phiX 159 255
+phiX 160 255
+phiX 161 255
+phiX 162 255
+phiX 163 255
+phiX 164 255
+phiX 165 255
+phiX 166 255
+phiX 167 255
+phiX 168 255
+phiX 169 255
+phiX 170 255
+phiX 171 255
+phiX 172 255
+phiX 173 255
+phiX 174 255
+phiX 175 255
+phiX 176 255
+phiX 177 255
+phiX 178 255
+phiX 179 255
+phiX 180 255
+phiX 181 255
+phiX 182 255
+phiX 183 255
+phiX 184 255
+phiX 185 255
+phiX 186 255
+phiX 187 255
+phiX 188 255
+phiX 189 255
+phiX 190 255
+phiX 191 255
+phiX 192 255
+phiX 193 255
+phiX 194 255
+phiX 195 255
+phiX 196 255
+phiX 197 255
+phiX 198 255
+phiX 199 255
+phiX 200 255
+phiX 201 255
+phiX 202 255
+phiX 203 255
+phiX 204 255
+phiX 205 255
+phiX 206 255
+phiX 207 255
+phiX 208 255
+phiX 209 255
+phiX 210 255
+phiX 211 255
+phiX 212 255
+phiX 213 255
+phiX 214 255
+phiX 215 255
+phiX 216 255
+phiX 217 255
+phiX 218 255
+phiX 219 255
+phiX 220 255
+phiX 221 255
+phiX 222 255
+phiX 223 255
+phiX 224 255
+phiX 225 255
+phiX 226 255
+phiX 227 255
+phiX 228 255
+phiX 229 255
+phiX 230 255
+phiX 231 255
+phiX 232 255
+phiX 233 255
+phiX 234 255
+phiX 235 255
+phiX 236 255
+phiX 237 255
+phiX 238 255
+phiX 239 255
+phiX 240 255
+phiX 241 255
+phiX 242 255
+phiX 243 255
+phiX 244 255
+phiX 245 255
+phiX 246 255
+phiX 247 255
+phiX 248 255
+phiX 249 255
+phiX 250 255
+phiX 251 255
+phiX 252 255
+phiX 253 255
+phiX 254 255
+phiX 255 255
+phiX 256 255
+phiX 257 255
+phiX 258 255
+phiX 259 255
+phiX 260 255
+phiX 261 255
+phiX 262 255
+phiX 263 255
+phiX 264 255
+phiX 265 255
+phiX 266 255
+phiX 267 255
+phiX 268 255
+phiX 269 255
+phiX 270 255
+phiX 271 255
+phiX 272 255
+phiX 273 255
+phiX 274 255
+phiX 275 255
+phiX 276 255
+phiX 277 255
+phiX 278 255
+phiX 279 255
+phiX 280 255
+phiX 281 255
+phiX 282 255
+phiX 283 255
+phiX 284 255
+phiX 285 255
+phiX 286 255
+phiX 287 255
+phiX 288 255
+phiX 289 255
+phiX 290 255
+phiX 291 255
+phiX 292 255
+phiX 293 255
+phiX 294 255
+phiX 295 255
+phiX 296 255
+phiX 297 255
+phiX 298 255
+phiX 299 255
+phiX 300 255
+phiX 301 255
+phiX 302 255
+phiX 303 255
+phiX 304 255
+phiX 305 255
+phiX 306 255
+phiX 307 255
+phiX 308 255
+phiX 309 255
+phiX 310 255
+phiX 311 255
+phiX 312 255
+phiX 313 255
+phiX 314 255
+phiX 315 255
+phiX 316 255
+phiX 317 255
+phiX 318 255
+phiX 319 255
+phiX 320 255
+phiX 321 255
+phiX 322 255
+phiX 323 255
+phiX 324 255
+phiX 325 255
+phiX 326 255
+phiX 327 255
+phiX 328 255
+phiX 329 255
+phiX 330 255
+phiX 331 255
+phiX 332 255
+phiX 333 255
+phiX 334 255
+phiX 335 255
+phiX 336 255
+phiX 337 255
+phiX 338 255
+phiX 339 255
+phiX 340 255
+phiX 341 255
+phiX 342 255
+phiX 343 255
+phiX 344 255
+phiX 345 255
+phiX 346 255
+phiX 347 255
+phiX 348 255
+phiX 349 255
+phiX 350 255
+phiX 351 255
+phiX 352 255
+phiX 353 255
+phiX 354 255
+phiX 355 255
+phiX 356 255
+phiX 357 255
+phiX 358 255
+phiX 359 255
+phiX 360 255
+phiX 361 255
+phiX 362 255
+phiX 363 255
+phiX 364 255
+phiX 365 255
+phiX 366 255
+phiX 367 255
+phiX 368 255
+phiX 369 255
+phiX 370 255
+phiX 371 255
+phiX 372 255
+phiX 373 255
+phiX 374 255
+phiX 375 255
+phiX 376 255
+phiX 377 255
+phiX 378 255
+phiX 379 255
+phiX 380 255
+phiX 381 255
+phiX 382 255
+phiX 383 255
+phiX 384 255
+phiX 385 255
+phiX 386 255
+phiX 387 255
+phiX 388 255
+phiX 389 255
+phiX 390 255
+phiX 391 255
+phiX 392 255
+phiX 393 255
+phiX 394 255
+phiX 395 255
+phiX 396 255
+phiX 397 255
+phiX 398 255
+phiX 399 255
+phiX 400 255
+phiX 401 255
+phiX 402 255
+phiX 403 255
+phiX 404 255
+phiX 405 255
+phiX 406 255
+phiX 407 255
+phiX 408 255
+phiX 409 255
+phiX 410 255
+phiX 411 255
+phiX 412 255
+phiX 413 255
+phiX 414 255
+phiX 415 255
+phiX 416 255
+phiX 417 255
+phiX 418 255
+phiX 419 255
+phiX 420 255
+phiX 421 255
+phiX 422 255
+phiX 423 255
+phiX 424 255
+phiX 425 255
+phiX 426 255
+phiX 427 255
+phiX 428 255
+phiX 429 255
+phiX 430 255
+phiX 431 255
+phiX 432 255
+phiX 433 255
+phiX 434 255
+phiX 435 255
+phiX 436 255
+phiX 437 255
+phiX 438 255
+phiX 439 255
+phiX 440 255
+phiX 441 255
+phiX 442 255
+phiX 443 255
+phiX 444 255
+phiX 445 255
+phiX 446 255
+phiX 447 255
+phiX 448 255
+phiX 449 255
+phiX 450 255
+phiX 451 255
+phiX 452 255
+phiX 453 255
+phiX 454 255
+phiX 455 255
+phiX 456 255
+phiX 457 255
+phiX 458 255
+phiX 459 255
+phiX 460 255
+phiX 461 255
+phiX 462 255
+phiX 463 255
+phiX 464 255
+phiX 465 255
+phiX 466 255
+phiX 467 255
+phiX 468 255
+phiX 469 255
+phiX 470 255
+phiX 471 255
+phiX 472 255
+phiX 473 255
+phiX 474 255
+phiX 475 255
+phiX 476 255
+phiX 477 255
+phiX 478 255
+phiX 479 255
+phiX 480 255
+phiX 481 255
+phiX 482 255
+phiX 483 255
+phiX 484 255
+phiX 485 255
+phiX 486 255
+phiX 487 255
+phiX 488 255
+phiX 489 255
+phiX 490 255
+phiX 491 255
+phiX 492 255
+phiX 493 255
+phiX 494 255
+phiX 495 255
+phiX 496 255
+phiX 497 255
+phiX 498 255
+phiX 499 255
+phiX 500 255
+phiX 501 255
+phiX 502 255
+phiX 503 255
+phiX 504 255
+phiX 505 255
+phiX 506 255
+phiX 507 255
+phiX 508 255
+phiX 509 255
+phiX 510 255
+phiX 511 255
+phiX 512 255
+phiX 513 255
+phiX 514 255
+phiX 515 255
+phiX 516 255
+phiX 517 255
+phiX 518 255
+phiX 519 255
+phiX 520 255
+phiX 521 255
+phiX 522 255
+phiX 523 255
+phiX 524 255
+phiX 525 255
+phiX 526 255
+phiX 527 255
+phiX 528 255
+phiX 529 255
+phiX 530 255
+phiX 531 255
+phiX 532 255
+phiX 533 255
+phiX 534 255
+phiX 535 255
+phiX 536 255
+phiX 537 255
+phiX 538 255
+phiX 539 255
+phiX 540 255
+phiX 541 255
+phiX 542 255
+phiX 543 255
+phiX 544 255
+phiX 545 255
+phiX 546 255
+phiX 547 255
+phiX 548 255
+phiX 549 255
+phiX 550 255
+phiX 551 255
+phiX 552 255
+phiX 553 255
+phiX 554 255
+phiX 555 255
+phiX 556 255
+phiX 557 255
+phiX 558 255
+phiX 559 255
+phiX 560 255
+phiX 561 255
+phiX 562 255
+phiX 563 255
+phiX 564 255
+phiX 565 255
+phiX 566 255
+phiX 567 255
+phiX 568 255
+phiX 569 255
+phiX 570 255
+phiX 571 255
+phiX 572 255
+phiX 573 255
+phiX 574 255
+phiX 575 255
+phiX 576 255
+phiX 577 255
+phiX 578 255
+phiX 579 255
+phiX 580 255
+phiX 581 255
+phiX 582 255
+phiX 583 255
+phiX 584 255
+phiX 585 255
+phiX 586 255
+phiX 587 255
+phiX 588 255
+phiX 589 255
+phiX 590 255
+phiX 591 255
+phiX 592 255
+phiX 593 255
+phiX 594 255
+phiX 595 255
+phiX 596 255
+phiX 597 255
+phiX 598 255
+phiX 599 255
+phiX 600 255
+phiX 601 255
+phiX 602 255
+phiX 603 255
+phiX 604 255
+phiX 605 255
+phiX 606 255
+phiX 607 255
+phiX 608 255
+phiX 609 255
+phiX 610 255
+phiX 611 255
+phiX 612 255
+phiX 613 255
+phiX 614 255
+phiX 615 255
+phiX 616 255
+phiX 617 255
+phiX 618 255
+phiX 619 255
+phiX 620 255
+phiX 621 255
+phiX 622 255
+phiX 623 255
+phiX 624 255
+phiX 625 255
+phiX 626 255
+phiX 627 255
+phiX 628 255
+phiX 629 255
+phiX 630 255
+phiX 631 255
+phiX 632 255
+phiX 633 255
+phiX 634 255
+phiX 635 255
+phiX 636 255
+phiX 637 255
+phiX 638 255
+phiX 639 255
+phiX 640 255
+phiX 641 255
+phiX 642 255
+phiX 643 255
+phiX 644 255
+phiX 645 255
+phiX 646 255
+phiX 647 255
+phiX 648 255
+phiX 649 255
+phiX 650 255
+phiX 651 255
+phiX 652 255
+phiX 653 255
+phiX 654 255
+phiX 655 255
+phiX 656 255
+phiX 657 255
+phiX 658 255
+phiX 659 255
+phiX 660 255
+phiX 661 255
+phiX 662 255
+phiX 663 255
+phiX 664 255
+phiX 665 255
+phiX 666 255
+phiX 667 255
+phiX 668 255
+phiX 669 255
+phiX 670 255
+phiX 671 255
+phiX 672 255
+phiX 673 255
+phiX 674 255
+phiX 675 255
+phiX 676 255
+phiX 677 255
+phiX 678 255
+phiX 679 255
+phiX 680 255
+phiX 681 255
+phiX 682 255
+phiX 683 255
+phiX 684 255
+phiX 685 255
+phiX 686 255
+phiX 687 255
+phiX 688 255
+phiX 689 255
+phiX 690 255
+phiX 691 255
+phiX 692 255
+phiX 693 255
+phiX 694 255
+phiX 695 255
+phiX 696 255
+phiX 697 255
+phiX 698 255
+phiX 699 255
+phiX 700 255
+phiX 701 255
+phiX 702 255
+phiX 703 255
+phiX 704 255
+phiX 705 255
+phiX 706 255
+phiX 707 255
+phiX 708 255
+phiX 709 255
+phiX 710 255
+phiX 711 255
+phiX 712 255
+phiX 713 255
+phiX 714 255
+phiX 715 255
+phiX 716 255
+phiX 717 255
+phiX 718 255
+phiX 719 255
+phiX 720 255
+phiX 721 255
+phiX 722 255
+phiX 723 255
+phiX 724 255
+phiX 725 255
+phiX 726 255
+phiX 727 255
+phiX 728 255
+phiX 729 255
+phiX 730 255
+phiX 731 255
+phiX 732 255
+phiX 733 255
+phiX 734 255
+phiX 735 255
+phiX 736 255
+phiX 737 255
+phiX 738 255
+phiX 739 255
+phiX 740 255
+phiX 741 255
+phiX 742 255
+phiX 743 255
+phiX 744 255
+phiX 745 255
+phiX 746 255
+phiX 747 255
+phiX 748 255
+phiX 749 255
+phiX 750 255
+phiX 751 255
+phiX 752 255
+phiX 753 255
+phiX 754 255
+phiX 755 255
+phiX 756 255
+phiX 757 255
+phiX 758 255
+phiX 759 255
+phiX 760 255
+phiX 761 255
+phiX 762 255
+phiX 763 255
+phiX 764 255
+phiX 765 255
+phiX 766 255
+phiX 767 255
+phiX 768 255
+phiX 769 255
+phiX 770 255
+phiX 771 255
+phiX 772 255
+phiX 773 255
+phiX 774 255
+phiX 775 255
+phiX 776 255
+phiX 777 255
+phiX 778 255
+phiX 779 255
+phiX 780 255
+phiX 781 255
+phiX 782 255
+phiX 783 255
+phiX 784 255
+phiX 785 255
+phiX 786 255
+phiX 787 255
+phiX 788 255
+phiX 789 255
+phiX 790 255
+phiX 791 255
+phiX 792 255
+phiX 793 255
+phiX 794 255
+phiX 795 255
+phiX 796 255
+phiX 797 255
+phiX 798 255
+phiX 799 255
+phiX 800 255
+phiX 801 255
+phiX 802 255
+phiX 803 255
+phiX 804 255
+phiX 805 255
+phiX 806 255
+phiX 807 255
+phiX 808 255
+phiX 809 255
+phiX 810 255
+phiX 811 255
+phiX 812 255
+phiX 813 255
+phiX 814 255
+phiX 815 255
+phiX 816 255
+phiX 817 255
+phiX 818 255
+phiX 819 255
+phiX 820 255
+phiX 821 255
+phiX 822 255
+phiX 823 255
+phiX 824 255
+phiX 825 255
+phiX 826 255
+phiX 827 255
+phiX 828 255
+phiX 829 255
+phiX 830 255
+phiX 831 255
+phiX 832 255
+phiX 833 255
+phiX 834 255
+phiX 835 255
+phiX 836 255
+phiX 837 255
+phiX 838 255
+phiX 839 255
+phiX 840 255
+phiX 841 255
+phiX 842 255
+phiX 843 255
+phiX 844 255
+phiX 845 255
+phiX 846 255
+phiX 847 255
+phiX 848 255
+phiX 849 255
+phiX 850 255
+phiX 851 255
+phiX 852 255
+phiX 853 255
+phiX 854 255
+phiX 855 255
+phiX 856 255
+phiX 857 255
+phiX 858 255
+phiX 859 255
+phiX 860 255
+phiX 861 255
+phiX 862 255
+phiX 863 255
+phiX 864 255
+phiX 865 255
+phiX 866 255
+phiX 867 255
+phiX 868 255
+phiX 869 255
+phiX 870 255
+phiX 871 255
+phiX 872 255
+phiX 873 255
+phiX 874 255
+phiX 875 255
+phiX 876 255
+phiX 877 255
+phiX 878 255
+phiX 879 255
+phiX 880 255
+phiX 881 255
+phiX 882 255
+phiX 883 255
+phiX 884 255
+phiX 885 255
+phiX 886 255
+phiX 887 255
+phiX 888 255
+phiX 889 255
+phiX 890 255
+phiX 891 255
+phiX 892 255
+phiX 893 255
+phiX 894 255
+phiX 895 255
+phiX 896 255
+phiX 897 255
+phiX 898 255
+phiX 899 255
+phiX 900 255
+phiX 901 255
+phiX 902 255
+phiX 903 255
+phiX 904 255
+phiX 905 255
+phiX 906 255
+phiX 907 255
+phiX 908 255
+phiX 909 255
+phiX 910 255
+phiX 911 255
+phiX 912 255
+phiX 913 255
+phiX 914 255
+phiX 915 255
+phiX 916 255
+phiX 917 255
+phiX 918 255
+phiX 919 255
+phiX 920 255
+phiX 921 255
+phiX 922 255
+phiX 923 255
+phiX 924 255
+phiX 925 255
+phiX 926 255
+phiX 927 255
+phiX 928 255
+phiX 929 255
+phiX 930 255
+phiX 931 255
+phiX 932 255
+phiX 933 255
+phiX 934 255
+phiX 935 255
+phiX 936 255
+phiX 937 255
+phiX 938 255
+phiX 939 255
+phiX 940 255
+phiX 941 255
+phiX 942 255
+phiX 943 255
+phiX 944 255
+phiX 945 255
+phiX 946 255
+phiX 947 255
+phiX 948 255
+phiX 949 255
+phiX 950 255
+phiX 951 255
+phiX 952 255
+phiX 953 255
+phiX 954 255
+phiX 955 255
+phiX 956 255
+phiX 957 255
+phiX 958 255
+phiX 959 255
+phiX 960 255
+phiX 961 255
+phiX 962 255
+phiX 963 255
+phiX 964 255
+phiX 965 255
+phiX 966 255
+phiX 967 255
+phiX 968 255
+phiX 969 255
+phiX 970 255
+phiX 971 255
+phiX 972 255
+phiX 973 255
+phiX 974 255
+phiX 975 255
+phiX 976 255
+phiX 977 255
+phiX 978 255
+phiX 979 255
+phiX 980 255
+phiX 981 255
+phiX 982 255
+phiX 983 255
+phiX 984 255
+phiX 985 255
+phiX 986 255
+phiX 987 255
+phiX 988 255
+phiX 989 255
+phiX 990 255
+phiX 991 255
+phiX 992 255
+phiX 993 255
+phiX 994 255
+phiX 995 255
+phiX 996 255
+phiX 997 255
+phiX 998 255
+phiX 999 255
+phiX 1000 255
+phiX 1001 255
+phiX 1002 255
+phiX 1003 255
+phiX 1004 255
+phiX 1005 255
+phiX 1006 255
+phiX 1007 255
+phiX 1008 255
+phiX 1009 255
+phiX 1010 255
+phiX 1011 255
+phiX 1012 255
+phiX 1013 255
+phiX 1014 255
+phiX 1015 255
+phiX 1016 255
+phiX 1017 255
+phiX 1018 255
+phiX 1019 255
+phiX 1020 255
+phiX 1021 255
+phiX 1022 255
+phiX 1023 255
+phiX 1024 255
+phiX 1025 255
+phiX 1026 255
+phiX 1027 255
+phiX 1028 255
+phiX 1029 255
+phiX 1030 255
+phiX 1031 255
+phiX 1032 255
+phiX 1033 255
+phiX 1034 255
+phiX 1035 255
+phiX 1036 255
+phiX 1037 255
+phiX 1038 255
+phiX 1039 255
+phiX 1040 255
+phiX 1041 255
+phiX 1042 255
+phiX 1043 255
+phiX 1044 255
+phiX 1045 255
+phiX 1046 255
+phiX 1047 255
+phiX 1048 255
+phiX 1049 255
+phiX 1050 255
+phiX 1051 255
+phiX 1052 255
+phiX 1053 255
+phiX 1054 255
+phiX 1055 255
+phiX 1056 255
+phiX 1057 255
+phiX 1058 255
+phiX 1059 255
+phiX 1060 255
+phiX 1061 255
+phiX 1062 255
+phiX 1063 255
+phiX 1064 255
+phiX 1065 255
+phiX 1066 255
+phiX 1067 255
+phiX 1068 255
+phiX 1069 255
+phiX 1070 255
+phiX 1071 255
+phiX 1072 255
+phiX 1073 255
+phiX 1074 255
+phiX 1075 255
+phiX 1076 255
+phiX 1077 255
+phiX 1078 255
+phiX 1079 255
+phiX 1080 255
+phiX 1081 255
+phiX 1082 255
+phiX 1083 255
+phiX 1084 255
+phiX 1085 255
+phiX 1086 255
+phiX 1087 255
+phiX 1088 255
+phiX 1089 255
+phiX 1090 255
+phiX 1091 255
+phiX 1092 255
+phiX 1093 255
+phiX 1094 255
+phiX 1095 255
+phiX 1096 255
+phiX 1097 255
+phiX 1098 255
+phiX 1099 255
+phiX 1100 255
+phiX 1101 255
+phiX 1102 255
+phiX 1103 255
+phiX 1104 255
+phiX 1105 255
+phiX 1106 255
+phiX 1107 255
+phiX 1108 255
+phiX 1109 255
+phiX 1110 255
+phiX 1111 255
+phiX 1112 255
+phiX 1113 255
+phiX 1114 255
+phiX 1115 255
+phiX 1116 255
+phiX 1117 255
+phiX 1118 255
+phiX 1119 255
+phiX 1120 255
+phiX 1121 255
+phiX 1122 255
+phiX 1123 255
+phiX 1124 255
+phiX 1125 255
+phiX 1126 255
+phiX 1127 255
+phiX 1128 255
+phiX 1129 255
+phiX 1130 255
+phiX 1131 255
+phiX 1132 255
+phiX 1133 255
+phiX 1134 255
+phiX 1135 255
+phiX 1136 255
+phiX 1137 255
+phiX 1138 255
+phiX 1139 255
+phiX 1140 255
+phiX 1141 255
+phiX 1142 255
+phiX 1143 255
+phiX 1144 255
+phiX 1145 255
+phiX 1146 255
+phiX 1147 255
+phiX 1148 255
+phiX 1149 255
+phiX 1150 255
+phiX 1151 255
+phiX 1152 255
+phiX 1153 255
+phiX 1154 255
+phiX 1155 255
+phiX 1156 255
+phiX 1157 255
+phiX 1158 255
+phiX 1159 255
+phiX 1160 255
+phiX 1161 255
+phiX 1162 255
+phiX 1163 255
+phiX 1164 255
+phiX 1165 255
+phiX 1166 255
+phiX 1167 255
+phiX 1168 255
+phiX 1169 255
+phiX 1170 255
+phiX 1171 255
+phiX 1172 255
+phiX 1173 255
+phiX 1174 255
+phiX 1175 255
+phiX 1176 255
+phiX 1177 255
+phiX 1178 255
+phiX 1179 255
+phiX 1180 255
+phiX 1181 255
+phiX 1182 255
+phiX 1183 255
+phiX 1184 255
+phiX 1185 255
+phiX 1186 255
+phiX 1187 255
+phiX 1188 255
+phiX 1189 255
+phiX 1190 255
+phiX 1191 255
+phiX 1192 255
+phiX 1193 255
+phiX 1194 255
+phiX 1195 255
+phiX 1196 255
+phiX 1197 255
+phiX 1198 255
+phiX 1199 255
+phiX 1200 255
+phiX 1201 255
+phiX 1202 255
+phiX 1203 255
+phiX 1204 255
+phiX 1205 255
+phiX 1206 255
+phiX 1207 255
+phiX 1208 255
+phiX 1209 255
+phiX 1210 255
+phiX 1211 255
+phiX 1212 255
+phiX 1213 255
+phiX 1214 255
+phiX 1215 255
+phiX 1216 255
+phiX 1217 255
+phiX 1218 255
+phiX 1219 255
+phiX 1220 255
+phiX 1221 255
+phiX 1222 255
+phiX 1223 255
+phiX 1224 255
+phiX 1225 255
+phiX 1226 255
+phiX 1227 255
+phiX 1228 255
+phiX 1229 255
+phiX 1230 255
+phiX 1231 255
+phiX 1232 255
+phiX 1233 255
+phiX 1234 255
+phiX 1235 255
+phiX 1236 255
+phiX 1237 255
+phiX 1238 255
+phiX 1239 255
+phiX 1240 255
+phiX 1241 255
+phiX 1242 255
+phiX 1243 255
+phiX 1244 255
+phiX 1245 255
+phiX 1246 255
+phiX 1247 255
+phiX 1248 255
+phiX 1249 255
+phiX 1250 255
+phiX 1251 255
+phiX 1252 255
+phiX 1253 255
+phiX 1254 255
+phiX 1255 255
+phiX 1256 255
+phiX 1257 255
+phiX 1258 255
+phiX 1259 255
+phiX 1260 255
+phiX 1261 255
+phiX 1262 255
+phiX 1263 255
+phiX 1264 255
+phiX 1265 255
+phiX 1266 255
+phiX 1267 255
+phiX 1268 255
+phiX 1269 255
+phiX 1270 255
+phiX 1271 255
+phiX 1272 255
+phiX 1273 255
+phiX 1274 255
+phiX 1275 255
+phiX 1276 255
+phiX 1277 255
+phiX 1278 255
+phiX 1279 255
+phiX 1280 255
+phiX 1281 255
+phiX 1282 255
+phiX 1283 255
+phiX 1284 255
+phiX 1285 255
+phiX 1286 255
+phiX 1287 255
+phiX 1288 255
+phiX 1289 255
+phiX 1290 255
+phiX 1291 255
+phiX 1292 255
+phiX 1293 255
+phiX 1294 255
+phiX 1295 255
+phiX 1296 255
+phiX 1297 255
+phiX 1298 255
+phiX 1299 255
+phiX 1300 255
+phiX 1301 255
+phiX 1302 255
+phiX 1303 255
+phiX 1304 255
+phiX 1305 255
+phiX 1306 255
+phiX 1307 255
+phiX 1308 255
+phiX 1309 255
+phiX 1310 255
+phiX 1311 255
+phiX 1312 255
+phiX 1313 255
+phiX 1314 255
+phiX 1315 255
+phiX 1316 255
+phiX 1317 255
+phiX 1318 255
+phiX 1319 255
+phiX 1320 255
+phiX 1321 255
+phiX 1322 255
+phiX 1323 255
+phiX 1324 255
+phiX 1325 255
+phiX 1326 255
+phiX 1327 255
+phiX 1328 255
+phiX 1329 255
+phiX 1330 255
+phiX 1331 255
+phiX 1332 255
+phiX 1333 255
+phiX 1334 255
+phiX 1335 255
+phiX 1336 255
+phiX 1337 255
+phiX 1338 255
+phiX 1339 255
+phiX 1340 255
+phiX 1341 255
+phiX 1342 255
+phiX 1343 255
+phiX 1344 255
+phiX 1345 255
+phiX 1346 255
+phiX 1347 255
+phiX 1348 255
+phiX 1349 255
+phiX 1350 255
+phiX 1351 255
+phiX 1352 255
+phiX 1353 255
+phiX 1354 255
+phiX 1355 255
+phiX 1356 255
+phiX 1357 255
+phiX 1358 255
+phiX 1359 255
+phiX 1360 255
+phiX 1361 255
+phiX 1362 255
+phiX 1363 255
+phiX 1364 255
+phiX 1365 255
+phiX 1366 255
+phiX 1367 255
+phiX 1368 255
+phiX 1369 255
+phiX 1370 255
+phiX 1371 255
+phiX 1372 255
+phiX 1373 255
+phiX 1374 255
+phiX 1375 255
+phiX 1376 255
+phiX 1377 255
+phiX 1378 255
+phiX 1379 255
+phiX 1380 255
+phiX 1381 255
+phiX 1382 255
+phiX 1383 255
+phiX 1384 255
+phiX 1385 255
+phiX 1386 255
+phiX 1387 255
+phiX 1388 255
+phiX 1389 255
+phiX 1390 255
+phiX 1391 255
+phiX 1392 255
+phiX 1393 255
+phiX 1394 255
+phiX 1395 255
+phiX 1396 255
+phiX 1397 255
+phiX 1398 255
+phiX 1399 255
+phiX 1400 255
+phiX 1401 255
+phiX 1402 255
+phiX 1403 255
+phiX 1404 255
+phiX 1405 255
+phiX 1406 255
+phiX 1407 255
+phiX 1408 255
+phiX 1409 255
+phiX 1410 255
+phiX 1411 255
+phiX 1412 255
+phiX 1413 255
+phiX 1414 255
+phiX 1415 255
+phiX 1416 255
+phiX 1417 255
+phiX 1418 255
+phiX 1419 255
+phiX 1420 255
+phiX 1421 255
+phiX 1422 255
+phiX 1423 255
+phiX 1424 255
+phiX 1425 255
+phiX 1426 255
+phiX 1427 255
+phiX 1428 255
+phiX 1429 255
+phiX 1430 255
+phiX 1431 255
+phiX 1432 255
+phiX 1433 255
+phiX 1434 255
+phiX 1435 255
+phiX 1436 255
+phiX 1437 255
+phiX 1438 255
+phiX 1439 255
+phiX 1440 255
+phiX 1441 255
+phiX 1442 255
+phiX 1443 255
+phiX 1444 255
+phiX 1445 255
+phiX 1446 255
+phiX 1447 255
+phiX 1448 255
+phiX 1449 255
+phiX 1450 255
+phiX 1451 255
+phiX 1452 255
+phiX 1453 255
+phiX 1454 255
+phiX 1455 255
+phiX 1456 255
+phiX 1457 255
+phiX 1458 255
+phiX 1459 255
+phiX 1460 255
+phiX 1461 255
+phiX 1462 255
+phiX 1463 255
+phiX 1464 255
+phiX 1465 255
+phiX 1466 255
+phiX 1467 255
+phiX 1468 255
+phiX 1469 255
+phiX 1470 255
+phiX 1471 255
+phiX 1472 255
+phiX 1473 255
+phiX 1474 255
+phiX 1475 255
+phiX 1476 255
+phiX 1477 255
+phiX 1478 255
+phiX 1479 255
+phiX 1480 255
+phiX 1481 255
+phiX 1482 255
+phiX 1483 255
+phiX 1484 255
+phiX 1485 255
+phiX 1486 255
+phiX 1487 255
+phiX 1488 255
+phiX 1489 255
+phiX 1490 255
+phiX 1491 255
+phiX 1492 255
+phiX 1493 255
+phiX 1494 255
+phiX 1495 255
+phiX 1496 255
+phiX 1497 255
+phiX 1498 255
+phiX 1499 255
+phiX 1500 255
+phiX 1501 255
+phiX 1502 255
+phiX 1503 255
+phiX 1504 255
+phiX 1505 255
+phiX 1506 255
+phiX 1507 255
+phiX 1508 255
+phiX 1509 255
+phiX 1510 255
+phiX 1511 255
+phiX 1512 255
+phiX 1513 255
+phiX 1514 255
+phiX 1515 255
+phiX 1516 255
+phiX 1517 255
+phiX 1518 255
+phiX 1519 255
+phiX 1520 255
+phiX 1521 255
+phiX 1522 255
+phiX 1523 255
+phiX 1524 255
+phiX 1525 255
+phiX 1526 255
+phiX 1527 255
+phiX 1528 255
+phiX 1529 255
+phiX 1530 255
+phiX 1531 255
+phiX 1532 255
+phiX 1533 255
+phiX 1534 255
+phiX 1535 255
+phiX 1536 255
+phiX 1537 255
+phiX 1538 255
+phiX 1539 255
+phiX 1540 255
+phiX 1541 255
+phiX 1542 255
+phiX 1543 255
+phiX 1544 255
+phiX 1545 255
+phiX 1546 255
+phiX 1547 255
+phiX 1548 255
+phiX 1549 255
+phiX 1550 255
+phiX 1551 255
+phiX 1552 255
+phiX 1553 255
+phiX 1554 255
+phiX 1555 255
+phiX 1556 255
+phiX 1557 255
+phiX 1558 255
+phiX 1559 255
+phiX 1560 255
+phiX 1561 255
+phiX 1562 255
+phiX 1563 255
+phiX 1564 255
+phiX 1565 255
+phiX 1566 255
+phiX 1567 255
+phiX 1568 255
+phiX 1569 255
+phiX 1570 255
+phiX 1571 255
+phiX 1572 255
+phiX 1573 255
+phiX 1574 255
+phiX 1575 255
+phiX 1576 255
+phiX 1577 255
+phiX 1578 255
+phiX 1579 255
+phiX 1580 255
+phiX 1581 255
+phiX 1582 255
+phiX 1583 255
+phiX 1584 255
+phiX 1585 255
+phiX 1586 255
+phiX 1587 255
+phiX 1588 255
+phiX 1589 255
+phiX 1590 255
+phiX 1591 255
+phiX 1592 255
+phiX 1593 255
+phiX 1594 255
+phiX 1595 255
+phiX 1596 255
+phiX 1597 255
+phiX 1598 255
+phiX 1599 255
+phiX 1600 255
+phiX 1601 255
+phiX 1602 255
+phiX 1603 255
+phiX 1604 255
+phiX 1605 255
+phiX 1606 255
+phiX 1607 255
+phiX 1608 255
+phiX 1609 255
+phiX 1610 255
+phiX 1611 255
+phiX 1612 255
+phiX 1613 255
+phiX 1614 255
+phiX 1615 255
+phiX 1616 255
+phiX 1617 255
+phiX 1618 255
+phiX 1619 255
+phiX 1620 255
+phiX 1621 255
+phiX 1622 255
+phiX 1623 255
+phiX 1624 255
+phiX 1625 255
+phiX 1626 255
+phiX 1627 255
+phiX 1628 255
+phiX 1629 255
+phiX 1630 255
+phiX 1631 255
+phiX 1632 255
+phiX 1633 255
+phiX 1634 255
+phiX 1635 255
+phiX 1636 255
+phiX 1637 255
+phiX 1638 255
+phiX 1639 255
+phiX 1640 255
+phiX 1641 255
+phiX 1642 255
+phiX 1643 255
+phiX 1644 255
+phiX 1645 255
+phiX 1646 255
+phiX 1647 255
+phiX 1648 255
+phiX 1649 255
+phiX 1650 255
+phiX 1651 255
+phiX 1652 255
+phiX 1653 255
+phiX 1654 255
+phiX 1655 255
+phiX 1656 255
+phiX 1657 255
+phiX 1658 255
+phiX 1659 255
+phiX 1660 255
+phiX 1661 255
+phiX 1662 255
+phiX 1663 255
+phiX 1664 255
+phiX 1665 255
+phiX 1666 255
+phiX 1667 255
+phiX 1668 255
+phiX 1669 255
+phiX 1670 255
+phiX 1671 255
+phiX 1672 255
+phiX 1673 255
+phiX 1674 255
+phiX 1675 255
+phiX 1676 255
+phiX 1677 255
+phiX 1678 255
+phiX 1679 255
+phiX 1680 255
+phiX 1681 255
+phiX 1682 255
+phiX 1683 255
+phiX 1684 255
+phiX 1685 255
+phiX 1686 255
+phiX 1687 255
+phiX 1688 255
+phiX 1689 255
+phiX 1690 255
+phiX 1691 255
+phiX 1692 255
+phiX 1693 255
+phiX 1694 255
+phiX 1695 255
+phiX 1696 255
+phiX 1697 255
+phiX 1698 255
+phiX 1699 255
+phiX 1700 255
+phiX 1701 255
+phiX 1702 255
+phiX 1703 255
+phiX 1704 255
+phiX 1705 255
+phiX 1706 255
+phiX 1707 255
+phiX 1708 255
+phiX 1709 255
+phiX 1710 255
+phiX 1711 255
+phiX 1712 255
+phiX 1713 255
+phiX 1714 255
+phiX 1715 255
+phiX 1716 255
+phiX 1717 255
+phiX 1718 255
+phiX 1719 255
+phiX 1720 255
+phiX 1721 255
+phiX 1722 255
+phiX 1723 255
+phiX 1724 255
+phiX 1725 255
+phiX 1726 255
+phiX 1727 255
+phiX 1728 255
+phiX 1729 255
+phiX 1730 255
+phiX 1731 255
+phiX 1732 255
+phiX 1733 255
+phiX 1734 255
+phiX 1735 255
+phiX 1736 255
+phiX 1737 255
+phiX 1738 255
+phiX 1739 255
+phiX 1740 255
+phiX 1741 255
+phiX 1742 255
+phiX 1743 255
+phiX 1744 255
+phiX 1745 255
+phiX 1746 255
+phiX 1747 255
+phiX 1748 255
+phiX 1749 255
+phiX 1750 255
+phiX 1751 255
+phiX 1752 255
+phiX 1753 255
+phiX 1754 255
+phiX 1755 255
+phiX 1756 255
+phiX 1757 255
+phiX 1758 255
+phiX 1759 255
+phiX 1760 255
+phiX 1761 255
+phiX 1762 255
+phiX 1763 255
+phiX 1764 255
+phiX 1765 255
+phiX 1766 255
+phiX 1767 255
+phiX 1768 255
+phiX 1769 255
+phiX 1770 255
+phiX 1771 255
+phiX 1772 255
+phiX 1773 255
+phiX 1774 255
+phiX 1775 255
+phiX 1776 255
+phiX 1777 255
+phiX 1778 255
+phiX 1779 255
+phiX 1780 255
+phiX 1781 255
+phiX 1782 255
+phiX 1783 255
+phiX 1784 255
+phiX 1785 255
+phiX 1786 255
+phiX 1787 255
+phiX 1788 255
+phiX 1789 255
+phiX 1790 255
+phiX 1791 255
+phiX 1792 255
+phiX 1793 255
+phiX 1794 255
+phiX 1795 255
+phiX 1796 255
+phiX 1797 255
+phiX 1798 255
+phiX 1799 255
+phiX 1800 255
+phiX 1801 255
+phiX 1802 255
+phiX 1803 255
+phiX 1804 255
+phiX 1805 255
+phiX 1806 255
+phiX 1807 255
+phiX 1808 255
+phiX 1809 255
+phiX 1810 255
+phiX 1811 255
+phiX 1812 255
+phiX 1813 255
+phiX 1814 255
+phiX 1815 255
+phiX 1816 255
+phiX 1817 255
+phiX 1818 255
+phiX 1819 255
+phiX 1820 255
+phiX 1821 255
+phiX 1822 255
+phiX 1823 255
+phiX 1824 255
+phiX 1825 255
+phiX 1826 255
+phiX 1827 255
+phiX 1828 255
+phiX 1829 255
+phiX 1830 255
+phiX 1831 255
+phiX 1832 255
+phiX 1833 255
+phiX 1834 255
+phiX 1835 255
+phiX 1836 255
+phiX 1837 255
+phiX 1838 255
+phiX 1839 255
+phiX 1840 255
+phiX 1841 255
+phiX 1842 255
+phiX 1843 255
+phiX 1844 255
+phiX 1845 255
+phiX 1846 255
+phiX 1847 255
+phiX 1848 255
+phiX 1849 255
+phiX 1850 255
+phiX 1851 255
+phiX 1852 255
+phiX 1853 255
+phiX 1854 255
+phiX 1855 255
+phiX 1856 255
+phiX 1857 255
+phiX 1858 255
+phiX 1859 255
+phiX 1860 255
+phiX 1861 255
+phiX 1862 255
+phiX 1863 255
+phiX 1864 255
+phiX 1865 255
+phiX 1866 255
+phiX 1867 255
+phiX 1868 255
+phiX 1869 255
+phiX 1870 255
+phiX 1871 255
+phiX 1872 255
+phiX 1873 255
+phiX 1874 255
+phiX 1875 255
+phiX 1876 255
+phiX 1877 255
+phiX 1878 255
+phiX 1879 255
+phiX 1880 255
+phiX 1881 255
+phiX 1882 255
+phiX 1883 255
+phiX 1884 255
+phiX 1885 255
+phiX 1886 255
+phiX 1887 255
+phiX 1888 255
+phiX 1889 255
+phiX 1890 255
+phiX 1891 255
+phiX 1892 255
+phiX 1893 255
+phiX 1894 255
+phiX 1895 255
+phiX 1896 255
+phiX 1897 255
+phiX 1898 255
+phiX 1899 255
+phiX 1900 255
+phiX 1901 255
+phiX 1902 255
+phiX 1903 255
+phiX 1904 255
+phiX 1905 255
+phiX 1906 255
+phiX 1907 255
+phiX 1908 255
+phiX 1909 255
+phiX 1910 255
+phiX 1911 255
+phiX 1912 255
+phiX 1913 255
+phiX 1914 255
+phiX 1915 255
+phiX 1916 255
+phiX 1917 255
+phiX 1918 255
+phiX 1919 255
+phiX 1920 255
+phiX 1921 255
+phiX 1922 255
+phiX 1923 255
+phiX 1924 255
+phiX 1925 255
+phiX 1926 255
+phiX 1927 255
+phiX 1928 255
+phiX 1929 255
+phiX 1930 255
+phiX 1931 255
+phiX 1932 255
+phiX 1933 255
+phiX 1934 255
+phiX 1935 255
+phiX 1936 255
+phiX 1937 255
+phiX 1938 255
+phiX 1939 255
+phiX 1940 255
+phiX 1941 255
+phiX 1942 255
+phiX 1943 255
+phiX 1944 255
+phiX 1945 255
+phiX 1946 255
+phiX 1947 255
+phiX 1948 255
+phiX 1949 255
+phiX 1950 255
+phiX 1951 255
+phiX 1952 255
+phiX 1953 255
+phiX 1954 255
+phiX 1955 255
+phiX 1956 255
+phiX 1957 255
+phiX 1958 255
+phiX 1959 255
+phiX 1960 255
+phiX 1961 255
+phiX 1962 255
+phiX 1963 255
+phiX 1964 255
+phiX 1965 255
+phiX 1966 255
+phiX 1967 255
+phiX 1968 255
+phiX 1969 255
+phiX 1970 255
+phiX 1971 255
+phiX 1972 255
+phiX 1973 255
+phiX 1974 255
+phiX 1975 255
+phiX 1976 255
+phiX 1977 255
+phiX 1978 255
+phiX 1979 255
+phiX 1980 255
+phiX 1981 255
+phiX 1982 255
+phiX 1983 255
+phiX 1984 255
+phiX 1985 255
+phiX 1986 255
+phiX 1987 255
+phiX 1988 255
+phiX 1989 255
+phiX 1990 255
+phiX 1991 255
+phiX 1992 255
+phiX 1993 255
+phiX 1994 255
+phiX 1995 255
+phiX 1996 255
+phiX 1997 255
+phiX 1998 255
+phiX 1999 255
+phiX 2000 255
+phiX 2001 255
+phiX 2002 255
+phiX 2003 255
+phiX 2004 255
+phiX 2005 255
+phiX 2006 255
+phiX 2007 255
+phiX 2008 255
+phiX 2009 255
+phiX 2010 255
+phiX 2011 255
+phiX 2012 255
+phiX 2013 255
+phiX 2014 255
+phiX 2015 255
+phiX 2016 255
+phiX 2017 255
+phiX 2018 255
+phiX 2019 255
+phiX 2020 255
+phiX 2021 255
+phiX 2022 255
+phiX 2023 255
+phiX 2024 255
+phiX 2025 255
+phiX 2026 255
+phiX 2027 255
+phiX 2028 255
+phiX 2029 255
+phiX 2030 255
+phiX 2031 255
+phiX 2032 255
+phiX 2033 255
+phiX 2034 255
+phiX 2035 255
+phiX 2036 255
+phiX 2037 255
+phiX 2038 255
+phiX 2039 255
+phiX 2040 255
+phiX 2041 255
+phiX 2042 255
+phiX 2043 255
+phiX 2044 255
+phiX 2045 255
+phiX 2046 255
+phiX 2047 255
+phiX 2048 255
+phiX 2049 255
+phiX 2050 255
+phiX 2051 255
+phiX 2052 255
+phiX 2053 255
+phiX 2054 255
+phiX 2055 255
+phiX 2056 255
+phiX 2057 255
+phiX 2058 255
+phiX 2059 255
+phiX 2060 255
+phiX 2061 255
+phiX 2062 255
+phiX 2063 255
+phiX 2064 255
+phiX 2065 255
+phiX 2066 255
+phiX 2067 255
+phiX 2068 255
+phiX 2069 255
+phiX 2070 255
+phiX 2071 255
+phiX 2072 255
+phiX 2073 255
+phiX 2074 255
+phiX 2075 255
+phiX 2076 255
+phiX 2077 255
+phiX 2078 255
+phiX 2079 255
+phiX 2080 255
+phiX 2081 255
+phiX 2082 255
+phiX 2083 255
+phiX 2084 255
+phiX 2085 255
+phiX 2086 255
+phiX 2087 255
+phiX 2088 255
+phiX 2089 255
+phiX 2090 255
+phiX 2091 255
+phiX 2092 255
+phiX 2093 255
+phiX 2094 255
+phiX 2095 255
+phiX 2096 255
+phiX 2097 255
+phiX 2098 255
+phiX 2099 255
+phiX 2100 255
+phiX 2101 255
+phiX 2102 255
+phiX 2103 255
+phiX 2104 255
+phiX 2105 255
+phiX 2106 255
+phiX 2107 255
+phiX 2108 255
+phiX 2109 255
+phiX 2110 255
+phiX 2111 255
+phiX 2112 255
+phiX 2113 255
+phiX 2114 255
+phiX 2115 255
+phiX 2116 255
+phiX 2117 255
+phiX 2118 255
+phiX 2119 255
+phiX 2120 255
+phiX 2121 255
+phiX 2122 255
+phiX 2123 255
+phiX 2124 255
+phiX 2125 255
+phiX 2126 255
+phiX 2127 255
+phiX 2128 255
+phiX 2129 255
+phiX 2130 255
+phiX 2131 255
+phiX 2132 255
+phiX 2133 255
+phiX 2134 255
+phiX 2135 255
+phiX 2136 255
+phiX 2137 255
+phiX 2138 255
+phiX 2139 255
+phiX 2140 255
+phiX 2141 255
+phiX 2142 255
+phiX 2143 255
+phiX 2144 255
+phiX 2145 255
+phiX 2146 255
+phiX 2147 255
+phiX 2148 255
+phiX 2149 255
+phiX 2150 255
+phiX 2151 255
+phiX 2152 255
+phiX 2153 255
+phiX 2154 255
+phiX 2155 255
+phiX 2156 255
+phiX 2157 255
+phiX 2158 255
+phiX 2159 255
+phiX 2160 255
+phiX 2161 255
+phiX 2162 255
+phiX 2163 255
+phiX 2164 255
+phiX 2165 255
+phiX 2166 255
+phiX 2167 255
+phiX 2168 255
+phiX 2169 255
+phiX 2170 255
+phiX 2171 255
+phiX 2172 255
+phiX 2173 255
+phiX 2174 255
+phiX 2175 255
+phiX 2176 255
+phiX 2177 255
+phiX 2178 255
+phiX 2179 255
+phiX 2180 255
+phiX 2181 255
+phiX 2182 255
+phiX 2183 255
+phiX 2184 255
+phiX 2185 255
+phiX 2186 255
+phiX 2187 255
+phiX 2188 255
+phiX 2189 255
+phiX 2190 255
+phiX 2191 255
+phiX 2192 255
+phiX 2193 255
+phiX 2194 255
+phiX 2195 255
+phiX 2196 255
+phiX 2197 255
+phiX 2198 255
+phiX 2199 255
+phiX 2200 255
+phiX 2201 255
+phiX 2202 255
+phiX 2203 255
+phiX 2204 255
+phiX 2205 255
+phiX 2206 255
+phiX 2207 255
+phiX 2208 255
+phiX 2209 255
+phiX 2210 255
+phiX 2211 255
+phiX 2212 255
+phiX 2213 255
+phiX 2214 255
+phiX 2215 255
+phiX 2216 255
+phiX 2217 255
+phiX 2218 255
+phiX 2219 255
+phiX 2220 255
+phiX 2221 255
+phiX 2222 255
+phiX 2223 255
+phiX 2224 255
+phiX 2225 255
+phiX 2226 255
+phiX 2227 255
+phiX 2228 255
+phiX 2229 255
+phiX 2230 255
+phiX 2231 255
+phiX 2232 255
+phiX 2233 255
+phiX 2234 255
+phiX 2235 255
+phiX 2236 255
+phiX 2237 255
+phiX 2238 255
+phiX 2239 255
+phiX 2240 255
+phiX 2241 255
+phiX 2242 255
+phiX 2243 255
+phiX 2244 255
+phiX 2245 255
+phiX 2246 255
+phiX 2247 255
+phiX 2248 255
+phiX 2249 255
+phiX 2250 255
+phiX 2251 255
+phiX 2252 255
+phiX 2253 255
+phiX 2254 255
+phiX 2255 255
+phiX 2256 255
+phiX 2257 255
+phiX 2258 255
+phiX 2259 255
+phiX 2260 255
+phiX 2261 255
+phiX 2262 255
+phiX 2263 255
+phiX 2264 255
+phiX 2265 255
+phiX 2266 255
+phiX 2267 255
+phiX 2268 255
+phiX 2269 255
+phiX 2270 255
+phiX 2271 255
+phiX 2272 255
+phiX 2273 255
+phiX 2274 255
+phiX 2275 255
+phiX 2276 255
+phiX 2277 255
+phiX 2278 255
+phiX 2279 255
+phiX 2280 255
+phiX 2281 255
+phiX 2282 255
+phiX 2283 255
+phiX 2284 255
+phiX 2285 255
+phiX 2286 255
+phiX 2287 255
+phiX 2288 255
+phiX 2289 255
+phiX 2290 255
+phiX 2291 255
+phiX 2292 255
+phiX 2293 255
+phiX 2294 255
+phiX 2295 255
+phiX 2296 255
+phiX 2297 255
+phiX 2298 255
+phiX 2299 255
+phiX 2300 255
+phiX 2301 255
+phiX 2302 255
+phiX 2303 255
+phiX 2304 255
+phiX 2305 255
+phiX 2306 255
+phiX 2307 255
+phiX 2308 255
+phiX 2309 255
+phiX 2310 255
+phiX 2311 255
+phiX 2312 255
+phiX 2313 255
+phiX 2314 255
+phiX 2315 255
+phiX 2316 255
+phiX 2317 255
+phiX 2318 255
+phiX 2319 255
+phiX 2320 255
+phiX 2321 255
+phiX 2322 255
+phiX 2323 244
+phiX 2324 232
+phiX 2325 222
+phiX 2326 221
+phiX 2327 218
+phiX 2328 210
+phiX 2329 206
+phiX 2330 198
+phiX 2331 198
+phiX 2332 202
+phiX 2333 198
+phiX 2334 202
+phiX 2335 204
+phiX 2336 201
+phiX 2337 209
+phiX 2338 210
+phiX 2339 236
+phiX 2340 252
+phiX 2341 255
+phiX 2342 255
+phiX 2343 255
+phiX 2344 255
+phiX 2345 255
+phiX 2346 255
+phiX 2347 255
+phiX 2348 255
+phiX 2349 255
+phiX 2350 255
+phiX 2351 255
+phiX 2352 255
+phiX 2353 255
+phiX 2354 255
+phiX 2355 255
+phiX 2356 255
+phiX 2357 255
+phiX 2358 255
+phiX 2359 255
+phiX 2360 255
+phiX 2361 255
+phiX 2362 255
+phiX 2363 255
+phiX 2364 255
+phiX 2365 255
+phiX 2366 255
+phiX 2367 255
+phiX 2368 255
+phiX 2369 255
+phiX 2370 255
+phiX 2371 255
+phiX 2372 255
+phiX 2373 255
+phiX 2374 255
+phiX 2375 255
+phiX 2376 255
+phiX 2377 255
+phiX 2378 255
+phiX 2379 255
+phiX 2380 255
+phiX 2381 255
+phiX 2382 255
+phiX 2383 255
+phiX 2384 255
+phiX 2385 255
+phiX 2386 255
+phiX 2387 255
+phiX 2388 255
+phiX 2389 255
+phiX 2390 255
+phiX 2391 255
+phiX 2392 255
+phiX 2393 255
+phiX 2394 255
+phiX 2395 255
+phiX 2396 255
+phiX 2397 255
+phiX 2398 255
+phiX 2399 255
+phiX 2400 255
+phiX 2401 255
+phiX 2402 255
+phiX 2403 255
+phiX 2404 255
+phiX 2405 255
+phiX 2406 255
+phiX 2407 255
+phiX 2408 255
+phiX 2409 255
+phiX 2410 255
+phiX 2411 255
+phiX 2412 255
+phiX 2413 255
+phiX 2414 255
+phiX 2415 255
+phiX 2416 255
+phiX 2417 255
+phiX 2418 255
+phiX 2419 255
+phiX 2420 255
+phiX 2421 255
+phiX 2422 255
+phiX 2423 255
+phiX 2424 255
+phiX 2425 255
+phiX 2426 255
+phiX 2427 255
+phiX 2428 255
+phiX 2429 255
+phiX 2430 255
+phiX 2431 255
+phiX 2432 255
+phiX 2433 255
+phiX 2434 255
+phiX 2435 255
+phiX 2436 255
+phiX 2437 255
+phiX 2438 255
+phiX 2439 255
+phiX 2440 255
+phiX 2441 255
+phiX 2442 255
+phiX 2443 255
+phiX 2444 255
+phiX 2445 255
+phiX 2446 255
+phiX 2447 255
+phiX 2448 255
+phiX 2449 255
+phiX 2450 255
+phiX 2451 255
+phiX 2452 255
+phiX 2453 255
+phiX 2454 255
+phiX 2455 255
+phiX 2456 255
+phiX 2457 255
+phiX 2458 255
+phiX 2459 255
+phiX 2460 255
+phiX 2461 255
+phiX 2462 255
+phiX 2463 255
+phiX 2464 255
+phiX 2465 255
+phiX 2466 255
+phiX 2467 255
+phiX 2468 255
+phiX 2469 255
+phiX 2470 255
+phiX 2471 255
+phiX 2472 255
+phiX 2473 255
+phiX 2474 255
+phiX 2475 255
+phiX 2476 255
+phiX 2477 255
+phiX 2478 255
+phiX 2479 255
+phiX 2480 255
+phiX 2481 255
+phiX 2482 255
+phiX 2483 255
+phiX 2484 255
+phiX 2485 255
+phiX 2486 255
+phiX 2487 255
+phiX 2488 255
+phiX 2489 255
+phiX 2490 255
+phiX 2491 255
+phiX 2492 255
+phiX 2493 255
+phiX 2494 255
+phiX 2495 255
+phiX 2496 255
+phiX 2497 255
+phiX 2498 255
+phiX 2499 255
+phiX 2500 255
+phiX 2501 255
+phiX 2502 255
+phiX 2503 255
+phiX 2504 255
+phiX 2505 255
+phiX 2506 255
+phiX 2507 255
+phiX 2508 255
+phiX 2509 255
+phiX 2510 255
+phiX 2511 255
+phiX 2512 255
+phiX 2513 255
+phiX 2514 255
+phiX 2515 255
+phiX 2516 255
+phiX 2517 255
+phiX 2518 255
+phiX 2519 255
+phiX 2520 255
+phiX 2521 255
+phiX 2522 255
+phiX 2523 255
+phiX 2524 255
+phiX 2525 255
+phiX 2526 255
+phiX 2527 255
+phiX 2528 255
+phiX 2529 255
+phiX 2530 255
+phiX 2531 255
+phiX 2532 255
+phiX 2533 255
+phiX 2534 255
+phiX 2535 255
+phiX 2536 255
+phiX 2537 255
+phiX 2538 255
+phiX 2539 255
+phiX 2540 255
+phiX 2541 255
+phiX 2542 255
+phiX 2543 255
+phiX 2544 255
+phiX 2545 255
+phiX 2546 255
+phiX 2547 255
+phiX 2548 255
+phiX 2549 255
+phiX 2550 255
+phiX 2551 255
+phiX 2552 255
+phiX 2553 255
+phiX 2554 255
+phiX 2555 255
+phiX 2556 255
+phiX 2557 255
+phiX 2558 255
+phiX 2559 255
+phiX 2560 255
+phiX 2561 255
+phiX 2562 255
+phiX 2563 255
+phiX 2564 255
+phiX 2565 255
+phiX 2566 255
+phiX 2567 255
+phiX 2568 255
+phiX 2569 255
+phiX 2570 255
+phiX 2571 255
+phiX 2572 255
+phiX 2573 255
+phiX 2574 255
+phiX 2575 255
+phiX 2576 255
+phiX 2577 255
+phiX 2578 255
+phiX 2579 255
+phiX 2580 255
+phiX 2581 255
+phiX 2582 255
+phiX 2583 255
+phiX 2584 255
+phiX 2585 255
+phiX 2586 255
+phiX 2587 255
+phiX 2588 255
+phiX 2589 255
+phiX 2590 255
+phiX 2591 255
+phiX 2592 255
+phiX 2593 255
+phiX 2594 255
+phiX 2595 255
+phiX 2596 255
+phiX 2597 255
+phiX 2598 255
+phiX 2599 255
+phiX 2600 255
+phiX 2601 255
+phiX 2602 255
+phiX 2603 255
+phiX 2604 255
+phiX 2605 255
+phiX 2606 255
+phiX 2607 255
+phiX 2608 255
+phiX 2609 255
+phiX 2610 255
+phiX 2611 255
+phiX 2612 255
+phiX 2613 255
+phiX 2614 255
+phiX 2615 255
+phiX 2616 255
+phiX 2617 255
+phiX 2618 255
+phiX 2619 255
+phiX 2620 255
+phiX 2621 255
+phiX 2622 255
+phiX 2623 255
+phiX 2624 255
+phiX 2625 255
+phiX 2626 255
+phiX 2627 255
+phiX 2628 255
+phiX 2629 255
+phiX 2630 255
+phiX 2631 255
+phiX 2632 255
+phiX 2633 255
+phiX 2634 255
+phiX 2635 255
+phiX 2636 255
+phiX 2637 255
+phiX 2638 255
+phiX 2639 255
+phiX 2640 255
+phiX 2641 255
+phiX 2642 255
+phiX 2643 255
+phiX 2644 255
+phiX 2645 255
+phiX 2646 255
+phiX 2647 255
+phiX 2648 255
+phiX 2649 255
+phiX 2650 255
+phiX 2651 255
+phiX 2652 255
+phiX 2653 255
+phiX 2654 255
+phiX 2655 255
+phiX 2656 255
+phiX 2657 255
+phiX 2658 255
+phiX 2659 255
+phiX 2660 255
+phiX 2661 255
+phiX 2662 255
+phiX 2663 255
+phiX 2664 255
+phiX 2665 255
+phiX 2666 255
+phiX 2667 255
+phiX 2668 255
+phiX 2669 255
+phiX 2670 255
+phiX 2671 255
+phiX 2672 255
+phiX 2673 255
+phiX 2674 255
+phiX 2675 255
+phiX 2676 255
+phiX 2677 255
+phiX 2678 255
+phiX 2679 255
+phiX 2680 255
+phiX 2681 255
+phiX 2682 255
+phiX 2683 255
+phiX 2684 255
+phiX 2685 255
+phiX 2686 255
+phiX 2687 255
+phiX 2688 255
+phiX 2689 255
+phiX 2690 255
+phiX 2691 255
+phiX 2692 255
+phiX 2693 255
+phiX 2694 255
+phiX 2695 255
+phiX 2696 255
+phiX 2697 255
+phiX 2698 255
+phiX 2699 255
+phiX 2700 255
+phiX 2701 255
+phiX 2702 255
+phiX 2703 255
+phiX 2704 255
+phiX 2705 255
+phiX 2706 255
+phiX 2707 255
+phiX 2708 255
+phiX 2709 255
+phiX 2710 255
+phiX 2711 255
+phiX 2712 255
+phiX 2713 255
+phiX 2714 255
+phiX 2715 255
+phiX 2716 255
+phiX 2717 255
+phiX 2718 255
+phiX 2719 255
+phiX 2720 255
+phiX 2721 255
+phiX 2722 255
+phiX 2723 255
+phiX 2724 255
+phiX 2725 255
+phiX 2726 255
+phiX 2727 255
+phiX 2728 255
+phiX 2729 255
+phiX 2730 255
+phiX 2731 255
+phiX 2732 255
+phiX 2733 255
+phiX 2734 255
+phiX 2735 255
+phiX 2736 255
+phiX 2737 255
+phiX 2738 255
+phiX 2739 255
+phiX 2740 255
+phiX 2741 255
+phiX 2742 255
+phiX 2743 255
+phiX 2744 255
+phiX 2745 255
+phiX 2746 255
+phiX 2747 255
+phiX 2748 255
+phiX 2749 255
+phiX 2750 255
+phiX 2751 255
+phiX 2752 255
+phiX 2753 255
+phiX 2754 255
+phiX 2755 255
+phiX 2756 255
+phiX 2757 255
+phiX 2758 255
+phiX 2759 255
+phiX 2760 255
+phiX 2761 255
+phiX 2762 255
+phiX 2763 255
+phiX 2764 255
+phiX 2765 255
+phiX 2766 255
+phiX 2767 255
+phiX 2768 255
+phiX 2769 255
+phiX 2770 255
+phiX 2771 255
+phiX 2772 255
+phiX 2773 255
+phiX 2774 255
+phiX 2775 255
+phiX 2776 255
+phiX 2777 255
+phiX 2778 255
+phiX 2779 255
+phiX 2780 255
+phiX 2781 255
+phiX 2782 255
+phiX 2783 255
+phiX 2784 255
+phiX 2785 255
+phiX 2786 255
+phiX 2787 255
+phiX 2788 255
+phiX 2789 255
+phiX 2790 255
+phiX 2791 255
+phiX 2792 255
+phiX 2793 255
+phiX 2794 255
+phiX 2795 255
+phiX 2796 255
+phiX 2797 255
+phiX 2798 255
+phiX 2799 255
+phiX 2800 255
+phiX 2801 255
+phiX 2802 255
+phiX 2803 255
+phiX 2804 255
+phiX 2805 255
+phiX 2806 255
+phiX 2807 255
+phiX 2808 255
+phiX 2809 255
+phiX 2810 255
+phiX 2811 255
+phiX 2812 255
+phiX 2813 255
+phiX 2814 255
+phiX 2815 255
+phiX 2816 255
+phiX 2817 255
+phiX 2818 255
+phiX 2819 255
+phiX 2820 255
+phiX 2821 255
+phiX 2822 255
+phiX 2823 255
+phiX 2824 255
+phiX 2825 255
+phiX 2826 255
+phiX 2827 255
+phiX 2828 255
+phiX 2829 255
+phiX 2830 255
+phiX 2831 255
+phiX 2832 255
+phiX 2833 255
+phiX 2834 255
+phiX 2835 255
+phiX 2836 255
+phiX 2837 255
+phiX 2838 255
+phiX 2839 255
+phiX 2840 255
+phiX 2841 255
+phiX 2842 255
+phiX 2843 255
+phiX 2844 255
+phiX 2845 255
+phiX 2846 255
+phiX 2847 255
+phiX 2848 255
+phiX 2849 255
+phiX 2850 255
+phiX 2851 255
+phiX 2852 255
+phiX 2853 255
+phiX 2854 255
+phiX 2855 255
+phiX 2856 255
+phiX 2857 255
+phiX 2858 255
+phiX 2859 255
+phiX 2860 255
+phiX 2861 255
+phiX 2862 255
+phiX 2863 255
+phiX 2864 255
+phiX 2865 255
+phiX 2866 255
+phiX 2867 255
+phiX 2868 255
+phiX 2869 255
+phiX 2870 255
+phiX 2871 255
+phiX 2872 255
+phiX 2873 255
+phiX 2874 255
+phiX 2875 255
+phiX 2876 255
+phiX 2877 255
+phiX 2878 255
+phiX 2879 255
+phiX 2880 255
+phiX 2881 255
+phiX 2882 255
+phiX 2883 255
+phiX 2884 255
+phiX 2885 255
+phiX 2886 255
+phiX 2887 255
+phiX 2888 255
+phiX 2889 255
+phiX 2890 255
+phiX 2891 255
+phiX 2892 255
+phiX 2893 255
+phiX 2894 255
+phiX 2895 255
+phiX 2896 255
+phiX 2897 255
+phiX 2898 255
+phiX 2899 255
+phiX 2900 255
+phiX 2901 255
+phiX 2902 255
+phiX 2903 255
+phiX 2904 255
+phiX 2905 255
+phiX 2906 255
+phiX 2907 255
+phiX 2908 255
+phiX 2909 255
+phiX 2910 255
+phiX 2911 255
+phiX 2912 255
+phiX 2913 255
+phiX 2914 255
+phiX 2915 255
+phiX 2916 255
+phiX 2917 255
+phiX 2918 255
+phiX 2919 255
+phiX 2920 255
+phiX 2921 255
+phiX 2922 255
+phiX 2923 255
+phiX 2924 255
+phiX 2925 255
+phiX 2926 255
+phiX 2927 255
+phiX 2928 255
+phiX 2929 255
+phiX 2930 255
+phiX 2931 255
+phiX 2932 255
+phiX 2933 255
+phiX 2934 255
+phiX 2935 255
+phiX 2936 255
+phiX 2937 255
+phiX 2938 255
+phiX 2939 255
+phiX 2940 255
+phiX 2941 255
+phiX 2942 255
+phiX 2943 255
+phiX 2944 255
+phiX 2945 255
+phiX 2946 255
+phiX 2947 255
+phiX 2948 255
+phiX 2949 255
+phiX 2950 255
+phiX 2951 255
+phiX 2952 255
+phiX 2953 255
+phiX 2954 255
+phiX 2955 255
+phiX 2956 255
+phiX 2957 255
+phiX 2958 255
+phiX 2959 255
+phiX 2960 255
+phiX 2961 255
+phiX 2962 255
+phiX 2963 255
+phiX 2964 255
+phiX 2965 255
+phiX 2966 255
+phiX 2967 255
+phiX 2968 255
+phiX 2969 255
+phiX 2970 255
+phiX 2971 255
+phiX 2972 255
+phiX 2973 255
+phiX 2974 255
+phiX 2975 255
+phiX 2976 255
+phiX 2977 255
+phiX 2978 255
+phiX 2979 255
+phiX 2980 255
+phiX 2981 255
+phiX 2982 255
+phiX 2983 255
+phiX 2984 255
+phiX 2985 255
+phiX 2986 255
+phiX 2987 255
+phiX 2988 255
+phiX 2989 255
+phiX 2990 255
+phiX 2991 255
+phiX 2992 255
+phiX 2993 255
+phiX 2994 255
+phiX 2995 255
+phiX 2996 255
1
0