관리 메뉴

데이터 과학

COVID-19: Biopython으로 단백질 식별하는 방법 (Kaggle) 본문

생명정보학 & 화학정보학/바이오파이썬

COVID-19: Biopython으로 단백질 식별하는 방법 (Kaggle)

티에스윤 2021. 7. 18. 21:38

우선 이글은 Kaggle에 올라온 바이오파이썬에 대한 서술입니다. 

Kaggle에는 몇가지의 바이오파이썬에 대한 소스가 올라와 있는데 그 중 몇개의 소스를 소개하겠습니다. 

NCBI에서 핵산을 찾는 방법과 블라스트(BLAST) 사용법 정도는 알고 있는 것이 좋을 것 같습니다. 

 

https://www.kaggle.com/amiiiney/covid-19-proteins-identification-with-biopython

 

COVID-19: Proteins identification with Biopython

Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources

www.kaggle.com

위 링크에 접속하면 COVID19 바이러스 단백질, SARS,  MERS와 박쥐코로나 바이러스에 대한 비교연구를 진행합니다. 

COVID-19: Proteins identification with Biopython 라는 주제로 바이오파이썬 코딩이 되어 있습니다.

 

 

 

 

>>>from Bio.SeqRecord import SeqRecord

>>>from Bio import SeqIO

>>>covid19 = SeqIO.read('MN908947.fasta', "fasta")

 

 

MN908947.fasta 파일은 NCBI에서 검색하거나 아래 파일을 참고하면 됩니다. 

 

MN908947.fasta
0.03MB

 

 

>>>print(f'The genome of the virus causing Covid-19 (known as SARS-CoV-2) consists of {len(covid19)} genetic bases or letters.')

 

The genome of the virus causing Covid-19 (known as SARS-CoV-2) consists of 29903 genetic bases or letters.

 

MN908947.fasta 29903 개의 핵산을 가지고 있습니다. 

 

 

 

 

서열을 처음부터 200개만 화면에 나타낼 경우는 다음과 같은 명령어를 입력하면 됩니다. 

 

>>>covid_DNA= covid19.seq
>>>print( covid_DNA[:200])

 

ATTAAAGGTTTATACCTTCCCAGGTAACAAACCAACCAACTTTCGATCTCTTGTAGATCTGTTCTCTAAACGAACTTTAAAATCTGTGTGGCTGTCACTCGGCTGCATGCTTAGTGCACTCACGCAGTATAATTAATAACTAATTACTGTCGTTGACAGGACACGAGTAACTCGTCTATCTTCTGCAGGCTGCTTACGGT

 

핵산 

 

>>>DNA= covid_DNA
>>>nucleotides={}
>>>for n in DNA:
>>>    if n in nucleotides:
>>>        nucleotides[n] += 1
>>>    else:
>>>        nucleotides[n] =  1
>>>print(nucleotides)

{'A': 8954, 'T': 9594, 'G': 5863, 'C': 5492}

 

 

- 전사 (Transcrition)

 

 

DNA에서부터 RNA로 전사되는 과정으로 이후에 단백질로 합성되기전까지의 내용으로 T 대신에 U로 전사되는 서열을 표시합니다. 

 

 

>>>covid_mRNA = covid_DNA.transcribe()
>>>print(covid_mRNA[:100])

 

AUUAAAGGUUUAUACCUUCCCAGGUAACAAACCAACCAACUUUCGAUCUCUUGUAGAUCUGUUCUCUAAACGAACUUUAAAAUCUGUGUGGCUGUCACUC

 

>>>print(f'Covid-19 DNA: {covid_DNA[:50]}')
>>>print(f'Covid-19 RNA: {covid_mRNA[:50]}')

 

Covid-19 DNA: ATTAAAGGTTTATACCTTCCCAGGTAACAAACCAACCAACTTTCGATCTC

Covid-19 RNA: AUUAAAGGUUUAUACCUUCCCAGGUAACAAACCAACCAACUUUCGAUCUC

 

 

 

 

- 번역 (Translation) 

 

코돈(codon)으로 3개의 아미노산의 합성을 반영하는 코드로 아미노산으로의 번역으로 나타낼 수 있습니다. 

>>>covid_aa = covid_mRNA.translate()
>>>print(covid_aa[:99])

 

IKGLYLPR*QTNQLSISCRSVL*TNFKICVAVTRLHA*CTHAV*LITNYCR*QDTSNSSIFCRLLTVSSVLQPIISTSRFRPGVTER*DGEPCPWFQRE

 

>>>print(f"Covid-19's genome has {len(covid_aa)} amino acids")

 

Covid-19's genome has 9967 amino acids

 

>>>import pandas as pd

>>>import seaborn as sns

 

>>>Proteins = covid_aa.split('*')
>>>proteinas=pd.DataFrame(Proteins)
>>>proteinas['amino acid sequence'] = proteinas[0].apply(str)
>>>proteinas['Protein length'] = proteinas[0].apply(len)
>>>proteinas.rename(columns={0: "sequence"}, inplace=True)
>>>pro=proteinas.drop('sequence', axis=1)
>>>pro_= pro.sort_values(by=['Protein length'], ascending=False)
>>>pd.options.display.max_colwidth = 80
>>>cm = sns.light_palette("green", as_cmap=True)
>>>s = pro_.style.background_gradient(cmap=cm)
>>>s

 

>>>​pro_

 

