Exemplo n.º 1
0
    def get_closest_forward_read(self, read):

        closest_forward_read = None
        if read.query_name.split('_')[-1] == '1':
            positions = sorted(list(self.forward_reads_mate2_positions[read.reference_name].keys()))
            closest_pos = misc.takeClosestSmaller(positions, read.reference_end-self.context_width)
            if closest_pos is not None:
                closest_forward_read = self.forward_reads_mate2_positions[read.reference_name][closest_pos]
        else:
            positions = sorted(list(self.forward_reads_mate1_positions[read.reference_name].keys()))
            closest_pos = misc.takeClosestSmaller(positions, read.reference_end-self.context_width)
            if closest_pos is not None:
                closest_forward_read = self.forward_reads_mate1_positions[read.reference_name][closest_pos]

        return closest_forward_read
Exemplo n.º 2
0
 def has_nearby_3p_mate(self, pos, positions):
     closest_3p = misc.takeClosestSmaller(positions, pos)
     if closest_3p is None:
         return False
     if pos - closest_3p <= self.min_distance_to_mate:
         return True
     else:
         return False