Skip to content

Commit 6be87ba

Browse files
committed
Merge pull request #1170 from adamrp/demux_fasta_formatter
Fix demux to_ascii for fasta files
2 parents da407f6 + b04394c commit 6be87ba

File tree

2 files changed

+32
-16
lines changed

2 files changed

+32
-16
lines changed

qiita_ware/demux.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,10 @@ def to_ascii(demux, samples=None):
438438
for samp, idx, seq, qual, bc_ori, bc_cor, bc_err in fetch(demux, samples):
439439
seq_id = id_fmt % {'sample': samp, 'idx': idx, 'bc_ori': bc_ori,
440440
'bc_cor': bc_cor, 'bc_diff': bc_err}
441-
yield formatter(seq_id, seq, qual.astype(np.uint8))
441+
if qual is not None:
442+
qual = qual.astype(np.uint8)
443+
444+
yield formatter(seq_id, seq, qual)
442445

443446

444447
def to_per_sample_ascii(demux, samples=None):

qiita_ware/test/test_demux.py

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -246,11 +246,9 @@ def test_to_hdf5(self):
246246
with tempfile.NamedTemporaryFile('r+', suffix='.fna',
247247
delete=False) as f:
248248
f.write(seqdata)
249-
f.flush()
250-
f.close()
251249

252-
to_hdf5(f.name, self.hdf5_file)
253-
self.to_remove.append(f.name)
250+
self.to_remove.append(f.name)
251+
to_hdf5(f.name, self.hdf5_file)
254252

255253
npt.assert_equal(self.hdf5_file['a/sequence'][:], np.array(["x", "xy",
256254
"xyz"]))
@@ -283,14 +281,30 @@ def test_to_ascii(self):
283281
with tempfile.NamedTemporaryFile('r+', suffix='.fq',
284282
delete=False) as f:
285283
f.write(fqdata)
286-
f.flush()
287-
f.close()
288-
to_hdf5(f.name, self.hdf5_file)
289-
self.to_remove.append(f.name)
290284

291-
exp = [(b"@a_0 orig_bc=abc new_bc=abc bc_diffs=0\nxyz\n+\nABC\n"),
292-
(b"@b_0 orig_bc=abw new_bc=wbc bc_diffs=4\nqwe\n+\nDFG\n"),
293-
(b"@b_1 orig_bc=abw new_bc=wbc bc_diffs=4\nqwe\n+\nDEF\n")]
285+
self.to_remove.append(f.name)
286+
to_hdf5(f.name, self.hdf5_file)
287+
288+
exp = [b"@a_0 orig_bc=abc new_bc=abc bc_diffs=0\nxyz\n+\nABC\n",
289+
b"@b_0 orig_bc=abw new_bc=wbc bc_diffs=4\nqwe\n+\nDFG\n",
290+
b"@b_1 orig_bc=abw new_bc=wbc bc_diffs=4\nqwe\n+\nDEF\n"]
291+
292+
obs = list(to_ascii(self.hdf5_file, samples=['a', 'b']))
293+
self.assertEqual(obs, exp)
294+
295+
def test_to_ascii_fasta(self):
296+
with tempfile.NamedTemporaryFile('r+', suffix='.fna',
297+
delete=False) as f:
298+
f.write(seqdata)
299+
300+
self.to_remove.append(f.name)
301+
to_hdf5(f.name, self.hdf5_file)
302+
303+
exp = [b">a_0 orig_bc=abc new_bc=abc bc_diffs=0\nx\n",
304+
b">a_1 orig_bc=aby new_bc=ybc bc_diffs=2\nxy\n",
305+
b">a_2 orig_bc=abz new_bc=zbc bc_diffs=3\nxyz\n",
306+
b">b_0 orig_bc=abx new_bc=xbc bc_diffs=1\nxyz\n",
307+
b">b_1 orig_bc=abw new_bc=wbc bc_diffs=4\nabcd\n"]
294308

295309
obs = list(to_ascii(self.hdf5_file, samples=['a', 'b']))
296310
self.assertEqual(obs, exp)
@@ -299,10 +313,9 @@ def test_to_per_sample_ascii(self):
299313
with tempfile.NamedTemporaryFile('r+', suffix='.fq',
300314
delete=False) as f:
301315
f.write(fqdata)
302-
f.flush()
303-
f.close()
304-
to_hdf5(f.name, self.hdf5_file)
305-
self.to_remove.append(f.name)
316+
317+
self.to_remove.append(f.name)
318+
to_hdf5(f.name, self.hdf5_file)
306319

307320
exp = [('a', [(b"@a_0 orig_bc=abc new_bc=abc bc_diffs=0\nxyz\n+\n"
308321
"ABC\n")]),

0 commit comments

Comments
 (0)