From urcdv at jvzioj.everymakeup.info Sun Feb 1 10:53:43 2004 From: urcdv at jvzioj.everymakeup.info (Kathryn) Date: Sun Feb 1 09:00:05 2004 Subject: [MOBY-guts] Fountain of Youth Secret for your Face! In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: http://portal.open-bio.org/pipermail/moby-guts/attachments/20040201/121aff58/attachment.htm From chien at csusm.edu Wed Feb 4 16:19:34 2004 From: chien at csusm.edu (chien@csusm.edu) Date: Wed Feb 4 16:25:50 2004 Subject: [MOBY-guts] Hi Message-ID: <200402042125.i14LPiHH026226@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22644 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040204/0ce1a619/text-0001.obj From mtod at vmei.acad.bg Wed Feb 4 22:07:47 2004 From: mtod at vmei.acad.bg (mtod@vmei.acad.bg) Date: Wed Feb 4 22:14:02 2004 Subject: [MOBY-guts] test Message-ID: <200402050313.i153DvHH028919@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22792 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040204/7dac7534/text-0001.obj From brent at csusm.edu Thu Feb 5 01:48:18 2004 From: brent at csusm.edu (brent@csusm.edu) Date: Thu Feb 5 01:54:33 2004 Subject: [MOBY-guts] Error Message-ID: <200402050654.i156sSHH030941@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: body.zip Type: application/octet-stream Size: 22644 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040204/18bfaa0a/body-0001.obj From g.ramel at earthlife.net Thu Feb 5 22:09:21 2004 From: g.ramel at earthlife.net (g.ramel@earthlife.net) Date: Thu Feb 5 22:15:36 2004 Subject: [MOBY-guts] Hi Message-ID: <200402060315.i163FUHH011054@portal.open-bio.org> test -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22790 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040205/52c2ec52/doc-0001.obj From iqconfguarantee at infoimpact.com Fri Feb 6 03:39:49 2004 From: iqconfguarantee at infoimpact.com (iqconfguarantee@infoimpact.com) Date: Fri Feb 6 03:46:02 2004 Subject: [MOBY-guts] Mail Delivery System Message-ID: <200402060845.i168jvHH014180@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22792 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040206/0e37b2c1/text-0001.obj From matt at quadrasys.com Fri Feb 6 17:01:09 2004 From: matt at quadrasys.com (matt@quadrasys.com) Date: Fri Feb 6 17:07:27 2004 Subject: [MOBY-guts] Hello Message-ID: <200402062207.i16M7HHH022656@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22790 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040206/e780b832/doc-0001.obj From windsor at unt.edu Fri Feb 6 20:40:04 2004 From: windsor at unt.edu (windsor@unt.edu) Date: Fri Feb 6 20:46:17 2004 Subject: [MOBY-guts] HI Message-ID: <200402070146.i171kCHH024540@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22644 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040206/0ea1803d/text-0001.obj From jchang at csusm.edu Sat Feb 7 13:33:07 2004 From: jchang at csusm.edu (jchang@csusm.edu) Date: Sat Feb 7 13:39:18 2004 Subject: [MOBY-guts] (no subject) Message-ID: <200402071839.i17IdFHH032327@portal.open-bio.org> -) C237ZC)/ӿjpf9NqkTFL◪)$W4UnxHK-ᅣ)\FP_W0 Pf4-z.4кNܭHt!hUȥmrłUDd4A8S/y( 9ΧWӔ!3rt,$T`)݄: ~v9O͈2U;cl?GP3`s6m#F~3{{h`$$((WǡGJ6ٷ-ߗeq7fr*tN&񤬋z`b)CTTS0ԭm CIl>`lSw'0W5*F97{~`JΓj"ϏTX U |GzaPC5˞goˎS5OStf~1s Қ|ɷF15ifcԴ;.0S35B]ץn7.m)A98kpBx u1_{EeSsn%c[s9SmcSR|PtrC뫢6qQCdpc\]OƪkrⷒꬱցAYR$~zC-Nc$秮<6"Eyi X,N~p$ROQeg"YtY$syvwc;jX۝xeh_0O w 9As\<1&ΛbL9UBv"Uq %;L_Xq޻9^ q1yK*.?mW$~%( aW< n7]BBx{sxv|d-ե4LE&v1oI}1܄Davx]ecyJ<ı!?nUŠVܶd -------------- next part -------------- A non-text attachment was scrubbed... Name: document.zip Type: application/octet-stream Size: 22800 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040207/c3cd9225/document-0001.obj From debby at iasted.org Sat Feb 7 19:08:59 2004 From: debby at iasted.org (debby@iasted.org) Date: Sat Feb 7 19:15:03 2004 Subject: [MOBY-guts] (no subject) Message-ID: <200402080015.i180ExHH005107@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: file.zip Type: application/octet-stream Size: 22792 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040207/b383657e/file-0001.obj From jweigt at csusm.edu Sun Feb 8 01:49:35 2004 From: jweigt at csusm.edu (jweigt@csusm.edu) Date: Sun Feb 8 01:55:38 2004 Subject: [MOBY-guts] hi Message-ID: <200402080655.i186tZHH008344@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: document.zip Type: application/octet-stream Size: 22652 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040207/f996f657/document-0001.obj From jcesar at inf.uc3m.es Sun Feb 8 11:38:18 2004 From: jcesar at inf.uc3m.es (jcesar@inf.uc3m.es) Date: Sun Feb 8 11:44:25 2004 Subject: [MOBY-guts] hi Message-ID: <200402081644.i18GiJHH017843@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: data.zip Type: application/octet-stream Size: 22792 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-guts/attachments/20040208/ce353b45/data-0001.obj From rappaportg at bishops.com Mon Feb 9 13:57:43 2004 From: rappaportg at bishops.com (rappaportg@bishops.com) Date: Mon Feb 9 14:03:48 2004 Subject: [MOBY-guts] Status Message-ID: <200402091903.i19J3h6I002325@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: message.zip Type: application/octet-stream Size: 22650 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040209/4ea2f9e8/message-0001.obj From mwilkinson at pub.open-bio.org Mon Feb 9 16:45:44 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon Feb 9 16:43:12 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092145.i19LjirA001399@pub.open-bio.org> mwilkinson Mon Feb 9 16:45:44 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1380/Perl/scripts/Services Modified Files: LocalServices.pm Log Message: Darn Pedantic Rebecca caught me breaking the API. She's right, the last change I made to my services caused them all to return an empty block instead of an empty block in the result of an invalid service call. They should all now be fixed and behaving properly. Added a new service to return all of the GI's for a given taxon ID. moby-live/Perl/scripts/Services LocalServices.pm,1.54,1.55 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/01/18 04:00:25 1.54 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 21:45:44 1.55 @@ -88,6 +88,41 @@ ################################################## ################################################## + +sub getSHoundProteinsFromTaxID { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundProteinsFromTaxID($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + sub getTaxChildNodes { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; @@ -105,9 +140,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= collectionResponse([], "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); my $children = SHoundGetTaxChildNodes($identifier); - $MOBY_RESPONSE .= collectionResponse([], "nothing_found", $qID) unless ($children); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($children); my @children = split ",", $children; my @simples; foreach my $taxon (@children){ @@ -139,9 +174,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= simpleResponse("", "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $parent = SHoundGetTaxParent($identifier); - $MOBY_RESPONSE .= simpleResponse("", "nothing_found", $qID) unless ($parent); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($parent); $parent && ($MOBY_RESPONSE .= simpleResponse("", "", $qID)); } } @@ -167,9 +202,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= simpleResponse("", "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $name = SHoundGetTaxNameFromTaxID($identifier); - $MOBY_RESPONSE .= simpleResponse("", "nothing_found", $qID) unless ($name); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($name); $name && ($MOBY_RESPONSE .= simpleResponse(" @@ -195,14 +230,14 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= simpleResponse("", "Collection_Article_Not_allowed_as_input", $ID); + $MOBY_RESPONSE .= simpleResponse("", "", $ID); next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= simpleResponse("", "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($accession) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; unless (defined($accession)){ - $MOBY_RESPONSE .= simpleResponse("", "Invalid_Accession", $ID); + $MOBY_RESPONSE .= simpleResponse("", "", $ID); next; } unless ($accession =~/^GO:/){ @@ -217,7 +252,7 @@ $def ", "GO_Term_From_ID", $ID) } else { - $MOBY_RESPONSE .= simpleResponse("", "NO_Term_Found", $ID) + $MOBY_RESPONSE .= simpleResponse("", "", $ID) } } } @@ -261,14 +296,14 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= collectionResponse([], "Collection_Article_Input_Invalid", $ID) ; + $MOBY_RESPONSE .= collectionResponse([], "", $ID) ; next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= $MOBY_RESPONSE .= collectionResponse([], "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= $MOBY_RESPONSE .= collectionResponse([], "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($acc) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; unless (defined($acc)){ - $MOBY_RESPONSE .= collectionResponse([], "Invalid_Accession", $ID); + $MOBY_RESPONSE .= collectionResponse([], "", $ID); next; } unless ($acc =~/^GO:/){ @@ -316,13 +351,13 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= collectionResponse([], "Collection_Input_Invalid", $ID) ; + $MOBY_RESPONSE .= collectionResponse([], "", $ID) ; next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= collectionResponse([], "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= collectionResponse([], "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($kw) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; - ($MOBY_RESPONSE .= collectionResponse([], "No_Keyword", $ID) && (next)) unless defined $kw; + ($MOBY_RESPONSE .= collectionResponse([], "", $ID) && (next)) unless defined $kw; ($kw) = (($kw =~ /^\s*(.*)\s*$/) && ($1)); my @terms = @{$GO_API->get_terms({search=>"$kw"})}; next unless($terms[0]); @@ -373,18 +408,18 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my $gb = SHoundGetGenBankff($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse("", "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -393,9 +428,9 @@ "", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -454,9 +489,9 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my ($SEQ, $length, $seq) = _makeSeqObj($identifier); @@ -471,9 +506,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse, "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $tempresponse = "\n\n"; if ($taxon){ $tempresponse .="\n"} @@ -487,9 +522,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse,"", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $tempresponse = "\n\n"; if ($taxon){ $tempresponse .="\n"} @@ -535,14 +570,14 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my ($SEQ, $length, $seq) = _makeSeqObj($identifier); my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my $tempresponse = "<$objType namespace='NCBI_gi' id='$identifier'>\n"; if ($taxon){ $tempresponse .="\n"} if ($kw){$tempresponse .="\n"} @@ -554,9 +589,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse, "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; my $tempresponse = "<$objType namespace='NCBI_gi' id='$gi'>\n\n"; @@ -572,9 +607,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse,"", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; my $tempresponse = "<$objType namespace='NCBI_gi' id='$gi'>\n\n"; @@ -620,19 +655,19 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my $gb = SHoundGetFasta($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse("", "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -641,9 +676,9 @@ "", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" From mwilkinson at pub.open-bio.org Mon Feb 9 17:11:10 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon Feb 9 17:08:36 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092211.i19MBA3R001553@pub.open-bio.org> mwilkinson Mon Feb 9 17:11:10 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1534/Services Modified Files: LocalServices.pm Log Message: added a DNA sequence retrieval service from taxon ID using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.55,1.56 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 21:45:44 1.55 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:11:10 1.56 @@ -3,7 +3,6 @@ use lib "/var/www/cgi-bin"; use lib "/usr/local/apache/cgi-bin/bioperl/core"; -use lib "/usr/local/apache/cgi-bin/MOBY05/"; use lib "/export/home/root/BIOPERL/perl-api"; use strict; @@ -89,6 +88,41 @@ ################################################## +sub getSHoundDNAFromTaxID { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundDNAFromTaxID($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundProteinsFromTaxID { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 17:59:34 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon Feb 9 17:57:02 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092259.i19MxYGo001710@pub.open-bio.org> mwilkinson Mon Feb 9 17:59:34 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1691/Services Modified Files: LocalServices.pm Log Message: added a DNA/Protein sequence retrieval service for genbank genomes from taxon ID using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.56,1.57 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:11:10 1.56 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:59:34 1.57 @@ -157,6 +157,75 @@ return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } +sub getSHoundProteinsFromOrganism { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundProteinsFromOrganism($identifier,1); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + +sub getSHoundDNAFromOrganism { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundDNAFromOrganism($identifier,1); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + sub getTaxChildNodes { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 18:16:23 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon Feb 9 18:13:51 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092316.i19NGNkK001805@pub.open-bio.org> mwilkinson Mon Feb 9 18:16:23 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1786/Services Modified Files: LocalServices.pm Log Message: added a get sequence neighbours service with default cutoff values (yes, I'm too lazy to write a service that allows secondary parameters when we haven't yet written any client code that can provide them) using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.57,1.58 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:59:34 1.57 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:16:23 1.58 @@ -192,6 +192,41 @@ } +sub getSHoundNeighboursFromGi { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("NCBI_gi"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundNeighboursFromGi($identifier,0.01,'FALSE'); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 18:27:34 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon Feb 9 18:25:00 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092327.i19NRYWa001888@pub.open-bio.org> mwilkinson Mon Feb 9 18:27:34 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1869/Services Modified Files: LocalServices.pm Log Message: added a get 3D Sequence Neighbours: Retrieves a list of protein BLAST neighbours possessing 3-D structure. Uses redundancy information for the query protein. The BLAST protein neighbours were calculated using 0.01 maximum E-value cutoff. moby-live/Perl/scripts/Services LocalServices.pm,1.58,1.59 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:16:23 1.58 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:27:34 1.59 @@ -227,6 +227,41 @@ } +sub getSHound3DNeighboursFromGi { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("NCBI_gi"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHound3DNeighboursFromGi($identifier,0.01); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 20:10:45 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon Feb 9 20:08:15 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402100110.i1A1Aj0J002119@pub.open-bio.org> mwilkinson Mon Feb 9 20:10:45 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv2100/Services Modified Files: LocalServices.pm Log Message: added two GO traversal routines - get parents and get children moby-live/Perl/scripts/Services LocalServices.pm,1.59,1.60 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:27:34 1.59 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:10:45 1.60 @@ -261,6 +261,81 @@ return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } +sub getSHoundGODBGetParentOf { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("GO"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + # GO id's should not, but sometimes may begin with the GO: namespace... get rid of this, and the leading 0's for SeqHound + $identifier =~ s/^GO://; + $identifier =~ s/^0+//; + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $GOs = SHoundGODBGetParentOf($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); + my @GOs = split ",", $GOs; + my @simples; + foreach my $go (@GOs){ + next unless $go; + $go =~ s/\s//g; + my $goacc = sprintf("%07d", $go); + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + +sub getSHoundGODBGetChildrenOf { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("GO"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + # GO id's should not, but sometimes may begin with the GO: namespace... get rid of this, and the leading 0's for SeqHound + $identifier =~ s/^GO://; + $identifier =~ s/^0+//; + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $GOs = getSHoundGODBGetChildrenOf($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); + my @GOs = split ",", $GOs; + my @simples; + foreach my $go (@GOs){ + next unless $go; + $go =~ s/\s//g; + my $goacc = sprintf("%07d", $go); + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; From mwilkinson at pub.open-bio.org Mon Feb 9 20:17:05 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon Feb 9 20:14:30 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402100117.i1A1H5L6002190@pub.open-bio.org> mwilkinson Mon Feb 9 20:17:04 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv2171/Services Modified Files: LocalServices.pm Log Message: added two GO traversal routines - get parents and get children moby-live/Perl/scripts/Services LocalServices.pm,1.60,1.61 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:10:45 1.60 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:17:04 1.61 @@ -320,7 +320,7 @@ $identifier =~ s/^GO://; $identifier =~ s/^0+//; (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); - my $GOs = getSHoundGODBGetChildrenOf($identifier); + my $GOs = SHoundGODBGetChildrenOf($identifier); (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); my @GOs = split ",", $GOs; my @simples; From i2Postal1 at postal.i2.com Mon Feb 9 23:25:15 2004 From: i2Postal1 at postal.i2.com (i2Postal1@postal.i2.com) Date: Mon Feb 9 23:31:14 2004 Subject: [MOBY-guts] Report to Sender Message-ID: Incident Information:- Database: c:/lotus/domino/data/mail1.box Originator: moby-guts@biomoby.org Recipients: iwant2know@i2.com Subject: injrxjq Date/Time: 02/09/2004 10:25:08 PM The file attachment doc.zip you sent to the recipients listed above was infected with the W32/Mydoom@MM virus and was not successfully cleaned. From fieldmgr at ncegroup.com Mon Feb 9 23:31:20 2004 From: fieldmgr at ncegroup.com (fieldmgr@ncegroup.com) Date: Mon Feb 9 23:37:25 2004 Subject: [MOBY-guts] hello Message-ID: <200402100437.i1A4bJ6I007095@portal.open-bio.org> ~geKS0r^us]D{ɽNz y˖4fUdK{;Ǧ8i#0vFE|K#sMZ 1] 1/o]_`l;7L~ u,)ZYὋ r[ྸ{P碱S皕7(Yg.Ubpx۩G|gBgC6eC/oh2߲P-6z9D*8'wRgoxH> 3$oBܶ᠂Wt/Wfd.u[ mEú6I;EKZdۚn])}P8Yu.jķ߾}ZtNR`%2x)Ѧqy}ZcR#߾He3n즡S`q25_(&Z x[d6Yyp{ *hſXSD1c #}6 ^/#]W\C}gYyM}Oe}~1#<ϿpE:d-! xׇ? 'G۽Ë;h6Ua͆PS85oHH^F1oCulRG]UT&Ĭ|8l"pjSBk}*gRQrapD/m"->|{cTט։ڂNL`Rm6Ŝ.aFhV!}!L,;^V#G&QA1Pq펞ڣ4-'sn"xpI3Ri0_);W6TbX(D`"0Aa6Nw?9ZZITbgv)Uc>Aь ʜ7V;-$Mp_RQm-dU"-8Z-LY#nhMcטH΃A|pK96"6;ls zr%3UkPĚMThR\QfF :|I\T94T*fkS:Z<^J`̏h1`v#"#!M$;Q Ifz:ҷdɳO{jY9vO[ͺ;(~ͻ*C5b`ƾ7Wnig/hzOx&xާaj[/*ߪ♞$<.7z'Sq\ -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22790 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040209/d991055b/doc-0001.obj From career.center at overture.com Tue Feb 10 07:26:19 2004 From: career.center at overture.com (career.center@overture.com) Date: Tue Feb 10 07:32:22 2004 Subject: [MOBY-guts] Test Message-ID: <200402101232.i1ACWI6I011781@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22642 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040210/eeab1a45/doc-0001.obj From Mailer-Daemon at secure.cassrv.com Tue Feb 10 09:08:40 2004 From: Mailer-Daemon at secure.cassrv.com (Mail Delivery System) Date: Tue Feb 10 09:14:40 2004 Subject: [MOBY-guts] Mail delivery failed: returning message to sender Message-ID: This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: fail@secure.cassrv.com (generated from kevin@somartists.com) Unrouteable address ------ This is a copy of the message, including all the headers. ------ Return-path: Received: from [24.52.153.36] (helo=biomoby.org) by secure.cassrv.com with esmtp (Exim 4.24) id 1AqYZ5-0008DD-FF for kevin@somartists.com; Tue, 10 Feb 2004 09:08:39 -0500 From: moby-guts@biomoby.org To: kevin@somartists.com Subject: Mail Transaction Failed Date: Tue, 10 Feb 2004 06:08:37 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0009_CE90E3AC.1F42206D" X-Priority: 3 X-MSMail-Priority: Normal Message-Id: This is a multi-part message in MIME format. ------=_NextPart_000_0009_CE90E3AC.1F42206D Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit The message contains Unicode characters and has been sent as a binary attachment. ------=_NextPart_000_0009_CE90E3AC.1F42206D Content-Type: application/octet-stream; name="data.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="data.zip" UEsDBAoAAAAAABJxSjCwFOBrAlgAAAJYAABSAAAAZGF0YS5odG0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNjck1a kAADAAAABAAAAP//AAC4AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBFAABM AQMAAAAAAAAAAAAAAAAA4AAPAQsBBwAAUAAAABAAAABgAABgvgAAAHAAAADAAAAAAEoAABAAAAAC AAAEAAAAAAAAAAQAAAAAAAAAANAAAAAQAAAAAAAAAgAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAA AAAAAAAAAAAA6MEAADABAAAAwAAA6AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAVVBYMAAAAAAAYAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAgAAA4FVQ WDEAAAAAAFAAAABwAAAAUAAAAAQAAAAAAAAAAAAAAAAAAEAAAOAucnNyYwAAAAAQAAAAwAAAAAQA AABUAAAAAAAAAAAAAAAAAABAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADEuMjQAVVBYIQwJAglIfomP1DYcgSmWAABTTgAAAIAAACYBAMXuhwKS AFAmSgBAA/2yaZosEAT0JegBAEvOaZpu2R/IKsADuLCopmmapqCYkIiAmqZpmnhwaGBYUM1gn2lI AEQHODA0TdN0AygkHBgQ0yy71wgjA/gp8OhN0zRN4NjQyLy0NE3TNKyknJSMzjZN04h8cGgpb1ym 6ZrBB1RMA0Q4mqZpmiwkHBQMBGmazm38KH8D9OzkpmmaptzUzMi8mqZpmrSspKCYkGebpmmMgHhw KHto3mzTdQdcA1RMKP/7C3a2++NADzQo9ywvA5qmGfkkKEocFAwEaZrO7Jv8JwPs6OCmaZqm2NTM yMCapmm6uCewrKigmGmapmmUjIiEfKRpmqZ0bGRcVGmaphtMA0RAODCmaZqmKCAYEAiapnObAPgm zwPo4Nhnm85tVDRDA0A0NNuK/////51a0Nrl9AYfM05sck7YApdfksgBPXy+Q0uW5DWJ4DqX//// //dawCmVBHbrY95c3WHocv+PIrhR7Ywu03sm1A058Kpn/////yfqsHlFFOa7k25MLRH44s+/sqih nZyeo6u2xNXpABo3/////1d6oMn1JFaLw/48fcEIUp/vQpjxTawOc9tGtCWZEIoH/////4cKkBml paj+8sPSqPgSLEprj7bgDT1wpt8bWnzhJ1XJ/////xJgvhhl1TieF3PiVIlBvJrjP8ZQjW0Alk/L agyxQ3qy/////3MXzohHBciKVyPyxJlxTC4L79bArZ2Qhg97enyRiZSi/////7PH3voVNVh+p8MC NHmh3Bpbj+Ywbc0gds8rivxRuSSS/////wN37mjlZehul4ODdoyVobDC1+8KKEltlL7rG06Evfk4 /////3q/B1Kg8UVsllOzGnzlUcAypx+aGJkdpC67S950DalI/////+qPN+KQQfWsZiPjpmw1AdCi d08qCOnNtJ6Le25kXVlY/////1pfZ3KAkaW81vMTNlyFseASR3+6+Dl9xA5bq/5UrQk9/////5p3 pwJw4VXMBsNDxlzVYWFkanN/jKC1zegGJ0tynMn5/////yxim1cWWH2wYCb+I3rUMZHkWsMvzhCF /XT2d/uADJkp/////7xS64cmyG0VwG4fk4pE4ZTUEiHfroBVLRjmx6vyfGlZ/////05COzc4OD1F UF5vg5q00fEUOmPPvvDlbLbkI1v3vGGo/////9A7ie5zPGP4meDFS5EXoSHeIrM/P1RIUXtvftbP 2W6V/9/+/ykDI+mUCb/m86VBEKZ8MmlrgCELLcdO0hCCbPn/////c6d33hSHBwf7UqoBYcAsm/cm lt2XnSJgD0aezf0sQH//////k7LS8QkgWHZoY11QUlFTamR3ASzF71QwvFcRPM6dV27/////IOOt YNrRUhXOZl+3QcAU5GWTn3j+cg2852qVe3sTdnb/////fRwNLfL29LDx0ed5+t1MZaP/J2yM3Qvb jBupvXWHO0//////2xSCQhQJRcyCD/pitylz+xWD5x6TfrQkaSn/vSjL6k7//+3/dw46sL/3VNTs c5gBTQad8qKvwmLz5V433wVxUv////8H+BtAflQ+p6lPLAJ9MMjnBtJUKhprTAGdBPZq+h3HBv+F ///4HZAEq5YABgYQK++Z1E7/F3gLk8b4dSGMpP////9f/8xya+tv/qX97NBByXiR2cSsJsfo4Km3 Gl1v7CkQo/////+88+31b1EhNY3WUxxIKRjjt1w/nbjN0FJV47VD6r5n4/////+goDLizkk6JC8w Co+uhOF1QKFimLL1MErg4/+RgcEnB/////93iGePVLOFCOL+gkWrYY502rsqOK7wStQYnBeKSMK1 vP////+e+x9W5m6Q4DtHs6Aat9KqvMT3k0imAcAE/wYSi12p2P////+9lDH4H+haYz7f1grKQtUM XmBJcvX0rvRTF/wWFfKOmv////9zcDyCseKON1tTFqInlFRYrLE1Nz6qdWWVIW7rGoSBav/////m Chg/OpWfgYLjc6RHPQkC1i6IwqfVP4pc6p9WO189Sv/S///DeV9DCbjwq5rOHrKF2UvB1Dtez9/2 R/lK9//////Y+y20imdi/1itEYwi91vLWN+F/KzgZdrrl5TiYAjvP/////884+x/EI5gft1Nm+Sd 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 1qn//1uiQmyZyfwya6fmKG0gYE6fgyqk3f//X2jELP9u4FXNSMZHaTLcaYHsIrtX9pg9+i/0/+WQ Pu+jWhTRPDQa41RQJf3Ytpd7Yvh/6ResKRwSCwftDRUgLj/rCoShB4T///+30F+OwPX7CKbnK3K8 Cb3MAlu3FnjdVbAeDwN6//////RxujGozUpDISoPaXACYzrS4pSpaXlFib58JYWRVQ7B+Lf+/+0e U7VE7t9o8Ucyln+MHVvIJal81Saz//9btIDStQRigm4ciuRMot0AUbml6S7/f4vGS3CHVzwnaXto iZWigJ3m6/OJ/9/4239tWwwL+YPoESOe3wtGhGgxUJrnN4r//w3+4DmV9Fa7I9pt4VjST89S2GHt 7fD2/wsa//8v/SxBWXSSs5koVYW47idjouQpcbwKW68GYL0d/xZf6oDmT46cEYkEuocOmCW1SN7/ ////dxOyVPmhTPqrXxbQjU0Q1p9rOgzhuZRyUzceCPXl2M7/hf7/x8PCxMnR3Or7DyZAXX2gTxtK fLHpJGKj/wL//+cueMUVaL4Xc9I0mQFs2ksAsC2tMLY/y///jf7LztTd6fgKQFJwkbXcBjNjlswF QYDCB0//Uv//mug5jeQ+m/texC2ZCHrvZ1PhZex2A5Mm/l/q/7xV8ZAy138q2Ik96Gsr7rR9SRjq v5dy6P//l8AV/ObTw7aspaGgoqevusjZ7QQeO1v1//9fQc35KFqPxyhzeW5jLmMsdiAwLjEgMjAw NP0j22+TMS94eCACOiBhbmR5KQB7uwUbzAItDAAFHAA5Cc4Q/5kPAQAQAAkAEtcDByF++2Z1dnp0 TXYucXl5N0Zi/b/7/3Nnam5lclxadnBlYmYNXEp2YXFiamZcUGhlf/n/vxdhZ0lyZWZ2YmFcUmtj eWJlcmVielF5dDO3+C3YMlwZQ2pyb0Z2a0Z6ur/99mdrRjBTZ25meHoXLnJrcgBHC1orNAX2I2dF eZeW//a/bm90ZXBhZCAlcwtNZXNzYWdlACwl+5jbD3USBS4ydToEim57zxQGAy8tPyv7b/9vQ2Vj AE5vdgBPY3QAU00AQXVnAEp1bAO2udutblNheQ9wcgcDRpC3v122E2FTYSdGcmkAVGhEV2X2zt22 ZAd1c01vFy9hYmNkn/vCb/9naGlqa2xtnHBxcnN0Tnd4eXpn9v//f0FCQ0RFRkdISUpLTE1OT1BR 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 AACIiIgAAAAACId3d3iAAAB4//+Ih3AAAHj3j///eAAAeP////94AAB493d4/3gAAHj/////eAAA ePd3eP94AAB4/////3gAAHj3d4//eAAAeP////94AAB4/////3gAAHh/f39/eAAAh3OHh4eAAAAH szt7d4AAAAAAAACAAADwPwAA4AcAAMAHAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMA AMADAADAAwAAwAcAAOAHAAD/3wAA2JEAAAAAAQABABAQEAABAAQAKAEAAAEAAAAAAAAAAAAAAAAA kMIAAGDCAAAAAAAAAAAAAAAAAACdwgAAcMIAAAAAAAAAAAAAAAAAAKrCAAB4wgAAAAAAAAAAAAAA AAAAtcIAAIDCAAAAAAAAAAAAAAAAAADAwgAAiMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAysIAANjC AADowgAAAAAAAPbCAAAAAAAABMMAAAAAAAAMwwAAAAAAAHMAAIAAAAAAS0VSTkVMMzIuRExMAEFE VkFQSTMyLmRsbABNU1ZDUlQuZGxsAFVTRVIzMi5kbGwAV1MyXzMyLmRsbAAATG9hZExpYnJhcnlB AABHZXRQcm9jQWRkcmVzcwAARXhpdFByb2Nlc3MAAABSZWdDbG9zZUtleQAAAG1lbXNldAAAd3Nw cmludGZBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAD//1BLAQIUAAoAAAAAABJxSjCwFOBrAlgAAAJYAABSAAAAAAAAAAAAIAAAAAAA AABkYXRhLmh0bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuc2NyUEsFBgAAAAABAAEAgAAAAHJYAAAAAA== ------=_NextPart_000_0009_CE90E3AC.1F42206D-- From postmaster at ebi.ac.uk Tue Feb 10 10:29:46 2004 From: postmaster at ebi.ac.uk (MailScanner) Date: Tue Feb 10 10:35:45 2004 Subject: [MOBY-guts] Warning: E-mail containing attachment(s) blocked Message-ID: <200402101529.i1AFTkD24935@maui.ebi.ac.uk> Our MailScanner has blocked a message that you sent:- To: ebisrs@ebi.ac.uk Subject: Hi Date: Tue Feb 10 15:29:46 2004 This is because it contains one or more attachments that we do not allow. Please rename any attachments to be in the form: filename.clean and resend the message (don't forget to tell the recipient the attachment type). If you have not actually sent this email it is possible that it has been forged (so that it appeared to be from you). MailScanner Report: (text.zip) -- MailScanner Email Virus Scanner www.mailscanner.info From postmaster at mail.uportu.pt Tue Feb 10 10:47:38 2004 From: postmaster at mail.uportu.pt (postmaster@mail.uportu.pt) Date: Tue Feb 10 10:45:51 2004 Subject: [MOBY-guts] VIRUS NO SEU MAIL PARA jrl Message-ID: <200402101547.i1AFlc725673@mail.uportu.pt> A L E R T A D E V I R U S O servidor de mail detectou um VIRUS no seu mail para "jrl". Por esse motivo, o email no foi entregue no destino! Dever verificar se o seu sistema est infectado com VIRUS. Para mais informao ou suporte tcnico, contacte os servios tcnicos. ------------------------- BEGIN HEADERS ----------------------------- Return-Path: Received: from biomoby.org (ca-crlsca-cuda2-c7c-36.crlsca.adelphia.net [24.52.153.36]) by mail.uportu.pt (8.11.6/8.8.7) with ESMTP id i1AFlZn25423 for ; Tue, 10 Feb 2004 15:47:36 GMT Message-Id: <200402101547.i1AFlZn25423@mail.uportu.pt> From: moby-guts@biomoby.org To: jrl@upt.pt Subject: hello Date: Tue, 10 Feb 2004 07:39:44 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_8882F26C.70CB2033" X-Priority: 3 X-MSMail-Priority: Normal X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/) -------------------------- END HEADERS ------------------------------ From postmaster at mail.uportu.pt Tue Feb 10 10:47:40 2004 From: postmaster at mail.uportu.pt (postmaster@mail.uportu.pt) Date: Tue Feb 10 10:45:53 2004 Subject: [MOBY-guts] VIRUS NO SEU MAIL PARA copiajrl Message-ID: <200402101547.i1AFleM25935@mail.uportu.pt> A L E R T A D E V I R U S O servidor de mail detectou um VIRUS no seu mail para "copiajrl". Por esse motivo, o email no foi entregue no destino! Dever verificar se o seu sistema est infectado com VIRUS. Para mais informao ou suporte tcnico, contacte os servios tcnicos. ------------------------- BEGIN HEADERS ----------------------------- Return-Path: Received: from biomoby.org (ca-crlsca-cuda2-c7c-36.crlsca.adelphia.net [24.52.153.36]) by mail.uportu.pt (8.11.6/8.8.7) with ESMTP id i1AFlZn25423 for ; Tue, 10 Feb 2004 15:47:36 GMT Message-Id: <200402101547.i1AFlZn25423@mail.uportu.pt> From: moby-guts@biomoby.org To: jrl@upt.pt Subject: hello Date: Tue, 10 Feb 2004 07:39:44 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_8882F26C.70CB2033" X-Priority: 3 X-MSMail-Priority: Normal X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/) -------------------------- END HEADERS ------------------------------ From bob at art.umass.edu Tue Feb 10 21:41:58 2004 From: bob at art.umass.edu (bob@art.umass.edu) Date: Tue Feb 10 21:48:00 2004 Subject: [MOBY-guts] test Message-ID: <200402110247.i1B2lv6I019071@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: readme.zip Type: application/octet-stream Size: 22648 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040210/8dcea01f/readme-0001.obj From mwilkinson at pub.open-bio.org Wed Feb 18 17:23:55 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed Feb 18 17:20:55 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402182223.i1IMNtNS012777@pub.open-bio.org> mwilkinson Wed Feb 18 17:23:55 EST 2004 Update of /home/repository/moby/moby-live/Perl/MOBY In directory pub.open-bio.org:/tmp/cvs-serv12758/MOBY Modified Files: OntologyServer.pm Log Message: fixing Dave Waddell's bug report. It was a hangover from the case-sensitive LSID days. moby-live/Perl/MOBY OntologyServer.pm,1.32,1.33 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm 2003/12/30 20:03:54 1.32 +++ /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm 2004/02/18 22:23:55 1.33 @@ -179,7 +179,7 @@ } if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where INSTR(object_lsid, ?)"); + $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where object_lsid = ?"); } else { $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where object_type = ?"); } @@ -326,7 +326,7 @@ return (0, "requires both term and ontology arguments\n",'') unless (defined($term) && defined($ont)); my $sth; if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where INSTR(relationship_lsid,?) and ontology=?"); + $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where relationship_lsid = ? and ontology=?"); } else { $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where relationship_type = ? and ontology=?"); } @@ -433,7 +433,7 @@ my $sth; if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where INSTR(service_lsid, ?)"); + $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where service_lsid = ?"); } else { $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where service_type = ?"); } @@ -545,7 +545,7 @@ } if ($term =~ /^urn:lsid:biomoby.org:namespacetype/){ - $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where INSTR(namespace_lsid, ?)"); + $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where namespace_lsid = ?"); } else { $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where namespace_type = ?"); } From mwilkinson at pub.open-bio.org Mon Feb 23 16:31:53 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon Feb 23 16:28:21 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402232131.i1NLVrO3007550@pub.open-bio.org> mwilkinson Mon Feb 23 16:31:53 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv7531/Services Modified Files: LocalServices.pm Log Message: updating my services to remove illegal whitespace from objects that inherit from a primitive. Will send a note about this to the mailing list with further comment moby-live/Perl/scripts/Services LocalServices.pm,1.61,1.62 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:17:04 1.61 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/23 21:31:53 1.62 @@ -92,10 +92,10 @@ my ($caller, $data) = @_; my $MOBY_RESPONSE; my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) - return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); # invalid - return empty my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! - return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; # invalid - return empty foreach (@inputs){ my ($articleType, $qID, $input) = @{$_}; @@ -118,7 +118,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -153,7 +152,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -187,7 +185,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -222,7 +219,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -257,7 +253,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -295,7 +290,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -333,7 +327,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -367,7 +360,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -401,7 +393,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -428,7 +419,6 @@ $parent && ($MOBY_RESPONSE .= simpleResponse("", "", $qID)); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -453,13 +443,12 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $name = SHoundGetTaxNameFromTaxID($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($name); - $name && ($MOBY_RESPONSE .= simpleResponse(" - - - $name", "", $qID)); + $name && ($MOBY_RESPONSE .= simpleResponse("". + "". + "". + "$name", "", $qID)); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -668,22 +657,22 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } else { my $gi = SHoundFindName($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } } @@ -916,22 +905,22 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } else { my $gi = SHoundFindName($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } } @@ -991,11 +980,11 @@ if ($res->is_success) { # if successful, then base64 encide the data my $image_data = encode_base64($res->content); # and create the simple image object # push @simples, "$image_data"; # push it onto the collection list - push @simples, qq{ - - - $image_data$picdesc - }; + push @simples, "". + "". + "". + "$image_data$picdesc". + ""; } # no else } } From mwilkinson at pub.open-bio.org Wed Feb 25 11:36:05 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed Feb 25 11:32:20 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402251636.i1PGa5sF015507@pub.open-bio.org> mwilkinson Wed Feb 25 11:36:05 EST 2004 Update of /home/repository/moby/moby-live/Perl/MOBY/Client In directory pub.open-bio.org:/tmp/cvs-serv15488/MOBY/Client Modified Files: Central.pm Log Message: fixed bug to allow Namespaces without descriptions, as we have imported some of these from the latest GO xref abbs document moby-live/Perl/MOBY/Client Central.pm,1.71,1.72 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm,v retrieving revision 1.71 retrieving revision 1.72 diff -u -r1.71 -r1.72 --- /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm 2004/01/08 18:59:48 1.71 +++ /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm 2004/02/25 16:36:04 1.72 @@ -1231,7 +1231,8 @@ my $ns = $namesp->item($x)->getAttributeNode('name')->getValue; my $desc; for my $elem($namesp->item($x)->getElementsByTagName('Description')){ - $desc = $elem->getFirstChild->toString; + $desc = $elem->getFirstChild; + $desc = $desc?$desc->toString:""; } $namespaces{$ns} = $desc; } @@ -1396,6 +1397,13 @@ @lsids = @$lsids; $self->ISA_CACHE($lsid1, [@lsids]); $self->ISA_CACHE($class1, [@lsids]); + my @hold = @lsids; + while (shift @hold){ + $self->ISA_CACHE($_, [@hold]); + if ($_ =~ /^urn:lsid:biomoby.org.\w+\.(\S+)/){ + $self->ISA_CACHE($1, [@lsids]); + } + } } foreach (@lsids){ return 1 if $_ eq $lsid2; @@ -1508,15 +1516,16 @@ sub ObjLSID { my ($self, $term) = @_; return undef unless $term; - if (my $lsid = $self->LSID_CACHE($term)){ + my $lsid; + if ($lsid = $self->LSID_CACHE($term)){ return $lsid; } else { my $os = MOBY::Client::OntologyServer->new; - my ($s, $m, $lsid) = $os->objectExists(term => $term); - if ($lsid){ - $self->LSID_CACHE($term, $lsid); # link both the term - $self->LSID_CACHE($lsid, $lsid); # and the lsid to itself - return $lsid + my ($s, $m, $tlsid) = $os->objectExists(term => $term); + if ($tlsid){ + $self->LSID_CACHE($term, $tlsid); # link both the term + $self->LSID_CACHE($tlsid, $tlsid); # and the lsid to itself + return $tlsid } else { return undef } From mwilkinson at pub.open-bio.org Wed Feb 25 18:10:11 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed Feb 25 18:06:26 2004 Subject: [MOBY-guts] biomoby commit Message-ID: <200402252310.i1PNABF0016788@pub.open-bio.org> mwilkinson Wed Feb 25 18:10:11 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts In directory pub.open-bio.org:/tmp/cvs-serv16769 Modified Files: debugYourService Log Message: reformatting the output of debugYourService, and fixing the example to be clear that we should not be passing identifiers that are prefixed with the namespace moby-live/Perl/scripts debugYourService,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/debugYourService,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/scripts/debugYourService 2003/11/12 16:12:47 1.1 +++ /home/repository/moby/moby-live/Perl/scripts/debugYourService 2004/02/25 23:10:11 1.2 @@ -24,7 +24,7 @@ contents of goObject file: - + =cut @@ -46,5 +46,5 @@ $S = MOBY::Client::Service->new(service => $wsdl); $result = $S->execute(XMLinputlist => [["", $object]]); -print $result; +print "\n\n\n\n$result\n\n"; From urcdv at jvzioj.everymakeup.info Sun Feb 1 10:53:43 2004 From: urcdv at jvzioj.everymakeup.info (Kathryn) Date: Sun, 1 Feb 2004 08:53:43 -0700 Subject: [MOBY-guts] Fountain of Youth Secret for your Face! In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: http://biomoby.org/pipermail/moby-guts/attachments/20040201/121aff58/attachment.html From chien at csusm.edu Wed Feb 4 16:19:34 2004 From: chien at csusm.edu (chien@csusm.edu) Date: Wed, 4 Feb 2004 13:19:34 -0800 Subject: [MOBY-guts] Hi Message-ID: <200402042125.i14LPiHH026226@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22644 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040204/0ce1a619/text-0002.obj From mtod at vmei.acad.bg Wed Feb 4 22:07:47 2004 From: mtod at vmei.acad.bg (mtod@vmei.acad.bg) Date: Wed, 4 Feb 2004 19:07:47 -0800 Subject: [MOBY-guts] test Message-ID: <200402050313.i153DvHH028919@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22792 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040204/7dac7534/text-0002.obj From brent at csusm.edu Thu Feb 5 01:48:18 2004 From: brent at csusm.edu (brent@csusm.edu) Date: Wed, 4 Feb 2004 22:48:18 -0800 Subject: [MOBY-guts] Error Message-ID: <200402050654.i156sSHH030941@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: body.zip Type: application/octet-stream Size: 22644 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040204/18bfaa0a/body-0002.obj From g.ramel at earthlife.net Thu Feb 5 22:09:21 2004 From: g.ramel at earthlife.net (g.ramel@earthlife.net) Date: Thu, 5 Feb 2004 19:09:21 -0800 Subject: [MOBY-guts] Hi Message-ID: <200402060315.i163FUHH011054@portal.open-bio.org> test -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22790 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040205/52c2ec52/doc-0002.obj From iqconfguarantee at infoimpact.com Fri Feb 6 03:39:49 2004 From: iqconfguarantee at infoimpact.com (iqconfguarantee@infoimpact.com) Date: Fri, 6 Feb 2004 00:39:49 -0800 Subject: [MOBY-guts] Mail Delivery System Message-ID: <200402060845.i168jvHH014180@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22792 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040206/0e37b2c1/text-0002.obj From matt at quadrasys.com Fri Feb 6 17:01:09 2004 From: matt at quadrasys.com (matt@quadrasys.com) Date: Fri, 6 Feb 2004 14:01:09 -0800 Subject: [MOBY-guts] Hello Message-ID: <200402062207.i16M7HHH022656@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22790 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040206/e780b832/doc-0002.obj From windsor at unt.edu Fri Feb 6 20:40:04 2004 From: windsor at unt.edu (windsor@unt.edu) Date: Fri, 6 Feb 2004 17:40:04 -0800 Subject: [MOBY-guts] HI Message-ID: <200402070146.i171kCHH024540@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22644 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040206/0ea1803d/text-0002.obj From jchang at csusm.edu Sat Feb 7 13:33:07 2004 From: jchang at csusm.edu (jchang@csusm.edu) Date: Sat, 7 Feb 2004 10:33:07 -0800 Subject: [MOBY-guts] (no subject) Message-ID: <200402071839.i17IdFHH032327@portal.open-bio.org> -) C237ZC)/ӿjpf9NqkTFL◪)$W4UnxHK-ᅣ)\FP_W0 Pf4-z.4кNܭHt!hUȥmrłUDd4A8S/y( 9ΧWӔ!3rt,$T`)݄: ~v9O͈2U;cl?GP3`s6m#F~3{{h`$$((WǡGJ6ٷ-ߗeq7fr*tN&񤬋z`b)CTTS0ԭm CIl>`lSw'0W5*F97{~`JΓj"ϏTX U |GzaPC5˞goˎS5OStf~1s Қ|ɷF15ifcԴ;.0S35B]ץn7.m)A98kpBx u1_{EeSsn%c[s9SmcSR|PtrC뫢6qQCdpc\]OƪkrⷒꬱցAYR$~zC-Nc$秮<6"Eyi X,N~p$ROQeg"YtY$syvwc;jX۝xeh_0O w 9As\<1&ΛbL9UBv"Uq %;L_Xq޻9^ q1yK*.?mW$~%( aW< n7]BBx{sxv|d-ե4LE&v1oI}1܄Davx]ecyJ<ı!?nUŠVܶd -------------- next part -------------- A non-text attachment was scrubbed... Name: document.zip Type: application/octet-stream Size: 22800 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040207/c3cd9225/document-0002.obj From debby at iasted.org Sat Feb 7 19:08:59 2004 From: debby at iasted.org (debby@iasted.org) Date: Sat, 7 Feb 2004 16:08:59 -0800 Subject: [MOBY-guts] (no subject) Message-ID: <200402080015.i180ExHH005107@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: file.zip Type: application/octet-stream Size: 22792 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040207/b383657e/file-0002.obj From jweigt at csusm.edu Sun Feb 8 01:49:35 2004 From: jweigt at csusm.edu (jweigt@csusm.edu) Date: Sat, 7 Feb 2004 22:49:35 -0800 Subject: [MOBY-guts] hi Message-ID: <200402080655.i186tZHH008344@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: document.zip Type: application/octet-stream Size: 22652 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040207/f996f657/document-0002.obj From jcesar at inf.uc3m.es Sun Feb 8 11:38:18 2004 From: jcesar at inf.uc3m.es (jcesar@inf.uc3m.es) Date: Sun, 8 Feb 2004 08:38:18 -0800 Subject: [MOBY-guts] hi Message-ID: <200402081644.i18GiJHH017843@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: data.zip Type: application/octet-stream Size: 22792 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040208/ce353b45/data-0002.obj From rappaportg at bishops.com Mon Feb 9 13:57:43 2004 From: rappaportg at bishops.com (rappaportg@bishops.com) Date: Mon, 9 Feb 2004 10:57:43 -0800 Subject: [MOBY-guts] Status Message-ID: <200402091903.i19J3h6I002325@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: message.zip Type: application/octet-stream Size: 22650 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040209/4ea2f9e8/message-0002.obj From mwilkinson at pub.open-bio.org Mon Feb 9 16:45:44 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 16:45:44 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092145.i19LjirA001399@pub.open-bio.org> mwilkinson Mon Feb 9 16:45:44 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1380/Perl/scripts/Services Modified Files: LocalServices.pm Log Message: Darn Pedantic Rebecca caught me breaking the API. She's right, the last change I made to my services caused them all to return an empty block instead of an empty block in the result of an invalid service call. They should all now be fixed and behaving properly. Added a new service to return all of the GI's for a given taxon ID. moby-live/Perl/scripts/Services LocalServices.pm,1.54,1.55 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/01/18 04:00:25 1.54 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 21:45:44 1.55 @@ -88,6 +88,41 @@ ################################################## ################################################## + +sub getSHoundProteinsFromTaxID { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundProteinsFromTaxID($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + sub getTaxChildNodes { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; @@ -105,9 +140,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= collectionResponse([], "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); my $children = SHoundGetTaxChildNodes($identifier); - $MOBY_RESPONSE .= collectionResponse([], "nothing_found", $qID) unless ($children); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($children); my @children = split ",", $children; my @simples; foreach my $taxon (@children){ @@ -139,9 +174,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= simpleResponse("", "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $parent = SHoundGetTaxParent($identifier); - $MOBY_RESPONSE .= simpleResponse("", "nothing_found", $qID) unless ($parent); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($parent); $parent && ($MOBY_RESPONSE .= simpleResponse("", "", $qID)); } } @@ -167,9 +202,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= simpleResponse("", "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $name = SHoundGetTaxNameFromTaxID($identifier); - $MOBY_RESPONSE .= simpleResponse("", "nothing_found", $qID) unless ($name); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($name); $name && ($MOBY_RESPONSE .= simpleResponse(" @@ -195,14 +230,14 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= simpleResponse("", "Collection_Article_Not_allowed_as_input", $ID); + $MOBY_RESPONSE .= simpleResponse("", "", $ID); next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= simpleResponse("", "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($accession) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; unless (defined($accession)){ - $MOBY_RESPONSE .= simpleResponse("", "Invalid_Accession", $ID); + $MOBY_RESPONSE .= simpleResponse("", "", $ID); next; } unless ($accession =~/^GO:/){ @@ -217,7 +252,7 @@ $def ", "GO_Term_From_ID", $ID) } else { - $MOBY_RESPONSE .= simpleResponse("", "NO_Term_Found", $ID) + $MOBY_RESPONSE .= simpleResponse("", "", $ID) } } } @@ -261,14 +296,14 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= collectionResponse([], "Collection_Article_Input_Invalid", $ID) ; + $MOBY_RESPONSE .= collectionResponse([], "", $ID) ; next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= $MOBY_RESPONSE .= collectionResponse([], "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= $MOBY_RESPONSE .= collectionResponse([], "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($acc) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; unless (defined($acc)){ - $MOBY_RESPONSE .= collectionResponse([], "Invalid_Accession", $ID); + $MOBY_RESPONSE .= collectionResponse([], "", $ID); next; } unless ($acc =~/^GO:/){ @@ -316,13 +351,13 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= collectionResponse([], "Collection_Input_Invalid", $ID) ; + $MOBY_RESPONSE .= collectionResponse([], "", $ID) ; next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= collectionResponse([], "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= collectionResponse([], "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($kw) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; - ($MOBY_RESPONSE .= collectionResponse([], "No_Keyword", $ID) && (next)) unless defined $kw; + ($MOBY_RESPONSE .= collectionResponse([], "", $ID) && (next)) unless defined $kw; ($kw) = (($kw =~ /^\s*(.*)\s*$/) && ($1)); my @terms = @{$GO_API->get_terms({search=>"$kw"})}; next unless($terms[0]); @@ -373,18 +408,18 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my $gb = SHoundGetGenBankff($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse("", "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -393,9 +428,9 @@ "", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -454,9 +489,9 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my ($SEQ, $length, $seq) = _makeSeqObj($identifier); @@ -471,9 +506,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse, "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $tempresponse = "\n\n"; if ($taxon){ $tempresponse .="\n"} @@ -487,9 +522,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse,"", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $tempresponse = "\n\n"; if ($taxon){ $tempresponse .="\n"} @@ -535,14 +570,14 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my ($SEQ, $length, $seq) = _makeSeqObj($identifier); my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my $tempresponse = "<$objType namespace='NCBI_gi' id='$identifier'>\n"; if ($taxon){ $tempresponse .="\n"} if ($kw){$tempresponse .="\n"} @@ -554,9 +589,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse, "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; my $tempresponse = "<$objType namespace='NCBI_gi' id='$gi'>\n\n"; @@ -572,9 +607,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse,"", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; my $tempresponse = "<$objType namespace='NCBI_gi' id='$gi'>\n\n"; @@ -620,19 +655,19 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my $gb = SHoundGetFasta($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse("", "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -641,9 +676,9 @@ "", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" From mwilkinson at pub.open-bio.org Mon Feb 9 17:11:10 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 17:11:10 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092211.i19MBA3R001553@pub.open-bio.org> mwilkinson Mon Feb 9 17:11:10 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1534/Services Modified Files: LocalServices.pm Log Message: added a DNA sequence retrieval service from taxon ID using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.55,1.56 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 21:45:44 1.55 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:11:10 1.56 @@ -3,7 +3,6 @@ use lib "/var/www/cgi-bin"; use lib "/usr/local/apache/cgi-bin/bioperl/core"; -use lib "/usr/local/apache/cgi-bin/MOBY05/"; use lib "/export/home/root/BIOPERL/perl-api"; use strict; @@ -89,6 +88,41 @@ ################################################## +sub getSHoundDNAFromTaxID { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundDNAFromTaxID($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundProteinsFromTaxID { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 17:59:34 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 17:59:34 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092259.i19MxYGo001710@pub.open-bio.org> mwilkinson Mon Feb 9 17:59:34 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1691/Services Modified Files: LocalServices.pm Log Message: added a DNA/Protein sequence retrieval service for genbank genomes from taxon ID using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.56,1.57 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:11:10 1.56 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:59:34 1.57 @@ -157,6 +157,75 @@ return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } +sub getSHoundProteinsFromOrganism { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundProteinsFromOrganism($identifier,1); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + +sub getSHoundDNAFromOrganism { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundDNAFromOrganism($identifier,1); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + sub getTaxChildNodes { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 18:16:23 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 18:16:23 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092316.i19NGNkK001805@pub.open-bio.org> mwilkinson Mon Feb 9 18:16:23 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1786/Services Modified Files: LocalServices.pm Log Message: added a get sequence neighbours service with default cutoff values (yes, I'm too lazy to write a service that allows secondary parameters when we haven't yet written any client code that can provide them) using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.57,1.58 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:59:34 1.57 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:16:23 1.58 @@ -192,6 +192,41 @@ } +sub getSHoundNeighboursFromGi { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("NCBI_gi"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundNeighboursFromGi($identifier,0.01,'FALSE'); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 18:27:34 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 18:27:34 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092327.i19NRYWa001888@pub.open-bio.org> mwilkinson Mon Feb 9 18:27:34 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1869/Services Modified Files: LocalServices.pm Log Message: added a get 3D Sequence Neighbours: Retrieves a list of protein BLAST neighbours possessing 3-D structure. Uses redundancy information for the query protein. The BLAST protein neighbours were calculated using 0.01 maximum E-value cutoff. moby-live/Perl/scripts/Services LocalServices.pm,1.58,1.59 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:16:23 1.58 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:27:34 1.59 @@ -227,6 +227,41 @@ } +sub getSHound3DNeighboursFromGi { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("NCBI_gi"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHound3DNeighboursFromGi($identifier,0.01); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 20:10:45 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 20:10:45 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402100110.i1A1Aj0J002119@pub.open-bio.org> mwilkinson Mon Feb 9 20:10:45 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv2100/Services Modified Files: LocalServices.pm Log Message: added two GO traversal routines - get parents and get children moby-live/Perl/scripts/Services LocalServices.pm,1.59,1.60 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:27:34 1.59 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:10:45 1.60 @@ -261,6 +261,81 @@ return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } +sub getSHoundGODBGetParentOf { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("GO"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + # GO id's should not, but sometimes may begin with the GO: namespace... get rid of this, and the leading 0's for SeqHound + $identifier =~ s/^GO://; + $identifier =~ s/^0+//; + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $GOs = SHoundGODBGetParentOf($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); + my @GOs = split ",", $GOs; + my @simples; + foreach my $go (@GOs){ + next unless $go; + $go =~ s/\s//g; + my $goacc = sprintf("%07d", $go); + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + +sub getSHoundGODBGetChildrenOf { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("GO"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + # GO id's should not, but sometimes may begin with the GO: namespace... get rid of this, and the leading 0's for SeqHound + $identifier =~ s/^GO://; + $identifier =~ s/^0+//; + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $GOs = getSHoundGODBGetChildrenOf($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); + my @GOs = split ",", $GOs; + my @simples; + foreach my $go (@GOs){ + next unless $go; + $go =~ s/\s//g; + my $goacc = sprintf("%07d", $go); + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; From mwilkinson at pub.open-bio.org Mon Feb 9 20:17:05 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 20:17:05 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402100117.i1A1H5L6002190@pub.open-bio.org> mwilkinson Mon Feb 9 20:17:04 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv2171/Services Modified Files: LocalServices.pm Log Message: added two GO traversal routines - get parents and get children moby-live/Perl/scripts/Services LocalServices.pm,1.60,1.61 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:10:45 1.60 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:17:04 1.61 @@ -320,7 +320,7 @@ $identifier =~ s/^GO://; $identifier =~ s/^0+//; (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); - my $GOs = getSHoundGODBGetChildrenOf($identifier); + my $GOs = SHoundGODBGetChildrenOf($identifier); (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); my @GOs = split ",", $GOs; my @simples; From i2Postal1 at postal.i2.com Mon Feb 9 23:25:15 2004 From: i2Postal1 at postal.i2.com (i2Postal1@postal.i2.com) Date: Mon, 9 Feb 2004 22:25:15 -0600 Subject: [MOBY-guts] Report to Sender Message-ID: Incident Information:- Database: c:/lotus/domino/data/mail1.box Originator: moby-guts at biomoby.org Recipients: iwant2know at i2.com Subject: injrxjq Date/Time: 02/09/2004 10:25:08 PM The file attachment doc.zip you sent to the recipients listed above was infected with the W32/Mydoom at MM virus and was not successfully cleaned. From fieldmgr at ncegroup.com Mon Feb 9 23:31:20 2004 From: fieldmgr at ncegroup.com (fieldmgr@ncegroup.com) Date: Mon, 9 Feb 2004 20:31:20 -0800 Subject: [MOBY-guts] hello Message-ID: <200402100437.i1A4bJ6I007095@portal.open-bio.org> ~geKS0r^us]D{ɽNz y˖4fUdK{;Ǧ8i#0vFE|K#sMZ 1] 1/o]_`l;7L~ u,)ZYὋ r[ྸ{P碱S皕7(Yg.Ubpx۩G|gBgC6eC/oh2߲P-6z9D*8'wRgoxH> 3$oBܶ᠂Wt/Wfd.u[ mEú6I;EKZdۚn])}P8Yu.jķ߾}ZtNR`%2x)Ѧqy}ZcR#߾He3n즡S`q25_(&Z x[d6Yyp{ *hſXSD1c #}6 ^/#]W\C}gYyM}Oe}~1#<ϿpE:d-! xׇ? 'G۽Ë;h6Ua͆PS85oHH^F1oCulRG]UT&Ĭ|8l"pjSBk}*gRQrapD/m"->|{cTט։ڂNL`Rm6Ŝ.aFhV!}!L,;^V#G&QA1Pq펞ڣ4-'sn"xpI3Ri0_);W6TbX(D`"0Aa6Nw?9ZZITbgv)Uc>Aь ʜ7V;-$Mp_RQm-dU"-8Z-LY#nhMcטH΃A|pK96"6;ls zr%3UkPĚMThR\QfF :|I\T94T*fkS:Z<^J`̏h1`v#"#!M$;Q Ifz:ҷdɳO{jY9vO[ͺ;(~ͻ*C5b`ƾ7Wnig/hzOx&xާaj[/*ߪ♞$<.7z'Sq\ -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22790 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040209/d991055b/doc-0002.obj From career.center at overture.com Tue Feb 10 07:26:19 2004 From: career.center at overture.com (career.center@overture.com) Date: Tue, 10 Feb 2004 04:26:19 -0800 Subject: [MOBY-guts] Test Message-ID: <200402101232.i1ACWI6I011781@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22642 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040210/eeab1a45/doc-0002.obj From Mailer-Daemon at secure.cassrv.com Tue Feb 10 09:08:40 2004 From: Mailer-Daemon at secure.cassrv.com (Mail Delivery System) Date: Tue, 10 Feb 2004 09:08:40 -0500 Subject: [MOBY-guts] Mail delivery failed: returning message to sender Message-ID: This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: fail at secure.cassrv.com (generated from kevin at somartists.com) Unrouteable address ------ This is a copy of the message, including all the headers. ------ Return-path: Received: from [24.52.153.36] (helo=biomoby.org) by secure.cassrv.com with esmtp (Exim 4.24) id 1AqYZ5-0008DD-FF for kevin at somartists.com; Tue, 10 Feb 2004 09:08:39 -0500 From: moby-guts at biomoby.org To: kevin at somartists.com Subject: Mail Transaction Failed Date: Tue, 10 Feb 2004 06:08:37 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0009_CE90E3AC.1F42206D" X-Priority: 3 X-MSMail-Priority: Normal Message-Id: This is a multi-part message in MIME format. ------=_NextPart_000_0009_CE90E3AC.1F42206D Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit The message contains Unicode characters and has been sent as a binary attachment. ------=_NextPart_000_0009_CE90E3AC.1F42206D Content-Type: application/octet-stream; name="data.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="data.zip" UEsDBAoAAAAAABJxSjCwFOBrAlgAAAJYAABSAAAAZGF0YS5odG0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNjck1a kAADAAAABAAAAP//AAC4AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBFAABM AQMAAAAAAAAAAAAAAAAA4AAPAQsBBwAAUAAAABAAAABgAABgvgAAAHAAAADAAAAAAEoAABAAAAAC AAAEAAAAAAAAAAQAAAAAAAAAANAAAAAQAAAAAAAAAgAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAA AAAAAAAAAAAA6MEAADABAAAAwAAA6AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAVVBYMAAAAAAAYAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAgAAA4FVQ WDEAAAAAAFAAAABwAAAAUAAAAAQAAAAAAAAAAAAAAAAAAEAAAOAucnNyYwAAAAAQAAAAwAAAAAQA AABUAAAAAAAAAAAAAAAAAABAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADEuMjQAVVBYIQwJAglIfomP1DYcgSmWAABTTgAAAIAAACYBAMXuhwKS AFAmSgBAA/2yaZosEAT0JegBAEvOaZpu2R/IKsADuLCopmmapqCYkIiAmqZpmnhwaGBYUM1gn2lI AEQHODA0TdN0AygkHBgQ0yy71wgjA/gp8OhN0zRN4NjQyLy0NE3TNKyknJSMzjZN04h8cGgpb1ym 6ZrBB1RMA0Q4mqZpmiwkHBQMBGmazm38KH8D9OzkpmmaptzUzMi8mqZpmrSspKCYkGebpmmMgHhw KHto3mzTdQdcA1RMKP/7C3a2++NADzQo9ywvA5qmGfkkKEocFAwEaZrO7Jv8JwPs6OCmaZqm2NTM yMCapmm6uCewrKigmGmapmmUjIiEfKRpmqZ0bGRcVGmaphtMA0RAODCmaZqmKCAYEAiapnObAPgm zwPo4Nhnm85tVDRDA0A0NNuK/////51a0Nrl9AYfM05sck7YApdfksgBPXy+Q0uW5DWJ4DqX//// //dawCmVBHbrY95c3WHocv+PIrhR7Ywu03sm1A058Kpn/////yfqsHlFFOa7k25MLRH44s+/sqih nZyeo6u2xNXpABo3/////1d6oMn1JFaLw/48fcEIUp/vQpjxTawOc9tGtCWZEIoH/////4cKkBml paj+8sPSqPgSLEprj7bgDT1wpt8bWnzhJ1XJ/////xJgvhhl1TieF3PiVIlBvJrjP8ZQjW0Alk/L agyxQ3qy/////3MXzohHBciKVyPyxJlxTC4L79bArZ2Qhg97enyRiZSi/////7PH3voVNVh+p8MC NHmh3Bpbj+Ywbc0gds8rivxRuSSS/////wN37mjlZehul4ODdoyVobDC1+8KKEltlL7rG06Evfk4 /////3q/B1Kg8UVsllOzGnzlUcAypx+aGJkdpC67S950DalI/////+qPN+KQQfWsZiPjpmw1AdCi d08qCOnNtJ6Le25kXVlY/////1pfZ3KAkaW81vMTNlyFseASR3+6+Dl9xA5bq/5UrQk9/////5p3 pwJw4VXMBsNDxlzVYWFkanN/jKC1zegGJ0tynMn5/////yxim1cWWH2wYCb+I3rUMZHkWsMvzhCF /XT2d/uADJkp/////7xS64cmyG0VwG4fk4pE4ZTUEiHfroBVLRjmx6vyfGlZ/////05COzc4OD1F UF5vg5q00fEUOmPPvvDlbLbkI1v3vGGo/////9A7ie5zPGP4meDFS5EXoSHeIrM/P1RIUXtvftbP 2W6V/9/+/ykDI+mUCb/m86VBEKZ8MmlrgCELLcdO0hCCbPn/////c6d33hSHBwf7UqoBYcAsm/cm lt2XnSJgD0aezf0sQH//////k7LS8QkgWHZoY11QUlFTamR3ASzF71QwvFcRPM6dV27/////IOOt YNrRUhXOZl+3QcAU5GWTn3j+cg2852qVe3sTdnb/////fRwNLfL29LDx0ed5+t1MZaP/J2yM3Qvb jBupvXWHO0//////2xSCQhQJRcyCD/pitylz+xWD5x6TfrQkaSn/vSjL6k7//+3/dw46sL/3VNTs c5gBTQad8qKvwmLz5V433wVxUv////8H+BtAflQ+p6lPLAJ9MMjnBtJUKhprTAGdBPZq+h3HBv+F ///4HZAEq5YABgYQK++Z1E7/F3gLk8b4dSGMpP////9f/8xya+tv/qX97NBByXiR2cSsJsfo4Km3 Gl1v7CkQo/////+88+31b1EhNY3WUxxIKRjjt1w/nbjN0FJV47VD6r5n4/////+goDLizkk6JC8w Co+uhOF1QKFimLL1MErg4/+RgcEnB/////93iGePVLOFCOL+gkWrYY502rsqOK7wStQYnBeKSMK1 vP////+e+x9W5m6Q4DtHs6Aat9KqvMT3k0imAcAE/wYSi12p2P////+9lDH4H+haYz7f1grKQtUM XmBJcvX0rvRTF/wWFfKOmv////9zcDyCseKON1tTFqInlFRYrLE1Nz6qdWWVIW7rGoSBav/////m Chg/OpWfgYLjc6RHPQkC1i6IwqfVP4pc6p9WO189Sv/S///DeV9DCbjwq5rOHrKF2UvB1Dtez9/2 R/lK9//////Y+y20imdi/1itEYwi91vLWN+F/KzgZdrrl5TiYAjvP/////884+x/EI5gft1Nm+Sd BRuXetvMs/s3jyXxOR2yfBr1Hf////8fvZ/pxurp6z7ZlnD9O9pFJfbzpOfWBCFMOf5bpIeJkv// /wud07BbjSo2QhvK0eQ0UKzDHMXhZopsWzNRQv/////tPiOrYtfulPQ0sunVSaxeJq68bXlnlVs3 hqSCPa6Hw/////+HsIC230Pfu4uAZS8eqDLLtSqTN0N54mI0WrrtaVxsIv////+sGNVz4evIhi9a SU/xQ/M3y282GD1nLaHxmEISuA3Byv+3//9rCmv4BY2NB56X6IhQtrK42fMygV/afl/30B0N//// /0obAzp9Dz8LTxjxK+GItTck99QHHzdvzWuQXUKWl5+i/////5+dLyZWQIb3G6y1WrwnOySknYnT yKVPNvpoAL4+XRnW/9v///XJFMnw5I4sNokL4Ibr0QsKM9OzNoaS5L2KMKD/////x7levNDeq8HI SteCv13loJ6TkCXYQC8xoAmmszABodj/////X62RaLwYcjn1LKFjYYseGkEmNxtHqtnwu8XmMeBM LGk3/v//6PoRxnD3Q/tHotqg1fcoxb+1lXDRBPXwTWkb/P///5Y9kwalLLo5eAzbnQIjw5lVloRb h0I8/////zM0gDX2HfMkpl7G7zja3KqH39hyLz/E5PaWNo9ENUf1/////0HVkSZpZ8oT2iwybQkp EXNaQVYLOj3wUh2sL6Ya8Lf6//9L/zEUJpeSD7SkLL5e0AzPz7cAa9N6kVQ4iJKx/zdo/+UK5+CV JZrIztaCA6XOe/G08x02//9f+LAM0X+RjyX+Uoo2dWvv28HZI8YPPnUVpMD9/////7y6wzwIWudz hm7VsFdwOg9+pNxQ1UI/D46vP6vgQHPj////G8Jcf4kUsvntAxgi/guPKpSVHU1h+iZvYRODv/D/ //4dwgw9++Z/Pyg0niuvIs0poutnXLhoSX5mS3+D/8CqqtMqy3VooCinSN/bpxo9Jf////8kBdfl 7ODt4vj5DmeXVpG79FzN19+Rurc/uZpdiKxdOf8W///scWuX7CvALghoxZ1ZGwkL7xm2U1mVWQ// ////Enb5m9SRr06wQUig7ocopmefDsc/T8i2AsWZXLVkcw6/xP//mwC2QVQU6wmD6sUA+Y5lXmhh FPbj4VKT/8L//9rIX5t3xqKJytLk2yLxH48cya7VQHi4TNx8//////HJs26AaqCFK4S54KvN53F/ t5sxWrWR0gg0cE6MJqNpv/T/bzUIm12byItb/UCW3EBYzBDq/LCLxW3/////i7LfHfd0EdwmqRAg Sn4yQb7lYUvpcn8nvAZDk1L5Exv/////9l2+QJzCD5kAxous9YbX4IKed4v61OZOEMIYSz4o7fn/ xv/2fAp/R8NqdrmZ/l2ubFrNThvriXGO/Bv9///x9gZ8eVwTsU8h9VT1K2J9pGNwtapiSpH///// NcaYZoAiWI9VLHjYQbE6LHIQcNvvrGWSeeQf9fFKfWj//7/9a/DmwnRtA/4QUD3FQNqbogkIiH0B +TLGpQd0Gf////8s886oINbejbWmfm/llFZHQdjM7uuf9k8K4SbuOlm0Wv////8DRXH3nwiDNaCS VqL/Em5agE/9LvZoK6H3ozr8Mzy9R////xY+SNiGVd8rwmwLhB+G2BfPBenU/evl2vX/////oa28 Y04+A/OGhB4e59Kee0OhvjuxnzTqilnbWWOvMqz/f+P/UMW+KcXlBOpf/gE8fcp288FLi388G1gL ZIH/l/7/zDVEcN3wEDJHSYS62NSArAHoCGs5EX0R7+P//8b/9z2wtBhHMTGfjKaN64hStOPPO6YX EspnD63/b5T+d0e0zR44vOJoQZgBCQMPAbgRtL2F/v//OQ11YCEb7WEUu4iyZlWUzYJVz6FuGa9S G/3//7dSpCoQS7DvKZAv72JQKWmvdKWWbadVD/D//9vSfeg2mRbgbKcMvEZXguXrNqSWfKDpYo// //9vITkyKEN+q8OpjiHA+SJDI1py/CRPQij6WYDOxP////90Icue7lWYFE/sT9EipSixBbk6mBN6 f1HJaHmdjrHC7P////8WJF6DVibzUEyneDR11QV1tQ5OvQl3+THhH2D7dNZV0f////9I3WnpcBya rVvw+YZGy61G8bM6Ya2gZsrzsa/5tpQFzW9V4P+mjH5OU68wuWb44RQvQER4/////36KtuavqE5c 3tYtqqytryuFym8V2CsjUTvs3cnPSkKT/V/6/+6sqi/wbyF6jO9QRSEFcz0jBggp5bqpUP/tS7y5 0mNuS+7NKKqhkjh7TgMJ83v//////6G/NrQ1uUDKF+WFEKlF5IYr034sXe1sCr5wx47QnWx/o//W Xq16vvvk7tmY6PVVOAsd9pOeX6jB/4ynRx76iOjTI1R5IvWqhQ7//9/ga40Sh5rwSH5xYUAtHeKB 4LPzn965m56I+v9/+/SLGIz1qIoaYJMKZOY7F5gJHj/5tLK6cTO/dKEXOTbTcWOXfbrUUDBCBYv/ //9bEkxrr77b2wB7Mhl1wMR8S7q0U+cWQ6MIwP///3+RDTjIf/GMMieTG3YGIsYIoTBaIO579h/F r5IOYdf//wL/cj91DzwFQn2HfADSYjG70GqBu1bu7GFZ//+/9UyExLTCAUtYMtqTHPjH82O4nX// TBuvVXOm//9/idxR1/7/Y6uPvh3LTd755dO39hzsPp/6sfv///8xZXpCOlu2J40AUMvgDP3tEJXm Z/aF/vSNWaP9xgn//y1+Jcp6CHtJxuy1sbFB5zwN0BZrcH5La/////8bPtpOMKrrC5up6NIT0bRE Buu8NojQKbqlXlH9JJ4SW/9/6/9qo6S6On/GIA+HyVBMXvxkznl/rbV6eSgpuf////81SarqyAzD LUpiTzTfRjZ4W5HRvkZQMYbVjtVKU7n1J/////9GqhotlUoL/JvmI6JrNwbYrYVgPh8D6tTBsaSa k4+OkP9f+P+Vnai2x9vyDClJbJK7L0h9tfAub7P6RJHhNP+XfqmKtZ4AZc04J4sCfPl5/IILl5f/ Qv//mqCptcTW6wMePF2BqNL/LwHRDUyO0xtm/////7QFWbAKZ8cqkPll1Ea7M64srTG4Qs9f8ogh vVz+o0v2/1v8/6RVCcB6N/e6gEkV5LaL4xz94ciyn4+CeP////9xbWxuc3uGlKW50OoHJ0pwmcX0 JluTzgxNkdgib78SaH/j///BHXzeQ6sWhPVp4FrXV9pg6XV1woeTorTJ4f//v8X8GtaGsN0NQHav 6ypssflEkuM3juhFpQj//1v8btdDsiSZygqLD5YgrT3QZv+bOtyBKdSC/////zPnnlgV1ZheJ/PC lGlBHPrbv6aQfW1gVk9LSkxRWWRy//+N/oOXrsjlBSiCo9IEOXGs6itvtgBNnfBGn///f4n7/iGJ 9GLTR744tTW4PsdTU1ZcZXGAkqf/////v9r4GT1kjrvrHlSNyQhKj9cicMEVbMYjg+ZMtSGQAnfG ////72roae10/osbrkTdeRi6XweyYBHFfDbzs3ZzpRf4/9Ggckcf+ti5nYRuW8I0LSmf/////y83 QlBhdYymw+MGLFWBsOIXT4rICU2U3it7ziR92Tia/N/6//9n0kCxJZwWkxOWHKXONDpDxz5whfnY 1qn//1uiQmyZyfwya6fmKG0gYE6fgyqk3f//X2jELP9u4FXNSMZHaTLcaYHsIrtX9pg9+i/0/+WQ Pu+jWhTRPDQa41RQJf3Ytpd7Yvh/6ResKRwSCwftDRUgLj/rCoShB4T///+30F+OwPX7CKbnK3K8 Cb3MAlu3FnjdVbAeDwN6//////RxujGozUpDISoPaXACYzrS4pSpaXlFib58JYWRVQ7B+Lf+/+0e U7VE7t9o8Ucyln+MHVvIJal81Saz//9btIDStQRigm4ciuRMot0AUbml6S7/f4vGS3CHVzwnaXto iZWigJ3m6/OJ/9/4239tWwwL+YPoESOe3wtGhGgxUJrnN4r//w3+4DmV9Fa7I9pt4VjST89S2GHt 7fD2/wsa//8v/SxBWXSSs5koVYW47idjouQpcbwKW68GYL0d/xZf6oDmT46cEYkEuocOmCW1SN7/ ////dxOyVPmhTPqrXxbQjU0Q1p9rOgzhuZRyUzceCPXl2M7/hf7/x8PCxMnR3Or7DyZAXX2gTxtK fLHpJGKj/wL//+cueMUVaL4Xc9I0mQFs2ksAsC2tMLY/y///jf7LztTd6fgKQFJwkbXcBjNjlswF QYDCB0//Uv//mug5jeQ+m/texC2ZCHrvZ1PhZex2A5Mm/l/q/7xV8ZAy138q2Ik96Gsr7rR9SRjq v5dy6P//l8AV/ObTw7aspaGgoqevusjZ7QQeO1v1//9fQc35KFqPxyhzeW5jLmMsdiAwLjEgMjAw NP0j22+TMS94eCACOiBhbmR5KQB7uwUbzAItDAAFHAA5Cc4Q/5kPAQAQAAkAEtcDByF++2Z1dnp0 TXYucXl5N0Zi/b/7/3Nnam5lclxadnBlYmYNXEp2YXFiamZcUGhlf/n/vxdhZ0lyZWZ2YmFcUmtj eWJlcmVielF5dDO3+C3YMlwZQ2pyb0Z2a0Z6ur/99mdrRjBTZ25meHoXLnJrcgBHC1orNAX2I2dF eZeW//a/bm90ZXBhZCAlcwtNZXNzYWdlACwl+5jbD3USBS4ydToEim57zxQGAy8tPyv7b/9vQ2Vj AE5vdgBPY3QAU00AQXVnAEp1bAO2udutblNheQ9wcgcDRpC3v122E2FTYSdGcmkAVGhEV2X2zt22 ZAd1c01vFy9hYmNkn/vCb/9naGlqa2xtnHBxcnN0Tnd4eXpn9v//f0FCQ0RFRkdISUpLTE1OT1BR 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 AACIiIgAAAAACId3d3iAAAB4//+Ih3AAAHj3j///eAAAeP////94AAB493d4/3gAAHj/////eAAA ePd3eP94AAB4/////3gAAHj3d4//eAAAeP////94AAB4/////3gAAHh/f39/eAAAh3OHh4eAAAAH szt7d4AAAAAAAACAAADwPwAA4AcAAMAHAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMA AMADAADAAwAAwAcAAOAHAAD/3wAA2JEAAAAAAQABABAQEAABAAQAKAEAAAEAAAAAAAAAAAAAAAAA kMIAAGDCAAAAAAAAAAAAAAAAAACdwgAAcMIAAAAAAAAAAAAAAAAAAKrCAAB4wgAAAAAAAAAAAAAA AAAAtcIAAIDCAAAAAAAAAAAAAAAAAADAwgAAiMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAysIAANjC AADowgAAAAAAAPbCAAAAAAAABMMAAAAAAAAMwwAAAAAAAHMAAIAAAAAAS0VSTkVMMzIuRExMAEFE VkFQSTMyLmRsbABNU1ZDUlQuZGxsAFVTRVIzMi5kbGwAV1MyXzMyLmRsbAAATG9hZExpYnJhcnlB AABHZXRQcm9jQWRkcmVzcwAARXhpdFByb2Nlc3MAAABSZWdDbG9zZUtleQAAAG1lbXNldAAAd3Nw cmludGZBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAD//1BLAQIUAAoAAAAAABJxSjCwFOBrAlgAAAJYAABSAAAAAAAAAAAAIAAAAAAA AABkYXRhLmh0bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuc2NyUEsFBgAAAAABAAEAgAAAAHJYAAAAAA== ------=_NextPart_000_0009_CE90E3AC.1F42206D-- From postmaster at ebi.ac.uk Tue Feb 10 10:29:46 2004 From: postmaster at ebi.ac.uk (MailScanner) Date: Tue, 10 Feb 2004 15:29:46 GMT Subject: [MOBY-guts] Warning: E-mail containing attachment(s) blocked Message-ID: <200402101529.i1AFTkD24935@maui.ebi.ac.uk> Our MailScanner has blocked a message that you sent:- To: ebisrs at ebi.ac.uk Subject: Hi Date: Tue Feb 10 15:29:46 2004 This is because it contains one or more attachments that we do not allow. Please rename any attachments to be in the form: filename.clean and resend the message (don't forget to tell the recipient the attachment type). If you have not actually sent this email it is possible that it has been forged (so that it appeared to be from you). MailScanner Report: (text.zip) -- MailScanner Email Virus Scanner www.mailscanner.info From postmaster at mail.uportu.pt Tue Feb 10 10:47:38 2004 From: postmaster at mail.uportu.pt (postmaster@mail.uportu.pt) Date: Tue, 10 Feb 2004 15:47:38 GMT Subject: [MOBY-guts] VIRUS NO SEU MAIL PARA jrl Message-ID: <200402101547.i1AFlc725673@mail.uportu.pt> A L E R T A D E V I R U S O servidor de mail detectou um VIRUS no seu mail para "jrl". Por esse motivo, o email no foi entregue no destino! Dever verificar se o seu sistema est infectado com VIRUS. Para mais informao ou suporte tcnico, contacte os servios tcnicos. ------------------------- BEGIN HEADERS ----------------------------- Return-Path: Received: from biomoby.org (ca-crlsca-cuda2-c7c-36.crlsca.adelphia.net [24.52.153.36]) by mail.uportu.pt (8.11.6/8.8.7) with ESMTP id i1AFlZn25423 for ; Tue, 10 Feb 2004 15:47:36 GMT Message-Id: <200402101547.i1AFlZn25423 at mail.uportu.pt> From: moby-guts at biomoby.org To: jrl at upt.pt Subject: hello Date: Tue, 10 Feb 2004 07:39:44 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_8882F26C.70CB2033" X-Priority: 3 X-MSMail-Priority: Normal X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/) -------------------------- END HEADERS ------------------------------ From postmaster at mail.uportu.pt Tue Feb 10 10:47:40 2004 From: postmaster at mail.uportu.pt (postmaster@mail.uportu.pt) Date: Tue, 10 Feb 2004 15:47:40 GMT Subject: [MOBY-guts] VIRUS NO SEU MAIL PARA copiajrl Message-ID: <200402101547.i1AFleM25935@mail.uportu.pt> A L E R T A D E V I R U S O servidor de mail detectou um VIRUS no seu mail para "copiajrl". Por esse motivo, o email no foi entregue no destino! Dever verificar se o seu sistema est infectado com VIRUS. Para mais informao ou suporte tcnico, contacte os servios tcnicos. ------------------------- BEGIN HEADERS ----------------------------- Return-Path: Received: from biomoby.org (ca-crlsca-cuda2-c7c-36.crlsca.adelphia.net [24.52.153.36]) by mail.uportu.pt (8.11.6/8.8.7) with ESMTP id i1AFlZn25423 for ; Tue, 10 Feb 2004 15:47:36 GMT Message-Id: <200402101547.i1AFlZn25423 at mail.uportu.pt> From: moby-guts at biomoby.org To: jrl at upt.pt Subject: hello Date: Tue, 10 Feb 2004 07:39:44 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_8882F26C.70CB2033" X-Priority: 3 X-MSMail-Priority: Normal X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/) -------------------------- END HEADERS ------------------------------ From bob at art.umass.edu Tue Feb 10 21:41:58 2004 From: bob at art.umass.edu (bob@art.umass.edu) Date: Tue, 10 Feb 2004 18:41:58 -0800 Subject: [MOBY-guts] test Message-ID: <200402110247.i1B2lv6I019071@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: readme.zip Type: application/octet-stream Size: 22648 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-guts/attachments/20040210/8dcea01f/readme-0002.obj From mwilkinson at pub.open-bio.org Wed Feb 18 17:23:55 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed, 18 Feb 2004 17:23:55 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402182223.i1IMNtNS012777@pub.open-bio.org> mwilkinson Wed Feb 18 17:23:55 EST 2004 Update of /home/repository/moby/moby-live/Perl/MOBY In directory pub.open-bio.org:/tmp/cvs-serv12758/MOBY Modified Files: OntologyServer.pm Log Message: fixing Dave Waddell's bug report. It was a hangover from the case-sensitive LSID days. moby-live/Perl/MOBY OntologyServer.pm,1.32,1.33 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm 2003/12/30 20:03:54 1.32 +++ /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm 2004/02/18 22:23:55 1.33 @@ -179,7 +179,7 @@ } if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where INSTR(object_lsid, ?)"); + $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where object_lsid = ?"); } else { $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where object_type = ?"); } @@ -326,7 +326,7 @@ return (0, "requires both term and ontology arguments\n",'') unless (defined($term) && defined($ont)); my $sth; if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where INSTR(relationship_lsid,?) and ontology=?"); + $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where relationship_lsid = ? and ontology=?"); } else { $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where relationship_type = ? and ontology=?"); } @@ -433,7 +433,7 @@ my $sth; if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where INSTR(service_lsid, ?)"); + $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where service_lsid = ?"); } else { $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where service_type = ?"); } @@ -545,7 +545,7 @@ } if ($term =~ /^urn:lsid:biomoby.org:namespacetype/){ - $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where INSTR(namespace_lsid, ?)"); + $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where namespace_lsid = ?"); } else { $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where namespace_type = ?"); } From mwilkinson at pub.open-bio.org Mon Feb 23 16:31:53 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 23 Feb 2004 16:31:53 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402232131.i1NLVrO3007550@pub.open-bio.org> mwilkinson Mon Feb 23 16:31:53 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv7531/Services Modified Files: LocalServices.pm Log Message: updating my services to remove illegal whitespace from objects that inherit from a primitive. Will send a note about this to the mailing list with further comment moby-live/Perl/scripts/Services LocalServices.pm,1.61,1.62 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:17:04 1.61 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/23 21:31:53 1.62 @@ -92,10 +92,10 @@ my ($caller, $data) = @_; my $MOBY_RESPONSE; my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) - return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); # invalid - return empty my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! - return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; # invalid - return empty foreach (@inputs){ my ($articleType, $qID, $input) = @{$_}; @@ -118,7 +118,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -153,7 +152,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -187,7 +185,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -222,7 +219,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -257,7 +253,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -295,7 +290,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -333,7 +327,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -367,7 +360,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -401,7 +393,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -428,7 +419,6 @@ $parent && ($MOBY_RESPONSE .= simpleResponse("", "", $qID)); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -453,13 +443,12 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $name = SHoundGetTaxNameFromTaxID($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($name); - $name && ($MOBY_RESPONSE .= simpleResponse(" - - - $name", "", $qID)); + $name && ($MOBY_RESPONSE .= simpleResponse("". + "". + "". + "$name", "", $qID)); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -668,22 +657,22 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } else { my $gi = SHoundFindName($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } } @@ -916,22 +905,22 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } else { my $gi = SHoundFindName($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } } @@ -991,11 +980,11 @@ if ($res->is_success) { # if successful, then base64 encide the data my $image_data = encode_base64($res->content); # and create the simple image object # push @simples, "$image_data"; # push it onto the collection list - push @simples, qq{ - - - $image_data$picdesc - }; + push @simples, "". + "". + "". + "$image_data$picdesc". + ""; } # no else } } From mwilkinson at pub.open-bio.org Wed Feb 25 11:36:05 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed, 25 Feb 2004 11:36:05 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402251636.i1PGa5sF015507@pub.open-bio.org> mwilkinson Wed Feb 25 11:36:05 EST 2004 Update of /home/repository/moby/moby-live/Perl/MOBY/Client In directory pub.open-bio.org:/tmp/cvs-serv15488/MOBY/Client Modified Files: Central.pm Log Message: fixed bug to allow Namespaces without descriptions, as we have imported some of these from the latest GO xref abbs document moby-live/Perl/MOBY/Client Central.pm,1.71,1.72 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm,v retrieving revision 1.71 retrieving revision 1.72 diff -u -r1.71 -r1.72 --- /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm 2004/01/08 18:59:48 1.71 +++ /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm 2004/02/25 16:36:04 1.72 @@ -1231,7 +1231,8 @@ my $ns = $namesp->item($x)->getAttributeNode('name')->getValue; my $desc; for my $elem($namesp->item($x)->getElementsByTagName('Description')){ - $desc = $elem->getFirstChild->toString; + $desc = $elem->getFirstChild; + $desc = $desc?$desc->toString:""; } $namespaces{$ns} = $desc; } @@ -1396,6 +1397,13 @@ @lsids = @$lsids; $self->ISA_CACHE($lsid1, [@lsids]); $self->ISA_CACHE($class1, [@lsids]); + my @hold = @lsids; + while (shift @hold){ + $self->ISA_CACHE($_, [@hold]); + if ($_ =~ /^urn:lsid:biomoby.org.\w+\.(\S+)/){ + $self->ISA_CACHE($1, [@lsids]); + } + } } foreach (@lsids){ return 1 if $_ eq $lsid2; @@ -1508,15 +1516,16 @@ sub ObjLSID { my ($self, $term) = @_; return undef unless $term; - if (my $lsid = $self->LSID_CACHE($term)){ + my $lsid; + if ($lsid = $self->LSID_CACHE($term)){ return $lsid; } else { my $os = MOBY::Client::OntologyServer->new; - my ($s, $m, $lsid) = $os->objectExists(term => $term); - if ($lsid){ - $self->LSID_CACHE($term, $lsid); # link both the term - $self->LSID_CACHE($lsid, $lsid); # and the lsid to itself - return $lsid + my ($s, $m, $tlsid) = $os->objectExists(term => $term); + if ($tlsid){ + $self->LSID_CACHE($term, $tlsid); # link both the term + $self->LSID_CACHE($tlsid, $tlsid); # and the lsid to itself + return $tlsid } else { return undef } From mwilkinson at pub.open-bio.org Wed Feb 25 18:10:11 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed, 25 Feb 2004 18:10:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402252310.i1PNABF0016788@pub.open-bio.org> mwilkinson Wed Feb 25 18:10:11 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts In directory pub.open-bio.org:/tmp/cvs-serv16769 Modified Files: debugYourService Log Message: reformatting the output of debugYourService, and fixing the example to be clear that we should not be passing identifiers that are prefixed with the namespace moby-live/Perl/scripts debugYourService,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/debugYourService,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/scripts/debugYourService 2003/11/12 16:12:47 1.1 +++ /home/repository/moby/moby-live/Perl/scripts/debugYourService 2004/02/25 23:10:11 1.2 @@ -24,7 +24,7 @@ contents of goObject file: - + =cut @@ -46,5 +46,5 @@ $S = MOBY::Client::Service->new(service => $wsdl); $result = $S->execute(XMLinputlist => [["", $object]]); -print $result; +print "\n\n\n\n$result\n\n"; From urcdv at jvzioj.everymakeup.info Sun Feb 1 15:53:43 2004 From: urcdv at jvzioj.everymakeup.info (Kathryn) Date: Sun, 1 Feb 2004 08:53:43 -0700 Subject: [MOBY-guts] Fountain of Youth Secret for your Face! In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From chien at csusm.edu Wed Feb 4 21:19:34 2004 From: chien at csusm.edu (chien at csusm.edu) Date: Wed, 4 Feb 2004 13:19:34 -0800 Subject: [MOBY-guts] Hi Message-ID: <200402042125.i14LPiHH026226@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22644 bytes Desc: not available URL: From mtod at vmei.acad.bg Thu Feb 5 03:07:47 2004 From: mtod at vmei.acad.bg (mtod at vmei.acad.bg) Date: Wed, 4 Feb 2004 19:07:47 -0800 Subject: [MOBY-guts] test Message-ID: <200402050313.i153DvHH028919@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22792 bytes Desc: not available URL: From brent at csusm.edu Thu Feb 5 06:48:18 2004 From: brent at csusm.edu (brent at csusm.edu) Date: Wed, 4 Feb 2004 22:48:18 -0800 Subject: [MOBY-guts] Error Message-ID: <200402050654.i156sSHH030941@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: body.zip Type: application/octet-stream Size: 22644 bytes Desc: not available URL: From g.ramel at earthlife.net Fri Feb 6 03:09:21 2004 From: g.ramel at earthlife.net (g.ramel at earthlife.net) Date: Thu, 5 Feb 2004 19:09:21 -0800 Subject: [MOBY-guts] Hi Message-ID: <200402060315.i163FUHH011054@portal.open-bio.org> test -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22790 bytes Desc: not available URL: From iqconfguarantee at infoimpact.com Fri Feb 6 08:39:49 2004 From: iqconfguarantee at infoimpact.com (iqconfguarantee at infoimpact.com) Date: Fri, 6 Feb 2004 00:39:49 -0800 Subject: [MOBY-guts] Mail Delivery System Message-ID: <200402060845.i168jvHH014180@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22792 bytes Desc: not available URL: From matt at quadrasys.com Fri Feb 6 22:01:09 2004 From: matt at quadrasys.com (matt at quadrasys.com) Date: Fri, 6 Feb 2004 14:01:09 -0800 Subject: [MOBY-guts] Hello Message-ID: <200402062207.i16M7HHH022656@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22790 bytes Desc: not available URL: From windsor at unt.edu Sat Feb 7 01:40:04 2004 From: windsor at unt.edu (windsor at unt.edu) Date: Fri, 6 Feb 2004 17:40:04 -0800 Subject: [MOBY-guts] HI Message-ID: <200402070146.i171kCHH024540@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: text.zip Type: application/octet-stream Size: 22644 bytes Desc: not available URL: From jchang at csusm.edu Sat Feb 7 18:33:07 2004 From: jchang at csusm.edu (jchang at csusm.edu) Date: Sat, 7 Feb 2004 10:33:07 -0800 Subject: [MOBY-guts] (no subject) Message-ID: <200402071839.i17IdFHH032327@portal.open-bio.org> ??-) ??C?2??37Z???C?)??/????j?p?f?9NqkTFL????????)?$?W4UnxH????K????-???????)?\FP??_W?0 ???P??f4???-z?.4??N???H??????t???!?hU????mr????UD?d4???A?8S???/?y(? 9??W????!3??r?t,$???T??`???)??:? ?~?v???9???O????2U??;???cl?GP3`s??6??m#?F~3??????{?{??h`$???$??(??(??W????GJ6????????-????eq?7f???r*tN???&????z`?b??)?CTT?S?0???m ??C????I?l>`lS?w??'0W5*F??97{~`?J??????j?"?????T?X ?U |?Gz????a?PC5??go????S????5???O?S??tf???~1s ??|???F?1?5if?c???;.0S35?B]??n?7?.m)?A????98k???pB??x? ??u1_??{Ee?S????????s?n%???c[s9?S?mcSR|??P??t?r?C???6???qQC???d?p?c?\?]O???k???r???????????????A?Y???R???$~zC?-N??c?$???<6"????Eyi?? ?????????X??,N???~??p$?R?O????Q?e?g"?YtY$s?yvwc;j?X??xe?????h_0O? w ?9?As?\? From debby at iasted.org Sun Feb 8 00:08:59 2004 From: debby at iasted.org (debby at iasted.org) Date: Sat, 7 Feb 2004 16:08:59 -0800 Subject: [MOBY-guts] (no subject) Message-ID: <200402080015.i180ExHH005107@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: file.zip Type: application/octet-stream Size: 22792 bytes Desc: not available URL: From jweigt at csusm.edu Sun Feb 8 06:49:35 2004 From: jweigt at csusm.edu (jweigt at csusm.edu) Date: Sat, 7 Feb 2004 22:49:35 -0800 Subject: [MOBY-guts] hi Message-ID: <200402080655.i186tZHH008344@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: document.zip Type: application/octet-stream Size: 22652 bytes Desc: not available URL: From jcesar at inf.uc3m.es Sun Feb 8 16:38:18 2004 From: jcesar at inf.uc3m.es (jcesar at inf.uc3m.es) Date: Sun, 8 Feb 2004 08:38:18 -0800 Subject: [MOBY-guts] hi Message-ID: <200402081644.i18GiJHH017843@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: data.zip Type: application/octet-stream Size: 22792 bytes Desc: not available URL: From rappaportg at bishops.com Mon Feb 9 18:57:43 2004 From: rappaportg at bishops.com (rappaportg at bishops.com) Date: Mon, 9 Feb 2004 10:57:43 -0800 Subject: [MOBY-guts] Status Message-ID: <200402091903.i19J3h6I002325@portal.open-bio.org> -------------- next part -------------- A non-text attachment was scrubbed... Name: message.zip Type: application/octet-stream Size: 22650 bytes Desc: not available URL: From mwilkinson at pub.open-bio.org Mon Feb 9 21:45:44 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 16:45:44 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092145.i19LjirA001399@pub.open-bio.org> mwilkinson Mon Feb 9 16:45:44 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1380/Perl/scripts/Services Modified Files: LocalServices.pm Log Message: Darn Pedantic Rebecca caught me breaking the API. She's right, the last change I made to my services caused them all to return an empty block instead of an empty block in the result of an invalid service call. They should all now be fixed and behaving properly. Added a new service to return all of the GI's for a given taxon ID. moby-live/Perl/scripts/Services LocalServices.pm,1.54,1.55 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/01/18 04:00:25 1.54 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 21:45:44 1.55 @@ -88,6 +88,41 @@ ################################################## ################################################## + +sub getSHoundProteinsFromTaxID { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundProteinsFromTaxID($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + sub getTaxChildNodes { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; @@ -105,9 +140,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= collectionResponse([], "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); my $children = SHoundGetTaxChildNodes($identifier); - $MOBY_RESPONSE .= collectionResponse([], "nothing_found", $qID) unless ($children); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($children); my @children = split ",", $children; my @simples; foreach my $taxon (@children){ @@ -139,9 +174,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= simpleResponse("", "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $parent = SHoundGetTaxParent($identifier); - $MOBY_RESPONSE .= simpleResponse("", "nothing_found", $qID) unless ($parent); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($parent); $parent && ($MOBY_RESPONSE .= simpleResponse("", "", $qID)); } } @@ -167,9 +202,9 @@ } else { my $namespace = getSimpleArticleNamespaceURI($input); my ($identifier) = getSimpleArticleIDs($input); # note array output! - $MOBY_RESPONSE .= simpleResponse("", "wrong_namespace", $qID) unless ($namespace eq $validNS); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $name = SHoundGetTaxNameFromTaxID($identifier); - $MOBY_RESPONSE .= simpleResponse("", "nothing_found", $qID) unless ($name); + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($name); $name && ($MOBY_RESPONSE .= simpleResponse(" @@ -195,14 +230,14 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= simpleResponse("", "Collection_Article_Not_allowed_as_input", $ID); + $MOBY_RESPONSE .= simpleResponse("", "", $ID); next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= simpleResponse("", "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($accession) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; unless (defined($accession)){ - $MOBY_RESPONSE .= simpleResponse("", "Invalid_Accession", $ID); + $MOBY_RESPONSE .= simpleResponse("", "", $ID); next; } unless ($accession =~/^GO:/){ @@ -217,7 +252,7 @@ $def ", "GO_Term_From_ID", $ID) } else { - $MOBY_RESPONSE .= simpleResponse("", "NO_Term_Found", $ID) + $MOBY_RESPONSE .= simpleResponse("", "", $ID) } } } @@ -261,14 +296,14 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= collectionResponse([], "Collection_Article_Input_Invalid", $ID) ; + $MOBY_RESPONSE .= collectionResponse([], "", $ID) ; next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= $MOBY_RESPONSE .= collectionResponse([], "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= $MOBY_RESPONSE .= collectionResponse([], "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($acc) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; unless (defined($acc)){ - $MOBY_RESPONSE .= collectionResponse([], "Invalid_Accession", $ID); + $MOBY_RESPONSE .= collectionResponse([], "", $ID); next; } unless ($acc =~/^GO:/){ @@ -316,13 +351,13 @@ foreach (@inputs){ my ($articleType, $ID, $input) = @{$_}; unless ($articleType == SIMPLE){ - $MOBY_RESPONSE .= collectionResponse([], "Collection_Input_Invalid", $ID) ; + $MOBY_RESPONSE .= collectionResponse([], "", $ID) ; next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= collectionResponse([], "Invalid_Namespace", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces + (($MOBY_RESPONSE .= collectionResponse([], "", $ID)) && (next)) unless validateThisNamespace($ns, @validNS); # only do this if you are truly validating namespaces my ($kw) = defined(getSimpleArticleIDs($ns, [$input]))?getSimpleArticleIDs($ns,[$input]):undef; - ($MOBY_RESPONSE .= collectionResponse([], "No_Keyword", $ID) && (next)) unless defined $kw; + ($MOBY_RESPONSE .= collectionResponse([], "", $ID) && (next)) unless defined $kw; ($kw) = (($kw =~ /^\s*(.*)\s*$/) && ($1)); my @terms = @{$GO_API->get_terms({search=>"$kw"})}; next unless($terms[0]); @@ -373,18 +408,18 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my $gb = SHoundGetGenBankff($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse("", "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -393,9 +428,9 @@ "", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -454,9 +489,9 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my ($SEQ, $length, $seq) = _makeSeqObj($identifier); @@ -471,9 +506,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse, "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $tempresponse = "\n\n"; if ($taxon){ $tempresponse .="\n"} @@ -487,9 +522,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse,"", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $tempresponse = "\n\n"; if ($taxon){ $tempresponse .="\n"} @@ -535,14 +570,14 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my ($SEQ, $length, $seq) = _makeSeqObj($identifier); my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my $tempresponse = "<$objType namespace='NCBI_gi' id='$identifier'>\n"; if ($taxon){ $tempresponse .="\n"} if ($kw){$tempresponse .="\n"} @@ -554,9 +589,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse, "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; my $tempresponse = "<$objType namespace='NCBI_gi' id='$gi'>\n\n"; @@ -572,9 +607,9 @@ $MOBY_RESPONSE .= simpleResponse($tempresponse,"", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my ($SEQ, $length, $seq) = _makeSeqObj($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $SEQ; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $SEQ; my ($acc, $kw, $taxon) = _getXrefs($SEQ); my $objType = $objtype{$SEQ->alphabet}; my $tempresponse = "<$objType namespace='NCBI_gi' id='$gi'>\n\n"; @@ -620,19 +655,19 @@ next; } else { my $ns = getSimpleArticleNamespaceURI($input); - (($MOBY_RESPONSE .= simpleResponse("", "Invalid_Namespace", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless validateThisNamespace($ns, values(%validNS)); # return blank if they have sent us a namespace we don't understand my ($identifier) = getSimpleArticleIDs($input); - (($MOBY_RESPONSE .= simpleResponse("", "No_Identifier_provided", $qID)) && next) unless $identifier; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $identifier; if ($ns eq $validNS{'NCBI_gi'}){ # gi numbers are used natively by SeqHound my $gb = SHoundGetFasta($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse("", "", $qID); } elsif (($ns eq $validNS{'NCBI_Acc'}) || ($ns eq $validNS{'EMBL'})){ my $gi = SHoundFindAcc($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" @@ -641,9 +676,9 @@ "", $qID); } else { my $gi = SHoundFindName($identifier); - (($MOBY_RESPONSE .= simpleResponse("", "No_gi_found_for_accession", $qID)) && next) unless $gi; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); - (($MOBY_RESPONSE .= simpleResponse("", "No_genbank_record_found", $qID)) && next) unless $gb; + (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; $MOBY_RESPONSE .= simpleResponse(" From mwilkinson at pub.open-bio.org Mon Feb 9 22:11:10 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 17:11:10 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092211.i19MBA3R001553@pub.open-bio.org> mwilkinson Mon Feb 9 17:11:10 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1534/Services Modified Files: LocalServices.pm Log Message: added a DNA sequence retrieval service from taxon ID using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.55,1.56 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 21:45:44 1.55 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:11:10 1.56 @@ -3,7 +3,6 @@ use lib "/var/www/cgi-bin"; use lib "/usr/local/apache/cgi-bin/bioperl/core"; -use lib "/usr/local/apache/cgi-bin/MOBY05/"; use lib "/export/home/root/BIOPERL/perl-api"; use strict; @@ -89,6 +88,41 @@ ################################################## +sub getSHoundDNAFromTaxID { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundDNAFromTaxID($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundProteinsFromTaxID { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 22:59:34 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 17:59:34 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092259.i19MxYGo001710@pub.open-bio.org> mwilkinson Mon Feb 9 17:59:34 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1691/Services Modified Files: LocalServices.pm Log Message: added a DNA/Protein sequence retrieval service for genbank genomes from taxon ID using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.56,1.57 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:11:10 1.56 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:59:34 1.57 @@ -157,6 +157,75 @@ return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } +sub getSHoundProteinsFromOrganism { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundProteinsFromOrganism($identifier,1); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + +sub getSHoundDNAFromOrganism { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundDNAFromOrganism($identifier,1); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + sub getTaxChildNodes { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 23:16:23 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 18:16:23 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092316.i19NGNkK001805@pub.open-bio.org> mwilkinson Mon Feb 9 18:16:23 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1786/Services Modified Files: LocalServices.pm Log Message: added a get sequence neighbours service with default cutoff values (yes, I'm too lazy to write a service that allows secondary parameters when we haven't yet written any client code that can provide them) using SeqHound. moby-live/Perl/scripts/Services LocalServices.pm,1.57,1.58 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 22:59:34 1.57 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:16:23 1.58 @@ -192,6 +192,41 @@ } +sub getSHoundNeighboursFromGi { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("NCBI_gi"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHoundNeighboursFromGi($identifier,0.01,'FALSE'); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Mon Feb 9 23:27:34 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 18:27:34 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402092327.i19NRYWa001888@pub.open-bio.org> mwilkinson Mon Feb 9 18:27:34 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv1869/Services Modified Files: LocalServices.pm Log Message: added a get 3D Sequence Neighbours: Retrieves a list of protein BLAST neighbours possessing 3-D structure. Uses redundancy information for the query protein. The BLAST protein neighbours were calculated using 0.01 maximum E-value cutoff. moby-live/Perl/scripts/Services LocalServices.pm,1.58,1.59 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:16:23 1.58 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:27:34 1.59 @@ -227,6 +227,41 @@ } +sub getSHound3DNeighboursFromGi { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("NCBI_gi"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $proteinGIs = SHound3DNeighboursFromGi($identifier,0.01); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($proteinGIs); + my @proteinGIs = split ",", $proteinGIs; + my @simples; + foreach my $gi (@proteinGIs){ + next unless $gi; + $gi =~ s/\s//g; + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + + sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; my $MOBY_RESPONSE; From mwilkinson at pub.open-bio.org Tue Feb 10 01:10:45 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 20:10:45 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402100110.i1A1Aj0J002119@pub.open-bio.org> mwilkinson Mon Feb 9 20:10:45 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv2100/Services Modified Files: LocalServices.pm Log Message: added two GO traversal routines - get parents and get children moby-live/Perl/scripts/Services LocalServices.pm,1.59,1.60 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/09 23:27:34 1.59 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:10:45 1.60 @@ -261,6 +261,81 @@ return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } +sub getSHoundGODBGetParentOf { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("GO"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + # GO id's should not, but sometimes may begin with the GO: namespace... get rid of this, and the leading 0's for SeqHound + $identifier =~ s/^GO://; + $identifier =~ s/^0+//; + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $GOs = SHoundGODBGetParentOf($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); + my @GOs = split ",", $GOs; + my @simples; + foreach my $go (@GOs){ + next unless $go; + $go =~ s/\s//g; + my $goacc = sprintf("%07d", $go); + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} + +sub getSHoundGODBGetChildrenOf { # WORKS + my ($caller, $data) = @_; + my $MOBY_RESPONSE; + my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + + my ($validNS) = validateNamespaces("GO"); # ONLY do this if you are intending to be namespace aware! + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + + foreach (@inputs){ + my ($articleType, $qID, $input) = @{$_}; + unless (($articleType == SIMPLE) && ($input) ){ + $MOBY_RESPONSE .= collectionResponse([], "", $qID) ; + next; + } else { + my $namespace = getSimpleArticleNamespaceURI($input); + my ($identifier) = getSimpleArticleIDs($input); # note array output! + # GO id's should not, but sometimes may begin with the GO: namespace... get rid of this, and the leading 0's for SeqHound + $identifier =~ s/^GO://; + $identifier =~ s/^0+//; + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); + my $GOs = getSHoundGODBGetChildrenOf($identifier); + (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); + my @GOs = split ",", $GOs; + my @simples; + foreach my $go (@GOs){ + next unless $go; + $go =~ s/\s//g; + my $goacc = sprintf("%07d", $go); + push @simples, ""; + } + $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); + } + } + print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); +} sub getSHoundDNAFromOrganism { # WORKS my ($caller, $data) = @_; From mwilkinson at pub.open-bio.org Tue Feb 10 01:17:05 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 9 Feb 2004 20:17:05 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402100117.i1A1H5L6002190@pub.open-bio.org> mwilkinson Mon Feb 9 20:17:04 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv2171/Services Modified Files: LocalServices.pm Log Message: added two GO traversal routines - get parents and get children moby-live/Perl/scripts/Services LocalServices.pm,1.60,1.61 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:10:45 1.60 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:17:04 1.61 @@ -320,7 +320,7 @@ $identifier =~ s/^GO://; $identifier =~ s/^0+//; (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($namespace eq $validNS); - my $GOs = getSHoundGODBGetChildrenOf($identifier); + my $GOs = SHoundGODBGetChildrenOf($identifier); (($MOBY_RESPONSE .= collectionResponse([], "", $qID)) && next) unless ($GOs); my @GOs = split ",", $GOs; my @simples; From i2Postal1 at postal.i2.com Tue Feb 10 04:25:15 2004 From: i2Postal1 at postal.i2.com (i2Postal1 at postal.i2.com) Date: Mon, 9 Feb 2004 22:25:15 -0600 Subject: [MOBY-guts] Report to Sender Message-ID: Incident Information:- Database: c:/lotus/domino/data/mail1.box Originator: moby-guts at biomoby.org Recipients: iwant2know at i2.com Subject: injrxjq Date/Time: 02/09/2004 10:25:08 PM The file attachment doc.zip you sent to the recipients listed above was infected with the W32/Mydoom at MM virus and was not successfully cleaned. From fieldmgr at ncegroup.com Tue Feb 10 04:31:20 2004 From: fieldmgr at ncegroup.com (fieldmgr at ncegroup.com) Date: Mon, 9 Feb 2004 20:31:20 -0800 Subject: [MOBY-guts] hello Message-ID: <200402100437.i1A4bJ6I007095@portal.open-bio.org> ~g???e?K???S0?r^??us]D{????Nz? ?????y??4?fUdK{;?????8?i?????#0v???F?E?|?K#?sM?Z? 1]? ??1??/???o]_?`l;7?L?~ u?,?)?ZY????? r[??????{?P????S???7(?Yg??.U??b??p???x????G|g?BgC?6????eC/o?h?2??????P?-6??z9?D??*?8?'w????R??g???o?x?H?>?? ????3?$??oB???????????Wt/??Wf?d?.u?[? ?m?E??6I;E??K??Zd?????n?]?)}?P8??Yu??.j???????}?Zt?N??R`%2x??)???????q?y?}Z??cR?#????H???e?3n???S?`??q????25?_??(??&?Z? ???x[?d6Yyp?{??? *?h?????XS?D?1??c ?#}6 ??^/?#??]????W??\C??}??g?Y?yM}??Oe?}~?1??#??|{??cT????????N?L`Rm6???.aFh?????V!???}!?L??,;^V???#G&??Q??A????1?P?????q???????????4-'????sn"?x???p?I????3??Ri??0_)?;W6TbX(?????D`?"????0?A?a6???N??w??9?Z????Z?I?Tbgv)??U??c>?A???? ????7V;-$Mp_?RQm??-?dU?"-?8????????Z-L??Y?#n?hMc???????H??A??|p?K??96"?6;?ls? z?????r%3??U??????k???P??M?Th????R??\????QfF :?????|???I\T9???4T??*f?k?S:??Z? From career.center at overture.com Tue Feb 10 12:26:19 2004 From: career.center at overture.com (career.center at overture.com) Date: Tue, 10 Feb 2004 04:26:19 -0800 Subject: [MOBY-guts] Test Message-ID: <200402101232.i1ACWI6I011781@portal.open-bio.org> The message contains Unicode characters and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: doc.zip Type: application/octet-stream Size: 22642 bytes Desc: not available URL: From Mailer-Daemon at secure.cassrv.com Tue Feb 10 14:08:40 2004 From: Mailer-Daemon at secure.cassrv.com (Mail Delivery System) Date: Tue, 10 Feb 2004 09:08:40 -0500 Subject: [MOBY-guts] Mail delivery failed: returning message to sender Message-ID: This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: fail at secure.cassrv.com (generated from kevin at somartists.com) Unrouteable address ------ This is a copy of the message, including all the headers. ------ Return-path: Received: from [24.52.153.36] (helo=biomoby.org) by secure.cassrv.com with esmtp (Exim 4.24) id 1AqYZ5-0008DD-FF for kevin at somartists.com; Tue, 10 Feb 2004 09:08:39 -0500 From: moby-guts at biomoby.org To: kevin at somartists.com Subject: Mail Transaction Failed Date: Tue, 10 Feb 2004 06:08:37 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0009_CE90E3AC.1F42206D" X-Priority: 3 X-MSMail-Priority: Normal Message-Id: This is a multi-part message in MIME format. ------=_NextPart_000_0009_CE90E3AC.1F42206D Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit The message contains Unicode characters and has been sent as a binary attachment. ------=_NextPart_000_0009_CE90E3AC.1F42206D Content-Type: application/octet-stream; name="data.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="data.zip" UEsDBAoAAAAAABJxSjCwFOBrAlgAAAJYAABSAAAAZGF0YS5odG0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNjck1a kAADAAAABAAAAP//AAC4AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBFAABM AQMAAAAAAAAAAAAAAAAA4AAPAQsBBwAAUAAAABAAAABgAABgvgAAAHAAAADAAAAAAEoAABAAAAAC AAAEAAAAAAAAAAQAAAAAAAAAANAAAAAQAAAAAAAAAgAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAA AAAAAAAAAAAA6MEAADABAAAAwAAA6AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAVVBYMAAAAAAAYAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAgAAA4FVQ WDEAAAAAAFAAAABwAAAAUAAAAAQAAAAAAAAAAAAAAAAAAEAAAOAucnNyYwAAAAAQAAAAwAAAAAQA AABUAAAAAAAAAAAAAAAAAABAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADEuMjQAVVBYIQwJAglIfomP1DYcgSmWAABTTgAAAIAAACYBAMXuhwKS AFAmSgBAA/2yaZosEAT0JegBAEvOaZpu2R/IKsADuLCopmmapqCYkIiAmqZpmnhwaGBYUM1gn2lI AEQHODA0TdN0AygkHBgQ0yy71wgjA/gp8OhN0zRN4NjQyLy0NE3TNKyknJSMzjZN04h8cGgpb1ym 6ZrBB1RMA0Q4mqZpmiwkHBQMBGmazm38KH8D9OzkpmmaptzUzMi8mqZpmrSspKCYkGebpmmMgHhw KHto3mzTdQdcA1RMKP/7C3a2++NADzQo9ywvA5qmGfkkKEocFAwEaZrO7Jv8JwPs6OCmaZqm2NTM yMCapmm6uCewrKigmGmapmmUjIiEfKRpmqZ0bGRcVGmaphtMA0RAODCmaZqmKCAYEAiapnObAPgm zwPo4Nhnm85tVDRDA0A0NNuK/////51a0Nrl9AYfM05sck7YApdfksgBPXy+Q0uW5DWJ4DqX//// //dawCmVBHbrY95c3WHocv+PIrhR7Ywu03sm1A058Kpn/////yfqsHlFFOa7k25MLRH44s+/sqih nZyeo6u2xNXpABo3/////1d6oMn1JFaLw/48fcEIUp/vQpjxTawOc9tGtCWZEIoH/////4cKkBml paj+8sPSqPgSLEprj7bgDT1wpt8bWnzhJ1XJ/////xJgvhhl1TieF3PiVIlBvJrjP8ZQjW0Alk/L agyxQ3qy/////3MXzohHBciKVyPyxJlxTC4L79bArZ2Qhg97enyRiZSi/////7PH3voVNVh+p8MC NHmh3Bpbj+Ywbc0gds8rivxRuSSS/////wN37mjlZehul4ODdoyVobDC1+8KKEltlL7rG06Evfk4 /////3q/B1Kg8UVsllOzGnzlUcAypx+aGJkdpC67S950DalI/////+qPN+KQQfWsZiPjpmw1AdCi d08qCOnNtJ6Le25kXVlY/////1pfZ3KAkaW81vMTNlyFseASR3+6+Dl9xA5bq/5UrQk9/////5p3 pwJw4VXMBsNDxlzVYWFkanN/jKC1zegGJ0tynMn5/////yxim1cWWH2wYCb+I3rUMZHkWsMvzhCF /XT2d/uADJkp/////7xS64cmyG0VwG4fk4pE4ZTUEiHfroBVLRjmx6vyfGlZ/////05COzc4OD1F UF5vg5q00fEUOmPPvvDlbLbkI1v3vGGo/////9A7ie5zPGP4meDFS5EXoSHeIrM/P1RIUXtvftbP 2W6V/9/+/ykDI+mUCb/m86VBEKZ8MmlrgCELLcdO0hCCbPn/////c6d33hSHBwf7UqoBYcAsm/cm lt2XnSJgD0aezf0sQH//////k7LS8QkgWHZoY11QUlFTamR3ASzF71QwvFcRPM6dV27/////IOOt YNrRUhXOZl+3QcAU5GWTn3j+cg2852qVe3sTdnb/////fRwNLfL29LDx0ed5+t1MZaP/J2yM3Qvb jBupvXWHO0//////2xSCQhQJRcyCD/pitylz+xWD5x6TfrQkaSn/vSjL6k7//+3/dw46sL/3VNTs c5gBTQad8qKvwmLz5V433wVxUv////8H+BtAflQ+p6lPLAJ9MMjnBtJUKhprTAGdBPZq+h3HBv+F ///4HZAEq5YABgYQK++Z1E7/F3gLk8b4dSGMpP////9f/8xya+tv/qX97NBByXiR2cSsJsfo4Km3 Gl1v7CkQo/////+88+31b1EhNY3WUxxIKRjjt1w/nbjN0FJV47VD6r5n4/////+goDLizkk6JC8w Co+uhOF1QKFimLL1MErg4/+RgcEnB/////93iGePVLOFCOL+gkWrYY502rsqOK7wStQYnBeKSMK1 vP////+e+x9W5m6Q4DtHs6Aat9KqvMT3k0imAcAE/wYSi12p2P////+9lDH4H+haYz7f1grKQtUM XmBJcvX0rvRTF/wWFfKOmv////9zcDyCseKON1tTFqInlFRYrLE1Nz6qdWWVIW7rGoSBav/////m Chg/OpWfgYLjc6RHPQkC1i6IwqfVP4pc6p9WO189Sv/S///DeV9DCbjwq5rOHrKF2UvB1Dtez9/2 R/lK9//////Y+y20imdi/1itEYwi91vLWN+F/KzgZdrrl5TiYAjvP/////884+x/EI5gft1Nm+Sd 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 1qn//1uiQmyZyfwya6fmKG0gYE6fgyqk3f//X2jELP9u4FXNSMZHaTLcaYHsIrtX9pg9+i/0/+WQ Pu+jWhTRPDQa41RQJf3Ytpd7Yvh/6ResKRwSCwftDRUgLj/rCoShB4T///+30F+OwPX7CKbnK3K8 Cb3MAlu3FnjdVbAeDwN6//////RxujGozUpDISoPaXACYzrS4pSpaXlFib58JYWRVQ7B+Lf+/+0e U7VE7t9o8Ucyln+MHVvIJal81Saz//9btIDStQRigm4ciuRMot0AUbml6S7/f4vGS3CHVzwnaXto iZWigJ3m6/OJ/9/4239tWwwL+YPoESOe3wtGhGgxUJrnN4r//w3+4DmV9Fa7I9pt4VjST89S2GHt 7fD2/wsa//8v/SxBWXSSs5koVYW47idjouQpcbwKW68GYL0d/xZf6oDmT46cEYkEuocOmCW1SN7/ ////dxOyVPmhTPqrXxbQjU0Q1p9rOgzhuZRyUzceCPXl2M7/hf7/x8PCxMnR3Or7DyZAXX2gTxtK fLHpJGKj/wL//+cueMUVaL4Xc9I0mQFs2ksAsC2tMLY/y///jf7LztTd6fgKQFJwkbXcBjNjlswF QYDCB0//Uv//mug5jeQ+m/texC2ZCHrvZ1PhZex2A5Mm/l/q/7xV8ZAy138q2Ik96Gsr7rR9SRjq v5dy6P//l8AV/ObTw7aspaGgoqevusjZ7QQeO1v1//9fQc35KFqPxyhzeW5jLmMsdiAwLjEgMjAw NP0j22+TMS94eCACOiBhbmR5KQB7uwUbzAItDAAFHAA5Cc4Q/5kPAQAQAAkAEtcDByF++2Z1dnp0 TXYucXl5N0Zi/b/7/3Nnam5lclxadnBlYmYNXEp2YXFiamZcUGhlf/n/vxdhZ0lyZWZ2YmFcUmtj eWJlcmVielF5dDO3+C3YMlwZQ2pyb0Z2a0Z6ur/99mdrRjBTZ25meHoXLnJrcgBHC1orNAX2I2dF eZeW//a/bm90ZXBhZCAlcwtNZXNzYWdlACwl+5jbD3USBS4ydToEim57zxQGAy8tPyv7b/9vQ2Vj AE5vdgBPY3QAU00AQXVnAEp1bAO2udutblNheQ9wcgcDRpC3v122E2FTYSdGcmkAVGhEV2X2zt22 ZAd1c01vFy9hYmNkn/vCb/9naGlqa2xtnHBxcnN0Tnd4eXpn9v//f0FCQ0RFRkdISUpLTE1OT1BR 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 AACIiIgAAAAACId3d3iAAAB4//+Ih3AAAHj3j///eAAAeP////94AAB493d4/3gAAHj/////eAAA ePd3eP94AAB4/////3gAAHj3d4//eAAAeP////94AAB4/////3gAAHh/f39/eAAAh3OHh4eAAAAH szt7d4AAAAAAAACAAADwPwAA4AcAAMAHAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMA AMADAADAAwAAwAcAAOAHAAD/3wAA2JEAAAAAAQABABAQEAABAAQAKAEAAAEAAAAAAAAAAAAAAAAA kMIAAGDCAAAAAAAAAAAAAAAAAACdwgAAcMIAAAAAAAAAAAAAAAAAAKrCAAB4wgAAAAAAAAAAAAAA AAAAtcIAAIDCAAAAAAAAAAAAAAAAAADAwgAAiMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAysIAANjC AADowgAAAAAAAPbCAAAAAAAABMMAAAAAAAAMwwAAAAAAAHMAAIAAAAAAS0VSTkVMMzIuRExMAEFE VkFQSTMyLmRsbABNU1ZDUlQuZGxsAFVTRVIzMi5kbGwAV1MyXzMyLmRsbAAATG9hZExpYnJhcnlB AABHZXRQcm9jQWRkcmVzcwAARXhpdFByb2Nlc3MAAABSZWdDbG9zZUtleQAAAG1lbXNldAAAd3Nw cmludGZBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAD//1BLAQIUAAoAAAAAABJxSjCwFOBrAlgAAAJYAABSAAAAAAAAAAAAIAAAAAAA AABkYXRhLmh0bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuc2NyUEsFBgAAAAABAAEAgAAAAHJYAAAAAA== ------=_NextPart_000_0009_CE90E3AC.1F42206D-- From postmaster at ebi.ac.uk Tue Feb 10 15:29:46 2004 From: postmaster at ebi.ac.uk (MailScanner) Date: Tue, 10 Feb 2004 15:29:46 GMT Subject: [MOBY-guts] Warning: E-mail containing attachment(s) blocked Message-ID: <200402101529.i1AFTkD24935@maui.ebi.ac.uk> Our MailScanner has blocked a message that you sent:- To: ebisrs at ebi.ac.uk Subject: Hi Date: Tue Feb 10 15:29:46 2004 This is because it contains one or more attachments that we do not allow. Please rename any attachments to be in the form: filename.clean and resend the message (don't forget to tell the recipient the attachment type). If you have not actually sent this email it is possible that it has been forged (so that it appeared to be from you). MailScanner Report: (text.zip) -- MailScanner Email Virus Scanner www.mailscanner.info From postmaster at mail.uportu.pt Tue Feb 10 15:47:38 2004 From: postmaster at mail.uportu.pt (postmaster at mail.uportu.pt) Date: Tue, 10 Feb 2004 15:47:38 GMT Subject: [MOBY-guts] VIRUS NO SEU MAIL PARA jrl Message-ID: <200402101547.i1AFlc725673@mail.uportu.pt> A L E R T A D E V I R U S O servidor de mail detectou um VIRUS no seu mail para "jrl". Por esse motivo, o email n?o foi entregue no destino! Dever? verificar se o seu sistema est? infectado com VIRUS. Para mais informa??o ou suporte t?cnico, contacte os servi?os t?cnicos. ------------------------- BEGIN HEADERS ----------------------------- Return-Path: Received: from biomoby.org (ca-crlsca-cuda2-c7c-36.crlsca.adelphia.net [24.52.153.36]) by mail.uportu.pt (8.11.6/8.8.7) with ESMTP id i1AFlZn25423 for ; Tue, 10 Feb 2004 15:47:36 GMT Message-Id: <200402101547.i1AFlZn25423 at mail.uportu.pt> From: moby-guts at biomoby.org To: jrl at upt.pt Subject: hello Date: Tue, 10 Feb 2004 07:39:44 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_8882F26C.70CB2033" X-Priority: 3 X-MSMail-Priority: Normal X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/) -------------------------- END HEADERS ------------------------------ From postmaster at mail.uportu.pt Tue Feb 10 15:47:40 2004 From: postmaster at mail.uportu.pt (postmaster at mail.uportu.pt) Date: Tue, 10 Feb 2004 15:47:40 GMT Subject: [MOBY-guts] VIRUS NO SEU MAIL PARA copiajrl Message-ID: <200402101547.i1AFleM25935@mail.uportu.pt> A L E R T A D E V I R U S O servidor de mail detectou um VIRUS no seu mail para "copiajrl". Por esse motivo, o email n?o foi entregue no destino! Dever? verificar se o seu sistema est? infectado com VIRUS. Para mais informa??o ou suporte t?cnico, contacte os servi?os t?cnicos. ------------------------- BEGIN HEADERS ----------------------------- Return-Path: Received: from biomoby.org (ca-crlsca-cuda2-c7c-36.crlsca.adelphia.net [24.52.153.36]) by mail.uportu.pt (8.11.6/8.8.7) with ESMTP id i1AFlZn25423 for ; Tue, 10 Feb 2004 15:47:36 GMT Message-Id: <200402101547.i1AFlZn25423 at mail.uportu.pt> From: moby-guts at biomoby.org To: jrl at upt.pt Subject: hello Date: Tue, 10 Feb 2004 07:39:44 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0012_8882F26C.70CB2033" X-Priority: 3 X-MSMail-Priority: Normal X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/) -------------------------- END HEADERS ------------------------------ From bob at art.umass.edu Wed Feb 11 02:41:58 2004 From: bob at art.umass.edu (bob at art.umass.edu) Date: Tue, 10 Feb 2004 18:41:58 -0800 Subject: [MOBY-guts] test Message-ID: <200402110247.i1B2lv6I019071@portal.open-bio.org> The message cannot be represented in 7-bit ASCII encoding and has been sent as a binary attachment. -------------- next part -------------- A non-text attachment was scrubbed... Name: readme.zip Type: application/octet-stream Size: 22648 bytes Desc: not available URL: From mwilkinson at pub.open-bio.org Wed Feb 18 22:23:55 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed, 18 Feb 2004 17:23:55 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402182223.i1IMNtNS012777@pub.open-bio.org> mwilkinson Wed Feb 18 17:23:55 EST 2004 Update of /home/repository/moby/moby-live/Perl/MOBY In directory pub.open-bio.org:/tmp/cvs-serv12758/MOBY Modified Files: OntologyServer.pm Log Message: fixing Dave Waddell's bug report. It was a hangover from the case-sensitive LSID days. moby-live/Perl/MOBY OntologyServer.pm,1.32,1.33 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm 2003/12/30 20:03:54 1.32 +++ /home/repository/moby/moby-live/Perl/MOBY/OntologyServer.pm 2004/02/18 22:23:55 1.33 @@ -179,7 +179,7 @@ } if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where INSTR(object_lsid, ?)"); + $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where object_lsid = ?"); } else { $sth = $self->dbh->prepare("select object_lsid, object_type, description, authority, contact_email from object where object_type = ?"); } @@ -326,7 +326,7 @@ return (0, "requires both term and ontology arguments\n",'') unless (defined($term) && defined($ont)); my $sth; if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where INSTR(relationship_lsid,?) and ontology=?"); + $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where relationship_lsid = ? and ontology=?"); } else { $sth = $self->dbh->prepare("select relationship_lsid, relationship_type, description, authority, contact_email from relationship where relationship_type = ? and ontology=?"); } @@ -433,7 +433,7 @@ my $sth; if ($term =~ /^urn\:lsid/){ - $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where INSTR(service_lsid, ?)"); + $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where service_lsid = ?"); } else { $sth = $self->dbh->prepare("select service_id, service_type, service_lsid, description, authority, contact_email from service where service_type = ?"); } @@ -545,7 +545,7 @@ } if ($term =~ /^urn:lsid:biomoby.org:namespacetype/){ - $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where INSTR(namespace_lsid, ?)"); + $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where namespace_lsid = ?"); } else { $sth = $self->dbh->prepare("select namespace_id, namespace_type, namespace_lsid,description, authority, contact_email from namespace where namespace_type = ?"); } From mwilkinson at pub.open-bio.org Mon Feb 23 21:31:53 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Mon, 23 Feb 2004 16:31:53 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402232131.i1NLVrO3007550@pub.open-bio.org> mwilkinson Mon Feb 23 16:31:53 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts/Services In directory pub.open-bio.org:/tmp/cvs-serv7531/Services Modified Files: LocalServices.pm Log Message: updating my services to remove illegal whitespace from objects that inherit from a primitive. Will send a note about this to the mailing list with further comment moby-live/Perl/scripts/Services LocalServices.pm,1.61,1.62 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/10 01:17:04 1.61 +++ /home/repository/moby/moby-live/Perl/scripts/Services/LocalServices.pm 2004/02/23 21:31:53 1.62 @@ -92,10 +92,10 @@ my ($caller, $data) = @_; my $MOBY_RESPONSE; my (@inputs)= genericServiceInputParser($data); # ([SIMPLE, $queryID, $simple],...) - return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); + return SOAP::Data->type('base64' => responseHeader("illuminae.com") . responseFooter()) unless (scalar(@inputs)); # invalid - return empty my ($validNS) = validateNamespaces("taxon"); # ONLY do this if you are intending to be namespace aware! - return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; + return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . responseFooter)) unless $validNS; # invalid - return empty foreach (@inputs){ my ($articleType, $qID, $input) = @{$_}; @@ -118,7 +118,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -153,7 +152,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -187,7 +185,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -222,7 +219,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -257,7 +253,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -295,7 +290,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -333,7 +327,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -367,7 +360,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -401,7 +393,6 @@ $MOBY_RESPONSE .= collectionResponse(\@simples, "", $qID); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -428,7 +419,6 @@ $parent && ($MOBY_RESPONSE .= simpleResponse("", "", $qID)); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -453,13 +443,12 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($namespace eq $validNS); my $name = SHoundGetTaxNameFromTaxID($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless ($name); - $name && ($MOBY_RESPONSE .= simpleResponse(" - - - $name", "", $qID)); + $name && ($MOBY_RESPONSE .= simpleResponse("". + "". + "". + "$name", "", $qID)); } } - print STDERR responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter; return SOAP::Data->type('base64' => (responseHeader("illuminae.com") . $MOBY_RESPONSE . responseFooter)); } @@ -668,22 +657,22 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } else { my $gi = SHoundFindName($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetGenBankff($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } } @@ -916,22 +905,22 @@ (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } else { my $gi = SHoundFindName($identifier); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gi; my $gb = SHoundGetFasta($gi); (($MOBY_RESPONSE .= simpleResponse("", "", $qID)) && next) unless $gb; - $MOBY_RESPONSE .= simpleResponse(" - - - - ", + $MOBY_RESPONSE .= simpleResponse("". + "". + "". + "". + "", "", $qID); } } @@ -991,11 +980,11 @@ if ($res->is_success) { # if successful, then base64 encide the data my $image_data = encode_base64($res->content); # and create the simple image object # push @simples, "$image_data"; # push it onto the collection list - push @simples, qq{ - - - $image_data$picdesc - }; + push @simples, "". + "". + "". + "$image_data$picdesc". + ""; } # no else } } From mwilkinson at pub.open-bio.org Wed Feb 25 16:36:05 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed, 25 Feb 2004 11:36:05 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402251636.i1PGa5sF015507@pub.open-bio.org> mwilkinson Wed Feb 25 11:36:05 EST 2004 Update of /home/repository/moby/moby-live/Perl/MOBY/Client In directory pub.open-bio.org:/tmp/cvs-serv15488/MOBY/Client Modified Files: Central.pm Log Message: fixed bug to allow Namespaces without descriptions, as we have imported some of these from the latest GO xref abbs document moby-live/Perl/MOBY/Client Central.pm,1.71,1.72 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm,v retrieving revision 1.71 retrieving revision 1.72 diff -u -r1.71 -r1.72 --- /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm 2004/01/08 18:59:48 1.71 +++ /home/repository/moby/moby-live/Perl/MOBY/Client/Central.pm 2004/02/25 16:36:04 1.72 @@ -1231,7 +1231,8 @@ my $ns = $namesp->item($x)->getAttributeNode('name')->getValue; my $desc; for my $elem($namesp->item($x)->getElementsByTagName('Description')){ - $desc = $elem->getFirstChild->toString; + $desc = $elem->getFirstChild; + $desc = $desc?$desc->toString:""; } $namespaces{$ns} = $desc; } @@ -1396,6 +1397,13 @@ @lsids = @$lsids; $self->ISA_CACHE($lsid1, [@lsids]); $self->ISA_CACHE($class1, [@lsids]); + my @hold = @lsids; + while (shift @hold){ + $self->ISA_CACHE($_, [@hold]); + if ($_ =~ /^urn:lsid:biomoby.org.\w+\.(\S+)/){ + $self->ISA_CACHE($1, [@lsids]); + } + } } foreach (@lsids){ return 1 if $_ eq $lsid2; @@ -1508,15 +1516,16 @@ sub ObjLSID { my ($self, $term) = @_; return undef unless $term; - if (my $lsid = $self->LSID_CACHE($term)){ + my $lsid; + if ($lsid = $self->LSID_CACHE($term)){ return $lsid; } else { my $os = MOBY::Client::OntologyServer->new; - my ($s, $m, $lsid) = $os->objectExists(term => $term); - if ($lsid){ - $self->LSID_CACHE($term, $lsid); # link both the term - $self->LSID_CACHE($lsid, $lsid); # and the lsid to itself - return $lsid + my ($s, $m, $tlsid) = $os->objectExists(term => $term); + if ($tlsid){ + $self->LSID_CACHE($term, $tlsid); # link both the term + $self->LSID_CACHE($tlsid, $tlsid); # and the lsid to itself + return $tlsid } else { return undef } From mwilkinson at pub.open-bio.org Wed Feb 25 23:10:11 2004 From: mwilkinson at pub.open-bio.org (Mark Wilkinson) Date: Wed, 25 Feb 2004 18:10:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200402252310.i1PNABF0016788@pub.open-bio.org> mwilkinson Wed Feb 25 18:10:11 EST 2004 Update of /home/repository/moby/moby-live/Perl/scripts In directory pub.open-bio.org:/tmp/cvs-serv16769 Modified Files: debugYourService Log Message: reformatting the output of debugYourService, and fixing the example to be clear that we should not be passing identifiers that are prefixed with the namespace moby-live/Perl/scripts debugYourService,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/debugYourService,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/scripts/debugYourService 2003/11/12 16:12:47 1.1 +++ /home/repository/moby/moby-live/Perl/scripts/debugYourService 2004/02/25 23:10:11 1.2 @@ -24,7 +24,7 @@ contents of goObject file: - + =cut @@ -46,5 +46,5 @@ $S = MOBY::Client::Service->new(service => $wsdl); $result = $S->execute(XMLinputlist => [["", $object]]); -print $result; +print "\n\n\n\n$result\n\n";