def run(description): parser = argparse.ArgumentParser( description = 'Deinterleaves sequence file, so that reads are written alternately between two output files', usage = 'fastaq deinterleave [options] <infile> <out_fwd> <out_rev>') parser.add_argument('--fasta_out', action='store_true', help='Use this to write output as fasta (default is same as input)', default=False) parser.add_argument('infile', help='Name of fasta/q file to be deinterleaved') parser.add_argument('out_fwd', help='Name of output fasta/q file of forwards reads') parser.add_argument('out_rev', help='Name of output fasta/q file of reverse reads') options = parser.parse_args() tasks.deinterleave(options.infile, options.out_fwd, options.out_rev, fasta_out=options.fasta_out)
def test_deinterleave(self): '''deinterleave should deal with an interleaved file correctly''' tmp_1 = 'tmp.deinterleaved_1.fa' tmp_2 = 'tmp.deinterleaved_2.fa' tasks.deinterleave(os.path.join(data_dir, 'sequences_test_interleaved.fa'), tmp_1, tmp_2) self.assertTrue(filecmp.cmp(os.path.join(data_dir, 'sequences_test_deinterleaved_1.fa'), tmp_1)) self.assertTrue(filecmp.cmp(os.path.join(data_dir, 'sequences_test_deinterleaved_2.fa'), tmp_2)) tasks.deinterleave(os.path.join(data_dir, 'sequences_test_interleaved.fq'), tmp_1, tmp_2, fasta_out=True) self.assertTrue(filecmp.cmp(os.path.join(data_dir, 'sequences_test_deinterleaved_1.fa'), tmp_1)) self.assertTrue(filecmp.cmp(os.path.join(data_dir, 'sequences_test_deinterleaved_2.fa'), tmp_2)) with self.assertRaises(tasks.Error): tasks.deinterleave(os.path.join(data_dir, 'sequences_test_interleaved_bad.fa'), tmp_1, tmp_2) os.unlink(tmp_1) os.unlink(tmp_2)