搭建本地NCBI病毒库用于Blast

news/2025/2/22 16:36:05/文章来源:https://www.cnblogs.com/yusy/p/18725101

搭建本地NCBI病毒库用于Blast


目的:为了通过Blast剔除我数据集中所有与Human任意片段相似度超过97%的序列
日期:2022/11/17


1. Nt库下载

创建conda环境

conda create -n aspera 
conda activate aspera  
conda install -y -c hcc aspera-cli 
conda install -y -c bioconda sra-tools


下载Nt库

# 在/media/yang/data/nt目录下下载nt.gz 
ascp -v -k 1 -T -l 200m -i ~/miniconda2/envs/rna/etc/asperaweb_id_dsa.openssh anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nt.gz ./ 
# 然后在/media/yang/data/nt目录下下载nr.gz 
ascp -v -k 1 -T -l 200m -i ~/miniconda2/envs/rna/etc/asperaweb_id_dsa.openssh anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nr.gz ./

2. 软件准备

2.1、数据:

  1. accession2taxid:(核酸就下载核酸,蛋白就下载蛋白)https://ftp.ncbi.nih.gov/pub/taxonomy/accession2taxid/https://ftp.ncbi.nih.gov/pub/taxonomy/accession2taxid/nucl_gb.accession2taxid.gz

  2. taxdump: https://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz

2.2、软件:

  1. blast: https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/

  2. taxonkit: https://bioinf.shenwei.me/taxonkit/download/

sudo cp taxonkit /usr/local/bin/

2.3、解压

gzip -d nr.gz
mv nr nr.fa
gzip -d prot.accession2taxid.gz
gzip -d taxdump.tar.gz

把taxdump解压的文件移动到taxonkit对应位置,否则会报错

sudo cp *.dmp /home/yzu/.taxonkit

3. 抽提所有的流感序列构建子库

3.1 nt本地库构建(可有可无)

makeblastdb -in nt.fa -dbtype nucl -title nr -parse_seqids -hash_index -out nr -logfile nr.log

A型流感病毒对应的taxonomy id是197911

3.2 抽取所有的AIV序列

taxonkit list --ids 197911 --indent "" > AIV.taxidcat prot.accession2taxid |csvtk -t grep -f taxid -P AIV.taxid |csvtk -t cut -f accession.version > Viruses.accseqtk subseq nt.fa Viruses.acc > IAV.fa

3.3 建索引

makeblastdb -in IAV.fa -dbtype nucl -title NCBIIAV -parse_seqids -hash_index -out NCBIIAV

4. Blast

sudo blastn -task blastn -db NCBIIAV -query /mnt/c/Users/yzu-v/Desktop/all_avian.fas  -outfmt 7 -out query.txt

获得更为纯净的blast结果

sed '/^#/d' query.txt > query_result.txt

只筛选相似度大于97%的结果

awk '$3 >= 97 {print}' query_result.txt > query_to_rm.txt

5. 登录号转name

本文的目的是找到所有和人源毒株有某一个片段相似度大于97%的毒株,所以要把登录号转为name,这样更容易看结果。

我们需要用excel制作对应的accession→name表格,但是前文提到了,我们建索引的nt库的IAVs子集也非常大,有50多W条序列,这样我们就需要用python来提取fasta序列的id和对应的name,否则是会卡死的。

from Bio import SeqIO
import pandas as pdseqid = []
seqname = []for seq_record in SeqIO.parse("IAV.fa","fasta"):seqid.append(seq_record.id)seqname.append(seq_record.description)dict_1 = {"id": seqid,"name": seqname
}
data = pd.DataFrame(dict_1)
data.head()
data.to_csv("acc_to_name.csv")

接下来就去excel里面分列做一个自己感兴趣的信息表就行了,最后我就提取一下包含human字符的所有结果行就行了

grep 'human' merge.csv > to_rm.csv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/886841.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你还不会使用Pycham Remote development 打开远程主机工作目录吗?这篇文章帮你解决!

前言必备: 本地开发机与远程主机都要安装Pycharm专业版!!!废话不多说直接开始!! 1、打开pycharm2、依次点击File、Remote Development3、依次点击SSH、New Project4、这里我们选择设置New Connection5、点击 +6、依次输入IP、端口、用户名、密码(可以选择其他认证方式)7、点击t…

Mybatisplus自动生成代码

第一Maven中添加依赖点击查看代码 <!-- MyBatis-Plus 扩展库 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.5.7</version></dependency><dependency&…

LinkedBlockingQueue的poll方法底层原理

一、LinkedBlockingQueue的poll方法底层原理 LinkedBlockingQueue 的 poll 方法用于从队列头部移除并返回元素。如果队列为空,poll 方法会立即返回 null,而不会阻塞线程 1、poll 方法的作用从队列头部移除并返回元素。如果队列为空,立即返回 null。该方法是非阻塞的,适用于…

【R3 RootKit 病毒】基础知识研究

# 恶意样本 # RootKit RootKit简介 RootKit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络连接等信息,比较多见到的是Rootkit一般都和木马、后门等恶意程序结合使用。 技术研究入门 一般的恶意程序使用RootKit技术,主要功能分为下面两类: (…

vscode配置免密登录

Host 192.168.233.130HostName 192.168.233.130User rootPort 22IdentityFile C:\\Users\\username\\.ssh\\id_rsa

Camstar设置textbox只允许扫码

😘宝子:除非不再醒来,除非太阳不再升起,不然都请你好好生活,挣扎着前进,开心的笑。(●◡●)

虚幻GameAbilitySystem源码与设计解析-GameEffectComponent的实现

// 版权所有(c)Epic Games, Inc. 保留所有权利。#pragma once#include "CoreMinimal.h" #include "GameplayEffectComponent.generated.h"struct FActiveGameplayEffect; struct FActiveGameplayEffectsContainer; struct FGameplayEffectSpec; struct F…

建筑遗产的保护与活化利用:历史与现代的和谐交响

在时间的长河中,建筑遗产是凝固的记忆,承载着历史的厚重与文化的底蕴。如何在尊重与保护的前提下,让这些古老建筑焕发新生,融入现代生活,成为富有功能性和时代感的场所,是当代建筑设计面临的一大挑战。 1. 尊重历史,理解遗产价值一切活化利用的出发点,首先是深入研究与…

使用crewai创建属于你自己的AI团队

crewai介绍 CrewAI 是一个用于协调自主 AI 代理的前沿框架。 CrewAI 允许你创建 AI 团队,其中每个代理都有特定的角色、工具和目标,协同工作以完成复杂任务。 把它想象成组建你的梦之队——每个成员(代理)都带来独特的技能和专业知识,无缝协作以实现你的目标。 最近使用了…

解决 element-ui table表格内容上下垂直居中的解决方法

没处理的时候是不是看着很丑只需要在需要处理的 el-table-column 标签中添加 className 然后设置样式为 vertical-align: top; 完整代码 : 然后增加对应的样式<style>.el-table .my-store-management-cell {vertical-align: top;} </style>然后就可以了

老年人19

老年人项目大概情况效果展示

Vulnhub-kioptix2014靶机getshell及提权

靶机搭建 点击扫描虚拟机然后扫描文件夹即可信息收集 扫描ip nmap扫描得到目标靶机ip nmap -sn 192.168.108.0/24故 攻击机:192.168.108.130 目标靶机:192.168.108.140扫端口和服务信息 扫描开放端口信息 nmap -p 1-65535 192.168.108.140可用信息 22/tcp closed ssh …