#!/usr/bin/perl # uniprotfetch.pl $url='http://www.pir.uniprot.org/cgi-bin/batch'; $matchu='http://www.pir.uniprot.org/cgi-bin/match_report_u.pl?rpt='; $fin="uniq$$.tmp"; $haslynx=`which lynx`; $lynx= ($haslynx =~ m/not/) ? "cat - " : "lynx -stdin -dump"; my $list=shift @ARGV; open(IN,$list) or die "$list"; open(TMP,">$fin"); print TMP "query="; while(){ chomp; print TMP $_."+"; } print TMP "\n"; close(TMP); close(IN); open(IN,"curl -s -d 'search=Submit&s_field=ALLIDS' -d \@$fin $url |"); while(){ $session_num=$1 if(/session_num value="(\d+)"/); } close(IN); unlink($fin); if($session_num) { system "echo session_num $session_num > $list.match"; system "curl -s '$matchu$session_num' | $lynx >> $list.match"; system "curl -s -d 'saveTbl=TABLE&session_num=$session_num' $url > $list.table"; system "curl -s -d 'saveFlat=FLATFILE&session_num=$session_num' $url > $list.flat"; }