Logo Search packages:      
Sourcecode: python-biopython version File versions  Download package


00001 """Code to interact with the primersearch program from EMBOSS.

00005 class InputRecord:
    """Represent the input file into the primersearch program.

    This makes it easy to add primer information and write it out to the
    simple primer file format.
    def __init__(self):
        self.primer_info = []

    def __str__(self):
        output = ""
        for name, primer1, primer2 in self.primer_info:
            output += "%s %s %s\n" % (name, primer1, primer2)
        return output

00020     def add_primer_set(self, primer_name, first_primer_seq, 
        """Add primer information to the record.
        self.primer_info.append((primer_name, first_primer_seq,
00027 class OutputRecord:
    """Represent the information from a primersearch job.

    amplifiers is a dictionary where the keys are the primer names and
    the values are a list of PrimerSearchAmplifier objects.
    def __init__(self):
        self.amplifiers = {}

00036 class Amplifier:
    """Represent a single amplification from a primer.
    def __init__(self):
        self.hit_info = ""
        self.length = 0

00043 def read(handle):
    """Get output from primersearch into a PrimerSearchOutputRecord
    record = OutputRecord()

    for line in handle:
        if not line.strip():
        elif line.startswith("Primer name"):
            name = line.split()[-1]
            record.amplifiers[name] = []
        elif line.startswith("Amplimer"):
            amplifier = Amplifier()
        elif line.startswith("\tSequence: "):
            amplifier.hit_info = line.replace("\tSequence: ", "")
        elif line.startswith("\tAmplimer length: "):
            length = line.split()[-2]
            amplifier.length = int(length)
            amplifier.hit_info += line

    for name in record.amplifiers:
        for amplifier in record.amplifiers[name]:
            amplifier.hit_info = amplifier.hit_info.rstrip()

    return record

Generated by  Doxygen 1.6.0   Back to index