[Tutor] function help

Ashley F aflint310 at yahoo.com
Mon Feb 7 17:45:46 CET 2011


ok...here's the function I've written so far.
 
def padWithGaps(seq):
    for letter in seq:
       letter="-"
       line=len(seq)
       dashline=line*letter
    return dashline
 
def replace(someString,position,letter):
    first=someString[0:position]
    second=letter
    third=someString[position+1:len(someString)]
    newString=first+second+third
    return newString
 
##findScore("MPFVS","MS-V-") would return a score of 2
def findScore(first,second):
    count=0
    for position in range(0,len(first)):
         if first[position]==second[position]:
             count=count+1
             position=position+1
    return count
 
#shorter is a 3 amino acid sequence
##longer is any length sequence greater than 3
###i=first amino acid; j=second amino acid; k=third amino acid
def findAlignment(shorter,longer):
     for i in range(0,len(longer)-2):
         for j in range(1,len(longer)-1):
              for k in range(2,len(longer)):
                   dashline=padWithGaps(longer)
                   nextLine=replace(dashline,i,shorter[0])
                   nextNext=replace(nextLine,j,shorter[1])
                   alignment=replace(nextNext,k,shorter[2])
                   score=findScore(longer,alignment)
           ####don't know what to do here
      print longer
      print alignment
      print "Score = " + str(score)
 
I don't know what to do at the end of my loop but what I'm trying to do in pseudocode is:
 "if that alignment has the best score seen so far
          save the score and the alignment
print the best score and the best alignment"


      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110207/45a97067/attachment-0001.html>


More information about the Tutor mailing list