annotate uniqprimer-0.5.0/primertools/primersearchutils.py @ 2:05ae1ce478bc draft default tip

Uploaded
author dereeper
date Fri, 08 Jun 2018 10:49:07 -0400
parents cdd8f911ad91
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
1 '''
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
2 Created on Jan 1, 2011
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
3
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
4 @author: John L. Herndon
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
5 @contact: herndon@cs.colostate.edu
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
6 @organization: Colorado State University
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
7 @group: Computer Science Department, Asa Ben-Hur's laboratory
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
8 '''
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
9
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
10 import utils
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
11
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
12 def writePrimerSearchInputFile( primerSets, outputFile ):
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
13 '''
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
14 A function to write primer pairs to a file formatted as primer search input.
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
15 primerPairs - a list of utils.PrimerSet objects
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
16 outputFile - a string containing the path to the output file
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
17 '''
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
18
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
19 file = open( outputFile, 'w' )
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
20 i = 0
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
21 for primerSet in primerSets:
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
22 i += 1
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
23 if primerSet.reversePrimer == "":
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
24 print "Error - primer {0} has no reverse primer. {1} primers total".format( i, len( primerSets ) )
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
25 continue
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
26 file.write( primerSet.id + "\t" + primerSet.forwardPrimer + "\t" + primerSet.reversePrimer + "\n" )
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
27
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
28 file.close( )
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
29
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
30 def parsePrimerSearchFile( primerSearchFileName ):
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
31 '''
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
32 return a list of primer ids that are associated with at least one amplimer in the primer search output file.
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
33 '''
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
34 found = [ ]
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
35
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
36 amplimerFound = False
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
37 currentId = -1;
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
38 for line in open( primerSearchFileName ).readlines( ):
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
39
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
40 if "Primer name" in line:
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
41 #the id of the primer is found after the string "Primer name" in the file
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
42 currentId = line.split( ' ' )[ 2: ][ 0 ].strip( )
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
43 elif "Amplimer" in line and currentId not in found:
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
44 found.append( currentId )
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
45
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
46 if amplimerFound == True:
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
47 found.append( currentId )
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
48
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
49 return found
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
50
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
51
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
52
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
53
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
54
cdd8f911ad91 Uploaded
dereeper
parents:
diff changeset
55