본문 바로가기

파이썬3

언더바 (_)를 포함하는 위치를 슬라이싱하는 파이썬 스크립트

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