CTIVFKRVCGVSAARLTPCGTGTSTDVVYRAFDIYNDKVAGFAKFLKTNCCRFQEKDEDDNLIDSYFVVKRHTFSN... 2701
ASAQRSQITLHINELMDLFMRIFTIGTVTLKQGEIKDATPSDFVRATATIPIQASLPFGWLIVGVALLAVFQSASK... 290
TNMKIILFLALITLATCELYHYQECVRGTTVLLKEPCSSGTYEGNSPFHPLADNKFALTCFSTQFAFACPDGVKHV... 123
AQADEYELMYSFVSEETGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYSRVKNLNSS... 83
QQMFHLVDFQVTIAEILLIIMRTFKVSIWNLDYIINLIIKNLSKSLTENKYSQLDEEQPMEID 63
... ...

 

 

- BLAST (basic local alignment search tool)

 

PSI -블라스트에 접속합니다.

 

https://www.ebi.ac.uk/Tools/sss/psiblast/

 

PSI-BLAST < Sequence Similarity Searching < EMBL-EBI

PSI-BLAST allows users to construct and perform a NCBI BLAST search with a custom, position-specific, scoring matrix which can help find distant evolutionary relationships. Users can specify pattern files to restrict search results using the PHI-BLAST func

www.ebi.ac.uk

아래 아미노산 서열 83개를 복사해서 PSI 블라스트에서 검색을 합니다. 

 

AQADEYELMYSFVSEETGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYSRVKNLNSSRVPDLLV

 

 

검색된 결과는 다음과 같습니다. 

 

https://www.ebi.ac.uk/Tools/services/web/toolresult.ebi?jobId=psiblast-I20210715-080357-0241-13827134-p1m 

 

PSI-BLAST Results Summary

Tools > Sequence Similarity Searching > PSI-BLAST Results for job psiblast-I20210715-080357-0241-13827134-p1m

www.ebi.ac.uk

 

 

 

ORF (opren reading frame) 

 

mRNA로 전사되어 단백질로 번역되는 부분을 ORF라고 합니다. 

시작코돈과 종결코돈까지의 내용인데 COVID-19애서 나타나는 ORF 염기 서열 분석은 지난 실험에 대한 내용을 찾아 보면 됩니다. 

 

https://tsyoon.tistory.com/10

 

블라스트와 MEGA-X 염기서열 분석 비교 관련

블라스트에서 나오는 염기서열 비교결과와 Clustal-W에서 나오는 염기서열 비교 결과는 다른데 그 이유는 알고리즘이 다르기 때문이다. 니들만 브뉘쉬 알고리즘과 스미스 워터만 알고리즘의 차이

tsyoon.tistory.com

 

 

ORF에 대한 내용은 위키나 다른 웹사이트에서도 다루는 내용이니 그 내용들을 참고하면 되겠습니다. 

 

 

https://ko.wikipedia.org/wiki/%EC%98%A4%ED%94%88_%EB%A6%AC%EB%94%A9_%ED%94%84%EB%A0%88%EC%9E%84

 

오픈 리딩 프레임 - 위키백과, 우리 모두의 백과사전

분자유전학에서 오픈 리딩 프레임(open reading frame, ORF)은 mRNA로 전사되어 단백질이 될 가능성이 있는 염기서열들을 의미하며, 1. 어떤 ATG(AUG) 서열을 시작으로 보는지에 따라 2. 염기서열을 3개씩

ko.wikipedia.org

 

 

https://ko.wikipedia.org/wiki/GC_%ED%95%A8%EB%9F%89

 

GC 함량 - 위키백과, 우리 모두의 백과사전

분자생물학 및 유전학에서, GC 함량(구아닌-사이토신 함량, GC-content)은 DNA 또는 RNA에서의 구아닌과 사이토신의 백분율이다.[1] GC 함량은 DNA의 아데닌과 티민, RNA의 아데닌과 유라실을 포함하여 암

ko.wikipedia.org

 

GC 아일랜드 이야기들에 대한 분석도 중요한 연구내용중에 하나인데 GC 비율이 높을 수록 안정화 되어 있다라고 할 수 있습니다. 이에 대한 내용도 위키나 다른 사이트들을 참고하면 되겠습니다. 

오래전에 GC 아일랜드에 대한 실험을 진행했는데 이에 대한 내용은 구글링에서 찾아 볼 수 있습니다. 

 

CDS (codig seguence)를 찾아봄으로 코돈의 시작과 정지코돈을 찾아 볼 수 있습니다. CDS는 단백질의 아미노산 서열에 해당하는 뉴클레오티드의 서열입니다.

 

이 정도의 내용으로 Biopython으로 단백질 식별하는 방법 이라는 주제로 Kaggle에 올라온 바이오파이썬에 대한 내용을 대략적으로 살펴 보았습니다. 

 

주피터 노트북에 하나씩 실습해보면 그리 어렵지 않은 내용입니다. 중간 중간에 Pandas 라이브러리도 사용해서 도식화도 해 보면서 데이터를 시각화하기도 합니다. 

 

이외에 여러가지 바이오파이썬을 이용한 분석방법이 있습니다. 하나하나씩 살펴보면 바이오파이썬을 학습하는데 많은 도움이 될 것이라고 봅니다. 

 

 

 

https://www.kaggle.com/freddieta/rna-similarity-sars-mers-cov2

 

RNA Similarity_SARS_MERS_COV2

Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources

www.kaggle.com

 

 

 

 

https://www.kaggle.com/bretts/sars-cov-2

 

SARS-CoV-2

Explore and run machine learning code with Kaggle Notebooks | Using data from no data sources

www.kaggle.com

 

 

 

 

https://www.kaggle.com/bhageshcodebeast/biopython-covid19-data-analysis-3d-visualization

 

Biopython-Covid19 Data Analysis & 3D Visualization

Explore and run machine learning code with Kaggle Notebooks | Using data from [Private Datasource]

www.kaggle.com

 

 

 

 

 

 

 

https://www.kaggle.com/eugeniaanello/biopraticals

 

BioPraticals

Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources

www.kaggle.com