2024. 11. 16. 20:42ㆍData_Analysis
1. 사이트 :
https://www.ncbi.nlm.nih.gov/protein/XBR17120.1?report=fasta
envelope protein [Severe acute respiratory syndrome-related coronaviru - Protein - NCBI
no features Feature First Previous Next Last Details
www.ncbi.nlm.nih.gov
2. linux 환경으로 파일을 전송하기
wget "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=protein&id=XBR17120.1&rettype=fasta&retmode=text" -O coronaEnv.raw.fasta
efectch를 이용해 ncbi protein database에서 fasta 형식의 파일을 가져오는 코드다.
다음에도 써먹기 위해 , 일반화된 사용법을 적어보겠다.
wget "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi? db=<database>&id=<accession_number>&rettype=<return_type>&retmode=<return_mode>" -O <output_filename>
여기서 <database>에는 protein, nucleotide, pubmed 등이 들어갈 수 있다.
<accession_number>에는 각 페이지에 적혀있는 고유 id값을 넣어주면 된다.
<return_type>은 어떤 파일 형식으로 반환할 것인지 적는 것이다. 따라서, fasta, gb, xml 등을 적어주면 된다.
<return_mode> 반환 데이터의 모드를 적어야 한다. xml, text 등이 있다.
-O 뒤에는 output file의 이름을 적어주면 된다.
## 이건 단일 파일에 적용되는 코드이다. 따라서, 여러 개의 파일을 모으는 것은 조금 더 연구해 보겠다.
이번에는 ncbi protein 홈페이지에서 local에 파일을 직접 다운로드한 후, share_folder에 공유해서 사용하겠다.
coronaEnv.raw.fasta 파일에는 500개의 read들이 들어있다. 여기서 중복서열, seq에 X가 있는 서열, description에 envelope 이 없는 서열은 제거해야 한다.
3. 데이터 전처리
from Bio import SeqIO
seq = SeqIO.parse("/home/rudlab/projects/coronaEnvAn/data/coronaEnv.raw.fasta","fasta")
seq_set = set()
with open("/home/rudlab/projects/coronaEnvAn/data/coronaEnv.fasta", "w") as handle:
for s in seq:
if "partial" in s.description or "truncated" in s.description:
continue
if "X" in s.seq:
continue
if "envelope protein" not in s.description:
continue
if s.seq not in seq_set:
seq_set.add(s.seq)
SeqIO.write(s, handle, "fasta")
위 코드를 실행하면, 중복 서열, partial seq와 같은 서열등은 filtering 된다.
아래에 만들어진 coronaEnv.fasta 파일을 보자.
>BFU31877.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
RVKNLNSSRVPDLLV
>XKC08512.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEEIGTLIVNSVLLFFAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
RVKNLNSSRVPDLLV
>XKC07880.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEEIGALIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
RVKNLNSSRVPDLLV
>XKC06580.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPFFYVYS
RVKNLNSSRVPDLLV
>XKC05673.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
RVKNLNSCRVPDLLV
>XKC04908.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSLVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
RVKNLNSSRVPDLLV
>XKC04716.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTAFRLCAYCCNIVNVSLVKPSFYVYS
RVKNLNSSRVPDLLV
>XKC04003.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
RFKNLNSSRVPDLLV
>XKC03884.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEDIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
RVKNLNSSRVPDLLV
>XKC02953.1 envelope protein [Severe acute respiratory syndrome coronavirus 2]
MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
RVKNLNSFRVPDLLV
4. muscle을 이용한 multiple sequence alignment 수행
https://www.ebi.ac.uk/jdispatcher/msa/muscle?stype=protein
https://www.ebi.ac.uk/jdispatcher/msa/muscle?stype=protein
www.ebi.ac.uk
multipe sequence alignment를 수행해 주는 muscle이라는 사이트에 들어가, coronaEnv.fasta 파일을 붙여 넣자.
output :
CLUSTAL multiple sequence alignment by MUSCLE (3.8)
XKC04908.1 MYSLVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
XKC03884.1 MYSFVSEDIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
XKC07880.1 MYSFVSEEIGALIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
XKC08512.1 MYSFVSEEIGTLIVNSVLLFFAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
XKC06580.1 MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPFFYVYS
XKC04716.1 MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTAFRLCAYCCNIVNVSLVKPSFYVYS
XKC04003.1 MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
XKC02953.1 MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
XKC05673.1 MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
BFU31877.1 MYSFVSEEIGTLIVNSVLLFLAFVVFLLVTLAILTALRLCAYCCNIVNVSLVKPSFYVYS
***:***:**:*********:***************:***************** *****
XKC04908.1 RVKNLNSSRVPDLLV
XKC03884.1 RVKNLNSSRVPDLLV
XKC07880.1 RVKNLNSSRVPDLLV
XKC08512.1 RVKNLNSSRVPDLLV
XKC06580.1 RVKNLNSSRVPDLLV
XKC04716.1 RVKNLNSSRVPDLLV
XKC04003.1 RFKNLNSSRVPDLLV
XKC02953.1 RVKNLNSFRVPDLLV
XKC05673.1 RVKNLNSCRVPDLLV
BFU31877.1 RVKNLNSSRVPDLLV
*.***** *******
5. Weblogo 만들기
Weblogo는 https://weblogo.berkeley.edu/logo.cgi
WebLogo - Create Sequence Logos
weblogo.berkeley.edu
이 사이트에서 진행했다.
muscle에서 얻은 msa 데이터를 붙여 넣는다.
그리고 amino acid, multiline logo를 체크 후, multiline logo 값을 15로 설정했다.
output :
