[Coronavirus] envelope protein [Severe acute respiratory syndrome-related coronavirus] 분석

2024. 11. 16. 20:42Data_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 :