본문 바로가기

파이썬3/biopython

[biopython] NCBI에서 단백질 서열 (protein sequence) 얻기

728x90
반응형

단백질 서열을 사용해야할 때가 가끔 있다.

 

이 경우 NCBI에 등록된 id라면 biopython으로 쉽게 단백질 서열을 얻을 수 있다.

 

from Bio import Entrez
Entrez.email = "이메일@주소.com"
def retrieve_peptideSeq_from_uniprot(x=None):
    if x is None:
        print(
            '''
            This function retrieves peptide sequence for the given geneID.
            Before use this, please do following steps.
            from Bio import Entrez
            Entrez.email = 'email@address.com'
            param x: uniprot ID such as P29996
            return string
            '''
            )
        return
    try:
        handle = Entrez.esearch(db="protein", term=x, retmax='10')
        record=Entrez.read(handle)
        idlist=record['IdList'] # 최상단에 위치한 ID를 가져옴
        handle2 = Entrez.efetch(db="protein", id=idlist[0], rettype="gb", retmode="text") #검색
        tmp=handle2.read() # 검색결과를 string화시킴
        seqs=tmp[tmp.find('ORIGIN'):] #sequence 시작부위를 찾음.
        seqs=seqs.split() # 특수문자를 제거함.
        seqs=list(filter(lambda x: x.islower(),seqs)) # 현재 NCBI의 FASTA의 sequence는 small letter임.
        seq_fin=''.join(seqs).upper() # small letter로 이뤄진 서열들을 합친 후 대문자로 변경
        return seq_fin
    except:
        return 'Not_available'
    
retrieve_peptideSeq_from_uniprot(x='TP53')
# 결과물
# 'MDRSKENCISGPVKATAPVGGPKRVLVTQQFPCQNPLPVNSGQAQRVLCPSNSSQRIPLQAQKLVSSHKPVQNQKQKQLQATSVPHPVSRPLNNTQKSKQPLPSAPENNPEEELASKQKNEESKKRQWALEDFEIGRPLGKGKFGNVYLAREKQSKFILALKVLFKAQLEKAGVEHQLRREVEIQSHLRHPNILRLYGYFHDATRVYLILEYAPLGTVYRELQKLSKFDEQRTATYITELANALSYCHSKRVIHRDIKPENLLLGSAGELKIADFGWSVHAPSSRRTTLCGTLDYLPPEMIEGRMHDEKVDLWSLGVLCYEFLVGKPPFEANTYQETYKRISRVEFTFPDFVTEGARDLISRLLKHNPSQRPMLREVLEHPWITANSSKPSNCQNKESASKQS'
728x90
반응형

'파이썬3 > biopython' 카테고리의 다른 글

[biopython] fasta파일 불러들이기  (1) 2023.11.22
[biopython] Gene symbol/alias/Entrez id얻기  (0) 2022.06.02