def test_roundtrip_writer(self, filename): output_path = test_utils.test_tmpfile(filename) original_reader = sam.SamReader(test_utils.genomics_core_testdata(filename)) original_records = list(original_reader.iterate()) with sam.SamWriter(output_path, header=original_reader.header) as writer: for record in original_records: writer.write(record) with sam.SamReader(output_path) as new_reader: self.assertEqual(original_records, list(new_reader.iterate()))
def test_make_read_writer_tfrecords(self): outfile = test_utils.test_tmpfile('test.tfrecord') writer = sam.SamWriter(outfile, header=self.header) # Test that the writer is a context manager and that we can write a read to # it. with writer: writer.write(self.read1) writer.write(self.read2) # Our output should have exactly one read in it. self.assertEqual([self.read1, self.read2], list( tfrecord.read_tfrecords(outfile, proto=reads_pb2.Read)))
def test_roundtrip_cram_writer(self, filename, has_embedded_ref): output_path = test_utils.test_tmpfile(filename) writer_ref_path = test_utils.genomics_core_testdata('test.fasta') reader_ref_path = '' if not has_embedded_ref: reader_ref_path = writer_ref_path original_reader = sam.SamReader( test_utils.genomics_core_testdata(filename), ref_path=reader_ref_path) original_records = list(original_reader.iterate()) with sam.SamWriter( output_path, header=original_reader.header, ref_path=writer_ref_path, embed_ref=has_embedded_ref) as writer: for record in original_records: writer.write(record) with sam.SamReader(output_path, ref_path=reader_ref_path) as new_reader: self.assertEqual(original_records, list(new_reader.iterate()))
def test_make_read_writer_bam_fails_with_not_implemented_error(self): with self.assertRaises(NotImplementedError): sam.SamWriter('test.bam', header=self.header)