Source code for dnachisel.SequencePattern.HomopolymerPattern

import re
from .DnaNotationPattern import DnaNotationPattern


[docs]class HomopolymerPattern(DnaNotationPattern): """Homopolymer of the form AAAAAAA, TTTTT, etc. Shorthand string version: "7xA", "9xC", etc. Examples -------- >>> pattern = HomopolymerPattern("A", 6) >>> constraint = AvoidPattern(pattern) """ def __init__(self, nucleotide, number): self.nucleotide = nucleotide self.number = number DnaNotationPattern.__init__(self, number * nucleotide) @staticmethod def from_string(string): match = re.match(r"(\d+)x(\S)$", string) if match is not None: number, nucleotide = match.groups() return HomopolymerPattern(nucleotide, int(number)) def __str__(self): return "%sx%s" % (self.number, self.nucleotide)