コード例 #1
0
ファイル: stats.py プロジェクト: hjanime/ngsutils
    def add(self, read):
        if self.tag in ['LENGTH', 'LEN']:
            val = len(read.seq)

        elif self.tag == 'MAPQ':
            val = read.mapq

        elif self.tag == 'MISMATCH':
            val = read_calc_mismatches(read)

        else:
            try:
                val = read.opt(self.tag)
            except KeyError:
                self.missing += 1
                return

        if not val in self.bins:
            self.bins[val] = 0
            self._keys.append(val)

        self.bins[val] += 1
        if not self._min or self._min > val:
            self._min = val
        if not self._max or self._max < val:
            self._max = val
コード例 #2
0
ファイル: filter.py プロジェクト: willemdek11/tools-iuc
    def filter(self, bam, read):
        if read.is_unmapped:
            return False

        if read_calc_mismatches(read) <= self.num:
            return True

        chrom = bam.getrname(read.tid)

        mm = 0
        snps = 0

        for op, pos, seq in read_calc_variations(read):
            if not self.dbsnp.is_valid_variation(chrom, op, pos, seq,
                                                 self.verbose):
                mm += 1
            else:
                snps += 1

        if mm > self.num:
            return False

        if snps:
            read.tags = read.tags + [('ZS', snps)]

        return True
コード例 #3
0
ファイル: filter.py プロジェクト: pjbriggs/tools-iuc
    def filter(self, bam, read):
        if read.is_unmapped:
            return False

        if read_calc_mismatches(read) <= self.num:
            return True

        chrom = bam.getrname(read.tid)

        mm = 0
        snps = 0

        for op, pos, seq in read_calc_variations(read):
            if not self.dbsnp.is_valid_variation(chrom, op, pos, seq, self.verbose):
                mm += 1
            else:
                snps += 1

        if mm > self.num:
            return False

        if snps:
            read.tags = read.tags + [('ZS', snps)]

        return True
コード例 #4
0
    def add(self, read):
        if self.tag in ['LENGTH', 'LEN']:
            val = len(read.seq)

        elif self.tag == 'MAPQ':
            val = read.mapq

        elif self.tag == 'MISMATCH':
            val = read_calc_mismatches(read)

        else:
            try:
                val = read.opt(self.tag)
            except KeyError:
                self.missing += 1
                return

        if not val in self.bins:
            self.bins[val] = 0
            self._keys.append(val)

        self.bins[val] += 1
        if not self._min or self._min > val:
            self._min = val
        if not self._max or self._max < val:
            self._max = val
コード例 #5
0
ファイル: filter.py プロジェクト: willemdek11/tools-iuc
    def filter(self, bam, read):
        if read.is_unmapped:
            return False

        if read_calc_mismatches(read) > self.num:
            return False

        return True
コード例 #6
0
ファイル: filter.py プロジェクト: pjbriggs/tools-iuc
    def filter(self, bam, read):
        if read.is_unmapped:
            return False

        if read_calc_mismatches(read) > self.num:
            return False

        return True
コード例 #7
0
ファイル: filter.py プロジェクト: willemdek11/tools-iuc
 def filter(self, bam, read):
     return read_calc_mismatches(read) <= self.ratio * len(read.seq)
コード例 #8
0
ファイル: filter.py プロジェクト: pjbriggs/tools-iuc
 def filter(self, bam, read):
     return read_calc_mismatches(read) <= self.ratio * len(read.seq)