Mercurial > repos > dereeper > uniqprimer
diff uniqprimer-0.5.0/primertools/primersearchutils.py @ 3:3249d78ecfc2 draft
Uploaded
author | dereeper |
---|---|
date | Mon, 03 Jan 2022 09:56:55 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uniqprimer-0.5.0/primertools/primersearchutils.py Mon Jan 03 09:56:55 2022 +0000 @@ -0,0 +1,55 @@ +''' +Created on Jan 1, 2011 + +@author: John L. Herndon +@contact: herndon@cs.colostate.edu +@organization: Colorado State University +@group: Computer Science Department, Asa Ben-Hur's laboratory +''' + +import utils + +def writePrimerSearchInputFile( primerSets, outputFile ): + ''' + A function to write primer pairs to a file formatted as primer search input. + primerPairs - a list of utils.PrimerSet objects + outputFile - a string containing the path to the output file + ''' + + file = open( outputFile, 'w' ) + i = 0 + for primerSet in primerSets: + i += 1 + if primerSet.reversePrimer == "": + print "Error - primer {0} has no reverse primer. {1} primers total".format( i, len( primerSets ) ) + continue + file.write( primerSet.id + "\t" + primerSet.forwardPrimer + "\t" + primerSet.reversePrimer + "\n" ) + + file.close( ) + +def parsePrimerSearchFile( primerSearchFileName ): + ''' + return a list of primer ids that are associated with at least one amplimer in the primer search output file. + ''' + found = [ ] + + amplimerFound = False + currentId = -1; + for line in open( primerSearchFileName ).readlines( ): + + if "Primer name" in line: + #the id of the primer is found after the string "Primer name" in the file + currentId = line.split( ' ' )[ 2: ][ 0 ].strip( ) + elif "Amplimer" in line and currentId not in found: + found.append( currentId ) + + if amplimerFound == True: + found.append( currentId ) + + return found + + + + + + \ No newline at end of file