使用BioPerl和primer3批量设计RT-PCR引物

Update:

  • 我已经设置了一个Massive RT-PCR Primer Designer服务,有需要的朋友可以直接去上传自己基因序列的Fasta文件,然后服务器会将引物返回。
  • 关于Missing SEQUENCE tag错误的处理
  • 以下为原文。
    ———————————————————————————————–
    本文介绍批量设计RT-PCR引物的方法,基于Ubuntu 10.10系统和BioPerl 1.6.1。但是应当适用于大部分Linux系统。

    本文假定你已经安装好BioPerl。

    安装primer3和Bio::PrimerDesigner

    >sudo apt-get install primer3 libbio-primerdesigner-perl
    

    修正程序Bug

    Primer3安装之后的可执行文件存在于/usr/bin/primer3_core,而Bio::PrimerDesigner软件包找不到该文件,所以需要建立一个符号链接。

    >sudo ln -s /usr/bin/primer3_core /usr/local/bin/primer3
    

    准备序列文件

    将要设计的文件以Fasta格式保存(也可以用其它BioPerl识别的任意格式保存)在当前目录中,此处以seqs.fa命名。

    代码

    然后在当前目录中新建文件designPrimer.pl。
    录入代码如下:

    #! perl -w
    use Bio::SeqIO;
    use Bio::PrimerDesigner;
    
    my $seqs = Bio::SeqIO->new(-file => 'seqs.fa');
    open OUT, '>> raw_output.txt';
    my $pd = Bio::PrimerDesigner->new;
    while( my $seq = $seqs->next_seq() ) {
         my $seqid = $seq->id;
         my $dna = $seq->seq;
         my %params = ( 
             PRIMER_NUM_RETURN   => 1,
             PRIMER_SEQUENCE_ID  => $seqid,
             SEQUENCE            => $dna,
             PRIMER_PRODUCT_SIZE_RANGE => '150-250',  #注意此处参数在perl文档中是错误的,应更正为此
             );
         my $primers = $pd->design( %params ) or die $pd->error;
         my ($left_primer,$right_primer);
         if ( !$primers->left ) {
            warn "No primers found for $seqid\n";
            }
            else{
               $left_primer  = $primers->left;
               $right_primer = $primers->right;
            }
          print join(',', $seqid, $left_primer, $right_primer);
          print "\n";
          print OUT $primers->raw_output; #此处的perl文档也是错误的,应更正为此
       }
    

    保存引物

    打开终端,输入

    > perl designprimer.pl
    

    如果程序运行正常,引物设计的结果将在屏幕上显示,同时应当会有一些警告信息。

    然后,可以将结果用管道命令保存:

    > perl designprimer.pl >primers.csv
    

    注释

    raw_output.txt中含有primer3程序运行的完整结果。可以作为额外参考。

    Refers:
    search.cpan.org/~smckay/Bio-PrimerDesigner-0.07/lib/Bio/PrimerDesigner.pm

    Posted from GScribble.

    2 Responses to “使用BioPerl和primer3批量设计RT-PCR引物”

    1. […] and was derived from the standalone codes which have been discussed by two previous blog posts (Post 1 and Post […]

    2. […] 我先前曾经写过一个设计RT-PCR引物的脚本,当初运行良好,所以把它给分享了出来(在这里)。最近又用发现会有错误,“Missing SEQUENCE tag”,经过分析,最终解决了这个问题。 […]

    Leave a Response