【问题标题】:Mechanize Basic Questions机械化基本问题
【发布时间】:2011-07-13 05:58:15
【问题描述】:

我正在使用这个网站:http://bioinfo.uni-plovdiv.bg/microinspector/

从机械转储中,我得到了

POST http://bioinfo.uni-plovdiv.bg/microinspector/cgi/result-new1.plx
  target_name=                   (text)
  target_sequence=               (textarea)
  Choose an organism : =Choose an organism: (option)   [*Choose an organism:|-NEMATODES------------------|C. elegans/Caenorhabditis elegans|C. briggsae/Caenorhabditis briggsae|Capitella sp. I|Cerebratulus lacteus|Saccoglossus kowalevskii|Schistosoma japonicum|Schistosoma mansoni|Schmidtea mediterranea|Strongylocentrotus purpuratus|Haliotis rufescens|Lottia gigantea|-PLANTS------------------|Arabidopsis thaliana|Zea mays|Oryza sativa|Sorghum bicolor|-VIRUSES------------------|Rhesus lymphocryptovirus|Epstein Barr virus|Human cytomegalovirus|Kaposi sarcoma-associated herpesvirus|Mouse gammaherpesvirus|BK polyomavirus|Herpes Simplex Virus 1|Herpes Simplex Virus 2|Human immunodeficiency virus 1|JC polyomavirus|Mareks disease virus|Mareks disease virus type 2|Merkel cell polyomavirus|Mouse cytomegalovirus|Mouse gammaherpesvirus 68|Rhesus monkey rhadinovirus|Simian virus 40/Human immunodeficiency virus 1|-VIRIDIPLANTAE------------------|Triticum aestivum|Selaginella moellendorffii|Populus trichocarpa|Pinus taeda|Physcomitrella patens|Arabidopsis thaliana|Glycine max|Medicago truncatula|Oryza sativa|Populus trichocarpa|Saccharum officinarum|Sorghum bicolor|Zea mays|Brassica napus|Brassica oleracea|Carica papaya|Lotus japonicus|Vigna unguiculata|Gossypium herbecium|Gossypium hirsutum|Gossypium rammindii|Solanum lycopersicum|Brassica rapa|Vitis vinifera|-ARTHROPODS------------------|Drosophila melanogaster|Drosophila pseudoobscura|Apis mellifera|Anopheles gambiae|Ixodes scapularis/Ixodes scapularise|Bombyx mori|Drosophila ananassae|Drosophila erecta|Drosophila grimshawi|Drosophila mojavensis|Drosophila persimilis|Drosophila sechellia|Drosophila simulans|Drosophila virilis|Drosophila willistoni|Drosophila yakuba|Locusta migratoria|Tribolium castaneum|-VERTEBRATES------------------|Bos taurus|Xenopus tropicalis|Monodelphis domestica|Lemur catta|Lagothrix lagotricha|Gorilla gorilla|Ateles geoffroyi|Ovis aries|Homo sapiens|Fugu rubripes|Macaca nemestrina|Macaca mulatta|Mus musculus|Canis familiaris|Rattus norvegicus|Rattus norvegicus|Pan paniscus|Pan troglodytes|Pongo pygmaeus|Saguinus labiatus|Saguinus labiatus|Sus scrofa|Gallus gallus|Danio rerio|Xenopus laevis|Tetraodon nigroviridis|Pygathrix bieti|Symphalangus syndactylus|Ornithorhynchus anatinus|Cricetulus griseus|-HORDEATES------------------|Branchiostoma floridae|Ciona intestinalis|Ciona savignyi|Oikopleura dioica|-PROTISTAE-------------------|Chlamydomonas reinhardtii|Dictyostelium discoideum|-OTHER-------------------|Amphimedon queenslandica|Hydra magnipapillata|Nematostella vectensis]
  user_small=                    (textarea)
  temperature=37                 (text)
  mfe=-20                        (text)
  Submit=          Search           (submit)
  Reset=<UNDEF>                  (reset)

POST http://www.aardvarkmailinglist.net/sub/account_manager.php?action=add
  cid=20804                      (hidden readonly)
  cqid=LSI                       (hidden readonly)
  lid=12305                      (hidden readonly)
  sub_email=                     (text)
  Submit=Subscribe               (submit)

这是我目前所拥有的。

use strict;
use warnings;

use WWW::Mechanize;

# create object for browser
my $browser = WWW::Mechanize->new();
my ($sequence, $results);
open (DRG, "<microRNA_target_cspg_drg_output.fa") || die "cannot open microRNA_target_cspg_drg_output.fa";

