搭建本地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.taxid

cat prot.accession2taxid |csvtk -t grep -f taxid -P AIV.taxid |csvtk -t cut -f accession.version > Viruses.acc

seqtk 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 pd seqid = []
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

搭建本地NCBI病毒库用于Blast的更多相关文章

  1. 【转】使用TortoiseSVN搭建本地的版本控制库

    转:https://blog.csdn.net/chenyusiyuan/article/details/6925374 越来越发觉版本控制的重要性了,很惭愧到现在才真正开始落实~~~ 这里使用Tor ...

  2. Git: 本地创建版本库用于多处同步

    问题背景 目前有一个 Android 和 一个 iOS 项目,两个项目底层使用相同的 C++ 代码.由于在开发迭代中代码时常更新,而且往往是今天 Android 部分修改一小部分,明天 iOS 部分修 ...

  3. TortoiseSVN搭建本地版本库及简单操作使用

    TortoiseSVN是windows上一款著名的版本控制软件,对于我们管理自己的代码,特别是对一个团队来说,非常重要. 本文探讨的是如何搭建本地的版本库. (1)安装TortoiseSVN之后需要创 ...

  4. TortoiseSVN 搭建本地版本库及简单操作使用

    TortoiseSVN是windows上一款著名的版本控制软件,对于我们管理自己的代码,特别是对一个团队来说,非常重要. 本文探讨的是如何搭建本地的版本库. (1)安装TortoiseSVN之后需要创 ...

  5. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库01 —— 准备环境,搭建本地仓库,安装ambari

    一.集群软硬件环境准备: 操作系统:  centos 7 x86_64.1804 Ambari版本:2.7.0 HDP版本:3.0.0 HAWQ版本:2.3.05台PC作为工作站: ep-bd01 e ...

  6. Mac搭建本地svn服务器,并用Cornerstone连接服务器

    Mac默认已经安装了svn,我们只需要进行配置并开启就可以了 首先我们可以验证一下是否安装了svn,打开终端,输入命令 svnserve --version 这里可以看到目前svn的版本号,说明已经安 ...

  7. 搭建本地 Registry - 每天5分钟玩转 Docker 容器技术(20)

    Docker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 reposito ...

  8. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  9. webpack-dev-server 搭建本地服务以及浏览器实时刷新

    一.概述开发项目中为了保证上线,开发项目是都需要使用localhost进行开发,以前的做法就是本地搭建Apache或者Tomcat服务器.有的前端开发人员 对服务器的搭建和配置并不熟悉,这个时候需要后 ...

  10. 020、搭建本地Registry(2019-01-11 周五)

    参考https://www.cnblogs.com/CloudMan6/p/6902325.html   Docker Hub 虽然方便,但还是有些限制,比如     1.需要Internet连接,上 ...

随机推荐

  1. mysql基础之增删改查

    标签: mysql 增加数据 -- 增加数据 use myblog; insert into users(username, `password`, realname) values('zhangsa ...

  2. OS之《内存管理》

    程序装入方式 绝对装入:程序逻辑地址和物理地址是完全对应的.不现实 可重定位装入:装入的时候重新 计算内存地址.程序中的实际地址加上程序载入的起始地址:但是解决不了进程挂起 后重新唤醒的问题.唤醒的后 ...

  3. Vue2 面试题 (2023-09-22更新)

    基础 Vue2.0 兼容 ie 哪个版本? 不支持 ie8,部分兼容 ie9,完全兼容 ie10 因为 vue 的响应式原理是基于 es5 的 Object.defineProperty 这个方法不支 ...

  4. 【MyBatis】学习笔记06:各种查询所返回数据的数据类型

    [Mybatis]学习笔记01:连接数据库,实现增删改 [Mybatis]学习笔记02:实现简单的查 [MyBatis]学习笔记03:配置文件进一步解读(非常重要) [MyBatis]学习笔记04:配 ...

  5. Web前端常见的英文缩写

    PV (Page View)页面浏览量 FED(Front-End Development)前端开发 F2E(Front-End Engineer)前端工程师 WWW(World Wide Web)万 ...

  6. 优化大宽表查询性能,揭秘GaussDB(DWS) 谓词列analyze

    本文分享自华为云社区<GaussDB(DWS) 谓词列analyze揭秘>,作者:SmithCoder. 1. 前言 适用版本:[9.1.0.100(及以上)] ​当前GaussDB(DW ...

  7. Element库的Vue版本ElementUI的本地引入方法

    最近刚接触ElementUI,发现官方介绍的使用方法中只有npm安装和CDN引入这两种方式,没有本地引入的方法. 因为我的学习环境有时候是断网状态的,所以自己研究了一下本地引入的方法,记录在此. 1. ...

  8. java中基于swing库自定义分页组件

    一个swing的分页组件,代码见附件. //用法如下:  Class Test{      JTable table ;      StatusBar statusBar ;      Test(){ ...

  9. mac文件目录结构

    详解MAC硬盘中各个文件夹 详解MAC硬盘中各个文件夹 打开Macintosh HD你会发现内中有四个文件夹 分别有--应用程序(Applications).系统(System).用户(User).资 ...

  10. 【Java 温故而知新系列】基础知识-05 面向对象

    1.面向对象概述 面向对象(Object-Oriented,简称OO)是一种编程思想,核心思想是将现实世界中的事物抽象为程序中的"对象",通过对象之间的交互来解决问题. 对象 对象 ...