소개
bioRxiv에 게재된 논문에서 새로운 코로나바이러스 아속이 확인되었습니다. 저는 해당 바이러스의 프로테아제에 변화가 있는지 알아보고 싶었습니다. 하지만 서열 데이터는 아직 공개되지 않았습니다.
다행히 NCBI에서는 유사한 서열을 구할 수 있었지만, 안타깝게도 RNA-seq 데이터만 이용할 수 있었습니다.
그래서 먼저 RNA-seq 리드를 조립한 다음, 필요한 서열을 조립 결과와 BLAST로 비교해야 했습니다.
요약
conda로 환경을 설정합니다:
BASHconda create -n sra_env -y conda activate sra_env conda install -c bioconda -y sra-tools trinity transdecoder blast fastp fastqc데이터를 내려받습니다:
BASHprefetch SRR11301086 fasterq-dump SRR11301086 mkdir -p analysis_results/SRR11301086/{raw_fastqc,clean_fastqc,fastp,trinity,transdecoder,blast_results}데이터 품질 확인
BASHfastqc SRR11301086_1.fastq SRR11301086_2.fastq \ -o analysis_results/SRR11301086/raw_fastqc \ -t 28 \ 2>&1 | tee analysis_resultsfastp를 이용한 품질 관리
BASHfastp -i SRR11301086_1.fastq \ -I SRR11301086_2.fastq \ -o analysis_results/SRR11301086/fastp/SRR11301086_1.clean.fastq \ -O analysis_results/SRR11301086/fastp/SRR11301086_2.clean.fastq \ --qualified_quality_phred 20 \ --length_required 50 \ --thread 28 \ --html analysis_results/SRR11301086/fastp/SRR11301086_fastp.html \ --json analysis_results/SRR11301086/fastp/SRR11301086_fastp.json \ 2>&1 | tee analysis_results/SRR11301086/logs/SRR11301086_fastp.log데이터 품질 확인(정제 후 데이터)
BASHfastqc analysis_results/SRR11301086/fastp/SRR11301086_1.clean.fastq \ analysis_results/SRR11301086/fastp/SRR11301086_2.clean.fastq \ -o analysis_results/SRR11301086/clean_fastqc \ -t 28 \ 2>&1 | tee analysis_results/SRR11301086/logs/SRR11301086_fastqc_cleaned.logTrinity로 조립
BASHnohup Trinity --seqType fq \ --left analysis_results/SRR11301086/fastp/SRR11301086_1.clean.fastq \ --right analysis_results/SRR11301086/fastp/SRR11301086_2.clean.fastq \ --CPU 28 --max_memory 48G \ --output analysis_results/SRR11301086/trinity \ 2>&1 > analysis_results/SRR11301086/logs/SRR11301086_trinity.log & mv analysis_results/SRR11301086/trinity.Trinity.fasta* analysis_results/SRR11301086/trinity/Trinity 결과 확인
BASHTrinityStats.pl analysis_results/SRR11301086/trinity/trinity.Trinity.fasta \ 2>&1 | tee analysis_results/SRR11301086/logs/SRR11301086_trinity_stats.txt관심 서열 BLAST
query.fasta에 서열을 넣습니다.BASHvi query.fastaBLAST 데이터베이스를 만들고 실행합니다:
BASHmakeblastdb -in analysis_results/SRR11301086/trinity/trinity.Trinity.fasta -dbtype nucl -out analysis_results/SRR11301086/trinity/SRR11301086_nuc_db tblastn -query query.fasta \ -db analysis_results/SRR11301086/trinity/SRR11301086_nuc_db \ -out analysis_results/SRR11301086/blast_results/SRR11301086_nuc_blast.txt \ -evalue 1e-5 \ -word_size 2 \ -outfmt "6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qseq sseq" \ -num_threads 28
BLAST 결과 확인
BASHcat analysis_results/SRR11301086/blast_results/SRR11301086_nuc_blast.txttrinity.Trinity.fasta에서 서열 추출BASH# Build index samtools faidx analysis_results/SRR11301086/trinity/trinity.Trinity.fasta # Extract the sequence samtools faidx analysis_results/SRR11301086/trinity/trinity.Trinity.fasta TRINITY_DN284_c0_g1_i7 > analysis_results/SRR11301086/blast_results/SRR11301086_TTRINITY_DN284_c0_g1_i7.fasta
마무리
예측된 서열로 BLAST를 수행할 수도 있습니다:
BASHTransDecoder.LongOrfs -t analysis_results/SRR11301086/trinity/trinity.Trinity.fasta\ 2>&1 | tee analysis_results/SRR11301086/logs/SRR11301086_transdecoder_long.log TransDecoder.Predict -t analysis_results/SRR11301086/trinity/trinity.Trinity.fasta \ 2>&1 | tee analysis_results/SRR11301086/logs/SRR11301086_transdecoder_predict.log mv *.transdecoder* analysis_results/SRR11301086/transdecoder/BLAST 데이터베이스를 만들고 실행합니다:
BASHmakeblastdb -in analysis_results/SRR11301086/transdecoder/trinity.Trinity.fasta.transdecoder.pep \ -dbtype prot \ -out analysis_results/SRR11301086/transdecoder/SRR11301086_db \ 2>&1 | tee analysis_results/SRR11301086/logs/SRR11301086_makeblastdb.log blastp -query query.fasta \-db analysis_results/SRR11301086/transdecoder/SRR11301086_db \ -out analysis_results/SRR11301086/blast_results/SRR11301086_prot_blast.txt \ -evalue 1e-5 \ -outfmt "6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qseq sseq" \ -num_threads 28 \ 2>&1 | tee analysis_results/SRR11301086/logs/SRR11301086_blast.log