快速从FASTA文件中提取特定序列

        最近有个老师在做基于十多个保守基因的进化树分析,需要从几十个基因组中分别提取出特定的基因序列,如果对于每个基因都是“查找基因ID-复制基因序列-粘贴到文档中”这么一个循环,不仅仅是工作量极大,还非常容易出错。基于这类需求,我们今天分享一种快速提取序列的方法:一个从FASTA文件中提取特定序列的脚本。

        除了一些复杂的软件能够完成上面的需求之外,另外一种非常方便快捷的方法就是使用编程。虽然大部分研究人员都不懂编程,但使用编写好的脚本,按图索骥,还是非常简单的。今天给大家分享的是一段python脚本。

如果Windows(或Mac)电脑上尚未安装Python语言,可以直接下载安装,这里提供两种下载方法:

①Python官方下载渠道:https://www.python.org(访问较慢)

②关注本公众号并回复“Python安装包”,即可高速下载最新版本。

1、Python的安装使用

目前最新稳定版本是3.8.5版本,本文以64位版本为例安装。

2、脚本的使用

2.1、脚本获取

关注微信公众号(密码子实验室,mimazilab


回复关键词“fasta文件提取python脚本”,获取脚本下载路径。

2.2、python运行环境检测

方法①使用快捷键“win+R”(windows键就是键盘上Ctrl和Alt键之间的带有微软windows标志的按键),输入cmd,点击“确定”,调出DOS操作界面,输入“python”即可看到安装的版本。

方法② 在目标目录文件夹下(实际上可以是任意文件夹下),按住“Shift”键,同时右击鼠标,弹出菜单中选择“在此处打开Powershell窗口”,或者在当前文件夹下,点击本文件夹最左上角的“文件”菜单,选择“打开Windows PowerShell”,在弹出的界面中输入“python”获取相关信息。

提示:可以输入“exit()”然后按回车键退出,或者按住“Ctrl+z”然后按回车键退出。

2.3、文件准备

 本脚本的数据源包括两个,一个是包含了各条基因序列的FASTA文件,一个是含有目的基因名称的list文件。源序列文件建议使用fasta、fna或者fa等常见后缀,list文件建议使用记事本生成txt后缀文件或者使用word文档保存成txt后缀文档。

本文中以从GenBank中下载的一个基因组CDS核酸序列为例展示,并将基因序列号做了重新编排。

Tips:

①基因组fasta文件往往比较大,推荐大家使用UltraEdit或者NotePad++软件打开这类大文件,会很顺畅不死机,如果需要序列号授权版请在留言区联系我们;

②对于DOS操作系统不熟悉的用户往往会因文件路径问题而抓狂,为了简化文件路径,建议大家把脚本文件、FASTA源文件、含有目标序列名称的list文件放在同一个目录下,最后的结果文件也生成在该目录下;

2.4、脚本使用

本脚本的使用方法是,在DOS界面(实际上在Linux系统中也是一样方法)中输入“python -help”,然后回车即可获得使用方法。

3、实战操作:

在PowerShell或者命令提示符界面输入“python .\fasta-extract.py .\test.fasta .\test-list.txt .\test-result.fasta”,回车即可获得结果文件。

说明:

①输入“python”是开始调用已安装的python程序,在DOS系统中,也可以使用“python.exe”,效果是一样的;

②文件名前加“.\”表示当前目录下,如果是其他路径,可以直接输入绝对路径;

③ list文件中的序列名称,必须与源文件中相应的序列名称完全一致,否则不能识别和有效提取。

4、FAQ

Q1:蛋白质序列能提取吗?

A1:只要是FASTA格式的文件,无论是核酸序列还是蛋白质序列,都能有效提取,操作方法完全一致。

Q2:除了提取特定基因序列外,这个脚本还能做什么?

A2:本脚本专用于从包含有多个FASTA字段的源文件中提取特定的某条或者某些条FASTA序列,可用于从基因组CDS文件中提取特定编号的基因序列、从组装结果文件中提取特定的contig或者scaffold序列,从测序的原始reads中提取特定的某些reads等等。

各位小伙伴,以上的教程学会了吗?如果对于数据文件下载、源文件格式、list文件格式等有疑问,可以单独联系我(微信号:15618204007)。