使用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.

    关于GFF3格式

    GFF3是GFF注释文件的新标准。文件中每一行为基因组的一个属性,分为9列,以TAB分开。

    依次是:

    1. reference sequence:参照序列
    指出注释的对象。如一个染色体,克隆或片段。可以有多个参照序列。

    2. source :来源
    注释的来源。如果未知,则用点(.)代替。

    3. type :类型
    属性的类型。建议使用符合SO惯例的名称(sequence ontology,参看[[Sequence Ontology Project]]) ,如gene,repeat_region,exon,CDS等。

    4. start position :起点
    属性对应片段的起点。从1开始计数。

    5. end position :终点
    属性对应片段的终点。一般比起点的数值要大。

    6. score :得分
    对于一些可以量化的属性,可以在此设置一个数值以表示程度的不同。如果为空,用点(.)代替。

    7. strand :链
    “+”表示正链,“-”表示负链,“.”表示不需要指定正负链。

    8. phase :步进
    对于编码蛋白质的CDS来说,本列指定下一个密码子开始的位置。可以是0,1或2,表示到达下一个密码子需要跳过的碱基个数。
    对于其它属性,则用点(.)代替。

    9. attributes :属性
    一个包含众多属性的列表。格式为“标签=值”(tag=value)。不同属性之间以分号相隔。可以存在空格,不过若有“,=;”则用URL转义(URL escaping rule),同时TAB也需要转换为“%09”表示。
    下列的标签已定义:

    ID
    指定一个唯一的标识。对属性分类是非常好用(例如查找一个转录单位中所以的外显子)。
    Name
    指定属性的名称。展示给用户的就是该属性。
    Alias
    名称的代称或其它。当存在其它名称时使用该属性。
    Note
    描述性的一些说明。
    Alias和Note可以有多个值,不同值之间以逗号分隔。
    如:Alias=M19211,gna-12,GAMMA-GLOBULIN

    Other good stuff can go into the attributes field, as we shall see later.

    Posted from GScribble.

    重新安装bioperl

    此文适合一下情况:
    更新BioPerl时,想彻底删除旧版程序,安装一个完整的全新BioPerl;
    安装BioPerl后出错,需要从头安装。

    重新安装时不会自动覆盖老板本,因此需要手动删除以下文件:
    bioperl位于以下目录:
    /usr/local/man/man3/Bio::*
    /usr/local/bin/bp_*
    /usr/local/man/man1/bp_*
    /usr/local/share/perl/5.8.8/Bio/

    然后再进行安装即可。

    >perl Build.PL
    >./Build test

    >./Build install

    If your system is Ubuntu, just type the following command in terminal:
    sudo apt-get install bioperl

    Posted from GScribble.

    Ubuntu 10.10环境下安装GScribble

    GScibble是Linux下面的优秀的博客程序客户端,比Blogtk界面友好。可以读取Wordpress的分类信息,还可以编辑已发布的条目。
    为了在我的Ubuntu 10.10环境下安装该程序,我还是处理了几个小问题,在这里Mark一下。

    首先,安装过程中的问题。
    安装文件可以从SF下载:http://sourceforge.net/projects/gscribble/
    按照安装文件INSTALL的说明操作即可。
    1. $ chmod +x setup.py
    2. $ sudo ./setup.py install
    我的系统缺少python-gtkhtml2的库,打开新立得软件包管理器,搜索之后安装,即可完成安装。

    其次,Python的版本问题。
    我原先的Python版本为2.5。安装之后启动程序不成功。于是我安装了Python2.6,并将默认的Python链接到Python2.6上。

    现在,可以使用GScribble方便的发布更新了。

    小提示:如果程序无法正常启动,可以在终端输入gscribble的方式试试,终端中的错误提示会对你有帮助的。

    Posted from GScribble.

    向量和矩阵有什么区别

    向量矩阵有什么区别

    向量是矩阵的特殊类型,是只有一行或者一列的矩阵。这两种矩阵分别称为行矩阵(行向量)和列矩阵(列向量)。

    另外,矩阵用阶数表示,比如2阶方阵;向量通常用维数表示,比如n维向量。

    总之,向量的本质是矩阵,向量的计算全部参考矩阵计算的运算律。

    Posted from GScribble.