I am trying to download FASTA sequences from a list of protein GIs (~ 100000). I planned to use EPost using HTTP POST to first upload the list of GIs and then use EFetch to download the FASTA.
I am getting no response from the server (WebEnv and query_key are not generated) when I upload the list of GIs with EPost using HTTP POST.
The code that I am using for EPost is :
#!/usr/bin/perl use LWP::Simple; use LWP::UserAgent; $base = 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/'; $url = $base . "epost.fcgi"; $url_params = "db=protein&id=830003112&id=830003110&id=830003108&id=830003106&id=830003104&id=830003102&id=830003100&id=830003098&id=830003096&id=830003094&id=830003092&id=830003090"; #create HTTP user agent $ua = new LWP::UserAgent; #create HTTP request object $req = new HTTP::Request POST => "$url"; $req->content_type('application/x-www-form-urlencoded'); $req->content("$url_params"); #post the HTTP request $response = $ua->request($req); print $response->content;
This prints nothing after the code is run. Ideally it should print the WebEnv and the query_key. The HTTP status is OK and the code is 200.
If I change the url_params and remove all GIs from it
$url_params = "db=protein";
I get the following output :
<?xml version="1.0"?> <!DOCTYPE ePostResult PUBLIC "-//NLM//DTD ePostResult, 11 May 2002//EN" "http://www.ncbi.nlm.nih.gov/entrez/query/DTD/ePost_020511.dtd"> <ePostResult> <ERROR>Empty ID list; Nothing to store</ERROR> </ePostResult>
I have no idea what the problem is and why the server isnt generating WebEnv and query_key.
If anyone knows the solution please help me out.