def _createMutRow(self,m):

        if m is None:
            return None

        # Calculate values
        # TODO: This is a sloppy way to do GT
        n_lod = self._extract_lod(m, 'init_n_lod')
        t_lod = self._extract_lod(m, 't_lod_fstar')


        # Nothing to call if both LODs are too low.
        if (t_lod < 0) and (n_lod < 0):
            return

        qual = max(t_lod, 0)

        gtN, gtT = self.genotype(n_lod, t_lod)

        ref,alt,new_start = MutUtils.retrievePrecedingBaseFromReference(m)

        ss,ssCode = self.determineSomaticStatus(gtN, gtT, qual)
        if ss is None or ssCode is None:
            return

        n_alt_count = self._get_annotation_value(m, 'n_alt_count', '0', is_blank_default=True)
        n_ref_count = self._get_annotation_value(m, 'n_ref_count', '0', is_blank_default=True)
        n_alt_sum = self._get_annotation_value(m, 'n_alt_sum', '0', is_blank_default=True)
        t_alt_count = self._get_annotation_value(m, 't_alt_count', '0', is_blank_default=True)
        t_ref_count = self._get_annotation_value(m, 't_ref_count', '0', is_blank_default=True)
        t_alt_sum = self._get_annotation_value(m, 't_alt_sum', '0', is_blank_default=True)
        mq0=0
        normalFormat = self._generateFormatFieldWithValues(gtN, n_alt_count, n_ref_count, mq0,
                                                           self._generateBQ(n_alt_count, n_alt_sum), ssCode)
        primaryFormat = self._generateFormatFieldWithValues(gtT, t_alt_count, t_ref_count, mq0,
                                                            self._generateBQ(t_alt_count, t_alt_sum), ssCode)

        filterVal = self._generateFilterField(m)
        info = self._generateInfoField(m,filterVal, mq0, ss)

        #CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NORMAL	PRIMARY
        mutRow = dict()

        mutRow['CHROM'] = self._renderChrom(m.chr)
        mutRow['POS'] = new_start
        mutRow['ID'] = self.renderID(m)
        mutRow['REF'] = ref
        mutRow['ALT'] = alt
        mutRow['QUAL'] = qual
        mutRow['FILTER'] = filterVal
        mutRow['INFO'] = info
        mutRow['FORMAT'] = self._generateFormatField()
        mutRow['NORMAL'] = normalFormat
        mutRow['PRIMARY'] = primaryFormat

        return mutRow
Exemple #2
0
    def _createMutRow(self, m):

        if m is None:
            return None

        # Calculate values
        # TODO: This is a sloppy way to do GT
        n_lod = self._extract_lod(m, 'init_n_lod')
        t_lod = self._extract_lod(m, 't_lod_fstar')

        # Nothing to call if both LODs are too low.
        if (t_lod < 0) and (n_lod < 0):
            return

        qual = max(t_lod, 0)

        gtN, gtT = self.genotype(n_lod, t_lod)

        ref, alt, new_start = MutUtils.retrievePrecedingBaseFromReference(m)

        ss, ssCode = self.determineSomaticStatus(gtN, gtT, qual)
        if ss is None or ssCode is None:
            return

        n_alt_count = self._get_annotation_value(m,
                                                 'n_alt_count',
                                                 '0',
                                                 is_blank_default=True)
        n_ref_count = self._get_annotation_value(m,
                                                 'n_ref_count',
                                                 '0',
                                                 is_blank_default=True)
        n_alt_sum = self._get_annotation_value(m,
                                               'n_alt_sum',
                                               '0',
                                               is_blank_default=True)
        t_alt_count = self._get_annotation_value(m,
                                                 't_alt_count',
                                                 '0',
                                                 is_blank_default=True)
        t_ref_count = self._get_annotation_value(m,
                                                 't_ref_count',
                                                 '0',
                                                 is_blank_default=True)
        t_alt_sum = self._get_annotation_value(m,
                                               't_alt_sum',
                                               '0',
                                               is_blank_default=True)
        mq0 = 0
        normalFormat = self._generateFormatFieldWithValues(
            gtN, n_alt_count, n_ref_count, mq0,
            self._generateBQ(n_alt_count, n_alt_sum), ssCode)
        primaryFormat = self._generateFormatFieldWithValues(
            gtT, t_alt_count, t_ref_count, mq0,
            self._generateBQ(t_alt_count, t_alt_sum), ssCode)

        filterVal = self._generateFilterField(m)
        info = self._generateInfoField(m, filterVal, mq0, ss)

        #CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NORMAL	PRIMARY
        mutRow = dict()

        mutRow['CHROM'] = self._renderChrom(m.chr)
        mutRow['POS'] = new_start
        mutRow['ID'] = self.renderID(m)
        mutRow['REF'] = ref
        mutRow['ALT'] = alt
        mutRow['QUAL'] = qual
        mutRow['FILTER'] = filterVal
        mutRow['INFO'] = info
        mutRow['FORMAT'] = self._generateFormatField()
        mutRow['NORMAL'] = normalFormat
        mutRow['PRIMARY'] = primaryFormat

        return mutRow