コード例 #1
0
ファイル: ucsc.py プロジェクト: v-makarenko/vtoolsmq
    def sequence_variant(self, sequence, mutation, strand="+"):
        """
        Return the possible mutation(s) in the sequence due to
        the sequence.  For now, return the original sequence.
        # TODO: probably not return the original sequence
        """
        # first step: get positive string, standardizing so it's
        # easier for me to think about
        if sequence.strand == "-":
            seq = sequence.reverse_complement()
        else:
            seq = sequence

        if mutation["observed"] == "lengthTooLong":
            # raise UnknownMutationError, "Could not read the variants for %s SNP %s at chr%s:%s-%s" % (mutation['class'], mutation['name'], mutation['chrom'], mutation['chromStart'], mutation['chromEnd'])
            sequences = []
            dup = self.__class__.duplicate(sequence)
            dup2 = self.__class__.duplicate(sequence, name=mutation["name"])

            xform = TransformedGenomeSequence.replace(
                dup2,
                mutation["chromStart"],
                mutation["chromEnd"],
                "?" * (mutation["chromEnd"] - mutation["chromStart"] + 1),
            )
            sequences.append(dup)
            sequences.append(xform)

        else:
            klass = mutation["class"].lower().replace("-", "")
            sequences = getattr(self.__class__, "_%s_sequence_variant" % klass, self.__class__._unknown_variant)(
                seq, mutation
            )

        if strand == "-":
            return [reverse_complement(s) for s in sequences]
        else:
            return sequences