FASTA文件拆分与合并

电脑相关1 Comment »

Linux里面的命令行用习惯之后的感觉真是太爽了,一个命令,能搞定很多东西,比如fasta文件拆分、提取与合并,非常简单。
很久之前还写过一个小软件用于合并多个fasta文件,还有用BioEdit合并多个基因序列文件,现在想想真是too naive!

FASTA文件拆分:
1. 从a.fasta中提取第10至第20个序列存到b.fasta中

-

awk -v RS='>' 'NR>1{i++}i>=10&&i<=20{print ">"$0}' a.fasta|sed '/^$/d'>b.fasta

上面命令行中的红色的10和20可以换为其它数字

2.将input.fasta中第每一条序列保存到一个文件中, 这个是在网上看到的,链接在这里

awk '/^>/{f=++d".fasta"} {print > f}' input.fasta

FASTA文件合并:

cat *.fasta > output.fasta

awk是Unix/Linux下的一种用于文本处理的编程语言,Sed是Unix/Linux下的一种流编辑器。功能都非常强大。

当然这些操作用Python或Perl编程也很容易实现,但不如命令行这么直截了当。
另外,在Windows下如果安装了Cygwin这个软件,也可以使用这些命令。

功能强大而又简单易学的编程语言Python

电脑相关4 Comments »

Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大的通用型语言(维基百科)。自从上次写那个批量Blast小程序的时候接触了Python,发现这个玩意儿真是好用,后来还用它弄了个动态作图小程序,最近在处理高通量测序数据的时候也一直用Python,越用觉得好用!给大家推荐一下,如果你想快速学一种实用的编程语言用来写小程序或处理数据,就学Python吧。
继续阅读 »

批量Blast小程序

生物技术5 Comments »

问题是这样的:有很多很多序列,几百条,想大致了解一下这些序列分别是什么样的微生物,如果一条一条去blast,那是相当的累。想找一个工具告诉我每条序列blast结果的前几条的名称是什么即可,不需要其它信息。

在网上找了一下,没找到合适的软件或工具,虽然有些关于批量blast的教程之类的,比如这个,但是给出的结果及其繁琐,很多不需要的信息。

后来发现Biopython可以很简单就进行批量Blast。只需先安装PythonBiopython,Python和Biopython的下载地址分别为:
http://www.python.org/download/
http://www.biopython.org/wiki/Download

继续阅读 »

酶切位点分析

生物技术5 Comments »

前段时间做了一个克隆文库,有点大,拿到上百条序列,有了序列后,想选择一种合适的酶进行酶切,进而将克隆的结果与T-RFLP的结果联系起来。试了几个软件和一些在线酶切分析工具,好像都是可以用多种酶去切一个序列,而不能同时切多个序列。要是序列不多,一个个切切还可以,可是这上百条序列就需要几百次甚至更多的重复操作,不但能把手累的抽筋,眼都能被累的抽筋,实在让人无法忍受。于是决定自己做个小工具。

首先用了几个小时速成了一下Perl语言及Bioperl,发现这玩意处理字符串真的是太方便了!只需要下面这几行代码就可以自动或半自动同时查找多个序列酶切位点了(由于T-RFLP结果只与第一个酶切位点有关,因此只找每个序列的第一个切点)。
继续阅读 »