while (<DRG>) {
        chomp;
        $sequence=$_;
        last; #for testing purposes
}
close (DRG);

$browser->get("http://bioinfo.uni-plovdiv.bg/microinspector/");
$browser->form_number(1);
$browser->field("target_sequence", $sequence);
$browser->field("Choose an organism : ", "Mus musculus");
my $response = $browser->click_button( number => 1);
print $response->content();

我不确定下一步该做什么;我觉得我没有正确设置有机体(它是一个下拉菜单,所以我需要选择),但我认为我没有在代码中正确编写它。

$browser->field("Choose an organism : ", "Mus musculus");

此外,一旦单击表单,它就会转到一个新页面(url 是 POST 吗?)。任何帮助表示赞赏。谢谢你。当我运行上面的代码时,我得到了这个

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<title>A New MiRNA Program</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
Status: 500
Content-type: text/html

<h1>Software error:</h1>
<pre>Illegal division by zero at /usr/local/lib/perl5/site_perl/5.8.9/Bio/Graphics/Panel.pm line 237.
</pre>
<p>
For help, please send mail to the webmaster (<a href="mailto:vebaev@uni-plovdiv.bg">vebaev@uni-plovdiv.bg</a>), giving this error message 
and the time and date of the error.

</p>

正在输入的序列是任何想要尝试的人都可以使用的

AAACACACTGGGGAATGGAGCAAGACAGTCTTTGAATATCAAACACGCAAGGCAATGAGACTACCCATCATAGATATCGCACCCTATGACATTGGGGGTCCTGATCAAGAATTTGGTGTGGACATTGGCCCTGTTTGCTTTTTATAAGCCAAACTCTCTGAAACCCCAGCAAAACAAAAACCACATCCATGTGTTCATCTTGTTTTAATCTTATCAACCAGTGCAAGTGACCAACTAAATTCCAGTTATTTATTTCCAAACTTTTGGAAAAAGCATAATTTGACAAAAAAAGAATACAATTTTTTGCTGTTTCAACCACCCAATACAGGTCAAATGCTTTTGTTTTATTTTTTTACCAATTCCAACTTCAAAATGTCTCAATGGTGCTATAATAAATAAACGTCAACACTTTTATGATAA P>

