我想FASTA格式峰会多种蛋白序列上使用this server提交多个FASTA序列以下perl脚本使用WWW ::机械化
use WWW::Mechanize;
# get the webpage with the form
my $mech = WWW::Mechanize->new();
$mech->show_progress(1);
my $url = "http://harrier.nagahama-i-bio.ac.jp/sosui/sosu/sosuigsubmit.html";
$mech->get($url);
# just checks to see if scripts call properly
sub validateInput{
my $file = shift;
my $inFh = IO::File->new($file) || die "can't open input file\n";
close($inFh);
return 1;
}
validateInput($ARGV[0]);
# fill the fields with the appropriate data and submit
my $fields = {
'in' => $ARGV[0],
'value' => 'Exec'
};
$mech->submit_form(
fields => $fields,
);
# print results
print $mech->content();
但每次我越来越喜欢这个
<HTML>
<bR><bR><bR>
<TABLE>
<TR><TD ALIGN=left WIDTH=300>TOTAL PROTEINS</TD><TH>0</TH></TR>
<TR><TD ALIGN=left WIDTH=300>TOTAL MEMBRANE PROTEINS</TD><TH>0</TH></TR>
<TR><TD ALIGN=left WIDTH=300>PERCENTAGE</TD><TH> 0.0 %</TH></TR>
</TABLE>
</HTML>
结果时间
当您提交没有输入的表单时,这是一个结果页面。所以我怀疑我的序列提交有问题。我的输入文件看起来像这样
>ATCG00420
MQGTLSVWLAKRGLVHRSLGFDYQGIETLQIKPEDWHSIAVILYVYGYNYLRSQCAYDVAPGGLLASVYHLTRIEYGV NQAEEVCIKVFTHRSNPRIPSVFWVWKSTDFQERESYDMLGITYDSHPRLKRILMPESWIGWPLRKDYIAPNFYEIQDAY
>ATCG00360
MSAQSEGNYAEALQNYYEAMRLEIDPYDRSYILYNIGLIHTSNGEHTKALEYYFRALERNPFLPQAFNNMAVICHYRGEQAIQQGDSEMAEAWFAQAAEYWKQAITLTPGNYIEAQNWLTITRRFE
,我打电话给我这样的脚本
perl my_script input.seq >output
谢谢你帮我。
原始代码中'sosuiG/sosuigsubmit'中是否有空格? – Kev
如果这是你的真实代码,那么URL是错误的。网址中不允许使用空格。你应该检查'$ mech-> success'来确保你的调用get'和'submit_form'成功,'$ mech-> status'找出失败的错误,'$ mech-> text'看看这个表单实际上是什么样子。 – Borodin
另外,打开一个文件来检查它是否有效是非常浪费的。你可以使用'-e'来确保它存在,'-f'确保它是一个文件而不是一个目录,'-s'确保它不是空的,'-r'确保它可以是阅读,所有这些都不需要经过漫长的打开过程。 – Borodin