파이썬3
언더바 (_)를 포함하는 위치를 슬라이싱하는 파이썬 스크립트
TTSR
2023. 12. 26. 15:28
728x90
반응형
def generating_sliced_sequences_underbar(seq, n_mer=[8, 12]):
'''
underbar (_)가 있는 지점을 포함하도록 slicing하는 기능
반드시 포함하고 싶은 위치는 _XXX_와 같이 2개의 언더바가 필요함.
'''
result = []
# Locate underbar
u_idx=[i for i in range(len(seq)) if seq[i]=='_']
total_n=u_idx[1]-u_idx[0]
substrings=seq[u_idx[0]:(u_idx[1]+1)]
# generate peptides
seq2=seq.replace('_','')
peptides=[]
for n in range(n_mer[0],n_mer[1]+1):
start=max([0,u_idx[0]-n+total_n-1])
end=min([len(seq2),u_idx[1]])
peptide=[seq2[i:i+n] for i in range(start,end-total_n+1)]
peptides.extend(peptide)
# Filtering the sequence
peptides=list(filter(lambda x: len(x)>=n_mer[0] and len(x)<=n_mer[1],peptides))
return peptides
# Example usage:
seq = '0123456789_AEC_0'
n_mer = [8, 9]
result = generating_sliced_sequences_underbar(seq, n_mer)
result
728x90
반응형