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
반응형
'파이썬3' 카테고리의 다른 글
리스트 나누기 (chunking, sub-list,list split) (0) | 2023.12.27 |
---|---|
netmhcpan 4.1 실행 및 결과 불러들이기 (0) | 2023.12.26 |
파이썬 병렬화 (multiprocessing) (0) | 2023.12.19 |
Tukey's median polish (1) | 2023.11.01 |
[python] tqdm 사용법 (0) | 2023.10.17 |