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: <ba...@us...> - 2007-10-08 21:10:33
|
Revision: 980 http://obo.svn.sourceforge.net/obo/?rev=980&view=rev Author: balhoff Date: 2007-10-08 14:10:36 -0700 (Mon, 08 Oct 2007) Log Message: ----------- Fixed phenomap config to check for and download ontology updates. Fixes tracker issue 1809784. Modified Paths: -------------- phenote/trunk/conf/phenomap.cfg Modified: phenote/trunk/conf/phenomap.cfg =================================================================== --- phenote/trunk/conf/phenomap.cfg 2007-10-08 20:26:12 UTC (rev 979) +++ phenote/trunk/conf/phenomap.cfg 2007-10-08 21:10:36 UTC (rev 980) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<ns:phenote-configuration version="1.0" xmlns:ns="phenote/config/xml" name="PhenoMaP Configuration" author="Jim Balhoff" description="This configuration is used by curators with the PhenoMaP project at NESCent."> +<ns:phenote-configuration version="1.1" xmlns:ns="phenote/config/xml" name="PhenoMaP Configuration" author="Jim Balhoff" description="This configuration is used by curators with the PhenoMaP project at NESCent."> <ns:master-to-local-config mode="WIPEOUT" when="ALWAYS"/> <ns:log config-file="conf/log4j-phenomap.xml"/> @@ -8,7 +8,6 @@ <ns:auto-update-ontologies enable="true"/> <ns:update-timer timer="0"/> <ns:autocomplete-settings term="true" synonym="true" definition="false" obsolete="false"/> - <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> @@ -28,15 +27,15 @@ <ns:field name="Specimen Count" syntax-abbrev="SpecimenCount" enable="true" groups="default specimen-list"/> <ns:field name="Preparation" syntax-abbrev="SpecimenPreparation" enable="true" groups="default specimen-list"/> <ns:field name="Entity" syntax-abbrev="E" enable="true" groups="default"> - <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> - <ns:ontology name="Entity" file="teleost_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" namespace="teleost_anatomy"/> + <ns:ontology name="Relationship" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo" is-postcomp-rel="true"/> + <ns:ontology name="Entity" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/gross_anatomy/animal_gross_anatomy/fishteleost_anatomy.obo" namespace="teleost_anatomy"/> </ns:field> <ns:field name="Quality" syntax-abbrev="Q" enable="true" groups="default"> - <ns:ontology name="Quality" file="quality.obo" repos-subdir="phenotype"/> + <ns:ontology name="Quality" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/quality.obo"/> </ns:field> <ns:field name="Additional Entity" syntax-abbrev="E2" enable="true" groups="default"> - <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> - <ns:ontology name="Additional Entity" file="teleost_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish"/> + <ns:ontology name="Relationship" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo" is-postcomp-rel="true"/> + <ns:ontology name="Additional Entity" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/gross_anatomy/animal_gross_anatomy/fishteleost_anatomy.obo"/> </ns:field> <ns:field name="Measurement" syntax-abbrev="M" enable="true" groups="default"/> <ns:field name="Unit" syntax-abbrev="U" enable="true" groups="default"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-08 20:26:08
|
Revision: 979 http://obo.svn.sourceforge.net/obo/?rev=979&view=rev Author: balhoff Date: 2007-10-08 13:26:12 -0700 (Mon, 08 Oct 2007) Log Message: ----------- Removed colwidth attributes from config - not used anymore. Modified Paths: -------------- phenote/trunk/conf/antibody.cfg phenote/trunk/conf/birn.cfg Modified: phenote/trunk/conf/antibody.cfg =================================================================== --- phenote/trunk/conf/antibody.cfg 2007-10-08 19:10:44 UTC (rev 978) +++ phenote/trunk/conf/antibody.cfg 2007-10-08 20:26:12 UTC (rev 979) @@ -41,7 +41,7 @@ <ns:ontology name="CL" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/cell_type/cell.obo"/> <ns:ontology name="SP" file="spatial.obo"/> </ns:field> - <ns:field name="Quality" syntax-abbrev="Q" enable="true" colwidth="150"> + <ns:field name="Quality" syntax-abbrev="Q" enable="true"> <ns:ontology file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/quality.obo" name="Quality"/> </ns:field> <ns:field name="Stage" syntax-abbrev="stage"> Modified: phenote/trunk/conf/birn.cfg =================================================================== --- phenote/trunk/conf/birn.cfg 2007-10-08 19:10:44 UTC (rev 978) +++ phenote/trunk/conf/birn.cfg 2007-10-08 20:26:12 UTC (rev 979) @@ -12,16 +12,16 @@ <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> <!--******************** FIELD DEFINITIONS ***********************--> <ns:autocomplete-settings term="true" synonym="true" definition="false" obsolete="false"/> - <ns:field name="Pub" datatag="PUB" enable="true" desc="The provenance for this data" colwidth="150"/> + <ns:field name="Pub" datatag="PUB" enable="true" desc="The provenance for this data"/> <!-- for smart atlas --> <ns:field name="Image Name" datatag="imagename" enable="true" desc="Name of image"/> - <ns:field name="Organism" enable="true" datatag="GT" desc="This is like the genotype; its probably a mouse strain or some other identifying factor" colwidth="67"/> - <ns:field name="Phenotypic Character" enable="true" desc="This is a free-text field for phenotype characters for now, not exactly sure what this captures; it might be just a grouping or it might be conclusions, or something else entirely" colwidth="96"/> + <ns:field name="Organism" enable="true" datatag="GT" desc="This is like the genotype; its probably a mouse strain or some other identifying factor"/> + <ns:field name="Phenotypic Character" enable="true" desc="This is a free-text field for phenotype characters for now, not exactly sure what this captures; it might be just a grouping or it might be conclusions, or something else entirely"/> - <ns:field name="Entity" datatag="E" min-completion-chars="2" enable="true" colwidth="150"> + <ns:field name="Entity" datatag="E" min-completion-chars="2" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo"/> <ns:ontology name="SAO" file="SAO.obo"/> <ns:ontology name="BIRNLex" file="BIRNLex.obo"/> @@ -35,11 +35,11 @@ file="http://www.berkeleybop.org/ontologies/obo-all/disease_ontology/disease_ontology.obo"/--> </ns:field> - <ns:field name="Quality" datatag="Q" enable="true" colwidth="150"> + <ns:field name="Quality" datatag="Q" enable="true"> <ns:ontology file="http://www.berkeleybop.org/ontologies/obo-all/quality/quality.obo" name="Quality"/> </ns:field> - <ns:field name="Add'l Entity" datatag="E2" min-completion-chars="2" enable="true" colwidth="114"> + <ns:field name="Add'l Entity" datatag="E2" min-completion-chars="2" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo"/> <ns:ontology name="SAO" file="SAO.obo"/> <ns:ontology name="BIRNLex" file="BIRNLex.obo"/> @@ -53,9 +53,9 @@ file="http://www.berkeleybop.org/ontologies/obo-all/disease_ontology/disease_ontology.obo"/--> </ns:field> - <ns:field name="Compare To" datatag="Compar" enable="true" colwidth="112"/> - <ns:field name="Description" datatag="Desc" enable="true" colwidth="189"/> - <ns:field name="Comment" datatag="Comm" enable="true" colwidth="886"/> + <ns:field name="Compare To" datatag="Compar" enable="true"/> + <ns:field name="Description" datatag="Desc" enable="true"/> + <ns:field name="Comment" datatag="Comm" enable="true"/> <ns:field name="Image Source" datatag="imagesource" enable="true" desc="Source of image"/> <ns:field name="Annot type" datatag="annotationtype" enable="true" desc="Point,line,area,entireimage"/> <ns:field name="Regions" datatag="regions" enable="true" desc="comma delim list of regions, break into sep chars?"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-10-08 19:11:43
|
Revision: 978 http://obo.svn.sourceforge.net/obo/?rev=978&view=rev Author: nlw Date: 2007-10-08 12:10:44 -0700 (Mon, 08 Oct 2007) Log Message: ----------- revise website: revised dates/notes, etc. Modified Paths: -------------- phenote/trunk/doc/phenote-website/events.shtml phenote/trunk/doc/phenote-website/index.shtml Modified: phenote/trunk/doc/phenote-website/events.shtml =================================================================== --- phenote/trunk/doc/phenote-website/events.shtml 2007-10-08 16:04:33 UTC (rev 977) +++ phenote/trunk/doc/phenote-website/events.shtml 2007-10-08 19:10:44 UTC (rev 978) @@ -17,23 +17,16 @@ </div> <h1>Upcoming Events, 2007</h1> - <h2>September</h2> - <ul> - <li> - </li> - </ul> <h2>October</h2> <ul> - <li>Oct 2, Phenote Users Group, Online - </li> <li>Oct 23-25, Ontology Best Practices Workshop, <a href="http://www.cs.uoregon.edu/~dhowe/biocurator/">Biocurator Meeting</a>, Hayes Mansion, San Jose, CA </li> </ul> <h2>November</h2> <ul> - <li>Nov 6, Phenote Users Group, Online + <li>Nov 1, Phenote Users Group, Online via WebEx </li> <li>Nov 27, <a href="http://www.bioontology.org/">NCBO</a> Scientific Advisory Board meeting</li> </ul> @@ -45,6 +38,10 @@ </ul> <h1>Past News and Events, 2007</h1> + <h2>October</h2> + <li>Oct 2, Phenote Users Group, Online via WebEx + </li> + <h2>September</h2> <ul> <li>Sept 17, New website released Modified: phenote/trunk/doc/phenote-website/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/index.shtml 2007-10-08 16:04:33 UTC (rev 977) +++ phenote/trunk/doc/phenote-website/index.shtml 2007-10-08 19:10:44 UTC (rev 978) @@ -102,7 +102,7 @@ <li class="events"> <p class="quick_link"> <img src="images/star.gif" alt="" class="icon_green"/> - <a href="http://www.phenote.org/irc_chat">User's Group Monthly Meeting</a>, October 4, 8:30am, Online + <a href="http://www.phenote.org/irc_chat">User's Group Monthly Meeting</a>, November 1, 9:00am, Online </p> </li> </ul> @@ -129,7 +129,8 @@ <!--No news is good news!--> <!-- Do not destry the following event template --> - <p>09.17.2007 - New website rolled out! The website has the same + <p>10.02.2007 - Phenote user's group to be moved to first Thursday of each month, 9am. Join us for our next meeting on November 1st over WebEx!</p> + <p>09.17.2007 - New website rolled out! The website has the same content as the old one, just with a new look-and-feel.</p> <p> 08.28.2007 - <a href="http://www.phenote.org/download.shtml">New Phenote Beta available: 1.4-beta3!</a> </p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-08 16:04:36
|
Revision: 977 http://obo.svn.sourceforge.net/obo/?rev=977&view=rev Author: mgibson Date: 2007-10-08 09:04:33 -0700 (Mon, 08 Oct 2007) Log Message: ----------- made addititviy false - as jim noticed - which makes for non redundant message to log file - thanks jim for noticing that Modified Paths: -------------- phenote/trunk/conf/log4j.xml phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java phenote/trunk/src/java/phenote/main/Phenote.java Modified: phenote/trunk/conf/log4j.xml =================================================================== --- phenote/trunk/conf/log4j.xml 2007-10-08 14:57:22 UTC (rev 976) +++ phenote/trunk/conf/log4j.xml 2007-10-08 16:04:33 UTC (rev 977) @@ -19,7 +19,7 @@ </layout> </appender> - <category name="phenote" additivity="true"> + <category name="phenote" additivity="false"> <priority value="debug"/> <appender-ref ref="MAIN" /> <appender-ref ref="console"/> Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-10-08 14:57:22 UTC (rev 976) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-10-08 16:04:33 UTC (rev 977) @@ -502,7 +502,7 @@ } /** Load obo session with obo edit adapter, unless previously loaded - reuse - this is old - phase out! */ + this is old - phase out! - multi obos */ private void loadOboSession(Ontology o,OntologyConfig oc) throws OntologyException { // check cache of ontologies to see if ontology file already loaded if (fileIsInCache(oc.getFile())) { @@ -525,7 +525,8 @@ o.setTimestamp(previousOntol.getTimestamp()); o.setSource(previousOntol.getSource()); } - /** If repository is configured loads obo from repos if local out of date */ + /** If repository is configured loads obo from repos if local out of date + old - phase out - multi obo sessions*/ private void loadOboSessionCheckRepos(Ontology o,OntologyConfig oc) throws OntologyException { int progress = phenote.loadingScreen.getStartupProgress(); Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-08 14:57:22 UTC (rev 976) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-08 16:04:33 UTC (rev 977) @@ -74,20 +74,21 @@ public static void main(String[] args) { standalone = true; // i think this is ok - // Check whether the root logger has an appender; there does not appear - // to be a more direct way to check whether Log4J has already been - // initialized. Note that the root logger's appender can always be - // set to a NullAppender, so this does not restrict the utility of - // the logging in any way. - Logger rl = LogManager.getRootLogger(); - Enumeration<?> appenders = rl.getAllAppenders(); - if (!appenders.hasMoreElements()) { - System.out.println("Log4J configuration failed, using default configuration settings"); - BasicConfigurator.configure(); - rl.setLevel(Level.INFO); - LOG = LogManager.getLogger(Phenote.class); - } + // Check whether the root logger has an appender; there does not appear + // to be a more direct way to check whether Log4J has already been + // initialized. Note that the root logger's appender can always be + // set to a NullAppender, so this does not restrict the utility of + // the logging in any way. + Logger rl = LogManager.getRootLogger(); + Enumeration<?> appenders = rl.getAllAppenders(); + if (!appenders.hasMoreElements()) { + System.out.println("Log4J configuration failed, using default configuration settings"); + BasicConfigurator.configure(); + rl.setLevel(Level.INFO); + LOG = LogManager.getLogger(Phenote.class); + } + // writes error events to log ErrorManager.inst().addErrorListener(new LogErrorListener()); String v = "This is Phenote version "+PhenoteVersion.versionString(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-08 14:57:19
|
Revision: 976 http://obo.svn.sourceforge.net/obo/?rev=976&view=rev Author: mgibson Date: 2007-10-08 07:57:22 -0700 (Mon, 08 Oct 2007) Log Message: ----------- added conf to phenote script classpath to pick up log4j config file Modified Paths: -------------- phenote/trunk/phenote Modified: phenote/trunk/phenote =================================================================== --- phenote/trunk/phenote 2007-10-08 02:04:37 UTC (rev 975) +++ phenote/trunk/phenote 2007-10-08 14:57:22 UTC (rev 976) @@ -1,6 +1,7 @@ #!/bin/sh -PHENOTE_CLASSPATH=classfiles +## have to add conf directory to pick up log4j config file +PHENOTE_CLASSPATH=classfiles:conf for file in jars/*.jar; do if [ $file != jars/phenote.jar ]; then #echo "Adding ${file} to CLASSPATH" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-08 02:04:34
|
Revision: 975 http://obo.svn.sourceforge.net/obo/?rev=975&view=rev Author: balhoff Date: 2007-10-07 19:04:37 -0700 (Sun, 07 Oct 2007) Log Message: ----------- Simplified log4j configuration. "log4j.xml" should be in classpath and is automatically used by log4j. If a different logging configuration is desired, a custom file can be specified via Java properties, such as on command-line as -Dlog4j.configuration="pathtofile". Modified Paths: -------------- phenote/trunk/build.xml phenote/trunk/src/java/phenote/main/CommandLine.java phenote/trunk/src/java/phenote/main/Phenote.java Added Paths: ----------- phenote/trunk/conf/log4j.xml Removed Paths: ------------- phenote/trunk/conf/log4j-standalone.xml Modified: phenote/trunk/build.xml =================================================================== --- phenote/trunk/build.xml 2007-10-07 00:29:05 UTC (rev 974) +++ phenote/trunk/build.xml 2007-10-08 02:04:37 UTC (rev 975) @@ -95,6 +95,8 @@ <!-- arg value="-c configfilehereventually"/ --> <classpath> <pathelement path="${classfiles}"/> + <!-- for log4j --> + <pathelement path="${conf}"/> <fileset dir="${lib}"> <include name="*.jar"/> <exclude name="phenote.jar"/> @@ -240,6 +242,7 @@ <fileset dir="${classfiles}"/> <fileset dir="." includes="obo-files/" excludes="obo-files/old"/> <fileset file="${conf}/*.cfg"/> + <fileset file="${conf}/log4j.xml"/> <fileset dir="." includes="${conf}/*.xml"/> <fileset dir="." includes="images/"/> <fileset dir="doc/phenote-website" includes="help/**"/> Deleted: phenote/trunk/conf/log4j-standalone.xml =================================================================== --- phenote/trunk/conf/log4j-standalone.xml 2007-10-07 00:29:05 UTC (rev 974) +++ phenote/trunk/conf/log4j-standalone.xml 2007-10-08 02:04:37 UTC (rev 975) @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> -<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> - - <appender name="MAIN" class="org.apache.log4j.RollingFileAppender"> - <param name="File" value="phenote_log4j.log" /> - <param name="Append" value="true" /> - <param name="MaxFileSize" value="1MB" /> - <param name="MaxBackupIndex" value="10" /> - <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" value="%d [%t] %-5p %c{2} - %m%n"/> - </layout> - </appender> - - <appender name="console" class="org.apache.log4j.ConsoleAppender"> - <layout class="org.apache.log4j.PatternLayout"> - <param name="ConversionPattern" value="%d [%t] %-5p %c{2} - %m%n"/> - </layout> - </appender> - - <category name="phenote" additivity="true"> - <priority value="debug"/> - <appender-ref ref="MAIN" /> - <appender-ref ref="console"/> - </category> - - <root> - <priority value="info" /> - <appender-ref ref="MAIN" /> - </root> -</log4j:configuration> - Copied: phenote/trunk/conf/log4j.xml (from rev 964, phenote/trunk/conf/log4j-standalone.xml) =================================================================== --- phenote/trunk/conf/log4j.xml (rev 0) +++ phenote/trunk/conf/log4j.xml 2007-10-08 02:04:37 UTC (rev 975) @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> +<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> + + <appender name="MAIN" class="org.apache.log4j.RollingFileAppender"> + <param name="File" value="phenote_log4j.log" /> + <param name="Append" value="true" /> + <param name="MaxFileSize" value="1MB" /> + <param name="MaxBackupIndex" value="10" /> + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%d [%t] %-5p %c{2} - %m%n"/> + </layout> + </appender> + + <appender name="console" class="org.apache.log4j.ConsoleAppender"> + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%d [%t] %-5p %c{2} - %m%n"/> + </layout> + </appender> + + <category name="phenote" additivity="true"> + <priority value="debug"/> + <appender-ref ref="MAIN" /> + <appender-ref ref="console"/> + </category> + + <root> + <priority value="info" /> + <appender-ref ref="MAIN" /> + </root> +</log4j:configuration> + Modified: phenote/trunk/src/java/phenote/main/CommandLine.java =================================================================== --- phenote/trunk/src/java/phenote/main/CommandLine.java 2007-10-07 00:29:05 UTC (rev 974) +++ phenote/trunk/src/java/phenote/main/CommandLine.java 2007-10-08 02:04:37 UTC (rev 975) @@ -1,7 +1,5 @@ package phenote.main; -import org.apache.log4j.xml.DOMConfigurator; - import phenote.config.Config; import phenote.config.ConfigException; import phenote.dataadapter.DataAdapterI; @@ -174,8 +172,9 @@ } public void execute() throws Exception { logSpecified = true; + // this has been superseded by just using default log4j initialization procedure // try { - DOMConfigurator.configure(getArg()); +// DOMConfigurator.configure(getArg()); // } // catch (FileNotFoundException e) { // //phenote.splashScreen.setProgress("bad file:"+e.getMessage(),10); Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-07 00:29:05 UTC (rev 974) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-08 02:04:37 UTC (rev 975) @@ -10,7 +10,6 @@ import java.io.FileNotFoundException; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; -import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; @@ -30,7 +29,6 @@ import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; -import org.apache.log4j.xml.DOMConfigurator; import phenote.charactertemplate.CharacterTemplateController; import phenote.config.Config; @@ -75,37 +73,20 @@ public static void main(String[] args) { standalone = true; // i think this is ok - // set up logging with default logger until we read in log file from - // config file - try { - URL u = FileUtil.findUrl(Config.defaultLogConfigFile); - DOMConfigurator.configure(u); - } - catch (FileNotFoundException e) { - System.out.println("Default log cfg file not found "+e); - // should then configure up default log with sys out and .phenote file... - // stolen from apollo - // Attempt to detect whether the standard Log4J configuration has failed - // (e.g., because the conf file in the log4j.configuration variable was not - // found.) If it has failed then fall back to the default configuration - // implemented in BasicConfigurator. - //static { + // Check whether the root logger has an appender; there does not appear // to be a more direct way to check whether Log4J has already been // initialized. Note that the root logger's appender can always be // set to a NullAppender, so this does not restrict the utility of // the logging in any way. Logger rl = LogManager.getRootLogger(); - Enumeration appenders = rl.getAllAppenders(); - + Enumeration<?> appenders = rl.getAllAppenders(); if (!appenders.hasMoreElements()) { System.out.println("Log4J configuration failed, using default configuration settings"); BasicConfigurator.configure(); rl.setLevel(Level.INFO); + LOG = LogManager.getLogger(Phenote.class); } - LOG = LogManager.getLogger(Phenote.class); - //} - } // writes error events to log ErrorManager.inst().addErrorListener(new LogErrorListener()); @@ -148,22 +129,9 @@ 4. loading into datamodel - display name - this is the bulk of the time */ - // put this is in a phenote.util.Log class? - get file from config - default? phenote.splashScreen.setProgress("Configuring...", 10); phenote.loadingScreen.setMessageText("Loading configuration: "+Config.inst().getConfigName()); phenote.loadingScreen.setProgress(5); - // LOG4J - if (!phenote.commandLine.isLogSpecified()) { - try { DOMConfigurator.configure(Config.inst().getLogConfigUrl()); } - catch (FileNotFoundException e) { - phenote.splashScreen.setProgress("bad file:"+e.getMessage(),10); - phenote.loadingScreen.setMessageText("Bad config: "+e.getMessage()); - LOG.error(e.getMessage()); - } - } - - LOG.debug("debug test2 of log4j"); - phenote.splashScreen.setProgress("Initializing Ontologies...", 20); phenote.loadingScreen.setMessageText("Initializing Ontologies"); phenote.loadingScreen.setProgress(10); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-07 00:29:01
|
Revision: 974 http://obo.svn.sourceforge.net/obo/?rev=974&view=rev Author: cmungall Date: 2007-10-06 17:29:05 -0700 (Sat, 06 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/rdf/d2rq/obd-d2rq.n3 Modified: obo-database/trunk/rdf/d2rq/obd-d2rq.n3 =================================================================== --- obo-database/trunk/rdf/d2rq/obd-d2rq.n3 2007-10-07 00:19:23 UTC (rev 973) +++ obo-database/trunk/rdf/d2rq/obd-d2rq.n3 2007-10-07 00:29:05 UTC (rev 974) @@ -61,6 +61,7 @@ d2rq:join "node.node_id = is_a_link.node_id" ; d2rq:belongsToClassMap map:Node . +# reify all links map:nodeLink a d2rq:PropertyBridge ; d2rq:property oban:link ; d2rq:uriPattern "node/@@link.object_id@@" ; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-07 00:02:09
|
Revision: 972 http://obo.svn.sourceforge.net/obo/?rev=972&view=rev Author: cmungall Date: 2007-10-06 17:02:13 -0700 (Sat, 06 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/bin/obd-create-db.pl obo-database/trunk/bin/obd-load-db-from-obo.pl Added Paths: ----------- obo-database/trunk/build/build-omim/ Modified: obo-database/trunk/bin/obd-create-db.pl =================================================================== --- obo-database/trunk/bin/obd-create-db.pl 2007-10-07 00:01:00 UTC (rev 971) +++ obo-database/trunk/bin/obd-create-db.pl 2007-10-07 00:02:13 UTC (rev 972) @@ -46,10 +46,15 @@ run("psql $args < $sqldir/obd-core-functions.plpgsql "); if ($conf_file) { + my $dir = `dirname $conf_file`; + chomp $dir; open(F,$conf_file); while(<F>) { chomp; if (/^http:/ || /^file:/) { + if (/^file:\.\/(.*)/) { + $_ = "file://$dir/$1"; + } push(@files, $_); } else { Modified: obo-database/trunk/bin/obd-load-db-from-obo.pl =================================================================== --- obo-database/trunk/bin/obd-load-db-from-obo.pl 2007-10-07 00:01:00 UTC (rev 971) +++ obo-database/trunk/bin/obd-load-db-from-obo.pl 2007-10-07 00:02:13 UTC (rev 972) @@ -58,6 +58,9 @@ $file=$nu; $is_tmp=1; } + elsif ($file =~ /^file:(.*)$/) { + $file = $1; + } my $ifile = "$file.implied.obo"; if ($use_reasoner) { run("obo2obo -o -saveallimpliedlinks $ifile $file"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-07 00:01:01
|
Revision: 971 http://obo.svn.sourceforge.net/obo/?rev=971&view=rev Author: cmungall Date: 2007-10-06 17:01:00 -0700 (Sat, 06 Oct 2007) Log Message: ----------- Added Paths: ----------- obo-database/trunk/conf/ obo-database/trunk/conf/fma-part-slim.obo obo-database/trunk/conf/obd-go.conf obo-database/trunk/conf/obd-phenotype.conf Added: obo-database/trunk/conf/fma-part-slim.obo =================================================================== --- obo-database/trunk/conf/fma-part-slim.obo (rev 0) +++ obo-database/trunk/conf/fma-part-slim.obo 2007-10-07 00:01:00 UTC (rev 971) @@ -0,0 +1 @@ +link /Users/cjm/cvs/fma-conversion/fma-part-slim.obo \ No newline at end of file Property changes on: obo-database/trunk/conf/fma-part-slim.obo ___________________________________________________________________ Name: svn:special + * Added: obo-database/trunk/conf/obd-go.conf =================================================================== --- obo-database/trunk/conf/obd-go.conf (rev 0) +++ obo-database/trunk/conf/obd-go.conf 2007-10-07 00:01:00 UTC (rev 971) @@ -0,0 +1,10 @@ +relationship +ro_proposed +quality +biological_process +molecular_function +cellular_component +cell +chebi +go_xp_cell +go_xp_chebi Added: obo-database/trunk/conf/obd-phenotype.conf =================================================================== --- obo-database/trunk/conf/obd-phenotype.conf (rev 0) +++ obo-database/trunk/conf/obd-phenotype.conf 2007-10-07 00:01:00 UTC (rev 971) @@ -0,0 +1,16 @@ +relationship +ro_proposed +quality +zebrafish_anatomy +fly_anatomy +adult_mouse_anatomy +biological_process +molecular_function +cellular_component +cell +mammalian_phenotype +mammalian_phenotype_xp +plant_trait +plant_trait_xp +chebi +file:./fma-part-slim.obo This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-06 23:54:01
|
Revision: 970 http://obo.svn.sourceforge.net/obo/?rev=970&view=rev Author: cmungall Date: 2007-10-06 16:54:01 -0700 (Sat, 06 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/bin/obd-create-db.pl Added Paths: ----------- obo-database/trunk/build/ obo-database/trunk/build/Makefile obo-database/trunk/build/Makefile-Build-Generic obo-database/trunk/build/build-hgnc/ obo-database/trunk/build/build-hgnc/Makefile obo-database/trunk/build/build-hgnc/hgnc-map.xsl obo-database/trunk/build/build-hgnc/hgnc.tab obo-database/trunk/build/build-homologene/ obo-database/trunk/build/build-ncbi-gene/ Modified: obo-database/trunk/bin/obd-create-db.pl =================================================================== --- obo-database/trunk/bin/obd-create-db.pl 2007-10-06 23:04:21 UTC (rev 969) +++ obo-database/trunk/bin/obd-create-db.pl 2007-10-06 23:54:01 UTC (rev 970) @@ -49,13 +49,12 @@ open(F,$conf_file); while(<F>) { chomp; - if (/^http:/ || /$file:/) { + if (/^http:/ || /^file:/) { push(@files, $_); } else { push(@files,"http://purl.org/obo/obo-all/$_/$_.obo"); } -# push(@files,"obo-all/$_/$_.obo"); } close(F); } Added: obo-database/trunk/build/Makefile =================================================================== --- obo-database/trunk/build/Makefile (rev 0) +++ obo-database/trunk/build/Makefile 2007-10-06 23:54:01 UTC (rev 970) @@ -0,0 +1,22 @@ +.PRECIOUS: %.obo + +%.obd-createdb: + obd-create-db.pl -d $* && touch $@ +.PRECIOUS: %.obd-createdb + +%.obd-load: %.obo %.obd-createdb + obd-load-db-from-obo.pl -d $* $(OBD_LOAD_ARGS) $< >& $@.log && touch $@ +.PRECIOUS: %.obd-load + +%.obd-pgdump: %.obd-load + pg_dump -d $* > $@.tmp && mv $@.tmp $@ + +%.obd-node.obdsql: + selectall_xml.pl -d $* /obd-node-export > $@.tmp && mv $@.tmp $@ + +%.obd-node-tagval.obdsql: + selectall_xml.pl -d $* /obd-node-tagval-export > $@.tmp && mv $@.tmp $@ + +%.gz: % + gzip $< + Added: obo-database/trunk/build/Makefile-Build-Generic =================================================================== --- obo-database/trunk/build/Makefile-Build-Generic (rev 0) +++ obo-database/trunk/build/Makefile-Build-Generic 2007-10-06 23:54:01 UTC (rev 970) @@ -0,0 +1 @@ +link Makefile \ No newline at end of file Property changes on: obo-database/trunk/build/Makefile-Build-Generic ___________________________________________________________________ Name: svn:special + * Added: obo-database/trunk/build/build-hgnc/Makefile =================================================================== --- obo-database/trunk/build/build-hgnc/Makefile (rev 0) +++ obo-database/trunk/build/build-hgnc/Makefile 2007-10-06 23:54:01 UTC (rev 970) @@ -0,0 +1,2 @@ +hgnc.tab: + wget -O $@ 'http://www.gene.ucl.ac.uk/cgi-bin/nomenclature/gdlw.pl?title=Genew+output+data&hgnc_dbtag=on&col=gd_hgnc_id&col=gd_app_sym&col=gd_app_name&col=gd_status&col=gd_locus_type&col=gd_prev_sym&col=gd_prev_name&col=gd_aliases&col=gd_name_aliases&col=gd_pub_chrom_map&col=gd_pub_acc_ids&col=gd_pub_eg_id&col=gd_other_ids_list&col=gd_pub_refseq_ids&col=gd_gene_fam_name&col=md_eg_id&col=md_mim_id&col=md_refseq_id&col=md_prot_id&col=md_ensembl_id&status=Approved&status=Entry+Withdrawn&status_opt=2&=on&where=&order_by=gd_app_sym_sort&limit=&format=text&submit=submit&.cgifields=&.cgifields=chr&.cgifields=status&.cgifields=hgnc_dbtag' Added: obo-database/trunk/build/build-hgnc/hgnc-map.xsl =================================================================== --- obo-database/trunk/build/build-hgnc/hgnc-map.xsl (rev 0) +++ obo-database/trunk/build/build-hgnc/hgnc-map.xsl 2007-10-06 23:54:01 UTC (rev 970) @@ -0,0 +1,12 @@ +<map> + <colgroup id="genotype" unique="Genotype"> + <instance> + <id select="HGNC_ID"/> + <instance_of>SO:0000704</instance_of> <!-- gene --> + <name select="ApprovedSymbol"/> + <synonym> + <synonym_text scope="EXACT" select="ApprovedSymbol"/> + </synonym> + </instance> + </colgroup> +</map> Added: obo-database/trunk/build/build-hgnc/hgnc.tab =================================================================== --- obo-database/trunk/build/build-hgnc/hgnc.tab (rev 0) +++ obo-database/trunk/build/build-hgnc/hgnc.tab 2007-10-06 23:54:01 UTC (rev 970) @@ -0,0 +1,27380 @@ +HGNC ID Approved Symbol Approved Name Status Locus Type Previous Symbols Previous Names Aliases Name Aliases Chromosome Accession Numbers Entrez Gene ID Specialist Database IDs RefSeq IDs Gene Family Name Entrez Gene ID (mapped data) OMIM ID (mapped data) RefSeq (mapped data) UniProt ID (mapped data) Ensembl ID (mapped data) +HGNC:5 A1BG alpha-1-B glycoprotein Approved undef 19q 1 , , , , , , , , , I43.950 NM_130786 1 138670 NM_130786 P04217 ENSG00000121410 +HGNC:6 A1S9T~withdrawn symbol withdrawn, see UBE1 Symbol Withdrawn undef , , , , , , , , , +HGNC:7 A2M alpha-2-macroglobulin Approved gene with protein product, function known or inferred FWP007, S863-7, CPAMD5 12p13.31 BX647329, X68728, M11313 2 , , , , , , , , , I39.001 NM_000014 2 103950 NM_000014 P01023 ENSG00000175899 +HGNC:23336 A2ML1 alpha-2-macroglobulin-like 1 Approved gene with protein product, function known or inferred CPAMD9 "C3 and PZP-like, alpha-2-macroglobulin domain containing 9" FLJ25179 12p13 AK057908 144568 , , , , , , , , , NM_144670 144568 610627 NM_144670 Q6ZW52 ENSG00000166535 +HGNC:8 A2MP alpha-2-macroglobulin pseudogene Approved pseudogene 12p13.3-p12.3 M24415 , , , , , , , , , 3 +HGNC:10 A2MRAP~withdrawn symbol withdrawn, see LRPAP1 Symbol Withdrawn undef , , , , , , , , , +HGNC:9 A2MR~withdrawn symbol withdrawn, see LRP1 Symbol Withdrawn undef , , , , , , , , , +HGNC:30005 A3GALT2 alpha 1,3-galactosyltransferase 2 (isoglobotriaosylceramide synthase) Approved gene with protein product, function known or inferred "iGb3 synthase" 1p35.1 127550 , , , , , , , , , NM_001080438 127550 XM_940724 Q5T0B8 ENSG00000184389 +HGNC:18149 A4GALT alpha 1,4-galactosyltransferase (globotriaosylceramide synthase) Approved gene with protein product, function known or inferred "alpha 1,4-galactosyltransferase (globotriaosylceramide synthase, P blood group)" A14GALT "Gb3 synthase", " CD77 synthase" 22q13.2 53947 , , , , , , , , , NM_017436 53947 607922 NM_017436 Q9NPC4 ENSG00000128274 +HGNC:17968 A4GNT alpha-1,4-N-acetylglucosaminyltransferase Approved gene with protein product, function unknown alpha4GnT 3p14.3 AF141315 51146 , , , , , , , , , NM_016161 51146 NM_016161 Q9UNA3 ENSG00000118017 +HGNC:1 A12M1~withdrawn entry withdrawn Entry Withdrawn undef , , , , , , , , , +HGNC:2 A12M2~withdrawn entry withdrawn Entry Withdrawn undef , , , , , , , , , +HGNC:3 A12M3~withdrawn entry withdrawn Entry Withdrawn undef , , , , , , , , , +HGNC:4 A12M4~withdrawn entry withdrawn Entry Withdrawn undef , , , , , , , , , +HGNC:13666 AAAS achalasia, adrenocortical insufficiency, alacrimia (Allgrove, triple-A) Approved undef 12q13 AJ289841 , , , , , , , , , 8086 605378 NM_015665 Q9NRG9 ENSG00000094914 +HGNC:12 AABT~withdrawn entry withdrawn Entry Withdrawn undef , , , , , , , , , +HGNC:13 AAC1~withdrawn symbol withdrawn, see NAT1 Symbol Withdrawn undef , , , , , , , , , +HGNC:14 AAC2~withdrawn symbol withdrawn, see NAT2 Symbol Withdrawn undef , , , , , , , , , +HGNC:15 AACP arylamide acetylase pseudogene Approved pseudogene NATP 8p22 X17060 , , , , , , , , , 11 +HGNC:21298 AACS acetoacetyl-CoA synthetase Approved gene with protein product, function known or inferred FLJ12389, SUR-5 12q24.31 AK022451 65985 , , , , , , , , , NM_023928 65985 NM_023928 Q86V21 ENSG00000081760 +HGNC:18226 AACSL acetoacetyl-CoA synthetase-like Approved gene with protein product, function unknown 5q35 401224 , , , , , , , , , XM_373104 401224 XM_936764 +HGNC:13792 AACT~withdrawn symbol withdrawn, see SERPINA3 Symbol Withdrawn undef , , , , , , , , , +HGNC:17 AADAC arylacetamide deacetylase (esterase) Approved gene with protein product, function known or inferred DAC, CES5A1 3q21.3-q25.2 L32179 13 , , , , , , , , , S09.991 NM_001086 13 600338 NM_001086 P22760 ENSG00000114771 +HGNC:29260 AADACL1 arylacetamide deacetylase-like 1 Approved gene with protein product, function unknown KIAA1363 3q26.31 AB037784 57552 , , , , , , , , , S09.992 NM_020792 57552 NM_020792 Q6PIU2 ENSG00000144959 +HGNC:24427 AADACL2 arylacetamide deacetylase-like 2 Approved gene with protein product, function unknown MGC72001 3q25.1 BC065724 344752 , , , , , , , , , NM_207365 344752 NM_207365 Q6P093 ENSG00000197953 +HGNC:32037 AADACL3 arylacetamide deacetylase-like 3 Approved gene with protein product, inferred OTTHUMG00000001887 1p36.21 126767 , , , , , , , , , XM_928294 126767 XM_928294 ENSG00000188984 +HGNC:32038 AADACL4 arylacetamide deacetylase-like 4 Approved gene with protein product, function unknown OTTHUMG00000001889 1p36.21 343066 , , , , , , , , , NM_001013630 343066 NM_001013630 Q5VUY2 ENSG00000204518 +HGNC:17929 AADAT aminoadipate aminotransferase Approved gene with protein product, function known or inferred KATII, KAT2 "kynurenine aminotransferase II", "L kynurenine/alpha aminoadipate aminotransferase" 4q33 AF097994 51166 , , , , , , , , , NM_016228 51166 NM_016228 Q8N5Z0 ENSG00000109576 +HGNC:19679 AAK1 AP2 associated kinase 1 Approved gene with protein product, function known or inferred KIAA1048 2p24.3-p14 AB028971 22848 , , , , , , , , , NM_014911 22848 XM_941900 Q2M2I8 ENSG00000115977 +HGNC:18 AAMP angio-associated, migratory cell protein Approved gene with protein product, function unknown 2q AB209790 14 , , , , , , , , , NM_001087 14 603488 NM_001087 Q13685 ENSG00000127837 +HGNC:19 AANAT arylalkylamine N-acetyltransferase Approved gene with protein product, function known or inferred SNAT 17q25 U40347 15 , , , , , , , , , NM_001088 15 600950 NM_001088 Q16613 ENSG00000129673 +HGNC:20 AARS alanyl-tRNA synthetase Approved gene with protein product, function known or inferred "alanine tRNA ligase 1, cytoplasmic" 16q22 D32050 16 , , , , , , , , , NM_001605 aaRS2 16 601065 NM_001605 P49588 ENSG00000090861 +HGNC:21022 AARS2 alanyl-tRNA synthetase 2, mitochondrial (putative) Approved gene with protein product, function unknown AARSL "alanyl-tRNA synthetase like" KIAA1270, bA444E17.1 "alanine tRNA ligase 2, mitochondrial (putative)" 6p21.1 AB033096 57505 , , , , , , , , , NM_020745 aaRS2 57505 NM_020745 Q5JTZ9 ENSG00000124608 +HGNC:28417 AARSD1 alanyl-tRNA synthetase domain containing 1 Approved gene with protein product, function unknown MGC2744 17q21.31 BC004172 80755 , , , , , , , , , NM_025267 80755 NM_025267 Q9BTE6 ENSG00000108825 +HGNC:14235 AASDHPPT aminoadipate-semialdehyde dehydrogenase-phosphopantetheinyl transferase Approved gene with protein product, function known or inferred LYS5, CGI-80, AASD-PPT 11q22 AF302110 60496 , , , , , , , , , NM_015423 60496 607756 NM_015423 Q9NRN7 ENSG00000149313 +HGNC:17366 AASS aminoadipate-semialdehyde synthase Approved undef LORSDH, LKRSDH 7q31.3 AF229180 10157 , , , , , , , , , 10157 605113 NM_005763 Q9UDR5 ENSG00000008311 +HGNC:19235 AATF apoptosis antagonizing transcription factor Approved gene with protein product, function known or inferred DED, CHE-1, CHE1 17q12 AF083208 26574 , , , , , , , , , NM_012138 26574 608463 NM_012138 Q9NY61 ENSG00000108270 +HGNC:21 AATK apoptosis-associated tyrosine kinase Approved gene with protein product, function known or inferred AATYK, KIAA0641, LMTK1, LMR1 "lemur tyrosine kinase 1" 17q25.3 AB014541 9625 , , , , , , , , , NM_004920 9625 605276 XM_001128317 Q6ZMQ8 ENSG00000181409 +HGNC:22 AAVS1 adeno-associated virus integration site 1 Approved region AAV 19q13 S51329 17 , , , , , , , , , 17 102699 +HGNC:11 AA~withdrawn symbol withdrawn, see TEAD1 Symbol Withdrawn undef , , , , , , , , , +HGNC:23 ABAT 4-aminobutyrate aminotransferase Approved gene with protein product, function known or inferred GABAT 16p13.2 L32961 18 , , , , , , , , , NM_020686 18 137150 NM_000663 P80404 ENSG00000183044 +HGNC:24 ABC1~withdrawn symbol withdrawn, see ABCA1 Symbol Withdrawn undef , , , , , , , , , +HGNC:25 ABC2~withdrawn symbol withdrawn, see ABCA2 Symbol Withdrawn undef , , , , , , , , , +HGNC:26 ABC3~withdrawn symbol withdrawn, see ABCA3 Symbol Withdrawn undef , , , , , , , , , +HGNC:28 ABC7~withdrawn symbol withdrawn, see ABCB7 Symbol Withdrawn undef , , , , , , , , , +HGNC:27 ABC50~withdrawn symbol withdrawn, see ABCF1 Symbol Withdrawn undef , , , , , , , , , +HGNC:29 ABCA1 ATP-binding cassette, sub-family A (ABC1), member 1 Approved gene with protein product, function known or inferred ABC1, HDLDT1 TGD "Tangier disease" 9q31 AJ012376 19 , , , , , , , , , NM_005502 ABC 19 600046 NM_005502 O95477 ENSG00000165029 +HGNC:32 ABCA2 ATP-binding cassette, sub-family A (ABC1), member 2 Approved gene with protein product, function known or inferred ABC2 9q34 U18235 20 , , , , , , , , , NM_001606 ABC 20 600047 NM_001606 Q9BZC7 ENSG00000107331 +HGNC:33 ABCA3 ATP-binding cassette, sub-family A (ABC1), member 3 Approved gene with protein product, function known or inferred ABC3 ABC-C, EST111653, LBM180 16p13.3 U78735 21 , , , , , , , , , NM_001089 ABC 21 601615 NM_001089 Q99758 ENSG00000167972 +HGNC:34 ABCA4 ATP-binding cassette, sub-family A (ABC1), member 4 Approved gene with protein product, function known or inferred STGD1, ABCR, RP19, STGD FFM, ARMD2 "Stargardt disease" 1p22 U88667 24 , , , , , , , , , NM_000350 ABC 24 601691 NM_000350 P78363 ENSG00000198691 +HGNC:35 ABCA5 ATP-binding cassette, sub-family A (ABC1), member 5 Approved undef EST90625 17q21-q25 U66672 , , , , , , , , , ABC 23461 NM_018672 Q8WWZ7 ENSG00000154265 +HGNC:36 ABCA6 ATP-binding cassette, sub-family A (ABC1), member 6 Approved undef EST155051 17q21 U66680 , , , , , , , , , ABC 23460 NM_080284 Q8N139 ENSG00000154262 +HGNC:37 ABCA7 ATP-binding cassette, sub-family A (ABC1), member 7 Approved gene with protein product, function known or inferred ABCX 19p13.3 AF328787 10347 , , , , , , , , , NM_019112 ABC 10347 605414 NM_033308 Q8IZY2 ENSG00000064687 +HGNC:38 ABCA8 ATP-binding cassette, sub-family A (ABC1), member 8 Approved undef KIAA0822 17q24 AB020629 , , , , , , , , , ABC 10351 NM_007168 O94911 ENSG00000141338 +HGNC:39 ABCA9 ATP-binding cassette, sub-family A (ABC1), member 9 Approved gene with protein product, function known or inferred EST640918 17q24 AF423307 10350 , , , , , , , , , NM_172386 ABC 10350 NM_080283 Q8IUA7 ENSG00000154258 +HGNC:30 ABCA10 ATP-binding cassette, sub-family A (ABC1), member 10 Approved undef EST698739 17q24 AY247065 , , , , , , , , , ABC 10349 NM_080282 Q8WWZ4 ENSG00000154263 +HGNC:31 ABCA11 ATP-binding cassette, sub-family A (ABC1), member 11 (pseudogene) Approved pseudogene EST1133530, FLJ14297 4p16.3 AK024359 , , , , , , , , , NM_024903 ABC 79963 NR_002451 Q4W5N1 +HGNC:14637 ABCA12 ATP-binding cassette, sub-family A (ABC1), member 12 Approved undef DKFZP434G232 2q35 AF418105 , , , , , , , , , ABC 26154 607800 NM_015657 Q86UK0 ENSG00000144452 +HGNC:14638 ABCA13 ATP-binding cassette, sub-family A (ABC1), member 13 Approved gene with protein product, function known or inferred FLJ33876, FLJ33951 7p12.3 AY204751 154664 , , , , , , , , , NM_152701 ABC 154664 607807 NM_152701 Q86UQ4 ENSG00000179869 +HGNC:32972 ABCA17P ATP-binding cassette, sub-family A (ABC1), member 17 (pseudogene) Approved pseudogene, transcribed 16p13.3 , , , , , , , , , 767559 +HGNC:40 ABCB1 ATP-binding cassette, sub-family B (MDR/TAP), member 1 Approved gene with protein product, function known or inferred PGY1, MDR1, CLCS "colchicin sensitivity" P-gp, CD243, GP170, ABC20 7q21.12 M14758 5243 , , CD243, , , , , , , NM_000927 ABC, CD 5243 171050 NM_000927 P08183 ENSG00000085563 +HGNC:11563 ABCB2~withdrawn symbol withdrawn, see TAP1 Symbol Withdrawn undef , , , , , , , , , +HGNC:11564 ABCB3~withdrawn symbol withdrawn, see TAP2 Symbol Withdrawn undef , , , , , , , , , +HGNC:45 ABCB4 ATP-binding cassette, sub-family B (MDR/TAP), member 4 Approved gene with protein product, function known or inferred PGY3, MDR3 MDR2, PFIC-3, GBD1 7q21 M23234 5244 , , , , , , , , , NM_000443 ABC 5244 171060 NM_018849 P21439 ENSG00000005471 +HGNC:46 ABCB5 ATP-binding cassette, sub-family B (MDR/TAP), member 5 Approved undef EST422562 7p14 U66692 , , , , , , , , , ABC 340273 NM_178559 Q2M3G0 ENSG00000004846 +HGNC:47 ABCB6 ATP-binding cassette, sub-family B (MDR/TAP), member 6 Approved undef EST45597, umat 2q33-q36 AF070598 , , , , , , , , , ABC 10058 605452 NM_005689 Q9NP58 ENSG00000115657 +HGNC:48 ABCB7 ATP-binding cassette, sub-family B (MDR/TAP), member 7 Approved gene with protein product, function known or inferred ABC7 EST140535, Atm1p, ASAT Xq13.3 AF038950 22 , , , , , , , , , NM_004299 ABC 22 300135 NM_004299 O75027 ENSG00000131269 +HGNC:49 ABCB8 ATP-binding cassette, sub-family B (MDR/TAP), member 8 Approved undef EST328128, M-ABC1 7q35-q36 AF047690 , , , , , , , , , ABC 11194 605464 NM_007188 Q9NUT2 ENSG00000197150 +HGNC:50 ABCB9 ATP-binding cassette, sub-family B (MDR/TAP), member 9 Approved undef EST122234 12q24 U66676 , , , , , , , , , ABC 23457 605453 NM_019624 Q9NP78 ENSG00000150967 +HGNC:41 ABCB10 ATP-binding cassette, sub-family B (MDR/TAP), member 10 Approved undef EST20237 1q32 U18237 , , , , , , , , , ABC 23456 605454 NM_012089 Q9NRK6 ENSG00000135776 +HGNC:14114 ABCB10P ATP-binding cassette, sub-family B (MDR/TAP), member 10 pseudogene Approved pseudogene M-ABC2, MABC2 15q13-q14 AF218417 , , , , , , , , , ABC 56476 +HGNC:42 ABCB11 ATP-binding cassette, sub-family B (MDR/TAP), member 11 Approved undef BSEP, PFIC2 ABC16, SPGP, PFIC-2, PGY4 2q24 AF091582 , , , , , , , , , ABC 8647 603201 NM_003742 O95342 ENSG00000073734 +HGNC:51 ABCC1 ATP-binding cassette, sub-family C (CFTR/MRP), member 1 Approved undef MRP, MRP1 GS-X 16p13.1 L05628 , , , , , , , , , ABC 4363 158343 NM_019898 P33527 ENSG00000103222 +HGNC:53 ABCC2 ATP-binding cassette, sub-family C (CFTR/MRP), member 2 Approved undef CMOAT DJS, MRP2, cMRP 10q24 U63970 , , , , , , , , , ABC 1244 601107 NM_000392 Q92887 ENSG00000023839 +HGNC:54 ABCC3 ATP-binding cassette, sub-family C (CFTR/MRP), member 3 Approved undef MRP3, cMOAT2, EST90757, MLP2, MOAT-D 17q21 Y17151 , , , , , , , , , NM_020038 ABC 8714 604323 NM_003786 O15438 ENSG00000108846 +HGNC:55 ABCC4 ATP-binding cassette, sub-family C (CFTR/MRP), member 4 Approved undef MRP4, EST170205, MOAT-B 13q31 U66682 , , , , , , , , , ABC 10257 605250 NM_005845 O15439 ENSG00000125257 +HGNC:56 ABCC5 ATP-binding cassette, sub-family C (CFTR/MRP), member 5 Approved gene with protein product, function known or inferred MRP5, SMRP, EST277145, MOAT-C 3q27 AF104942 10057 , , , , , , , , , NM_005688 ABC 10057 605251 NM_005688 O15440 ENSG00000114770 +HGNC:57 ABCC6 ATP-binding cassette, sub-family C (CFTR/MRP), member 6 Approved gene with protein product, function known or inferred ARA, PXE "pseudoxanthoma elasticum" MRP6, EST349056, MLP1 16p13.1 AF076622 , , , , , , , , , ABC 368 603234 NM_001171 O95255 ENSG00000091262 +HGNC:33352 ABCC6P1 ATP-binding cassette, sub-family C, member 6 pseudogene 1 Approved pseudogene 16p12.3 BC075833 , , , , , , , , , 653190 NR_003569 +HGNC:33353 ABCC6P2 ATP-binding cassette, sub-family C, member 6 pseudogene 2 Approved pseudogene 16p13.11 , , , , , , , , , 100034250 +HGNC:58 ABCC7~withdrawn symbol withdrawn, see CFTR Symbol Withdrawn undef , , , , , , , , , +HGNC:59 ABCC8 ATP-binding cassette, sub-family C (CFTR/MRP), member 8 Approved undef SUR, HRINS HI, PHHI, SUR1, MRP8 11p15.1 L78207 , , , , , , , , , ABC 6833 600509 NM_000352 Q09428 ENSG00000006071 +HGNC:60 ABCC9 ATP-binding cassette, sub-family C (CFTR/MRP), member 9 Approved gene with protein product, function known or inferred SUR2, CMD1O 12p12.1 AF061323 10060 , , , , , , , , , NM_005691 ABC 10060 601439 NM_020298 O60706 ENSG00000069431 +HGNC:52 ABCC10 ATP-binding cassette, sub-family C (CFTR/MRP), member 10 Approved undef EST182763, MRP7, SIMRP7 6p12.3 U66684 , , , , , , , , , NM_033450 ABC 89845 NM_033450 Q5T3U5 ENSG00000124574 +HGNC:14639 ABCC11 ATP-binding cassette, sub-family C (CFTR/MRP), member 11 Approved undef MRP8 16q12 AF367202 , , , , , , , , , ABC 85320 607040 NM_145186 Q96J66 ENSG00000121270 +HGNC:14640 ABCC12 ATP-binding cassette, sub-family C (CFTR/MRP), member 12 Approved undef MRP9 16-16q12 AY040220 , , , , , , , , , ABC 94160 607041 NM_033226 Q96J65 ENSG00000140798 +HGNC:16022 ABCC13 ATP-binding cassette, sub-family C (CFTR/MRP), member 13 Approved gene with protein product, function known or inferred PRED6, C21orf73 21q11.2 AF418600 , , , , , , , , , ABC 150000 608835 XR_017890 Q9NSE7 +HGNC:61 ABCD1 ATP-binding cassette, sub-family D (ALD), member 1 Approved gene with protein product, function known or inferred ALD AMN, ALDP, adrenoleukodystrophy Xq28 Z21876 215 , , , , , , , , , NM_000033 ABC 215 300371 NM_000033 P33897 ENSG00000101986 +HGNC:62 ABCD1P1 ATP-binding cassette, sub-family D (ALD), member 1, pseudogene 1 Approved pseudogene 2p11 U90290 , , , , , , , , , ABC 23785 +HGNC:63 ABCD1P2 ATP-binding cassette, sub-family D (ALD), member 1, pseudogene 2 Approved pseudogene bA453N3.6 10p11 U90288 , , , , , , , , , ABC 26983 +HGNC:64 ABCD1P3 ATP-binding cassette, sub-family D (ALD), member 1, pseudogene 3 Approved pseudogene 16p11 U90289 , , , , , , , , , ABC 26982 +HGNC:65 ABCD1P4 ATP-binding cassette, sub-family D (ALD), member 1, pseudogene 4 Approved pseudogene 22q11 U90291 , , , , , , , , , ABC 26957 +HGNC:66 ABCD2 ATP-binding cassette, sub-family D (ALD), member 2 Approved undef ALDL1 ALDR, ALDRP 12q11-q12 U28150 , , , , , , , , , ABC 225 601081 NM_005164 Q9UBJ2 ENSG00000173208 +HGNC:67 ABCD3 ATP-binding cassette, sub-family D (ALD), member 3 Approved gene with protein product, function known or inferred PXMP1 PMP70 1p22-p21 M81182 5825 , , , , , , , , , NM_002858 ABC 5825 170995 NM_002858 P28288 ENSG00000117528 +HGNC:68 ABCD4 ATP-binding cassette, sub-family D (ALD), member 4 Approved undef PXMP1L PMP69, P70R, EST352188 14q24 AF009746 , , , , , , , , , ABC 5826 603214 NM_020324 O14678 ENSG00000119688 +HGNC:69 ABCE1 ATP-binding cassette, sub-family E (OABP), member 1 Approved gene with protein product, function known or inferred RNASEL1, RNASELI, RNS4I RLI, OABP 4q31 X74987 6059 , , , , , , , , , NM_002940 ABC 6059 601213 NM_002940 P61221 ENSG00000164163 +HGNC:70 ABCF1 ATP-binding cassette, sub-family F (GCN20), member 1 Approved undef ABC50 EST123147 6p21.33 AF027302 , , , , , , , , , ABC 23 603429 NM_001090 Q8NE71 ENSG00000204574 +HGNC:71 ABCF2 ATP-binding cassette, sub-family F (GCN20), member 2 Approved undef EST133090 7q35-q36 AJ005016 , , , , , , , , , ABC 10061 NM_007189 Q9UG63 ENSG00000033050 +HGNC:72 ABCF3 ATP-binding cassette, sub-family F (GCN20), member 3 Approved undef EST201864 3q25.1-q25.2 U66685 , , , , , , , , , ABC 55324 NM_018358 Q9NUQ8 ENSG00000161204 +HGNC:73 ABCG1 ATP-binding cassette, sub-family G (WHITE), member 1 Approved undef ABC8 21q22.3 U34919 , , , , , , , , , ABC 9619 603076 NM_207628 P45844 ENSG00000160179 +HGNC:74 ABCG2 ATP-binding cassette, sub-family G (WHITE), member 2 Approved gene with protein product, function known or inferred EST157481, MXR, BCRP, ABCP, CDw338 4q22-q23 AF103796 9429 , , CDw338, , , , , , , NM_004827 ABC, CD 9429 603756 NM_004827 Q9UNQ0 ENSG00000118777 +HGNC:13884 ABCG4 ATP-binding cassette, sub-family G (WHITE), member 4 Approved undef WHITE2 11q23 AJ300465 , , , , , , , , , ABC 64137 607784 NM_022169 Q9H172 ENSG00000172350 +HGNC:13886 ABCG5 ATP-binding cassette, sub-family G (WHITE), member 5 (sterolin 1) Approved undef 2p21 T93792 , , , , , , , , , ABC 64240 605459 NM_022436 Q9H222 ENSG00000138075 +HGNC:13887 ABCG8 ATP-binding cassette, sub-family G (WHITE), member 8 (sterolin 2) Approved gene with protein product, function unknown 2p21 AF320294 64241 , , , , , , , , , NM_022437 ABC 64241 605460 NM_022437 Q9H221 ENSG00000143921 +HGNC:75 ABCR~withdrawn symbol withdrawn, see ABCA4 Symbol Withdrawn undef , , , , , , , , , +HGNC:17553 ABHD1 abhydrolase domain containing 1 Approved undef LABH1, FLJ36128 2p23.3 AK093447 84696 , , , , , , , , , ABHD 84696 NM_032604 Q96SE0 ENSG00000143994 +HGNC:18717 ABHD2 abhydrolase domain containing 2 Approved gene with protein product, function known or inferred LABH2 15q26.1 X12433 11057 , , , , , , , , , ABHD 11057 NM_152924 P08910 ENSG00000140526 +HGNC:18718 ABHD3 abhydrolase domain containing 3 Approved undef LABH3 18q11.1 AK024880 171586 , , , , , , , , , ABHD 171586 NM_138340 Q8WU67 ENSG00000158201 +HGNC:20154 ABHD4 abhydrolase domain containing 4 Approved gene with protein product, function unknown FLJ12816 14q11.1 AK022878 63874 , , , , , , , , , S33.013 ABHD 63874 NM_022060 Q8TB40 ENSG00000100439 +HGNC:21396 ABHD5 abhydrolase domain containing 5 Approved gene with protein product, function unknown CGI-58, NCIE2 3p25.3-p24.3 AF007132 51099 , , , , , , , , , S33.975 NM_016006 ABHD 51099 604780 NM_016006 Q8WTS1 ENSG00000011198 +HGNC:21398 ABHD6 abhydrolase domain containing 6 Approved gene with protein product, function unknown 3p21.2 AF225418 57406 , , , , , , , , , S33.977 NM_020676 ABHD 57406 NM_020676 Q9BV23 ENSG00000163686 +HGNC:23758 ABHD7 abhydrolase domain containing 7 Approved gene with protein product, function known or inferred EPHXRP, FLJ90341 1p22.1 AK074822 253152 , , , , , , , , , S33.974 NM_173567 ABHD 253152 NM_173567 Q8IUS5 ENSG00000172031 +HGNC:23759 ABHD8 abhydrolase domain containing 8 Approved gene with protein product, function known or inferred FLJ11743, MGC14280, MGC2512 19p13.12 AK021805 79575 , , , , , , , , , S33.011 NM_024527 ABHD 79575 NM_024527 Q96I13 ENSG00000127220 +HGNC:23760 ABHD9 abhydrolase domain containing 9 Approved gene with protein product, function known or inferred FLJ22408 19p13.13 AK026061 79852 , , , , , , , , , S33.978 NM_024794 ABHD 79852 NM_024794 Q9H6B9 ENSG00000105131 +HGNC:25656 ABHD10 abhydrolase domain containing 10 Approved gene with protein product, function known or inferred FLJ11342 3q13.2 AL713726 55347 , , , , , , , , , S09.062 NM_018394 ABHD 55347 NM_018394 Q9NUJ1 ENSG00000144827 +HGNC:16407 ABHD11 abhydrolase domain containing 11 Approved gene with protein product, function known or inferred WBSCR21 "Williams Beuren syndrome chromosome region 21" PP1226 7q11.23 AF217971 , , , , , , , , , S33.976 ABHD 83451 NM_148915 Q8NFV4 ENSG00000106077 +HGNC:15868 ABHD12 abhydrolase domain containing 12 Approved gene with protein product, function unknown C20orf22 "chromosome 20 open reading frame 22" DKFZP434P106, dJ965G21.2, BEM46L2, ABHD12A 20p11.21 AL117442 , , , , , , , , , S09.054 NM_015600 ABHD 26090 NM_015600 Q8N2K0 ENSG00000100997 +HGNC:19837 ABHD12B abhydrolase domain containing 12B Approved gene with protein product, function unknown C14orf29 "chromosome 14 open reading frame 29" BEM46L3 14q21.3 BG698443 145447 , , , , , , , , , S09.061 ABHD 145447 NM_181814 Q7Z5M8 ENSG00000131969 +HGNC:20293 ABHD13 abhydrolase domain containing 13 Approved gene with protein product, function unknown C13orf6 "chromosome 13 open reading frame 6" bA153I24.2, FLJ14906, BEM46L1 13q33.2 AK027812 84945 , , , , , , , , , NM_032859 ABHD 84945 NM_032859 Q7L211 ENSG00000139826 +HGNC:24538 ABHD14A abhydrolase domain containing 14A Approved gene with protein product, function unknown DKFZP564O243, DORZ1 3p21.1 AY358201 25864 , , , , , , , , , S33.981 NM_015407 ABHD 25864 NM_015407 Q9BUJ0 ENSG00000042022 +HGNC:28235 ABHD14B abhydrolase domain containing 14B Approved gene with protein product, function unknown MGC15429, CIB 3p21.2 AK075112 84836 , , , , , , , , , NM_032750 ABHD 84836 NM_032750 Q96IU4 ENSG00000114779 +HGNC:11320 ABI1 abl-interactor 1 Approved undef SSH3BP1 "spectrin SH3 domain binding protein 1" E3B1, ABI-1 10p11.2-p12 U87166 10006 , , , , , , , , , NM_005470 10006 603050 NM_001012751 Q8IZP0 ENSG00000136754 +HGNC:20035 ABI1P abl-interactor 1 pseudogene Approved pseudogene SSH3BP1P "spectrin SH3 domain binding protein 1 pseudogene" 14q22 , , , , , , , , , 326268 +HGNC:24011 ABI2 abl interactor 2 Approved gene with protein product, function known or inferred ABI-2, AIP-1, ABI2B, AblBP3, argBPIA, SSH3BP2 2 AF260261 10152 , , , , , , , , , NM_005759 10152 606442 NM_005759 Q9NYB9 ENSG00000138443 +HGNC:29859 ABI3 ABI gene family, member 3 Approved gene with protein product, function known or inferred NESH, SSH3BP3 17q21.3 AB037886 51225 , , , , , , , , , NM_016428 51225 606363 NM_016428 Q9P2A4 ENSG00000108798 +HGNC:17265 ABI3BP ABI gene family, member 3 (NESH) binding protein Approved gene with protein product, function unknown NESHBP, DKFZP586L2024, TARSH 3q12 AB056106 , , , , , , , , , 25890 606279 NM_015429 Q7Z7G0 ENSG00000154175 +HGNC:76 ABL1 v-abl Abelson murine leukemia viral oncogene homolog 1 Approved gene with protein product, function known or inferred ABL JTK7, c-ABL, p150, v-abl 9q34.1 M14752 25 , , , , , , , , , NM_007313 25 189980 NM_007313 P00519 ENSG00000097007 +HGNC:77 ABL2 v-abl Abelson murine leukemia viral oncogene homolog 2 (arg, Abelson-related gene) Approved gene with protein product, function known or inferred ABLL ARG 1q25.2 M14904 27 , , , , , , , , , NM_005158 27 164690 NM_007314 P42684 ENSG00000143322 +HGNC:78 ABLIM1 actin binding LIM protein 1 Approved undef LIMAB1, ABLIM abLIM, limatin 10q25 AF005654 , , , , , , , , , 3983 602330 NM_002313 O14639 ENSG00000099204 +HGNC:19195 ABLIM2 actin binding LIM protein family, member 2 Approved gene with protein product, function known or inferred "actin binding LIM protein 2" KIAA1808 4p16-p15 AB058711 , , , , , , , , , 84448 NM_032432 Q6H8Q1 ENSG00000163995 +HGNC:29132 ABLIM3 actin binding LIM protein family, member 3 Approved gene with protein product, function unknown KIAA0843 5q33.1 AB020650 22885 , , , , , , , , , NM_014945 22885 NM_014945 O94929 ENSG00000173210 +HGNC:79 ABO ABO blood group (transferase A, alpha 1-3-N-acetylgalactosaminyltransferase; transferase B, alpha 1-3-galactosyltransferase) Approved gene with protein product, function known or inferred A3GALNT, A3GALT1 9q34.2 AF134415 28 , , , , , , , , , NM_020469 bloodgroup 28 110300 NM_020469 P16442 ENSG00000175164 +HGNC:80 ABP1 amiloride binding protein 1 (amine oxidase (copper-containing)) Approved gene with protein product, function known or inferred AOC1, DAO 7q34-qter AK092514 26 , , , , , , , , , NM_001091 26 104610 NM_001091 P19801 ENSG00000002726 +HGNC:81 ABR active BCR-related gene Approved undef MDB 17p13 L19704 , , , , , , , , , 29 600365 NM_001092 Q12979 ENSG00000159842 +HGNC:30655 ABRA actin-binding Rho activating protein Approved gene with protein product, function known or inferred STARS 8q23.1 AF503617 137735 , , , , , , , , , NM_139166 137735 609747 NM_139166 Q8N0Z2 ENSG00000174429 +HGNC:17369 ABT1 activator of basal transcription 1 Approved undef 6p21.31 AB027258 , , , , , , , , , 29777 NM_013375 Q9ULW3 ENSG00000146109 +HGNC:18275 ABTB1 ankyrin repeat and BTB (POZ) domain containing 1 Approved undef BPOZ, EF1ABP 3q21 AB053324 , , , , , , , , , 80325 608308 NM_172028 Q969K4 ENSG00000114626 +HGNC:23842 ABTB2 ankyrin repeat and BTB (POZ) domain containing 2 Approved gene with protein product, function known or inferred DKFZP586C1619 11p13 AK056863 25841 , , , , , , , , , NM_145804 25841 NM_145804 Q8N961 ENSG00000166016 +HGNC:82 ACAA1 acetyl-Coenzyme A acyltransferase 1 (peroxisomal 3-oxoacyl-Coenzyme A thiolase) Approved undef 3p23-p22 X14813 30 , , , , , , , , , NM_001607 30 604054 NM_001607 P09110 ENSG00000060971 +HGNC:83 ACAA2 acetyl-Coenzyme A acyltransferase 2 (mitochondrial 3-oxoacyl-Coenzyme A thiolase) Approved undef DSAEC 18 D16294 , , , , , , , , , 10449 604770 NM_006111 P42765 ENSG00000167315 +HGNC:84 ACACA acetyl-Coenzyme A carboxylase alpha Approved undef ACAC, ACC ACC1 17q21 U19822 , , , , , , , , , 31 200350 NM_198834 Q13085 ENSG00000132142 +HGNC:85 ACACB acetyl-Coenzyme A carboxylase beta Approved gene with protein product, function known or inferred HACC275, ACC2, ACCB 12q24.1 U89344 32 , , , , , , , , , NM_001093 32 601557 NM_001093 O00763 ENSG00000076555 +HGNC:87 ACAD8 acyl-Coenzyme A dehydrogenase family, member 8 Approved undef 11q25 AF126245 27034 , , , , , , , , , NM_014384 27034 604773 NM_014384 Q9UKU7 ENSG00000151498 +HGNC:21497 ACAD9 acyl-Coenzyme A dehydrogenase family, member 9 Approved gene with protein product, function known or inferred NPD002, MGC14452 3q21.3 AF078854 28976 , , , , , , , , , NM_014049 28976 611103 NM_014049 Q9H845 ENSG00000177646 +HGNC:21597 ACAD10 acyl-Coenzyme A dehydrogenase family, member 10 Approved gene with protein product, function unknown MGC5601 12q24.12 AY323912 80724 , , , , , , , , , NM_025247 80724 611181 NM_025247 Q6JQN1 ENSG00000111271 +HGNC:30211 ACAD11 acyl-Coenzyme A dehydrogenase family, member 11 Approved gene with protein product, function unknown FLJ12592 3q22.1 BC019607 84129 , , , , , , , , , NM_032169.3 84129 NM_032169 Q709F0 ENSG00000113971 +HGNC:88 ACADL acyl-Coenzyme A dehydrogenase, long chain Approved gene with protein product, function known or inferred LCAD, ACAD4 2q34-q35 M74096 33 , , , , , , , , , NM_001608 33 609576 NM_001608 P28330 ENSG00000115361 +HGNC:89 ACADM acyl-Coenzyme A dehydrogenase, C-4 to C-12 straight chain Approved gene with protein product, function known or inferred MCAD, MCADH, ACAD1 1p31 M16827 34 , , , , , , , , , 34 607008 NM_000016 P11310 ENSG00000117054 +HGNC:90 ACADS acyl-Coenzyme A dehydrogenase, C-2 to C-3 short chain Approved gene with protein product, function known or inferred SCAD, ACAD3 12q24.31 M26393 35 , , , , , , , , , NM_000017 35 606885 NM_000017 P16219 ENSG00000122971 +HGNC:91 ACADSB acyl-Coenzyme A dehydrogenase, short/branched chain Approved gene with protein product, function known or inferred SBCAD, ACAD7 10q25-q26 U12778 36 , , , , , , , , , NM_001609 36 600301 NM_001609 P45954 ENSG00000196177 +HGNC:92 ACADVL acyl-Coenzyme A dehydrogenase, very long chain Approved gene with protein product, function known or inferred VLCAD, LCACD, ACAD6 17p13-17p11 BC012912 37 , , , , , , , , , NM_000018 37 609575 NM_001033859 P49748 ENSG00000072778 +HGNC:86 ACAD~withdrawn entry withdrawn Entry Withdrawn undef , , , , , , , , , +HGNC:319 ACAN aggrecan Approved gene with protein product, function known or inferred MSK16, CSPG1, AGC1 "chondroitin sulfate proteoglycan 1", "aggrecan 1" CSPGCP "aggrecan proteoglycan" 15q26.1 M55172 176 , , , , , , , , , NM_001135 AGC, proteoglycan 176 155760 NM_013227 P16112 ENSG00000157766 +HGNC:93 ACAT1 acetyl-Coenzyme A acetyltransferase 1 (acetoacetyl Coenzyme A thiolase) Approved gene with protein product, function known or inferred ACAT THIL 11q22.3 D90228 38 , , , , , , , , , NM_000019 38 607809 NM_000019 P24752 ENSG00000075239 +HGNC:94 ACAT2 acetyl-Coenzyme A acetyltransferase 2 (acetoacetyl Coenzyme A thiolase) Approved undef 6q25.3-q26 AF356877 , , , , , , , , , 39 100678 NM_005891 Q9BWD1 ENSG00000120437 +HGNC:15453 ACBD3 acyl-Coenzyme A binding domain containing 3 Approved gene with protein product, function known or inferred GOLPH1, GOCAP1 "golgi complex associated protein 1, 60kDa" GCP60 1q41 AB043587 64746 , , , , , , , , , NM_022735 64746 606809 NM_022735 Q9H3P7 ENSG00000182827 +HGNC:23337 ACBD4 acyl-Coenzyme A binding domain containing 4 Approved gene with protein product, function known or inferred FLJ13322 17q21.31 BC029164 79777 , , , , , , , , , NM_024722 79777 NM_024722 Q8NC06 ENSG00000181513 +HGNC:23338 ACBD5 acyl-Coenzyme A binding domain containing 5 Approved gene with protein product, function known or inferred DKFZp434A2417, KIAA1996 10p12.1 AF505653 91452 , , , , , , , , , NM_145698 91452 NM_001042473 Q5T8D3 ENSG00000107897 +HGNC:23339 ACBD6 acyl-Coenzyme A binding domain containing 6 Approved gene with protein product, function known or inferred MGC2404 1q25.1 BC006505 84320 , , , , , , , , , NM_032360 84320 NM_032360 Q9BR61 ENSG00000135847 +HGNC:17715 ACBD7 acyl-Coenzyme A binding domain containing 7 Approved gene with protein product, function unknown FLJ38219, bA455B2.2 10 AK095538 , , , , , , , , , 414149 NM_001039844 Q8N6N7 ENSG00000176244 +HGNC:96 ACBP~withdrawn symbol withdrawn, see CPN2 Symbol Withdrawn undef , , , , , , , , , +HGNC:99 ACCN1 amiloride-sensitive cation channel 1, neuronal (degenerin) Approved gene with protein product, function known or inferred ACCN ASIC2a, ASIC2, BNC1, BNaC1, hBNaC1, MDEG 17q11.2-q12 AL834182 40 , , , , , , , , , NM_183377, NM_001094 40 601784 XM_001125040 Q16515 ENSG00000108684 +HGNC:100 ACCN2 amiloride-sensitive cation channel 2, neuronal Approved gene with protein product, function known or inferred BNaC2, hBNaC2 12q12 U78181 41 , , , , , , , , , NM_020039 41 602866 NM_020039 P78348 ENSG00000110881 +HGNC:101 ACCN3 amiloride-sensitive cation channel 3 Approved undef "amiloride-sensitive cation channel 3, testis" ASIC3, TNaC1 7q35 AB010575 , , , , , , , , , 9311 NM_020321 Q9UHC3 ENSG00000197150 +HGNC:21263 ACCN4 amiloride-sensitive cation channel 4, pituitary Approved gene with protein product, function known or inferred ASIC4, BNAC4 2q36.1 AJ271643 55515 , , , , , , , , , NM_018674 55515 606715 NM_018674 Q96FT7 ENSG00000072182 +HGNC:17537 ACCN5 amiloride-sensitive cation channel 5, intestinal Approved gene with protein product, function known or inferred INAC, HINAC 4q31.3-q32 AJ252011 51802 , , , , , , , , , 51802 NM_017419 Q9NY37 ENSG00000023843 +HGNC:98 ACCN~withdrawn symbol withdrawn, see ACCN1 Symbol Withdrawn undef , , , , , , , , , +HGNC:14594 ACCPN~withdrawn symbol withdrawn, see SLC12A6 Symbol Withdrawn undef , , , , , , , , , +HGNC:97 ACC~withdrawn symbol withdrawn, see ACACA Symbol Withdrawn undef , , , , , , , , , +HGNC:25070 ACD adrenocortical dysplasia homolog (mouse) Approved gene with protein product, function unknown 24432, Ptop, Pip1 16q22 AF070535 65057 , , , , , , , , , NM_022914 65057 609377 NM_022914 Q96AP0 ENSG00000102977 +HGNC:2707 ACE angiotensin I converting enzyme (peptidyl-dipeptidase A) 1 Approved gene with protein product, function known or inferred DCP1 ACE1, CD143 17q23 J04144 , , CD143, , , , , , , CD 1636 106180 NM_152830 P12821 ENSG00000159640 +HGNC:13557 ACE2 angiotensin I converting enzyme (peptidyl-dipeptidase A) 2 Approved undef Xp22 AF291820 , , , , , , , , , M02.006 59272 300335 NM_021804 Q9BYF1 ENSG00000130234 +HGNC:107 ACHAP~withdrawn symbol withdrawn, see CUTA Symbol Withdrawn undef , , , , , , , , , +HGNC:108 ACHE acetylcholinesterase (Yt blood group) Approved gene with protein product, function known or inferred YT "acetylcholinesterase (YT blood group)" 7q22 43 , , , , , , , , , S09.979 NM_015831 bloodgroup 43 100740 NM_000665 P22303 ENSG00000087085 +HGNC:109 ACHM1 achromatopsia (rod monochromacy) 1 Approved phenotype only RMCH 14 , , , , , , , , , 6021 603096 +HGNC:110 ACHM2~withdrawn symbol withdrawn, see CNGA3 Symbol Withdrawn undef , , , , , , , , , +HGNC:111 ACHM3~withdrawn symbol withdrawn, see CNGB3 Symbol Withdrawn undef , , , , , , , , , +HGNC:112 ACHRD~withdrawn symbol withdrawn, see CHRND Symbol Withdrawn undef , , , , , , , , , +HGNC:113 ACHRG~withdrawn symbol withdrawn, see CHRNG Symbol Withdrawn undef , , , , , , , , , +HGNC:106 ACH~withdrawn symbol withdrawn, see FGFR3 Symbol Withdrawn undef , , , , , , , , , +HGNC:17066 ACIN1 apoptotic chromatin condensation inducer 1 Approved gene with protein product, function known or inferred ACINUS "apoptotic chromatin condensation inducer in the nucleus" KIAA0670 14q11.2 AB014570 22985 , , , , , , , , , NM_014977 22985 604562 NM_014977 Q9UKV3 ENSG00000100813 +HGNC:114 ACLS acrocallosal syndrome Approved phenotype only 12p13.3-p11.2 , , , , , , , , , 46 200990 +HGNC:115 ACLY ATP citrate lyase Approved gene with protein product, function known or inferred ATPCL, CLATP, ACL 17q21.2 X64330 47 , , , , , , , , , NM_001096 47 108728 NM_001096 P53396 ENSG00000131473 +HGNC:116 ACMG~withdrawn entry withdrawn Entry Withdrawn undef , , , , , , , , , +HGNC:19288 ACMSD aminocarboxymuconate semialdehyde decarboxylase Approved undef 2q14.3 AB071418 130013 , , , , , , , , , 130013 608889 NM_138326 Q8TDX5 ENSG00000153086 +HGNC:21752 ACN9 ACN9 homolog (S. cerevisiae) Approved gene with protein product, function unknown DC11 7q22.1 BC028409 57001 , , , , , , , , , NM_020186 57001 NM_020186 Q9NRP4 ENSG00000196636 +HGNC:117 ACO1 aconitase 1, soluble Approved gene with protein product, function known or inferred IREB1 IRP1, IREBP 9p21.1 M58510 48 , , , , , , , , , NM_002197 48 100880 NM_002197 P21399 ENSG00000122729 +HGNC:118 ACO2 aconitase 2, mitochondrial Approved gene with protein product, function known or inferred ACONM 22q13.2 AH006514 50 , , , , , , , , , NM_001098 50 100850 NM_001098 Q99798 ENSG00000100412 +HGNC:33128 ACOT1 acyl-CoA thioesterase 1 Approved gene with protein product, function known or inferred ACH2, CTE-1, LACH2 14q24.3 DQ082754 641371 , , , , , , , , , NM_001037161 ACOT 641371 NM_001037161 Q86TX2 ENSG00000184227 +HGNC:18431 ACOT2 acyl-CoA thioesterase 2 Approved gene with protein product, function known or inferred Mte1, ZAP128 "mitochondrial acyl-CoA thioesterase 1" 14q24.3 AY005822, AK001939 10965 , , , , , , , , , NM_006821 ACOT 10965 609972 NM_006821 P49753 ENSG00000119673 +HGNC:19748 ACOT4 acyl-CoA thioesterase 4 Approved gene with protein product, function known or inferred FLJ31235, PTE-Ib, PTE2B 14q24.1 BC031799 122970 , , , , , , , , , NM_152331 ACOT 122970 NM_152331 Q8N9L9 ENSG00000177465 +HGNC:33159 ACOT6 acyl-CoA thioesterase 6 Approved gene with protein product, function known or inferred C14orf42 "chromosome 14 open reading frame 42" 14q24.3 DQ082756, BF109853 641372 , , , , , , , , , NM_001037162 ACOT 641372 NM_001037162 Q3I5F7 ENSG00000205669 +HGNC:24157 ACOT7 acyl-CoA thioesterase 7 Approved gene with protein product, function known or inferred BACH, ACH1, ACT, CTE-II, LACH1, MGC1126, hBACH "brain acyl CoA hydrolase" 1p36 AB074417 11332 , , , , , , , , , NM_007274 ACOT 11332 602587 NM_181865 O00154 ENSG00000097021 +HGNC:15919 ACOT8 acyl-CoA thioesterase 8 Approved gene with protein product, function known or inferred PTE1 "peroxisomal acyl-CoA thioesterase", "peroxisomal acyl-CoA thioesterase 1" hACTE-III, hTE, PTE-2 20pter-p12.3 AF014404 10005 , , , , , , , , , NM_183386 ACOT 10005 608123 NM_183385 O14734 ENSG00000101473 +HGNC:17152 ACOT9 acyl-CoA thioesterase 9 Approved gene with protein product, function known or inferred CGI-16, MT-ACT48, ACATE2 Xp22.11 AF132950 23597 , , , , , , , , , NM_012332 ACOT 23597 NM_001037171 Q9Y305 ENSG00000123130 +HGNC:18156 ACOT11 acyl-CoA thioesterase 11 Approved gene with protein product, function known or inferred THEA "thioesterase, adipose associated" STARD14, BFIT, KIAA0707, BFIT1, THEM1 1p32.3 AB014607 26027 , , , , , , , , , NM_015547 ACOT 26027 606803 NM_147161 Q8WXI4 ENSG00000162390 +HGNC:24436 ACOT12 acyl-CoA thioesterase 12 Approved gene with protein product, function known or inferred Cach, THEAL, STARD15 5q14.1 AB078619 134526 , , , , , , , , , NM_130767 ACOT 134526 NM_130767 Q8WYK0 ENSG00000172497 +HGNC:119 ACOX1 acyl-Coenzyme A oxidase 1, palmitoyl Approved undef PALMCOX 17q24-17q25 U03254 , , , , , , , , , 51 609751 NM_007292 Q15067 ENSG00000161533 +HGNC:120 ACOX2 acyl-Coenzyme A oxidase 2, branched chain Approved undef BRCACOX, BRCOX 3p14.3 X95190 , , , , , , , , , 8309 601641 NM_003500 Q99424 ENSG00000168306 +HGNC:121 ACOX3 acyl-Coenzyme A oxidase 3, pristanoyl Approved undef 4p15.3 Y11411 , , , , , , , , , 8310 603402 NM_003501 O15254 ENSG00000087008 +HGNC:25621 ACOXL acyl-Coenzyme A oxidase-like Approved gene with protein product, function unknown FLJ11042 2 55289 , , , , , , , , , NM_018308 55289 NM_018308 Q9NUZ1 ENSG00000153093 +HGNC:122 ACP1 acid phosphatase 1, soluble Approved undef 2p25 M87546 , , , , , , , , , PTP2 52 171500 NM_007099 P24666 ENSG00000143727 +HGNC:123 ACP2 acid phosphatase 2, lysosomal Approved gene with protein product, function known or inferred 11p11.2 X15525 53 , , , , , , , , , NM_001610 53 171650 NM_001610 P11117 ENSG00000134575 +HGNC:124 ACP5 acid phosphatase 5, tartrate resistant Approved undef 19p13.3-p13.2 X14618 , , , , , , , , , 54 171640 NM_001611 P13686 ENSG00000102575 +HGNC:29609 ACP6 acid phosphatase 6, lysophosphatidic Approved gene with protein product, function known or inferred LPAP, ACPL1 1q21 BC009965 51205 , , , , , , , , , NM_016361 51205 NM_016361 Q9NPH0 ENSG00000162836 +HGNC:26303 ACPL2 acid phosphatase-like 2 Approved gene with protein product, function unknown FLJ23751 3q23 92370 , , , , , , , , , NM_152282 92370 NM_001037172 Q8TE99 ENSG00000155893 +HGNC:125 ACPP acid phosphatase, prostate Approved undef ACP3, ACP-3 3q21-qter , , , , , , , , , NM_001099 55 171790 NM_001099 P15309 ENSG00000014257 +HGNC:14376 ACPT acid phosphatase, testicular Approved gene with protein product, function known or inferred 19q13.4 AF321918 , , , , , , , , , NM_033068 93650 606362 NM_080789 Q9BZG2 ENSG00000142513 +HGNC:126 ACR acrosin Approved gene with protein product, function known or inferred "preproacrosin" 22q13-qter CR456366 49 , , , , , , , , , S01.223 NM_001097 49 102480 NM_001097 P10323 ENSG00000100312 +HGNC:17195 ACRBP acrosin binding protein Approved undef SP32 12pter-p13.31 AB051833 , , , , , , , , , 84519 608352 NM_032489 Q8NEB7 ENSG00000111644 +HGNC:15805 ACRC acidic repeat containing Approved gene with protein product, function unknown Xq13.1 AJ311392 , , , , , , , , , 93953 300369 NM_052957 Q96QF7 ENSG00000147174 +HGNC:127 ACRV1 acrosomal vesicle protein 1 Approved undef SPACA2, SP-10 "sperm protein 10" 11p12-q13 AK223335 , , , , , , , , , NM_001612 56 102525 NM_020113 P26436 ENSG00000134940 +HGNC:128 ACS3~withdrawn symbol withdrawn, see TWIST1 Symbol Withdrawn undef , , , , , , , , , +HGNC:29567 ACSBG1 acyl-CoA synthetase bubblegum family member 1 Approved gene with protein product, function known or inferred BGM, FLJ30320, MGC14352, BG1, KIAA0631, hBG1, hsBG "bubblegum", "very long-chain acyl-CoA synthetase", "lipidosin" 15q23-q24 AB014531 23205 , , , , , , , , , NM_015162 ACS 23205 NM_015162 Q96GR2 ENSG00000103740 +HGNC:24174 ACSBG2 acyl-CoA synthetase bubblegum family member 2 Approved gene with protein product, function unknown BGR, PRTD-NY3, DKFZp434K1635 "bubblegum related protein" 19p13.3 81616 , , , , , , , , , NM_030924 ACS 81616 NM_030924 Q5FVE4 ENSG00000130377 +HGNC:3569 ACSL1 acyl-CoA synthetase long-chain family member 1 Approved gene with protein product, function known or inferred FACL2 "fatty-acid-Coenzyme A ligase, long-chain 2" LACS2, LACS, ACS1, LACS1, FACL1 "lignoceroyl-CoA synthase", "long-chain fatty-acid-coenzyme A ligase 1" 4q35 BC026290 2180 , , , , , , , , , NM_001995 ACS 2180 152425 NM_001995 P33121 ENSG00000151726 +HGNC:3570 ACSL3 acyl-CoA synthetase long-chain family member 3 Approved gene with protein product, function known or inferred FACL3 "fatty-acid-Coenzyme A ligase, long-chain 3" ACS3, PRO2194 2q34-q35 D89053 2181 , , , , , , , , , NM_004457 ACS 2181 602371 NM_203372 O95573 ENSG00000123983 +HGNC:3571 ACSL4 acyl-CoA synthetase long-chain family member 4 Approved gene with protein product, function known or inferred FACL4, MRX63, MRX68 "fatty-acid-Coenzyme A ligase, long-chain 4", "mental retardation, X-linked 63", "mental retardation, X-linked 68" ACS4, LACS4 "lignoceroyl-CoA synthase", " long-chain fatty-acid-Coenzyme A ligase 4" Xq22.3-q23 BC034959 2182 , , , , , , , , , NM_004458 ACS 2182 300157 NM_004458 O60488 ENSG00000068366 +HGNC:16526 ACSL5 acyl-CoA synthetase long-chain family member 5 Approved gene with protein product, function known or inferred FACL5 "fatty-acid-Coenzyme A ligase, long-chain 5" ACS5, ACS2 "FACL5 for fatty acid coenzyme A ligase 5", "long-chain acyl-CoA synthetase 5", "long-chain fatty acid coenzyme A ligase 5", "fatty-acid-Coenzyme A ligase, long-chain 5" 10q25.1-q25.2 AB033899 51703 , , , , , , , , , NM_016234 ACS 51703 605677 NM_016234 Q9ULC5 ENSG00000197142 +HGNC:16496 ACSL6 acyl-CoA synthetase long-chain family member 6 Approved gene with protein product, function known or inferred FACL6 "fatty-acid-Coenzyme A ligase, long-chain 6" KIAA0837, ACS2, LACS5, LACS2 5q31 AB020644 23305 , , , , , , , , , NM_015256 ACS 23305 604443 NM_001009185 Q9UKU0 ENSG00000164398 +HGNC:18049 ACSM1 acyl-CoA synthetase medium-chain family member 1 Approved gene with protein product, function known or inferred BUCS1 "butyryl Coenzyme A synthetase 1" MACS1 16p12.3 AB059429 116285 , , , , , , , , , NM_052956 ACS 116285 NM_052956 Q08AH1 ENSG00000166743 +HGNC:32017 ACSM2A acyl-CoA synthetase medium-chain family member 2A Approved gene with protein product, function known or inferred ACSM2 "acyl-CoA synthetase medium-chain family member 2" A-923A4.1, MGC150530 16p12.3 AK091878, AK096039 123876 , , , , , , , , , NM_001010845 ACS 123876 XM_936869 +HGNC:30931 ACSM2B acyl-CoA synthetase medium-chain family member 2B Approved gene with protein product, function known or inferred ACSM2 "acyl-CoA synthetase medium-chain family member 2" HXMA, HYST1046 "xenobiotic/medium chain fatty acid:CoA ligase" 16p12.3 AY160217 348158 , , , , , , , , , NM_182617 ACS 348158 XM_001126353 Q68CK6 ENSG00000183747 +HGNC:10522 ACSM3 acyl-CoA synthetase medium-chain family member 3 Approved gene with protein product, function known or inferred SAH "SA (rat hypertension-associated) homolog", "SA hypertension-associated homolog (rat)" SA 16p13.11 D16350 6296 , , , , , , , , , NM_005622 ACS 6296 145505 NM_202000 Q53FZ2 ENSG00000005187 +HGNC:16091 ACSS1 acyl-CoA synthetase short-chain family member 1 Approved gene with protein product, function known or inferred ACAS2L "acetyl-Coenzyme A synthetase 2 (AMP forming)-like" dJ568C11.3, AceCS2L, MGC33843 20p11.23-p11.21 84532 , , , , , , , , , NM_032501 ACS 84532 NM_032501 Q9NUB1 ENSG00000154930 +HGNC:15814 ACSS2 acyl-CoA synthetase short-chain family member 2 Approved gene with protein product, function known or inferred ACAS2 "acetyl-Coenzyme A synthetase 2 (ADP forming)" ACS, ACSA, AceCS, dJ1161H23.1 20q11.22 AF263614 55902 , , , , , , , , , NM_018677 ACS 55902 605832 NM_018677 Q9NR19 ENSG00000131069 +HGNC:129 ACTA1 actin, alpha 1, skeletal muscle Approved gene with protein product, function known or inferred ACTA 1q42.13 J00068 58 , , , , , , , , , NM_001100 58 102610 NM_001100 P68133 ENSG00000143632 +HGNC:130 ACTA2 actin, alpha 2, smooth muscle, aorta Approved gene with protein product, function known or inferred ACTSA 10q22-q24 X13839 59 , , , , , , , , , NM_001613 59 102620 NM_001613 P62736 ENSG00000107796 +HGNC:131 ACTA3~withdrawn symbol withdrawn, see ACTG2 Symbol Withdrawn undef , , , , , , , , , +HGNC:132 ACTB actin, beta Approved gene with protein product, function known or inferred 7p15-p12 M28424 60 , , , , , , , , , NM_001101 60 102630 NM_001101 P60709 ENSG00000075624 +HGNC:133 ACTBL1 actin, beta-like 1 Approved gene with protein product, function known or inferred POTE22 22q11.1 AY466021 23784 , , , , , , , , , NM_001004053 23784 608913 NM_001004053 Q6S545 +HGNC:17780 ACTBL2 actin, beta-like 2 Approved gene with protein product, function unknown reserved , , , , , , , , , 548634 +HGNC:30182 ACTBL3 actin, beta-like 3 Approved gene with protein product, function unknown reserved , , , , , , , , , 548635 +HGNC:134 ACTBP1 actin, beta pseudogene 1 Approved retrogene CR619662 Xq12 61 , , , , , , , , , 61 +HGNC:135 ACTBP2 actin, beta pseudogene 2 Approved pseudogene 5q14.1 62 , , , , , , , , , NG_003019 62 +HGNC:136 ACTBP3 actin, beta pseudogene 3 Approved retrogene 18q21.33 63 , , , , , , , , , 63 +HGNC:137 ACTBP4 actin, beta pseudogene 4 Approved retrogene 5q23.3 64 , , , , , , , , , 64 +HGNC:138 ACTBP5 actin, beta pseudogene 5 Approved retrogene 7q36.1 65 , , , , , , , , , 65 +HGNC:139 ACTBP6 actin, beta pseudogene 6 Approved pseudogene 8 , , , , , , , , , 66 +HGNC:140 ACTBP7 actin, beta pseudogene 7 Approved pseudogene 15q15.3 V00479 , , , , , , , , , 67 +HGNC:141 ACTBP8 actin, beta pseudogene 8 Approved pseudogene ACTBP2 6q13 V00481 , , , , , , , , , NG_000840 68 +HGNC:142 ACTBP9 actin, beta pseudogene 9 Approved pseudogene 18q21.33 D50604 , , , , , , , , , 69 +HGNC:31819 ACTBP10 actin, beta pseudogene 10 Approved pseudogene 14 , , , , , , , , , 446207 +HGNC:143 ACTC1 actin, alpha, cardiac muscle 1 Approved gene with protein product, function known or inferred ACTC "actin, alpha, cardiac muscle" CMD1R 15q11-q14 BC009978 70 , , , , , , , , , NM_005159 70 102540 NM_005159 P68032 ENSG00000159251 +HGNC:144 ACTG1 actin, gamma 1 Approved gene with protein product, function known or inferred ACTG, DFNA20, DFNA26 "deafness, autosomal dominant 20; deafness, autosomal dominant 26" 17q25 71 , , , , , , , , , NM_001614 71 102560 NM_001614 P63261 ENSG00000184009 +HGNC:145 ACTG2 actin, gamma 2, smooth muscle, enteric Approved undef ACTL3, ACTA3 2p13.1 , , , , , , , , , NM_001615 72 102545 NM_001615 P63267 ENSG00000163017 +HGNC:146 ACTGP1 actin, gamma pseudogene 1 Approved pseudogene 3 D50658 , , , , , , , , , 73 +HGNC:147 ACTGP2 actin, gamma pseudogene 2 Approved pseudogene ACTL2 Yq11 , , , , , , , , , 74 +HGNC:148 ACTGP3 actin, gamma pseudogene 3 Approved pseudogene 20p13-20p13 AF196978 , , , , , , , , , 75 +HGNC:149 ACTGP4 actin, gamma pseudogene 4 Approved pseudogene 1p21 , , , , , , , , , 76 +HGNC:150 ACTGP5 actin, gamma pseudogene 5 Approved pseudogene 1p21 , , , , , , , , , 77 +HGNC:151 ACTGP6 actin, gamma pseudogene 6 Approved pseudogene 1p21 , , , , , , , , , 78 +HGNC:152 ACTGP7 actin, gamma pseudogene 7 Approved pseudogene 1p21 , , , , , , , , , 79 +HGNC:153 ACTGP8 actin, gamma pseudogene 8 Approved pseudogene 1p21 , , , , , , , , , 80 +HGNC:154 ACTGP9 actin, gamma pseudogene 9 Approved pseudogene 6p D50659 , , , , , , , , , 82 +HGNC:155 ACTGP10 actin, gamma pseudogene 10 Approved pseudogene ACTL1 "actin-like 1" Xp11.22 AL139396 83 , , , , , , , , , 83 +HGNC:156 ACTL2~withdrawn symbol withdrawn, see ACTGP2 Symbol Withdrawn undef , , , , , , , , , +HGNC:157 ACTL3~withdrawn symbol withdrawn, see ACTG2 Symbol Withdrawn undef , , , , , , , , , +HGNC:158 ACTL4 actin-like 4 Approved undef 3pter-q21 84 , , , , , , , , , 84 +HGNC:159 ACTL5 actin-like 5 Approved unknown ACTFIB 21q22.3 85 , , , , , , , , , 85 +HGNC:24124 ACTL6A actin-like 6A Approved gene with protein product, function known or inferred Actl6, BAF53A 3 AK098691 86 , , , , , , , , , NM_004301 86 604958 NM_177989 O96019 ENSG00000136518 +HGNC:160 ACTL6B actin-like 6B Approved undef ACTL6 "actin-like 6" BAF53B 7q22 AB015906 51412 , , , , , , , , , NM_016188 51412 NM_016188 O94805 ENSG00000077080 +HGNC:161 ACTL7A actin-like 7A Approved gene with protein product, function unknown 9q31 BC014610 10881 , , , , , , , , , NM_006687 10881 604303 NM_006687 Q9Y615 ENSG00000187003 +HGNC:162 ACTL7B actin-like 7B Approved gene with protein product, function unknown 9q31 BC033789 10880 , , , , , , , , , NM_006686 10880 604304 NM_006686 Q9Y614 ENSG00000148156 +HGNC:24018 ACTL8 actin-like 8 Approved gene with protein product, function unknown 1p36.2-p35 AK057339 81569 , , , , , , , , , NM_030812 81569 XM_001134367 Q9H568 ENSG00000117148 +HGNC:163 ACTN1 actinin, alpha 1 Approved gene with protein product, function known or inferred 14q24.1 M95178 87 , , , , , , , , , NM_001102 87 102575 NM_001102 P12814 ENSG00000072110 +HGNC:164 ACTN2 actinin, alpha 2 Approved gene with protein product, function known or inferred 1q42-q43 BC047901 88 , , , , , , , , , NM_001103 88 102573 NM_001103 P35609 ENSG00000077522 +HGNC:165 ACTN3 actinin, alpha 3 Approved undef 11q13-q14 M86407 89 , , , , , , , , , NM_001104 89 102574 NM_001104 Q08043 ENSG00000204633 +HGNC:166 ACTN4 actinin, alpha 4 Approved undef 19q13 D89980 , , , , , , , , , 81 604638 NM_004924 O43707 ENSG00000130402 +HGNC:167 ACTR1A ARP1 actin-related protein 1 homolog A, centractin alpha (yeast) Approved undef "ARP1 (actin-related protein 1, yeast) homolog A (centractin alpha)" ARP1 10q24 X82206 , , , , , , , , , 10121 605143 NM_005736 P61163 ENSG00000138107 +HGNC:168 ACTR1B ARP1 actin-related protein 1 homolog B, centractin beta (yeast) Approved undef CTRN2 "ARP1 (actin-related protein 1, yeast) homolog B (centractin beta)" 2q11.1-q11.2 X82207 , , , , , , , , , 10120 605144 NM_005735 P42025 ENSG00000115073 +HGNC:169 ACTR2 ARP2 actin-related protein 2 homolog (yeast) Approved undef "ARP2 (actin-related protein 2, yeast) homolog" ARP2 2p AF006082 , , , , , , , , , 10097 604221 NM_005722 P61160 ENSG00000138071 +HGNC:170 ACTR3 ARP3 actin-related protein 3 homolog (yeast) Approved undef "ARP3 (actin-related protein 3, yeast) homolog" ARP3 2q13 AF006083 , , , , , , , , , 10096 604222 NM_005721 P61158 ENSG00000115091 +HGNC:17256 ACTR3B ARP3 actin-related protein 3 homolog B (yeast) Approved gene with protein product, function unknown ARP11, ARP3beta 7q34 57180 , , , , , , , , , NM_020445 57180 NM_020445 Q9P1U1 ENSG00000133627 +HGNC:31820 ACTR3P1 ARP3 actin-related protein 3 homolog (yeast) pseudogene 1 Approved pseudogene 14 , , , , , , , , , 446208 +HGNC:14671 ACTR5 ARP5 actin-related protein 5 homolog (yeast) Approved undef "ARP5 (actin-related protein 5, yeast) homolog" FLJ12785 20q12 AK022847 79913 , , , , , , , , , NM_024855 79913 NM_024855 Q9H9F9 ENSG00000101442 +HGNC:24025 ACTR6 ARP6 actin-related protein 6 homolog (yeast) Approved gene with protein product, function known or inferred ARP6, FLJ13433 12 AF212251 64431 , , , , , , , , , NM_022496 64431 NM_022496 Q9GZN1 ENSG00000075089 +HGNC:14672 ACTR8 ARP8 actin-related protein 8 homolog (yeast) Approved gene with protein product, function known or inferred "ARP8 (actin-related protein 8, yeast) homolog" 3p21.31 93973 , , , , , , , , , NM_022899 93973 NM_022899 Q9H981 ENSG00000113812 +HGNC:17372 ACTR10 actin-related protein 10 homolog (S. cerevisiae) Approved gene with protein product, function unknown HARP11, ACTR11 14q22.3 AF220190 , , , , , , , , , 55860 NM_018477 Q9NZ32 ENSG00000131966 +HGNC:24027 ACTRT1 actin-related protein T1 Approved gene with protein product, function unknown AIP1, KIAA0705, ARIP1, Arp-T1 Xq25 AF440739 139741 , , , , , , , , , NM_138289 139741 300487 NM_138289 Q8TDG2 ENSG00000123165 +HGNC:24026 ACTRT2 actin-related protein T2 Approved gene with protein product, function unknown Arp-T2, ARPM2, FLJ25424 1p36.3 AF440740, AB057364 140625 , , , , , , , , , NM_080431 140625 608535 NM_080431 Q8TDY3 ENSG00000169717 +HGNC:171 ACVR1 activin A receptor, type I Approved gene with protein product, function known or inferred ACVRLK2 SKR1, ALK2 2q23-q24 90 , , , , , , , , , NM_001105 90 102576 NM_001105 Q04771 ENSG00000115170 +HGNC:172 ACVR1B activin A receptor, type IB Approved gene with protein product, function known or ... [truncated message content] |
From: <cmu...@us...> - 2007-10-06 23:04:20
|
Revision: 969 http://obo.svn.sourceforge.net/obo/?rev=969&view=rev Author: cmungall Date: 2007-10-06 16:04:21 -0700 (Sat, 06 Oct 2007) Log Message: ----------- Added Paths: ----------- obo-database/trunk/data-build/ obo-database/trunk/data-build/Makefile obo-database/trunk/data-build/Makefile-Build-Generic obo-database/trunk/data-build/build-hgnc/ obo-database/trunk/data-build/build-hgnc/Makefile obo-database/trunk/data-build/build-homologene/ obo-database/trunk/data-build/build-homologene/Makefile obo-database/trunk/data-build/build-ncbi-gene/ obo-database/trunk/data-build/build-ncbi-gene/Makefile obo-database/trunk/data-build/build-omim/ obo-database/trunk/data-build/build-omim/Makefile Added: obo-database/trunk/data-build/Makefile =================================================================== --- obo-database/trunk/data-build/Makefile (rev 0) +++ obo-database/trunk/data-build/Makefile 2007-10-06 23:04:21 UTC (rev 969) @@ -0,0 +1 @@ +link Makefile-Build-Generic \ No newline at end of file Property changes on: obo-database/trunk/data-build/Makefile ___________________________________________________________________ Name: svn:special + * Added: obo-database/trunk/data-build/Makefile-Build-Generic =================================================================== --- obo-database/trunk/data-build/Makefile-Build-Generic (rev 0) +++ obo-database/trunk/data-build/Makefile-Build-Generic 2007-10-06 23:04:21 UTC (rev 969) @@ -0,0 +1,22 @@ +.PRECIOUS: %.obo + +%.obd-createdb: + obd-create-db.pl -d $* && touch $@ +.PRECIOUS: %.obd-createdb + +%.obd-load: %.obo %.obd-createdb + obd-load-db-from-obo.pl -d $* $(OBD_LOAD_ARGS) $< >& $@.log && touch $@ +.PRECIOUS: %.obd-load + +%.obd-pgdump: %.obd-load + pg_dump -d $* > $@.tmp && mv $@.tmp $@ + +%.obd-node.obdsql: + selectall_xml.pl -d $* /obd-node-export > $@.tmp && mv $@.tmp $@ + +%.obd-node-tagval.obdsql: + selectall_xml.pl -d $* /obd-node-tagval-export > $@.tmp && mv $@.tmp $@ + +%.gz: % + gzip $< + Added: obo-database/trunk/data-build/build-hgnc/Makefile =================================================================== --- obo-database/trunk/data-build/build-hgnc/Makefile (rev 0) +++ obo-database/trunk/data-build/build-hgnc/Makefile 2007-10-06 23:04:21 UTC (rev 969) @@ -0,0 +1,2 @@ +hgnc.tab: + wget -O $@ 'http://www.gene.ucl.ac.uk/cgi-bin/nomenclature/gdlw.pl?title=Genew+output+data&hgnc_dbtag=on&col=gd_hgnc_id&col=gd_app_sym&col=gd_app_name&col=gd_status&col=gd_locus_type&col=gd_prev_sym&col=gd_prev_name&col=gd_aliases&col=gd_name_aliases&col=gd_pub_chrom_map&col=gd_pub_acc_ids&col=gd_pub_eg_id&col=gd_other_ids_list&col=gd_pub_refseq_ids&col=gd_gene_fam_name&col=md_eg_id&col=md_mim_id&col=md_refseq_id&col=md_prot_id&col=md_ensembl_id&status=Approved&status=Entry+Withdrawn&status_opt=2&=on&where=&order_by=gd_app_sym_sort&limit=&format=text&submit=submit&.cgifields=&.cgifields=chr&.cgifields=status&.cgifields=hgnc_dbtag' Added: obo-database/trunk/data-build/build-homologene/Makefile =================================================================== --- obo-database/trunk/data-build/build-homologene/Makefile (rev 0) +++ obo-database/trunk/data-build/build-homologene/Makefile 2007-10-06 23:04:21 UTC (rev 969) @@ -0,0 +1,34 @@ +OBD_LOAD_ARGS=--split 10000 +DB = obd_ncbi_gene + +TAXA = 7227 7955 9606 10090 + +GINFOS = $(patsubst %,genes-%.gene_info,$(TAXA)) +OBO = $(patsubst %,genes-%.gene_info_ontol.obo,$(TAXA)) +PRO = $(patsubst %,genes-%.gene_info_ontol.pro,$(TAXA)) + +all: $(GINFOS) $(PRO) $(OBO) + +homologene.data: + wget -O $@ ftp://ftp.ncbi.nih.gov/pub/HomoloGene/current/homologene.data +.PRECIOUS: homologene.data + +%-homol_db.pro: %.data + blip -i $< -f homoltbl io-convert -u homoltbl_bridge_to_homol -to homol_db:pro -o $@.tmp && mv $@.tmp $@ +.PRECIOUS: %-homol_db.pro + +%-curation_db.pro: %-homol_db.pro + blip -i $< -f homol_db:pro io-convert -u homol_bridge_to_ontol -to curation_db:pro -o $@.tmp && mv $@.tmp $@ +.PRECIOUS: %-curation_db.pro + +%_ontol.annotation-obo: %-curation_db.pro + blip -i $< -f curation_db:pro io-convert -to curation_obo -o $@.tmp && mv $@.tmp $@ +.PRECIOUS: %_ontol.annotation-obo + +%_ontol.obo: %-curation_db.pro + blip -i $< -f curation_db:pro io-convert -u curation_bridge_to_ontol -to obo -o $@.tmp && mv $@.tmp $@ +.PRECIOUS: %_ontol.obo + + +include ../Makefile-Build-Generic + Added: obo-database/trunk/data-build/build-ncbi-gene/Makefile =================================================================== --- obo-database/trunk/data-build/build-ncbi-gene/Makefile (rev 0) +++ obo-database/trunk/data-build/build-ncbi-gene/Makefile 2007-10-06 23:04:21 UTC (rev 969) @@ -0,0 +1,30 @@ +DB = obd_ncbi_gene + +TAXA = 7227 7955 9606 10090 + +GINFOS = $(patsubst %,genes-%.gene_info,$(TAXA)) +OBO = $(patsubst %,genes-%.gene_info_ontol.obo,$(TAXA)) +PRO = $(patsubst %,genes-%.gene_info_ontol.pro,$(TAXA)) + +all: $(GINFOS) $(PRO) $(OBO) +load: $(patsubst %,genes-%.gene_info_ontol.obd-load,$(TAXA)) + +gene_info.gz: + wget -O $@ ftp://ftp.ncbi.nih.gov/gene/DATA/gene_info.gz +.PRECIOUS: gene_info.gz + +genes-%.gene_info: gene_info.gz + zcat $< | ./taxfilter.pl $* > $@ + +genes-%.gene_info_ontol.obo: genes-%.gene_info_ontol.pro + blip -i $< -f ontol_db:pro io-convert -to obo -o $@ + +genes-%.gene_info_ontol.pro: genes-%.gene_info + blip -i $< -u gene_bridge_to_ontol io-convert -to ontol_db:pro -o $@ + +gene_info_ontol.pro: gene_info.gz + blip -u gene_bridge_to_class io-convert -i $< -f gzip/gene_info -to ontol_db:pro -o $@ +.PRECIOUS: gene_info_ontol.pro + +include ../Makefile-Build-Generic + Added: obo-database/trunk/data-build/build-omim/Makefile =================================================================== --- obo-database/trunk/data-build/build-omim/Makefile (rev 0) +++ obo-database/trunk/data-build/build-omim/Makefile 2007-10-06 23:04:21 UTC (rev 969) @@ -0,0 +1,30 @@ +DB = obd_omim + +# todo: MIM vs OMIM + +GINFOS = $(patsubst %,genes-%.gene_info,$(TAXA)) +OBO = $(patsubst %,genes-%.gene_info_ontol.obo,$(TAXA)) +PRO = $(patsubst %,genes-%.gene_info_ontol.pro,$(TAXA)) + +all: $(GINFOS) $(PRO) $(OBO) +load: $(patsubst %,genes-%.gene_info_ontol.obd-load,$(TAXA)) + +gene_info.gz: + wget -O $@ ftp://ftp.ncbi.nih.gov/gene/DATA/gene_info.gz +.PRECIOUS: gene_info.gz + +genes-%.gene_info: gene_info.gz + zcat $< | ./taxfilter.pl $* > $@ + +genes-%.gene_info_ontol.obo: genes-%.gene_info_ontol.pro + blip -i $< -f ontol_db:pro io-convert -to obo -o $@ + +genes-%.gene_info_ontol.pro: genes-%.gene_info + blip -i $< -u gene_bridge_to_ontol io-convert -to ontol_db:pro -o $@ + +gene_info_ontol.pro: gene_info.gz + blip -u gene_bridge_to_class io-convert -i $< -f gzip/gene_info -to ontol_db:pro -o $@ +.PRECIOUS: gene_info_ontol.pro + +include ../Makefile-Build-Generic + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-06 22:08:04
|
Revision: 968 http://obo.svn.sourceforge.net/obo/?rev=968&view=rev Author: cmungall Date: 2007-10-06 15:03:11 -0700 (Sat, 06 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/sql/obd-core-schema.sql obo-database/trunk/sql/obd-core-views.sql obo-database/trunk/sql/users.sql Modified: obo-database/trunk/sql/obd-core-schema.sql =================================================================== --- obo-database/trunk/sql/obd-core-schema.sql 2007-10-06 21:52:37 UTC (rev 967) +++ obo-database/trunk/sql/obd-core-schema.sql 2007-10-06 22:03:11 UTC (rev 968) @@ -15,17 +15,18 @@ UNIQUE(uid) ); ALTER TABLE node add source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE; +ALTER TABLE node add loaded_from_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE; -COMMENT ON TABLE node IS 'An element of a graph. A graph consists of a collection of nodes n1, n2, ... and a collection of edges between nodes. Nodes can represent Instances, Relations, and Types. RDF: typically corresponds to a resource'; -COMMENT ON COLUMN node.uid IS 'A unique identifier for this node. Must be EITHER a valid URI OR a valid OBO ID.'; -COMMENT ON COLUMN node.uri IS 'See W3 specs for definition of URI'; -COMMENT ON COLUMN node.label IS 'A piece of text intended for display for humans. Should follow preferred term conventions'; -COMMENT ON COLUMN node.metatype IS 'Enumeration that determines what kind of entity this node represents. Choices are: I=instance (aka token, individual, particular). R=relation (aka linktype, relationship type. roughly equivalent to slots, owl properties, DL role names). C=class (universal, type, pattern, term)'; -COMMENT ON COLUMN node.is_anonymous IS 'true if the node represents an entity that does not have a unique handle. RDF: corresponds to bNodes'; -COMMENT ON COLUMN node.is_transitive IS 'If metatype=R, and this node represents a relation, then normal transitivity rules hold'; -COMMENT ON COLUMN node.is_obsolete IS 'True if node identifies a historical record of what was once considered a valid instance, type or relation'; -COMMENT ON COLUMN node.source_id IS 'A node representing an information resource in which the node was originally inserted. Equivalent to OBO-Namespace. TODO: formalize relationship to RDF named graphs'; -COMMENT ON COLUMN node.is_reiflink IS 'true if node identifies an instance of a statement or link. If this is true, there should be a row R in the link table with R.reiflink_node_id equal to the primary key of this row. RDF Equivalent: reification - the subject, predicate and object triples are implicit'; +COMMENT ON TABLE node IS 'An element of a graph. A graph consists of a collection of nodes n1, n2, ... and a collection of edges between nodes. Nodes can represent Instances (eg a particular organ), Relations (eg part_of), and Types (classes) (eg the type "Lung"). RDFMap: typically corresponds to a resource'; +COMMENT ON COLUMN node.uid IS 'A unique identifier for this node. Must be EITHER a valid URI OR a valid OBO ID. The latter is of bipartite form IDSPACE:LOCALID'; +COMMENT ON COLUMN node.uri IS 'See W3 specs for definition of URI. URIs are optional. Can be generated automaticallt from uid'; +COMMENT ON COLUMN node.label IS 'A piece of text intended for display for humans. Also known as "preferred term" in skos, "name" in obo. Also used for the canonical symbol for an entity'; +COMMENT ON COLUMN node.metatype IS 'Enumeration that determines the semantics of the node. Choices are: I=instance (aka token, individual, particular). R=relation (aka linktype, relationship type. roughly equivalent to slots, owl properties, DL role names). C=class (universal, type, pattern, term). Annotations (propositions) are of type I'; +COMMENT ON COLUMN node.is_anonymous IS 'true if the node represents an entity that does not have a stable persistent identifier. The node only makes sense in the context of the surrounding graph. An example would be a post-composed expression combining classes that themselves have stable IDs. RDFMap: corresponds to bNodes'; +COMMENT ON COLUMN node.is_transitive IS 'X R Y and Y R Z => X R Z. Should only be used when metatype=R'; +COMMENT ON COLUMN node.is_obsolete IS 'True if node represents a historical record of what was once considered a valid instance, type or relation. Note that this changes the semantics of the node'; +COMMENT ON COLUMN node.source_id IS 'A node representing an information resource in which the node was originally inserted. Equivalent to OBO-Namespace'; +COMMENT ON COLUMN node.is_reiflink IS 'true if this node identifies an instance of a statement or link. If this is true, there should be a row R in the link table with R.reiflink_node_id equal to the primary key of this row. RDF Closest Equivalent: reification - the subject, predicate and object triples are implicit AND/OR named graphs. At this stage the mapping is unclear. May be better to treat as a proposition in IKL'; CREATE INDEX node_source_indx ON node(source_id); CREATE INDEX node_label ON node(label); @@ -52,17 +53,18 @@ object_quantifier_only BOOLEAN NOT NULL DEFAULT 'f', combinator CHAR(1) NOT NULL DEFAULT '', source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE, + loaded_from_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE, is_obsolete BOOLEAN NOT NULL DEFAULT 'f', - --- should reiflink_node_id also be part of key? multiple statements. YES - CONSTRAINT link_unique_c UNIQUE(reiflink_node_id, predicate_id, object_id) + --- should reiflink_node_id also be part of key? multiple statements. YES; but this means we can have multi values for NULL + CONSTRAINT link_unique_c UNIQUE(reiflink_node_id, is_negated, node_id, predicate_id, object_id, when_id, combinator, source_id) ); -COMMENT ON TABLE link IS 'An element of a graph. Edges link nodes. Edges have labels (predicates)'; -COMMENT ON COLUMN link.when_id IS 'some relations are time-index; this points to a time point or interval instance for when the link statement holds. Note this is real time, not database time. RDF: does not correpond. If this column is non-null, special transforms must be applied to turn the OBD graph into an RDF graph'; +COMMENT ON TABLE link IS 'An element of a graph. Edges link nodes. Edges have labels (predicates). The semantics of the link are dependent on the values of particular columns. '; COMMENT ON COLUMN link.reiflink_node_id IS 'A reference to a node that represents a statement or other narrative entity asserting this link. If this reference is NULL then the reification context is considered to be the whole database. All Annotations (sensu biomedical curation) are narrative entities positing links. RDF: if this is non-NULL, there is an implicit SPO reification quad'; COMMENT ON COLUMN link.node_id IS 'The entity for which the link directly applies. Can refer to a C, R or I. RDF: subject'; COMMENT ON COLUMN link.node_id IS 'The relation that holds between the node and the object. Must refer to a R node. RDF: predicate'; COMMENT ON COLUMN link.object_id IS 'The entity for which the node stands in some relation R to (where R is the predicate_id). Any node metatype. RDF: object'; +COMMENT ON COLUMN link.when_id IS 'some relations are time-indexed; this points to a time point or interval instance for when the link statement holds. Note this is real time, not database time. RDF: does not correpond. If this column is non-null, special transforms must be applied to turn the OBD graph into an RDF graph'; COMMENT ON COLUMN link.is_metadata IS 'True if the link is for node metadata. Metadata applies to the node itself and not the entity represented by the node. Equivalent to annotation properties in OWL'; COMMENT ON COLUMN link.is_inferred IS 'True if this link is implied/entailed via some other link. TODO: reasoning provenance chain'; COMMENT ON COLUMN link.is_instantiation IS 'True if this link is a relation of type OBO_REL:instance_of (or rdf:type). Note this is redundant, but it can speed queries'; @@ -78,7 +80,7 @@ blank - disjunctive each set of links is grouped by combinator and treated as a distinct set, so it is possible to have all of: - a collection of necessary conditions ('') + a collection of necessary conditions ("") a collection of necessary+sufficient conditions by set-intersection (I) a collection of necessary+sufficient conditions by set-union (U) specified directly for a node @@ -113,6 +115,18 @@ in the link_cardinality table'; +CREATE TABLE link_argument ( + link_argument_id SERIAL PRIMARY KEY, + link_id INTEGER NOT NULL, + FOREIGN KEY (link_id) REFERENCES link(link_id) ON DELETE CASCADE, + predicate_id INTEGER NOT NULL, + FOREIGN KEY (predicate_id) REFERENCES node(node_id) ON DELETE CASCADE, + object_id INTEGER NOT NULL, + FOREIGN KEY (object_id) REFERENCES node(node_id) ON DELETE CASCADE +); + +COMMENT ON TABLE link_argument IS 'n-ary relations (not involving time)'; + CREATE TABLE link_inference ( link_inference_id SERIAL PRIMARY KEY, link_id INTEGER NOT NULL, @@ -148,12 +162,14 @@ FOREIGN KEY (object_id) REFERENCES node(node_id) ON DELETE CASCADE, is_inferred BOOLEAN NOT NULL DEFAULT 'f', source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE, + loaded_from_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE, CONSTRAINT sameas_unique_c UNIQUE(node_id, object_id, source_id) ); COMMENT ON TABLE sameas IS 'STATUS: under discussion. Should we use the generic link table? Currently, no; rationale: sameas is a metamodel relation and not a relation between distinct entities in reality'; CREATE TABLE tagval ( + tagval_id SERIAL PRIMARY KEY, node_id INTEGER NOT NULL, FOREIGN KEY (node_id) REFERENCES node(node_id) ON DELETE CASCADE, tag_id INTEGER NOT NULL, @@ -161,7 +177,8 @@ datatype_id INTEGER, FOREIGN KEY (datatype_id) REFERENCES node (node_id) ON DELETE CASCADE, val TEXT NOT NULL, - source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE + source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE, + loaded_from_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE ); @@ -173,7 +190,7 @@ COMMENT ON COLUMN tagval.source_id IS 'A node representing an information resource in which the tagval was originally asserted. Equivalent to OBO-Namespace. TODO: formalize relationship to RDF named graphs'; CREATE INDEX tagval_nt_index ON tagval(node_id, tag_id); -CREATE INDEX tagval_label_indx ON tagval(val); +--CREATE INDEX tagval_label_indx ON tagval(val); CREATE TABLE alias ( alias_id SERIAL PRIMARY KEY, @@ -183,7 +200,8 @@ type_id INTEGER, FOREIGN KEY (type_id) REFERENCES node(node_id) ON DELETE CASCADE, label VARCHAR NOT NULL, - source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE + source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE, + loaded_from_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE ); COMMENT ON TABLE alias IS 'Alternate label for node. Intended for humans'; COMMENT ON COLUMN alias.node_id IS 'Node to which this alias applies'; @@ -202,8 +220,9 @@ scope VARCHAR, --? type_id INTEGER, FOREIGN KEY (type_id) REFERENCES node(node_id) ON DELETE CASCADE, - label VARCHAR NOT NULL, - source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE + label TEXT NOT NULL, + source_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE, + loaded_from_id INTEGER REFERENCES node(node_id) ON DELETE CASCADE ); COMMENT ON TABLE description IS 'Narrative text intended for humans describing what entity the node represents'; COMMENT ON COLUMN description.node_id IS 'Node to which this description applies'; @@ -213,7 +232,7 @@ COMMENT ON COLUMN description.source_id IS 'A node representing an information resource in which the description was originally asserted. Equivalent to OBO-Namespace. TODO: formalize relationship to RDF named graphs'; CREATE INDEX description_nt_indx ON description(node_id,type_id); -CREATE INDEX description_label_indx ON description(label); +-- CREATE INDEX description_label_indx ON description(label); too big for index? CREATE TABLE node_xref ( node_id INTEGER NOT NULL, Modified: obo-database/trunk/sql/obd-core-views.sql =================================================================== --- obo-database/trunk/sql/obd-core-views.sql 2007-10-06 21:52:37 UTC (rev 967) +++ obo-database/trunk/sql/obd-core-views.sql 2007-10-06 22:03:11 UTC (rev 968) @@ -70,7 +70,7 @@ combinator, source_id FROM link; -COMMENT ON VIEW 'A link in the reverse direction. Example_of_use: +COMMENT ON VIEW revlink IS 'A link in the reverse direction. Example_of_use: SELECT * FROM node INNER JOIN revlink USING (node_id). May be useful for inverse DAG traversal. Has no real-world semantics'; @@ -143,8 +143,16 @@ SELECT link.* FROM link INNER JOIN is_a_relation ON (predicate_id=is_a_relation.node_id) WHERE combinator=''; + COMMENT ON VIEW is_a_link IS 'A link of type "is_a" that is not a combinator/union'; +CREATE OR REPLACE VIEW non_is_a_basic_link AS + SELECT link.* + FROM link + WHERE combinator='' + AND predicate_id NOT IN (SELECT node_id FROM is_a_relation); +COMMENT ON VIEW non_is_a_basic_link IS 'A link of type that is not "is_a", and not a combinator/union'; + CREATE OR REPLACE VIEW asserted_is_a_link AS SELECT * FROM is_a_link WHERE is_inferred='f'; COMMENT ON VIEW asserted_is_a_link IS 'An is_a_link that is not inferred (ie it is asserted)'; @@ -233,6 +241,41 @@ WHERE link1.link_id != link2.link_id; +COMMENT ON VIEW consecutive_link_pair IS 'A pair of links in which the +object of one matches the node of another. For example, X is_a Y + Y +part_of Z'; + +CREATE OR REPLACE VIEW sibling_link_pair AS + SELECT + link1.*, + link1.node_id AS sibling_node_id, + link2.predicate_id AS sibling_predicate_id, + link2.is_inferred AS sibling_is_inferred + FROM + link AS link1 + INNER JOIN link AS link2 ON (link1.object_id=link2.object_id) + WHERE + link1.link_id != link2.link_id; + +COMMENT ON VIEW sibling_link_pair IS 'A pair of links that share +the same object_id'; + +CREATE OR REPLACE VIEW parent_link_pair AS + SELECT + link1.*, + link2.predicate_id AS parent_predicate_id, + link1.object_id AS parent_object_id, + link2.is_inferred AS parent_is_inferred + FROM + link AS link1 + INNER JOIN link AS link2 ON (link1.node_id=link2.node_id) + WHERE + link1.link_id != link2.link_id; + +COMMENT ON VIEW parent_link_pair IS 'A pair of links that share +the same node_id'; + + CREATE OR REPLACE VIEW cyclic_link_pair AS SELECT * @@ -240,6 +283,10 @@ consecutive_link_pair WHERE node_id = next_object_id; + +COMMENT ON VIEW cyclic_link_pair IS 'A consecutive_link_pair in which +the main link node equals the succeeding link object'; + CREATE OR REPLACE VIEW cyclic_link_pair_with_nodes AS SELECT @@ -260,8 +307,10 @@ INNER JOIN node AS object_node ON (consecutive_link_pair.next_object_id=object_node.node_id) WHERE node.node_id = next_object_id; - +COMMENT ON VIEW cyclic_link_pair IS 'A cyclic_link_pair with node +information; a convenience view'; + -- ************************************************************ -- GRAPH TOPOLOGY VIEWS -- ************************************************************ @@ -275,13 +324,26 @@ node WHERE NOT EXISTS (SELECT * FROM link WHERE link.node_id=node.node_id); +COMMENT ON VIEW graph_root_node IS 'A node that has no links from it'; + CREATE OR REPLACE VIEW graph_root_class_node AS SELECT * FROM graph_root_node WHERE metatype='C'; + +COMMENT ON VIEW graph_root_class_node IS 'A class_node that has no +links from it'; + CREATE OR REPLACE VIEW graph_root_relation_node AS SELECT * FROM graph_root_node WHERE metatype='R'; + +COMMENT ON VIEW graph_root_relation_node IS 'A relation_node that has no +links from it'; + CREATE OR REPLACE VIEW graph_root_instance_node AS SELECT * FROM graph_root_node WHERE metatype='I'; +COMMENT ON VIEW graph_root_instance_node IS 'A instance_node that has no +links from it'; + CREATE OR REPLACE VIEW graph_leaf_node AS SELECT * @@ -289,14 +351,26 @@ node WHERE NOT EXISTS (SELECT * FROM link WHERE link.object_id=node.node_id); +COMMENT ON VIEW graph_leaf_node IS 'A node that has no links to it'; + CREATE OR REPLACE VIEW graph_leaf_class_node AS SELECT * FROM graph_leaf_node WHERE metatype='C'; + +COMMENT ON VIEW graph_lead_class_node IS 'A class_node that has no +links to it'; + CREATE OR REPLACE VIEW graph_leaf_relation_node AS SELECT * FROM graph_leaf_node WHERE metatype='R'; + +COMMENT ON VIEW graph_lead_class_node IS 'A relation_node that has no +links to it'; + CREATE OR REPLACE VIEW graph_leaf_instance_node AS SELECT * FROM graph_leaf_node WHERE metatype='I'; --- too slow.. +COMMENT ON VIEW graph_lead_instance_node IS 'An instance_node that has no +links to it'; + CREATE OR REPLACE VIEW graph_root_id_by_relation AS SELECT DISTINCT nodepred.node_id, @@ -307,6 +381,10 @@ LEFT OUTER JOIN link ON (nodepred.node_id=link.object_id) WHERE link.node_id IS NULL; +COMMENT ON VIEW graph_root_id_by_relation IS 'A node that has no links +from it of a certain edge relation type. NOTE: **this view is +currently too slow** materialize??'; + -- ************************************************************ -- JOINS -- ************************************************************ @@ -358,13 +436,31 @@ obj.metatype AS object_metatype FROM node_link INNER JOIN node AS obj ON (node_link.object_id=obj.node_id); +COMMENT ON VIEW link_to_node IS 'Link joined to node via +link.object_id. Join: link * object.node. Example: querying this via the node_id for "Tenth +thoracic vertebra", then the query will return link_to_node rows for +"is_a Thoracic vertebrae" and "has_part Bony part of eleventh thoracic +vertebra"'; + CREATE OR REPLACE VIEW link_to_instance AS SELECT * FROM link_to_node WHERE object_metatype='I'; + +COMMENT ON VIEW link_to_instance IS 'a link_to_node whete the node is +an instance'; + CREATE OR REPLACE VIEW link_to_class AS SELECT * FROM link_to_node WHERE object_metatype='C'; + +COMMENT ON VIEW link_to_class IS 'a link_to_node whete the node is +a class'; + CREATE OR REPLACE VIEW link_to_relation AS SELECT * FROM link_to_node WHERE object_metatype='R'; +COMMENT ON VIEW link_to_relation IS 'a link_to_node whete the node is +a relation'; + + -- %% node * link * node (triple) %% CREATE OR REPLACE VIEW node_link_node AS @@ -376,15 +472,23 @@ obj.metatype AS object_metatype FROM node_link INNER JOIN node AS obj ON (node_link.object_id=obj.node_id); +COMMENT ON VIEW node_link_node IS 'A join between two nodes via a +link. Join: link * node * object.node. This is a convenience view to avoid having to explicitly make +the join. Example: SELECT * FROM node_link_node WHERE +node_label="apoptosis"'; + CREATE OR REPLACE VIEW instance_link_instance AS SELECT * FROM node_link_node WHERE node_metatype='I' AND object_metatype='I'; + CREATE OR REPLACE VIEW instance_link_class AS SELECT * FROM node_link_node WHERE node_metatype='I' AND object_metatype='C'; + CREATE OR REPLACE VIEW class_link_instance AS SELECT * FROM node_link_node WHERE node_metatype='C' AND object_metatype='I'; + CREATE OR REPLACE VIEW class_link_class AS SELECT * FROM node_link_node WHERE node_metatype='C' AND object_metatype='C'; @@ -397,6 +501,10 @@ pred.metatype AS pred_metatype FROM link INNER JOIN node AS pred ON (predicate_id=pred.node_id); +COMMENT ON VIEW link_with_pred IS 'A join between a link and a +predicate node. link * predicate.node. Convenience view to avoid +having to explicitly make the join'; + CREATE OR REPLACE VIEW link_with_pred_uid AS SELECT link.*, pred.uid AS pred_uid @@ -410,6 +518,18 @@ pred.metatype AS pred_metatype FROM node_link_node INNER JOIN node AS pred ON (predicate_id=pred.node_id); +COMMENT ON VIEW node_link_node_with_pred IS 'A join between a subject +node, an object node and a predicate node via a link. Join: link * +node * object.node * predicate.node. Convenience view'; + +CREATE OR REPLACE VIEW node_with_source AS + SELECT node.*, + source.uid AS source_uid, + source.label AS source_label + FROM node LEFT OUTER JOIN node AS source ON (node.source_id=source.node_id); + + + -- ************************************************************ -- OBO METAMODEL -- ************************************************************ @@ -417,13 +537,18 @@ SET search_path TO obd_obo_metamodel_view,obd_prejoins_view,obd_core_view,public; CREATE OR REPLACE VIEW in_subset_link AS - SELECT * + SELECT + link.link_id, + link.node_id AS node_id, + link.object_id AS subset_node_id FROM - link_with_pred + link_with_pred AS link WHERE pred_uid='oboMetaModel:inSubset'; +COMMENT ON VIEW in_subset_link IS 'holds if node_id belongs to the subset_node_id'; + -- ************************************************************ -- ANNOTATION MODEL -- ************************************************************ @@ -436,6 +561,8 @@ FROM link_with_pred_uid AS pl WHERE pred_uid='oban:posits'; +COMMENT ON VIEW posits_link IS 'holds if node_id is a annotation node asserting link_reifnode_id'; + CREATE OR REPLACE VIEW link_to_link AS SELECT link_in.node_id AS in_node_id, @@ -455,10 +582,31 @@ SELECT * FROM node WHERE node_id IN (SELECT node_id FROM link WHERE reiflink_node_id IS NOT NULL); +CREATE OR REPLACE VIEW annotation_count_by_annotated_entity_and_source AS + SELECT + source.uid AS source_uid, + source.label AS source_label, + ae.uid, + ae.label, + count(link.*) + FROM + link + INNER JOIN node AS source ON (link.source_id=source.node_id) + INNER JOIN node AS ae ON (link.node_id=ae.node_id) + WHERE + reiflink_node_id IS NOT NULL + GROUP BY + source.uid, + source.label, + ae.uid, + ae.label; + + + -- instance of an annotation and the statement posited in the annotation CREATE OR REPLACE VIEW annotation_node_J_link AS SELECT - node.*, + n.*, link.node_id AS subject_id FROM annotation_node AS n INNER JOIN link ON (n.node_id=link.reiflink_node_id); @@ -500,11 +648,11 @@ CREATE OR REPLACE VIEW annotation_evidence AS SELECT - annotation.*, + annotation_node.*, has_evidence.object_id AS evidence_id, has_evidence.is_inferred - FROM annotation - INNER JOIN link_J_predicate AS has_evidence ON (node_id) + FROM annotation_node + INNER JOIN link_J_predicate AS has_evidence USING (node_id) WHERE has_evidence.predicate_uid='oban:has_evidence'; @@ -554,47 +702,60 @@ CREATE SCHEMA obd_aggregate_view; SET search_path TO obd_aggregate_view,obd_annotation_view,obd_prejoins_view, obd_obo_metamodel_view,obd_core_view,public; -CREATE OR REPLACE VIEW statementcount_by_source AS - SELECT source.uid,source.label, count(sn.node_id) +CREATE OR REPLACE VIEW statement_count_by_source AS + SELECT source.uid,source.label, count(sn.node_id) AS statement_count FROM statement_node AS sn INNER JOIN node AS source ON (sn.source_id=source.node_id) GROUP BY source.uid,source.label; -CREATE OR REPLACE VIEW nodecount_by_source AS - SELECT source.uid,source.label, count(node.node_id) +CREATE OR REPLACE VIEW node_count_by_source AS + SELECT source.uid,source.label, count(node.node_id) AS node_count FROM node LEFT OUTER JOIN node AS source ON (node.source_id=source.node_id) GROUP BY source.uid,source.label; -CREATE OR REPLACE VIEW linkcount_by_source AS - SELECT source.uid,source.label, count(link.link_id) +CREATE OR REPLACE VIEW node_count_by_source_id AS + SELECT node.source_id, count(node.node_id) AS node_count + FROM node + GROUP BY node.source_id; + +CREATE OR REPLACE VIEW link_count_by_source AS + SELECT source.uid,source.label, count(link.link_id) AS link_count FROM link LEFT OUTER JOIN node AS source ON (link.source_id=source.node_id) GROUP BY source.uid,source.label; -CREATE OR REPLACE VIEW reified_linkcount_by_source AS - SELECT source.uid,source.label, count(link.link_id) +CREATE OR REPLACE VIEW link_count_by_source_id AS + SELECT link.source_id, count(link.link_id) AS link_count + FROM link + GROUP BY source_id; + +CREATE OR REPLACE VIEW annotation_count_by_source AS + SELECT source.uid,source.label, count(link.link_id) AS link_count FROM link LEFT OUTER JOIN node AS source ON (link.source_id=source.node_id) WHERE reiflink_node_id IS NOT NULL GROUP BY source.uid,source.label; -CREATE OR REPLACE VIEW linkcount_by_predicate_and_source AS - SELECT source.uid,source.label, pred.uid AS pred_uid, pred.label AS pred_label,count(link.link_id) +COMMENT ON VIEW annotation_count_by_source IS 'Number of reified +links (annotations) grouped by source'; + +CREATE OR REPLACE VIEW link_count_by_predicate_and_source AS + SELECT source.uid,source.label, pred.uid AS pred_uid, pred.label AS pred_label,count(link.link_id) AS link_count FROM link LEFT OUTER JOIN node AS source ON (link.source_id=source.node_id) INNER JOIN node AS pred ON (pred.node_id=link.predicate_id) GROUP BY source.uid,source.label,pred.uid,pred.label; -CREATE OR REPLACE VIEW linkcount_by_node_source AS - SELECT source.uid,source.label, count(link.link_id) +CREATE OR REPLACE VIEW link_count_by_node_source AS + SELECT source.uid,source.label, count(link.link_id) AS link_count FROM link INNER JOIN node USING (node_id) LEFT OUTER JOIN node AS source ON (node.source_id=source.node_id) GROUP BY source.uid,source.label; -CREATE OR REPLACE VIEW linkcount_by_node_and_object_source AS +CREATE OR REPLACE VIEW link_count_by_node_and_object_source AS SELECT node_source.uid AS node_source_uid, node_source.label AS node_source_label, obj_source.uid AS obj_source_uid, obj_source.label AS obj_source_label, - count(link.link_id) + count(link.link_id) AS link_count FROM link INNER JOIN node USING (node_id) LEFT OUTER JOIN node AS node_source ON (node.source_id=node_source.node_id) @@ -606,40 +767,167 @@ obj_source_label; CREATE OR REPLACE VIEW inter_ontology_linkcount AS - SELECT * FROM linkcount_by_node_and_object_source WHERE node_source_uid!=obj_source_uid; + SELECT * + FROM link_count_by_node_and_object_source + WHERE node_source_uid != obj_source_uid; -CREATE OR REPLACE VIEW linkcount_by_relation_and_node_source AS - SELECT pred.uid AS relation_uid,pred.label AS relation_label,source.uid,source.label, count(link.link_id) +CREATE OR REPLACE VIEW link_count_by_relation_and_node_source AS + SELECT pred.uid AS relation_uid,pred.label AS relation_label,source.uid,source.label, count(link.link_id) AS link_count FROM link LEFT OUTER JOIN node AS source ON (link.source_id=source.node_id) INNER JOIN node AS pred ON (link.predicate_id=pred.node_id) GROUP BY pred.uid,pred.label,source.uid,source.label; -CREATE OR REPLACE VIEW linkcount_by_metatype_and_source AS - SELECT source.uid,source.label, is_inferred, combinator, count(link.link_id) +CREATE OR REPLACE VIEW link_count_by_metatype_and_source AS + SELECT source.uid,source.label, is_inferred, combinator, count(link.link_id) AS link_count FROM link LEFT OUTER JOIN node AS source ON (link.source_id=source.node_id) GROUP BY source.uid,source.label, is_inferred, combinator; -CREATE OR REPLACE VIEW linkcount_by_metatype_and_node_source AS - SELECT source.uid,source.label, is_inferred, combinator, count(link.link_id) +CREATE OR REPLACE VIEW link_count_by_metatype_and_node_source AS + SELECT source.uid,source.label, is_inferred, combinator, count(link.link_id) AS link_count FROM link INNER JOIN node USING (node_id) LEFT OUTER JOIN node AS source ON (node.source_id=source.node_id) GROUP BY source.uid,source.label, is_inferred, combinator; -CREATE OR REPLACE VIEW implied_linkcount_by_node_source AS - SELECT source.uid,source.label, count(link.link_id) +CREATE OR REPLACE VIEW implied_link_count_by_node_source AS + SELECT source.uid,source.label, count(link.link_id) AS link_count FROM link INNER JOIN node USING (node_id) LEFT OUTER JOIN node AS source ON (node.source_id=source.node_id) WHERE link.is_inferred='t' GROUP BY source.uid,source.label; -CREATE OR REPLACE VIEW nodecount_by_metatype_and_node_source AS - SELECT node.metatype,source.uid,source.label, count(node.node_id) +CREATE OR REPLACE VIEW node_count_by_metatype_and_node_source AS + SELECT node.metatype,source.uid,source.label, count(node.node_id) AS node_count FROM node LEFT OUTER JOIN node AS source ON (node.source_id=source.node_id) GROUP BY node.metatype,source.uid,source.label; +CREATE OR REPLACE VIEW annotated_entity_count_by_source AS + SELECT source.uid,source.label, count(DISTINCT node.node_id) AS annotated_entity_count + FROM link + INNER JOIN node USING (node_id) + LEFT OUTER JOIN node AS source ON (node.source_id=source.node_id) + WHERE + reiflink_node_id IS NOT NULL + GROUP BY source.uid,source.label; + +CREATE OR REPLACE VIEW annotated_entity_count_by_source_id AS + SELECT node.source_id, count(DISTINCT node.node_id) AS annotated_entity_count + FROM link + INNER JOIN node USING (node_id) + WHERE + reiflink_node_id IS NOT NULL + GROUP BY node.source_id; + +CREATE OR REPLACE VIEW source_summary AS + SELECT + source.uid,source.label, + nc.node_count, + lc.link_count, + aec.annotated_entity_count + FROM + node AS source + INNER JOIN node_count_by_source_id AS nc ON (nc.source_id=source.node_id) + LEFT OUTER JOIN link_count_by_source_id AS lc ON (lc.source_id=source.node_id) + LEFT OUTER JOIN annotated_entity_count_by_source_id AS aec ON (aec.source_id=source.node_id); + +CREATE OR REPLACE VIEW node_count_by_document_source AS + SELECT source.uid,source.label, count(node.node_id) AS node_count + FROM node + INNER JOIN node_audit USING (node_id) + INNER JOIN node AS source ON (node_audit.source_id=source.node_id) + GROUP BY source.uid,source.label; + + + +-- todo +-- so far only shows meaningful results for class AE nodes +CREATE OR REPLACE VIEW annotated_entity_count_by_type AS + SELECT type_node.uid, type_node.label, count(DISTINCT link.node_id) AS annotated_entity_count + FROM link + INNER JOIN is_a_link USING (node_id) + INNER JOIN node AS type_node ON (is_a_link.object_id=type_node.node_id) + WHERE + link.reiflink_node_id IS NOT NULL + GROUP BY type_node.uid, type_node.label; + + +--- per node-level aggregates: + +CREATE OR REPLACE VIEW link_count_by_node AS + SELECT + node.uid AS node_uid, + node.label AS node_label, + node.source_id AS node_source_id, + count(DISTINCT link_id) AS link_count + FROM node INNER JOIN link USING (node_id) + GROUP BY + node.uid, + node.label, + node.source_id; + +CREATE OR REPLACE VIEW asserted_link_count_by_node AS + SELECT + node.uid AS node_uid, + node.label AS node_label, + node.source_id AS node_source_id, + count(DISTINCT link_id) AS link_count + FROM node INNER JOIN asserted_link USING (node_id) + GROUP BY + node.uid, + node.label, + node.source_id; + +CREATE OR REPLACE VIEW linked_object_count_by_node AS + SELECT + node.uid AS node_uid, + node.label AS node_label, + node.source_id AS node_source_id, + count(DISTINCT link.object_id) AS link_count + FROM node INNER JOIN link USING (node_id) + GROUP BY + node.uid, + node.label, + node.source_id; + +CREATE OR REPLACE VIEW asserted_linked_object_count_by_node AS + SELECT + node.uid AS node_uid, + node.label AS node_label, + node.source_id AS node_source_id, + count(DISTINCT asserted_link.object_id) AS link_count + FROM node INNER JOIN asserted_link USING (node_id) + GROUP BY + node.uid, + node.label, + node.source_id; + +CREATE OR REPLACE VIEW link_count_by_object_node AS + SELECT + obj.uid AS object_uid, + obj.label AS object_label, + obj.source_id AS object_source_id, + count(DISTINCT link_id) AS link_count + FROM node AS obj INNER JOIN link ON (obj.node_id=link.object_id) + GROUP BY + obj.uid, + obj.label, + obj.source_id; + +CREATE OR REPLACE VIEW asserted_link_count_by_object_node AS + SELECT + obj.uid AS object_uid, + obj.label AS object_label, + obj.source_id AS object_source_id, + count(DISTINCT link_id) AS link_count + FROM node AS obj INNER JOIN asserted_link ON (obj.node_id=asserted_link.object_id) + GROUP BY + obj.uid, + obj.label, + obj.source_id; + + -- ************************************************************ -- INFORMATION CONTENT -- ************************************************************ @@ -661,7 +949,7 @@ CREATE OR REPLACE VIEW count_of_annotated_entity AS SELECT - count(DISTINCT object_id) AS total + count(DISTINCT node_id) AS total FROM asserted_link WHERE @@ -680,6 +968,7 @@ SELECT node_id, -- evidence_id, + tbc.total AS annotated_entity_count, - log(cast(tbc.total AS float) / t.total) / log(2) AS shannon_information FROM count_of_annotated_entity_by_class_node_and_evidence AS tbc, @@ -702,4 +991,103 @@ class_node_entropy_by_evidence INNER JOIN node USING (node_id); +COMMENT ON VIEW +class_node_entropy_by_evidence_with_node_and_auto_label IS 'each class +that has an annotation (asserted and implied) together with the +information content of the class, based on the overall background set +of annotations. TODO: choice of background set. TODO: different +relations for deductive closure. USE NOTES: order by +shannon_information for most informative results'; +CREATE OR REPLACE VIEW annotation_with_information_content AS + SELECT + asserted_link.*, + annotated_entity_count, + shannon_information + FROM + asserted_link + INNER JOIN class_node_entropy_by_evidence AS cne ON (asserted_link.object_id = cne.node_id) + WHERE + reiflink_node_id IS NOT NULL; + +CREATE OR REPLACE VIEW avg_annotation_information_content_by_source AS + SELECT + source.uid, source.label, avg(ai.shannon_information) + FROM + annotation_with_information_content AS ai + INNER JOIN node ON (ai.node_id=node.node_id) + INNER JOIN node AS source ON (node.source_id=source.node_id) + GROUP BY source.uid,source.label; + +-- ************************************************************ +-- AUDIT INFO +-- ************************************************************ +CREATE SCHEMA owl; +SET search_path TO owl,obd_prejoins_view, obd_obo_metamodel_view,obd_core_view,public; + +CREATE OR REPLACE VIEW n_subClassOf_n AS + SELECT + link_id, + node_id, + OBJECT_id AS subClassOf_id, + source_id + FROM + is_a_link; + +CREATE OR REPLACE VIEW n_subClassOf_r AS + SELECT + link_id, + node_id, + link_id AS Restriction_id, + source_id + FROM + non_is_a_basic_link; + +CREATE OR REPLACE VIEW n_subClassOf_nr AS + SELECT + * + FROM link + UNION + SELECT + link_id, + node_id, + source_id, + Restriction_id + FROM n_subClassOf_r; + +CREATE OR REPLACE VIEW subClassOf_nr AS + SELECT + node.uri, + n_subClassOf_nr.* + FROM + n_subClassOf_nr + INNER JOIN node USING (node_id); + +CREATE OR REPLACE VIEW subClassOf AS + SELECT + subClassOf_nr.*, + x + FROM + subClassOf_nr + INNER JOIN node USING (node_id); + + +-- ************************************************************ +-- AUDIT INFO +-- ************************************************************ +CREATE SCHEMA obd_audit_view; +SET search_path TO obd_audit_view,public; + +CREATE OR REPLACE VIEW node_audit_summary AS + SELECT + max(loadtime) AS max_loadtime, + min(loadtime) AS min_loadtime + FROM + node_audit; + +CREATE OR REPLACE VIEW node_max_loadtime_by_source AS + SELECT source.uid,source.label, max(loadtime) AS max_loadtime + FROM node LEFT OUTER JOIN node AS source ON (node.source_id=source.node_id) + INNER JOIN node_audit ON (node.node_id=node_audit.node_id) + GROUP BY source.uid,source.label; + Modified: obo-database/trunk/sql/users.sql =================================================================== --- obo-database/trunk/sql/users.sql 2007-10-06 21:52:37 UTC (rev 967) +++ obo-database/trunk/sql/users.sql 2007-10-06 22:03:11 UTC (rev 968) @@ -1 +1 @@ -ALTER USER cjm SET search_path TO obd_statistical_view,obd_aggregate_view,obd_annotation_view,obd_prejoins_view, obd_obo_metamodel_view,obd_core_view,public; +ALTER USER cjm SET search_path TO obd_statistical_view,obd_aggregate_view,obd_annotation_view,obd_prejoins_view, obd_obo_metamodel_view,obd_core_view,obd_denormalized,public; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-06 21:52:34
|
Revision: 967 http://obo.svn.sourceforge.net/obo/?rev=967&view=rev Author: cmungall Date: 2007-10-06 14:52:37 -0700 (Sat, 06 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/bin/obd-create-db.pl obo-database/trunk/bin/obd-load-db-from-obo.pl Modified: obo-database/trunk/bin/obd-create-db.pl =================================================================== --- obo-database/trunk/bin/obd-create-db.pl 2007-10-06 01:51:14 UTC (rev 966) +++ obo-database/trunk/bin/obd-create-db.pl 2007-10-06 21:52:37 UTC (rev 967) @@ -5,6 +5,7 @@ my $dbhost = ''; my @files = (); my $dump_as; +my $conf_file; while (my $opt = shift @ARGV) { if ($opt =~ /^\-/) { if ($opt eq '-d' || $opt eq '--database') { @@ -13,6 +14,9 @@ elsif ($opt eq '-h' || $opt eq '--host') { $dbhost = shift @ARGV; } + elsif ($opt eq '-c' || $opt eq '--conf') { + $conf_file = shift @ARGV; + } elsif ($opt eq '--dump') { $dump_as = shift @ARGV; } @@ -41,6 +45,21 @@ run("psql $args < $sqldir/obd-core-views.sql "); run("psql $args < $sqldir/obd-core-functions.plpgsql "); +if ($conf_file) { + open(F,$conf_file); + while(<F>) { + chomp; + if (/^http:/ || /$file:/) { + push(@files, $_); + } + else { + push(@files,"http://purl.org/obo/obo-all/$_/$_.obo"); + } +# push(@files,"obo-all/$_/$_.obo"); + } + close(F); +} + foreach my $file (@files) { my $dbiargs = $dbhost ? "-h $dbhost -d $db" : "-d $db"; run("obd-load-db-from-obo.pl $dbiargs $file"); Modified: obo-database/trunk/bin/obd-load-db-from-obo.pl =================================================================== --- obo-database/trunk/bin/obd-load-db-from-obo.pl 2007-10-06 01:51:14 UTC (rev 966) +++ obo-database/trunk/bin/obd-load-db-from-obo.pl 2007-10-06 21:52:37 UTC (rev 967) @@ -7,7 +7,7 @@ my $use_reasoner = $ENV{OBD_USE_OBOEDIT_REASONER} || 0; my $dump; my $split; -my $nodelete; +my $nodelete = 1; my @parse_args = (); while ($ARGV[0] =~ /^\-/) { my $opt = shift @ARGV; @@ -26,6 +26,9 @@ elsif ($opt eq '--nodelete') { $nodelete = 1; } + elsif ($opt eq '--delete') { + $nodelete = 0; + } elsif ($opt eq '--split') { $split = shift @ARGV; } @@ -43,10 +46,18 @@ print STDERR "Loading\n"; foreach my $file (@files) { + # only deletes if asked.. unless ($nodelete) { clear_previous($file); } print STDERR "Converting File: $file\n"; + my $is_tmp = 0; + if ($file =~ /^http:.*\/(.*)$/) { + my $nu = $1; + run("wget -O $nu $file"); + $file=$nu; + $is_tmp=1; + } my $ifile = "$file.implied.obo"; if ($use_reasoner) { run("obo2obo -o -saveallimpliedlinks $ifile $file"); @@ -61,6 +72,9 @@ else { run("go2fmt.pl @parse_args -x oboxml_to_obd_prestore $ifile | stag-storenode.pl -p xml -cache node=1 -d $d -"); } + if ($is_tmp) { + unlink($file); + } print STDERR "Loaded File: $ifile\n"; } if ($dump) { @@ -92,6 +106,7 @@ } close(F); foreach my $source (keys %ns) { + print STDERR "source: $source\n"; my ($source_id) = $dbh->selectrow_array("SELECT node_id FROM node WHERE uid='$source'"); return unless $source_id; foreach my $table (qw(link sameas tagval alias description)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <azu...@us...> - 2007-10-06 01:51:10
|
Revision: 966 http://obo.svn.sourceforge.net/obo/?rev=966&view=rev Author: azurebrd Date: 2007-10-05 18:51:14 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Not sure I changed anything, but getting the latest in just in case Modified Paths: -------------- phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java Modified: phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java 2007-10-05 21:49:31 UTC (rev 965) +++ phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java 2007-10-06 01:51:14 UTC (rev 966) @@ -51,18 +51,75 @@ return "Commit To Worm DB"; } - public void delete() { + public void delete(Connection c, Statement s) { List<CharacterI> l = EditManager.inst().getDeletedAnnotations(); try { for (CharacterI chr : l) { String pgdbid = chr.getValueString("PGDBID"); if (pgdbid == null) continue; - System.out.println("Delete "+pgdbid+" end"); } + System.out.println("Delete "+pgdbid+" end"); + int colI = 0; int boxI = 0; // initialize column to zero + String match = find(".* - ([0-9]+) - [0-9]+", pgdbid); // Find a tempname followed by space - space number + if (match != null) { boxI = Integer.parseInt(match); } // get the column number if there is one + match = find(".* - [0-9]+ - ([0-9]+)", pgdbid); // Find a tempname followed by space - space number + if (match != null) { colI = Integer.parseInt(match); } // get the column number if there is one + match = find("(.*) - [0-9]+ - [0-9]+", pgdbid); // Find a tempname followed by space - space number + if (match != null) { pgdbid = match; } // query for this, otherwise keep the default value + String joinkey = pgdbid; // assign the tempname / allele to the joinkey + System.out.println("Delete "+pgdbid+" Join "+joinkey+" Box "+boxI+" Col "+colI+" end"); + +// These have only box and not column +// String postgres_table = "app_paper"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); +// postgres_table = "app_person"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); +// postgres_table = "app_phenotype"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); +// postgres_table = "app_paper_remark"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); +// postgres_table = "app_intx_desc"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + String postgres_table = "app_curator"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_term"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_phen_remark"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_anat_term"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_lifestage"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_nature"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_func"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_temperature"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_preparation"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_penetrance"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_percent"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_range"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_quantity"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_quantity_remark"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_heat_sens"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_heat_degree"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_cold_sens"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_cold_degree"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_mat_effect"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_pat_effect"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_genotype"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_strain"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + postgres_table = "app_obj_remark"; nullPostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI); + } } catch (Exception e) { System.out.println("Could not delete character: " + e); } } + public void nullPostgresBoxCol(Connection c, Statement s, String postgres_table, String joinkey, int boxI, int colI) { + String postgres_value = "No postgres value assigned"; + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); + if ( (postgres_value.equals("No postgres value assigned")) || (postgres_value.equals("postgres value is null")) ) { } else { + updatePostgresBoxCol(c, s, postgres_table, joinkey, boxI, colI, null); } + } + + private void updatePostgresBoxCol(Connection c, Statement s, String postgres_table, String joinkey, int boxI, int colI, String value) { + PreparedStatement ps = null; // intialize postgres insert + try { ps = c.prepareStatement("INSERT INTO "+postgres_table+" VALUES (?, ?, ?, ?)"); ps.setString(1, joinkey); ps.setInt(2, boxI); ps.setInt(3, colI); ps.setString(4, value); } + catch (SQLException se) { + System.out.println("We got an exception while preparing our insert: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } + try { ps.executeUpdate(); } + catch (SQLException se) { System.out.println("We got an exception while executing an update: possibly bad SQL, or check the connection."); se.printStackTrace(); System.exit(1); } + } // private void updatePostgresCol(String postgres_table, String joinkey, int colI, String value) + + public CharacterI getCharacterReference(String refID) throws DataAdapterEx { CharacterListManager clm = CharacterListManager.getCharListMan("referenceMaker"); for (CharacterI chr : clm.getCharList()) { @@ -305,7 +362,7 @@ } // for (CharacterI chr : charList.getList()) - delete(); + delete(c, s); // if alleleQueried... wipe out allele and insert // else if Pub queried... wipe out pub and insert // else - new insert & deletes(from transactions) @@ -470,7 +527,7 @@ private CharacterListI queryPostgresCharacterReferenceList(String group, CharacterListI charList, Statement s, String joinkey, int boxI, int colI) { // populate a phenote character based on postgres value by joinkey, then append to character list try { - CharacterI c1 = CharacterIFactory.makeChar(); // create a new character for a phenote row + CharacterI c1 = CharacterIFactory.makeChar(); // create a new character for a phenote row String pubID = null; String title = null; String personID = null; String name = null; String nbp = null; @@ -519,7 +576,7 @@ private CharacterListI queryPostgresCharacterMainList(String group, CharacterListI charList, Statement s, String joinkey, int boxI, int colI) { // populate a phenote character based on postgres value by joinkey, then append to character list try { - CharacterI c1 = CharacterIFactory.makeChar(); // create a new character for a phenote row + CharacterI c1 = CharacterIFactory.makeChar(); // create a new character for a phenote row c1.setValue("Object Name",joinkey); // assign the allele and the column String alleleColumn = joinkey+" - "+boxI+" - "+colI; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-05 21:49:30
|
Revision: 965 http://obo.svn.sourceforge.net/obo/?rev=965&view=rev Author: mgibson Date: 2007-10-05 14:49:31 -0700 (Fri, 05 Oct 2007) Log Message: ----------- can now sort by id for completion impetus was zfins stages which id order is same as development order conveniently - and doesnt make sense to do alphabetically configged for field with sort-by="ID" Modified Paths: -------------- phenote/trunk/conf/phenote-config.rnc phenote/trunk/conf/phenote-config.xsd phenote/trunk/conf/zfin-standalone.cfg phenote/trunk/jars/phenoteconfigbeans.jar phenote/trunk/src/java/phenote/config/OntologyConfig.java phenote/trunk/src/java/phenote/datamodel/Ontology.java phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java Modified: phenote/trunk/conf/phenote-config.rnc =================================================================== --- phenote/trunk/conf/phenote-config.rnc 2007-10-05 19:52:28 UTC (rev 964) +++ phenote/trunk/conf/phenote-config.rnc 2007-10-05 21:49:31 UTC (rev 965) @@ -122,6 +122,8 @@ ## this is to optimize slow completion w many ontologies ## with new threading optimization this is being phased out attribute min-completion-chars { xsd:int }, + # for ontol completion what to sort terms by, default is NAME + attribute sort-by { "NAME" | "ID" }, postcomp?, ontology* } Modified: phenote/trunk/conf/phenote-config.xsd =================================================================== --- phenote/trunk/conf/phenote-config.xsd 2007-10-05 19:52:28 UTC (rev 964) +++ phenote/trunk/conf/phenote-config.xsd 2007-10-05 21:49:31 UTC (rev 965) @@ -143,6 +143,14 @@ <xs:attribute name="groups" type="xs:IDREFS"/> <xs:attribute name="copy-field" use="required" type="xs:boolean"/> <xs:attribute name="min-completion-chars" use="required" type="xs:int"/> + <xs:attribute name="sort-by" use="required"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="NAME"/> + <xs:enumeration value="ID"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> </xs:complexType> </xs:element> <xs:element name="ontology"> Modified: phenote/trunk/conf/zfin-standalone.cfg =================================================================== --- phenote/trunk/conf/zfin-standalone.cfg 2007-10-05 19:52:28 UTC (rev 964) +++ phenote/trunk/conf/zfin-standalone.cfg 2007-10-05 21:49:31 UTC (rev 965) @@ -25,14 +25,14 @@ <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> <!-- ******************** FIELD DEFINITIONS *********************** --> - <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/> + <ns:field name="Pub" datatag="PUB" enable="true"/> - <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/> + <ns:field name="Genotype" datatag="GT" enable="true"/> <ns:field name="Image File" enable="true" desc="The image filename to attribute this phenotype character."/> - <ns:field name="Entity" syntax-abbrev="E" enable="true"> + <ns:field name="Entity" datatag="E" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo" /> <ns:ontology name="ZF" namespace="zebrafish_anatomy" @@ -41,17 +41,17 @@ file="ftp://ftp.geneontology.org/pub/go/ontology/gene_ontology_edit.obo"/> </ns:field> - <ns:field name="Stage" syntax-abbrev="T" enable="true"> + <ns:field name="Stage" datatag="T" sort-by="ID" enable="true"> <ns:ontology name="Stage" namespace="zebrafish_stages" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/gross_anatomy/animal_gross_anatomy/fish/zebrafish_anatomy.obo"/> </ns:field> - <ns:field name="Quality" syntax-abbrev="Q" enable="true"> + <ns:field name="Quality" datatag="Q" enable="true"> <ns:ontology name="PATO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/quality.obo"/> </ns:field> - <ns:field name="Add'l Entity" syntax-abbrev="E2" enable="true"> + <ns:field name="Add'l Entity" datatag="E2" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo"/> <ns:ontology name="ZF" namespace="zebrafish_anatomy" @@ -59,11 +59,11 @@ <ns:ontology name="GO" file="ftp://ftp.geneontology.org/pub/go/ontology/gene_ontology_edit.obo"/> </ns:field> - <ns:field name="Abnormal" syntax-abbrev="Tag" enable="true"> + <ns:field name="Abnormal" datatag="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="Description" datatag="Desc" enable="true"/> <!-- ******************** REVISION HISTORY *********************** --> <!-- 05.20.2007 - Added master-to-local config option to UPDATE on VERSION_CHANGE Modified: phenote/trunk/jars/phenoteconfigbeans.jar =================================================================== (Binary files differ) Modified: phenote/trunk/src/java/phenote/config/OntologyConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-10-05 19:52:28 UTC (rev 964) +++ phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-10-05 21:49:31 UTC (rev 965) @@ -10,12 +10,6 @@ /** May not even have ontology file (free text eg genotype) rename FieldConfig? */ public class OntologyConfig { - //public String name; - //public String namespace; // this should replace filterOut - //public String filterOut; // public? - //private String slim; - //private String reposSubdir; // pase! - //private boolean isPostCompRel = false; /** just the filename - no path/url */ public String ontologyFile; /** if url given for file then this string gets set (or old backward compatible repos @@ -34,14 +28,7 @@ OntologyConfig(phenote.config.xml.OntologyDocument.Ontology o,FieldConfig fc) { ontologyBean = o; fieldConfig = fc; - //name = o.getName()!=null ? o.getName() : fieldName; setFile(o.getFile()); - //if (o.getNamespace() != null) namespace = o.getNamespace(); -// if (o.getFilterOut() != null) filterOut = o.getFilterOut(); - //slim = o.getSlim()!=null ? o.getSlim() : null; - //if (o.getReposSubdir()!=null) reposSubdir = o.getReposSubdir(); - // if xgetIsPostCompRel != null - //isPostCompRel = o.getIsPostcompRel(); // hmm what will return when not set?? // for now ignoring if name set as there was a bug where name was getting set // to "Entity" in the -u .phenote/conf file - woops @@ -264,24 +251,23 @@ if (isPostCompRel()) // only set if true, if not there default false oldOC.setIsPostCompRel(isPostCompRel()); } + + public boolean sortById() { + if (fieldConfig.getFieldBean().getSortBy() == null) return false; + return fieldConfig.getFieldBean().getSortBy() == Field.SortBy.ID; + } } - //if (isPostCompRel) fc.setPostCompRelOntCfg(this); - //static OntologyConfig defaultPato = new OntologyConfig("Pato","attribute_and_value.obo"); - - //OntologyConfig() {} // not sure this is actually needed/used -// private OntologyConfig(String name,FieldConfig fc) { -// fieldConfig = fc; -// setName(name);//this.name = name; -// } -// OntologyConfig(String name, String file, String filterOut) { -// this(name,file); -// this.filterOut = filterOut; -// } -// OntologyConfig(String name, String file, String filterOut,String slim) { -// this(name,file,filterOut); -// this.slim = slim; -// } -// void writePostComp(Field f) {// annoying as shares a lot with ontology -// Postcomp pc = f.addNewPostcomp(); -// pc.setRelationshipOntology(getFile()); } + //public String name; + //public String namespace; // this should replace filterOut + //public String filterOut; // public? + //private String slim; + //private String reposSubdir; // pase! + //private boolean isPostCompRel = false; + //name = o.getName()!=null ? o.getName() : fieldName; + //if (o.getNamespace() != null) namespace = o.getNamespace(); +// if (o.getFilterOut() != null) filterOut = o.getFilterOut(); + //slim = o.getSlim()!=null ? o.getSlim() : null; + //if (o.getReposSubdir()!=null) reposSubdir = o.getReposSubdir(); + // if xgetIsPostCompRel != null + //isPostCompRel = o.getIsPostcompRel(); // hmm what will return when not set?? Modified: phenote/trunk/src/java/phenote/datamodel/Ontology.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/Ontology.java 2007-10-05 19:52:28 UTC (rev 964) +++ phenote/trunk/src/java/phenote/datamodel/Ontology.java 2007-10-05 21:49:31 UTC (rev 965) @@ -43,11 +43,16 @@ //private String filename; // may neec to revive for version/metadata? private String version; private OBOSession oboSession; + // presorting things is faster but problematic, as syns dont get sorted + // if we could limit output(??) then sorting on fly might be fast enough + // with limiting output may wanna do scoring but then lose alphabetical? + // maybe have different modes/preferences private Collection<OBOClass> sortedTerms; // was List private Collection<OBOClass> sortedObsoleteTerms; private List<OBOProperty> sortedRelations; private String slim; - private String filterOutString; + private boolean sortById = false; + private String filterOutString; // phase out /** well this stuff is specific to ontologies from files (eg obo), perhaps there needs to be some sort of wrapper or subclass? need to think about this... for now just shoving in here */ @@ -69,6 +74,7 @@ // get id filter, slim, & possible namespace from oc... name = oc.getName(); slim = oc.getSlim(); + sortById = oc.sortById(); // if namespace specified and is valid load that if (oc.hasNamespace()) { String namespace = oc.getNamespace(); @@ -293,6 +299,7 @@ //Query<OBOClass, OBOClass> nsQuery = Namespace[] spacesArray = spaces.toArray(new Namespace[0]); NamespaceQuery nsQuery = new NamespaceQuery(spacesArray); + if (sortById) nsQuery.setComparator(new IdComparator()); // create a new query engine on the session we just loaded QueryEngine engine = new QueryEngine(oboSession); @@ -302,6 +309,7 @@ // true -> cache result ??? do we need to cache - i dont think so // BUG - this includes obsoletes! nsQuery.setAllowObsoletes(false); + // NameSpaceQuery sorts be term name sortedTerms = engine.query(nsQuery, false); //sortedTerms = QueryUtil.getResults(engine.query(nsQuery, false)); //log().debug(spacesArray[0]+" Non-obsolete: got " + sortedTerms.size()+" namespace hits in " + (System.currentTimeMillis() - time)+ "ms # of namespaces: "+spaces.size()); @@ -352,5 +360,20 @@ } return filteredList; } + + + private class IdComparator implements Comparator<OBOClass> { + public int compare(OBOClass o1, OBOClass o2) { + return o1.getID().compareToIgnoreCase(o2.getID()); + } + } + } +// private class IdSortedNamespaceQuery extends NamespaceQuery { +// protected Comparator<OBOClass> comparator = new Comparator<OBOClass>() { +// public int compare(OBOClass o1, OBOClass o2) { +// return o1.getID().compareToIgnoreCase(o2.getID()); +// } +// }; +// } Modified: phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java 2007-10-05 19:52:28 UTC (rev 964) +++ phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java 2007-10-05 21:49:31 UTC (rev 965) @@ -201,6 +201,8 @@ return searchTermList.getList(); int i =0; + // ontologyTermList (from Ontology) is presorted already by term name + // if sorted by term id (eg zf stage) SearchTermList i think needs to know that? for (OBOClass oboClass : ontologyTermList) { //for (int i=0; i<ontologyTermList.size(); i++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-05 19:52:25
|
Revision: 964 http://obo.svn.sourceforge.net/obo/?rev=964&view=rev Author: balhoff Date: 2007-10-05 12:52:28 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Implemented tracker request 1804172 - added menu item to copy selected specimen list items as an unresolved phylogeny for editing in external program. Modified Paths: -------------- phenote/trunk/conf/phenomap.cfg phenote/trunk/src/java/phenote/charactertemplate/CharacterTemplateController.java phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/main/Phenote.java Added Paths: ----------- phenote/trunk/src/java/phenote/charactertemplate/SpecimenListController.java phenote/trunk/src/java/phenote/util/Collections.java Removed Paths: ------------- phenote/trunk/src/java/phenote/charactertemplate/OntologyTermPainter.java Modified: phenote/trunk/conf/phenomap.cfg =================================================================== --- phenote/trunk/conf/phenomap.cfg 2007-10-05 16:49:46 UTC (rev 963) +++ phenote/trunk/conf/phenomap.cfg 2007-10-05 19:52:28 UTC (rev 964) @@ -15,7 +15,7 @@ <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="true"/> - <ns:group name="specimen-list" title="Specimen List" container="window" interface="character-template"> + <ns:group name="specimen-list" title="Specimen List" container="window" interface="character-template" group_adapter="phenote.charactertemplate.SpecimenListController"> <ns:templatechooser title="Phylogeny Chooser" adapter="phenote.charactertemplate.TreeChooser" field="Taxon"/> </ns:group> <ns:group name="default" title="Default Group" container="window" interface="default"/> Modified: phenote/trunk/src/java/phenote/charactertemplate/CharacterTemplateController.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/CharacterTemplateController.java 2007-10-05 16:49:46 UTC (rev 963) +++ phenote/trunk/src/java/phenote/charactertemplate/CharacterTemplateController.java 2007-10-05 19:52:28 UTC (rev 964) @@ -117,19 +117,19 @@ } public void deleteSelectedCharacters() { - this.editManager.deleteChars(this.selectionModel.getSelected()); + this.editManager.deleteChars(this.getSelectionModel().getSelected()); } public void duplicateSelectedCharacters() { - this.editManager.copyChars(this.selectionModel.getSelected()); + this.editManager.copyChars(this.getSelectionModel().getSelected()); } public void markSelectedCharacters() { - this.setCharactersAreMarked(this.selectionModel.getSelected(), true); + this.setCharactersAreMarked(this.getSelectionModel().getSelected(), true); } public void unmarkSelectedCharacters() { - this.setCharactersAreMarked(this.selectionModel.getSelected(), false); + this.setCharactersAreMarked(this.getSelectionModel().getSelected(), false); } public void undo() { @@ -183,6 +183,20 @@ Phenote.getPhenote().getFrame().toFront(); } + public EventSelectionModel<CharacterI> getSelectionModel() { + return this.selectionModel; + } + + public JFrame getWindow() { + if (this.window == null) { + this.window = new JFrame(this.getGroupTitle()); + final JComponent panel = this.createPanel(); + this.window.getContentPane().add(panel); + this.window.setSize(panel.getSize()); + } + return this.window; + } + public void templateChoiceChanged(TemplateChooser source) { this.setMarkedCharacters(source.getChosenTemplates(Collections.unmodifiableList(this.sortedCharacters))); this.showCharacterTemplate(); @@ -221,11 +235,11 @@ private void setSelectionWithCharacters(List<CharacterI> characters) { this.filterField.setText(""); - this.selectionModel.clearSelection(); + this.getSelectionModel().clearSelection(); for (CharacterI character : characters) { final int index = this.filteredCharacters.indexOf(character); if (index > -1) { - this.selectionModel.addSelectionInterval(index, index); + this.getSelectionModel().addSelectionInterval(index, index); Rectangle rect = this.characterTemplateTable.getCellRect(index, 0, false); this.characterTemplateTable.scrollRectToVisible(rect); } @@ -290,16 +304,8 @@ } } - private JFrame getWindow() { - if (this.window == null) { - this.window = new JFrame(this.getGroupTitle()); - final JComponent panel = this.createPanel(); - this.window.getContentPane().add(panel); - this.window.setSize(panel.getSize()); - } - return this.window; - } + private JComponent createPanel() { SwingEngine swix = new SwingEngine(this); try { Deleted: phenote/trunk/src/java/phenote/charactertemplate/OntologyTermPainter.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/OntologyTermPainter.java 2007-10-05 16:49:46 UTC (rev 963) +++ phenote/trunk/src/java/phenote/charactertemplate/OntologyTermPainter.java 2007-10-05 19:52:28 UTC (rev 964) @@ -1,34 +0,0 @@ -package phenote.charactertemplate; - -import jebl.evolution.graphs.Node; -import jebl.evolution.trees.RootedTree; -import jebl.gui.trees.treeviewer.painters.BasicLabelPainter; - -import org.geneontology.oboedit.datamodel.OBOClass; - -import phenote.datamodel.CharFieldManager; -import phenote.datamodel.TermNotFoundException; - -public class OntologyTermPainter extends BasicLabelPainter { - - public OntologyTermPainter(String title, RootedTree tree, PainterIntent intent) { - super(title, tree, intent); - } - - public OntologyTermPainter(String title, RootedTree tree, PainterIntent intent, int defaultSize) { - super(title, tree, intent, defaultSize); - } - - @Override - protected String getLabel(Node node) { - final String defaultLabel = super.getLabel(node); - if (defaultLabel == null) return defaultLabel; - try { - OBOClass term = CharFieldManager.inst().getOboClass(defaultLabel.trim()); - return " " + term.getName() + " [" + defaultLabel.trim() + "] "; - } catch (TermNotFoundException e) { - return defaultLabel; - } - } - -} Added: phenote/trunk/src/java/phenote/charactertemplate/SpecimenListController.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/SpecimenListController.java (rev 0) +++ phenote/trunk/src/java/phenote/charactertemplate/SpecimenListController.java 2007-10-05 19:52:28 UTC (rev 964) @@ -0,0 +1,70 @@ +package phenote.charactertemplate; + +import java.awt.Toolkit; +import java.awt.datatransfer.StringSelection; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.HashSet; +import java.util.Set; + +import javax.swing.JMenu; +import javax.swing.JMenuItem; + +import org.apache.log4j.Logger; + +import phenote.datamodel.CharFieldException; +import phenote.datamodel.CharacterI; +import phenote.util.Collections; + +public class SpecimenListController extends CharacterTemplateController { + + private static final String COPY_NEWICK_ACTION = "copyAsNewick"; + + public SpecimenListController(String groupName) { + super(groupName); + this.addMenuItems(); + } + + public void copyAsNewick() { + final String separator = ","; + final String taxonList = Collections.join(this.getSelectedTaxonNames(), separator); + final String newick = String.format("(%s)", taxonList); + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(newick), null); + } + + private Set<String> getSelectedTaxonNames() { + final Set<String> taxa = new HashSet<String>(); + for (CharacterI character : this.getSelectionModel().getSelected()) { + try { + taxa.add(String.format("'%s'", character.getValueString("Taxon"))); + } catch (CharFieldException e) { + log().error("Couldn't get taxon name", e); + e.printStackTrace(); + } + } + return taxa; + } + + private void addMenuItems() { + // this is kind of temporary until menus are refactored + final JMenu editMenu = new JMenu("Edit"); + this.getWindow().getJMenuBar().add(editMenu); + final JMenuItem menuItem = new JMenuItem("Copy as Newick tree"); + editMenu.add(menuItem); + menuItem.setActionCommand(COPY_NEWICK_ACTION); + menuItem.addActionListener(new SpecimenListActionListener()); + } + + private Logger log() { + return Logger.getLogger(SpecimenListController.class); + } + + private class SpecimenListActionListener implements ActionListener { + public void actionPerformed(ActionEvent event) { + if (event.getActionCommand().equals(COPY_NEWICK_ACTION)) { + SpecimenListController.this.copyAsNewick(); + } + } + } + +} Modified: phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java 2007-10-05 16:49:46 UTC (rev 963) +++ phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java 2007-10-05 19:52:28 UTC (rev 964) @@ -26,16 +26,13 @@ import jebl.evolution.trees.Tree; import jebl.evolution.trees.Utils; import jebl.gui.trees.treeviewer.TreeViewer; -import jebl.gui.trees.treeviewer.painters.BasicLabelPainter; import org.apache.log4j.Logger; -import org.geneontology.oboedit.datamodel.OBOClass; import org.swixml.SwingEngine; import phenote.dataadapter.CharListChangeEvent; import phenote.dataadapter.CharListChangeListener; import phenote.dataadapter.CharacterListManager; -import phenote.datamodel.CharFieldValue; import phenote.datamodel.CharacterI; import phenote.util.FileUtil; @@ -69,16 +66,11 @@ this.log().error("CharField not set for TreeChooser - no matching templates."); return Collections.emptyList(); } - final Collection<String> chosenTermIDs = this.getChosenTermIDs(); + final Collection<String> selectedTaxa = this.getSelectedTaxonNames(); final Collection<CharacterI> chosenTemplates = new ArrayList<CharacterI>(); for (CharacterI character : candidates) { - final CharFieldValue fieldValue = character.getValue(this.getCharField()); - if (fieldValue.isTerm()) { - OBOClass term = fieldValue.getTerm(); - if ((term != null) && (chosenTermIDs.contains(term.getID()))) { - chosenTemplates.add(character); - } - } else if (chosenTermIDs.contains(fieldValue.getName())){ + final String valueString = character.getValueString(this.getCharField()); + if (selectedTaxa.contains(valueString)) { chosenTemplates.add(character); } } @@ -89,15 +81,11 @@ try { Tree tree = this.importTree(treeText); this.getTreeViewer().setTree(tree); - // must reset label painters every time tree is changed, because TreeViewer creates new ones - final OntologyTermPainter ontologyTermTipPainter = new OntologyTermPainter("Tip Labels", this.getTreeViewer().getTreePane().getTree(), BasicLabelPainter.PainterIntent.TIP); - final OntologyTermPainter ontologyTermNodePainter = new OntologyTermPainter("Node Labels", this.getTreeViewer().getTreePane().getTree(), BasicLabelPainter.PainterIntent.NODE); - this.getTreeViewer().getTreePane().setTaxonLabelPainter(ontologyTermTipPainter); - this.getTreeViewer().getTreePane().setNodeLabelPainter(ontologyTermNodePainter); if (this.newickFieldLabel != null) this.newickFieldLabel.setForeground(Color.BLACK); } catch (ImportException e) { if (this.newickFieldLabel != null) this.newickFieldLabel.setForeground(Color.RED); + log().error("Invalid Newick tree", e); } } @@ -106,16 +94,16 @@ this.tryLoadDefaultDataFile(); } - private Set<String> getChosenTermIDs() { - final Set<String> termIDs = new HashSet<String>(); + private Set<String> getSelectedTaxonNames() { + final Set<String> taxa = new HashSet<String>(); final Set<Node> nodes = this.getTreeViewer().getTreePane().getSelectedNodes(); final Tree tree = this.getTreeViewer().getTreePane().getTree(); for (Node node : nodes) { if (tree.isExternal(node)) { - termIDs.add(tree.getTaxon(node).getName()); + taxa.add(tree.getTaxon(node).getName()); } } - return termIDs; + return taxa; } private TreeViewer getTreeViewer() { @@ -181,9 +169,9 @@ String newick = (new BufferedReader(new FileReader(treeFile))).readLine(); this.setNewickTree(newick); } catch (FileNotFoundException e) { - log().error("Could open tree file", e); + log().error("Could not open tree file", e); } catch (IOException e) { - log().error("Could open tree file", e); + log().error("Could not open tree file", e); } } } Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-10-05 16:49:46 UTC (rev 963) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-10-05 19:52:28 UTC (rev 964) @@ -1206,6 +1206,7 @@ Group grp = getGroup(groupStr); String classString = grp.getGroupAdapter(); if (classString == null) return null; + if (grp.getInterface().equals(Group.Interface.CHARACTER_TEMPLATE)) return null; try { // should we cache in hash and insure 1 instance??? Class<?> c = Class.forName(classString); Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-05 16:49:46 UTC (rev 963) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-05 19:52:28 UTC (rev 964) @@ -8,6 +8,8 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.FileNotFoundException; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; @@ -30,8 +32,6 @@ import org.apache.log4j.Logger; import org.apache.log4j.xml.DOMConfigurator; -import com.sun.java.help.impl.SwingWorker; - import phenote.charactertemplate.CharacterTemplateController; import phenote.config.Config; import phenote.config.ConfigException; @@ -238,10 +238,31 @@ private void createGroupWindows() { for (Group group : getGroupsByContainer(Group.Container.WINDOW)) { if (group.getInterface().equals(Group.Interface.CHARACTER_TEMPLATE)) { - new CharacterTemplateController(group.getName()); + createTemplateController(group.getGroupAdapter(), group.getName()); } } } + + private CharacterTemplateController createTemplateController(String className, String groupName) { + final String errorMessage = "Failed creating CharacterTemplate"; + try { + Class<?> adapterClass = Class.forName(className); + Constructor<?> constructor = adapterClass.getConstructor(String.class); + Object templateController = constructor.newInstance(groupName); + return (CharacterTemplateController)templateController; + } catch (ClassNotFoundException e) { + LOG.error(errorMessage, e); + } catch (InstantiationException e) { + LOG.error(errorMessage, e); + } catch (IllegalAccessException e) { + LOG.error(errorMessage, e); + } catch (NoSuchMethodException e) { + LOG.error(errorMessage, e); + } catch (InvocationTargetException e) { + LOG.error(errorMessage, e); + } + return null; + } /** do group guis specified for a tab(not window) - for tab in main window */ private void createGroupTabs() { Added: phenote/trunk/src/java/phenote/util/Collections.java =================================================================== --- phenote/trunk/src/java/phenote/util/Collections.java (rev 0) +++ phenote/trunk/src/java/phenote/util/Collections.java 2007-10-05 19:52:28 UTC (rev 964) @@ -0,0 +1,20 @@ +package phenote.util; + +import java.util.Collection; +import java.util.Iterator; + +public class Collections { + + private Collections(){} + + public static String join(Collection<?> collection, String separator) { + final Iterator<?> iterator = collection.iterator(); + final StringBuffer buffer = new StringBuffer(); + while (iterator.hasNext()) { + buffer.append(iterator.next()); + if (iterator.hasNext()) buffer.append(separator); + } + return buffer.toString(); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-05 16:49:43
|
Revision: 963 http://obo.svn.sourceforge.net/obo/?rev=963&view=rev Author: mgibson Date: 2007-10-05 09:49:46 -0700 (Fri, 05 Oct 2007) Log Message: ----------- OntologyManager -> CharFieldManager much better name - doesnt just do ontologies manages all the char fields Modified Paths: -------------- phenote/trunk/src/java/phenote/charactertemplate/OntologyTermPainter.java phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/dataadapter/AbstractGroupAdapter.java phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java phenote/trunk/src/java/phenote/dataadapter/delimited/DelimFieldParser.java phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java phenote/trunk/src/java/phenote/dataadapter/fly/FlyCharacter.java phenote/trunk/src/java/phenote/dataadapter/phenosyntax/PhenoSyntaxChar.java phenote/trunk/src/java/phenote/dataadapter/phenoxml/PhenoXmlAdapter.java phenote/trunk/src/java/phenote/datamodel/AbstractCharacter.java phenote/trunk/src/java/phenote/datamodel/BasicAnnotationMappingDriver.java phenote/trunk/src/java/phenote/datamodel/CharField.java phenote/trunk/src/java/phenote/datamodel/CharFieldManager.java phenote/trunk/src/java/phenote/datamodel/Character.java phenote/trunk/src/java/phenote/edit/AddTransaction.java phenote/trunk/src/java/phenote/edit/EditManager.java phenote/trunk/src/java/phenote/gui/CharacterTableFormat.java phenote/trunk/src/java/phenote/gui/SelectionHistory.java phenote/trunk/src/java/phenote/gui/ShrimpDag.java phenote/trunk/src/java/phenote/gui/TermInfo.java phenote/trunk/src/java/phenote/gui/TermRequestGUI.java phenote/trunk/src/java/phenote/gui/field/FieldPanel.java phenote/trunk/src/java/phenote/gui/field/TermCompList.java phenote/trunk/src/java/phenote/gui/selection/SelectionManager.java phenote/trunk/src/java/phenote/jobs/OntologyUpdateJob.java phenote/trunk/src/java/phenote/servlet/AdminController.java phenote/trunk/src/java/phenote/servlet/PhenoteController.java Modified: phenote/trunk/src/java/phenote/charactertemplate/OntologyTermPainter.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/OntologyTermPainter.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/charactertemplate/OntologyTermPainter.java 2007-10-05 16:49:46 UTC (rev 963) @@ -6,7 +6,7 @@ import org.geneontology.oboedit.datamodel.OBOClass; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.TermNotFoundException; public class OntologyTermPainter extends BasicLabelPainter { @@ -24,7 +24,7 @@ final String defaultLabel = super.getLabel(node); if (defaultLabel == null) return defaultLabel; try { - OBOClass term = OntologyManager.inst().getOboClass(defaultLabel.trim()); + OBOClass term = CharFieldManager.inst().getOboClass(defaultLabel.trim()); return " " + term.getName() + " [" + defaultLabel.trim() + "] "; } catch (TermNotFoundException e) { return defaultLabel; Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-10-05 16:49:46 UTC (rev 963) @@ -37,7 +37,7 @@ import phenote.datamodel.AnnotationMappingDriver; import phenote.datamodel.BasicAnnotationMappingDriver; import phenote.datamodel.CharField; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.gui.SearchFilterType; import phenote.gui.SearchParams; import phenote.main.PhenoteVersion; @@ -1180,19 +1180,19 @@ return aGroup; } } - if (groupName.equals(OntologyManager.DEFAULT_GROUP)) // OntMan? + if (groupName.equals(CharFieldManager.DEFAULT_GROUP)) // OntMan? return createDefaultGroup(); // ?? //return null; // ex? return default? return getDefaultGroup(); // if all fails just return default?? or null?? } public Group getDefaultGroup() { - return getGroup(OntologyManager.DEFAULT_GROUP); + return getGroup(CharFieldManager.DEFAULT_GROUP); } private Group createDefaultGroup() { Group g = phenoConfigBean.addNewGroup(); - g.setName(OntologyManager.DEFAULT_GROUP); + g.setName(CharFieldManager.DEFAULT_GROUP); return g; } Modified: phenote/trunk/src/java/phenote/dataadapter/AbstractGroupAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/AbstractGroupAdapter.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/dataadapter/AbstractGroupAdapter.java 2007-10-05 16:49:46 UTC (rev 963) @@ -15,7 +15,7 @@ import phenote.datamodel.CharacterI; import phenote.datamodel.CharacterListI; import phenote.datamodel.Ontology; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.edit.CharChangeListener; import phenote.edit.CharChangeEvent; @@ -108,7 +108,7 @@ public void setDestinationField(String fieldName) { try { - destinationCharField = OntologyManager.inst().getCharFieldForName(fieldName); + destinationCharField = CharFieldManager.inst().getCharFieldForName(fieldName); } catch (CharFieldException e) { // popup? throw ex? log().error("Cant find destination field "+fieldName+" for group "+group Modified: phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java 2007-10-05 16:49:46 UTC (rev 963) @@ -13,7 +13,7 @@ import phenote.datamodel.CharacterI; import phenote.datamodel.CharacterList; import phenote.datamodel.CharacterListI; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; /** Contains current CharacterList. sends out CharacterListChanged events when character list has changed */ @@ -31,7 +31,7 @@ // default()? public static CharacterListManager main() { - return getCharListMan(OntologyManager.DEFAULT_GROUP); + return getCharListMan(CharFieldManager.DEFAULT_GROUP); } /** Returns "default" CharacterListManager */ @@ -43,7 +43,7 @@ } public static CharacterListManager getCharListMan(String group) { - if (group == null) group = OntologyManager.DEFAULT_GROUP; // ?? + if (group == null) group = CharFieldManager.DEFAULT_GROUP; // ?? if (groupToListMan.get(group) == null) { CharacterListManager e = new CharacterListManager(); // (group) ? groupToListMan.put(group,e); Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-10-05 16:49:46 UTC (rev 963) @@ -40,7 +40,7 @@ import phenote.datamodel.CharField; import phenote.datamodel.Ontology; import phenote.datamodel.OntologyException; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.error.ErrorEvent; import phenote.error.ErrorManager; import phenote.gui.SynchOntologyDialog; @@ -55,7 +55,7 @@ private static OntologyDataAdapter singleton; //private Config config; cant cache may change - private OntologyManager ontologyManager = OntologyManager.inst(); + private CharFieldManager ontologyManager = CharFieldManager.inst(); private boolean initializingOntologies = false; private Map<String,Ontology> fileToOntologyCache = new HashMap<String,Ontology>(); private OBOMetaData adapterMetaData; Modified: phenote/trunk/src/java/phenote/dataadapter/delimited/DelimFieldParser.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimFieldParser.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/dataadapter/delimited/DelimFieldParser.java 2007-10-05 16:49:46 UTC (rev 963) @@ -6,7 +6,7 @@ import phenote.datamodel.CharField; import phenote.datamodel.CharFieldValue; import phenote.datamodel.CharFieldException; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.TermNotFoundException; /** A class that parses a single field out of a tab delimited line. @@ -32,13 +32,13 @@ try { // should i strip "ID" now, or see if there is afield with ID at end? // which of course would be awkward but not inconceivable - cf = OntologyManager.inst().getCharFieldForName(head); + cf = CharFieldManager.inst().getCharFieldForName(head); } catch (CharFieldException e) { // column not a char field // so term id headers have ID at end so try stripping off if (head.endsWith("ID")) { head = head.substring(0,head.length()-3); - try { cf = OntologyManager.inst().getCharFieldForName(head); } + try { cf = CharFieldManager.inst().getCharFieldForName(head); } catch (CharFieldException x) { cf = null; } // already is really } } Modified: phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java 2007-10-05 16:49:46 UTC (rev 963) @@ -13,7 +13,7 @@ import phenote.datamodel.CharFieldValue; import phenote.datamodel.CharacterI; import phenote.datamodel.CharacterIFactory; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.CharFieldException; /** I stole this from phenosyntaxchar, but modifying for tab delimited. will @@ -70,7 +70,7 @@ //try { // ontology manager should have char fields in order of config which should be // syntax order - hope this isnt too presumptious - for (CharField cf : OntologyManager.inst().getCharFieldList()) { + for (CharField cf : CharFieldManager.inst().getCharFieldList()) { //if its a free text field - only one col necessary. //if its an ontology field - need two cols (one for ID, the other for text) // the label from config & char field should be the same, so dont need to get @@ -104,7 +104,7 @@ //try { // ontology manager should have char fields in order of config which should be // syntax order - hope this isnt too presumptious - for (CharField cf : OntologyManager.inst().getCharFieldList()) { + for (CharField cf : CharFieldManager.inst().getCharFieldList()) { if (character.hasValue(cf)) { sb.append(makeValue(character.getValue(cf))); } @@ -208,7 +208,7 @@ // log().error("No value given for column"+fieldNum); return; //don't need to populate a CharField if no value } - OntologyManager om = OntologyManager.inst(); + CharFieldManager om = CharFieldManager.inst(); //try { // there can be more than one field for a fieldNum??? - MG //List<CharField> fields = Config.inst().getCharFieldsForDelimited(fieldNum);//Ex if (!Config.inst().hasEnbldCharField(fieldNum)) { Modified: phenote/trunk/src/java/phenote/dataadapter/fly/FlyCharacter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/fly/FlyCharacter.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/dataadapter/fly/FlyCharacter.java 2007-10-05 16:49:46 UTC (rev 963) @@ -5,7 +5,7 @@ import phenote.datamodel.CharacterI; import phenote.datamodel.CharacterIFactory; import phenote.datamodel.Character; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.TermNotFoundException; public class FlyCharacter implements FlyCharacterI { @@ -78,7 +78,7 @@ if (id == null || id.equals("")) throw new TermException("Failed to get term id "+id); try { - OBOClass oc = OntologyManager.inst().getOboClass(id); // ex + OBOClass oc = CharFieldManager.inst().getOboClass(id); // ex if (!oc.getName().equals(name)) throw new TermException("Data name "+name+" and ontology name "+oc.getName()+ "are inconsistent for id "+id); Modified: phenote/trunk/src/java/phenote/dataadapter/phenosyntax/PhenoSyntaxChar.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/phenosyntax/PhenoSyntaxChar.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/dataadapter/phenosyntax/PhenoSyntaxChar.java 2007-10-05 16:49:46 UTC (rev 963) @@ -12,7 +12,7 @@ import phenote.datamodel.CharacterIFactory; import phenote.datamodel.CharField; import phenote.datamodel.CharFieldValue; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.CharFieldException; import phenote.config.Config; import phenote.config.ConfigException; @@ -57,7 +57,7 @@ // ontology manager should have char fields in order of config which should be // syntax order - hope this isnt too presumptious - for (CharField cf : OntologyManager.inst().getCharFieldList()) { + for (CharField cf : CharFieldManager.inst().getCharFieldList()) { if (character.hasValue(cf)) { sb.append(Config.inst().getSyntaxAbbrevForCharField(cf)).append("=");//ex if (isFreeText(cf)) sb.append('"'); // free text gets quoted @@ -159,7 +159,7 @@ return; } - OntologyManager om = OntologyManager.inst(); + CharFieldManager om = CharFieldManager.inst(); try { // so this is funny but there can be more than one char field for an abbrev - for Modified: phenote/trunk/src/java/phenote/dataadapter/phenoxml/PhenoXmlAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/phenoxml/PhenoXmlAdapter.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/dataadapter/phenoxml/PhenoXmlAdapter.java 2007-10-05 16:49:46 UTC (rev 963) @@ -34,7 +34,7 @@ import phenote.datamodel.CharacterList; import phenote.datamodel.CharFieldEnum; // ? import phenote.datamodel.CharFieldException; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.TermNotFoundException; import phenote.dataadapter.AbstractFileAdapter; import phenote.dataadapter.CharacterListManager; @@ -103,7 +103,7 @@ } private CharacterI newCharacterFromPhenotypeManifestation(PhenotypeManifestation pm) { - OntologyManager ontologyManager = OntologyManager.inst(); + CharFieldManager ontologyManager = CharFieldManager.inst(); CharacterI character = CharacterIFactory.makeChar(); ManifestIn mi = pm.getManifestIn(); if (mi != null) { Modified: phenote/trunk/src/java/phenote/datamodel/AbstractCharacter.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/AbstractCharacter.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/datamodel/AbstractCharacter.java 2007-10-05 16:49:46 UTC (rev 963) @@ -28,12 +28,12 @@ public List<CharField> getAllCharFields() { - return OntologyManager.inst().getCharFieldList(); + return CharFieldManager.inst().getCharFieldList(); } public CharField getCharFieldForName(String fieldName) throws CharFieldException { - return OntologyManager.inst().getCharFieldForName(fieldName); + return CharFieldManager.inst().getCharFieldForName(fieldName); } protected OBOClass getTerm(CharField cf) { Modified: phenote/trunk/src/java/phenote/datamodel/BasicAnnotationMappingDriver.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/BasicAnnotationMappingDriver.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/datamodel/BasicAnnotationMappingDriver.java 2007-10-05 16:49:46 UTC (rev 963) @@ -54,7 +54,7 @@ /** retrieves prop from obo session by id, if not there then creates one */ protected OBOProperty getRelation(String id, String name) { - OBOProperty p = OntologyManager.inst().getRelation(id); + OBOProperty p = CharFieldManager.inst().getRelation(id); if (p != null) return p; return new OBOPropertyImpl(id,name); } Modified: phenote/trunk/src/java/phenote/datamodel/CharField.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharField.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/datamodel/CharField.java 2007-10-05 16:49:46 UTC (rev 963) @@ -212,11 +212,11 @@ OBOClass oboClass=null; // POST COMP - move this to char field value? - if (OntologyManager.inst().isPostComp(valueString)) { + if (CharFieldManager.inst().isPostComp(valueString)) { try { // just gets first ontology for now - fix this! OBOSession os = getOntology().getOboSession(); - oboClass = OntologyManager.inst().getPostComp(os,valueString); + oboClass = CharFieldManager.inst().getPostComp(os,valueString); } catch (TermNotFoundException e) {} } Modified: phenote/trunk/src/java/phenote/datamodel/CharFieldManager.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharFieldManager.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/datamodel/CharFieldManager.java 2007-10-05 16:49:46 UTC (rev 963) @@ -24,10 +24,10 @@ actually manages CharFields(which may have ontologies) - rename CharFieldManager? yes! gets initialized by OntologyDataAdapter which loops through FieldConfigs and passes CharFields to OntMan */ -public class OntologyManager { +public class CharFieldManager { - private static OntologyManager singleton; + private static CharFieldManager singleton; /** CharFields generically hold zero or more ontologies - are charFields that dont have ontologies in this list?? yes */ private List<CharField> charFieldList = new ArrayList<CharField>(); @@ -38,7 +38,7 @@ /** Singleton */ - private OntologyManager() { + private CharFieldManager() { // always have user & date field by default // should be at end in case displayed?? // CharField dateCreated = @@ -46,9 +46,9 @@ // addField(dateCreated); } - public static OntologyManager inst() { + public static CharFieldManager inst() { if (singleton == null) - singleton = new OntologyManager(); + singleton = new CharFieldManager(); return singleton; } Modified: phenote/trunk/src/java/phenote/datamodel/Character.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/Character.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/datamodel/Character.java 2007-10-05 16:49:46 UTC (rev 963) @@ -81,12 +81,12 @@ } public CharField getCharFieldForName(String fieldName) throws CharFieldException { - return OntologyManager.inst().getCharFieldForName(fieldName); + return CharFieldManager.inst().getCharFieldForName(fieldName); } /** return all char fields configured, both currently used or null in char */ public List<CharField> getAllCharFields() { - return OntologyManager.inst().getCharFieldList(); + return CharFieldManager.inst().getCharFieldList(); } Modified: phenote/trunk/src/java/phenote/edit/AddTransaction.java =================================================================== --- phenote/trunk/src/java/phenote/edit/AddTransaction.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/edit/AddTransaction.java 2007-10-05 16:49:46 UTC (rev 963) @@ -12,7 +12,7 @@ import phenote.datamodel.CharFieldValue; import phenote.datamodel.CharacterI; import phenote.datamodel.CharacterListI; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; /** For adding a character (not a char field/subpart - thats an update) */ @@ -38,7 +38,7 @@ public void editModel() { getCharList().add(addChar); // automatically put in date_created??? //try { - CharField dateField = OntologyManager.inst().getDateCreatedField(); + CharField dateField = CharFieldManager.inst().getDateCreatedField(); CharFieldValue v = new CharFieldValue(getDate(),addChar,dateField); addChar.setValue(dateField,v); //} catch (CharFieldException e) { System.out.println("no date_created field"); } //? Modified: phenote/trunk/src/java/phenote/edit/EditManager.java =================================================================== --- phenote/trunk/src/java/phenote/edit/EditManager.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/edit/EditManager.java 2007-10-05 16:49:46 UTC (rev 963) @@ -11,7 +11,7 @@ import phenote.datamodel.Character; import phenote.datamodel.CharacterI; import phenote.datamodel.CharacterIFactory; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; /** The way editing works is gui makes update transaction (see CharFieldGui and AutoComboBox) and calls @@ -48,7 +48,7 @@ // gets the "default" (group) edit manager public static EditManager inst() { - return getEditManager(OntologyManager.DEFAULT_GROUP); + return getEditManager(CharFieldManager.DEFAULT_GROUP); // if (singleton == null) // singleton = new EditManager(); // return singleton; @@ -56,7 +56,7 @@ // ?? public static EditManager getEditManager(String group) { - if (group == null) group = OntologyManager.DEFAULT_GROUP; + if (group == null) group = CharFieldManager.DEFAULT_GROUP; if (groupToEditMan.get(group) == null) { CharacterListManager c = CharacterListManager.getCharListMan(group); EditManager e = new EditManager(c); // group? Modified: phenote/trunk/src/java/phenote/gui/CharacterTableFormat.java =================================================================== --- phenote/trunk/src/java/phenote/gui/CharacterTableFormat.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/gui/CharacterTableFormat.java 2007-10-05 16:49:46 UTC (rev 963) @@ -8,7 +8,7 @@ import phenote.datamodel.CharField; import phenote.datamodel.CharacterI; import phenote.datamodel.OntologyException; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import ca.odell.glazedlists.GlazedLists; import ca.odell.glazedlists.gui.AdvancedTableFormat; @@ -30,7 +30,7 @@ public Object getColumnValue(CharacterI character, int column) { try { - CharField cf = OntologyManager.inst().getCharField(column, this.representedGroup); + CharField cf = CharFieldManager.inst().getCharField(column, this.representedGroup); return character.getValueString(cf); } catch (OntologyException e) { Modified: phenote/trunk/src/java/phenote/gui/SelectionHistory.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SelectionHistory.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/gui/SelectionHistory.java 2007-10-05 16:49:46 UTC (rev 963) @@ -32,7 +32,7 @@ import phenote.datamodel.CharacterI; import phenote.datamodel.CharFieldEnum; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.TermNotFoundException; import phenote.edit.EditManager; import phenote.edit.CharChangeEvent; @@ -220,7 +220,7 @@ // System.out.println("link to *"+id+"* selected"); if (id == null) return; try { - OBOClass term = OntologyManager.inst().getOboClass(id); // ex + OBOClass term = CharFieldManager.inst().getOboClass(id); // ex currentOboClass = term; // send out term selection (non mouse over) for DAG view Object src = SelectionHistory.this; Modified: phenote/trunk/src/java/phenote/gui/ShrimpDag.java =================================================================== --- phenote/trunk/src/java/phenote/gui/ShrimpDag.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/gui/ShrimpDag.java 2007-10-05 16:49:46 UTC (rev 963) @@ -5,7 +5,7 @@ import ca.uvic.csr.shrimp.gui.QueryView.QueryView; import org.geneontology.oboedit.datamodel.OBOSession; import phenote.datamodel.Ontology; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.gui.selection.SelectionManager; import phenote.gui.selection.TermSelectionEvent; import phenote.gui.selection.TermSelectionListener; @@ -37,7 +37,7 @@ */ public void initOntologies() { // do this in a separate thread! no need to hold up phenote with this - for (Ontology o : OntologyManager.inst().getAllOntologies()) { + for (Ontology o : CharFieldManager.inst().getAllOntologies()) { // oboViewer.loadOboSession(o.getOboSession()); } } @@ -70,7 +70,7 @@ // just hard wire to go for now //Ontology o = OntologyManager.inst().getOntologyForName("ZF"); // fly causes an endless loop - oh my - Ontology o = OntologyManager.inst().getOntologyForName("Fly"); + Ontology o = CharFieldManager.inst().getOntologyForName("Fly"); //Ontology o = OntologyManager.inst().getOntologyForName("Human Anatomy"); if (o == null) { System.out.println("no ontol for dag"); Modified: phenote/trunk/src/java/phenote/gui/TermInfo.java =================================================================== --- phenote/trunk/src/java/phenote/gui/TermInfo.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/gui/TermInfo.java 2007-10-05 16:49:46 UTC (rev 963) @@ -24,7 +24,7 @@ import org.geneontology.oboedit.datamodel.OBOClass; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.TermNotFoundException; import phenote.error.ErrorEvent; import phenote.error.ErrorListener; @@ -190,7 +190,7 @@ naviIndex--; id = getTermFromNaviHistory(naviIndex); try { - OBOClass term = OntologyManager.inst().getOboClass(id); // ex + OBOClass term = CharFieldManager.inst().getOboClass(id); // ex setTextFromOboClass(term); // send out term selection (non mouse over) for DAG view TermInfo.this.selectionManager.selectTerm(TermInfo.this, term, true); @@ -206,7 +206,7 @@ naviIndex++; String id = getTermFromNaviHistory(naviIndex); try { - OBOClass term = OntologyManager.inst().getOboClass(id); // ex + OBOClass term = CharFieldManager.inst().getOboClass(id); // ex setTextFromOboClass(term); // send out term selection (non mouse over) for DAG view TermInfo.this.selectionManager.selectTerm(TermInfo.this, term, true); @@ -327,7 +327,7 @@ String id = HtmlUtil.getIdFromHyperlink(e); if (id == null) return; try { - OBOClass term = OntologyManager.inst().getOboClass(id); // ex + OBOClass term = CharFieldManager.inst().getOboClass(id); // ex setTextFromOboClass(term); addTermToNaviHistory(id); // send out term selection (non mouse over) for DAG view Modified: phenote/trunk/src/java/phenote/gui/TermRequestGUI.java =================================================================== --- phenote/trunk/src/java/phenote/gui/TermRequestGUI.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/gui/TermRequestGUI.java 2007-10-05 16:49:46 UTC (rev 963) @@ -24,7 +24,7 @@ import org.jdesktop.layout.GroupLayout; import org.jdesktop.layout.LayoutStyle; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.Ontology; @@ -87,7 +87,7 @@ ontologyLabel.setText("Ontology"); ontologyComboBox = new JComboBox(); - for (Ontology o : OntologyManager.inst().getAllOntologies()) { + for (Ontology o : CharFieldManager.inst().getAllOntologies()) { ontologyComboBox.addItem(o.getName()); } // ontologyComboBox.addActionListener(new OntologyChooserListener()); Modified: phenote/trunk/src/java/phenote/gui/field/FieldPanel.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-10-05 16:49:46 UTC (rev 963) @@ -18,7 +18,7 @@ import phenote.dataadapter.GroupAdapterI; import phenote.datamodel.CharField; import phenote.datamodel.CharacterI; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.edit.EditManager; import phenote.gui.selection.SelectionManager; import ca.odell.glazedlists.swing.EventSelectionModel; @@ -33,7 +33,7 @@ private List<CharFieldGui> charFieldGuiList = new ArrayList<CharFieldGui>(8); private SearchParamPanel searchParamPanel; // searchParamManager? - private OntologyManager ontologyManager = OntologyManager.inst(); + private CharFieldManager ontologyManager = CharFieldManager.inst(); private JPanel fieldPanel; private JTabbedPane jTabbedPane; private String group; @@ -96,7 +96,7 @@ } private void setGroup(String g) { - if (g == null) this.group = OntologyManager.DEFAULT_GROUP; + if (g == null) this.group = CharFieldManager.DEFAULT_GROUP; else this.group = g; } Modified: phenote/trunk/src/java/phenote/gui/field/TermCompList.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-10-05 16:49:46 UTC (rev 963) @@ -21,7 +21,7 @@ import phenote.datamodel.CharacterI; import phenote.datamodel.Ontology; import phenote.datamodel.OntologyException; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.edit.CompoundTransaction; import phenote.gui.selection.UseTermEvent; import phenote.gui.selection.UseTermListener; @@ -86,7 +86,7 @@ if (term == null) return; if (ontologyChooserCombo == null) return; try { - Ontology o = OntologyManager.inst().getOntologyForTerm(term); + Ontology o = CharFieldManager.inst().getOntologyForTerm(term); ontologyChooserCombo.setSelectedItem(o.getName()); } catch (OntologyException e) { Modified: phenote/trunk/src/java/phenote/gui/selection/SelectionManager.java =================================================================== --- phenote/trunk/src/java/phenote/gui/selection/SelectionManager.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/gui/selection/SelectionManager.java 2007-10-05 16:49:46 UTC (rev 963) @@ -8,7 +8,7 @@ import org.geneontology.oboedit.datamodel.OBOClass; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; /** Controller for term & character selection */ public class SelectionManager { @@ -21,13 +21,13 @@ /** return main/default instance */ public static SelectionManager inst() { - return getSelMan(OntologyManager.DEFAULT_GROUP); + return getSelMan(CharFieldManager.DEFAULT_GROUP); // if (singleton == null) singleton = new SelectionManager(); // return singleton; } public static SelectionManager getSelMan(String group) { - if (group == null) group = OntologyManager.DEFAULT_GROUP; // ?? + if (group == null) group = CharFieldManager.DEFAULT_GROUP; // ?? if (groupToSelMan.get(group) == null) { SelectionManager s = new SelectionManager(); groupToSelMan.put(group,s); Modified: phenote/trunk/src/java/phenote/jobs/OntologyUpdateJob.java =================================================================== --- phenote/trunk/src/java/phenote/jobs/OntologyUpdateJob.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/jobs/OntologyUpdateJob.java 2007-10-05 16:49:46 UTC (rev 963) @@ -6,7 +6,7 @@ import org.springframework.scheduling.quartz.QuartzJobBean; import phenote.dataadapter.OntologyDataAdapter; import phenote.datamodel.Ontology; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import java.io.File; import java.util.Date; @@ -30,13 +30,13 @@ LOG.info("Started Ontology Update Job: " + ontologyName); - Ontology ontology = OntologyManager.inst().getOntologyForName(ontologyName); + Ontology ontology = CharFieldManager.inst().getOntologyForName(ontologyName); if (ontology == null) { // In case no ontology has ever been loaded. // we assume we run in lazy initialization mode // and need to initialize first. OntologyDataAdapter.initialize(); - ontology = OntologyManager.inst().getOntologyForName(ontologyName); + ontology = CharFieldManager.inst().getOntologyForName(ontologyName); // Check if ontology by this name is found if (ontology == null) LOG.warn("No Ontology with name :" + ontologyName + " found!"); Modified: phenote/trunk/src/java/phenote/servlet/AdminController.java =================================================================== --- phenote/trunk/src/java/phenote/servlet/AdminController.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/servlet/AdminController.java 2007-10-05 16:49:46 UTC (rev 963) @@ -7,7 +7,7 @@ import javax.servlet.http.HttpServletResponse; import phenote.datamodel.Ontology; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import java.util.List; @@ -20,7 +20,7 @@ public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { AdminBean form = new AdminBean(); - List<Ontology> ontologies = OntologyManager.inst().getAllOntologies(); + List<Ontology> ontologies = CharFieldManager.inst().getAllOntologies(); form.setOntologies(ontologies); return new ModelAndView("admin", "formBean", form); Modified: phenote/trunk/src/java/phenote/servlet/PhenoteController.java =================================================================== --- phenote/trunk/src/java/phenote/servlet/PhenoteController.java 2007-10-05 16:43:19 UTC (rev 962) +++ phenote/trunk/src/java/phenote/servlet/PhenoteController.java 2007-10-05 16:49:46 UTC (rev 963) @@ -8,7 +8,7 @@ import phenote.dataadapter.OntologyDataAdapter; import phenote.datamodel.Ontology; import phenote.datamodel.OntologyException; -import phenote.datamodel.OntologyManager; +import phenote.datamodel.CharFieldManager; import phenote.gui.SearchFilterType; import phenote.gui.SearchParams; import phenote.gui.field.CompListSearcher; @@ -166,7 +166,7 @@ * throws ex if ontolName not found */ private Ontology getOntology(String ontolName) throws OntologyException { - return OntologyManager.inst().getOntologyForName(ontolName); + return CharFieldManager.inst().getOntologyForName(ontolName); } private static String q(String s) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-05 16:43:15
|
Revision: 962 http://obo.svn.sourceforge.net/obo/?rev=962&view=rev Author: mgibson Date: 2007-10-05 09:43:19 -0700 (Fri, 05 Oct 2007) Log Message: ----------- renaming ontology manager to char field manager will change code with next checkin i found with svn renames things get screwy if you edit after rename ok maybe im paranoid but i did hit problems Added Paths: ----------- phenote/trunk/src/java/phenote/datamodel/CharFieldManager.java Removed Paths: ------------- phenote/trunk/src/java/phenote/datamodel/OntologyManager.java Copied: phenote/trunk/src/java/phenote/datamodel/CharFieldManager.java (from rev 957, phenote/trunk/src/java/phenote/datamodel/OntologyManager.java) =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharFieldManager.java (rev 0) +++ phenote/trunk/src/java/phenote/datamodel/CharFieldManager.java 2007-10-05 16:43:19 UTC (rev 962) @@ -0,0 +1,288 @@ +package phenote.datamodel; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; +import org.geneontology.oboedit.datamodel.OBOClass; +import org.geneontology.oboedit.datamodel.OBOProperty; +import org.geneontology.oboedit.datamodel.OBOSession; +import org.geneontology.oboedit.postcomp.ParseException; +import org.geneontology.oboedit.postcomp.PostcompUtil; +import org.geneontology.oboedit.postcomp.TokenMgrError; +import org.geneontology.oboedit.util.TermUtil; + +import phenote.config.Config; +import phenote.config.xml.FieldDocument.Field.Type; + +//import phenote.datamodel.CharFieldEnum; +//import phenote.datamodel.OboUtil; + +/** Manages all of the ontologies. Should there be an ontology package - whats funny + is that ontologies have obo filenames that they parse so they are sort of + data adapterish + actually manages CharFields(which may have ontologies) - rename CharFieldManager? yes! + gets initialized by OntologyDataAdapter which loops through FieldConfigs and passes + CharFields to OntMan */ +public class OntologyManager { + + + private static OntologyManager singleton; + /** CharFields generically hold zero or more ontologies - are charFields that dont + have ontologies in this list?? yes */ + private List<CharField> charFieldList = new ArrayList<CharField>(); + /** OBOSession holds all ontologies */ + private OBOSession oboSession; + + public final static String DEFAULT_GROUP = "default"; + + + /** Singleton */ + private OntologyManager() { + // always have user & date field by default + // should be at end in case displayed?? +// CharField dateCreated = +// new CharField("Date Created","date_created",Type.DATE); +// addField(dateCreated); + } + + public static OntologyManager inst() { + if (singleton == null) + singleton = new OntologyManager(); + return singleton; + } + + /** OntologyDataAdapter adds fields */ + public void addField(CharField cf) { + charFieldList.add(cf); + } + + public void setOboSession(OBOSession s) { oboSession = s; } + public OBOSession getOboSession() { return oboSession; } + + /** returns relation of id from obo session, null if dont have */ + public OBOProperty getRelation(String id) { + for (OBOProperty p : TermUtil.getRelationshipTypes(oboSession)) { + if (p.getID().equals(id)) + return p; + } + return null; + } + + /** 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); + } + + public CharField getCharField(int i, String group) throws OntologyException { + if (i<0) throw new OntologyException("error, asking for negative char field"); + if (i >= getNumberOfFields(group)) + throw new OntologyException("number "+i+" char field does not exist"); + return getCharFieldListForGroup(group).get(i); + } + + public CharField getCharFieldForName(String fieldName) throws CharFieldException { + if (fieldName == null) throw new CharFieldException("Char field string is null"); + for (CharField cf : getCharFieldList()) { + //if (cf.getName().equalsIgnoreCase(fieldName)) + if (cf.isField(fieldName)) // checks name and datatag + return cf; + } + throw new CharFieldException("No field for "+fieldName); + } + + // ? + private CharField getCharFieldForEnum(CharFieldEnum en) throws CharFieldException { + try { return getCharFieldForName(en.getName()); } + catch (CharFieldException e) { return getCharFieldForName(en.getTag()); } + } + + /** If date_created doesnt exist then create it - its a fundamental */ + public CharField getDateCreatedField() { + try { return getCharFieldForEnum(CharFieldEnum.DATE_CREATED); } + catch (CharFieldException e) { + // if !config.doCreateDate throw CFex?? + CharField dateCreated = new CharField(CharFieldEnum.DATE_CREATED); + addField(dateCreated); + return dateCreated; + } + } + + + /** This is where the ontologies are in a generic fashion. A char field + has one or more ontologies (entity char field often has more than ontology)*/ + public List<CharField> getCharFieldList() { return charFieldList; } + public int getNumberOfFields() { return charFieldList.size(); } + private int getNumberOfFields(String group) { + return getCharFieldListForGroup(group).size(); + } + + /** should this be stored as a data structure? */ + public List<CharField> getCharFieldListForGroup(String groupName) { + List<CharField> charFields = new ArrayList<CharField>(); + final List<String> fieldNames = Config.inst().getFieldsInGroup(groupName); + for (CharField field : this.getCharFieldList()) { + if (fieldNames.contains(field.getName())) { + charFields.add(field); + } + } + return charFields; + } + + public List<Ontology> getAllOntologies() { + List<Ontology> ontologies = new ArrayList<Ontology>(); + for (CharField cf : charFieldList) + ontologies.addAll(cf.getOntologyList()); + return ontologies; + } + + /** Returns ontology with name, null if not found */ + public Ontology getOntologyForName(String ontologyName) { // static? + for (CharField cf : inst().getCharFieldList()) { + if (cf.hasOntology(ontologyName)) + return cf.getOntologyForName(ontologyName); + } + return null; + } + + /** Searches all ontologies for id - this could be even more savvy and utilize + the id prefix AO,GO,PATO... + Should this deal with post comp? if ^ then create a post comp term on fly? + im not sure if this is the right place for it, maybe method should be renamed + but ill put it here for now + merge this with getOboClassWithEx? */ + public OBOClass getOboClass(String id) throws TermNotFoundException { + OBOClass oboClass; +// this seems to be the sole reason for ontology list - silly! use char fields! + //Iterator<Ontology> iter = getAllOntologies().iterator(); // allOntologyList + //while (iter.hasNext()) { + for (Ontology o : getAllOntologies()) { + //Ontology o = iter.next(); + try { oboClass = o.getTerm(id); } + catch (TermNotFoundException e) { continue; } + if (oboClass != null) + return oboClass; + } + // not sure if we need both onotlogy exception & termnotfoundEx ?? redundant? + throw new TermNotFoundException("ID "+id+" not found in loaded ontologies"); + } + + // 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 { + OBOClass term = getOboClass(id); + if (term == null) + throw new TermNotFoundException("ID "+id+" not found in loaded ontologies"); + return term; + } + + + /** returns true if contains ^ - is this rather presumptious or is ^ reserved */ + boolean isPostComp(String id) { + if (id == null) return false; + return id.contains("^"); + } + + /** 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(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 { + // System.out.println("OntMan getting postcomp for "+id+" OS "+os); + // obo session now has all ontologies! + return PostcompUtil.createPostcompObject(os,id); + } + catch (ParseException e) { + + // ok this is hacky but pre1.2 phenote used relationship names instead of ids + // eg located_in instead of OBO_REL:located_in, so before we throw our hands up + // we should try slipping in an OBO_REL: and see if that works + if (!id.contains("^OBO_REL:")) { + log().error("Post comp failed for "+id+" gonna try inserting ^OBO_REL:"); + String oboRelId = id.replace("^","^OBO_REL:"); + try { + OBOClass o = PostcompUtil.createPostcompObject(os,oboRelId); + // no exception - it worked! + log().error("inserting OBO_REL: worked - please update your datafile"); + return o; + } + catch (ParseException x) { log().error("Inserting ^OBO_REL: didnt work"); } + } + + String m = "\nInvalid post comp expression "+id+" "+e.getMessage(); + log().error(m); + throw new TermNotFoundException(m); + } + // post comp parser can throw a plain old exception on parse failure + // this should be an exception not an error!!! + catch (TokenMgrError x) { + log().error("parse of post comp term failed "+x); + throw new TermNotFoundException(x); + } + } + + /** Currently iterates through every ontology looking for term, if this proves too + inefficient we could do something with ID prefixes */ + public Ontology getOntologyForTerm(OBOClass term) throws OntologyException { + for (CharField cf : charFieldList) { + for (Ontology o : cf.getOntologyList()) + if (o.hasTerm(term)) + return o; + } + throw new OntologyException(term+" not found in ontologies"); + } + + + private Logger log; + private Logger log() { + if (log == null) log = Logger.getLogger(getClass()); + return log; + } + +} + + // previously used by term info +// /** for obo class find its char field enum via ontology & char field */ +// public CharFieldEnum getCharFieldEnumForOboClass(OBOClass oboClass) { +// for (CharField cf : charFieldList) { +// //if (!cf.hasOntologies()) continue; // is this needed? not sure +// for (Ontology ont : cf.getOntologyList()) { +// if (ont.hasOboClass(oboClass)) +// return cf.getCharFieldEnum(); +// } +// } +// return null; // this shouldnt happen - err msg? +// } + Deleted: phenote/trunk/src/java/phenote/datamodel/OntologyManager.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/OntologyManager.java 2007-10-05 14:09:53 UTC (rev 961) +++ phenote/trunk/src/java/phenote/datamodel/OntologyManager.java 2007-10-05 16:43:19 UTC (rev 962) @@ -1,288 +0,0 @@ -package phenote.datamodel; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.log4j.Logger; -import org.geneontology.oboedit.datamodel.OBOClass; -import org.geneontology.oboedit.datamodel.OBOProperty; -import org.geneontology.oboedit.datamodel.OBOSession; -import org.geneontology.oboedit.postcomp.ParseException; -import org.geneontology.oboedit.postcomp.PostcompUtil; -import org.geneontology.oboedit.postcomp.TokenMgrError; -import org.geneontology.oboedit.util.TermUtil; - -import phenote.config.Config; -import phenote.config.xml.FieldDocument.Field.Type; - -//import phenote.datamodel.CharFieldEnum; -//import phenote.datamodel.OboUtil; - -/** Manages all of the ontologies. Should there be an ontology package - whats funny - is that ontologies have obo filenames that they parse so they are sort of - data adapterish - actually manages CharFields(which may have ontologies) - rename CharFieldManager? yes! - gets initialized by OntologyDataAdapter which loops through FieldConfigs and passes - CharFields to OntMan */ -public class OntologyManager { - - - private static OntologyManager singleton; - /** CharFields generically hold zero or more ontologies - are charFields that dont - have ontologies in this list?? yes */ - private List<CharField> charFieldList = new ArrayList<CharField>(); - /** OBOSession holds all ontologies */ - private OBOSession oboSession; - - public final static String DEFAULT_GROUP = "default"; - - - /** Singleton */ - private OntologyManager() { - // always have user & date field by default - // should be at end in case displayed?? -// CharField dateCreated = -// new CharField("Date Created","date_created",Type.DATE); -// addField(dateCreated); - } - - public static OntologyManager inst() { - if (singleton == null) - singleton = new OntologyManager(); - return singleton; - } - - /** OntologyDataAdapter adds fields */ - public void addField(CharField cf) { - charFieldList.add(cf); - } - - public void setOboSession(OBOSession s) { oboSession = s; } - public OBOSession getOboSession() { return oboSession; } - - /** returns relation of id from obo session, null if dont have */ - public OBOProperty getRelation(String id) { - for (OBOProperty p : TermUtil.getRelationshipTypes(oboSession)) { - if (p.getID().equals(id)) - return p; - } - return null; - } - - /** 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); - } - - public CharField getCharField(int i, String group) throws OntologyException { - if (i<0) throw new OntologyException("error, asking for negative char field"); - if (i >= getNumberOfFields(group)) - throw new OntologyException("number "+i+" char field does not exist"); - return getCharFieldListForGroup(group).get(i); - } - - public CharField getCharFieldForName(String fieldName) throws CharFieldException { - if (fieldName == null) throw new CharFieldException("Char field string is null"); - for (CharField cf : getCharFieldList()) { - //if (cf.getName().equalsIgnoreCase(fieldName)) - if (cf.isField(fieldName)) // checks name and datatag - return cf; - } - throw new CharFieldException("No field for "+fieldName); - } - - // ? - private CharField getCharFieldForEnum(CharFieldEnum en) throws CharFieldException { - try { return getCharFieldForName(en.getName()); } - catch (CharFieldException e) { return getCharFieldForName(en.getTag()); } - } - - /** If date_created doesnt exist then create it - its a fundamental */ - public CharField getDateCreatedField() { - try { return getCharFieldForEnum(CharFieldEnum.DATE_CREATED); } - catch (CharFieldException e) { - // if !config.doCreateDate throw CFex?? - CharField dateCreated = new CharField(CharFieldEnum.DATE_CREATED); - addField(dateCreated); - return dateCreated; - } - } - - - /** This is where the ontologies are in a generic fashion. A char field - has one or more ontologies (entity char field often has more than ontology)*/ - public List<CharField> getCharFieldList() { return charFieldList; } - public int getNumberOfFields() { return charFieldList.size(); } - private int getNumberOfFields(String group) { - return getCharFieldListForGroup(group).size(); - } - - /** should this be stored as a data structure? */ - public List<CharField> getCharFieldListForGroup(String groupName) { - List<CharField> charFields = new ArrayList<CharField>(); - final List<String> fieldNames = Config.inst().getFieldsInGroup(groupName); - for (CharField field : this.getCharFieldList()) { - if (fieldNames.contains(field.getName())) { - charFields.add(field); - } - } - return charFields; - } - - public List<Ontology> getAllOntologies() { - List<Ontology> ontologies = new ArrayList<Ontology>(); - for (CharField cf : charFieldList) - ontologies.addAll(cf.getOntologyList()); - return ontologies; - } - - /** Returns ontology with name, null if not found */ - public Ontology getOntologyForName(String ontologyName) { // static? - for (CharField cf : inst().getCharFieldList()) { - if (cf.hasOntology(ontologyName)) - return cf.getOntologyForName(ontologyName); - } - return null; - } - - /** Searches all ontologies for id - this could be even more savvy and utilize - the id prefix AO,GO,PATO... - Should this deal with post comp? if ^ then create a post comp term on fly? - im not sure if this is the right place for it, maybe method should be renamed - but ill put it here for now - merge this with getOboClassWithEx? */ - public OBOClass getOboClass(String id) throws TermNotFoundException { - OBOClass oboClass; -// this seems to be the sole reason for ontology list - silly! use char fields! - //Iterator<Ontology> iter = getAllOntologies().iterator(); // allOntologyList - //while (iter.hasNext()) { - for (Ontology o : getAllOntologies()) { - //Ontology o = iter.next(); - try { oboClass = o.getTerm(id); } - catch (TermNotFoundException e) { continue; } - if (oboClass != null) - return oboClass; - } - // not sure if we need both onotlogy exception & termnotfoundEx ?? redundant? - throw new TermNotFoundException("ID "+id+" not found in loaded ontologies"); - } - - // 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 { - OBOClass term = getOboClass(id); - if (term == null) - throw new TermNotFoundException("ID "+id+" not found in loaded ontologies"); - return term; - } - - - /** returns true if contains ^ - is this rather presumptious or is ^ reserved */ - boolean isPostComp(String id) { - if (id == null) return false; - return id.contains("^"); - } - - /** 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(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 { - // System.out.println("OntMan getting postcomp for "+id+" OS "+os); - // obo session now has all ontologies! - return PostcompUtil.createPostcompObject(os,id); - } - catch (ParseException e) { - - // ok this is hacky but pre1.2 phenote used relationship names instead of ids - // eg located_in instead of OBO_REL:located_in, so before we throw our hands up - // we should try slipping in an OBO_REL: and see if that works - if (!id.contains("^OBO_REL:")) { - log().error("Post comp failed for "+id+" gonna try inserting ^OBO_REL:"); - String oboRelId = id.replace("^","^OBO_REL:"); - try { - OBOClass o = PostcompUtil.createPostcompObject(os,oboRelId); - // no exception - it worked! - log().error("inserting OBO_REL: worked - please update your datafile"); - return o; - } - catch (ParseException x) { log().error("Inserting ^OBO_REL: didnt work"); } - } - - String m = "\nInvalid post comp expression "+id+" "+e.getMessage(); - log().error(m); - throw new TermNotFoundException(m); - } - // post comp parser can throw a plain old exception on parse failure - // this should be an exception not an error!!! - catch (TokenMgrError x) { - log().error("parse of post comp term failed "+x); - throw new TermNotFoundException(x); - } - } - - /** Currently iterates through every ontology looking for term, if this proves too - inefficient we could do something with ID prefixes */ - public Ontology getOntologyForTerm(OBOClass term) throws OntologyException { - for (CharField cf : charFieldList) { - for (Ontology o : cf.getOntologyList()) - if (o.hasTerm(term)) - return o; - } - throw new OntologyException(term+" not found in ontologies"); - } - - - private Logger log; - private Logger log() { - if (log == null) log = Logger.getLogger(getClass()); - return log; - } - -} - - // previously used by term info -// /** for obo class find its char field enum via ontology & char field */ -// public CharFieldEnum getCharFieldEnumForOboClass(OBOClass oboClass) { -// for (CharField cf : charFieldList) { -// //if (!cf.hasOntologies()) continue; // is this needed? not sure -// for (Ontology ont : cf.getOntologyList()) { -// if (ont.hasOboClass(oboClass)) -// return cf.getCharFieldEnum(); -// } -// } -// return null; // this shouldnt happen - err msg? -// } - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-05 14:09:51
|
Revision: 961 http://obo.svn.sourceforge.net/obo/?rev=961&view=rev Author: mgibson Date: 2007-10-05 07:09:53 -0700 (Fri, 05 Oct 2007) Log Message: ----------- fixed duplication/cloning bug where object wast cloning - the "cache" of the object has to be cloned Modified Paths: -------------- phenote/trunk/src/java/phenote/datamodel/AnnotationCharacter.java Modified: phenote/trunk/src/java/phenote/datamodel/AnnotationCharacter.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/AnnotationCharacter.java 2007-10-04 21:03:47 UTC (rev 960) +++ phenote/trunk/src/java/phenote/datamodel/AnnotationCharacter.java 2007-10-05 14:09:53 UTC (rev 961) @@ -177,6 +177,7 @@ } else if (isObjectGenusField(cf)) { cfv = objectGenus; + // cold also see if diff or not and get from annot, below is if no diff // LinkedObject link = annotation.getObject(); // if (link != null && TermUtil.isClass(link)) { // OBOClass postComp = TermUtil.getClass(link); @@ -228,8 +229,11 @@ return driver.getCharFieldValue(s, character, field); } - public CharacterI cloneCharacter() { - Annotation clone = (Annotation) annotation.clone(); - return new AnnotationCharacter(clone, driver); - } + public CharacterI cloneCharacter() { + Annotation clone = (Annotation) annotation.clone(); + AnnotationCharacter a = new AnnotationCharacter(clone, driver); + a.objectGenus = objectGenus.cloneCharFieldValue(); + a.objectDifferentia = objectDifferentia.cloneCharFieldValue(); + return a; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-04 21:03:42
|
Revision: 960 http://obo.svn.sourceforge.net/obo/?rev=960&view=rev Author: balhoff Date: 2007-10-04 14:03:47 -0700 (Thu, 04 Oct 2007) Log Message: ----------- Missing a space. Modified Paths: -------------- phenote/trunk/conf/phenomap.cfg Modified: phenote/trunk/conf/phenomap.cfg =================================================================== --- phenote/trunk/conf/phenomap.cfg 2007-10-04 21:00:13 UTC (rev 959) +++ phenote/trunk/conf/phenomap.cfg 2007-10-04 21:03:47 UTC (rev 960) @@ -20,7 +20,7 @@ </ns:group> <ns:group name="default" title="Default Group" container="window" interface="default"/> - <ns:field name="Publication" syntax-abbrev="PUB" enable="true"groups="default specimen-list"/> + <ns:field name="Publication" syntax-abbrev="PUB" enable="true" groups="default specimen-list"/> <ns:field name="Taxon" syntax-abbrev="GT" enable="true" groups="default specimen-list"> <ns:ontology name="Taxon" file="finkandfink_Taxa.obo" namespace="teleost-taxonomy"/> </ns:field> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-04 21:00:10
|
Revision: 959 http://obo.svn.sourceforge.net/obo/?rev=959&view=rev Author: balhoff Date: 2007-10-04 14:00:13 -0700 (Thu, 04 Oct 2007) Log Message: ----------- Adding preliminary fish taxonomy ontology for PhenoMap. Modified Paths: -------------- phenote/trunk/conf/phenomap.cfg Added Paths: ----------- phenote/trunk/obo-files/finkandfink_Taxa.obo Modified: phenote/trunk/conf/phenomap.cfg =================================================================== --- phenote/trunk/conf/phenomap.cfg 2007-10-04 18:57:16 UTC (rev 958) +++ phenote/trunk/conf/phenomap.cfg 2007-10-04 21:00:13 UTC (rev 959) @@ -20,29 +20,33 @@ </ns:group> <ns:group name="default" title="Default Group" container="window" interface="default"/> - <ns:field name="Publication" syntax-abbrev="PUB" enable="true" colwidth="150" groups="default specimen-list"/> - <ns:field name="Taxon" syntax-abbrev="GT" enable="true" colwidth="150" groups="default specimen-list"/> - <ns:field name="Catalog Number" syntax-abbrev="Specimen" enable="true" colwidth="150" groups="default specimen-list"/> - <ns:field name="Specimen Count" syntax-abbrev="SpecimenCount" enable="true" colwidth="150" groups="default specimen-list"/> - <ns:field name="Preparation" syntax-abbrev="SpecimenPreparation" enable="true" colwidth="150" groups="default specimen-list"/> - <ns:field name="Entity" syntax-abbrev="E" enable="true" colwidth="150" groups="default"> + <ns:field name="Publication" syntax-abbrev="PUB" enable="true"groups="default specimen-list"/> + <ns:field name="Taxon" syntax-abbrev="GT" enable="true" groups="default specimen-list"> + <ns:ontology name="Taxon" file="finkandfink_Taxa.obo" namespace="teleost-taxonomy"/> + </ns:field> + <ns:field name="Catalog Number" syntax-abbrev="Specimen" enable="true" groups="default specimen-list"/> + <ns:field name="Specimen Count" syntax-abbrev="SpecimenCount" enable="true" groups="default specimen-list"/> + <ns:field name="Preparation" syntax-abbrev="SpecimenPreparation" enable="true" groups="default specimen-list"/> + <ns:field name="Entity" syntax-abbrev="E" enable="true" groups="default"> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> <ns:ontology name="Entity" file="teleost_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" namespace="teleost_anatomy"/> </ns:field> - <ns:field name="Quality" syntax-abbrev="Q" enable="true" colwidth="150" groups="default"> + <ns:field name="Quality" syntax-abbrev="Q" enable="true" groups="default"> <ns:ontology name="Quality" file="quality.obo" repos-subdir="phenotype"/> </ns:field> - <ns:field name="Additional Entity" syntax-abbrev="E2" enable="true" colwidth="150" groups="default"> + <ns:field name="Additional Entity" syntax-abbrev="E2" enable="true" groups="default"> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> <ns:ontology name="Additional Entity" file="teleost_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish"/> </ns:field> - <ns:field name="Measurement" syntax-abbrev="M" enable="true" colwidth="150" groups="default"/> - <ns:field name="Unit" syntax-abbrev="U" enable="true" colwidth="150" groups="default"> + <ns:field name="Measurement" syntax-abbrev="M" enable="true" groups="default"/> + <ns:field name="Unit" syntax-abbrev="U" enable="true" groups="default"> <ns:ontology name="Unit" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/> </ns:field> - <ns:field name="Compare To" datatag="Compar" enable="true" groups="default"/> - <ns:field name="Textual Description" syntax-abbrev="Desc" enable="true" colwidth="150" groups="default"/> - <ns:field name="Image URI" syntax-abbrev="URI" enable="true" colwidth="150" groups="default"/> - <ns:field name="Notes" syntax-abbrev="Notes" enable="true" colwidth="150" groups="default"/> + <ns:field name="Compare To" syntax-abbrev="Compar" enable="true" groups="default"> + <ns:ontology name="Compare To" file="finkandfink_Taxa.obo" namespace="teleost-taxonomy"/> + </ns:field> + <ns:field name="Textual Description" syntax-abbrev="Desc" enable="true" groups="default"/> + <ns:field name="Image URI" syntax-abbrev="URI" enable="true" groups="default"/> + <ns:field name="Notes" syntax-abbrev="Notes" enable="true" groups="default"/> </ns:phenote-configuration> \ No newline at end of file Added: phenote/trunk/obo-files/finkandfink_Taxa.obo =================================================================== --- phenote/trunk/obo-files/finkandfink_Taxa.obo (rev 0) +++ phenote/trunk/obo-files/finkandfink_Taxa.obo 2007-10-04 21:00:13 UTC (rev 959) @@ -0,0 +1,375 @@ +format-version: 1.2 +date: 02:10:2007 15:27 +saved-by: peter +auto-generated-by: OBO-Edit 1.101 +default-namespace: teleost-taxonomy + +[Term] +id: TTO: 1029899 +name: Prochilodus vimboides +is_a: TTO:101208 ! Prochilodus +property_value: has_rank TTO:species + +[Term] +id: TTO:1 +name: Craniata + +[Term] +id: TTO:10000001 +name: Eigenmannia sp. +is_a: TTO:104678 ! Eigenmannia +property_value: has_rank TTO:Unknown_species + +[Term] +id: TTO:10000002 +name: Sternopygus sp. +is_a: TTO:102060 ! Sternopygus +property_value: has_rank TTO:Unknown_species + +[Term] +id: TTO:1003114 +name: Notemigonus crysoleucus +is_a: TTO:100967 ! Notemigonus +property_value: has_rank TTO:species + +[Term] +id: TTO:1003239 +name: Opsariichthys uncirostris +is_a: TTO:103159 ! Opsariichthys +property_value: has_rank TTO:species + +[Term] +id: TTO:1004143 +name: Chalceus macrolepidotus +is_a: TTO:100825 ! Chalceus +property_value: has_rank TTO:species + +[Term] +id: TTO:1004205 +name: Hepsetus odoe +is_a: TTO:109162 ! Hepsetus +property_value: has_rank TTO:species + +[Term] +id: TTO:1004213 +name: Xenocharax spilurus +is_a: TTO:103438 ! Xenocharax +property_value: has_rank TTO:species + +[Term] +id: TTO:1004343 +name: Rhoadsia altipinna +is_a: TTO:105589 ! Rhoadsia +property_value: has_rank TTO:species + +[Term] +id: TTO:100558 +name: Chanos +is_a: TTO:10720 ! Chanidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:1006103 +name: Rhabdolichops troscheli +is_a: TTO:107098 ! Rhabdolichops +property_value: has_rank TTO:species + +[Term] +id: TTO:100825 +name: Chalceus +is_a: TTO:10910 ! Characidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:100967 +name: Notemigonus +is_a: TTO:10760 ! Cyprinidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:101208 +name: Prochilodus +is_a: TTO:10855 ! Prochilodontidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:101842 +name: Brycon +is_a: TTO:10910 ! Characidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:102060 +name: Sternopygus +is_a: TTO:11231 ! Sternopygidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:1027661 +name: Chanos chanos +is_a: TTO:100558 ! Chanos +property_value: has_rank TTO:species + +[Term] +id: TTO:1028504 +name: Bryconamericus brevirostris +is_a: TTO:105385 ! Bryconamericus +property_value: has_rank TTO:species + +[Term] +id: TTO:102915 +name: Diplomystes +is_a: TTO:10920 ! Diplomystidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:1029536 +name: Brycon dentex +is_a: TTO:101842 ! Brycon +property_value: has_rank TTO:species + +[Term] +id: TTO:1030110 +name: Platyurosternarchus macrostomus +synonym: "Sternarchus macrostoma" EXACT [] +is_a: TTO:110391 ! Platyurosternarchus +property_value: has_rank TTO:species + +[Term] +id: TTO:103159 +name: Opsariichthys +is_a: TTO:10760 ! Cyprinidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:103339 +name: Auchenoglanis +is_a: TTO:10940 ! Bagridae +property_value: has_rank TTO:genus + +[Term] +id: TTO:103438 +name: Xenocharax +is_a: TTO:10820 ! Citharinidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:1046341 +name: Diplomystes chilensis +synonym: "Diplomystes papillosus" EXACT [] +is_a: TTO:102915 ! Diplomystes +property_value: has_rank TTO:species + +[Term] +id: TTO:104678 +name: Eigenmannia +is_a: TTO:11231 ! Sternopygidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:105055 +name: Zacco +is_a: TTO:10760 ! Cyprinidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:1051779 +name: Zacco temminckii +is_a: TTO:105055 ! Zacco +property_value: has_rank TTO:species + +[Term] +id: TTO:105268 +name: Sternarchorhamphus +is_a: TTO:11232 ! Apteronotidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:105385 +name: Bryconamericus +is_a: TTO:10910 ! Characidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:105589 +name: Rhoadsia +is_a: TTO:10910 ! Characidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:1056213 +name: Auchenoglanis monkei +synonym: "Parauchenoglanis guttatus" EXACT [] +is_a: TTO:103339 ! Auchenoglanis +property_value: has_rank TTO:species + +[Term] +id: TTO:1062171 +name: Sternopygus macrurus +is_a: TTO:102060 ! Sternopygus +property_value: has_rank TTO:species + +[Term] +id: TTO:107098 +name: Rhabdolichops +is_a: TTO:11231 ! Sternopygidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:10720 +name: Chanidae +is_a: TTO:1350 ! Gonorynchiformes +property_value: has_rank TTO:family + +[Term] +id: TTO:10760 +name: Cyprinidae +is_a: TTO:1360 ! Cypriniformes +property_value: has_rank TTO:family + +[Term] +id: TTO:10820 +name: Citharinidae +is_a: TTO:1370 ! Characiformes +property_value: has_rank TTO:family + +[Term] +id: TTO:10827 +name: Hepsetidae +is_a: TTO:1370 ! Characiformes +property_value: has_rank TTO:family + +[Term] +id: TTO:10855 +name: Prochilodontidae +is_a: TTO:1370 ! Characiformes +property_value: has_rank TTO:family + +[Term] +id: TTO:10910 +name: Characidae +is_a: TTO:1370 ! Characiformes +property_value: has_rank TTO:family + +[Term] +id: TTO:109162 +name: Hepsetus +is_a: TTO:10827 ! Hepsetidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:10920 +name: Diplomystidae +is_a: TTO:1380 ! Siluriformes +property_value: has_rank TTO:family + +[Term] +id: TTO:10940 +name: Bagridae +is_a: TTO:1380 ! Siluriformes +property_value: has_rank TTO:family + +[Term] +id: TTO:110391 +name: Platyurosternarchus +is_a: TTO:11232 ! Apteronotidae +property_value: has_rank TTO:genus + +[Term] +id: TTO:11231 +name: Sternopygidae +is_a: TTO:1390 ! Gymnotiformes +property_value: has_rank TTO:family + +[Term] +id: TTO:11232 +name: Apteronotidae +is_a: TTO:1390 ! Gymnotiformes +property_value: has_rank TTO:family + +[Term] +id: TTO:1350 +name: Gonorynchiformes +is_a: TTO:18 ! Actinopterygii +property_value: has_rank TTO:order + +[Term] +id: TTO:1360 +name: Cypriniformes +is_a: TTO:18 ! Actinopterygii +property_value: has_rank TTO:order + +[Term] +id: TTO:1370 +name: Characiformes +is_a: TTO:18 ! Actinopterygii +property_value: has_rank TTO:order + +[Term] +id: TTO:1380 +name: Siluriformes +is_a: TTO:18 ! Actinopterygii +property_value: has_rank TTO:order + +[Term] +id: TTO:1390 +name: Gymnotiformes +is_a: TTO:18 ! Actinopterygii +property_value: has_rank TTO:order + +[Term] +id: TTO:18 +name: Actinopterygii +is_a: TTO:1 ! Craniata +property_value: has_rank TTO:class + +[Term] +id: TTO:class +name: class +xref: NCBITaxon:class +is_a: TTO:taxonomic_rank ! taxonomic_rank + +[Term] +id: TTO:family +name: family +xref: NCBITaxon:family +is_a: TTO:taxonomic_rank ! taxonomic_rank + +[Term] +id: TTO:genus +name: genus +xref: NCBITaxon:genus +is_a: TTO:taxonomic_rank ! taxonomic_rank + +[Term] +id: TTO:order +name: order +xref: NCBITaxon:order +is_a: TTO:taxonomic_rank ! taxonomic_rank + +[Term] +id: TTO:species +name: species +xref: NCBITaxon:species +is_a: TTO:taxonomic_rank ! taxonomic_rank + +[Term] +id: TTO:taxonomic_rank +name: taxonomic_rank +xref: NCBITaxon:taxonomic_rank + +[Term] +id: TTO:Unknown_species +name: Unknown species +is_a: TTO:taxonomic_rank ! taxonomic_rank + +[Term] +id: TTO:Unknown_species_group +name: Unknown species group +is_a: TTO:taxonomic_rank ! taxonomic_rank + +[Term] +id: TTO:Unnamed_species +name: Unnamed species +is_a: TTO:taxonomic_rank ! taxonomic_rank + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-04 18:57:12
|
Revision: 958 http://obo.svn.sourceforge.net/obo/?rev=958&view=rev Author: balhoff Date: 2007-10-04 11:57:16 -0700 (Thu, 04 Oct 2007) Log Message: ----------- Removing some unused code to avoid confusion. Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/field/TermCompList.java Modified: phenote/trunk/src/java/phenote/gui/field/TermCompList.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-10-04 18:05:47 UTC (rev 957) +++ phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-10-04 18:57:16 UTC (rev 958) @@ -76,25 +76,6 @@ //fieldPanel.addPostCompButton(postCompButton); } } - - /** - * char in table changed - setCurrentOboClass & text - */ - protected void setValueFromChar(CharacterI chr) { - if (chr == null) { - log().error("ERROR: attempt to set fields from null character"); // ex? - return; - } - if (!chr.hasValue(getCharField())) { - currentOboClass = null; // makes getCurTermRelName "" - setText(""); // actually calls getCurTermRelNm which is "" - return; - } - - OBOClass selCharTerm = chr.getValue(getCharField()).getOboClass(); - setOboClass(selCharTerm); // doesnt allow null - setOntologyChooserFromTerm(selCharTerm); - } protected void setCharFieldValue(CharFieldValue value) { this.setOboClass(value.getOboClass()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-04 18:05:48
|
Revision: 957 http://obo.svn.sourceforge.net/obo/?rev=957&view=rev Author: balhoff Date: 2007-10-04 11:05:47 -0700 (Thu, 04 Oct 2007) Log Message: ----------- This should fix various interface glitches due to multithreading during app initialization. Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/CharacterTableController.java phenote/trunk/src/java/phenote/main/Phenote.java Modified: phenote/trunk/src/java/phenote/gui/CharacterTableController.java =================================================================== --- phenote/trunk/src/java/phenote/gui/CharacterTableController.java 2007-10-04 18:00:11 UTC (rev 956) +++ phenote/trunk/src/java/phenote/gui/CharacterTableController.java 2007-10-04 18:05:47 UTC (rev 957) @@ -12,7 +12,6 @@ import javax.swing.JPopupMenu; import javax.swing.JTable; import javax.swing.JTextField; -import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; @@ -137,11 +136,7 @@ } private void addInitialBlankCharacter() { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - CharacterTableController.this.getEditManager().addInitialCharacter(); - } - }); + this.getEditManager().addInitialCharacter(); } private void setSelectionWithCharacters(List<CharacterI> characters) { Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-04 18:00:11 UTC (rev 956) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-04 18:05:47 UTC (rev 957) @@ -19,6 +19,7 @@ import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; +import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.EmptyBorder; @@ -226,8 +227,12 @@ } public void initGui() { - makeMainWindow(); // ok this is silly - this.createGroupWindows(); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + makeMainWindow(); + createGroupWindows(); + } + }); } private void createGroupWindows() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-04 18:00:08
|
Revision: 956 http://obo.svn.sourceforge.net/obo/?rev=956&view=rev Author: mgibson Date: 2007-10-04 11:00:11 -0700 (Thu, 04 Oct 2007) Log Message: ----------- fixed bug where genotype free text field was showing up in gui for obo mapping problem was it gets saved in obo model as dangling class and it was retrieving then as a class but char fields value/char field still thinks of itself as string and string value was null so now getValue returns the String name of the dangling genotype/subject if char field is not a term Modified Paths: -------------- phenote/trunk/src/java/phenote/datamodel/AnnotationCharacter.java phenote/trunk/src/java/phenote/datamodel/BasicAnnotationMappingDriver.java Modified: phenote/trunk/src/java/phenote/datamodel/AnnotationCharacter.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/AnnotationCharacter.java 2007-10-04 15:42:26 UTC (rev 955) +++ phenote/trunk/src/java/phenote/datamodel/AnnotationCharacter.java 2007-10-04 18:00:11 UTC (rev 956) @@ -167,6 +167,10 @@ CharFieldValue cfv = null; if (isSubjectField(cf)) { LinkedObject subject = annotation.getSubject(); + // For char fields that are free text, in obo as dangling class - just rip out + // name + if (subject!= null && !cf.isTerm()) + return new CharFieldValue(subject.getName(),this,cf); if (subject instanceof OBOClass) { cfv = new CharFieldValue((OBOClass) subject, this, cf); } Modified: phenote/trunk/src/java/phenote/datamodel/BasicAnnotationMappingDriver.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/BasicAnnotationMappingDriver.java 2007-10-04 15:42:26 UTC (rev 955) +++ phenote/trunk/src/java/phenote/datamodel/BasicAnnotationMappingDriver.java 2007-10-04 18:00:11 UTC (rev 956) @@ -31,8 +31,8 @@ * AnnotationOntology to contain these properties. This is here just to keep * the example simple */ - protected static final OBOProperty GENOTYPE_REL = new OBOPropertyImpl( - "oban:has_genotype", "has_genotype"); + protected static final OBOProperty GENOTYPE_REL = + new OBOPropertyImpl("oban:has_genotype", "has_genotype"); protected static final OBOProperty HAS_QUALITY_REL = new OBOPropertyImpl( "pato:has_quality", "has_quality"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-04 15:42:24
|
Revision: 955 http://obo.svn.sourceforge.net/obo/?rev=955&view=rev Author: mgibson Date: 2007-10-04 08:42:26 -0700 (Thu, 04 Oct 2007) Log Message: ----------- disable min comp chars took it out of a few configs cant take it out of birn configs until release - as it gets wiped out from svn but should take out for birn release min comp chars optimization has been made irrelevant by threading and it had quirky behaviour on delete for sure and now that theres completion on demand with arrow button dont need min comp chars = 1 to kill pre loading of comp terms maybe do release soon? Modified Paths: -------------- phenote/trunk/conf/birn2.cfg phenote/trunk/conf/demo.cfg phenote/trunk/conf/flybase.cfg phenote/trunk/conf/parameciumDB.cfg phenote/trunk/conf/phenote-config.rnc phenote/trunk/conf/smart-atlas.cfg phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java Modified: phenote/trunk/conf/birn2.cfg =================================================================== --- phenote/trunk/conf/birn2.cfg 2007-10-03 21:52:29 UTC (rev 954) +++ phenote/trunk/conf/birn2.cfg 2007-10-04 15:42:26 UTC (rev 955) @@ -23,7 +23,7 @@ <ns:field name="Organism" enable="true" datatag="GT" desc="This is like the genotype; its probably a mouse strain or some other identifying factor"/> <ns:field name="Phenotypic Character" enable="true" desc="This is a free-text field for phenotype characters for now, not exactly sure what this captures; it might be just a grouping or it might be conclusions, or something else entirely"/> - <ns:field name="Entity" min-completion-chars="1" datatag="E" enable="true"> + <ns:field name="Entity" min-completion-chars="2" datatag="E" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo"/> <ns:ontology name="SAO" file="SAO.obo"/> @@ -43,7 +43,7 @@ <ns:ontology file="http://www.berkeleybop.org/ontologies/obo-all/quality/quality.obo"/> </ns:field> - <ns:field name="Add'l Entity" datatag="E2" min-completion-chars="1" enable="true"> + <ns:field name="Add'l Entity" datatag="E2" min-completion-chars="2" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo"/> <ns:ontology name="SAO" file="SAO.obo"/> Modified: phenote/trunk/conf/demo.cfg =================================================================== --- phenote/trunk/conf/demo.cfg 2007-10-03 21:52:29 UTC (rev 954) +++ phenote/trunk/conf/demo.cfg 2007-10-04 15:42:26 UTC (rev 955) @@ -38,7 +38,7 @@ <ns:field name="Genetic Context" datatag="GC" enable="true"> <ns:ontology name="Genetic Context" file="context.obo"/> </ns:field> - <ns:field name="Entity" datatag="E" min-completion-chars="1" enable="true"> + <ns:field name="Entity" datatag="E" enable="true"> <ns:ontology name="Relationship" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> <ns:ontology name="FMA" file="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/fma-conversion/trunk/fma_obo.obo"/> <ns:ontology name="GO" file="ftp://ftp.geneontology.org/pub/go/ontology/gene_ontology_edit.obo"/> @@ -50,7 +50,7 @@ <ns:ontology name="PATO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/quality.obo"/> <ns:ontology name="MP" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/mammalian_phenotype.obo"/> </ns:field> - <ns:field name="Add'l Entity" datatag="E2" min-completion-chars="1" enable="true"> + <ns:field name="Add'l Entity" datatag="E2" enable="true"> <ns:ontology name="Relationship" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo" is-postcomp-rel="true"/> <ns:ontology name="FMA" file="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/fma-conversion/trunk/fma_obo.obo"/> <ns:ontology name="GO" file="ftp://ftp.geneontology.org/pub/go/ontology/gene_ontology_edit.obo" /> Modified: phenote/trunk/conf/flybase.cfg =================================================================== --- phenote/trunk/conf/flybase.cfg 2007-10-03 21:52:29 UTC (rev 954) +++ phenote/trunk/conf/flybase.cfg 2007-10-04 15:42:26 UTC (rev 955) @@ -37,7 +37,7 @@ <ns:ontology file="context.obo"/> </ns:field> - <ns:field name="Entity" datatag="E" min-completion-chars="1"> + <ns:field name="Entity" datatag="E"> <!-- postcomp relationship-ontology="relationship.obo" repos-subdir="OBO_REL"/ --> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo"/> Modified: phenote/trunk/conf/parameciumDB.cfg =================================================================== --- phenote/trunk/conf/parameciumDB.cfg 2007-10-03 21:52:29 UTC (rev 954) +++ phenote/trunk/conf/parameciumDB.cfg 2007-10-04 15:42:26 UTC (rev 955) @@ -31,7 +31,7 @@ <ns:field name="Description" syntax-abbrev="Desc"/> - <ns:field name="Entity" syntax-abbrev="E" min-completion-chars="2"> + <ns:field name="Entity" syntax-abbrev="E"> <ns:ontology name="Paramecium Anatomy" file="http://paramecium.cgm.cnrs-gif.fr/phenote/obo/para.obo"/> <ns:ontology name="Paramecium Ontology" file="http://paramecium.cgm.cnrs-gif.fr/phenote/obo/paro.obo"/> <ns:ontology name="Gene Onotology" file="http://paramecium.cgm.cnrs-gif.fr/phenote/obo/go.obo"/> Modified: phenote/trunk/conf/phenote-config.rnc =================================================================== --- phenote/trunk/conf/phenote-config.rnc 2007-10-03 21:52:29 UTC (rev 954) +++ phenote/trunk/conf/phenote-config.rnc 2007-10-04 15:42:26 UTC (rev 955) @@ -120,6 +120,7 @@ attribute copy-field { xsd:boolean }, ## the amount of letters/chars a user has to type before completion happens ## this is to optimize slow completion w many ontologies + ## with new threading optimization this is being phased out attribute min-completion-chars { xsd:int }, postcomp?, ontology* Modified: phenote/trunk/conf/smart-atlas.cfg =================================================================== --- phenote/trunk/conf/smart-atlas.cfg 2007-10-03 21:52:29 UTC (rev 954) +++ phenote/trunk/conf/smart-atlas.cfg 2007-10-04 15:42:26 UTC (rev 955) @@ -30,7 +30,7 @@ <ns:field name="Slice Type" datatag="slicetype" enable="true" desc="coronal or sagittal, read only?"/> <ns:field name="Slice Number" datatag="slicenumber" enable="true" desc="images have many slices(?)"/> - <ns:field name="Entity" datatag="E" min-completion-chars="1" enable="true"> + <ns:field name="Entity" datatag="E" min-completion-chars="2" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo"/> <ns:ontology name="SAO" file="SAO.obo"/> @@ -52,7 +52,7 @@ <ns:ontology file="http://www.berkeleybop.org/ontologies/obo-all/quality/quality.obo"/> </ns:field> - <ns:field name="Add'l Entity" datatag="E2" min-completion-chars="1" enable="true"> + <ns:field name="Add'l Entity" datatag="E2" min-completion-chars="2" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/ro.obo"/> <ns:ontology name="SAO" file="SAO.obo"/> Modified: phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java 2007-10-03 21:52:29 UTC (rev 954) +++ phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java 2007-10-04 15:42:26 UTC (rev 955) @@ -269,7 +269,8 @@ // too soon - text field doesnt have text yet.... hmmmm.... String input = getText(); // If length of input is shorter than minimum required for completion do nothing - if (input.length() < minCompChars) return; + // disabling this - with threading dont need - and its buggy + //if (input.length() < minCompChars) return; // returns a list of CompletionTerms (checks if relations) // if input is empty will return whole list (if configged) //log().debug("got new completion request for input "+input+" time "+time()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |