예제 #1
0
 def log_realigned_reads(self, region, reads, shared_header=None):
     """Logs, if enabled, the realigned reads for region."""
     if self.enabled and self.config.emit_realigned_reads and shared_header is not None:
         path = self._file_for_region(region, self.realigned_reads_filename)
         with sam.SamWriter(path, header=shared_header) as writer:
             for read in reads:
                 writer.write(read)
예제 #2
0
 def log_realigned_reads(self, region, reads):
   """Logs, if enabled, the realigned reads for region."""
   if self.enabled and self.config.emit_realigned_reads:
     path = self._file_for_region(region, self.realigned_reads_filename)
     with sam.SamWriter(path) as writer:
       for read in reads:
         writer.write(read)
예제 #3
0
 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()))
예제 #4
0
 def log_realigned_reads(self, region, reads, shared_header=None):
     """Logs, if enabled, the realigned reads for region."""
     if self.enabled and self.config.emit_realigned_reads and shared_header is not None:
         path = self._file_for_region(region, self.realigned_reads_filename)
         with sam.SamWriter(path, header=shared_header) as writer:
             # For realigned reads, sorting by just looking at starting position is
             # enough.
             for read in sorted(
                     reads,
                     key=lambda read: read.alignment.position.position):
                 writer.write(read)
예제 #5
0
    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(
                             io_utils.read_tfrecords(outfile,
                                                     proto=reads_pb2.Read)))
예제 #6
0
 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()))
예제 #7
0
 def test_make_read_writer_bam_fails_with_not_implemented_error(self):
     with self.assertRaises(NotImplementedError):
         sam.SamWriter('test.bam', header=self.header)