Categorized | 数据分析

Tags | ,

Perl处理Fasta序列的又一实例

Posted on 13 一月 2010 by 柳城 ,阅读 818

今天再来分享一小段Perl脚本,其实是比较简单的。主要是用来处理Fasta格式的序列

网友niche Says:

你好,你有没有分割fasta文件的perl脚本,我需要把一个fasta文件按两条序列一组分成若干个fasta文件,谢谢!

如果不懂fasta文件,可以再看一下解释
或是查看: Fasta格式的详细说明

>cel-miR-1 MIMAT0000003 Caenorhabditis elegans miR-1
UGGAAUGUAAAGAAGUAUGUA
>cel-miR-2 MIMAT0000004 Caenorhabditis elegans miR-2
UAUCACAGCCAGCUUUGAUGUGCUAUCACAGCCAGCUUUG
UAUCACAGCCAGCUUUGAUGUGC
……

其中标识符就是大于号'>'。按两个为一组分成若干个文件。大意上是这样。

分割fasta文件

#!/usr/bin/perl

#fasta2.pl
#Usage:perl fasta2.pl in_fasta out_file

open(IN,"<$ARGV[0]");
$i = 0;
$j = 1;
while(<IN>){
    if(/^>/){
        $i++;
    }
    if($i == 3){
        $j++;
        $i = 1;
    }
    open(OUT,">>$ARGV[1]_$j");
    print OUT $_;
}

注: in_fasta是指要处理的fasta文件。

           out_file是指输出的文件。(如命名为out, 则生成的文件名为out_1, out_2, out_3等)

主要是利用循环嘛,第一步是按大于号'>'来统计个数。再用$j来循环输出文件名。

转载请注明 : 来源于 Perl处理Fasta序列的又一实例 | 柳城

赞助商

20条评论 于 “Perl处理Fasta序列的又一实例”

  1. 苏囧 苏囧 Says:

    很好,支持一下。。。

    [回复]

  2. niche niche Says:

    LC,非常感谢,编的很简洁,我完全看懂了。用perl来处理fasta文档真的很方便

    [回复]

  3. evlos evlos Says:

    嘎嘎,老兄,那个,fasta是啥?

    [回复]

    柳城
    柳城 回复:

    一种格式啊, 就是数据严格按照这种格式保存在文件里.以>开始. 其实上面有解释的. :)

    [回复]

    evlos
    evlos 回复:

    额,不好意思,没说清楚 ~
    其实小邪想问的是这个格式是拿来做什么的?
    看了上面,难道这个格式只是DNA之类专用的?

    [回复]

    柳城
    柳城 回复:

    的确是.. 自从DNA测序后, 规定了这种格式(其中一种,当然还有其它类型的格式)来存放的序列.. 是跟我打交道最多的一种格式啊. :)

    [回复]

  4. 万戈 万戈 Says:

    基础太差,完全木有看懂。。。 [衰]

    [回复]

    柳城
    柳城 回复:

    呵呵.. 好说.. perl的符号比较奇怪.. [呲牙]

    [回复]

  5. xinsinian xinsinian Says:

    为什么不能运行啊。那个输入的文件叫什么名字啊

    [回复]

  6. xinsinian xinsinian Says:

    就是我把你的程序拷贝到txt后,改名为fasta2.pl,然后用cmd里运行perl fasta2.pl,我安装activeperl了。我的序列文件名字叫in_fasta,需要后缀名吗。基础太差了。呵呵,谢谢

    [回复]

    柳城
    柳城 回复:

    Usage:perl fasta2.pl in_fasta out_file
    不用后缀。用cmd要注意路径。如c:/fasta2.pl
    不用后缀,里面格式是fasta就行。

    [回复]

    xinsinian
    xinsinian 回复:

    多谢啊,我知道我为什么不能运行了,我cmd输入的命令只是“perl fasta2.pl ”
    我输入“perl fasta2.pl in_fasta out_file”,就运行的很好了,真的很神奇啊。

    Usage是输入命令的意思吗?刚刚接触perl,十分感谢。你这个博客真是对搞生物信息学的雪中送炭啊!

    [回复]

    柳城
    柳城 回复:

    usage是用法的意思.. 呵呵.. 输入命令也差不多了

    [回复]

  7. 世纪之光 世纪之光 Says:

    以前听说Perl脚本是黑客必修的一门脚本,现在还是这么流行?

    [回复]

    柳城
    柳城 回复:

    现在.. 没那么流行了. 前段时间看了排名, 应该是第六..
    可能黑客还是会学这个的..

    [回复]

  8. 陆景标 陆景标 Says:

    我把你的程序拷贝下来放在一个记事本中,然后保存为fasta2.pl格式,放在D盘其中一个文件中,我把高粱全基因序列sbi1.fasta改为in_fasta.fasta文件也放在这个文件中, 在cmd中找到这个文件的目录然后输入
    perl fasta2.pl in_fasta out_file,怎么没有反应啊,不知道为什么,请您指教,第一次接触perl,不懂的太多,但是对我们实验帮助太大,不得不掌握啊。

    [回复]

    柳城
    柳城 回复:

    要有完整的目录.那只是例子而已了.如c:/in_fasta.fasta

    ~ 有问题请到yunbio.com

    [回复]

  9. 小时 小时 Says:

    很细。

    [回复]

  10. 电脑资讯网 电脑资讯网 Says:

    什么东西,瞧瞧

    [回复]

  11. sally sally Says:

    很不错,正好用得我的文件中了。

    [回复]

Leave a Reply

广告招租

[强] [握手] [可爱] [ok] [呲牙] :) [偷笑] [流泪] [疑问] [亲亲] [擦汗] [得意] [衰] [可怜] [抱拳] [坏笑] more »

无觅相关文章插件,快速提升流量