chenhao392的个人博客分享 http://blog.sciencenet.cn/u/chenhao392

博文

学习笔记:几个有用的perl的模块

已有 8541 次阅读 2011-8-6 09:04 |系统分类:科研笔记| Perl, 生物信息, module, 模块

索引

1. Parallel::ForkManager
perl的一个简便的多线程叉口,用在for/while等循环体中。

2. Bio::DB::Fasta
读取各类格式的序列的模块。

3. Bio::SearchIO
读取各类blast结果的模块。

4. Bio::Search::Tiling::MapTiling
重叠blast结果中,同一个subject 序列的多个HSP的模块。


实例

1. Parallel::ForkManager

my $pm = new Parallel::ForkManager(4); #建立object,选择需要的thread 数量,此处为4个
...
while(<FILE>){
        $pm->start and next; #在循环中开始产生threads
        ....
        $pm->finish; #threads结束
}
$pm->wait_all_children;#循环所有threads结束后开始后续步骤

Tips:
1. 
Thread数量为0时为调试模式,相当于没有此模块,便于调试程序。
2.
 因为多线程返回结果不同时,循环内部如果有类似打印信息的命令,其打印顺序会混乱.


2. Bio::DB::Fasta

#建立一个序列的database,再把序列提到一个hash里
my $db= Bio::DB::Fasta->new($seq_file)->get_PrimarySeq_stream;

my %seq;
while( my $seq = $db->next_seq ) {
        my $data=$seq->seq($seq);
        $data =~ s/\n//g;
        my $id=$seq->id;
        $seq{$id}=$data;
}

3. Bio::SearchIO

my $blio = Bio::SearchIO->new(  -format => 'blast',
                                -file   => $file _path);#有多种格式可以选择,blast 通吃m0, m8等格式

while(my $result = $blio->next_result){
        my $query_name=$result->query_name;#query 序列id
        my @hits=$result->hits;#所有hit,per subject gene
        ...
}

4. Bio::Search::Tiling::MapTiling

        # $result为例子3中的Bio::SearchIO的object
        foreach my $hit ($result->hits){
                my  $tiling = Bio::Search::Tiling::MapTiling->new($hit);#为每一个hit建立object
                my  $ident = $tiling->identities('query','exact');#用exact方法计算per gene的identity,共有est, exact..等等3个方法
                 ...
       }

Tips:

1.
exact方法最耗时,同时是最精确的. est次之,那个fast的方法,结果相差甚远.

2. 
exact和est方法需要“比对图例”,m0格式。而默认blastall会给出最多500个“tab分隔结果”,250个比对图例,需要调整-b和-v两个参数使二者一致。

tab分隔结果:
                                                                 Score    E
Sequences producing significant alignments:                      (bits) Value

Thhalv10000734m|PACid:20179467                                       2474   0.0  
Thhalv10000744m|PACid:20202590                                       1316   0.0  

比对图例:

>Thhalv10000734m|PACid:20179467
          Length = 1358

 Score = 2474 bits (6411), Expect = 0.0,   Method: Compositional matrix adjust.
 Identities = 1210/1342 (90%), Positives = 1210/1342 (90%)

Query: 1    MASTPQFLLDDQTDEDFFDKLVDDXXXXXXXXXXXXXKELKFDDGSDSDDAKAFANXXXX 60
            MASTPQFLLDDQTDEDFFDKLVDD             KELKFDDGSDSDDAKAFAN    
Sbjct: 1    MASTPQFLLDDQTDEDFFDKLVDDSFSPSEAHASSSAKELKFDDGSDSDDAKAFANLSLV 60

...








https://blog.sciencenet.cn/blog-395566-472339.html

上一篇:blast2go本地安装,一个防火墙设置引发的血案
下一篇:学习笔记:两个perl模块
收藏 IP: 150.135.37.*| 热度|

1 杨洋

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-4 13:16

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部