You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(18) |
Aug
(33) |
Sep
(30) |
Oct
(27) |
Nov
(59) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(67) |
Feb
(44) |
Mar
(70) |
Apr
(73) |
May
(119) |
Jun
(31) |
Jul
(92) |
Aug
(86) |
Sep
(76) |
Oct
(152) |
Nov
(156) |
Dec
(85) |
2008 |
Jan
(111) |
Feb
(121) |
Mar
(107) |
Apr
(102) |
May
(45) |
Jun
(65) |
Jul
(62) |
Aug
(133) |
Sep
(56) |
Oct
(56) |
Nov
(17) |
Dec
(15) |
2009 |
Jan
(10) |
Feb
(5) |
Mar
(10) |
Apr
(14) |
May
(49) |
Jun
(94) |
Jul
(67) |
Aug
(23) |
Sep
(9) |
Oct
(92) |
Nov
(26) |
Dec
(51) |
2010 |
Jan
(105) |
Feb
(83) |
Mar
(52) |
Apr
(59) |
May
(68) |
Jun
(71) |
Jul
(127) |
Aug
(49) |
Sep
(91) |
Oct
(27) |
Nov
(33) |
Dec
(26) |
2011 |
Jan
(26) |
Feb
(45) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(15) |
Jul
(45) |
Aug
(33) |
Sep
(50) |
Oct
(22) |
Nov
(10) |
Dec
(21) |
2012 |
Jan
(33) |
Feb
(24) |
Mar
(36) |
Apr
(60) |
May
(60) |
Jun
(43) |
Jul
(114) |
Aug
(19) |
Sep
(35) |
Oct
(24) |
Nov
(64) |
Dec
(12) |
2013 |
Jan
(54) |
Feb
(58) |
Mar
(51) |
Apr
(46) |
May
(21) |
Jun
(29) |
Jul
(25) |
Aug
(25) |
Sep
(13) |
Oct
(7) |
Nov
(14) |
Dec
(27) |
2014 |
Jan
(10) |
Feb
(7) |
Mar
(16) |
Apr
(14) |
May
(19) |
Jun
(8) |
Jul
(15) |
Aug
(11) |
Sep
(5) |
Oct
(11) |
Nov
(11) |
Dec
(4) |
2015 |
Jan
(52) |
Feb
(27) |
Mar
(22) |
Apr
(17) |
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(2) |
Oct
|
Nov
(2) |
Dec
|
2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(3) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
(2) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(4) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: <nl...@us...> - 2007-04-30 21:02:38
|
Revision: 518 http://svn.sourceforge.net/obo/?rev=518&view=rev Author: nlw Date: 2007-04-30 14:02:40 -0700 (Mon, 30 Apr 2007) Log Message: ----------- adding class file Added Paths: ----------- phenote/trunk/doc/phenote-website/IRCApplet.class Added: phenote/trunk/doc/phenote-website/IRCApplet.class =================================================================== (Binary files differ) Property changes on: phenote/trunk/doc/phenote-website/IRCApplet.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-30 20:58:52
|
Revision: 517 http://svn.sourceforge.net/obo/?rev=517&view=rev Author: nlw Date: 2007-04-30 13:58:53 -0700 (Mon, 30 Apr 2007) Log Message: ----------- removed comment from page Modified Paths: -------------- phenote/trunk/doc/phenote-website/irc_script.js Modified: phenote/trunk/doc/phenote-website/irc_script.js =================================================================== --- phenote/trunk/doc/phenote-website/irc_script.js 2007-04-30 20:54:09 UTC (rev 516) +++ phenote/trunk/doc/phenote-website/irc_script.js 2007-04-30 20:58:53 UTC (rev 517) @@ -13,7 +13,7 @@ vncwindow = null; } - // vcnwindow = window.open("http://frizzled.lbl.gov:5801", "VNC", "status=no,width=1100,height=800"); + vcnwindow = window.open("http://frizzled.lbl.gov:5801", "VNC", "status=no,width=1100,height=800"); ircwindow = window.open("about:blank", "My window", "scrollbars=no,status=no,width=510,height=430"); var html = ""; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-30 20:54:09
|
Revision: 516 http://svn.sourceforge.net/obo/?rev=516&view=rev Author: nlw Date: 2007-04-30 13:54:09 -0700 (Mon, 30 Apr 2007) Log Message: ----------- adding an irc_chat instruction page, along with the applicable js Added Paths: ----------- phenote/trunk/doc/phenote-website/irc_chat.shtml phenote/trunk/doc/phenote-website/irc_script.js Added: phenote/trunk/doc/phenote-website/irc_chat.shtml =================================================================== --- phenote/trunk/doc/phenote-website/irc_chat.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/irc_chat.shtml 2007-04-30 20:54:09 UTC (rev 516) @@ -0,0 +1,36 @@ +<!--#include virtual="/ssi/header.html" --> + <script language="JavaScript" src="/irc_script.js"><!-- --></script> +<div id="page_body"> + +<!--#include virtual="/ssi/navi_home.html" --> + +<div id="main_content"> +<h2>Phenote Working Group IRC Chat</h2> + +When: First Tuesday of every month; 8:30am <br/> + +<p>You will need an IRC client to visit our chats. You can download any number of free clients to do this. You'll need to connect to the <b>irc.sf.net</b> and join the <b>#phenote</b> channel. </p> + +<p>Alternatively, you can connect to the Phenote IRC chat using the applet at the bottom of this page. </p> + + <form method="post" name="launcher"> + <table style="text-align: left; margin-left: auto; margin-right: auto; width: 524px; height: 84px;" width="100%"> +<tbody> + <tr> + <td colspan="1" rowspan="1" width="156">IRC Nickname</td> + <td style="width: 327px;"><input size="40" name="username"></td> + </tr> + <tr> + <td colspan="2" rowspan="1" style="height: 25px; color: rgb(0, 0, 0); text-align: center; width: 327px;"><input name="appletbutton" value="Start Applets" style="color: rgb(0, 0, 0); "onclick="startApplets()" type="button"><br> + </td> + </tr> + +</tbody> +</table> +</form> + +</div> +</div> + +<!--#include virtual="/ssi/footer.shtml" --> + Added: phenote/trunk/doc/phenote-website/irc_script.js =================================================================== --- phenote/trunk/doc/phenote-website/irc_script.js (rev 0) +++ phenote/trunk/doc/phenote-website/irc_script.js 2007-04-30 20:54:09 UTC (rev 516) @@ -0,0 +1,37 @@ +var ircwindow = null; +var vncwindow = null; + +function startApplets() { + + if (ircwindow != null) { + ircwindow.close(); + ircwindow = null; + } + + if (vncwindow != null) { + vncwindow.close(); + vncwindow = null; + } + + // vcnwindow = window.open("http://frizzled.lbl.gov:5801", "VNC", "status=no,width=1100,height=800"); + ircwindow = window.open("about:blank", "My window", "scrollbars=no,status=no,width=510,height=430"); + + var html = ""; + + html += "<html><body>\n"; + html += "<applet code=\"IRCApplet.class\" archive=\"irc.jar,pixx.jar\" width=475 height=400>\n"; + html += "<param name=\"CABINETS\" value=\"irc.cab,securedirc.cab,pixx.cab\">\n"; + html += "<param name=\"nick\" value='"+document.forms["launcher"].username.value+"'>\n"; + html += "<param name=\"fullname\" value='"+document.forms["launcher"].username.value+"'>\n"; + + html += "<param name=\"alternatenick\" value=\"Anon???\">\n"; + html += "<param name=\"host\" value=\"irc.sf.net\">\n"; + html += "<param name=\"command1\" value=\"/join #phenote\">\n"; + html += "<param name=\"gui\" value=\"pixx\">\n"; + html += "</applet>\n"; + html += "</body></html>"; + +// alert(html); + ircwindow.document.writeln(html); + ircwindow.document.close(); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-04-30 18:10:20
|
Revision: 515 http://svn.sourceforge.net/obo/?rev=515&view=rev Author: cmungall Date: 2007-04-30 11:10:18 -0700 (Mon, 30 Apr 2007) Log Message: ----------- Modified Paths: -------------- phenote/trunk/conf/go-function-process.cfg Added Paths: ----------- phenote/trunk/conf/so-xp.cfg phenote/trunk/doc/phenote-website/phenote-so-xp.jnlp Modified: phenote/trunk/conf/go-function-process.cfg =================================================================== --- phenote/trunk/conf/go-function-process.cfg 2007-04-30 17:48:45 UTC (rev 514) +++ phenote/trunk/conf/go-function-process.cfg 2007-04-30 18:10:18 UTC (rev 515) @@ -13,10 +13,10 @@ <obo-repository url-dir="http://purl.org/obo/obo-all/"/> - <field name="T1" syntax-abbrev="Term"> + <field name="BP" syntax-abbrev="Term"> <ontology name="GO-BP" file="biological_process.obo" repos-subdir="biological_process" /> </field> - <field name="T2" syntax-abbrev="Xref"> + <field name="MF" syntax-abbrev="Xref"> <ontology name="GO-MF" file="molecular_function.obo" repos-subdir="molecular_function" /> </field> <field name="Context" syntax-abbrev="Context" type="free_text"/> Added: phenote/trunk/conf/so-xp.cfg =================================================================== --- phenote/trunk/conf/so-xp.cfg (rev 0) +++ phenote/trunk/conf/so-xp.cfg 2007-04-30 18:10:18 UTC (rev 515) @@ -0,0 +1,21 @@ + +<phenote-configuration version="1.0" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> + + <dataadapter name="phenosyntax" enable="true"/> + <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> + + <log config-file="conf/log4j-standalone.xml" /> + + <uvic-graph enable="false"/> + + <obo-repository url-dir="http://purl.org/obo/obo-all/"/> + + <field name="Term" syntax-abbrev="Term"> + <ontology name="SO" file="sequence.obo" repos-subdir="sequence" /> + </field> + <field name="EquivalentTo" syntax-abbrev="EquivalentTo"> + <postcomp relationship-ontology="relationship.obo" repos-subdir="OBO_REL"/> + <ontology name="SO" file="sequence.obo" repos-subdir="sequence" /> + </field> + +</phenote-configuration> Added: phenote/trunk/doc/phenote-website/phenote-so-xp.jnlp =================================================================== --- phenote/trunk/doc/phenote-website/phenote-so-xp.jnlp (rev 0) +++ phenote/trunk/doc/phenote-website/phenote-so-xp.jnlp 2007-04-30 18:10:18 UTC (rev 515) @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jnlp +spec="1.0+" +codebase="http://www.berkeleybop.org/ontologies/phenote/latest/" +href="phenote-so-xp.jnlp"> +<information> + <title>Phenote-for-GO (TEST)</title> + <vendor>National Center for Biomedical Ontology</vendor> + <description>Phenote demo for </description> + <!-- Declares that the application can run without + access to the server it was downloaded from --> + <offline-allowed /> +</information> +<security> + <!-- Request that the application be given full + access to the local (executing) machine, + as if it were a regular Java application. + Requires that all JAR files be signed + by a trusted party --> + <all-permissions /> +</security> +<resources> + <!-- Specify the versions of the Java Runtime Environment + (JRE) that are supported by the application. + Multiple entries of this kind are allowed, in which + case they are considered to be in order of preference --> + <j2se version="1.5+" initial-heap-size="64m" max-heap-size="500m" /> + <jar href="jars/phenote.jar" /> + <jar href="jars/oboedit.jar" /> + <jar href="jars/org.geneontology.jar" /> + <jar href="jars/BrowserLauncher2-10rc4.jar" /> + <jar href="jars/jsr173_1.0_api.jar" /> + <jar href="jars/phenoxmlbeans.jar" /> + <jar href="jars/phenoteconfigbeans.jar" /> + <jar href="jars/xbean.jar" /> + <jar href="jars/tomcat-servlet.jar" /> + <jar href="jars/te-common.jar" /> + <jar href="jars/log4j-1.2.13.jar" /> +</resources> +<application-desc main-class="phenote.main.Phenote"> + <argument>-u</argument> + <argument>/so-xp.cfg</argument> +</application-desc> +</jnlp> + + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-04-30 17:48:49
|
Revision: 514 http://svn.sourceforge.net/obo/?rev=514&view=rev Author: mgibson Date: 2007-04-30 10:48:45 -0700 (Mon, 30 Apr 2007) Log Message: ----------- changed mp-xp to specifies relationship ontologies in new config format Modified Paths: -------------- phenote/trunk/conf/mp-xp.cfg Modified: phenote/trunk/conf/mp-xp.cfg =================================================================== --- phenote/trunk/conf/mp-xp.cfg 2007-04-30 17:38:05 UTC (rev 513) +++ phenote/trunk/conf/mp-xp.cfg 2007-04-30 17:48:45 UTC (rev 514) @@ -19,8 +19,10 @@ <field name="EquivalentTo" syntax-abbrev="EquivalentTo"> <ontology name="PATO" file="quality.obo" repos-subdir="quality" /> <ontology name="MA" file="adult_mouse_anatomy.obo" repos-subdir="adult_mouse_anatomy" /> - <postcomp relationship-ontology="relationship.obo" repos-subdir="OBO_REL"/> - <postcomp relationship-ontology="ro_proposed.obo" repos-subdir="ro_proposed"/> + <ontology name="Relationship" file="relationship.obo" + repos-subdir="OBO_REL" is-postcomp-rel="true"/> + <ontology name="Rel_proposed" file="ro_proposed.obo" + repos-subdir="ro_proposed" is-postcomp-rel="true"/> <ontology name="GO-BP" file="biological_process.obo" repos-subdir="biological_process" /> <ontology name="GO-CC" file="cellular_component.obo" repos-subdir="cellular_component" /> <ontology name="CHEBI" file="chebi.obo" repos-subdir="chebi" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-04-30 17:38:06
|
Revision: 513 http://svn.sourceforge.net/obo/?rev=513&view=rev Author: mgibson Date: 2007-04-30 10:38:05 -0700 (Mon, 30 Apr 2007) Log Message: ----------- so if a file load fails all hell was breaking loose exceptions were flying in gui for empty table - for selecting something not there - thats now checked for character list manager now checks if its getting an empty list and tosses it if so and puts up error msg same with load save manager and tells what data adapter was attempted so actually if user doesnt specify what data adapter to use and the suffix fails to map (like .pheno) then just uses first file data adapter literally 1st listed in config so i changed configs to put tab delimited first as that seems to be the best default - there should be a config for default file adapter rather than just 1st one also now putting up a message of what data adapter is being used if user hasnt specified a data adapter and the suffix doesnt map to a dataadapter Modified Paths: -------------- phenote/trunk/conf/demo.cfg phenote/trunk/conf/flybase.cfg phenote/trunk/conf/go-function-process.cfg phenote/trunk/conf/mp-xp.cfg phenote/trunk/conf/ncbo.cfg phenote/trunk/conf/nicole.cfg phenote/trunk/conf/worm.cfg phenote/trunk/conf/zfin-standalone.cfg phenote/trunk/jars/oboedit.jar phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java phenote/trunk/src/java/phenote/dataadapter/LoadSaveManager.java phenote/trunk/src/java/phenote/datamodel/CharacterList.java phenote/trunk/src/java/phenote/datamodel/CharacterListI.java phenote/trunk/src/java/phenote/gui/CharacterTablePanel.java phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java Modified: phenote/trunk/conf/demo.cfg =================================================================== --- phenote/trunk/conf/demo.cfg 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/conf/demo.cfg 2007-04-30 17:38:05 UTC (rev 513) @@ -2,11 +2,11 @@ <ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> <ns:log config-file="conf/log4j-standalone.xml"/> - <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> + <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/> - <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> + <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> Modified: phenote/trunk/conf/flybase.cfg =================================================================== --- phenote/trunk/conf/flybase.cfg 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/conf/flybase.cfg 2007-04-30 17:38:05 UTC (rev 513) @@ -1,11 +1,11 @@ <phenote-configuration version="1.1.3" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> + <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" + enable="true"/> <dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="false"/> <dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/> - <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" - enable="true"/> <log config-file="conf/log4j-standalone.xml" /> Modified: phenote/trunk/conf/go-function-process.cfg =================================================================== --- phenote/trunk/conf/go-function-process.cfg 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/conf/go-function-process.cfg 2007-04-30 17:38:05 UTC (rev 513) @@ -1,9 +1,9 @@ <phenote-configuration version="1.2" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> + <dataadapter name="delimited" enable="true"/> <dataadapter name="phenosyntax" enable="true"/> <dataadapter name="phenoxml" enable="true"/> - <dataadapter name="delimited" enable="true"/> <log config-file="conf/log4j-standalone.xml" /> Modified: phenote/trunk/conf/mp-xp.cfg =================================================================== --- phenote/trunk/conf/mp-xp.cfg 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/conf/mp-xp.cfg 2007-04-30 17:38:05 UTC (rev 513) @@ -1,9 +1,9 @@ <phenote-configuration version="1.2" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> + <dataadapter name="delimited" enable="true"/> <dataadapter name="phenosyntax" enable="true"/> <dataadapter name="phenoxml" enable="true"/> - <dataadapter name="delimited" enable="true"/> <log config-file="conf/log4j-standalone.xml" /> Modified: phenote/trunk/conf/ncbo.cfg =================================================================== --- phenote/trunk/conf/ncbo.cfg 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/conf/ncbo.cfg 2007-04-30 17:38:05 UTC (rev 513) @@ -1,10 +1,11 @@ <?xml version="1.2beta1" encoding="UTF-8"?> <ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> <ns:log config-file="conf/log4j-standalone.xml"/> - <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> + + <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/> - <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> + <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> Modified: phenote/trunk/conf/nicole.cfg =================================================================== --- phenote/trunk/conf/nicole.cfg 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/conf/nicole.cfg 2007-04-30 17:38:05 UTC (rev 513) @@ -1,10 +1,14 @@ <?xml version="1.2beta1" encoding="UTF-8"?> <ns:phenote-configuration version="1.1.2b" xmlns:ns="phenote/config/xml"> <ns:log config-file="conf/log4j-standalone.xml"/> - <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> + + <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" + enable="true"/> + <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" + enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/> - <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> + <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> Modified: phenote/trunk/conf/worm.cfg =================================================================== --- phenote/trunk/conf/worm.cfg 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/conf/worm.cfg 2007-04-30 17:38:05 UTC (rev 513) @@ -1,9 +1,9 @@ <phenote-configuration version="1.1.1" xmlns="phenote/config/xml" xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance" schemaLocation="phenote-config.xsd"> + <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> <dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/> - <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/> <queryable-dataadapter name="phenote.dataadapter.worm.WormAdapter" enable="true"/> Modified: phenote/trunk/conf/zfin-standalone.cfg =================================================================== --- phenote/trunk/conf/zfin-standalone.cfg 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/conf/zfin-standalone.cfg 2007-04-30 17:38:05 UTC (rev 513) @@ -1,10 +1,15 @@ <?xml version="1.2beta1" encoding="UTF-8"?> <ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> <ns:log config-file="conf/log4j-standalone.xml"/> - <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> + + + <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" + enable="true"/> + <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" + enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/> - <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> + <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> Modified: phenote/trunk/jars/oboedit.jar =================================================================== (Binary files differ) Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-04-30 17:38:05 UTC (rev 513) @@ -326,9 +326,11 @@ // return hasDataAdapters() && dataAdapConfList.size() == 1; // } - /** LoadSaveMangr uses if no extension works */ - public DataAdapterI getSingleDataAdapter() { + /** LoadSaveMangr uses if no extension works. Returns null if no data adapters loaded + Otherwise returns 1st enabled adapter. Todo: add isdefault config */ + public DataAdapterI getDefaultFileAdapter() { if (!hasDataAdapters()) return null; // ex? + // if defaultFileAdapter != null retrun defaultFileAdapter - set by config for (DataAdapterConfig d : dataAdapConfList) if (d.isEnabled()) return d.getDataAdapter(); //return dataAdapConfList.get(0); Modified: phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java 2007-04-30 17:38:05 UTC (rev 513) @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.List; +import javax.swing.JOptionPane; + import phenote.datamodel.CharacterListI; import phenote.datamodel.CharacterList; @@ -26,6 +28,12 @@ } public void setCharacterList(Object source, CharacterListI charList) { + if (charList == null || charList.isEmpty()) { + String m = "Data list is empty, load of data failed"; + // should this send message to gui? + JOptionPane.showMessageDialog(null,m,"Load failure",JOptionPane.ERROR_MESSAGE); + return; + } characterList = charList; fireChangeEvent(source,charList); } Modified: phenote/trunk/src/java/phenote/dataadapter/LoadSaveManager.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/LoadSaveManager.java 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/src/java/phenote/dataadapter/LoadSaveManager.java 2007-04-30 17:38:05 UTC (rev 513) @@ -4,6 +4,7 @@ import java.util.List; import java.lang.ClassNotFoundException; import javax.swing.JFileChooser; +import javax.swing.JOptionPane; import javax.swing.filechooser.FileFilter; import phenote.dataadapter.DataAdapterI; @@ -67,7 +68,15 @@ /**Loads a new document of characters from the given file using the given data adapter.*/ public void loadData(File f, DataAdapterI adapter) { CharacterListI charList = adapter.load(f); - CharacterListManager.inst().setCharacterList(this,charList); + if (charList == null || charList.isEmpty()) { + String m = "Failed to load in data for file "+f+" using data adapter " + +adapter.getDescription(); + JOptionPane.showMessageDialog(null,m,"Load failure",JOptionPane.ERROR_MESSAGE); + return; + } + else { + CharacterListManager.inst().setCharacterList(this,charList); + } } /**Saves the document's characters to a file, prompting the user to choose a file and data adapter.*/ @@ -132,7 +141,12 @@ } } // just try first adapter if none match extension - return Config.inst().getSingleDataAdapter(); + DataAdapterI da = Config.inst().getDefaultFileAdapter(); + String m = "Data adapter has not been specified, and file suffix does not map to any" + +" data adapter, using default/first data adapter: "+da.getDescription(); + JOptionPane.showMessageDialog(null,m,"No data adapter specified", + JOptionPane.INFORMATION_MESSAGE); + return da; } Modified: phenote/trunk/src/java/phenote/datamodel/CharacterList.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharacterList.java 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/src/java/phenote/datamodel/CharacterList.java 2007-04-30 17:38:05 UTC (rev 513) @@ -30,6 +30,7 @@ public void remove(int i) { characterList.remove(i); } public void remove(CharacterI c) { characterList.remove(c); } public int size() { return characterList.size(); } + public boolean isEmpty() { return characterList.isEmpty(); } public int indexOf(CharacterI c) { return characterList.indexOf(c); } public List<CharacterI> getList() { return characterList; } Modified: phenote/trunk/src/java/phenote/datamodel/CharacterListI.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharacterListI.java 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/src/java/phenote/datamodel/CharacterListI.java 2007-04-30 17:38:05 UTC (rev 513) @@ -14,6 +14,7 @@ public void remove(int i); public void remove(CharacterI c); public int size(); + public boolean isEmpty(); public int indexOf(CharacterI c); public List<CharacterI> getList(); public boolean equals(CharacterListI cl); Modified: phenote/trunk/src/java/phenote/gui/CharacterTablePanel.java =================================================================== --- phenote/trunk/src/java/phenote/gui/CharacterTablePanel.java 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/src/java/phenote/gui/CharacterTablePanel.java 2007-04-30 17:38:05 UTC (rev 513) @@ -153,6 +153,7 @@ /** row number is zero based for tables */ private void selectRow(int row) { if (charJTable == null) return; + if (charJTable.getRowCount() == 0) return; if (row < 0) row = 0; // ??? // is row 0 based and table 1 based? if (row >= charJTable.getRowCount()) row = charJTable.getRowCount() - 1; Modified: phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-04-27 22:17:33 UTC (rev 512) +++ phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-04-30 17:38:05 UTC (rev 513) @@ -496,6 +496,7 @@ setGuiForMultiSelect(); return; } + if (e.getChars() == null || e.getChars().isEmpty()) return; updateGuiOnly = true; // selection should not cause an edit/transaction! setValueFromChar(e.getChars().get(0)); updateGuiOnly = false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-04-27 22:17:31
|
Revision: 512 http://svn.sourceforge.net/obo/?rev=512&view=rev Author: cmungall Date: 2007-04-27 15:17:33 -0700 (Fri, 27 Apr 2007) Log Message: ----------- uses additional relations Modified Paths: -------------- phenote/trunk/conf/mp-xp.cfg Modified: phenote/trunk/conf/mp-xp.cfg =================================================================== --- phenote/trunk/conf/mp-xp.cfg 2007-04-27 22:03:17 UTC (rev 511) +++ phenote/trunk/conf/mp-xp.cfg 2007-04-27 22:17:33 UTC (rev 512) @@ -20,6 +20,7 @@ <ontology name="PATO" file="quality.obo" repos-subdir="quality" /> <ontology name="MA" file="adult_mouse_anatomy.obo" repos-subdir="adult_mouse_anatomy" /> <postcomp relationship-ontology="relationship.obo" repos-subdir="OBO_REL"/> + <postcomp relationship-ontology="ro_proposed.obo" repos-subdir="ro_proposed"/> <ontology name="GO-BP" file="biological_process.obo" repos-subdir="biological_process" /> <ontology name="GO-CC" file="cellular_component.obo" repos-subdir="cellular_component" /> <ontology name="CHEBI" file="chebi.obo" repos-subdir="chebi" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-27 22:03:17
|
Revision: 511 http://svn.sourceforge.net/obo/?rev=511&view=rev Author: nlw Date: 2007-04-27 15:03:17 -0700 (Fri, 27 Apr 2007) Log Message: ----------- more edits to it Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/software/index.shtml Modified: phenote/trunk/doc/phenote-website/content/software/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/software/index.shtml 2007-04-27 21:59:40 UTC (rev 510) +++ phenote/trunk/doc/phenote-website/content/software/index.shtml 2007-04-27 22:03:17 UTC (rev 511) @@ -37,10 +37,10 @@ Note that this version has not been fully tested and might contain bugs. Please report any bugs you find on our <a href="https://sourceforge.net/tracker/?group_id=76834&atid=887913">tracker</a> </p> <p> -The most up-to-date version of phenote can be checked out with subversion using: -svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/trunk phenote +The most up-to-date version of phenote can be checked out with subversion using:<br /> +svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/trunk phenote <br /> -You can also browse the subversion repository at: https://obo.svn.sourceforge.net/viewvc/obo/phenote/ +You can also browse the subversion repository at: <br /> https://obo.svn.sourceforge.net/viewvc/obo/phenote/ </p> <p> For instructions on running Phenote, or downloading the sourcecode, visit our <a href="/content/howtos">How-to pages</a>. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-27 21:59:39
|
Revision: 510 http://svn.sourceforge.net/obo/?rev=510&view=rev Author: nlw Date: 2007-04-27 14:59:40 -0700 (Fri, 27 Apr 2007) Log Message: ----------- edits to fix bad link for downloading from SF Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/software/index.shtml Modified: phenote/trunk/doc/phenote-website/content/software/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/software/index.shtml 2007-04-27 21:36:10 UTC (rev 509) +++ phenote/trunk/doc/phenote-website/content/software/index.shtml 2007-04-27 21:59:40 UTC (rev 510) @@ -8,8 +8,7 @@ <h2>Phenote Software</h2> -<h3><a name="current">Current Release: 1.1</a> [<a href="http://toy.lbl.gov:9010/phenote/1.1/phenote.jnlp">Webstart</a>] [ -<a href="http://obo.svn.sourceforge.net/*checkout*/obo/phenote/tags/release-1.1/">Download</a>]</h3> +<h3><a name="current">Current Release: 1.1</a> [<a href="http://toy.lbl.gov:9010/phenote/1.1/phenote.jnlp">Webstart</a>] </h3> Newest Features: <ul> <li>Can now search ALL ontologies of a field without having to change the pull-down menu</li> @@ -28,13 +27,20 @@ See the <a href="http://www.phenote.org/phenote-release-notes.html">Release Notes</a> for more information or back-versions. </p> +<p> +To download this version with subversion, use the command: +svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/tags/release-1.1/ phenote +</p> + <h3><a name="devel">Development Version</a></h3> +<p> Note that this version has not been fully tested and might contain bugs. Please report any bugs you find on our <a href="https://sourceforge.net/tracker/?group_id=76834&atid=887913">tracker</a> -<ul> -<li><a href="http://toy.lbl.gov:9010/phenote/latest/phenote.jnlp">Phenote-devel</a> -</ul> +</p> <p> -You can also <a href="http://obo.svn.sourceforge.net/*checkout*/obo/phenote/trunk/">checkout</a> the latest Development version of Phenote from sourceforge. +The most up-to-date version of phenote can be checked out with subversion using: +svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/trunk phenote + +You can also browse the subversion repository at: https://obo.svn.sourceforge.net/viewvc/obo/phenote/ </p> <p> For instructions on running Phenote, or downloading the sourcecode, visit our <a href="/content/howtos">How-to pages</a>. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-27 21:36:10
|
Revision: 509 http://svn.sourceforge.net/obo/?rev=509&view=rev Author: nlw Date: 2007-04-27 14:36:10 -0700 (Fri, 27 Apr 2007) Log Message: ----------- changed the language in the licensing information to reflect "NCBO" instead of "BBOP" Modified Paths: -------------- phenote/trunk/README Modified: phenote/trunk/README =================================================================== --- phenote/trunk/README 2007-04-27 17:33:45 UTC (rev 508) +++ phenote/trunk/README 2007-04-27 21:36:10 UTC (rev 509) @@ -14,7 +14,7 @@ disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the BBOP nor the names of its + * Neither the name of the NCBO nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-04-27 17:33:44
|
Revision: 508 http://svn.sourceforge.net/obo/?rev=508&view=rev Author: mgibson Date: 2007-04-27 10:33:45 -0700 (Fri, 27 Apr 2007) Log Message: ----------- Well this is a biggy - a slippery slope so the main thing added here is the ability to parse post comp statements (from a dataadapter/datasource) that have multiple differentia - for this im using obo edits post comp parser - rather than reinvent the wheel in phenote - and these post comps are gonna get more complicated as well - and john set up a nice parser with javacc - however this parser requires that all obo files are in same obo session - that theres just 1 obo session - so phenote had to be refactored for 1 obo session also obo edit wasnt set up for querying ontologies/namespaces within obosessions but john added a query ability to oboedit including a namespace query that can take multiple namespaces (GO has 3 namespaces) also you can now config a namespace in field config - which is far better than my previous filter out of prefix/ids - and the zfin conf has been updated appropriately christian - this breaks updates of obos - ill email you about that Modified Paths: -------------- phenote/trunk/build.xml phenote/trunk/conf/zfin-standalone.cfg phenote/trunk/conf/zfin-web.cfg phenote/trunk/jars/oboedit.jar phenote/trunk/jars/org.geneontology.jar phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/config/FieldConfig.java phenote/trunk/src/java/phenote/config/OntologyConfig.java phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java phenote/trunk/src/java/phenote/dataadapter/nexus/NEXUSAdapter.java phenote/trunk/src/java/phenote/datamodel/CharField.java phenote/trunk/src/java/phenote/datamodel/OboUtil.java phenote/trunk/src/java/phenote/datamodel/Ontology.java phenote/trunk/src/java/phenote/datamodel/OntologyManager.java phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java phenote/trunk/src/java/phenote/gui/field/PostCompGui.java phenote/trunk/src/java/phenote/main/PhenoteVersion.java phenote/trunk/src/java/phenote/util/HtmlUtil.java Modified: phenote/trunk/build.xml =================================================================== --- phenote/trunk/build.xml 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/build.xml 2007-04-27 17:33:45 UTC (rev 508) @@ -73,7 +73,6 @@ </javac> </target> - <!-- runs off classfiles not jar, todo: run-jar --> <target name="run" depends="compile"> <java classname="phenote.main.Phenote" fork="yes" jvmargs="-Xmx500M"> @@ -486,6 +485,26 @@ </target> + <path id="jars-and-oboedit-classes"> + <fileset dir="${lib}"> + <patternset id="non-phenote-jars"> + <include name="**/*.jar"/> + <exclude name="**/phenote.jar"/> + <exclude name="test/**"/> + <exclude name="**/oboedit.jar"/> + <exclude name="**/org.geneontology.jar"/> + </patternset> + </fileset> + <fileset dir="/srv/home/mgibson/phenote/go-dev/java/oboedit/classes"/> + </path> + + <target name="compile-with-oboedit-classes" depends="init"> + <javac srcdir="${src}" destdir="${classfiles}" debug="yes" excludes="test/**"> + <classpath refid="jars-and-oboedit-classes"/> + </javac> + </target> + + </project> Modified: phenote/trunk/conf/zfin-standalone.cfg =================================================================== --- phenote/trunk/conf/zfin-standalone.cfg 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/conf/zfin-standalone.cfg 2007-04-27 17:33:45 UTC (rev 508) @@ -13,24 +13,37 @@ <ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"> <ns:ontology name="Genetic Context" file="context.obo"/> </ns:field> + <ns:field name="Entity" syntax-abbrev="E" enable="true"> - <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> - <ns:ontology name="ZF" file="zebrafish_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" filter-out="ZFS:"/> + <ns:ontology name="Relationship" file="relationship.obo" + repos-subdir="OBO_REL" is-postcomp-rel="true"/> + <ns:ontology name="ZF" file="zebrafish_anatomy.obo" + repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" + namespace="zebrafish_anatomy"/> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> </ns:field> + <ns:field name="Stage" syntax-abbrev="T" enable="true"> - <ns:ontology name="Stage" file="zebrafish_anatomy.obo" filter-out="ZFA:"/> + <ns:ontology name="Stage" file="zebrafish_anatomy.obo" namespace="zebrafish_stages"/> </ns:field> + <ns:field name="Quality" syntax-abbrev="Q" enable="true"> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/> </ns:field> + <ns:field name="Add'l Entity" syntax-abbrev="E2" enable="true"> - <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> - <ns:ontology name="ZF" file="zebrafish_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" filter-out="ZFS:"/> + <ns:ontology name="Relationship" file="relationship.obo" + repos-subdir="OBO_REL" is-postcomp-rel="true"/> + <ns:ontology name="ZF" file="zebrafish_anatomy.obo" + repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" + namespace="zebrafish_anatomy"/> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> </ns:field> + <ns:field name="Abnormal" syntax-abbrev="Tag" enable="true"> <ns:ontology name="Abnormal" file="quality.obo" slim="abnormal_slim"/> </ns:field> + <ns:field name="Description" syntax-abbrev="Desc" enable="true"/> + </ns:phenote-configuration> \ No newline at end of file Modified: phenote/trunk/conf/zfin-web.cfg =================================================================== --- phenote/trunk/conf/zfin-web.cfg 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/conf/zfin-web.cfg 2007-04-27 17:33:45 UTC (rev 508) @@ -1,7 +1,8 @@ <phenote-configuration version="0.8" xmlns="phenote/config/xml"> <field name="Entity"> - <ontology name="ZF" file="../data_transfer/zebrafish_anatomy.obo" filter-out="ZFS:" /> + <ontology name="ZF" file="../data_transfer/zebrafish_anatomy.obo" + namespace="zebrafish_anatomy" /> <ontology name="GO" file="../data_transfer/gene_ontology.obo"/> </field> Modified: phenote/trunk/jars/oboedit.jar =================================================================== (Binary files differ) Modified: phenote/trunk/jars/org.geneontology.jar =================================================================== (Binary files differ) Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-04-27 17:33:45 UTC (rev 508) @@ -375,7 +375,9 @@ return getFieldConfigList().get(index); } - /** OntologyDataAdapter calls this to figure which ontologies to load */ + /** OntologyDataAdapter calls this to figure which ontologies to load + This is a list of enabled fields - does not include disabled fields! + retname getEnabledFieldConfigs? */ public List<FieldConfig> getFieldConfigList() { return enabledFields; } Modified: phenote/trunk/src/java/phenote/config/FieldConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/FieldConfig.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/config/FieldConfig.java 2007-04-27 17:33:45 UTC (rev 508) @@ -158,7 +158,14 @@ public boolean isEnabled() { return enabled; } public void setCharField(CharField cf) { charField = cf; } - CharField getCharField() { return charField; } + + /** Actually creates char field if null, as char fields utimately come from field + configs - so this is funny but its actually not funny */ + public CharField getCharField() { + if (charField == null) + charField = new CharField(getLabel()); + return charField; + } boolean hasCharField(CharField cf) { return charField == cf; } /** create xml bean and add it to phenCfg for writeback */ Modified: phenote/trunk/src/java/phenote/config/OntologyConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-04-27 17:33:45 UTC (rev 508) @@ -12,11 +12,12 @@ public String name; public String ontologyFile; - //public String nameSpace; // not used yet - or was this what filter out ended up + public String namespace; // this should replace filterOut public String filterOut; // public? private String slim; private String reposSubdir; private boolean isPostCompRel = false; + private URL loadUrl; //static OntologyConfig defaultPato = new OntologyConfig("Pato","attribute_and_value.obo"); @@ -63,6 +64,8 @@ OntologyConfig(phenote.config.xml.OntologyDocument.Ontology o, String fieldName) { name = o.getName()!=null ? o.getName() : fieldName; ontologyFile = o.getFile(); + if (o.getNamespace() != null) + namespace = o.getNamespace(); if (o.getFilterOut() != null) filterOut = o.getFilterOut(); slim = o.getSlim()!=null ? o.getSlim() : null; @@ -135,12 +138,20 @@ return ontologyFile != null; } + public boolean hasNamespace() { return namespace != null; } + public String getNamespace() { return namespace; } + public boolean hasFilter() { return filterOut != null; } public String getFilter() { return filterOut; } public boolean hasSlim() { return slim != null; } public String getSlim() { return slim; } + /** The actual url used to load ontology */ + public void setLoadUrl(URL u) { loadUrl = u; } + public URL getLoadUrl() { return loadUrl; } + public boolean hasLoadUrl() { return loadUrl != null; } + public String toString() { return name; } Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-04-27 17:33:45 UTC (rev 508) @@ -29,12 +29,16 @@ import javax.swing.JOptionPane; import org.apache.log4j.Logger; -import org.geneontology.oboedit.datamodel.OBOSession; -import org.geneontology.oboedit.datamodel.impl.OBOSessionImpl; + import org.geneontology.dataadapter.DataAdapterException; import org.geneontology.dataadapter.FileAdapterConfiguration; import org.geneontology.dataadapter.IOOperation; + +import org.geneontology.oboedit.datamodel.Namespace; +import org.geneontology.oboedit.datamodel.OBOSession; +import org.geneontology.oboedit.datamodel.impl.OBOSessionImpl; import org.geneontology.oboedit.dataadapter.OBOFileAdapter; +import org.geneontology.oboedit.dataadapter.OBOMetaData; import phenote.util.FileUtil; import phenote.datamodel.CharField; @@ -57,9 +61,13 @@ private OntologyManager ontologyManager = OntologyManager.inst(); private boolean initializingOntologies = false; private Map<String,Ontology> fileToOntologyCache = new HashMap<String,Ontology>(); + private OBOMetaData adapterMetaData; private static final Logger LOG = Logger.getLogger(OntologyDataAdapter.class); + // does this need to be false for zfin + private static final boolean DO_ONE_OBO_SESSION = true; + private OntologyDataAdapter() { config = Config.inst(); initOntologies(); // loads up all ontologies @@ -80,16 +88,26 @@ getInstance(); } + // public void setDoOneOboSession(boolean doOneOboSession) ?? + private void initOntologies() { // to prevent reload during init , maybe dont need with synchronization? initializingOntologies = true; + + // new paradigm + if (DO_ONE_OBO_SESSION) { + initOntolsOneOboSession(); + } + else { + initOntolsSeparateOboSessions(); + } + initializingOntologies = false; + } + + private void initOntolsSeparateOboSessions() { + // getFieldConfigList gives enabled fields - not disabled for (FieldConfig fieldConfig : config.getFieldConfigList()) { - if (!fieldConfig.isEnabled()) continue; - // this is where char field enums happen - scrap entirely???? -// if (fieldConfig.hasCharFieldEnum()) { -// CharFieldEnum fce = fieldConfig.getCharFieldEnum(); -// cf = new CharField(fce); -// } + if (!fieldConfig.isEnabled()) continue; // not necasary actually CharField cf = new CharField(fieldConfig.getLabel()); fieldConfig.setCharField(cf); @@ -97,7 +115,7 @@ if (fieldConfig.hasOntologies()) { for (OntologyConfig oc : fieldConfig.getOntologyConfigList()) { try { - Ontology o = initOntology(oc); + Ontology o = initOntology(oc); // LOAD OBO SESSION if (oc.isPostCompRel()) { // POST COMP REL ONTOLOGY cf.setPostCompAllowed(true); cf.setPostCompRelOntol(o); @@ -106,37 +124,110 @@ cf.addOntology(o); } } catch (OntologyException e) { - //System.out.println(e.getMessage()+" ignoring ontology, fix config! "); LOG.error(e.getMessage()+" ignoring init ontology, fix config? "+oc); } } } else { + cf.setName(fieldConfig.getLabel()); } + // i think this order needs to be same as config order + ontologyManager.addField(cf); + } + } -// // POST COMP -// if (fieldConfig.isPostComp()) { -// cf.setPostCompAllowed(true); -// try { -// //Ontology o = initRelationshipOntology(fieldConfig.getPostCompRelOntCfg()); -// Ontology o = initOntology(fieldConfig.getPostCompRelOntCfg()); -// cf.setPostCompRelOntol(o); -// } catch (OntologyException e) { -// LOG.error(e.getMessage()+" ignoring ontology, fix config? "); -// } -// } + + private void initOntolsOneOboSession() { + try { + OBOSession os = loadAllOboFilesIntoOneOboSession(); + initCharFields(); + // map namespaces to ontologies? 2 methods? + mapNamespacesToOntologies(os); + // load ontologies from namespaces + } + catch (OntologyException e) { // parse ex - not file not found ex + LOG.error(e.getMessage()+" unable to load ontologies - yikes"); + } + + + } + + + /** new paradigm - rather than one obo session per obo file - have one obo + session for all - this is possible with indexed namespaces for searching + also need to record meta data from load to map obo files to namespaces */ + private OBOSession loadAllOboFilesIntoOneOboSession() throws OntologyException { + // get unique list of obo files + Collection<String> files = new ArrayList<String>(); + for (FieldConfig fieldConfig : config.getFieldConfigList()) { + for (OntologyConfig oc : fieldConfig.getOntologyConfigList()) { + try { + String file = findOboUrlString(oc); // throws oex if not found + files.add(file); + } + catch (OntologyException e) { + LOG.warn(e.getMessage()+" Please check config & obo files"); + } + } + } + // should we have singleOboSession instance var?? or confusing with multi? + OBOSession os = getOboSession(files); + return os; + } + + // create char fields - add to ont manager? or do in mapNamespace? + // should Config actually set OntologyManager up with char fields - maybe this shouldnt + // be ont data adapters responsibility - its just the 1st time that we need it + private void initCharFields() { + for (FieldConfig fieldConfig : config.getFieldConfigList()) { + CharField cf = fieldConfig.getCharField(); // creates char field (if not there) ontologyManager.addField(cf); } - //initRelationshipOntology(); - - initializingOntologies = false; } + /** This actually creates both CharFields and Ontologies and maps namespaces from + obo file adapter meta data */ + private void mapNamespacesToOntologies(OBOSession oboSession) throws OntologyException { + for (FieldConfig fieldConfig : config.getFieldConfigList()) { + CharField cf = fieldConfig.getCharField(); // creates char field (if not there) + // ontology manager.addCF??? + if (fieldConfig.hasOntologies()) { + for (OntologyConfig oc : fieldConfig.getOntologyConfigList()) { + // get namespaces for ont cfg + // if adapterMetaData == null print err? throw ex? return? + if (adapterMetaData == null) + throw new OntologyException("No namespace/meta data for ontologies"); + // i think we need url it was loaded with + if (!oc.hasLoadUrl()) { + LOG.error("Failed to find obo for "+oc.name+" can not load"); + // in case log not set up right - need to work on that + System.out.println("Failed to find obo for "+oc.name+" can not load"); + continue; + } + String urlString = oc.getLoadUrl().toString(); + Collection<Namespace> spaces = adapterMetaData.getNamespaces(urlString); + // loads ontology from spaces + Ontology o = new Ontology(spaces,oc,oboSession); + + // ADD TO CHAR FIELD + if (oc.isPostCompRel()) { // POST COMP REL ONTOLOGY + cf.setPostCompAllowed(true); + cf.setPostCompRelOntol(o); + } + else { // REGULAR ONTOLOGY + cf.addOntology(o); + } + } + } + } + } + + /** Load up/cache Sets for all ontologies used, anatomyOntologyTermSet * and patoOntologyTermSet -- move to dataadapter/OntologyDataAdapter... */ private Ontology initOntology(OntologyConfig ontCfg) throws OntologyException { - Ontology ontology = new Ontology(ontCfg.name); + Ontology ontology = new Ontology(ontCfg.name); // new Ontology(ontCfg)? if (ontCfg.hasFilter()) // set filter before loading obo session ontology.setFilter(ontCfg.getFilter()); if (ontCfg.hasSlim()) @@ -157,6 +248,53 @@ } } + /** if configged checks if repos has more recent - if so copies to cache + if no repos gets from cache(.phenote/obo-files), if no cache gets from app/obo-files + throws ontology ex if fails to find in + url/repos, .phenote/obo-files and app/obo-files */ + private String findOboUrlString(OntologyConfig ontCfg) throws OntologyException { + return findOboUrl(ontCfg).toString(); + } + + + /** if configged checks if repos has more recent - if so copies to cache + if no repos gets from cache(.phenote/obo-files), if no cache gets from app/obo-files + throws ontology ex if fails to find in + url/repos, .phenote/obo-files and app/obo-files */ + private URL findOboUrl(OntologyConfig ontCfg) throws OntologyException { + // first get local url (if there is one) to use to compare against repos url + // get normal/cached/local ontology + String filename = ontCfg.getFile(); + // throws OntologyEx if file not found -- catch & try url + URL url = null; + try { url = findFile(filename); } + catch (OntologyException oe) { + System.out.println(filename+" not found locally, trying url if configured "); + } + + // if repos url configured then check if its more up to date - if so copy + // repos obo file to .phenote cache + if (ontCfg.hasReposUrl()) { + try { + URL reposUrl = ontCfg.getReposUrl(); // throws MalfUrlEx + //long mem = Runtime.getRuntime().totalMemory()/1000000; //startTimer(); + LOG.debug(reposUrl+" checking with repos for newer ontol\n"); + // if out of synch copies repos to local(.phenote/obo-files) + // url may be jar/obo-files or svn/obo-files but this function will put file + // in cache ~/.phenote/obo-files + url = synchWithRepositoryUrl(url,reposUrl,ontCfg.name,filename); + } catch (/*MalfURL & Ontol*/Exception e) { LOG.error(e); } + } + + if (url == null) + throw new OntologyException("obo file "+filename+" not found in repos nor local"); + + ontCfg.setLoadUrl(url); + + return url; + + } + private boolean fileIsInCache(String filename) { return fileToOntologyCache.containsKey(filename); } @@ -174,34 +312,37 @@ private void loadOboSessionCheckRepos(Ontology o,OntologyConfig oc) throws OntologyException { - // first get normal/cached/local ontology - String filename = oc.getFile(); - // throws OntologyEx if file not found -- need to catch - should still try url - URL url = null; - try { url = findFile(filename); } - catch (OntologyException oe) { - System.out.println(filename+" not found locally, trying url if configured "); - } +// // first get normal/cached/local ontology +// String filename = oc.getFile(); +// // throws OntologyEx if file not found -- need to catch - should still try url +// URL url = null; +// try { url = findFile(filename); } +// catch (OntologyException oe) { +// System.out.println(filename+" not found locally, trying url if configured "); +// } - // if ontCfg.hasSynchUrl() ? - // URL synchUrl = ontCfg.getSynchUrl +// // if ontCfg.hasSynchUrl() ? +// // URL synchUrl = ontCfg.getSynchUrl +// if (oc.hasReposUrl()) { +// try { +// URL reposUrl = oc.getReposUrl(); +// // if out of synch copies repos to local(.phenote/obo-files) +// // url may be jar/obo-files or svn/obo-files but this function may put file +// // in cache ~/.phenote/obo-files +// url = synchWithRepositoryUrl(url,reposUrl,o.getName(),filename); + +// // to do - if from repos need to load repos into local obo cache! + +// } catch (/*MalformedURL & IO*/Exception e) { LOG.error(e); } +// } + + URL url = findOboUrl(oc); + long mem = Runtime.getRuntime().totalMemory()/1000000; LOG.debug(url+" checking with repos... loading obo session mem "+mem+"\n"); startTimer(); - if (oc.hasReposUrl()) { - try { - URL reposUrl = oc.getReposUrl();//new URL("http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/evidence_code.obo"); - // if out of synch copies repos to local - // url may be jar/obo-files or svn/obo-files but this function may put file - // in cache ~/.phenote/obo-files - url = synchWithRepositoryUrl(url,reposUrl,o.getName(),filename); - - // to do - if from repos need to load repos into local obo cache! - - } catch (/*MalformedURL & IO*/Exception e) { LOG.error(e); } - } - loadOboSessionFromUrl(o,url,filename); + loadOboSessionFromUrl(o,url,oc.getFile()); stopTimer(url+" checked against repos... obo session loaded"); mem = Runtime.getRuntime().totalMemory()/1000000; long max = Runtime.getRuntime().maxMemory()/1000000; @@ -347,23 +488,32 @@ // String -> url to handle web start jar obo files private OBOSession getOboSession(URL oboUrl) throws OntologyException { if (oboUrl == null) - throw new OntologyException("No url to retrieve");//return new OBOSessionImpl(); + throw new OntologyException("No url to retrieve"); + Collection fileList = new ArrayList(); + fileList.add(oboUrl.toString()); + return getOboSession(fileList); + } + + /** file list is a list of file/url Strings */ + private OBOSession getOboSession(Collection<String> fileList) + throws OntologyException { OBOFileAdapter fa = new OBOFileAdapter(); FileAdapterConfiguration cfg = new OBOFileAdapter.OBOAdapterConfiguration(); - Collection fileList = new ArrayList(); - fileList.add(oboUrl.toString()); + // takes strings not urls! cfg.setReadPaths(fileList); try { // throws data adapter exception OBOSession os = (OBOSession)fa.doOperation(IOOperation.READ,cfg,null); + adapterMetaData = fa.getMetaData(); // check for null? return os; } catch (DataAdapterException e) { - LOG.error("got obo data adapter exception: "+e+" for url "+oboUrl); // ?? + LOG.error("got obo data adapter exception: "+e); // ?? throw new OntologyException(e); } } + /** The ontology has been determined to be out of date (by quartz) and thus directed to reload itself from its file - in other words there is a new obo file to load in place of old one */ @@ -403,6 +553,19 @@ // GARBAGE +// // POST COMP +// if (fieldConfig.isPostComp()) { +// cf.setPostCompAllowed(true); +// try { +// //Ontology o = initRelationshipOntology(fieldConfig.getPostCompRelOntCfg()); +// Ontology o = initOntology(fieldConfig.getPostCompRelOntCfg()); +// cf.setPostCompRelOntol(o); +// } catch (OntologyException e) { +// LOG.error(e.getMessage()+" ignoring ontology, fix config? "); +// } +// } + // i think this order needs to be same as config order + //initRelationshipOntology(); // refactor -> Quartz scheduler, reloadOntology() // private class OntologyFileCheckThread extends Thread { Modified: phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java 2007-04-27 17:33:45 UTC (rev 508) @@ -141,6 +141,7 @@ private String makeTermValue(OBOClass term) { //if the term comes from an ontology, need to include a col for both //id and name + System.out.println("DelimChar term.getID: "+term.getID()); return term.getID() + delimiter + term.getName(); } @@ -196,6 +197,7 @@ } OntologyManager om = OntologyManager.inst(); try { + // there can be more than one field for a fieldNum??? - MG List<CharField> fields = Config.inst().getCharFieldsForDelimited(fieldNum);//Ex // List<CharField> fields = Config.inst().getCharFieldsForSyntaxAbbrev(tag);//Ex Modified: phenote/trunk/src/java/phenote/dataadapter/nexus/NEXUSAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/nexus/NEXUSAdapter.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/dataadapter/nexus/NEXUSAdapter.java 2007-04-27 17:33:45 UTC (rev 508) @@ -7,6 +7,7 @@ import java.io.Writer; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; @@ -181,14 +182,16 @@ } if (categoryNames.contains("attribute_slim")) { return valueTerm; - } else if ((categoryNames.contains("value_slim")) && !(valueTerm.isRoot())) { + } + // isRoot no longer there - not sure what replaces it yet... + else if ((categoryNames.contains("value_slim"))) { //&& !(valueTerm.isRoot())) { return this.getAttributeForValue(this.getParentForTerm(valueTerm)); } return null; } private OBOClass getParentForTerm(OBOClass term) { - Set parents = term.getParents(); + Collection parents = term.getParents(); for (Object o : parents) { Link link = (Link)o; if (link.getType().getName().equals("is_a")) { Modified: phenote/trunk/src/java/phenote/datamodel/CharField.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharField.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/datamodel/CharField.java 2007-04-27 17:33:45 UTC (rev 508) @@ -4,6 +4,7 @@ import java.util.List; import org.geneontology.oboedit.datamodel.OBOClass; +import org.geneontology.oboedit.datamodel.OBOSession; // or just Field? or CharField? // CharField doesnt handle instance data, just specifies what ontologies are @@ -135,7 +136,11 @@ // CHECK FOR POST COMP - could probably move this to char field but right now just // trying to get this working before i split town... if (OntologyManager.inst().isPostComp(valueString)) { - try { oboClass = OntologyManager.inst().getPostComp(valueString); } + try { + // just gets first ontology for now - fix this! + OBOSession os = getOntology().getOboSession(); + oboClass = OntologyManager.inst().getPostComp(os,valueString); + } catch (TermNotFoundException e) {} // move on to next ontology } Modified: phenote/trunk/src/java/phenote/datamodel/OboUtil.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/OboUtil.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/datamodel/OboUtil.java 2007-04-27 17:33:45 UTC (rev 508) @@ -19,21 +19,21 @@ private boolean hasRelAndDiff=false; - /** used by OntologyManager */ - public static OBOClass makePostCompTerm(OBOClass genus, OBOProperty rel, - OBOClass diff) { - String nm = pcString(genus.getName(),rel.getName(),diff.getName()); - String id = pcString(genus.getID(),rel.getName(),diff.getID()); - OBOClass postCompTerm = new OBOClassImpl(nm,id); - OBOProperty ISA = OBOProperty.IS_A; - OBORestrictionImpl gRel = new OBORestrictionImpl(postCompTerm,ISA,genus); - gRel.setCompletes(true); // post comp flag - postCompTerm.addParent(gRel); - OBORestrictionImpl dRel = new OBORestrictionImpl(postCompTerm,rel,diff); - dRel.setCompletes(true); // post comp - postCompTerm.addParent(dRel); - return postCompTerm; - } +// /** used by OntologyManager */ +// public static OBOClass makePostCompTerm(OBOClass genus, OBOProperty rel, +// OBOClass diff) { +// String nm = pcString(genus.getName(),rel.getName(),diff.getName()); +// String id = pcString(genus.getID(),rel.getID(),diff.getID()); +// OBOClass postCompTerm = new OBOClassImpl(nm,id); +// OBOProperty ISA = OBOProperty.IS_A; +// OBORestrictionImpl gRel = new OBORestrictionImpl(postCompTerm,ISA,genus); +// gRel.setCompletes(true); // post comp flag +// postCompTerm.addParent(gRel); +// OBORestrictionImpl dRel = new OBORestrictionImpl(postCompTerm,rel,diff); +// dRel.setCompletes(true); // post comp +// postCompTerm.addParent(dRel); +// return postCompTerm; +// } public static OboUtil initPostCompTerm(OBOClass genus) { OboUtil ou = new OboUtil(); @@ -57,7 +57,7 @@ postCompTerm.addParent(dRel); name += relDiffString(rel.getName(),diff.getName()); postCompTerm.setName(name); - id += relDiffString(rel.getName(),diff.getID()); + id += relDiffString(rel.getID(),diff.getID()); // just for now ((OBOClassImpl)postCompTerm).setID(id); hasRelAndDiff = true; Modified: phenote/trunk/src/java/phenote/datamodel/Ontology.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/Ontology.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/datamodel/Ontology.java 2007-04-27 17:33:45 UTC (rev 508) @@ -14,13 +14,23 @@ import org.apache.log4j.Logger; +import org.geneontology.oboedit.datamodel.Namespace; import org.geneontology.oboedit.datamodel.OBOClass; import org.geneontology.oboedit.datamodel.OBOProperty; import org.geneontology.oboedit.datamodel.OBOSession; import org.geneontology.oboedit.datamodel.TermCategory; +import org.geneontology.oboedit.datamodel.TermUtil; import org.geneontology.oboedit.dataadapter.OBOMetaData; import org.geneontology.oboedit.dataadapter.OBOMetaData.FileMetaData; +import org.geneontology.oboedit.query.Query; +import org.geneontology.oboedit.query.QueryEngine; +import org.geneontology.oboedit.query.impl.NamespaceQuery; +import org.geneontology.oboedit.query.impl.CategoryQuery; +// i think this is ok since datamodel is based on config?? +// otherwise ODA should be inbetween +import phenote.config.OntologyConfig; + /** Ontology represents at this point the contents of a single obo file (which can be more than one ontology) an ontology wraps an obo edit OBOSession - at this point there is one OBOSession per obo file - that may change in the future */ @@ -30,7 +40,7 @@ //private String filename; // may neec to revive for version/metadata? private String version; private OBOSession oboSession; - private List<OBOClass> sortedTerms; + private Collection<OBOClass> sortedTerms; // was List private List<OBOClass> sortedObsoleteTerms; private List<OBOProperty> sortedRelations; private String slim; @@ -49,6 +59,35 @@ this.name = name; } + /** is it funny to pass in a config object to datamodel - given that config dictates + the model i actually think its ok */ + public Ontology(Collection<Namespace> spaces,OntologyConfig oc,OBOSession os) { + oboSession = os; + // get id filter, slim, & possible namespace from oc... + name = oc.name; + slim = oc.getSlim(); + // if namespace specified and is valid load that + if (oc.hasNamespace()) { + String namespace = oc.getNamespace(); + if (validNamespace(spaces,namespace)) { + loadNamespace(getNamespace(spaces,namespace)); + return; + } + } + // otherwise load all name spaces + loadNamespaces(spaces); + } + + private boolean validNamespace(Collection<Namespace> nl, String ns) { + return getNamespace(nl,ns) != null; + } + private Namespace getNamespace(Collection<Namespace> nl,String namespaceString) { + for (Namespace n : nl) { + if (n.getID().equals(namespaceString)) return n; + } + return null; + } + public void setOboSession(OBOSession os) { oboSession = os; //System.out.println("Ont cats "+os.getCategories()); @@ -63,25 +102,27 @@ // this is wrong - this just says file name loaded from. obo file puts version in // remark field but doesnt seem to be way to get that from obo session?? //return oboSession.getCurrentHistory().getVersion(); - Object o = oboSession.getAdapterMetaData(); - if (!(o instanceof OBOMetaData)) return "unknown"; // exception? - Collection c = ((OBOMetaData)o).getFileMetaData(); - //System.out.println("# of file meta datas "+c.size()+c); - for (Object obj : c) { - if (!(obj instanceof FileMetaData)) return "unknown"; - // hmmm dont know file name in ontology apparently - need to bring back! - // for now just return last one as there is only 1 - version = ((FileMetaData)obj).getVersion(); - //System.out.println("VERSION "+version); - //return version; ?? - } + // no longer comes from obo session - but from OboFileAdapter - change this + // but i dont think this works anyways as obos dont have versions +// Object o = oboSession.getAdapterMetaData(); +// if (!(o instanceof OBOMetaData)) return "unknown"; // exception? +// Collection c = ((OBOMetaData)o).getFileMetaData(); +// //System.out.println("# of file meta datas "+c.size()+c); +// for (Object obj : c) { +// if (!(obj instanceof FileMetaData)) return "unknown"; +// // hmmm dont know file name in ontology apparently - need to bring back! +// // for now just return last one as there is only 1 +// version = ((FileMetaData)obj).getVersion(); +// //System.out.println("VERSION "+version); +// //return version; ?? +// } return version; } private void makeSortedLists(OBOSession oboSession) { //log().debug("name "+name+" terms "+oboSession.getTerms()+" propVals "+oboSession.getPropertyValues()+" rels "+oboSession.getRelationshipTypes()); - sortedTerms = getSortedTerms(oboSession.getTerms()); - sortedObsoleteTerms = getSortedTerms(oboSession.getObsoleteTerms()); + sortedTerms = getSortedTerms(TermUtil.getTerms(oboSession));//(oboSession.getTerms()); + sortedObsoleteTerms = getSortedTerms(TermUtil.getObsoletes(oboSession)); } private void filterLists() { @@ -121,7 +162,7 @@ //sortedRelations=new ArrayList<OBOProperty>(); not Comparable! List sorRel = new ArrayList(); // if (oboSession == null) ? shouldnt happen - sorRel.addAll(oboSession.getRelationshipTypes()); + sorRel.addAll(TermUtil.getRelationshipTypes(oboSession)); Collections.sort(sorRel,new RelComparator()); sortedRelations = sorRel; // ? } @@ -139,7 +180,7 @@ /** non obsolete terms - sorted */ - public List<OBOClass> getSortedTerms() { + public Collection<OBOClass> getSortedTerms() { return sortedTerms; } @@ -150,7 +191,7 @@ public OBOSession getOboSession() { return oboSession; } - public List<OBOClass> getSortedTerms(Set terms) { + public List<OBOClass> getSortedTerms(Collection terms) { List<OBOClass> sortedTerms = new ArrayList<OBOClass>(); sortedTerms.addAll(terms); Collections.sort(sortedTerms); @@ -217,7 +258,7 @@ terms - can add more flexibility as needed - this is all thats needed for now also filters out obo: terms - those are obo edit artifacts i think also filters for slim! */ - private List<OBOClass> filterList(List<OBOClass> list) { + private List<OBOClass> filterList(Collection<OBOClass> list) { List<OBOClass> filteredList = new ArrayList<OBOClass>(); for (OBOClass term : list) { // or could do remove on list? @@ -241,270 +282,48 @@ if (log == null) log = Logger.getLogger(getClass()); return log; } -} + private void loadNamespace(Namespace n) { + Collection<Namespace> c = new ArrayList(1); + c.add(n); + loadNamespaces(c); + } + private void loadNamespaces(Collection<Namespace> spaces) { + if (spaces == null || spaces.isEmpty()) { + log().error("No namespace to load"); // ex? + return; + } + + // for now just grab 1st namespace as namespacequery only takes 1 namespace + //Namespace ns = spaces.toArray(new Namespace[0])[0]; + Query<OBOClass, OBOClass> nsQuery = + new NamespaceQuery(spaces.toArray(new Namespace[0])); + // create a new query engine on the session we just loaded + QueryEngine engine = new QueryEngine(oboSession); + + // run the namespace query and cache the results + long time = System.currentTimeMillis(); + //Collection<OBOClass> + // true -> cache result + sortedTerms = engine.query(nsQuery, true); + System.out.println("got " + sortedTerms.size() + + " namespace hits in " + (System.currentTimeMillis() - time) + + "ms # of namespaces: "+spaces.size()+" printing terms in order: "); -// GARBAGE -// /** Returns a Vector of OBOClass from ontology that contain input string -// constrained by compParams. compParams specifies syns,terms,defs,& obs -// should input be just part of search params? -// its a vector as thats what ComboBox requires -// put in separate class? */ -// public Vector<OBOClass> getSearchTerms(String input,SearchParamsI searchParams) { -// Vector<OBOClass> searchTerms = new Vector<OBOClass>(); -// if (input == null || input.equals("")) -// return searchTerms; + if (hasSlim()) { + CategoryQuery catQuery = new CategoryQuery(slim); + time = System.currentTimeMillis(); + sortedTerms = engine.query(sortedTerms,catQuery, true); + System.out.println("Category query (" +slim+ ") got " + + sortedTerms.size() + + " in " + (System.currentTimeMillis() - time) + "ms"); -// // gets term set for currently selected ontology -// //Set ontologyTermList = getCurrentOntologyTermSet(); -// List<OBOClass> ontologyTermList = getSortedTerms(); // non obsolete -// searchTerms = getSearchTerms(input,ontologyTermList,searchParams); + } -// // if obsoletes set then add them in addition to regulars -// if (searchParams.searchObsoletes()) { -// ontologyTermList = getSortedObsoleteTerms(); -// Vector obsoletes = getSearchTerms(input,ontologyTermList,searchParams); -// searchTerms.addAll(obsoletes); -// } -// return searchTerms; -// } - -// /** helper fn for getSearchTerms(String,SearhParamsI) */ -// private Vector<OBOClass> getSearchTerms(String input, List<OBOClass> ontologyTermList, -// SearchParamsI searchParams) { -// // need a unique list - UniqueTermList has quick check for uniqueness, checking -// // whole list is very very slow - how is it possible to get a dup term? i forget? -// // the dup term was a BUG! in synonym - woops -// SearchTermList uniqueTermList = new SearchTermList(); -// //Vector searchTerms = new Vector(); -// if (ontologyTermList == null) -// return uniqueTermList.getVector();//searchTerms; - -// boolean ignoreCase = true; // param? -// if (ignoreCase) -// input = input.toLowerCase(); - -// // i think iterators are more efficient than get(i) ?? -// Iterator<OBOClass> iter = ontologyTermList.iterator(); -// while (iter.hasNext()) { -// // toString extracts name from OBOClass -// OBOClass oboClass = iter.next(); -// String originalTerm = oboClass.getName();//toString(); - -// boolean termAdded = false; - -// if (searchParams.searchTerms()) { -// // adds originalTerm to searchTerms if match (1st if exact) -// termAdded = compareAndAddTerm(input,originalTerm,oboClass,uniqueTermList); -// if (termAdded) -// continue; -// } - - -// if (searchParams.searchSynonyms()) { -// Set synonyms = oboClass.getSynonyms(); -// for (Iterator i = synonyms.iterator(); i.hasNext() &&!termAdded; ) { -// String syn = i.next().toString(); -// //log().debug("syn "+syn+" for "+originalTerm); -// termAdded = compareAndAddTerm(input,syn,oboClass,uniqueTermList); -// //if (termAdded) continue; // woops continues this for not the outer! -// } -// } -// if (termAdded) continue; - - -// if (searchParams.searchDefinitions()) { -// String definition = oboClass.getDefinition(); -// if (definition != null & !definition.equals("")) -// termAdded = compareAndAddTerm(input,definition,oboClass,uniqueTermList); -// if (termAdded) -// continue; // not really necesary as its last -// } - -// } -// return uniqueTermList.getVector();//searchTerms; -// } - -// public Vector<OBOProperty> getStringMatchRelations(String input) { -// Vector<OBOProperty> matches = new Vector<OBOProperty>(); -// for (OBOProperty rel : getSortedRelations()) { -// if (rel.toString().contains(input)) -// matches.add(rel); -// } -// return matches; -// } -// /** User input is already lower cased, this potentially adds oboClass to -// * searchTerms if input & compareTerm match. Puts it first if exact. -// * for term names comp = obo, for syns comp is the syn. -// Returns true if term is a match & either gets added or already is added -// * Also checks if term is in list already - not needed - woops! -// Theres a speed issue here - the vector needs to be unique. if check every time -// with whole list very very slow. 2 alternatives to try. -// 1) have separate hash for checking uniqueness (downside 2 data structures). -// could make a data structure that had both map & vector -// 2) use LinkedHashSet, which does uniqueness & maintains order of insertion -// nice - its 1 data structure BUT exact matches go 1st, no way in linked hash set -// to insert 1st elements so would need to keep separate list of exact matches, which -// i guess there can be more than one with synonyms (do syns count for exact matches? -// should they?) - downside of #2 is need Vector for combo box - -// this wont fly for having different display strings for syn & obs as compareTerm -// can be syn obs term or def and its lost here -// i think these methods need to be moved to gui.TermSearcher that utilizes Ontology -// but produces CompListTerms */ -// private boolean compareAndAddTerm(String input, String compareTerm, OBOClass oboClass, -// SearchTermList searchTermList) { + for (Namespace n : spaces) System.out.println(n); + //for (OBOClass o : sortedTerms) System.out.println(o); -// String oboTerm = oboClass.getName(); + } +} -// String lowerComp = compareTerm; -// boolean ignoreCase = true; // discard? param for? -// if (ignoreCase) -// lowerComp = compareTerm.toLowerCase(); - -// //boolean doContains = true; // discard? param for? -// // exact match goes first in list -// if (lowerComp.equals(input)) { -// searchTermList.addTermFirst(oboClass); // adds if not present -// return true; -// } -// // new paradigm - put starts with first -// else if (lowerComp.startsWith(input)) { -// searchTermList.addTerm(oboClass); -// return true; -// } -// // Contains -// else if (contains(lowerComp,input) && !termFilter(lowerComp)) { -// searchTermList.addContainsTerm(oboClass); -// return true; -// } -// return false; -// } - -// // 1.5 has a contains! use when we shift -// private boolean contains(String term, String input) { -// return term.contains(input); // 1.5!! -// //return term.indexOf(input) != -1; -// } -// /** Oboedit getTerms returns some terms with obo: prefix that should be filtered -// * out. Returns true if starts with obo: */ -// private boolean termFilter(String term) { -// return term.startsWith("obo:"); -// } - //if (!searchTerms.contains(oboClass)) {// this takes a long time w long lists! - //searchTerms.add(0,oboClass); - //if (!searchTerms.contains(oboClass)) searchTerms.add(oboClass); - //if(!searchTerms.contains(oboClass))takes long time!searchTerms.add(oboClass); - // SKIP PATO ATTRIBUTES - only want values - or do !contains "value"? - // yes do contains value - as theres other crap to filter too - // apparently curators want to see attribs as well according to Michael - //if (filterAttributes() && isAttribute(originalTerm)) - //continue; - - // pato subclass? -// private boolean isAttribute(String term) { -// return contains(term.toLowerCase(),"attribute"); -// } - // part of search params? - //private boolean filterAttributes() { return isPato(); } - -// // make enum!! -// private boolean isPato() { -// //return ont == PATO; -// // for now - eventually config somehow -// return name.equals("Pato"); -// } - -// public Ontology(String name,OBOSession oboSession) { -// this.name = name; -// this.oboSession = oboSession; -// makeSortedLists(oboSession); -// } - // pase - Ontology shouldnt load file -// public Ontology(String name, String filename) { -// //loadAllOntologyTerms(); -// this.name = name; -// loadOntology(filename); -// } - -// /** Load up/cache Sets for all ontologies used, anatomyOntologyTermSet -// * and patoOntologyTermSet -- move to dataadapter/OntologyDataAdapter... */ -// private void loadOntology(String filename) {//loadAllOntologyTerms() { -// oboSession = getOboSession(findFile(filename)); -// sortedTerms = getSortedTerms(oboSession.getTerms()); -// sortedObsoleteTerms = getSortedTerms(oboSession.getObsoleteTerms()); -// } - - - -// /** Look for file in current directory (.) and jar file */ -// private URL findFile(String fileName) { -// String oboFileDir = "obo-files/"; -// // try current directory + obo-file dir -// String currentDir = "./" + oboFileDir + fileName; -// File file = new File(currentDir); -// if (file.exists()) -// return makeUrl(currentDir); - -// // try jar - hopefully this works... jar files have to have '/' prepended -// // first try without obo-files dir (in jar) -// String jarFile = "/" + fileName; -// URL url = Ontology.class.getResource(jarFile); // looks in jar -// // 2nd try with obo-files dir in jar file (i used to do it this way) -// if (url == null) { -// jarFile = "/" + oboFileDir + fileName; -// url = Ontology.class.getResource(jarFile); // looks in jar -// } - -// if (url == null) { -// System.out.println("No file found in pwd or jar for "+fileName); -// return null; -// } -// return url; -// } - -// private URL makeUrl(String file) { -// try { -// return new URL("file:"+file); -// } -// catch (MalformedURLException e) { -// System.out.println("malformed url "+file+" "+e); -// return null; -// } -// } - - -// // String -> url to handle web start jar obo files -// private OBOSession getOboSession(URL oboUrl) { -// if (oboUrl == null) -// return new OBOSessionImpl(); // ?? - -// OBOFileAdapter fa = new OBOFileAdapter(); -// FileAdapterConfiguration cfg = new OBOFileAdapter.OBOAdapterConfiguration(); -// Collection fileList = new ArrayList(); -// fileList.add(oboUrl.toString()); -// cfg.setReadPaths(fileList); -// try { // throws data adapter exception -// OBOSession os = (OBOSession)fa.doOperation(IOOperation.READ,cfg,null); -// return os; -// } -// catch (DataAdapterException e) { -// System.out.println("got data adapter exception: "+e); -// return null; // empty session? -// } -// } - - -// private Set getObsoleteTerms() { -// Set s = getOboSession().getObsoleteTerms(); -// if (s == null) -// System.out.println("No ontology terms loaded for "+name); -// return s; -// } -// private Set getNonObsoleteTerms() { -// Set s = getOboSession().getTerms(); // is this inefficient? cache? -// if (s == null) -// System.out.println("No ontology terms loaded for "+name); -// return s; -// } Modified: phenote/trunk/src/java/phenote/datamodel/OntologyManager.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/OntologyManager.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/datamodel/OntologyManager.java 2007-04-27 17:33:45 UTC (rev 508) @@ -2,8 +2,9 @@ import org.apache.log4j.Logger; import org.geneontology.oboedit.datamodel.OBOClass; -import org.geneontology.oboedit.datamodel.OBOProperty; -import org.geneontology.oboedit.datamodel.impl.OBOPropertyImpl; +import org.geneontology.oboedit.datamodel.OBOSession; +import org.geneontology.oboedit.postcomp.ParseException; +import org.geneontology.oboedit.postcomp.PostcompUtil; import java.util.ArrayList; import java.util.List; @@ -44,10 +45,12 @@ charFieldList.add(cf); } - /** get char field for int. 0 based. based on order in config file */ - public CharField getCharField(int i) throws Exception { - if (i<0) throw new Exception(); - if (i >= charFieldList.size()) throw new Exception(); // ex + /** get char field for int. 0 based. based on order in config file + CharacterTableModel relies on this order */ + public CharField getCharField(int i) throws OntologyException { + if (i<0) throw new OntologyException("error, asking for negative char field"); + if (i >= charFieldList.size()) + throw new OntologyException("number "+i+" char field does not exist"); // ex return charFieldList.get(i); } @@ -94,12 +97,13 @@ throw new TermNotFoundException("ID "+id+" not found in loaded ontologies"); } - public OBOClass getTermOrPostComp(String id) throws TermNotFoundException { - if (isPostComp(id)) - return getPostComp(id); - else - return getOboClassWithExcep(id); - } + // used to be used by phenoSynChar - no longer +// public OBOClass getTermOrPostComp(String id) throws TermNotFoundException { +// if (isPostComp(id)) +// return getPostComp(id); +// else +// return getOboClassWithExcep(id); +// } // phase out - put ex in getOboClass! public OBOClass getOboClassWithExcep(String id) throws TermNotFoundException { @@ -110,6 +114,7 @@ } + /** returns true if contains ^ - is this rather presumptious or is ^ reserved */ boolean isPostComp(String id) { if (id == null) return false; return id.contains("^"); @@ -117,27 +122,39 @@ /** parse string GO:123^part_of(AO:345) into post comp obo class This will be replaced with obo edits post comp parse utility */ - OBOClass getPostComp(String id) throws TermNotFoundException { - Pattern pat = Pattern.compile("([^\\^]+)\\^([^\\(]*)\\(([^\\)]*)\\)"); - Matcher m = pat.matcher(id); - boolean found = m.find(); - if (!found) throw new TermNotFoundException("Invalid post comp expression "+id); - String genus,rel,diff; + OBOClass getPostComp(OBOSession os, String id) throws TermNotFoundException { +// Pattern pat = Pattern.compile("([^\\^]+)\\^([^\\(]*)\\(([^\\)]*)\\)"); +// Matcher m = pat.matcher(id); +// boolean found = m.find(); +// if (!found) throw new TermNotFoundException("Invalid post comp expression "+id); +// String genus,rel,diff; +// try { +// //log().debug("pattern found for "+id+"? "+found+" g0 "+m.group(0)+" g1 "+m.group(1)+" g2 "+m.group(2)+" g3 "+m.group(3)); +// genus = m.group(1); +// rel = m.group(2); +// diff = m.group(3); +// } catch (RuntimeException e) { // IllegalState, IndexOutOfBounds +// throw new TermNotFoundException("Invalid post comp expression "+id); +// } + +// OBOClass gTerm = getOboClassWithExcep(genus); // throws ex +// // OBOProperty = getOboRelationshipProperty(rel) - from rel obo - todo +// OBOProperty p = new OBOPropertyImpl("OBO_REL:"+rel,rel); +// OBOClass dTerm = getOboClassWithExcep(diff); + +// return OboUtil.makePostCompTerm(gTerm,p,dTerm); + + // from obo edit! try { - //log().debug("pattern found for "+id+"? "+found+" g0 "+m.group(0)+" g1 "+m.group(1)+" g2 "+m.group(2)+" g3 "+m.group(3)); - genus = m.group(1); - rel = m.group(2); - diff = m.group(3); - } catch (RuntimeException e) { // IllegalState, IndexOutOfBounds - throw new TermNotFoundException("Invalid post comp expression "+id); + // for now... yikes! + System.out.println("OntMan getting postcomp for "+id+" OS "+os); + return PostcompUtil.createPostcompObject(os,id); } - - OBOClass gTerm = getOboClassWithExcep(genus); // throws ex - // OBOProperty = getOboRelationshipProperty(rel) - from rel obo - todo - OBOProperty p = new OBOPropertyImpl("OBO_REL:"+rel,rel); - OBOClass dTerm = getOboClassWithExcep(diff); - - return OboUtil.makePostCompTerm(gTerm,p,dTerm); + catch (ParseException e) { + String m = "Invalid post comp expression "+id+" "+e.getMessage(); + System.out.println(m); + throw new TermNotFoundException(m); + } } /** Currently iterates through every ontology looking for term, if this proves too Modified: phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java 2007-04-27 17:33:45 UTC (rev 508) @@ -2,6 +2,7 @@ // complist package? field package? import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -90,7 +91,7 @@ //Set ontologyTermList = getCurrentOntologyTermSet(); // THIS IS WRONG! or is it? for (Ontology ontology : ontologyList) { - List<OBOClass> ontologyTermList = ontology.getSortedTerms(); // non obsolete + Collection<OBOClass> ontologyTermList = ontology.getSortedTerms(); // non obsolete searchTerms.addAll(getSearchTermList(input,ontologyTermList)); // if obsoletes set then add them in addition to regulars @@ -106,7 +107,7 @@ /** helper fn for getSearchTerms(String,SearhParamsI) */ private List<CompletionTerm> getSearchTermList(String input, - List<OBOClass> ontologyTermList) { + Collection<OBOClass> ontologyTermList) { SearchTermList searchTermList = new SearchTermList(); if (ontologyTermList == null) return searchTermList.getList(); Modified: phenote/trunk/src/java/phenote/gui/field/PostCompGui.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/PostCompGui.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/gui/field/PostCompGui.java 2007-04-27 17:33:45 UTC (rev 508) @@ -223,7 +223,7 @@ if (isPostCompTerm(term)) { for (Object o : term.getParents()) { OBORestriction r = (OBORestriction)o; - if (r.completes() && r.getType() == OBOProperty.IS_A) + if (r.completes() && r.getType().equals(OBOProperty.IS_A)) return (OBOClass)r.getParent(); // check downcast? } // error msg? @@ -251,7 +251,7 @@ } private boolean isLinkToDiff(OBORestriction r) { - return r.completes() && r.getType() != OBOProperty.IS_A; + return r.completes() && !r.getType().equals(OBOProperty.IS_A); } /** Throws exception if no diff term - for now only returning one diff term Modified: phenote/trunk/src/java/phenote/main/PhenoteVersion.java =================================================================== --- phenote/trunk/src/java/phenote/main/PhenoteVersion.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/main/PhenoteVersion.java 2007-04-27 17:33:45 UTC (rev 508) @@ -9,7 +9,7 @@ //private static final float MAJOR_VERSION_NUM = 0.8f; //private static final float SUB_VERSION_NUM = .3f; - private static final String VERSION = "1.2-beta1"; // ?? + private static final String VERSION = "1.2-beta2"; // ?? // type is "dev" or "release" //private static final String type = " dev"; // "release" Modified: phenote/trunk/src/java/phenote/util/HtmlUtil.java =================================================================== --- phenote/trunk/src/java/phenote/util/HtmlUtil.java 2007-04-26 20:50:18 UTC (rev 507) +++ phenote/trunk/src/java/phenote/util/HtmlUtil.java 2007-04-27 17:33:45 UTC (rev 508) @@ -1,5 +1,6 @@ package phenote.util; +import java.util.Collection; import java.util.Iterator; import java.util.Set; @@ -167,16 +168,16 @@ return "\n"; } private static StringBuffer getParentalString(OBOClass oboClass) { - Set parents = oboClass.getParents(); + Collection parents = oboClass.getParents(); return getLinksString(parents,false); } private static StringBuffer getChildrenString(OBOClass oboClass) { - Set children = oboClass.getChildren(); + Collection children = oboClass.getChildren(); return getLinksString(children,true); } - private static StringBuffer getLinksString(Set links, boolean isChild) { + private static StringBuffer getLinksString(Collection links, boolean isChild) { StringBuffer sb = new StringBuffer(); // or should thi sjust be done more generically with a hash of string bufs // for each unique link type name? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <azu...@us...> - 2007-04-26 20:50:22
|
Revision: 507 http://svn.sourceforge.net/obo/?rev=507&view=rev Author: azurebrd Date: 2007-04-26 13:50:18 -0700 (Thu, 26 Apr 2007) Log Message: ----------- Added namespace to WBPerson.obo and WBPaper.obo Modified Paths: -------------- phenote/trunk/obo-files/wbpaper.obo phenote/trunk/obo-files/wbperson.obo Modified: phenote/trunk/obo-files/wbpaper.obo =================================================================== --- phenote/trunk/obo-files/wbpaper.obo 2007-04-26 20:00:57 UTC (rev 506) +++ phenote/trunk/obo-files/wbpaper.obo 2007-04-26 20:50:18 UTC (rev 507) @@ -1,3 +1,5 @@ +default-namespace: WBPaper + [Term] id: WBPaper00000003 name: Induction, detection and isolation of temperature-sensitive lethal and/or sterile mutants in nematodes. I. The free-living nematode C. elegans. Modified: phenote/trunk/obo-files/wbperson.obo =================================================================== --- phenote/trunk/obo-files/wbperson.obo 2007-04-26 20:00:57 UTC (rev 506) +++ phenote/trunk/obo-files/wbperson.obo 2007-04-26 20:50:18 UTC (rev 507) @@ -1,3 +1,5 @@ +default-namespace: WBPerson + [Term] id: WBPersontwo1 name: Cecilia Nakamura This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-04-26 20:00:56
|
Revision: 506 http://svn.sourceforge.net/obo/?rev=506&view=rev Author: mgibson Date: 2007-04-26 13:00:57 -0700 (Thu, 26 Apr 2007) Log Message: ----------- added namespace attribute to onotology field Modified Paths: -------------- phenote/trunk/jars/phenoteconfigbeans.jar Modified: phenote/trunk/jars/phenoteconfigbeans.jar =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-04-26 20:00:08
|
Revision: 505 http://svn.sourceforge.net/obo/?rev=505&view=rev Author: mgibson Date: 2007-04-26 13:00:09 -0700 (Thu, 26 Apr 2007) Log Message: ----------- added namespace attribute to ontology for specifying namespace to use with obo file - thought id commit right away since weve been having clashes Modified Paths: -------------- phenote/trunk/conf/phenote-config.rnc phenote/trunk/conf/phenote-config.xsd Modified: phenote/trunk/conf/phenote-config.rnc =================================================================== --- phenote/trunk/conf/phenote-config.rnc 2007-04-26 18:38:36 UTC (rev 504) +++ phenote/trunk/conf/phenote-config.rnc 2007-04-26 20:00:09 UTC (rev 505) @@ -77,6 +77,7 @@ attribute name { xsd:string }, ## obo file for ontology attribute file { xsd:string }, + attribute namespace { xsd:string }, attribute filter-out { xsd:string }, attribute slim { xsd:string }, attribute repos-subdir {xsd:string}, Modified: phenote/trunk/conf/phenote-config.xsd =================================================================== --- phenote/trunk/conf/phenote-config.xsd 2007-04-26 18:38:36 UTC (rev 504) +++ phenote/trunk/conf/phenote-config.xsd 2007-04-26 20:00:09 UTC (rev 505) @@ -90,6 +90,7 @@ <xs:documentation>obo file for ontology</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="namespace" use="required" type="xs:string"/> <xs:attribute name="filter-out" use="required" type="xs:string"/> <xs:attribute name="slim" use="required" type="xs:string"/> <xs:attribute name="repos-subdir" use="required" type="xs:string"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-26 18:39:45
|
Revision: 504 http://svn.sourceforge.net/obo/?rev=504&view=rev Author: nlw Date: 2007-04-26 11:38:36 -0700 (Thu, 26 Apr 2007) Log Message: ----------- fixed another broken link Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/index.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/index.shtml 2007-04-26 18:35:45 UTC (rev 503) +++ phenote/trunk/doc/phenote-website/content/howtos/index.shtml 2007-04-26 18:38:36 UTC (rev 504) @@ -12,7 +12,7 @@ <p> Phenote is a Java application, which can be launched from the web using "Webstart". Simply click on the link below, and this will download the application to your computer and run. Future clicks on the link should recognize that you've already downloaded the application, and it will simply start the software.</p> <p> -Webstart: <a href="/phenote/1.1/phenote.jnlp">Phenote v1.1</a> +Webstart: <a href="http://toy.lbl.gov:9010/phenote/1.1/phenote.jnlp">Phenote v1.1</a> </p> <p> Phenote can also be launched from our <a href="/content/software/">Downloads</a> page. There you will also find any newer versions under development. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-26 18:36:41
|
Revision: 503 http://svn.sourceforge.net/obo/?rev=503&view=rev Author: nlw Date: 2007-04-26 11:35:45 -0700 (Thu, 26 Apr 2007) Log Message: ----------- a little more explanation on the website Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/index.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/index.shtml 2007-04-26 18:30:35 UTC (rev 502) +++ phenote/trunk/doc/phenote-website/content/howtos/index.shtml 2007-04-26 18:35:45 UTC (rev 503) @@ -58,7 +58,7 @@ <a href="/sample_data.xls"> sample_data.xls </a> file. You will need to set up your phenote to the "demo" configuration. Then choose "open" under the "file" menu. Select this file from your download location. The data should -load into the spreadsheet. You can play around and manipulate the annotations. +load into the spreadsheet frame, where you can then play around and manipulate the annotations. You can also view these annotations directly in excel or other external software application. </p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-26 18:31:10
|
Revision: 502 http://svn.sourceforge.net/obo/?rev=502&view=rev Author: nlw Date: 2007-04-26 11:30:35 -0700 (Thu, 26 Apr 2007) Log Message: ----------- fixed link to sample_data.xls Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/index.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/index.shtml 2007-04-25 00:26:09 UTC (rev 501) +++ phenote/trunk/doc/phenote-website/content/howtos/index.shtml 2007-04-26 18:30:35 UTC (rev 502) @@ -55,7 +55,7 @@ <h3><a name="annotation">Making Annotations</a></h3> <p> You might find it valuable to see sample annotations. Please download this -<a href="~/sample_data.xls"> sample_data.xls </a> file. You will need to set +<a href="/sample_data.xls"> sample_data.xls </a> file. You will need to set up your phenote to the "demo" configuration. Then choose "open" under the "file" menu. Select this file from your download location. The data should load into the spreadsheet. You can play around and manipulate the annotations. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <azu...@us...> - 2007-04-25 00:26:11
|
Revision: 501 http://svn.sourceforge.net/obo/?rev=501&view=rev Author: azurebrd Date: 2007-04-24 17:26:09 -0700 (Tue, 24 Apr 2007) Log Message: ----------- Some rnc .jar and stuff confusion Modified Paths: -------------- phenote/trunk/conf/phenote-config.rnc phenote/trunk/conf/phenote-config.xsd phenote/trunk/conf/worm.cfg phenote/trunk/jars/phenoteconfigbeans.jar phenote/trunk/src/java/phenote/config/FieldConfig.java phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java Modified: phenote/trunk/conf/phenote-config.rnc =================================================================== --- phenote/trunk/conf/phenote-config.rnc 2007-04-24 22:50:09 UTC (rev 500) +++ phenote/trunk/conf/phenote-config.rnc 2007-04-25 00:26:09 UTC (rev 501) @@ -63,6 +63,7 @@ attribute type { "free_text" | "ontology" }, ## file is for single ontology - rename ontology_file? ## phase these 4 out - redundant with single ontology + attribute tab { xsd:string }, attribute file { xsd:string }, attribute filter-out { xsd:string }, attribute slim { xsd:string }, Modified: phenote/trunk/conf/phenote-config.xsd =================================================================== --- phenote/trunk/conf/phenote-config.xsd 2007-04-24 22:50:09 UTC (rev 500) +++ phenote/trunk/conf/phenote-config.xsd 2007-04-25 00:26:09 UTC (rev 501) @@ -75,6 +75,7 @@ </xs:restriction> </xs:simpleType> </xs:attribute> + <xs:attribute name="tab" use="required" type="xs:string"/> <xs:attribute name="file" use="required" type="xs:string"/> <xs:attribute name="filter-out" use="required" type="xs:string"/> <xs:attribute name="slim" use="required" type="xs:string"/> Modified: phenote/trunk/conf/worm.cfg =================================================================== --- phenote/trunk/conf/worm.cfg 2007-04-24 22:50:09 UTC (rev 500) +++ phenote/trunk/conf/worm.cfg 2007-04-25 00:26:09 UTC (rev 501) @@ -35,6 +35,8 @@ <field name="Curator" syntax-abbrev="Curator" enable="true"/> + <field name="NOT" enable="true"/> <!-- Boolean checkbox --> + <field name="Phenotype" enable="true"> <ontology name="Phenotype" file="c_elegans_phenotype_ontology.obo"/> </field> @@ -42,7 +44,7 @@ <field name="Phenotype Remark" syntax-abbrev="PhenotypeRemark" enable="true"/> <field name="Anatomy" enable="true"> - <ontology name="Worm" file="worm_anatomy.obo" repos-subdir="worm_anatomy"/> + <ontology name="Worm Anatomy" file="worm_anatomy.obo" repos-subdir="worm_anatomy"/> </field> <field name="Entity" syntax-abbrev="E" enable="true"> Modified: phenote/trunk/jars/phenoteconfigbeans.jar =================================================================== (Binary files differ) Modified: phenote/trunk/src/java/phenote/config/FieldConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/FieldConfig.java 2007-04-24 22:50:09 UTC (rev 500) +++ phenote/trunk/src/java/phenote/config/FieldConfig.java 2007-04-25 00:26:09 UTC (rev 501) @@ -35,6 +35,9 @@ if (fieldBean.xgetEnable() != null) enabled = fieldBean.getEnable(); + if (fieldBean.getTab() != null) { + } + if (fieldBean.getSyntaxAbbrev() != null) { setSyntaxAbbrev(fieldBean.getSyntaxAbbrev()); } Modified: phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java 2007-04-24 22:50:09 UTC (rev 500) +++ phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java 2007-04-25 00:26:09 UTC (rev 501) @@ -349,7 +349,8 @@ postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); String phenotype_match = find("(WBPhenotype[0-9]*)", postgres_value); // Find a WBPhenotype followed by any amount of digits if (phenotype_match != null) { postgres_value = phenotype_match; } // query for this, otherwise keep the default value - c1.setValue("Phenotype",postgres_value); // assign the queried value + if (postgres_value == "No postgres value assigned") { } else { c1.setValue("Phenotype",postgres_value); } // assign the queried value +// c1.setValue("Phenotype",postgres_value); // assign the queried value postgres_table = "app_curator"; postgres_value = "No postgres value assigned"; postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); c1.setValue("Curator",postgres_value); // assign the queried value @@ -357,7 +358,8 @@ postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); String paper_match = find("(WBPaper[0-9]*)", postgres_value); // Find a WBPaper followed by any amount of digits if (paper_match != null) { postgres_value = paper_match; } // query for this, otherwise keep the default value - c1.setValue("Pub",postgres_value); // assign the queried value +// c1.setValue("Pub",postgres_value); // assign the queried value + if (postgres_value == "No postgres value assigned") { } else { c1.setValue("Pub",postgres_value); } // assign the queried value postgres_table = "app_person"; postgres_value = "No postgres value assigned"; postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); String person_match = find("(WBPerson[0-9]*)", postgres_value); // Find a WBPerson followed by any amount of digits @@ -505,10 +507,8 @@ if (match != null) { query = match; } // query for this, otherwise keep the default value int foundPaper = 0; // flag if there are any papers in postgres that match, otherwise give an error warning ResultSet rs = null; // initialize result of query - System.out.println("Paper "+query+" end"); - try { rs = s2.executeQuery("SELECT DISTINCT(joinkey) FROM app_paper WHERE app_paper ~ '"+query+"' ORDER BY joinkey;"); -System.out.println("SELECT DISTINCT(joinkey) FROM app_paper WHERE app_paper ~ '"+query+"' ORDER BY joinkey;"); -} // get the alleles from a paper +// System.out.println("Paper "+query+" end"); + try { rs = s2.executeQuery("SELECT DISTINCT(joinkey) FROM app_paper WHERE app_paper ~ '"+query+"' ORDER BY joinkey;"); } // get the alleles from a paper catch (SQLException se) { System.out.println("We got an exception while executing our app_paper query: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } try { if (rs.next()) { foundPaper++; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-24 22:50:07
|
Revision: 500 http://svn.sourceforge.net/obo/?rev=500&view=rev Author: nlw Date: 2007-04-24 15:50:09 -0700 (Tue, 24 Apr 2007) Log Message: ----------- more edits to customize website Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/customize.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 22:27:34 UTC (rev 499) +++ phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 22:50:09 UTC (rev 500) @@ -62,7 +62,7 @@ <p> WARNING: Be sure to enable at least one data adapter, otherwise you will be unable to save your annotations.</p> <h3>Uvic-graph, term-history</h3> -These items are currently under development. By default they are disabled for the typical user. +These items are currently under development. By default, these are disabled for the user. <h2>Fields, types</h2> <img src="/images/config-field3.png" align="right" width="100%" caption="Figure 2"> @@ -74,22 +74,20 @@ <p>For each entry field, it is given a name. This name is used in the Phenote application for the input area, the column headings of the data table, and for the tab-delimited output file.</p> <h3>Enabling</h3> -<p>Similarly as other configuration options, you can enable/disable items from the configuration. A field can be disabled by setting enable="false"</p> +<p>Similar to other configuration options, you can enable/disable items from the configuration. A field can be disabled by setting enable="false"</p> <h2>Ontology fields</h2> -For fields in which terms from ontologies will be used as instances, the ontologies themselves need to be specified. One or more ontologies can be used for each field, and will show up in a drop-down box for selection. The type-ahead suggestion/autocompletion feature utilizes the ontologies specified for each field. +For fields in which terms from ontologies will be used as instances, the ontologies themselves need to be specified. One or more ontologies can be used for each field. If >1 ontology is specified, they will show up in a drop-down box for selection. The type-ahead suggestion/autocompletion feature utilizes these ontologies specified for each field. <h3>Ontology name</h3> <p>For each ontology, specify the name to display in the drop-down box.</p> <h3>Ontology file</h3> -<p>For each ontology, specify the name of the file to be loaded into Phenote. (if you are using you're only ontology file that does not come pre-packaged with Phenote, please copy it into the ".phenote/obo-files" directory.)</p> +<p>For each ontology, specify the name of the file to be loaded into Phenote. (if you are using an ontology file that does not come pre-packaged with Phenote, please copy it into the ".phenote/obo-files" directory.)</p> <h3>Repository location</h3> -<p>For automated checking for updates to ontologies located at obo-sourceforge, you can specify the repository subdirectory here. For example, the "chebi.obo" is located within the chemical subdirectory of the repository. Specifying the repository location is NOT REQUIRED; however you will have to perform updates to your ontology files manually.</p> +<p>For automated checking of updates to ontologies located at obo-sourceforge, you can specify the repository subdirectory here. For example, the "chebi.obo" is located within the chemical subdirectory of the repository. Specifying the repository location is NOT REQUIRED; however you will have to perform updates to your ontology files manually.</p> <p>NOTE: The current version of phenote can only update from a single repository, such as obo-sourceforge. We are currently expanding this feature to update each file independently from any repository.</p> <h3>Post-composition</h3> <p>To enable post-composition for any ontology-based field, be sure to specify the relationship ontology file as "is_postcomp_rel=true", as is shown for the Entity field in Figure 2.</p> -<h2>Other topics under construction:</h2> - </div> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-24 22:27:33
|
Revision: 499 http://svn.sourceforge.net/obo/?rev=499&view=rev Author: nlw Date: 2007-04-24 15:27:34 -0700 (Tue, 24 Apr 2007) Log Message: ----------- sized the figure 2 Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/customize.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 22:25:12 UTC (rev 498) +++ phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 22:27:34 UTC (rev 499) @@ -65,7 +65,7 @@ These items are currently under development. By default they are disabled for the typical user. <h2>Fields, types</h2> -<img src="/images/config-field3.png" align="right" caption="Figure 2"> +<img src="/images/config-field3.png" align="right" width="100%" caption="Figure 2"> Each input field is given a designation in the xml file. <h3>Field types: free-text, ontology</h3> <p>Currently there are two types of input fields for phenote: free-text or ontology. By default, if an ontology file is not specified for a field, it is designated as a free-text field. (This will soon be expanded to include ints, floats, and boolean value-types.</p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-24 22:25:13
|
Revision: 498 http://svn.sourceforge.net/obo/?rev=498&view=rev Author: nlw Date: 2007-04-24 15:25:12 -0700 (Tue, 24 Apr 2007) Log Message: ----------- fixed link on webpage Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/customize.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 22:21:41 UTC (rev 497) +++ phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 22:25:12 UTC (rev 498) @@ -65,8 +65,8 @@ These items are currently under development. By default they are disabled for the typical user. <h2>Fields, types</h2> -<img src="images/config-field3.png" align="right" caption="Figure 2"> -Each input field is given a "<field..." designation in the xml file. +<img src="/images/config-field3.png" align="right" caption="Figure 2"> +Each input field is given a designation in the xml file. <h3>Field types: free-text, ontology</h3> <p>Currently there are two types of input fields for phenote: free-text or ontology. By default, if an ontology file is not specified for a field, it is designated as a free-text field. (This will soon be expanded to include ints, floats, and boolean value-types.</p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-24 22:21:39
|
Revision: 497 http://svn.sourceforge.net/obo/?rev=497&view=rev Author: nlw Date: 2007-04-24 15:21:41 -0700 (Tue, 24 Apr 2007) Log Message: ----------- the other configuration snapshot Added Paths: ----------- phenote/trunk/doc/phenote-website/images/config-field3.png Added: phenote/trunk/doc/phenote-website/images/config-field3.png =================================================================== (Binary files differ) Property changes on: phenote/trunk/doc/phenote-website/images/config-field3.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-24 22:21:03
|
Revision: 496 http://svn.sourceforge.net/obo/?rev=496&view=rev Author: nlw Date: 2007-04-24 15:21:03 -0700 (Tue, 24 Apr 2007) Log Message: ----------- added demo configuration file for people to download and play with. updated configuration customization instructions Modified Paths: -------------- phenote/trunk/conf/demo.cfg phenote/trunk/doc/phenote-website/content/howtos/customize.shtml Added Paths: ----------- phenote/trunk/doc/phenote-website/demo.cfg phenote/trunk/doc/phenote-website/images/config-field.png Modified: phenote/trunk/conf/demo.cfg =================================================================== --- phenote/trunk/conf/demo.cfg 2007-04-24 22:03:18 UTC (rev 495) +++ phenote/trunk/conf/demo.cfg 2007-04-24 22:21:03 UTC (rev 496) @@ -1,13 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> <ns:log config-file="conf/log4j-standalone.xml"/> + <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> + <ns:uvic-graph enable="false"/> + <ns:term-history enable="false"/> + <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> + <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/> <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/> <ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"> Modified: phenote/trunk/doc/phenote-website/content/howtos/customize.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 22:03:18 UTC (rev 495) +++ phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 22:21:03 UTC (rev 496) @@ -10,9 +10,8 @@ <h1><a name="config">How-To: Customize Phenote</a></h1> <h2>Background</h2> -<p>Phenote can be customized to your specifications, including the input fields you desire, the ontologies from which those fields are populated with, and the output format used. Currently (v1.1) this configuration must be done by hand-editing a text file, but we are currently spec-ing out a GUI to achieve the same results. This page explains the location of and the process of editing the configuration file used when Phenote loads. +<p>Phenote can be customized to your specifications, including the input fields you desire, the ontologies from which those fields are populated with, and the output format used. Currently (in version 1.1), this configuration must be done by hand-editing a text file (see notes below). We are developing a built-in GUI that will achieve the same result without having to fiddle with the text file. This page explains the location and process of editing the configuration file used when Phenote loads. </p> - <p>This site is being updated with new content on a fairly regular basis. Please check back often for new information. In the mean time, if you have questions, you can <a href="/content/about/"> contact us </a> with questions.</p> <h2>The basics</h2> @@ -26,35 +25,34 @@ </ul> </p> -<h2>Location of your configuation file</h2> +<h2>Location of your configuration file</h2> <p> The configuration files used by Phenote are located in the ".phenote/conf" directory. </p> <p> Within this directory you can store any number of configuration files. The default files that come with the webstart versions are named "flybase.cfg", "zfin-standalone.cfg", or "human.cfg", depending on which version you've used in the past. Any file you create/modify should be placed in this directory. </p> -<h2>How to set up a custom configuration in Phenote</h2> +<h2>How to change your Phenote configuration</h2> <p> Once you have placed or modified your configuration file in the ".phenote/conf" directory, you need to tell Phenote to use that particular file. Note that with Phenote v1.1 or later, the user can choose a different configuration from the "File" menu. -When you select "Load Configuration", you are prompted with a list of options. +When you select "Load Configuration", you are prompted with a list of options. (In v1.2beta, this option is under the "Settings" menu.) Listed are several configuration styles that come standard with the Phenote software, with the current choice's radio-button selected. If you have created your own custom configuration file with a ".cfg" extension, it should be listed here. After selecting (the radio button) for a new configuration, press "OK", or press "Cancel" to revert to your previous selection. Any changes to your configuration settings will take effect the next time Phenote is loaded. - </p> <p> Then, you should be able to start phenote with the same webstart link as before, but it should load with this new configuration. you can also start it by double-clicking on the java icon that downloaded to your desktop called "phenote.jnlp". </p> -<br /> -<h2>Other topics under construction:</h2> <h2>Location to put your personal obo files</h2> <p>To get a custom ontology that is local and not on SF, you'll have to copy it into ".phenote/obo-files/". Any reference to this ontology within your configuration file must match the filename. </p> -<h2>Anatomy of the config file</h2> -You can download a sample configuration file <a href="/demo.cfg">here</a>. Descriptive images on this page are taken from this demo.cfg configuration file. +<h2>Making edits to a config file</h2> +<p>You can download a sample configuration file <a href="/demo.cfg">here</a>. Descriptive images on this page are taken from this demo.cfg configuration file.</p> +<p>As a precaution, if you edit your own configuration file, be sure to save it as a new filename to prevent any accidental overwriting by our server if you upgrate to a new version. + <h3>Data Adapters</h3> <img src="/images/config-data-adapter.png" align="right" caption="Figure 1"> <p> @@ -67,7 +65,31 @@ These items are currently under development. By default they are disabled for the typical user. <h2>Fields, types</h2> -<h2>Making edits to a config file</h2> +<img src="images/config-field3.png" align="right" caption="Figure 2"> +Each input field is given a "<field..." designation in the xml file. +<h3>Field types: free-text, ontology</h3> +<p>Currently there are two types of input fields for phenote: free-text or ontology. By default, if an ontology file is not specified for a field, it is designated as a free-text field. (This will soon be expanded to include ints, floats, and boolean value-types.</p> + +<h3>Field name</h3> +<p>For each entry field, it is given a name. This name is used in the Phenote application for the input area, the column headings of the data table, and for the tab-delimited output file.</p> + +<h3>Enabling</h3> +<p>Similarly as other configuration options, you can enable/disable items from the configuration. A field can be disabled by setting enable="false"</p> + +<h2>Ontology fields</h2> +For fields in which terms from ontologies will be used as instances, the ontologies themselves need to be specified. One or more ontologies can be used for each field, and will show up in a drop-down box for selection. The type-ahead suggestion/autocompletion feature utilizes the ontologies specified for each field. +<h3>Ontology name</h3> +<p>For each ontology, specify the name to display in the drop-down box.</p> +<h3>Ontology file</h3> +<p>For each ontology, specify the name of the file to be loaded into Phenote. (if you are using you're only ontology file that does not come pre-packaged with Phenote, please copy it into the ".phenote/obo-files" directory.)</p> +<h3>Repository location</h3> +<p>For automated checking for updates to ontologies located at obo-sourceforge, you can specify the repository subdirectory here. For example, the "chebi.obo" is located within the chemical subdirectory of the repository. Specifying the repository location is NOT REQUIRED; however you will have to perform updates to your ontology files manually.</p> +<p>NOTE: The current version of phenote can only update from a single repository, such as obo-sourceforge. We are currently expanding this feature to update each file independently from any repository.</p> +<h3>Post-composition</h3> +<p>To enable post-composition for any ontology-based field, be sure to specify the relationship ontology file as "is_postcomp_rel=true", as is shown for the Entity field in Figure 2.</p> + +<h2>Other topics under construction:</h2> + </div> </div> Added: phenote/trunk/doc/phenote-website/demo.cfg =================================================================== --- phenote/trunk/doc/phenote-website/demo.cfg (rev 0) +++ phenote/trunk/doc/phenote-website/demo.cfg 2007-04-24 22:21:03 UTC (rev 496) @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> + <ns:log config-file="conf/log4j-standalone.xml"/> + + <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> + <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> + <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/> + <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> + + <ns:uvic-graph enable="false"/> + + <ns:term-history enable="false"/> + + <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> + + <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/> + <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/> + <ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"> + <ns:ontology name="Genetic Context" file="context.obo"/> + </ns:field> + <ns:field name="Entity" syntax-abbrev="E" enable="true"> + <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> + <ns:ontology name="FMA" file="fma_obo.obo"/> + <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> + <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/> + <ns:ontology name="SO" file="so.obo" repos-subdir="genomic-proteomic"/> + <ns:ontology name="CHEBI" file="chebi.obo" repos-subdir="chemical"/> + </ns:field> + <ns:field name="Quality" syntax-abbrev="Q" enable="true"> + <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/> + <ns:ontology name="MP" file="mammalian_phenotype.obo" repos-subdir="phenotype"/> + </ns:field> + <ns:field name="Add'l Entity" syntax-abbrev="E2" enable="true"> + <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> + <ns:ontology name="FMA" file="fma_obo.obo"/> + <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> + <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/> + <ns:ontology name="SO" file="so.obo" repos-subdir="genomic-proteomic"/> + <ns:ontology name="CHEBI" file="chebi.obo" repos-subdir="chemical"/> + </ns:field> + <ns:field name="Time" syntax-abbrev="T" enable="true"/> + <ns:field name="Count" syntax-abbrev="C" enable="true"/> + <ns:field name="Unit" syntax-abbrev="U" enable="true"> + <ns:ontology name="Unit" file="unit.obo" repos-subdir="phenotype"/> + </ns:field> + <ns:field name="Abnormal" syntax-abbrev="Tag" enable="true"> + <ns:ontology name="Abnormal" file="quality.obo" slim="abnormal_slim"/> + </ns:field> + <ns:field name="Description" syntax-abbrev="Desc" enable="true"/> + <ns:field name="Evidence" syntax-abbrev="EC" enable="false"> + <ns:ontology name="Evidence" file="evidence_code.obo" repos-subdir="."/> + </ns:field> +</ns:phenote-configuration> \ No newline at end of file Added: phenote/trunk/doc/phenote-website/images/config-field.png =================================================================== (Binary files differ) Property changes on: phenote/trunk/doc/phenote-website/images/config-field.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-04-24 22:03:18
|
Revision: 495 http://svn.sourceforge.net/obo/?rev=495&view=rev Author: mgibson Date: 2007-04-24 15:03:18 -0700 (Tue, 24 Apr 2007) Log Message: ----------- link to more dev docs Modified Paths: -------------- phenote/trunk/doc/phenote-website/phenote.html Modified: phenote/trunk/doc/phenote-website/phenote.html =================================================================== --- phenote/trunk/doc/phenote-website/phenote.html 2007-04-24 20:52:44 UTC (rev 494) +++ phenote/trunk/doc/phenote-website/phenote.html 2007-04-24 22:03:18 UTC (rev 495) @@ -7,12 +7,14 @@ + + <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> @@ -20,12 +22,14 @@ + + <title>Phenote</title> </head> @@ -37,6 +41,7 @@ + <h1 style="text-align: left;"><span style="font-weight: bold;"></span>Phenote<br> @@ -44,6 +49,7 @@ + </h1> @@ -51,6 +57,7 @@ + <br> @@ -58,6 +65,7 @@ + Phenote is a tool to annotate phenotypes using the Entity Quality paradigm. It takes advantage of ontologies. It uses term completion to allow curators quick access to @@ -68,14 +76,18 @@ + <br> + <a href="1.1/phenote.jnlp">Phenote 1.1</a><br> + <br> + After phenote downloads the java jar files (takes a while) it will ask you what configuration you would like to use, fly, zfin, human,worm....<br> @@ -84,7 +96,9 @@ + <br> + Recent addditions include the ability to update config while preserving your changes, change config, tab delimited format, tabbed field panel, retrieve ontologies from web, retrieve from field to database, search @@ -97,6 +111,7 @@ + <br> @@ -104,6 +119,7 @@ + Zebrafish requires components of phenote(to plug into their non-public website), not a full web app. Here is a proof of concept of some of @@ -115,6 +131,7 @@ + <br> @@ -122,6 +139,7 @@ + <a href="http://reaper.lbl.gov/phenote/html/ncbo.html">Webby Phenote(components used by Zfin)</a><br> @@ -130,6 +148,7 @@ + <br> @@ -137,6 +156,7 @@ + Webby phenote is a collaboration with Sohel Merchant at dictyBase. Here is what they have done:<br> @@ -145,6 +165,7 @@ + <br> @@ -152,6 +173,7 @@ + <a href="http://165.124.152.194/db/cgi-bin/dictyBase/curation/phenotypeCuration.pl">DictyBase webby phenote</a><br> @@ -160,6 +182,7 @@ + <br> @@ -167,6 +190,7 @@ + <br> @@ -174,6 +198,7 @@ + We are doing these releases to get feedback. Please report any bugs (ideally through the <a href="https://sourceforge.net/tracker/?group_id=76834&atid=887913">bug tracker</a>) and let us know what you @@ -184,7 +209,9 @@ + <br> + [In development - the bleeding edge if you will:<a href="1.1/phenote.jnlp"> Phenote 1.2</a> coming soon]<br> @@ -192,6 +219,7 @@ + <h4>Phenote links:<br> @@ -199,6 +227,7 @@ + </h4> @@ -206,6 +235,7 @@ + <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenote">Phenote email list</a><br> @@ -214,6 +244,7 @@ + <a href="https://sourceforge.net/tracker/?group_id=76834&atid=887913">Phenote bug tracker</a><br> @@ -222,6 +253,7 @@ + <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenote-bug-tracker">Bug tracker email list</a><br> @@ -230,6 +262,7 @@ + <a href="https://sourceforge.net/svn/?group_id=76834">Phenote source code (obo sourceforge svn)</a><br> @@ -238,6 +271,7 @@ + <a href="https://lists.sourceforge.net/lists/listinfo/obo-svn-commit">Phenote svn commit email list</a><br> @@ -246,6 +280,7 @@ + <a href="http://wiki.dictybase.org/dictywiki/index.php/Phenotype_Curation_Tool_Documentation#Usage">Dicty webby phenote wiki developer docs</a><br> @@ -254,16 +289,20 @@ + <a href="http://www.bioontology.org/wiki-internal/index.php/Phenotype_Annotation_Tool">Phenote ncbo internal wiki (ncbo folk only)</a><br> + <a href="developer-docs/dataadapter.html">Phenote dataadapter developer doc</a><br> +<a href="developer-docs/developer-docs.html">More developer docs</a><br> + <br> @@ -271,6 +310,7 @@ + <a href="phenote-release-notes.html">Phenote Release Notes and old webstart releases</a><br> @@ -279,6 +319,7 @@ + <br> @@ -286,6 +327,7 @@ + If the Phenote webstart link fails to do anything, then there are probably problems with webstart and/or java(has to be jdk 1.5). Take a look at the <a href="webstart-troubleshooting.html">webstart troubleshooting</a><br> @@ -295,6 +337,7 @@ + page.<br> @@ -302,6 +345,7 @@ + <br> @@ -309,6 +353,7 @@ + Click here for <a href="phenote-java-requirements.html">phenote java requirements</a><br> @@ -317,6 +362,7 @@ + <br> @@ -324,6 +370,7 @@ + <br> @@ -331,6 +378,7 @@ + <br> @@ -338,6 +386,7 @@ + Old releases: <br> @@ -345,6 +394,7 @@ + <a href="1.0/phenote-flybase.jnlp">Phenote 1.0 for fly</a><br> @@ -352,16 +402,19 @@ + <a href="1.0/phenote-zfin.jnlp">Phenote 1.0 for zfin</a><br> + <a href="1.0/phenote-human.jnlp">Phenote 1.0 for human</a><br> + <br> @@ -369,6 +422,7 @@ + <a href="0.9/phenote-flybase.jnlp">Phenote 0.9 for fly</a><br> @@ -376,18 +430,21 @@ + <a href="0.9/phenote-zfin.jnlp">Phenote (standalone) 0.9 for zfin</a><br> + <br> + <a href="0.8/phenote-flybase.jnlp">Phenote 0.8 for fly.</a><br> @@ -395,6 +452,7 @@ + <a href="0.8/phenote-zfin.jnlp">Phenote (standalone) 0.8 for zfin</a><br> @@ -402,6 +460,7 @@ + <br> @@ -409,6 +468,7 @@ + <a href="0.7/phenote-flybase.jnlp">Phenote 0.7 for fly.</a><br> @@ -416,6 +476,7 @@ + <a href="0.7/phenote-zfin.jnlp">Phenote (standalone) 0.7 for zfin</a><br> @@ -423,6 +484,7 @@ + <br> @@ -430,6 +492,7 @@ + <a href="0.6/phenote-flybase.jnlp">Phenote 0.6 with fly anatomy</a><br> @@ -437,6 +500,7 @@ + <br> @@ -444,6 +508,7 @@ + <a href="0.6/phenote-zfin.jnlp">Phenote 0.6 with zebrafish anatomy</a><br> @@ -451,6 +516,7 @@ + <br> @@ -458,6 +524,7 @@ + <a href="0.5/phenote-flybase.jnlp">Phenote 0.5 webstart for FlyBase</a><br> @@ -465,6 +532,7 @@ + <br> @@ -472,6 +540,7 @@ + <a href="0.5/phenote-zfin.jnlp">Phenote 0.5 webstart for ZFIN</a><br> @@ -479,6 +548,7 @@ + <br> @@ -486,6 +556,7 @@ + <a href="0.4/phenote-flybase.jnlp">Phenote 0.4 webstart for FlyBase</a><br> @@ -493,6 +564,7 @@ + <br> @@ -500,6 +572,7 @@ + <a href="0.4/phenote-zfin.jnlp">Phenote 0.4 webstart for ZFIN</a><br> @@ -507,6 +580,7 @@ + <br> @@ -514,6 +588,7 @@ + <a href="0.3.1/phenote-webstart.jnlp">Phenote for CToL group (0.3.1)</a> (a special release for the CToL group that uses fish taxonomy)<br> @@ -523,6 +598,7 @@ + <br> @@ -530,6 +606,7 @@ + <a href="0.3/phenote-webstart.jnlp">Phenote 0.3</a><br> @@ -537,6 +614,7 @@ + <br> @@ -544,6 +622,7 @@ + <a href="0.2/phenote-webstart.jnlp">Phenote 0.2</a><br> @@ -551,6 +630,7 @@ + <br> @@ -558,6 +638,7 @@ + <a href="0.1/phenote-webstart.jnlp">Phenote 0.1</a><br> @@ -565,6 +646,7 @@ + <br> @@ -572,6 +654,7 @@ + <br> @@ -579,5 +662,6 @@ + </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-04-24 20:52:42
|
Revision: 494 http://svn.sourceforge.net/obo/?rev=494&view=rev Author: nlw Date: 2007-04-24 13:52:44 -0700 (Tue, 24 Apr 2007) Log Message: ----------- adding documentation on config customization... testing pic links Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml Added Paths: ----------- phenote/trunk/doc/phenote-website/images/config-data-adapter.png Modified: phenote/trunk/doc/phenote-website/content/howtos/customize.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 18:51:07 UTC (rev 493) +++ phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-04-24 20:52:44 UTC (rev 494) @@ -54,6 +54,18 @@ <p>To get a custom ontology that is local and not on SF, you'll have to copy it into ".phenote/obo-files/". Any reference to this ontology within your configuration file must match the filename. </p> <h2>Anatomy of the config file</h2> +You can download a sample configuration file <a href="/demo.cfg">here</a>. Descriptive images on this page are taken from this demo.cfg configuration file. +<h3>Data Adapters</h3> +<img src="/images/config-data-adapter.png" align="right" caption="Figure 1"> +<p> +The first customizable items in the configuration file are the Data Adapters (see Figure 1). Any developer can write their own data adapter and plug it into the configuration for use during file loading and saving, or for database retrieval. If you are interested in writing your own data adapter, please read the <a href="/developer-docs/dataadapter.html"> Data Adapter developer documentation</a>. <p> +<p> +You can add your customized data adapter at the top of the file. Additionally you can specify if it is "enabled". Enabling a data adapter makes it available during load/save functions. In the case of the example in Figure 1, the PhenoXML and NEXUS data adapters are disabled, while the phenosyntax and delimited adapters are enabled. </p> +<p> WARNING: Be sure to enable at least one data adapter, otherwise you will be unable to save your annotations.</p> + +<h3>Uvic-graph, term-history</h3> +These items are currently under development. By default they are disabled for the typical user. + <h2>Fields, types</h2> <h2>Making edits to a config file</h2> </div> Added: phenote/trunk/doc/phenote-website/images/config-data-adapter.png =================================================================== (Binary files differ) Property changes on: phenote/trunk/doc/phenote-website/images/config-data-adapter.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |