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 |