Advertisement
vaboro

ps3c.py

May 26th, 2011
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.83 KB | None | 0 0
  1. def constrainedMatchPair(firstMatch, secondMatch, length):
  2.     constrainedList = []
  3.     for i in range(len(firstMatch)):
  4.         for j in range(len(secondMatch)):
  5.             if secondMatch[j] == firstMatch[i] + length + 1:
  6.                 constrainedList.append(firstMatch[i])
  7.     constrainedTuple = tuple(constrainedList)
  8.     return constrainedTuple
  9.  
  10. def subStringMatchOneSub(key,target):
  11.     """search for all locations of key in target, with one substitution"""
  12.     allAnswers = ()
  13.     for miss in range(0,len(key)):
  14.         # miss picks location for missing element
  15.         # key1 and key2 are substrings to match
  16.         key1 = key[:miss]
  17.         key2 = key[miss+1:]
  18.         #print 'breaking key',key,'into',key1,key2
  19.         # match1 and match2 are tuples of locations of start of matches
  20.         # for each substring in target
  21.         match1 = subStringMatchExact(target,key1)
  22.         match2 = subStringMatchExact(target,key2)
  23.         # when we get here, we have two tuples of start points
  24.         # need to filter pairs to decide which are correct
  25.         filtered = constrainedMatchPair(match1,match2,len(key1))
  26.         allAnswers = allAnswers + filtered
  27.         #print 'match1',match1
  28.         #print 'match2',match2
  29.         #print 'possible matches for',key1,key2,'start at',filtered
  30.     return allAnswers
  31.  
  32. ##target1 = 'atgacatgcacaagtatgcat'
  33. ##target2 = 'atgaatgcatggatgtaaatgcag'
  34.  
  35. ### key strings
  36.  
  37. ##key10 = 'a'
  38. ##key11 = 'atg'
  39. ##key12 = 'atgc'
  40. ##key13 = 'atgca'
  41.  
  42. ##print subStringMatchOneSub(key10,target1)
  43. ##print subStringMatchOneSub(key11,target1)
  44. ##print subStringMatchOneSub(key12,target1)
  45. ##print subStringMatchOneSub(key13,target1)
  46. ##print subStringMatchOneSub(key10,target2)
  47. ##print subStringMatchOneSub(key11,target2)
  48. ##print subStringMatchOneSub(key12,target2)
  49. ##print subStringMatchOneSub(key13,target2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement