如何在Linux中进行本地Blast序列比对?

简介: 如何在Linux中进行本地Blast序列比对?

今天分享一篇学习笔记,主要包含本地化blast序列比对和数据提取方法。

首先,需要准备RNA数据和蛋白质数据,本次利用蛋白质数据建立索引库,然后将RNA比对到蛋白质序列。

RNA数据

创建一个目录,导入mRNA序列数据,通常是一个fasta后缀文件。

  1. 在工作目录下创建alignment文件夹
  2. 将mRNA序列数据文件wheat-test.fasta拷贝到/alignment中

蛋白质数据

新建一个文件夹存放蛋白质序列数据和索引文件(蛋白质序列后缀是fa)

  1. 在alignment文件夹内创建database文件夹
  2. 将Arabidopsis_protein.fa.gz拷贝到alignment/database中,并解压获得蛋白质序列文件Arabidopsis_protein.fa

建立索引

建立索引需要输入文件为蛋白质序列数据,类型可以选蛋白或者核酸,输出索引需要制定一个名称,最终生成比对索引数据库。

运行makeblastdb软件,对Arabidopsis_protein.fa建立索引文件,以下是该软件的提示信息。

$ makeblastdb -help
USAGE
  makeblastdb [-h] [-help] [-in input_file] [-input_type type]
    -dbtype molecule_type [-title database_title] [-parse_seqids]
    [-hash_index] [-mask_data mask_data_files] [-mask_id mask_algo_ids]
    [-mask_desc mask_algo_descriptions] [-gi_mask]
    [-gi_mask_name gi_based_mask_names] [-out database_name]
    [-max_file_sz number_of_bytes] [-logfile File_Name] [-taxid TaxID]
    [-taxid_map TaxIDMapFile] [-version]
-dbtype <String, `nucl', `prot'>
  • -in:输入文件(xxx.fa)
  • -dbtype:选择类型(prot\nucl)
  • out:输出索引文件名(index)
makeblastdb -in input_file -dbtype prot/nucl -out output_prefile

建立索引完成后,可以在当前目录下发现几个新生成的索引文件。

序列比对

运行blast子程序

  • blastn:将给定的核酸序列与核酸数据库中的序列进行比对
  • blastp:使用蛋白质序列与蛋白质数据库中的序列进行比对
  • blastx:将给定的核酸序列按照六种阅读框架将其翻译成蛋白质与蛋白质数据库中的序列进行比对
  • tblastn:将给定的氨基酸序列与核酸数据库中的序列(双链)按不同的阅读框进行比对
  • tblastx:将DNA被检索的序列和核酸序列数据库中的序列按不同的阅读框全部翻译成蛋白质序列,然后进行蛋白质序列比对

blastn -query input_file -db database -evalue 1e-5 -out wheattest_Aradidopsis.out

实际操作示例代码:

blastx -query ./wheat-test.fasta -db ./database/index -evalue 1e-5 -out wheattest_Aradidopsis.out

query:待查询的序列,可以理解为需要进行比对的序列。

db:本地的数据库,可以理解为由已知信息构建的索引模板,用于对待查询序列进行比对。

evalue:比对的阈值,即判断比对准确性的标准。

最终结果

会自动生产一个包含比对结果的文件,利用less -S打开后可以看到一系列比对信息。

提取满足条件的指定数据

  • 利用awk命令
awk '$6 > 5 && sqrt($7*$7) > 1 && $10 < 0.01 {print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6 "\t" $7 "\t" $10}' ./ matrix.DE_results.txt > name.list
  • 利用cat命令
cat matrix.DE_results.txt | awk '$6 > 5 && sqrt($7*$7) > 1 && $10 < 0.01 {print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6 "\t" $7 "\t" $10}' > name.list

上面两条命令均表示对matrix.DE_results.txt文件进行筛选,生成新文件name.list


END

© 素材来源于网络,侵权请联系后台删除

往期推荐:

文献丨群体转录组分析锁定关键转录因子

文献丨转录组RNA seq——青年阶段!

笔记丨ggplot2热图入门学习笔记

笔记丨PCA分析基本知识和数学原理

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
编解码 Linux
Linux MIPI DSI驱动调试笔记-设备树DCS格式序列之配置LCD初始化代码(二)
Linux MIPI DSI驱动调试笔记-设备树DCS格式序列之配置LCD初始化代码(二)
1437 0
|
6月前
|
Shell Linux 信息无障碍
5 个有用的 Linux Shell 转义序列
5 个有用的 Linux Shell 转义序列
|
Linux Shell 开发工具
11.4.3 【Linux】文件比对工具
11.4.3 【Linux】文件比对工具
82 0
|
Unix Linux 程序员
教你一招Linux下文本比对方法
教你一招Linux下文本比对方法
325 0
教你一招Linux下文本比对方法
|
Linux
教你一招Linux下文本比对方法
我们在写代码的过程中,免不了会对代码进行一些修修改改。但经常会出现改着改着,就不知道改完后与源文件的差异是怎样的。这里,我们就需要一个文本比对工具来进行文本比对。 有经验的程序员都知道,Windows下有个很好用的文本比对工具——BeyondCompare。
2014 0
|
Linux C++ 容器
linux下练习 c++ 序列容器的使用
//sequence.cpp   // sequence.cpp /* 序列式容器:vector,deque,list 插入:.
883 0
|
9天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
79 6
|
10天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
44 3
下一篇
无影云桌面