前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一文搞懂NCBI Blast本地数据库(NT/NR等)构建

一文搞懂NCBI Blast本地数据库(NT/NR等)构建

作者头像
简说基因
发布于 2020-11-19 08:17:00
发布于 2020-11-19 08:17:00
7.8K30
代码可运行
举报
文章被收录于专栏:简说基因简说基因
运行总次数:0
代码可运行

背景介绍

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

blast db:ftp://ftp.ncbi.nlm.nih.gov/blast/db

README:ftp://ftp.ncbi.nlm.nih.gov/blast/db/README

通过查看 README,我们知道 nt 和 nr 库的内容:nr 是蛋白库(非冗余的),nt 是核酸库(部分非冗余的)。

下载 blast 库

BLAST+程序包中提供了一个脚本update_blastdb.pl可以方便地下载 blast 数据库

首先用以下命令查看有哪些数据库可供下载:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
perl update_blastdb.pl --showall

16S_ribosomal_RNA 18S_fungal_sequences 28S_fungal_sequences Betacoronavirus ITS_RefSeq_Fungi ITS_eukaryote_sequences LSU_eukaryote_rRNA LSU_prokaryote_rRNA SSU_eukaryote_rRNA cdd_delta env_nr env_nt human_genome landmark mouse_genome nr nt pataa patnt pdbaa pdbnt ref_euk_rep_genomes ref_prok_rep_genomes ref_viroids_rep_genomes ref_viruses_rep_genomes refseq_protein refseq_rna refseq_select_prot refseq_select_rna swissprot taxdb tsa_nr tsa_nt

如要下载 nt 库,用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nohup perl update_blastdb.pl --decompress nt &> update.log &

后台下载并自动解压,如果中途断网,重启下载支持断点续传,很方便。

可惜的是,如果网速不好,80 多 GB 的压缩文件,很难下载下来,最好用我们之前介绍过的 Aspera 软件高速下载,其安装方法见之前文章:Aspera:基因组数据高速下载利器,以 NCBI 和 EBI 数据下载为例

Aspera 下载 nt 库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ascp -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh -l 100M -k 1 -T anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nt.gz ./

下载完毕,构建数据库索引:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
makeblastdb -dbtype nucl -in nt.fa -out nt.fa

测试

准备查询文件:test.fa

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>chr1
CGATAATTCATCTGGCCGCCTTCCACACCCAGCGCGCGCAAAAAGTGGTGGCGGAAACGATCCGCACTGAAAATACCGTGGAGATAGGTTCCCATGATACGACCATCGGGC

测试命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
time blastn -query test.fa -db /path/to/nt.fa -num_threads 48 -max_target_seqs 5 -outfmt 6

结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chr1    CP046720.1      100.000 111     0       0       1       111     1286985 1287095 1.92e-49        206
chr1    CP044338.1      100.000 111     0       0       1       111     1283638 1283748 1.92e-49        206
chr1    MK355143.1      100.000 111     0       0       1       111     76      186     1.92e-49        206
chr1    MK355138.1      100.000 111     0       0       1       111     76      186     1.92e-49        206
chr1    MK355136.1      100.000 111     0       0       1       111     76      186     1.92e-49        206

real    0m15.609s
user    1m17.647s
sys     0m31.350s

