-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLCSM_shared_motif.py
More file actions
34 lines (27 loc) · 926 Bytes
/
LCSM_shared_motif.py
File metadata and controls
34 lines (27 loc) · 926 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
file = '/Users/nadia/Downloads/rosalind_lcsm.txt'
def shared_motif(file):
f = open(file).read().replace('\n', '')
import re
raw_lines = re.findall('>Rosalind_\d+[A|C|G|T]*', f)
chains = []
for line in raw_lines:
fasta = re.sub('[A|C|G|T]*', '', line)[1:]
chain = re.sub('>Rosalind_\d+', '', line)
chains.append(chain)
return chains
def long_substr(data):
substr = ''
if len(data) > 1 and len(data[0]) > 0:
for i in range(len(data[0])):
for j in range(len(data[0])-i+1):
if j > len(substr) and is_substr(data[0][i:i+j], data):
substr = data[0][i:i+j]
return substr
def is_substr(find, data):
if len(data) < 1 and len(find) < 1:
return False
for i in range(len(data)):
if find not in data[i]:
return False
return True
print long_substr(shared_motif(file))