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