Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

WSPerlClient.pl

00001 #!perl 
00002 #---------------------------------------------------
00003 # WSPerlClient.pl
00004 # 
00005 # Project: PDBe API Framework 
00006 # Module:  Perl Client for PDBe API Webservice (SOAP) Server 
00007 # 
00008 # SOAP User Layer
00009 # Last updated: 25 February 2004 10:17
00010 # (C) Siamak Sobhany
00011 #---------------------------------------------------
00012  
00013 
00014 use SOAP::Lite;
00015 use IO::File;
00016  my $service = SOAP::Lite
00017   ->uri('urn:msd_soap_service')
00018   ->proxy('http://amichie:alex220104@www.ebi.ac.uk/msd-srv/msdsoapd');
00019   #->proxy('http://geoff:cc12345678@www.ebi.ac.uk/msd-srv/msdsoapd');
00020  my $sessionid = 'my_session1';
00021  my $connName = 'MyPerlConnection';
00022  my $queryName1 = 'MyPerlQuery1';
00023  my $resName1 = 'MyPerlResult1';
00024  my $queryName2 = 'MyPerlQuery2';
00025  my $resName2 = 'MyPerlResult2';
00026  my $buf=50;
00027  my $ssmQuery = '<SSMInput> <query> <type>PDB entry</type> <pdbcode>9xia</pdbcode>'.
00028 '</query> <target> <type>PDB archive</type>'.
00029 '</target> <selection> <type>Chain(s)</type>'.
00030 '<chains>*(all)</chains> </selection> <percent1>70</percent1>'.
00031 '<percent2>70</percent2> <sepchains>Yes</sepchains>'.
00032 '<connectivity>Yes</connectivity> <bestmatch>Yes</bestmatch>'.
00033 '<uniquematch>Yes</uniquematch> <precision>Normal</precision>'.
00034 '<sorting>RMSD</sorting> </SSMInput>';
00035 
00036 my $sqlSSMQuery = 'select s.target_id from ssm_out_tab s where s.session_id = \''. $sessionid .'\'';
00037 
00038 my $sqlQuery = 'select e.entry_id, e.accession_code from entry e, author a '.
00039  ' where e.res_val <= 2.5 and e.entry_id = a.entry_id '.
00040  'and a.last_name = \'HENRICK\' and e.accession_code in ( '. $sqlSSMQuery . ')';
00041 
00042 
00043 ## select lower(h.accession_code) from hetgroup h where h.chem_comp_code like 'AL%' 
00044 
00045 
00046 my $array = [$ssmQuery , $sessionid];
00047 print "\nCalling method: msdSSM()\n";
00048 my $result1 = $service->msdSSM(SOAP::Data->name('numofpars' => 2),
00049    SOAP::Data->name('in-params' => $array));
00050 unless ($result1->fault) {
00051   print "\nmsdSSM() called successfully.\n";
00052   print $result1->result();
00053 }else{
00054   print join ', ', 
00055   $result1->faultcode,
00056   $result1->faultstring;
00057 }
00058 for ($i=1; $i > 0 ; $i++)
00059   { my $result2 = $service->msdSSMParser(SOAP::Data->name('diyf')->type('xsd:int')->value(1),
00060    SOAP::Data->name('sessionid')->type('xsd:string')->value($sessionid));
00061    unless ($result2->fault || ($result2->faultstring != 'Result fille not ready')) {
00062    $i=-1;
00063    print $result2->result();
00064   }else{
00065    print join ', ', 
00066    "\nXML File not ready...retry: $i ",
00067    $result2->faultcode, 
00068    $result2->faultstring;
00069    }
00070    sleep(5);
00071 }
00072    my $result3 = $service->msdSSMPurge(SOAP::Data->name('sessionid')->type('xsd:string')->value($sessionid));
00073    unless ($result3->fault) {
00074    print "\nmsdSSMPurge() called successfully.\n";
00075    print $result3->result();
00076   }else{
00077    print join ', ',
00078    $result3->faultcode,
00079    $result3->faultstring;
00080  }
00081 print "\nCalling method: msdConnect() 1 \n";
00082 my $result1 = $service->msdConnect(SOAP::Data->name('conn-name')->type('xsd:string')->value($connName));
00083 
00084 unless ($result1->fault) {
00085     print "\nmsdConnect() 1 called successfully.\n";
00086         print $result1->result();
00087 }else{
00088         print join  ', ', 
00089         $result1->faultcode, 
00090     $result1->faultstring;
00091 }
00092 print "\nCalling method: msdResultset() 1\n";
00093 my $result2 = $service->msdResultset(SOAP::Data->name('conn-name')->type('xsd:string')->value($connName),
00094                                                                          SOAP::Data->name('query-name')->type('xsd:string')->value($queryName1),
00095                                                                          SOAP::Data->name('res-name')->type('xsd:string')->value($resName1));
00096 
00097 unless ($result2->fault) {
00098     print "\nmsdResultset() 1 called successfully.\n";
00099         print $result2->result();
00100 }else{
00101         print join  ', ', 
00102         $result2->faultcode, 
00103     $result2->faultstring;
00104 }
00105 
00106 print "\nCalling method: msdQuery() 1\n";
00107 my $result3 = $service->msdQuery(SOAP::Data->name('conn-name' => $connName),
00108                                                      SOAP::Data->name('query-name'=> $queryName1),
00109                                                      SOAP::Data->name('result-name'=> $resName1),
00110                                                      SOAP::Data->name('stm'=> $sqlQuery));
00111 
00112 unless ($result3->fault) {
00113     print "\nmsdQuery() 1 called successfully.\n";
00114         print $result3->result();
00115 }else{
00116         print join  ', ', 
00117         $result3->faultcode, 
00118     $result3->faultstring;
00119 }
00120 
00121 
00122 print "\nCalling method: msdResultset() 2 \n";
00123 my $result4 = $service->msdResultset(SOAP::Data->name('conn-name')->type('xsd:string')->value($connName),
00124                                                                          SOAP::Data->name('query-name')->type('xsd:string')->value($queryName2),
00125                                                                          SOAP::Data->name('res-name')->type('xsd:string')->value($resName2));
00126 
00127 unless ($result4->fault) {
00128     print "\nmsdResultset() 2 called successfully.\n";
00129         print $result4->result();
00130 }else{
00131         print join  ', ', 
00132         $result4->faultcode, 
00133     $result4->faultstring;
00134 }
00135 
00136 print "\nCalling method: msdQuery() 2\n";
00137 my $result5 = $service->msdQuery(SOAP::Data->name('conn-name' => $connName),
00138                                                      SOAP::Data->name('query-name'=> $queryName2),
00139                                                      SOAP::Data->name('result-name'=> $resName2),
00140                                                      SOAP::Data->name('stm'=> $sqlSSMQuery));
00141 
00142 unless ($result5->fault) {
00143     print "\nmsdQuery() 2 called successfully.\n";
00144         print $result5->result();
00145 }else{
00146         print join  ', ', 
00147         $result5->faultcode, 
00148     $result5->faultstring;
00149 }
00150 
00151 
00152 print "\nCalling method: msdExecQuery() 1 \n";
00153 my $result6 = $service->msdExecQuery(SOAP::Data->name('conn-name' => $connName),
00154                                                          SOAP::Data->name('query-name'=> $queryName1),
00155                                                          SOAP::Data->name('result-name'=> $resName1),
00156                                                          SOAP::Data->name('buf'=> $buf));
00157 
00158 
00159 unless ($result6->fault) {
00160     print "\nmsdExecQuery() 1 called successfully.\n";
00161         print $result6->result();
00162 
00163 }else{
00164         print join  ', ', 
00165         $result6->faultcode, 
00166     $result6->faultstring;
00167 }
00168 
00169 print "\nCalling method: msdExecQuery() 2 \n";
00170 my $result7 = $service->msdExecQuery(SOAP::Data->name('conn-name' => $connName),
00171                                                          SOAP::Data->name('query-name'=> $queryName2),
00172                                                          SOAP::Data->name('result-name'=> $resName2),
00173                                                          SOAP::Data->name('buf'=> $buf));
00174 
00175 
00176 unless ($result7->fault) {
00177     print "\nmsdExecQuery() 2 called successfully.\n";
00178         print $result7->result();
00179 
00180 }else{
00181         print join  ', ', 
00182         $result7->faultcode, 
00183     $result7->faultstring;
00184 }
00185 
00186 print "\nCalling method: msdGetResultSet() 1 \n";
00187 my $result8 = $service->msdGetResultSet(SOAP::Data->name('conn-name' => $connName),
00188                                                          SOAP::Data->name('query-name'=> $queryName1),
00189                                                          SOAP::Data->name('result-name'=> $resName1));
00190 $col =1;
00191 unless ($result8->fault) {
00192     print "\nmsdGetResultSet() 1 called successfully.\n";
00193         #print $result5->result();
00194         my $dataSet = $result8->result();
00195         $record_set = $dataSet;
00196         
00197         foreach  my $rec (@$record_set) {
00198      $row=1;
00199          foreach my $val (@$rec) {
00200            print "Column ", $col ," Row: ", $row, " value = " ;
00201                    print $val, "\n"; 
00202       
00203           $row++;
00204      }
00205          $col++;
00206     }
00207 
00208 }else{
00209         print join  ', ', 
00210         $result8->faultcode, 
00211     $result8->faultstring;
00212 }
00213 
00214 print "\nCalling method: msdGetResultSet() 2 \n";
00215 my $result9 = $service->msdGetResultSet(SOAP::Data->name('conn-name' => $connName),
00216                                                          SOAP::Data->name('query-name'=> $queryName2),
00217                                                          SOAP::Data->name('result-name'=> $resName2));
00218 $col =1;
00219 unless ($result9->fault) {
00220     print "\nmsdGetResultSet() 2 called successfully.\n";
00221         #print $result9->result();
00222         my $dataSet = $result9->result();
00223         $record_set = $dataSet;
00224         
00225         foreach  my $rec (@$record_set) {
00226      $row=1;
00227          foreach my $val (@$rec) {
00228            print "Column ", $col ," Row: ", $row, " value = " ;
00229                    print $val, "\n"; 
00230       
00231           $row++;
00232      }
00233          $col++;
00234     }
00235 
00236 }else{
00237         print join  ', ', 
00238         $result9->faultcode, 
00239     $result9->faultstring;
00240 }
00241 
00242 
00243 print "\nCalling method: msdEndQueryPack() 1\n";
00244 my $result10 = $service->msdEndQueryPack(SOAP::Data->name('query-name')->type('xsd:string')->value($queryName1),
00245                                                                  SOAP::Data->name('result-name')->type('xsd:string')->value($resName1));
00246 
00247 unless ($result10->fault) {
00248     print "\nmsdEndQueryPack() 1 called successfully.\n";
00249         print $result10->result();
00250 }else{
00251         print join  ', ', 
00252         $result10->faultcode, 
00253     $result10->faultstring;
00254 }
00255 
00256 print "\nCalling method: msdEndQueryPack() 2\n";
00257 my $result11 = $service->msdEndQueryPack(SOAP::Data->name('query-name')->type('xsd:string')->value($queryName2),
00258                                                                  SOAP::Data->name('result-name')->type('xsd:string')->value($resName2));
00259 
00260 unless ($result11->fault) {
00261     print "\nmsdEndQueryPack() 2 called successfully.\n";
00262         print $result11->result();
00263 }else{
00264         print join  ', ', 
00265         $result11->faultcode, 
00266     $result11->faultstring;
00267 }
00268 
00269 
00270 print "\nCalling method: msdEndConnect() \n";
00271 my $result12 = $service->msdEndConnect(SOAP::Data->name('conn-name')->type('xsd:string')->value($connName));
00272 
00273 unless ($result12->fault) {
00274     print "\nmsdEndConnect()  called successfully.\n";
00275         print $result12->result();
00276 }else{
00277         print join  ', ', 
00278         $result12->faultcode, 
00279     $result12->faultstring;
00280 }
00281 
00282 print "\nCalling method: msdEndSession() \n";
00283 my $result13 = $service->msdEndSession(SOAP::Data->name('sessionid')->type('xsd:string')->value($sessionid));
00284 
00285 unless ($result13->fault) {
00286     print "\nmsdEndSession()  called successfully.\n";
00287         print $result13->result();
00288 }else{
00289         print join  ', ', 
00290         $result13->faultcode, 
00291     $result13->faultstring;
00292 }
00293 
00294 ############## Google api calls
00295 
00296 my $key='fGeTRvdQFHLfeNjYlcoRt13M6mKs4SgT';
00297 my $query="KIM HENRICK and 9xia";
00298 my $googleSearch = SOAP::Lite -> service("http://api.google.com/GoogleSearch.wsdl"); #"file:googleapi/GoogleSearch.wsdl"
00299 my $result14 = $googleSearch -> doGoogleSearch($key, $query, 0, 10, "false", "", "false", "", "latin1", "latin1");
00300 
00301 print"Google API search:\n";
00302 print "\nAbout ", $result14->{'estimatedTotalResultsCount'}, " results.\n";
00303 print "\n";
00304 my $resEls = $result14->{'resultElements'};
00305 foreach  my $resEl (@$resEls) {
00306                    print "\nTitle:\n",$resEl->{'title'}, "\n";
00307                    print "URL:\n",$resEl->{'URL'}," \n";
00308 }
00309 my $result15 = $googleSearch -> doSpellingSuggestion($key, $query);
00310 print "\nDid you mean: \'", $result15 , "\'?\n";
00311 

Generated on Fri Apr 16 13:47:46 2004 for MSDAPI by doxygen 1.3.4-20031005