Skip to content

Instantly share code, notes, and snippets.

@x0xMaximus
Created October 5, 2011 19:12
Show Gist options
  • Save x0xMaximus/1265357 to your computer and use it in GitHub Desktop.
Save x0xMaximus/1265357 to your computer and use it in GitHub Desktop.
Python script for transmembrane region calcuations
#!/usr/bin/env python3.1
# cc attribution-sharealike // max [@] maxnanis.com
#transmembrane
import re
def tmpred(aa):
aa = aa.upper()
engine = re.compile("[^A-Z]")
aa = engine.sub("", aa)
ruler = ''
count = 1
while len(ruler) < len(aa):
ruler = ruler + "----+----"
ruler = ruler + str(count)
if count == 9:
count = 0
else:
count = count + 1
print(ruler)
print(aa)
result = ''
for c in aa:
if c in "VWFAMILY":
result = result + "-"
else:
result = result + "+"
aa = result
print (aa)
tmPattern = re.compile("(\+{3,})((\+{0,2}-)+)")
seq_iter = tmPattern.finditer(aa)
for pattern in seq_iter:
upstream = pattern.group(1)
seq = pattern.group(2)
if len(seq) < 17:
continue
score = 0.0
for c in seq:
if c == "+":
score = score + 1.0
score = score/len(seq)
if score > .43:
continue
print("{}: {}[{}]{} score = {}".format(len(seq), pattern.start()+len(upstream)+1, seq, pattern.end(), score))
if __name__ == "__main__":
from sys import stdin
seqs = stdin.readlines()
for aa in seqs:
tmpred(aa)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment