2 Create simulated solexa/illumina runfolders for testing
8 TEST_CODE_DIR = os.path.split(__file__)[0]
9 TESTDATA_DIR = os.path.join(TEST_CODE_DIR, 'testdata')
10 LANE_LIST = range(1,9)
12 def make_firecrest_dir(data_dir, version="1.9.2", start=1, stop=37):
13 firecrest_dir = os.path.join(data_dir,
14 'C%d-%d_Firecrest%s_12-04-2008_diane' % (start, stop, version)
16 os.mkdir(firecrest_dir)
19 def make_ipar_dir(data_dir, version='1.01'):
21 Construct an artificial ipar parameter file and directory
23 ipar1_01_file = os.path.join(TESTDATA_DIR, 'IPAR1.01.params')
24 shutil.copy(ipar1_01_file, os.path.join(data_dir, '.params'))
26 ipar_dir = os.path.join(data_dir, 'IPAR_%s' % (version,))
27 if not os.path.exists(ipar_dir):
31 def make_flowcell_id(runfolder_dir, flowcell_id=None):
32 if flowcell_id is None:
33 flowcell_id = '207BTAAXY'
35 config = """<?xml version="1.0"?>
38 </FlowcellId>""" % (flowcell_id,)
39 config_dir = os.path.join(runfolder_dir, 'Config')
41 if not os.path.exists(config_dir):
43 pathname = os.path.join(config_dir, 'FlowcellId.xml')
44 f = open(pathname,'w')
48 def make_bustard_config132(gerald_dir):
49 source = os.path.join(TESTDATA_DIR, 'bustard-config132.xml')
50 destination = os.path.join(gerald_dir, 'config.xml')
51 shutil.copy(source, destination)
53 def make_matrix(matrix_filename):
54 contents = """# Auto-generated frequency response matrix
61 -0.10 -0.10 1.17 -0.03
64 f = open(matrix_filename, 'w')
68 def make_phasing_params(bustard_dir):
69 for lane in range(1,9):
70 pathname = os.path.join(bustard_dir, 'params%d.xml' % (lane))
71 f = open(pathname, 'w')
72 f.write("""<Parameters>
73 <Phasing>0.009900</Phasing>
74 <Prephasing>0.003500</Prephasing>
79 def make_gerald_config_026(gerald_dir):
80 source = os.path.join(TESTDATA_DIR, 'gerald_config_0.2.6.xml')
81 destination = os.path.join(gerald_dir, 'config.xml')
82 shutil.copy(source, destination)
84 def make_gerald_config_100(gerald_dir):
85 source = os.path.join(TESTDATA_DIR, 'gerald_config_1.0.xml')
86 destination = os.path.join(gerald_dir, 'config.xml')
87 shutil.copy(source, destination)
89 def make_summary_htm_100(gerald_dir):
90 source = os.path.join(TESTDATA_DIR, 'Summary-pipeline100.htm')
91 destination = os.path.join(gerald_dir, 'Summary.htm')
92 shutil.copy(source, destination)
94 def make_summary_htm_110(gerald_dir):
95 source = os.path.join(TESTDATA_DIR, 'Summary-pipeline110.htm')
96 destination = os.path.join(gerald_dir, 'Summary.htm')
97 shutil.copy(source, destination)
99 def make_summary_paired_htm(gerald_dir):
100 source = os.path.join(TESTDATA_DIR, 'Summary-paired-pipeline110.htm')
101 destination = os.path.join(gerald_dir, 'Summary.htm')
102 shutil.copy(source, destination)
104 def make_summary_ipar130_htm(gerald_dir):
105 source = os.path.join(TESTDATA_DIR, 'Summary-ipar130.htm')
106 destination = os.path.join(gerald_dir, 'Summary.htm')
107 shutil.copy(source, destination)
109 def make_eland_results(gerald_dir):
110 eland_result = """>HWI-EAS229_24_207BTAAXX:1:7:599:759 ACATAGNCACAGACATAAACATAGACATAGAC U0 1 1 3 chrUextra.fa 28189829 R D.
111 >HWI-EAS229_24_207BTAAXX:1:7:205:842 AAACAANNCTCCCAAACACGTAAACTGGAAAA U1 0 1 0 chr2L.fa 8796855 R DD 24T
112 >HWI-EAS229_24_207BTAAXX:1:7:776:582 AGCTCANCCGATCGAAAACCTCNCCAAGCAAT NM 0 0 0
113 >HWI-EAS229_24_207BTAAXX:1:7:205:842 AAACAANNCTCCCAAACACGTAAACTGGAAAA U1 0 1 0 Lambda.fa 8796855 R DD 24T
116 pathname = os.path.join(gerald_dir,
117 's_%d_eland_result.txt' % (i,))
118 f = open(pathname, 'w')
119 f.write(eland_result)
122 def make_eland_multi(gerald_dir, paired=False, lane_list=LANE_LIST):
123 eland_multi = [""">HWI-EAS229_60_30DP9AAXX:1:1:1221:788 AAGATATCTACGACGTGGTATGGCGGTGTCTGGTCGT NM
124 >HWI-EAS229_60_30DP9AAXX:1:1:931:747 AAAAAAGCAAATTTCATTCACATGTTCTGTGTTCATA 1:0:2 chr5.fa:55269838R0
125 >HWI-EAS229_60_30DP9AAXX:1:1:1121:379 AGAAGAGACATTAAGAGTTCCTGAAATTTATATCTGG 2:1:0 chr16.fa:46189180R1,chr7.fa:122968519R0,chr8.fa:48197174F0
126 >HWI-EAS229_60_30DP9AAXX:1:1:892:1155 ACATTCTCCTTTCCTTCTGAAGTTTTTACGATTCTTT 0:9:10 chr10.fa:114298201F1,chr12.fa:8125072F1,19500297F2,42341293R2,chr13.fa:27688155R2,95069772R1,chr15.fa:51016475F2,chr16.fa:27052155F2,chr1.fa:192426217R2,chr21.fa:23685310R2,chr2.fa:106680068F1,chr3.fa:185226695F2,chr4.fa:106626808R2,chr5.fa:14704894F1,43530779F1,126543189F2,chr6.fa:74284101F1,chr7.fa:22516603F1,chr9.fa:134886204R
127 >HWI-EAS229_60_30DP9AAXX:1:1:931:747 AAAAAAGCAAATTTCATTCACATGTTCTGTGTTCATA 1:0:0 spike.fa/sample1:55269838R0
128 >HWI-EAS229_60_30DP9AAXX:1:1:931:747 AAAAAAGCAAATTTCATTCACATGTTCTGTGTTCATA 1:0:0 spike.fa/sample2:55269838R0
129 """, """>HWI-EAS229_60_30DP9AAXX:1:1:1221:788 AAGATATCTACGACGTGGTATGGCGGTGTCTGGTCGT NM
130 >HWI-EAS229_60_30DP9AAXX:1:1:1221:788 NNNNNNNNNNNNNNGTGGTATGGCGGTGTCTGGTCGT QC
131 >HWI-EAS229_60_30DP9AAXX:1:1:931:747 AAAAAAGCAAATTTCATTCACATGTTCTGTGTTCATA 1:0:2 chr5.fa:55269838R0
132 >HWI-EAS229_60_30DP9AAXX:1:1:1121:379 AGAAGAGACATTAAGAGTTCCTGAAATTTATATCTGG 2:1:0 chr16.fa:46189180R1,chr7.fa:122968519R0,chr8.fa:48197174F0,chr7.fa:22516603F1,chr9.fa:134886204R
133 >HWI-EAS229_60_30DP9AAXX:1:1:892:1155 ACATTCTCCTTTCCTTCTGAAGTTTTTACGATTCTTT 0:9:10 chr10.fa:114298201F1,chr12.fa:8125072F1,19500297F2,42341293R2,chr13.fa:27688155R2,95069772R1,chr15.fa:51016475F2,chr16.fa:27052155F2,chr1.fa:192426217R2,chr21.fa:23685310R2,chr2.fa:106680068F1,chr3.fa:185226695F2,chr4.fa:106626808R2,chr5.fa:14704894F1,43530779F1,126543189F2,chr6.fa:74284101F1
134 >HWI-EAS229_60_30DP9AAXX:1:1:931:747 AAAAAAGCAAATTTCATTCACATGTTCTGTGTTCATA 1:0:0 spike.fa/sample1:55269838R0
135 >HWI-EAS229_60_30DP9AAXX:1:1:931:747 AAAAAAGCAAATTTCATTCACATGTTCTGTGTTCATA 1:0:0 spike.fa/sample2:55269838R0
140 pathname = os.path.join(gerald_dir,
141 's_%d_%d_eland_multi.txt' % (i,e))
142 f = open(pathname, 'w')
143 f.write(eland_multi[e-1])
147 pathname = os.path.join(gerald_dir,
148 's_%d_eland_multi.txt' % (i,))
149 f = open(pathname, 'w')
150 f.write(eland_multi[0])
153 def make_scarf(gerald_dir, lane_list=LANE_LIST):
154 seq = """HWI-EAS229_92_30VNBAAXX:1:1:0:161:NCAATTACACGACGCTAGCCCTAAAGCTATTTCGAGG:E[aaaabb^a\a_^^a[S`ba_WZUXaaaaaaUKPER
155 HWI-EAS229_92_30VNBAAXX:1:1:0:447:NAGATGCGCATTTGAAGTAGGAGCAAAAGATCAAGGT:EUabaab^baabaaaaaaaa^^Uaaaaa\aaaa__`a
156 HWI-EAS229_92_30VNBAAXX:1:1:0:1210:NATAGCCTCTATAGAAGCCACTATTATTTTTTTCTTA:EUa`]`baaaaa^XQU^a`S``S_`J_aaaaaabb^V
157 HWI-EAS229_92_30VNBAAXX:1:1:0:1867:NTGGAGCAGATATAAAAACAGATGGTGACGTTGAAGT:E[^UaaaUaba^aaa^aa^XV\baaLaLaaaaQVXV^
158 HWI-EAS229_92_30VNBAAXX:1:1:0:1898:NAGCTCGTGTCGTGAGATGTTAGGTTAAGTCCTGCAA:EK_aaaaaaaaaaaUZaaZaXM[aaaXSM\aaZ]URE
161 pathname = os.path.join(gerald_dir, 's_%d_sequence.txt' %(l,))
162 f = open(pathname,'w')
166 def make_fastq(gerald_dir, lane_list=LANE_LIST):
167 seq = """@HWI-EAS229:1:2:182:712#0/1
168 AAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAA
169 +HWI-EAS229:1:2:182:712#0/1
170 \bab_bbaabbababbaaa]]D]bb_baabbab\baa
171 @HWI-EAS229:1:2:198:621#0/1
172 CCCCCCCCCCCCCCCCCCCCCNCCCCCCCCCCCCCCC
173 +HWI-EAS229:1:2:198:621#0/1
174 [aaaaaaa`_`aaaaaaa[`ZDZaaaaaaaaaaaaaa
175 @HWI-EAS229:1:2:209:1321#0/1
176 AAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAA
177 +HWI-EAS229:1:2:209:1321#0/1
178 _bbbbbaaababaabbbbab]D]aaaaaaaaaaaaaa
181 pathname = os.path.join(gerald_dir, 's_%d_sequence.txt' %(l,))
182 f = open(pathname,'w')