Perl全新。无论如何,我得到了一个特定的任务,我在网上发现了一个完全我想要的perl模块。
这是perl模块的文档 - 在Ext下有一个名为pwmsearch,它完全符合我的需要。
所以我试着编写一个类似这样的脚本:
#!/usr/bin/env perl -w
use strict;
use TFBS::Ext::pwmsearch; #this was how the documentation said in synopsis part for pwmsearch so I figured this was how to do it
问题是我无法弄清楚我应该如何将对象传递给pwmsearch。上面的文档中显示的pwmsearch的源代码说它接收$ matrixobj和$ seqobj,我将其存储为文件矩阵和序列。
所以在谷歌搜索我可以尝试的东西之后,我尝试过这样的事情:
pwmsearch('matrix','sequence');
或
open FILE, 'matrix.txt' or die "Couldn't open file";
$matrix.=<FILE>
close FILE;
open FILE, 'sequence' or die "Couldn't open file";
$seq.=<FILE>
close FILE;
pwmsearch($matrix,$seq)
但是所有这些都让perl吠声给我带来了各种各样的错误。我做错了什么,我该怎么做才能解决它们?
答案 0 :(得分:1)
以下是如何生成pwm矩阵对象的文档:http://tfbs.genereg.net/DOC/TFBS/Matrix/PWM.html
use TFBS::Matrix::PWM;
my $matrixstring = <<ENDMATRIX
0.61 -3.16 1.83 -3.16 1.21 -0.06
-0.15 -2.57 -3.16 -3.16 -2.57 -1.83
-1.57 1.85 -2.57 -1.34 -1.57 1.14
0.31 -3.16 -2.57 1.76 0.24 -0.83
ENDMATRIX;
my $pwm_matrix_in = TFBS::Matrix::PWM->new(-matrixstring => $matrixstring,
-name => "MyProfile",
-ID => "M0001"
);
PWMSearch文档:http://tfbs.genereg.net/DOC/Ext/pwmsearch.html
它需要五个输入变量:$ matrixobj,$ seqobj,$ threshold,$ start,$ end,如果我看到正确的话,最后3个是可选的。
seqobj很可能是Bio :: Seq兼容对象。从文件创建新对象: 文档:http://metacpan.org/pod/Bio::SeqIO
use Bio::SeqIO;
my $seqobj_in = Bio::SeqIO->new(-file => "inputfilename" ,
-format => 'Fasta');
use strict;
use TFBS::Ext::pwmsearch;
TFBS::Ext::pwmsearch::pwmsearch($pwm_matrix_in,$seqobj_in);
我希望这会对你有所帮助。