本地 NT 库构建成功。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 简说基因 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
3 条评论
热度
最新
请问用aspera下载完成后,需要解压缩才能makeblastdb吗?如何解压缩呢?
请问用aspera下载完成后,需要解压缩才能makeblastdb吗?如何解压缩呢?
回复回复点赞举报
ascp -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh -l 100M -k 1 -T anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nt.gz ./请问这一行命令是什么意思呀 能不能后台运行呢
ascp -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh -l 100M -k 1 -T anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nt.gz ./请问这一行命令是什么意思呀 能不能后台运行呢
11点赞举报
下载数据库,可以后台运行
下载数据库,可以后台运行
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
轻松一刻——LeetCode题目13:罗马数字转整数
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。27 写做 XXVII, 即为 XX + V + II 。
二环宇少
2020/08/13
3030
Leetcode12 整数转罗马数字
字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
Swingz
2020/12/18
2620
每日一刷:罗马数字转整数
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 X + V + II 。
乐心湖
2021/02/25
3390
【力扣刷题】12. 整数转罗马数字
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。
jayjay
2022/11/02
2090
【力扣刷题】12. 整数转罗马数字
C语言每日一题(46)整数转罗马数字
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
对编程一片赤诚的小吴
2024/01/23
2070
C语言每日一题(46)整数转罗马数字
12. 整数转罗马数字
例如, 罗马数字 2 写做 II,即为两个并列的 1。12 写做 XII,即为 X+ II。 27 写做 XXVII, 即为 XX+ V+ II。
GeekLiHua
2025/01/21
620
LeetCode 13. 罗马数字转整数(贪心)
字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
SakuraTears
2022/01/13
4650
【Leetcode-13.罗马数字转整数 -14.最长公共前缀】
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
YoungMLet
2024/03/01
1140
Leetcode算法系列| 12. 整数转罗马数字
游戏开发小Y
2024/01/18
1300
Leetcode算法系列| 12. 整数转罗马数字
罗马数字背后的秘密——LeetCode XII XIII 题记
印象中的罗马数字,多出现在文档标题或序号中:I、II、III、IV、V、VI 等。它是阿拉伯数字传入之前使用的一种数码。其采用七个罗马字母作数字:Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500),注意是没有 0 的。罗马数字的记数方法如下:
TTTEED
2020/07/08
1.1K0
Python练习【3】【罗马数字转换/查
示例 1: 输入: “III” 输出: 3 示例 2: 输入: “IV” 输出: 4 示例 3: 输入: “IX” 输出: 9 示例 4: 输入: “LVIII” 输出: 58 解释: C = 100, L = 50, XXX = 30 and III = 3. 示例 5: 输入: “MCMXCIV” 输出: 1994 解释: M = 1000, CM = 900, XC = 90 and IV = 4.
py3study
2020/01/06
1.6K0
LeetCode 12/13 罗马数字与整型互转(哈希,贪心)
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
Michael阿明
2020/07/13
4690
LeetCode 12/13 罗马数字与整型互转(哈希,贪心)
数据结构与算法 -2 :罗马数字与整数的相互转换
例如,罗马数字2写做II,即为两个并列的1。12写做 XII,即为 X + II 。27 写做XXVII,即为XX+V+II。
石璞东
2020/05/20
6280
LeetCode 12. 整数转罗马数字(字符串)(贪心算法)
title: '' date: 2020-12-22 19:15:18 tags: [算法,贪心,字符串,LeetCode] published: true hideInList: false feature: https://cdn.jsdelivr.net/gh/ZSakuraTears/cdn/img/Dl0g4BB4Fp.jpg
SakuraTears
2022/01/13
3730
力扣12&13-整数与罗马数字互换
原题链接:https://leetcode.cn/problems/integer-to-roman/
WuShF
2023/02/22
3980
力扣12&13-整数与罗马数字互换
罗马字符转换数字_数字变成字符串怎么改过来
今天在力扣上做了一道这个题,还算简单,主要是理解规则。解法也有很多种,我这里用的是常规解法,先将输入进来的字符串转换为字符数组,然后进行一系列操作。
全栈程序员站长
2022/11/11
5350
罗马字符转换数字_数字变成字符串怎么改过来
【力扣算法13】之 12. 整数转罗马数字 python
首先,我们将罗马数字的字符和对应的数值存储在两个数组中。roman_chars数组存储了罗马数字的字符,roman_values数组存储了对应的数值。例如,'I’对应的数值是1,'V’对应的数值是5,以此类推。
全栈若城
2024/02/29
1610
【力扣算法13】之 12. 整数转罗马数字 python
【leetcode】13:罗马数字转整数
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
乔戈里
2019/05/14
6220
力扣刷题笔记--12. 整数转罗马数字 python解法
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。
C_H
2022/11/15
4570
C#版 - Leetcode 12. 整数转罗马数字 - 题解
在线提交: https://leetcode.com/problems/integer-to-roman/
Enjoy233
2019/03/05
1.3K0
推荐阅读
相关推荐
轻松一刻——LeetCode题目13:罗马数字转整数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档