【问题讨论】:

    标签: perl mechanize bioinformatics www-mechanize


    【解决方案1】:

    稍微修改一下moshen的代码:

    use strict;
    use warnings;
    
    use WWW::Mechanize;
    
    # create object for browser
    my $browser = WWW::Mechanize->new();
    
    my $sequence = <<END;
    AAACACACTGGGGAATGGAGCAAGACAGTCTTTGAATATCAAACACGCAAGGCAATGAGACTACCCATCATAGATATCGCACCCTATGACATTGGGGGTCCTGATCAAGAATTTGGTGTGGACATTGGCCCTGTTTGCTTTTTATAAGCCAAACTCTCTGAAACCCCAGCAAAACAAAAACCACATCCATGTGTTCATCTTGTTTTAATCTTATCAACCAGTGCAAGTGACCAACTAAATTCCAGTTATTTATTTCCAAACTTTTGGAAAAAGCATAATTTGACAAAAAAAGAATACAATTTTTTGCTGTTTCAACCACCCAATACAGGTCAAATGCTTTTGTTTTATTTTTTTACCAATTCCAACTTCAAAATGTCTCAATGGTGCTATAATAAATAAACGTCAACACTTTTATGATAA
    END
    
    $browser->get("http://bioinfo.uni-plovdiv.bg/microinspector/");
    $browser->submit_form(
        form_name => "forma",
        fields => {
            'target_sequence' => $sequence,
            'Choose an organism : ' => "Mus musculus",
        },
    );
    
    my @links = $browser->find_all_links( url_regex => qr/csv$/ );
    
    foreach my $link ( @links ){
    
        my $result = $browser->get( $link->url() );
        my $filename = ( $link->url() =~ /\/([^\/]+)$/ )[0];
    
        print "Saving $filename\n";
        $browser->save_content($filename);
    } 
    

    【讨论】:

      【解决方案2】:
      $browser->field("Choose an organism : ", "Mus musculus");
      

      为清楚起见,可以是:

      $browser->select("Choose an organism : ", "Mus musculus");
      

      您应该使用submit 方法。

      $browser->submit();
      

      这个:

      use strict;
      use warnings;
      
      use WWW::Mechanize;
      
      # create object for browser
      my $browser = WWW::Mechanize->new();
      my ($sequence, $results);
      
      $sequence = <<END;
      AAACACACTGGGGAATGGAGCAAGACAGTCTTTGAATATCAAACACGCAAGGCAATGAGACTACCCATCATAGATATCGCACCCTATGACATTGGGGGTCCTGATCAAGAATTTGGTGTGGACATTGGCCCTGTTTGCTTTTTATAAGCCAAACTCTCTGAAACCCCAGCAAAACAAAAACCACATCCATGTGTTCATCTTGTTTTAATCTTATCAACCAGTGCAAGTGACCAACTAAATTCCAGTTATTTATTTCCAAACTTTTGGAAAAAGCATAATTTGACAAAAAAAGAATACAATTTTTTGCTGTTTCAACCACCCAATACAGGTCAAATGCTTTTGTTTTATTTTTTTACCAATTCCAACTTCAAAATGTCTCAATGGTGCTATAATAAATAAACGTCAACACTTTTATGATAA
      END
      
      $browser->get("http://bioinfo.uni-plovdiv.bg/microinspector/");
      $browser->form_number(1);
      $browser->field("target_sequence", $sequence);
      $browser->select("Choose an organism : ", "Mus musculus");
      #my $response = $browser->click_button( number => 1);
      my $response = $browser->submit();
      print $response->content();
      

      返回:

      <!DOCTYPE html
          PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
      <head>
      <title>A New MiRNA Program</title>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
      </head>
      <body>
      <IMG SRC='Bio::Graphics::Panel=HASH(0x1ed39c8)->png'><H1 align=center>RESULTS</H1><TABLE align=center border CELLPADING=10 CELLSPASING=0><THEAD bgcolor=#C0C0C0 NOWRAP align=center><TR> <TD>POSITION</TD><TD>SEQUENCE OF TARGET</TD><TD>NAME 
      OF MIRNA</TD><TD>SEQUENCE OF MIRNA</TD><TD>FREE ENERGY</TD><TD>LINK (SEC.STRUCTURE .ps)</TD>
      <TBODY><tr align=center 
      nowrap><td>54</td><td>ATGAGACTACCCATCATAGATATCGCACCCTA</td><td>mmu-miR-342-5p</td><td>aggggugcuaucugugauugag</td><td>-27.8</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/54seqmmu-miR-342-5p.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>22</td><td>AGACAGTCTTTGAATATCAAACACGCAAGGCA</td><td>mmu-miR-669e</td><td>ugucuugugugugcauguucau</td><td>-27.1</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/22seqmmu-miR-669e.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>97</td><td>GTCCTGATCAAGAATTTGGTGTGGACATTGGC</td><td>mmu-miR-199a-5p</td><td>cccaguguucagacuaccuguuc</td><td>-25.2</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/97seqmmu-miR-199a-5p.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>93</td><td>GGGGGTCCTGATCAAGAATTTGGTGTGGACAT</td><td>mmu-miR-124-star</td><td>cguguucacagcggaccuugau</td><td>-25.2</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/93seqmmu-miR-124-star.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>202</td><td>TTTTAATCTTATCAACCAGTGCAAGTGACCAA</td><td>mmu-miR-150-star</td><td>cugguacaggccugggggauag</td><td>-24.2</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/202seqmmu-miR-150-star.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>128</td><td>CCCTGTTTGCTTTTTATAAGCCAAACTCTCTG</td><td>mmu-miR-1966</td><td>aagggagcuggcucaggagagaguc</td><td>-23.1</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/128seqmmu-miR-1966.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>99</td><td>CCTGATCAAGAATTTGGTGTGGACATTGGCCC</td><td>mmu-miR-1898</td><td>aggucaagguucacaggggauc</td><td>-22.9</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/99seqmmu-miR-1898.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>97</td><td>GTCCTGATCAAGAATTTGGTGTGGACATTGGC</td><td>mmu-miR-199b-star</td><td>cccaguguuuagacuaccuguuc</td><td>-22.8</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/97seqmmu-miR-199b-star.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>30</td><td>TTTGAATATCAAACACGCAAGGCAATGAGACT</td><td>mmu-miR-200c-star</td><td>cgucuuacccagcaguguuugg</td><td>-22.2</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/30seqmmu-miR-200c-star.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>6</td><td>ACTGGGGAATGGAGCAAGACAGTCTTTGAATA</td><td>mmu-miR-743b-5p</td><td>uguucagacugguguccauca</td><td>-21.4</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/6seqmmu-miR-743b-5p.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>68</td><td>CATAGATATCGCACCCTATGACATTGGGGGTC</td><td>mmu-miR-188-5p</td><td>caucccuugcaugguggaggg</td><td>-21.3</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/68seqmmu-miR-188-5p.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>3</td><td>CACACTGGGGAATGGAGCAAGACAGTCTTTGA</td><td>mmu-miR-1981</td><td>guaaaggcugggcuuagacguggc</td><td>-21.1</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/3seqmmu-miR-1981.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>56</td><td>GAGACTACCCATCATAGATATCGCACCCTATG</td><td>mmu-miR-1894-3p</td><td>gcaagggagagggugaagggag</td><td>-20.8</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/56seqmmu-miR-1894-3p.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>35</td><td>ATATCAAACACGCAAGGCAATGAGACTACCCA</td><td>mmu-miR-193-star</td><td>ugggucuuugcgggcaagauga</td><td>-20.6</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/35seqmmu-miR-193-star.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>156</td><td>TCTGAAACCCCAGCAAAACAAAAACCACATCC</td><td>mmu-miR-1188</td><td>uggugugagguugggccagga</td><td>-20.52</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/156seqmmu-miR-1188.ps'>image</A></td></tr>
      <tr align=center 
      nowrap><td>356</td><td>CAATTCCAACTTCAAAATGTCTCAATGGTGCT</td><td>mmu-miR-680</td><td>gggcaucugcugacauggggg</td><td>-20.3</td><td><A 
      HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/356seqmmu-miR-680.ps'>image</A></td></tr>
      </TBODY></TABLE></html>
      <BR>
      <table align=center>
              <tr><td align=center><A align=center HREF='http://bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/20110311051243/seq20110311051243.csv'>Results in .CSV format
      (Right click and 'Save as')</A></td></tr>
              <tr><td><br></td></tr>
              <tr><td><IMG SRC='/microinspector/cgi/postscript/20110311051243/image.png'></td></tr><table></table><BR></FORM>
      </body>
      

      编辑:

      将 csv 文件保存到磁盘的修订脚本:

      use strict;
      use warnings;
      
      use WWW::Mechanize;
      
      # create object for browser
      my $browser = WWW::Mechanize->new();
      
      my $sequence = <<END;
      AAACACACTGGGGAATGGAGCAAGACAGTCTTTGAATATCAAACACGCAAGGCAATGAGACTACCCATCATAGATATCGCACCCTATGACATTGGGGGTCCTGATCAAGAATTTGGTGTGGACATTGGCCCTGTTTGCTTTTTATAAGCCAAACTCTCTGAAACCCCAGCAAAACAAAAACCACATCCATGTGTTCATCTTGTTTTAATCTTATCAACCAGTGCAAGTGACCAACTAAATTCCAGTTATTTATTTCCAAACTTTTGGAAAAAGCATAATTTGACAAAAAAAGAATACAATTTTTTGCTGTTTCAACCACCCAATACAGGTCAAATGCTTTTGTTTTATTTTTTTACCAATTCCAACTTCAAAATGTCTCAATGGTGCTATAATAAATAAACGTCAACACTTTTATGATAA
      END
      
      $browser->get("http://bioinfo.uni-plovdiv.bg/microinspector/");
      $browser->form_number(1);
      $browser->field("target_sequence", $sequence);
      $browser->select("Choose an organism : ", "Mus musculus");
      
      
      $browser->submit();
      my @links = $browser->links();
      
      foreach my $link ( @links ){
        if( $link->url() =~ /csv$/i ){
          my $result = $browser->get( $link->url() );
          my $filename = ( $link->url() =~ /\/([^\/]+)$/ )[0];
      
          print "Saving $filename\n";
      
          open( OUT, ">$filename" );
          print OUT $result->content();
          close( OUT );
        }
      }
      

      【讨论】:

      • ->field 应该根据以下文档工作:search.cpan.org/~petdance/WWW-Mechanize-1.66/lib/WWW/… $mech->field:“给定一个字段的名称,将其值设置为指定的值。”似乎提问者根据可用的(不正确的)说明编写了完美的程序。
      • @moshen 非常感谢,我实际上意识到我正在读取的文件的第一行格式错误,我需要文件中的第二行。再次感谢指点。如果我想下载 outpuage 网页 bioinfo.uni-plovdiv.bg/microinspector/cgi/postscript/… 中的链接,我正在考虑使用 mech->find_link 选项。如何引导链接保存?
      • 另外,如果我想对多个序列执行此操作,什么是好主意?我想我对 form_number 的含义不太了解。我觉得这个页面上只有一个表单,form_number(2) 指的是什么?如果我想从文件中提取序列并提交它们,我应该每次都重新加载页面吗?再次感谢。
      • form_number 只是选择要使用机械化填写的表格。这只有在目标页面上有多个表单时才有意义。
      • 如果你想做多个序列,就拿我编辑的响应,让它成为一个接受你想要查询的序列的子程序。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多