Ejemplo n.º 1
0
 def test_make_read_produces_unique_read_names(self):
     start = 0
     read1 = test_utils.make_read('A', start=start)
     read2 = test_utils.make_read('A', start=start)
     self.assertGreater(len(read1.fragment_name), 0)
     self.assertGreater(len(read2.fragment_name), 0)
     self.assertNotEqual(read1.fragment_name, read2.fragment_name)
Ejemplo n.º 2
0
 def test_read_end(self, update_cached_read_end_first):
   """Tests reads have their ends calculated correctly."""
   start = 10000001
   read = test_utils.make_read(
       'AAACAG',
       chrom='chrX',
       start=start,
       cigar='2M1I3M',
       quals=range(10, 16),
       name='read1')
   if update_cached_read_end_first:
     # Explicitly update cached_end.
     read.cached_end = utils.read_end(read, use_cached_read_end=False)
     self.assertEqual(
         start + 5, read.cached_end)
   self.assertEqual(
       start + 5, utils.read_end(read))
   read = test_utils.make_read(
       'AAACAG',
       chrom='chrX',
       start=start,
       cigar='2M16D3M',
       quals=range(10, 16),
       name='read1')
   if update_cached_read_end_first:
     # Explicitly update cached_end.
     read.cached_end = utils.read_end(read, use_cached_read_end=False)
     self.assertEqual(
         start + 5 + 16, read.cached_end)
   self.assertEqual(
       start + 5 + 16,
       utils.read_end(read))
Ejemplo n.º 3
0
    def test_make_read(self):
        bases = 'ACG'
        quals = [30, 40, 50]
        cigar = '3M'
        mapq = 42
        chrom = 'chr10'
        start = 123
        name = 'myname'
        read = test_utils.make_read(bases,
                                    quals=quals,
                                    cigar=cigar,
                                    mapq=mapq,
                                    chrom=chrom,
                                    start=start,
                                    name=name)

        self.assertEqual(read.aligned_sequence, bases)
        self.assertEqual(read.aligned_quality, quals)
        self.assertEqual(list(read.alignment.cigar), [
            cigar_pb2.CigarUnit(operation_length=3,
                                operation=cigar_pb2.CigarUnit.ALIGNMENT_MATCH)
        ])
        self.assertEqual(read.alignment.mapping_quality, mapq)
        self.assertEqual(read.alignment.position.reference_name, chrom)
        self.assertEqual(read.alignment.position.position, start)
        self.assertEqual(read.fragment_name, name)
Ejemplo n.º 4
0
 def test_read_end(self):
     """Tests reads have their ends calculated correctly."""
     start = 10000001
     read = test_utils.make_read('AAACAG',
                                 chrom='chrX',
                                 start=start,
                                 cigar='2M1I3M',
                                 quals=range(10, 16),
                                 name='read1')
     self.assertEqual(start + 5, utils.read_end(read))
     read = test_utils.make_read('AAACAG',
                                 chrom='chrX',
                                 start=start,
                                 cigar='2M16D3M',
                                 quals=range(10, 16),
                                 name='read1')
     self.assertEqual(start + 5 + 16, utils.read_end(read))
Ejemplo n.º 5
0
 def check_overlaps(chr1, start1, end1, chr2, start2, end2, expected):
   nbp = end1 - start1
   read = test_utils.make_read(
       'A' * nbp, chrom=chr1, start=start1, cigar='{}M'.format(nbp))
   region = ranges.make_range(chr2, start2, end2)
   self.assertEqual(utils.read_overlaps_region(read, region), expected)
   # This check ensures we get the same result calling ranges.ranges_overlap.
   self.assertEqual(
       ranges.ranges_overlap(region, utils.read_range(read)), expected)
Ejemplo n.º 6
0
 def setUp(self):
     self.read1 = test_utils.make_read(bases='ACCGT',
                                       chrom='chr1',
                                       start=10,
                                       cigar='5M',
                                       mapq=50,
                                       quals=range(30, 35),
                                       name='read1')
     self.read2 = test_utils.make_read(bases='AACCTT',
                                       chrom='chr2',
                                       start=15,
                                       cigar='7M',
                                       mapq=40,
                                       quals=range(20, 26),
                                       name='read2')
     self.contigs = [
         reference_pb2.ContigInfo(name='chr1'),
         reference_pb2.ContigInfo(name='chr2'),
     ]
     self.header = reads_pb2.SamHeader()