You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(18) |
Aug
(33) |
Sep
(30) |
Oct
(27) |
Nov
(59) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(67) |
Feb
(44) |
Mar
(70) |
Apr
(73) |
May
(119) |
Jun
(31) |
Jul
(92) |
Aug
(86) |
Sep
(76) |
Oct
(152) |
Nov
(156) |
Dec
(85) |
2008 |
Jan
(111) |
Feb
(121) |
Mar
(107) |
Apr
(102) |
May
(45) |
Jun
(65) |
Jul
(62) |
Aug
(133) |
Sep
(56) |
Oct
(56) |
Nov
(17) |
Dec
(15) |
2009 |
Jan
(10) |
Feb
(5) |
Mar
(10) |
Apr
(14) |
May
(49) |
Jun
(94) |
Jul
(67) |
Aug
(23) |
Sep
(9) |
Oct
(92) |
Nov
(26) |
Dec
(51) |
2010 |
Jan
(105) |
Feb
(83) |
Mar
(52) |
Apr
(59) |
May
(68) |
Jun
(71) |
Jul
(127) |
Aug
(49) |
Sep
(91) |
Oct
(27) |
Nov
(33) |
Dec
(26) |
2011 |
Jan
(26) |
Feb
(45) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(15) |
Jul
(45) |
Aug
(33) |
Sep
(50) |
Oct
(22) |
Nov
(10) |
Dec
(21) |
2012 |
Jan
(33) |
Feb
(24) |
Mar
(36) |
Apr
(60) |
May
(60) |
Jun
(43) |
Jul
(114) |
Aug
(19) |
Sep
(35) |
Oct
(24) |
Nov
(64) |
Dec
(12) |
2013 |
Jan
(54) |
Feb
(58) |
Mar
(51) |
Apr
(46) |
May
(21) |
Jun
(29) |
Jul
(25) |
Aug
(25) |
Sep
(13) |
Oct
(7) |
Nov
(14) |
Dec
(27) |
2014 |
Jan
(10) |
Feb
(7) |
Mar
(16) |
Apr
(14) |
May
(19) |
Jun
(8) |
Jul
(15) |
Aug
(11) |
Sep
(5) |
Oct
(11) |
Nov
(11) |
Dec
(4) |
2015 |
Jan
(52) |
Feb
(27) |
Mar
(22) |
Apr
(17) |
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(2) |
Oct
|
Nov
(2) |
Dec
|
2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(3) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
(2) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(4) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: <nl...@us...> - 2007-10-30 16:45:02
|
Revision: 1085 http://obo.svn.sourceforge.net/obo/?rev=1085&view=rev Author: nlw Date: 2007-10-30 09:44:49 -0700 (Tue, 30 Oct 2007) Log Message: ----------- updates to website; adding the talk from biocrators meeting Modified Paths: -------------- phenote/trunk/doc/phenote-website/events.shtml phenote/trunk/doc/phenote-website/index.shtml Added Paths: ----------- phenote/trunk/doc/phenote-website/resources/ phenote/trunk/doc/phenote-website/resources/Biocurator_2007.ppt Modified: phenote/trunk/doc/phenote-website/events.shtml =================================================================== --- phenote/trunk/doc/phenote-website/events.shtml 2007-10-29 23:43:28 UTC (rev 1084) +++ phenote/trunk/doc/phenote-website/events.shtml 2007-10-30 16:44:49 UTC (rev 1085) @@ -18,16 +18,12 @@ <h1>Upcoming Events, 2007</h1> - <h2>October</h2> - <ul> - <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 1, Phenote Users Group, Online via WebEx </li> + <li>Nov 4, Talk, <a href="http://meetings.cshl.edu/meetings/info07.shtml">Genome Informatics</a> + </li> <li>Nov 27, <a href="http://www.bioontology.org/">NCBO</a> Scientific Advisory Board meeting</li> </ul> @@ -39,15 +35,19 @@ <h1>Past News and Events, 2007</h1> <h2>October</h2> + <ul> + <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 [<a href="http://www.phenote.org/resources/Biocurator_2007.ppt">Download presentation</a>] + </li> <li>Oct 10, New Phenote Release - <a href="http://www.phenote.org/download.shtml">version 1.4</a> </li> <li>Oct 2, Phenote Users Group, Online via WebEx </li> + </ul> + <h2>September</h2> <ul> - <li>Sept 17, New website released - </li> + <li>Sept 17, - New website rolled out! The website has the same content as the old one, just with a new look-and-feel.</li> <li>Sept 4, Phenote Users Group, Online </li> </ul> Modified: phenote/trunk/doc/phenote-website/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/index.shtml 2007-10-29 23:43:28 UTC (rev 1084) +++ phenote/trunk/doc/phenote-website/index.shtml 2007-10-30 16:44:49 UTC (rev 1085) @@ -111,7 +111,7 @@ <li class="events"> <p class="quick_link"> <img src="images/star.gif" alt="" class="icon_green"/> - <a href="http://www.cs.uoregon.edu/~dhowe/biocurator/">BioCurator meeting</a>, October 23-25, San Jose, CA + <a href="http://meetings.cshl.edu/meetings/info07.shtml">Genome Informatics</a>, November 1-5, Cold Spring Harbor, NY </p> </li> </ul> @@ -129,10 +129,10 @@ <!--No news is good news!--> <!-- Do not destry the following event template --> - <p>10.10.2007 - <b>New Phenote Release - <a href="http://www.phenote.org/download.shtml">version 1.4</a></b> + <p><a href="http://www.cs.uoregon.edu/~dhowe/biocurator/">BioCurator meeting</a>, October 23-25, San Jose, CA + [<a href="http://www.phenote.org/resources/Biocurator_2007.ppt">Download presentation</a>]</p> + <p>10.10.2007 - <b>New Phenote Release - <a href="http://www.phenote.org/download.shtml">version 1.4</a></b></p> <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> <!-- <h3>Event Title</h3> <ul class="events"> Added: phenote/trunk/doc/phenote-website/resources/Biocurator_2007.ppt =================================================================== (Binary files differ) Property changes on: phenote/trunk/doc/phenote-website/resources/Biocurator_2007.ppt ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-29 23:43:25
|
Revision: 1084 http://obo.svn.sourceforge.net/obo/?rev=1084&view=rev Author: cmungall Date: 2007-10-29 16:43:28 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/sql/api/obd-mutable-api.plpgsql Modified: obo-database/trunk/sql/api/obd-mutable-api.plpgsql =================================================================== --- obo-database/trunk/sql/api/obd-mutable-api.plpgsql 2007-10-29 21:20:48 UTC (rev 1083) +++ obo-database/trunk/sql/api/obd-mutable-api.plpgsql 2007-10-29 23:43:28 UTC (rev 1084) @@ -147,7 +147,7 @@ CREATE OR REPLACE FUNCTION store_ontology_source_node (VARCHAR) RETURNS INT AS $$ -SELECT store_node($1') +SELECT store_node($1) $$ LANGUAGE 'sql'; @@ -329,3 +329,28 @@ END; $$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_tagval (VARCHAR,VARCHAR,VARCHAR,VARCHAR) + RETURNS INT AS +$$ +DECLARE + v_su ALIAS FOR $1; + v_rel ALIAS FOR $2; + v_val ALIAS FOR $3; + v_datatype ALIAS FOR $4; + + v_link_id INTEGER; + v_su_id INTEGER; + v_rel_id INTEGER; + v_datatype_id INTEGER; + BEGIN + SELECT INTO v_su_id store_node(v_su); + SELECT INTO v_rel_id store_relation_node(v_rel); + SELECT INTO v_datatype_id store_node(v_datatype); + INSERT INTO tagval + (node_id,tag_id,val,datatype_id) + VALUES + (v_su_id,v_rel_id,v_val,v_datatype_id); + RETURN currval('tagval_tagval_id_seq'); + END; +$$ LANGUAGE 'plpgsql'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-29 21:20:45
|
Revision: 1083 http://obo.svn.sourceforge.net/obo/?rev=1083&view=rev Author: mgibson Date: 2007-10-29 14:20:48 -0700 (Mon, 29 Oct 2007) Log Message: ----------- just started fiddling with putting in lists - but going on to some obo edit integration stuff so just committing the few lines i put in that compile so no biggie - just stubs at this point Modified Paths: -------------- phenote/trunk/jars/oboedit.jar phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java phenote/trunk/src/java/phenote/gui/field/FieldPanel.java Modified: phenote/trunk/jars/oboedit.jar =================================================================== (Binary files differ) Modified: phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-10-29 18:39:06 UTC (rev 1082) +++ phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-10-29 21:20:48 UTC (rev 1083) @@ -598,7 +598,12 @@ /** Overridden by TermCompList */ protected JButton getCompButton() { return null; } + /** should get this from config... stub for now */ + protected boolean hasListGui() { return false; } + /** JList? initialize if configged */ + protected JComponent getListGui() { return null; } + /** no op - override in term completion gui */ public void setMinCompChars(int minCompChars) {} public int getMinCompChars() { return 0; } Modified: phenote/trunk/src/java/phenote/gui/field/FieldPanel.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-10-29 18:39:06 UTC (rev 1082) +++ phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-10-29 21:20:48 UTC (rev 1083) @@ -206,20 +206,28 @@ private void addInputGui(CharFieldGui fieldGui, GridBagConstraints constraints) { constraints.gridx = 2; + if (!fieldGui.hasListGui()) constraints.gridwidth = 2; constraints.weightx = 1.0; constraints.fill = GridBagConstraints.HORIZONTAL; fieldPanel.add(fieldGui.getUserInputGui(), constraints); } + private void addListGui(CharFieldGui fieldGui, GridBagConstraints constraints) { + if (!fieldGui.hasListGui()) return; + constraints.gridx = 3; + constraints.gridwidth = 2; + // fieldPanel.add(fieldGui.getListGui(),constraints); + } + private void addPostCompButton(CharFieldGui fieldGui, GridBagConstraints constraints) { - constraints.gridx = 3; + constraints.gridx = 4; if (fieldGui.hasCompButton()) { fieldPanel.add(fieldGui.getCompButton(), constraints); } } private void addRetrieveButton(CharFieldGui fieldGui, GridBagConstraints constraints) { - constraints.gridx = 4; + constraints.gridx = 5; if (fieldGui.hasRetrieveButton()) { fieldPanel.add(fieldGui.getRetrieveButton(), constraints); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-29 18:39:13
|
Revision: 1082 http://obo.svn.sourceforge.net/obo/?rev=1082&view=rev Author: mgibson Date: 2007-10-29 11:39:06 -0700 (Mon, 29 Oct 2007) Log Message: ----------- took o ut comments Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/field/FieldPanel.java Modified: phenote/trunk/src/java/phenote/gui/field/FieldPanel.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-10-29 18:38:45 UTC (rev 1081) +++ phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-10-29 18:39:06 UTC (rev 1082) @@ -160,10 +160,6 @@ private int currentGridBagRow = 0; void addCharFieldGuiToPanel(CharFieldGui fieldGui) { -// GridBagConstraints baseConstraints = new GridBagConstraints(); -// baseConstraints.insets = new Insets(2,3,2,3); -// baseConstraints.gridy = this.currentGridBagRow++; - // why is it necasary to clone? to reset? // baseConst.clone() - taken out // first one does new row this.addLabel(fieldGui, getConstraintsNewRow()); this.addOntologyChooser(fieldGui, getConstraintsSameRow()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-29 18:38:41
|
Revision: 1081 http://obo.svn.sourceforge.net/obo/?rev=1081&view=rev Author: mgibson Date: 2007-10-29 11:38:45 -0700 (Mon, 29 Oct 2007) Log Message: ----------- tiny refactor of doing grid bag constraints for char field guis Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/field/FieldPanel.java Modified: phenote/trunk/src/java/phenote/gui/field/FieldPanel.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-10-25 18:41:53 UTC (rev 1080) +++ phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-10-29 18:38:45 UTC (rev 1081) @@ -160,15 +160,36 @@ private int currentGridBagRow = 0; void addCharFieldGuiToPanel(CharFieldGui fieldGui) { +// GridBagConstraints baseConstraints = new GridBagConstraints(); +// baseConstraints.insets = new Insets(2,3,2,3); +// baseConstraints.gridy = this.currentGridBagRow++; + // why is it necasary to clone? to reset? // baseConst.clone() - taken out + // first one does new row + this.addLabel(fieldGui, getConstraintsNewRow()); + this.addOntologyChooser(fieldGui, getConstraintsSameRow()); + this.addInputGui(fieldGui, getConstraintsSameRow()); + //addList(); + this.addPostCompButton(fieldGui, getConstraintsSameRow()); + this.addRetrieveButton(fieldGui, getConstraintsSameRow()); + } + + /** set up basic grid bag constraints with insets and increments currentGridBagRow/gridy + */ + GridBagConstraints getConstraintsNewRow() { + GridBagConstraints baseConstraints = getConstraintsSameRow(); + baseConstraints.gridy = ++this.currentGridBagRow; + return baseConstraints; + } + + /** set up basic grid bag constraints with insets and uses currentGridBagRow for gridy + (doesnt increment it) */ + GridBagConstraints getConstraintsSameRow() { GridBagConstraints baseConstraints = new GridBagConstraints(); baseConstraints.insets = new Insets(2,3,2,3); - baseConstraints.gridy = this.currentGridBagRow++; - this.addLabel(fieldGui, (GridBagConstraints)baseConstraints.clone()); - this.addOntologyChooser(fieldGui, (GridBagConstraints)baseConstraints.clone()); - this.addInputGui(fieldGui, (GridBagConstraints)baseConstraints.clone()); - this.addPostCompButton(fieldGui, (GridBagConstraints)baseConstraints.clone()); - this.addRetrieveButton(fieldGui, (GridBagConstraints)baseConstraints.clone()); + baseConstraints.gridy = this.currentGridBagRow; // no incrementing + return baseConstraints; } + private void addLabel(CharFieldGui fieldGui, GridBagConstraints constraints) { constraints.gridx = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <azu...@us...> - 2007-10-25 18:41:49
|
Revision: 1080 http://obo.svn.sourceforge.net/obo/?rev=1080&view=rev Author: azurebrd Date: 2007-10-25 11:41:53 -0700 (Thu, 25 Oct 2007) Log Message: ----------- Took out and re-added WormAdapter.java Modified Paths: -------------- phenote/trunk/src/java/phenote/dataadapter/QueryableDataAdapterI.java Added Paths: ----------- phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java Removed Paths: ------------- phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java Modified: phenote/trunk/src/java/phenote/dataadapter/QueryableDataAdapterI.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/QueryableDataAdapterI.java 2007-10-24 23:20:08 UTC (rev 1079) +++ phenote/trunk/src/java/phenote/dataadapter/QueryableDataAdapterI.java 2007-10-25 18:41:53 UTC (rev 1080) @@ -21,5 +21,6 @@ public void commit(CharacterListI charList); /** The label that gets displayed on the db commit button */ public String getCommitButtonLabel(); + } Deleted: phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java 2007-10-24 23:20:08 UTC (rev 1079) +++ phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java 2007-10-25 18:41:53 UTC (rev 1080) @@ -1,843 +0,0 @@ -package phenote.dataadapter.worm; - -import java.util.regex.*; - -// add http://jdbc.postgresql.org/download/postgresql-8.2-504.jdbc4.jar to trunk/jars/ directory - -import java.util.ArrayList; -import java.util.List; - -import javax.swing.JOptionPane; - -import phenote.datamodel.CharFieldEnum; -import phenote.datamodel.CharacterListI; -import phenote.dataadapter.DataAdapterEx; -import phenote.dataadapter.QueryableDataAdapterI; -import phenote.dataadapter.CharacterListManager; - -import phenote.datamodel.CharacterI; -import phenote.datamodel.CharacterIFactory; -import phenote.datamodel.CharacterList; -import phenote.datamodel.Character; -import phenote.datamodel.CharFieldException; -import phenote.datamodel.TermNotFoundException; -import phenote.datamodel.CharField; - -import phenote.edit.EditManager; - -import java.sql.DriverManager; -import java.sql.Connection; -import java.sql.SQLException; -import java.sql.Statement; -import java.sql.ResultSet; -import java.sql.PreparedStatement; - - - - - -public class WormAdapter implements QueryableDataAdapterI { - - private List<String> queryableFields = new ArrayList<String>(2); - private List<String> queryableGroups = new ArrayList<String>(2); - - public WormAdapter() { init(); } - - public List<String> getQueryableGroups() { - return queryableGroups; - } - - public String getCommitButtonLabel() { - return "Commit To Worm DB"; - } - - 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"); - 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()) { - try { - if (chr.getValueString("RefID").equals(refID)) { return chr; } } - catch (CharFieldException e) { throw new DataAdapterEx(e); } - } - throw new DataAdapterEx("Reference "+refID+" not found"); - } - - public void commitReference(CharacterI cMain) { - try { - String refID = cMain.getTerm("Reference").getID(); - CharacterI cRef = getCharacterReference(refID); - String pub = cRef.getValueString("Pub"); - String person = cRef.getValueString("Person"); - String nbp = cRef.getValueString("NBP"); - String remark = cRef.getValueString("Paper Remark"); -// System.out.println("Pub "+pub+" Per "+person+" nbp "+nbp+" remark "+remark+" end"); - } catch (Exception e) { - System.out.println("Could not commit Reference from character: " + e); - } - } - - public void commit(CharacterListI charList) { -// String m = "Worm adapter commit not yet implemented."; -// JOptionPane.showMessageDialog(null,m,"Worm stub",JOptionPane.INFORMATION_MESSAGE); - Connection c = connectToDB(); - Statement s = null; - try { s = c.createStatement(); } - catch (SQLException se) { - System.out.println("We got an exception while creating a statement: that probably means we're no longer connected."); se.printStackTrace(); System.exit(1); } - for (CharacterI chr : charList.getList()) { -// System.out.println("Chr "+chr+" end"); - try { - commitReference(chr); - String allele = chr.getValueString("Object Name"); // get the allele value from the character, currently could have a column number - String pgdbid = chr.getValueString("Object Name"); // get the allele value from the character, currently could have a column number - 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 - if (colI < 1) { // if there are no columns, find the highest existing column and add 1 to make the next one - ResultSet rs = null; - try { rs = s.executeQuery("SELECT app_column FROM app_term WHERE joinkey = '"+joinkey+"' ORDER BY app_column DESC"); } - catch (SQLException se) { - System.out.println("We got an exception while executing our app_term query: that probably means our column SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { if (rs.next()) { if (rs.getInt(1) > colI) { colI = rs.getInt(1); } } colI++; } // get the next highest number column for that allele - catch (SQLException se) { - System.out.println("We got an exception while getting a column/term joinkey "+joinkey+" result:this shouldn't happen: we've done something really bad."); - se.printStackTrace(); System.exit(1); } } -// System.out.println( "Allele : "+allele+" end."); -// System.out.println( "Column : "+colI+" end."); -// String app_paper = chr.getValueString("Pub"); - String app_paper = chr.getTerm("Pub").getID(); - String postgres_table = "app_paper"; String postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_paper)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_paper); } -// System.out.println( "Pub : "+app_paper+" end."); - String app_curator = chr.getValueString("Curator"); - postgres_table = "app_curator"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_curator)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_curator); } -// System.out.println( "Curator : "+curator+" end."); - String app_person = chr.getValueString("Person"); - postgres_table = "app_person"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_person)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_person); } -// System.out.println( "Person : "+person+" end."); - String app_phenotype = chr.getValueString("NBP"); - postgres_table = "app_phenotype"; postgres_value = "No postgres value assigned"; -// System.out.println( "Phenotype Text Remark : "+app_phenotype+" end."); - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); -// System.out.println( "Phenotype Text Remark Postgres : "+postgres_value+" end."); - if (postgres_value.equals(app_phenotype)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_phenotype); } -// System.out.println( "Phenotype Text Remark : "+app_phenotype+" end."); - String app_remark = chr.getValueString("Paper Remark"); - postgres_table = "app_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_remark)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_remark); } -// System.out.println( "Reference Remark : "+remark+" end."); - String app_intx_desc = chr.getValueString("Genetic Interaction"); - postgres_table = "app_intx_desc"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_intx_desc)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_intx_desc); } -// System.out.println( "Genetic Interaction : "+genetic_interaction+" end."); - String app_term = chr.getValueString("Phenotype"); - postgres_table = "app_term"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_term)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_term); } -// System.out.println( "Phenotype : "+app_term+" end."); - String app_phen_remark = chr.getValueString("Phenotype Remark"); - postgres_table = "app_phen_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_phen_remark)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_phen_remark); } -// System.out.println( "Phenotype Remark : "+app_phen_remark+" end."); - String app_anat_term = chr.getValueString("Anatomy"); - postgres_table = "app_anat_term"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_anat_term)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_anat_term); } -// System.out.println( "Anatomy : "+app_anat_term+" end."); -// String app_entity = chr.getValueString("Entity"); -// postgres_table = "app_entity"; postgres_value = "No postgres value assigned"; -// postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); -// if (postgres_value.equals(app_entity)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_entity); } -// System.out.println( "Entity : "+app_entity+" end."); -// String app_quality = chr.getValueString("Quality"); -// postgres_table = "app_quality"; postgres_value = "No postgres value assigned"; -// postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); -// if (postgres_value.equals(app_quality)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_quality); } -// System.out.println( "Quality : "+app_quality+" end."); - String app_lifestage = chr.getValueString("Life Stage"); - postgres_table = "app_lifestage"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_lifestage)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_lifestage); } -// System.out.println( "Life Stage : "+app_lifestage+" end."); - String app_nature = chr.getValueString("Allele Nature"); - postgres_table = "app_nature"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_nature)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_nature); } -// System.out.println( "Allele Nature : "+app_nature+" end."); - String app_func = chr.getValueString("Functional Change"); - postgres_table = "app_func"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_func)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_func); } -// System.out.println( "Functional Change : "+app_func+" end."); - String app_temperature = chr.getValueString("Temperature"); - postgres_table = "app_temperature"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_temperature)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_temperature); } -// System.out.println( "Temperature : "+app_temperature+" end."); - String app_preparation = chr.getValueString("Treatment"); - postgres_table = "app_preparation"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_preparation)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_preparation); } -// System.out.println( "Treatment : "+app_preparation+" end."); - String app_penetrance = chr.getValueString("Penetrance"); - postgres_table = "app_penetrance"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_penetrance)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_penetrance); } -// System.out.println( "Penetrance : "+app_penetrance+" end."); - String app_percent = chr.getValueString("Penetrance Remark"); - postgres_table = "app_percent"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_percent)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_percent); } -// System.out.println( "Penetrance Remark : "+app_percent+" end."); - String app_range = chr.getValueString("Penetrance Range Start"); - postgres_table = "app_range"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_range)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_range); } -// // System.out.println( "Penetrance Range Start: "+app_range+" end."); -// String app_range = chr.getValueString("Penetrance Range End"); -// postgres_table = "app_range"; postgres_value = "No postgres value assigned"; -// postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); -// if (postgres_value.equals(app_range)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_range); } -// System.out.println( "Penetrance Range End : "+app_range+" end."); - String app_quantity = chr.getValueString("Quantity"); - postgres_table = "app_quantity"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_quantity)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_quantity); } -// System.out.println( "Quantity : "+app_quantity+" end."); - String app_quantity_remark = chr.getValueString("Quantity Remark"); - postgres_table = "app_quantity_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_quantity_remark)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_quantity_remark); } -// System.out.println( "Quantity Remark : "+app_quantity_remark+" end."); - String app_heat_sens = chr.getValueString("Heat Sensitive"); - postgres_table = "app_heat_sens"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_heat_sens)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_heat_sens); } -// System.out.println( "Heat Sensitive : "+app_heat_sens+" end."); - String app_heat_degree = chr.getValueString("Heat Sensitive Degree"); - postgres_table = "app_heat_degree"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_heat_degree)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_heat_degree); } -// System.out.println( "Heat Sensitive Degree : "+app_heat_degree+" end."); - String app_cold_sens = chr.getValueString("Cold Sensitive"); - postgres_table = "app_cold_sens"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_cold_sens)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_cold_sens); } -// System.out.println( "Cold Sensitive : "+app_cold_sens+" end."); - String app_cold_degree = chr.getValueString("Cold Sensitive"); - postgres_table = "app_cold_degree"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_cold_degree)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_cold_degree); } -// System.out.println( "Cold Sensitive Degree : "+app_cold_degree+" end."); - String app_mat_effect = chr.getValueString("Maternal Effect"); - postgres_table = "app_mat_effect"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_mat_effect)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_mat_effect); } -// System.out.println( "Maternal Effect : "+app_mat_effect+" end."); - String app_pat_effect = chr.getValueString("Paternal Effect"); - postgres_table = "app_pat_effect"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_pat_effect)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_pat_effect); } -// System.out.println( "Paternal Effect : "+app_pat_effect+" end."); - String app_genotype = chr.getValueString("Genotype"); - postgres_table = "app_genotype"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_genotype)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_genotype); } -// System.out.println( "Genotype : "+app_genotype+" end."); - String app_strain = chr.getValueString("Strain"); - postgres_table = "app_strain"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_strain)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_strain); } -// System.out.println( "Strain : "+app_strain+" end."); - String app_objrem = chr.getValueString("ObjRem"); - postgres_table = "app_obj_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - if (postgres_value.equals(app_objrem)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_objrem); } -// System.out.println( "Object Remark : "+app_obj_remark+" end."); - if (allele != null) { - int found_allele = 0; - ResultSet rs = null; // intialize postgres query result - try { rs = s.executeQuery("SELECT * FROM app_tempname WHERE app_tempname = '"+joinkey+"'"); } // find the allele that matches the queried allele - catch (SQLException se) { - System.out.println("We got an exception while executing our app_tempname query: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { -// default_value = rs.getString(4); -// System.out.println("Found "+joinkey+" allele in app_tempname."); - found_allele++; } } - catch (SQLException se) { - System.out.println("We got an exception while getting a app_tempname result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } - if (found_allele > 0) { - PreparedStatement ps = null; // intialize postgres insert - try { ps = c.prepareStatement("INSERT INTO app_tempname VALUES (?, ?)"); ps.setString(1, joinkey); ps.setString(2, allele); } - 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(); } // write to app_tempname, which is not what we really want, but we need to figure out the pubchunk thing to see what we're going to do - 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); } } } - else { - System.out.println("There is no allele for "+chr+" Character"); } - } catch (Exception e) { - System.out.println("Could not get terms from character: " + e); - } - - } // for (CharacterI chr : charList.getList()) - - 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) - } // public void commit(CharacterListI charList) - - private void updatePostgresCol(Connection c, String postgres_table, String joinkey, 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, colI); ps.setString(3, 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(); } // write to app_tempname, which is not what we really want, but we need to figure out the pubchunk thing to see what we're going to do - 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) - - // Returns the first substring in input that matches the pattern. Returns null if no match found. - // lifted from http://www.exampledepot.com/egs/java.util.regex/Greedy.html?l=rel - public static String find(String patternStr, CharSequence input) { - Pattern pattern = Pattern.compile(patternStr); - Matcher matcher = pattern.matcher(input); -// System.out.println("Pattern "+pattern+" end"); - if (matcher.find()) { return matcher.group(1); } - return null; - } - - private void init() { - // dont HAVE to use CharFieldEnum but it does enforce using same strings - // across different data adapters which is good to enforce - // the worm config needs to have "Pub" and "Object Name" - queryableFields.add(CharFieldEnum.PUB.getName()); // "Pub" -// queryableFields.add(CharFieldEnum.ALLELE.getName()); // "Allele" - queryableFields.add("Object Name"); // "Object Name" - // should their be a check that the current char fields have pub & allele? - queryableFields.add("NBP Date"); - queryableGroups.add("referenceMaker"); // populate reference obo for the main - queryableGroups.add("default"); // default last - } - /** return true if data adapter can query for the char field */ - public boolean isFieldQueryable(String field) { - return queryableFields.contains(field); - } - - private Connection connectToDB() { - System.out.println("Checking if Driver is registered with DriverManager."); // open postgres database connection - try { - Class.forName("org.postgresql.Driver"); - } catch (ClassNotFoundException cnfe) { - System.out.println("Couldn't find the driver!"); - System.out.println("Let's print a stack trace, and exit."); - cnfe.printStackTrace(); - System.exit(1); - } - System.out.println("Registered the driver ok, so let's make a connection."); - Connection c = null; - try { - // The second and third arguments are the username and password, - // respectively. They should be whatever is necessary to connect - // to the database. - // c = DriverManager.getConnection("jdbc:postgresql://andiamo.caltech.edu/testdb", "postgres", ""); - // c = DriverManager.getConnection("jdbc:postgresql://131.215.52.86:5432/testdb", "postgres", ""); // andiamo, if postgres is running there - c = DriverManager.getConnection("jdbc:postgresql://131.215.52.76:5432/testdb", "postgres", ""); // tazendra - // c = DriverManager.getConnection("jdbc:postgresql://localhost/testdb", "postgres", ""); // with /usr/local/pgsql/data/postgresql.conf set to localhost - //c = DriverManager.getConnection("jdbc:postgresql://localhost/booktown", "username", "password"); // sample - } catch (SQLException se) { - System.out.println("Couldn't connect: print out a stack trace and exit."); - se.printStackTrace(); - System.out.println("Couldn't connect: stack trace done."); - String getMessage = se.getMessage(); - getMessage = getMessage + " \nYour IP is not recognized by the postgres database, please contact he...@wo... if you're a valid Phenotype WormBase curator."; - JOptionPane.showMessageDialog(null,getMessage,"Postgres connection error",JOptionPane.INFORMATION_MESSAGE); -// Throwable throwCause = se.getCause(); -// String getCause = throwCause.toString(); -// JOptionPane.showMessageDialog(null,getCause,"getCause",JOptionPane.INFORMATION_MESSAGE); -// String m = "Your IP is not recognized by the postgres database, please contact he...@wo... if you're a valid Phenotype WormBase curator."; -// JOptionPane.showMessageDialog(null,m,"Worm stub",JOptionPane.INFORMATION_MESSAGE); - // System.exit(1); - // System.out.println("Couldn't connect: exit done."); - } - if (c != null) - System.out.println("Hooray! We connected to the database!"); - else - System.out.println("We should never get here."); - return c; - } // private Connection connectToDB - -// title = queryPostgresTitle(s, "wpa_title", pubID); -// name = queryPostgresName(s, "two_standardname", personID); - private String queryPostgresName(Statement s, String postgres_table, String personID) { - String joinkey = find("([0-9]+)", personID); // Find a WBPaper followed by any amount of digits - String name = null; - ResultSet rs = null; // intialize postgres query result - try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE joinkey = '"+joinkey+"' ORDER BY two_timestamp "); } - catch (SQLException se) { - System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { name = rs.getString(3); } } // assign the new term value - catch (SQLException se) { - System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } - return name; - } - private String queryPostgresTitle(Statement s, String postgres_table, String pubID) { - String joinkey = find("([0-9]+)", pubID); // Find a WBPaper followed by any amount of digits - String title = null; - ResultSet rs = null; // intialize postgres query result - try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE joinkey = '"+joinkey+"' ORDER BY wpa_timestamp "); } - catch (SQLException se) { - System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { title = rs.getString(2); } } // assign the new term value - catch (SQLException se) { - System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } - return title; - } - - private String queryPostgresCharacter(Statement s, String postgres_table, String default_value, String query, int boxI, int colI) { - // get the value corresponding to a phenote cell from a postgres table by column - ResultSet rs = null; // intialize postgres query result - // get the phenotype term in timestamp order where the allele and column number match - if (colI > 0) { - try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE joinkey = '"+query+"' AND app_column='"+colI+"' AND app_box='"+boxI+"' ORDER BY app_timestamp"); } - catch (SQLException se) { - System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { default_value = rs.getString(4); } } // assign the new term value - catch (SQLException se) { - System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } } - else if (boxI > 0) { - try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE joinkey = '"+query+"' AND app_box='"+boxI+"' ORDER BY app_timestamp"); } - catch (SQLException se) { - System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { default_value = rs.getString(3); } } // assign the new term value - catch (SQLException se) { - System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } } - else { - try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE joinkey = '"+query+"' ORDER BY app_timestamp"); } - catch (SQLException se) { - System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { default_value = rs.getString(2); } } // assign the new term value - catch (SQLException se) { - System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } } -// System.out.println("Added in function charList term "+query+" column "+colI+"."); // comment out later - if (default_value == null) { default_value = "postgres value is null"; } - if (default_value == "") { default_value = "postgres value is blank"; } - return default_value; - } - -// postgres_value = queryPostgresPapRemHist(s, postgres_table, postgres_value, pubID); - private String queryPostgresPapRemHist(Statement s, String postgres_table, String pubID) { - StringBuilder sb = new StringBuilder(); - ResultSet rs = null; // intialize postgres query result -// System.out.println("SELECT * FROM "+postgres_table+" WHERE app_wbpaper ~ '"+pubID+"' ORDER BY app_timestamp"); - try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE app_wbpaper ~ '"+pubID+"' ORDER BY app_timestamp"); } - catch (SQLException se) { - System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { sb.append(rs.getString(3)).append(" -- "); } } // append the new term value - catch (SQLException se) { - System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } - String pap_rem_hist = sb.toString(); -// System.out.println("pap_rem_hist "+pap_rem_hist+" is not null"); - if (pap_rem_hist == null) { pap_rem_hist = "postgres value is null"; } - if (pap_rem_hist == "") { pap_rem_hist = "postgres value is blank"; } - return pap_rem_hist; - } - - - 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 - - String pubID = null; String title = null; String personID = null; String name = null; String nbp = null; - - String postgres_table = "app_paper"; String postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); - String paper_match = find("(WBPaper[0-9]*)", postgres_value); // Find a WBPaper followed by any amount of digits - if (paper_match != null) { - postgres_value = paper_match; // query for this, otherwise keep the default value - pubID = paper_match; - title = queryPostgresTitle(s, "wpa_title", pubID); } -// c1.setValue("Pub",postgres_value); // assign the queried value - if (postgres_value == "No postgres value assigned") { } else { c1.setValue("Pub",postgres_value); } // assign the queried value -//System.out.println("pubID "+pubID+" box "+boxI+" is not null"); - postgres_table = "app_person"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); - String person_match = find("(WBPerson[0-9]*)", postgres_value); // Find a WBPerson followed by any amount of digits - if (person_match != null) { - postgres_value = person_match; // query for this, otherwise keep the default value - personID = person_match; - name = queryPostgresName(s, "two_standardname", personID); } - if (postgres_value == "No postgres value assigned") { } else { c1.setValue("Person",postgres_value); } // assign the queried value - postgres_table = "app_phenotype"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); - if (postgres_value != null) { nbp = postgres_value; } - c1.setValue("NBP",postgres_value); // assign the queried value - - if (pubID != null) { -// System.out.println("pubID "+pubID+" is not null"); - postgres_table = "app_paper_remark"; - postgres_value = queryPostgresPapRemHist(s, postgres_table, pubID); - c1.setValue("Paper Remark History",postgres_value); } // assign the queried value - - String refID = WormReferenceGroupAdapter.makeNameFromPubPersonNBP(pubID, title, personID, name, nbp); - refID = ":" + refID; - c1.setValue("RefID",refID); // assign the queried value - - charList.add(c1); // add the character to the character list - } - catch (TermNotFoundException e) { - System.out.println("Term Not Found Exception, assigning characters in queryPostgresCharacterReferenceList "+e.getMessage()); } - catch (CharFieldException e) { - System.out.println("Char Field Exception, assigning characters "+e.getMessage()); } - return charList; - } // private CharacterListI queryPostgresCharacterReferenceList(CharacterList charList, Statement s, String joinkey) - - 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 - - c1.setValue("Object Name",joinkey); // assign the allele and the column - String alleleColumn = joinkey+" - "+boxI+" - "+colI; - c1.setValue("PGDBID",alleleColumn); // assign the allele and the column - String postgres_table = "app_type"; String postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, 0, 0); - c1.setValue("Object Type",postgres_value); // assign the queried value - - postgres_value = "No postgres value assigned"; - postgres_table = "app_term"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - String phenotype_match = find("(WBPhenotype[0-9]*)", postgres_value); // Find a WBPhenotype followed by any amount of digits - if (phenotype_match != null) { postgres_value = phenotype_match; } // query for this, otherwise keep the default value - if (postgres_value == "No postgres value assigned") { } else { c1.setValue("Phenotype",postgres_value); } // assign the queried value -// c1.setValue("Phenotype",postgres_value); // assign the queried value - postgres_table = "app_intx_desc"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); - c1.setValue("Genetic Intx Desc",postgres_value); // assign the queried value - postgres_table = "app_curator"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Curator",postgres_value); // assign the queried value - postgres_table = "app_phen_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Phenotype Remark",postgres_value); // assign the queried value - postgres_table = "app_anat_term"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); -// c1.setValue("Anatomy",postgres_value); // this doesn't work, assigning whatever term name(s) is in postgres -// c1.setValue("Anatomy","WBbt:0004758"); // this works, assigning a term ID - postgres_table = "app_lifestage"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); -// c1.setValue("Life Stage",postgres_value); // assign the queried value - postgres_table = "app_nature"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Allele Nature",postgres_value); // assign the queried value - postgres_table = "app_func"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Functional Change",postgres_value); // assign the queried value - postgres_table = "app_temperature"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Temperature",postgres_value); // assign the queried value - postgres_table = "app_preparation"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Treatment",postgres_value); // assign the queried value - postgres_table = "app_penetrance"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Penetrance",postgres_value); // assign the queried value - postgres_table = "app_percent"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Penetrance Remark",postgres_value); // assign the queried value - postgres_table = "app_range"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Penetrance Range Start",postgres_value); // assign the queried value - postgres_table = "app_quantity"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Penetrance Range End",postgres_value); // assign the queried value - postgres_table = "app_quantity"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Quantity",postgres_value); // assign the queried value - postgres_table = "app_quantity_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Quantity Remark",postgres_value); // assign the queried value - postgres_table = "app_heat_sens"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Heat Sensitive",postgres_value); // assign the queried value - postgres_table = "app_heat_degree"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Heat Sensitive Degree",postgres_value); // assign the queried value - postgres_table = "app_cold_sens"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Cold Sensitive",postgres_value); // assign the queried value - postgres_table = "app_cold_degree"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Cold Sensitive Degree",postgres_value); // assign the queried value - postgres_table = "app_mat_effect"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Maternal Effect",postgres_value); // assign the queried value - postgres_table = "app_pat_effect"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Paternal Effect",postgres_value); // assign the queried value - postgres_table = "app_genotype"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Genotype",postgres_value); // assign the queried value - postgres_table = "app_strain"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("Strain",postgres_value); // assign the queried value - postgres_table = "app_obj_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); - c1.setValue("ObjRem",postgres_value); // assign the queried value - - - String pubID = null; - String title = null; - String personID = null; - String name = null; - String nbp = null; - postgres_table = "app_paper"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); - String paper_match = find("(WBPaper[0-9]*)", postgres_value); // Find a WBPaper followed by any amount of digits - if (paper_match != null) { postgres_value = paper_match; } // query for this, otherwise keep the default value - if (postgres_value == "No postgres value assigned") { } else { pubID = postgres_value; } // assign the queried value - postgres_table = "app_person"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); - String person_match = find("(WBPerson[0-9]*)", postgres_value); // Find a WBPerson followed by any amount of digits - if (person_match != null) { postgres_value = person_match; } // query for this, otherwise keep the default value - if (postgres_value == "No postgres value assigned") { } else { personID = postgres_value; } // assign the queried value - postgres_table = "app_phenotype"; postgres_value = "No postgres value assigned"; - nbp = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); - - if (pubID != null) { title = queryPostgresTitle(s, "wpa_title", pubID); } - if (personID != null) { name = queryPostgresName(s, "two_standardname", personID); } - - String refID = WormReferenceGroupAdapter.makeNameFromPubPersonNBP(pubID, title, personID, name, nbp); - refID = ":" + refID; - c1.setValue("Ref",refID); // assign the queried value - - charList.add(c1); // add the character to the character list - } - catch (TermNotFoundException e) { - System.out.println("Term Not Found Exception, assigning characters in queryPostgresCharacterMainList "+e.getMessage()); } - catch (CharFieldException e) { - System.out.println("Char Field Exception, assigning characters "+e.getMessage()); } - return charList; - } // private CharacterListI queryPostgresCharacterMainList(CharacterList charList, Statement s, String joinkey) - - public CharacterListI query(String group, String field, String query) throws DataAdapterEx { - - // something like this....? - // if (group.equals("default")) return queryForDefaultGroup(field,query) - // else if (group.equals("referenceMaker")) return queryForReferenceMaker(field,query); - // if (group.equals("default")) { System.out.println("Querying group default field "+field+" query "+query+" end"); } - // else if (group.equals("referenceMaker")) { System.out.println("Querying group referenceMaker field "+field+" query "+query+" end"); } - -// String m = "Worm adapter query not yet implemented. field: "+field+" query: "+query; -// JOptionPane.showMessageDialog(null,m,"Worm stub",JOptionPane.INFORMATION_MESSAGE); - - String alleleString = "Object Name"; // the query could be for Allele or Pub - String pubString = "Pub"; -// System.out.println("Querying field "+field+" query "+query+" end"); -// if (field.equals(alleleString)) { System.out.println("Yes Allele"); } else { System.out.println("Not Allele"); } - - CharacterListI charList = new CharacterList(); // create the CharacterList that we will return - - if (field.equals(alleleString)) { // if querying the allele, get allele data - Connection c = connectToDB(); - Statement s = null; - try { s = c.createStatement(); } - catch (SQLException se) { - System.out.println("We got an exception while creating a statement: that probably means we're no longer connected."); se.printStackTrace(); System.exit(1); } - - ResultSet rs = null; // intialize postgres query result -// String match = find("(.*) - [0-9]+ - [0-9]+", query); // Find a tempname followed by space - space number when query by postgres database ID instead of object name like it really should -// if (match != null) { query = match; } // query for this, otherwise keep the default value - String joinkey = query; - try { rs = s.executeQuery("SELECT * FROM app_tempname WHERE app_tempname = '"+joinkey+"'"); } // find the allele that matches the queried allele - catch (SQLException se) { - System.out.println("We got an exception while executing our app_tempname query: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } - int foundAllele = 0; - try { - while (rs.next()) { -// System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3)); // comment out later - foundAllele++; } } // if there's a result in postgres we have found an allele - catch (SQLException se) { - System.out.println("We got an exception while getting a tempname joinkey "+joinkey+" result:this shouldn't happen: we've done something really bad."); - se.printStackTrace(); System.exit(1); } - - if (foundAllele <= 0) { throw new DataAdapterEx("Worm query of "+joinkey+" of field "+field+" has no match in postgres"); } // if there is no match for the allele in postgres - else { - rs = null; int boxes = 0; int columns = 0; // the number of boxes ; columns - try { rs = s.executeQuery("SELECT app_box, app_column FROM app_term WHERE joinkey = '"+joinkey+"' ORDER BY app_column DESC"); } - catch (SQLException se) { - System.out.println("We got an exception while executing our app_term query: that probably means our column SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { - if (rs.getInt(1) > boxes) { boxes = rs.getInt(1); } // assign the highest number boxes for that allele to the number of boxes - if (rs.getInt(2) > columns) { columns = rs.getInt(2); } } } // assign the highest number column for that allele to the number of columns - catch (SQLException se) { - System.out.println("We got an exception while getting a column/term joinkey "+joinkey+" result:this shouldn't happen: we've done something really bad."); - se.printStackTrace(); System.exit(1); } -//System.out.println("there are "+boxes+" boxes for "+joinkey+" joinkey"); - for (int boxI=1; boxI<boxes+1; boxI++) { // for each of those columns - if (group.equals("default")) { // these values only go to the Main tab - for (int colI=1; colI<columns+1; colI++) { // for each of those columns - charList = queryPostgresCharacterMainList(group, charList, s, joinkey, boxI, colI); } } - else if (group.equals("referenceMaker")) { // these values only go to the referenceMaker tab -//System.out.println("querying box "+boxI+" for "+joinkey+" joinkey"); - charList = queryPostgresCharacterReferenceList(group, charList, s, joinkey, boxI, 0); } } - return charList; } // if there is a match - - } else if (field.equals(pubString)) { // if querying the publication, get paper data - Connection c = connectToDB(); - Statement s = null; - try { s = c.createStatement(); } - catch (SQLException se) { - System.out.println("We got an exception while creating a statement: that probably means we're no longer connected."); se.printStackTrace(); System.exit(1); } - Statement s2 = null; - try { s2 = c.createStatement(); } - catch (SQLException se) { - System.out.println("We got an exception while creating a statement: that probably means we're no longer connected."); se.printStackTrace(); System.exit(1); } - Statement s3 = null; - try { s3 = c.createStatement(); } - catch (SQLException se) { - System.out.println("We got an exception while creating a statement: that probably means we're no longer connected."); se.printStackTrace(); System.exit(1); } - - String match = find("(WBPaper[0-9]*)", query); // Find a WBPaper followed by any amount of digits - if (match != null) { query = match; } // query for this, otherwise keep the default value - int foundPaper = 0; // flag if there are any papers in postgres that match, otherwise give an error warn... [truncated message content] |
From: <nl...@us...> - 2007-10-24 23:20:15
|
Revision: 1079 http://obo.svn.sourceforge.net/obo/?rev=1079&view=rev Author: nlw Date: 2007-10-24 16:20:08 -0700 (Wed, 24 Oct 2007) Log Message: ----------- adding transcript from october webex meeting Added Paths: ----------- phenote/trunk/doc/phenote-website/irc_chat/transcripts/PWG_webex_100207.html Added: phenote/trunk/doc/phenote-website/irc_chat/transcripts/PWG_webex_100207.html =================================================================== --- phenote/trunk/doc/phenote-website/irc_chat/transcripts/PWG_webex_100207.html (rev 0) +++ phenote/trunk/doc/phenote-website/irc_chat/transcripts/PWG_webex_100207.html 2007-10-24 23:20:08 UTC (rev 1079) @@ -0,0 +1,634 @@ +10/02/2007 08:29:08 AM from Nicole to All Attendees: + hello +10/02/2007 08:29:56 AM from Nicole to All Attendees: + just waiting a few more minutes for some others +10/02/2007 08:30:38 AM from Nicole to All Attendees: + wasila... what group are you from? +10/02/2007 08:30:58 AM from Nicole to All Attendees: + hi melissa +10/02/2007 08:31:10 AM from melissaH to All Participants: + Hi! + +10/02/2007 08:31:36 AM from melissaH to All Participants: + Hi David + +10/02/2007 08:32:05 AM from Nicole to All Attendees: + hi. glad you all could make it to this new forum +10/02/2007 08:32:44 AM from melissaH to All Participants: + hey all, change your settings to all participants + +10/02/2007 08:33:14 AM from melissaH to All Participants: + (otherwise nicole can't read) + +10/02/2007 08:33:17 AM from Nicole to All Participants: + what does that change? +10/02/2007 08:33:18 AM from Nicole to All Participants: + oh. +10/02/2007 08:33:23 AM from Wasila Dahdul to All Participants: + ok +10/02/2007 08:33:28 AM from Nicole to All Participants: + hi there you are +10/02/2007 08:34:12 AM from Paula Mabee to Host (privately): + Hi - have you started? (am I late?) +10/02/2007 08:34:23 AM from Nicole to All Participants: + hi paula. nope, i'm waiting for jim...hoping he +10/02/2007 08:34:31 AM from Nicole to All Participants: + 'll be joining us in a few to present +10/02/2007 08:36:21 AM from Paula Mabee to All Participants: + are we all on video? I can see Nicole, but can you all see me? +10/02/2007 08:36:33 AM from Nicole to All Participants: + jim's having a couple of technical problems getting into webex... i'm helping him through it right now. +10/02/2007 08:37:08 AM from Wasila Dahdul to All Participants: + I can only see Nicole +10/02/2007 08:37:25 AM from Nicole to All Participants: + hi wasila. that's very wierd. you can't see other participants? +10/02/2007 08:37:38 AM from melissaH to Host (privately): + probably not very many of us have video + +10/02/2007 08:37:46 AM from Wasila Dahdul to All Participants: + I mean just the video...I can see everyone's chatting +10/02/2007 08:37:52 AM from melissaH to Host (privately): + but its fun to watch nicole interact with her computer..... + +10/02/2007 08:37:55 AM from Lisa Fong to All Participants: + I can't see other participants on video either + +10/02/2007 08:38:20 AM from Nicole to All Participants: + oh. not everyone has video. only a few have cameras build in to their computers. often we forget that its there. +10/02/2007 08:38:38 AM from David OS to All Participants: + you wouldn't want to see my ugly mug anyway :) + +10/02/2007 08:38:54 AM from Nicole to All Participants: + nice +10/02/2007 08:39:19 AM from melissaH to Host (privately): + I saw paula and wasila! but alas, not david + +10/02/2007 08:39:31 AM from Paula Mabee to All Participants: + I have a built in camera (in my MacBook Pro), so maybe I have to turn somethi -- oh - wasila and I and Nicole just flashed in front of my eyes +10/02/2007 08:40:04 AM from Nicole to All Participants: + ok...jim is trying one more thing... +10/02/2007 08:40:38 AM from Nicole to All Participants: + just curiously, how many of you are on intel macs? +10/02/2007 08:40:55 AM from Wasila Dahdul to All Participants: + I'm on an intel mac +10/02/2007 08:41:05 AM from Paula Mabee to All Participants: + I am too +10/02/2007 08:41:08 AM from Lisa Fong to All Participants: + I'm not + +10/02/2007 08:41:18 AM from melissaH to Host (privately): + not I + +10/02/2007 08:41:26 AM from melissaH to All Participants: + not I + +10/02/2007 08:42:17 AM from David OS to All Participants: + PC + +10/02/2007 08:42:29 AM from Nicole to All Participants: + ok... if we can't get jim on in a couple minutes, i might have to shadow his presentation and present for him... +10/02/2007 08:42:48 AM from Nicole to All Participants: + i don't want to hold you all up for too long here +10/02/2007 08:43:04 AM from Nicole to All Participants: + so i guess we could do a little administrative stuff while i'm waiting for jim. +10/02/2007 08:45:31 AM from Nicole to All Participants: + how do you all feel about changing the day or time of this meeting. right now it is set for first tuesday at 8:30, but there's a couple of conflicting phone calls at the same time. +10/02/2007 08:45:43 AM from Nicole to All Participants: + perhaps to a wednesday morning? +10/02/2007 08:46:52 AM from David OS to All Participants: + Thursday better for me. + +10/02/2007 08:46:56 AM from Nicole to All Participants: + like if we did 'first wednesday' morning? +10/02/2007 08:47:04 AM from Nicole to All Participants: + sure, thursday works too. +10/02/2007 08:47:27 AM from melissaH to All Participants: + thursday is good for me too. weds would have to be later. + +10/02/2007 08:47:43 AM from Lisa Fong to All Participants: + either Wed. or Thurs. works for me + +10/02/2007 08:47:47 AM from Wasila Dahdul to All Participants: + I am ok with Wed or Thurs +10/02/2007 08:48:32 AM from Nicole to All Participants: + okay. hilmar, i'm going to make you presenter. +10/02/2007 08:49:13 AM from Nicole to All Participants: + okay. hilmar, to start sharing the presentation, you hyave to select share->presentation or share->desktop. then you can go through the slides. +10/02/2007 08:49:34 AM from Nicole to All Participants: + you can continue to chat here, or you can write messages over the presentation +10/02/2007 08:49:43 AM from Hilmar Lapp to All Participants: + I know, but Jim is trying to use a different computer +10/02/2007 08:49:56 AM from Hilmar Lapp to All Participants: + If that doesn't work he'll present from my machine +10/02/2007 08:49:57 AM from mark to All Participants: + sorry im late - whats wed or thurs? +10/02/2007 08:50:13 AM from melissaH to All Participants: + the beginnings of rescheduling this meeting + +10/02/2007 08:50:15 AM from Nicole to All Participants: + hi mark. we're discussing moving the meeting because there's some conflicting phone calls +10/02/2007 08:50:28 AM from mark to All Participants: + wed or thurs is good for me +10/02/2007 08:51:05 AM from Paula Mabee to All Participants: + yes, Wed or Th fine for me too +10/02/2007 08:51:10 AM from Nicole to All Participants: + great. i will make sure that the webex is free. it seems like thurs might work for more of you. iwill check the webex calendar, and then send out notice. i'm hoping to move it to 9am, instead of 8am\ +10/02/2007 08:51:27 AM from Nicole to All Participants: + ( a half-hour) +10/02/2007 08:52:37 AM from Hilmar Lapp to All Participants: + It looks we' +10/02/2007 08:52:43 AM from Hilmar Lapp to All Participants: + re ready to present +10/02/2007 08:52:46 AM from melissaH to All Participants: + (theres oboedit meeting at 9:30 on thursdays) + +10/02/2007 08:52:48 AM from mark to All Participants: + is this a one time move or a permanent move? +10/02/2007 08:52:50 AM from Hilmar Lapp to All Participants: + shouldn't there be some audio too? +10/02/2007 08:53:37 AM from Nicole to All Participants: + hilmar - no audio +10/02/2007 08:53:40 AM from Nicole to All Participants: + mark - perm +10/02/2007 08:54:35 AM from Hilmar Lapp to All Participants: + can you guys see my desktop? +10/02/2007 08:54:46 AM from David OS to All Participants: + yep + +10/02/2007 08:55:11 AM from melissaH to All Participants: + yes + +10/02/2007 08:55:13 AM from Hilmar Lapp to All Participants: + so Jim's going to demo the features now - are we ready? +10/02/2007 08:55:21 AM from Nicole to All Participants: + yep +10/02/2007 08:55:33 AM from Hilmar Lapp to All Participants: + hi, this is Jim +10/02/2007 08:55:37 AM from Nicole to All Participants: + hi jim +10/02/2007 08:55:45 AM from Hilmar Lapp to All Participants: + sorry about the delay! +10/02/2007 08:55:58 AM from melissaH to All Participants: + your screen is very small + +10/02/2007 08:56:38 AM from Hilmar Lapp to All Participants: + can that be adjusted? +10/02/2007 08:56:55 AM from David OS to All Participants: + Might be bigger display for use if you share phenote as application rather than whole desktop? + +10/02/2007 08:57:08 AM from Nicole to All Participants: + maybe +10/02/2007 08:57:45 AM from Hilmar Lapp to All Participants: + how is that? +10/02/2007 08:57:53 AM from Hilmar Lapp to All Participants: + sharing Phenote now +10/02/2007 08:58:30 AM from Hilmar Lapp to All Participants: + is that working for people - should I begin? +10/02/2007 08:58:41 AM from melissaH to All Participants: + I see all green..hang on, maybe a setting? + +10/02/2007 08:58:49 AM from mark to All Participants: + i see all green +10/02/2007 08:58:57 AM from Wasila Dahdul to All Participants: + yep, all i see is green +10/02/2007 08:58:57 AM from yvonne to All Participants: + I also see only green + +10/02/2007 08:59:19 AM from Hilmar Lapp to All Participants: + I will switch back to desktop +10/02/2007 08:59:58 AM from melissaH to All Participants: + I see you now + +10/02/2007 08:59:59 AM from Hilmar Lapp to All Participants: + how is that? +10/02/2007 09:00:13 AM from yvonne to All Participants: + much better thank you + +10/02/2007 09:00:38 AM from Hilmar Lapp to All Participants: + I will show you the "Specimen List" +10/02/2007 09:00:38 AM from melissaH to All Participants: + btw, for those of you who might still be typing in that little box, click on the chat icon (word bubble icon) + +10/02/2007 09:01:06 AM from David OS to All Participants: + zoom in menu under sharing also helps + +10/02/2007 09:01:17 AM from Paula Mabee to All Participants: + phenote is weirdly sliding around my screen +10/02/2007 09:01:38 AM from Hilmar Lapp to All Participants: + the Specimen List shows a subset of the fields on the main window +10/02/2007 09:02:00 AM from Hilmar Lapp to All Participants: + a taxonomic publication will typically cover a set list of specimens +10/02/2007 09:02:05 AM from melissaH to All Participants: + oh yes, thanks david + +10/02/2007 09:02:28 AM from Hilmar Lapp to All Participants: + each specimen is used over and over again for different characters +10/02/2007 09:02:32 AM from melissaH to All Participants: + we've lost the application now, or at least I have + +10/02/2007 09:02:41 AM from mark2 to All Participants: + yea i dont have it +10/02/2007 09:02:43 AM from yvonne to All Participants: + me too + +10/02/2007 09:02:52 AM from Hilmar Lapp to All Participants: + better? +10/02/2007 09:03:05 AM from melissaH to All Participants: + I can see the right half now + +10/02/2007 09:03:08 AM from yvonne to All Participants: + yes + +10/02/2007 09:03:09 AM from Hilmar Lapp to All Participants: + and each character may apply to many specimens +10/02/2007 09:03:28 AM from Hilmar Lapp to All Participants: + so the specimen list lets the curator enter each specimen and then use them repeatedly +10/02/2007 09:03:34 AM from Hilmar Lapp to All Participants: + I'll open some data +10/02/2007 09:03:37 AM from Wasila Dahdul to All Participants: + my view of the desktop is very large - how do I zoom out? +10/02/2007 09:03:53 AM from mark2 to All Participants: + yea i can only see a corner of the screen +10/02/2007 09:04:10 AM from Paula Mabee to All Participants: + I can't see Hilmar's full screen. Is there a setting I need to choose? +10/02/2007 09:04:11 AM from melissaH to All Participants: + little down arrow, then view, then change % + +10/02/2007 09:04:58 AM from Nicole to All Participants: + much better! +10/02/2007 09:05:03 AM from yvonne to All Participants: + that's great thanks! + +10/02/2007 09:05:05 AM from Hilmar Lapp to All Participants: + I lowered Hilmar's resolutino +10/02/2007 09:05:09 AM from Hilmar Lapp to All Participants: + he has a huge screen +10/02/2007 09:05:12 AM from Paula Mabee to All Participants: + wonderful now +10/02/2007 09:05:19 AM from David OS to All Participants: + much better. + +10/02/2007 09:05:31 AM from Hilmar Lapp to All Participants: + good +10/02/2007 09:05:33 AM from Hilmar Lapp to All Participants: + you can see the list of specimens now +10/02/2007 09:05:34 AM from Wasila Dahdul to All Participants: + yes, now i can see everything +10/02/2007 09:05:44 AM from Lisa Fong to All Participants: + yes, much better + +10/02/2007 09:05:54 AM from mark to All Participants: + yes +10/02/2007 09:06:10 AM from melissaH to All Participants: + much better + +10/02/2007 09:06:24 AM from Hilmar Lapp to All Participants: + the curator can check a box next to the specimen they want to annotate, and then generate a character with the specimen info pre-filled in on the main window +10/02/2007 09:07:26 AM from Hilmar Lapp to All Participants: + if multiple specimens have the same phenotype, you can check more buttons, and they will all be selected after copying to main window +10/02/2007 09:08:14 AM from Hilmar Lapp to All Participants: + there are a few features for changing the selection... +10/02/2007 09:08:44 AM from mark to All Participants: + cool! +10/02/2007 09:08:50 AM from Hilmar Lapp to All Participants: + often the curator will want to apply the same phenotype to a group of related specimens +10/02/2007 09:08:58 AM from Hilmar Lapp to All Participants: + so we can enter a phylogenetic tree +10/02/2007 09:09:39 AM from Hilmar Lapp to All Participants: + the taxa in the tree are IDs from the teleost taxonomic ontology +10/02/2007 09:10:29 AM from Hilmar Lapp to All Participants: + I borrowed the tree code from JEBL - the Java Evolutionary Biology Library +10/02/2007 09:10:43 AM from Hilmar Lapp to All Participants: + you can select a node, and the choose the matching specimens.... +10/02/2007 09:11:02 AM from Hilmar Lapp to All Participants: + so those specimens are now checked off +10/02/2007 09:11:12 AM from melissaH to All Participants: + Wow that is so cool! + +10/02/2007 09:11:39 AM from yvonne to All Participants: + so very cool! I really like the phylogeny tree functions. + +10/02/2007 09:11:40 AM from Nicole to All Participants: + very nice +10/02/2007 09:11:49 AM from Hilmar Lapp to All Participants: + only other thing to show maybe is the filter +10/02/2007 09:11:54 AM from mark to All Participants: + yea cool +10/02/2007 09:12:15 AM from Hilmar Lapp to All Participants: + right now it just matches text in any column +10/02/2007 09:12:27 AM from Hilmar Lapp to All Participants: + our curators would like it to be ontology-enabled +10/02/2007 09:12:47 AM from Hilmar Lapp to All Participants: + so we could choose a term and see rows that match subclasses of that term +10/02/2007 09:13:10 AM from melissaH to All Participants: + (this would assume a good fish ontology......) + +10/02/2007 09:13:29 AM from Nicole to All Participants: + yes, ontology enabled would be great. could also apply to phenotypes too +10/02/2007 09:13:35 AM from Hilmar Lapp to All Participants: + I think that covers the features we've added so far +10/02/2007 09:13:37 AM from Nicole to All Participants: + (PATO) +10/02/2007 09:13:52 AM from Hilmar Lapp to All Participants: + yeah, I would like you to be able to choose which column to search on +10/02/2007 09:14:01 AM from Nicole to All Participants: + nice +10/02/2007 09:14:06 AM from Nicole to All Participants: + me likey +10/02/2007 09:14:15 AM from mark to All Participants: + yea nice +10/02/2007 09:14:28 AM from Hilmar Lapp to All Participants: + any comments from Paula or Wasila? +10/02/2007 09:14:44 AM from Hilmar Lapp to All Participants: + (they are using this now) +10/02/2007 09:14:48 AM from Nicole to All Participants: + one feature i've been tinking of adding is the ability to fetch an abstract from pubmed given an id or a author set. would that be useful? +10/02/2007 09:14:52 AM from melissaH to All Participants: + I couldn't see where you were typing to do the filter...sometimes webex goes by too fast. + +10/02/2007 09:14:52 AM from Lisa Fong to All Participants: + i'm sorry, but i need to get going to a class...thank you everyone + +10/02/2007 09:15:06 AM from Nicole to All Participants: + thanks lisa! +10/02/2007 09:15:09 AM from Wasila Dahdul to All Participants: + looks great and works smoothly so far +10/02/2007 09:15:12 AM from Hilmar Lapp to All Participants: + okay - it's on the bottom near the buttons +10/02/2007 09:15:17 AM from Paula Mabee to All Participants: + No, you've done a nice job of explaining. You could show off some of the phylogeny formatting features though - that may have gone quickly. The phylogeny taxon chooser feature really is great. +10/02/2007 09:15:35 AM from melissaH to All Participants: + oh I see, and you could eventually have some toggle for the different fields? + +10/02/2007 09:15:42 AM from Hilmar Lapp to All Participants: + yes +10/02/2007 09:15:48 AM from melissaH to All Participants: + very nice + +10/02/2007 09:15:56 AM from Hilmar Lapp to All Participants: + and make the field be an ontology term-completer +10/02/2007 09:16:47 AM from mark to All Participants: + yea i didt quite get how the phylogeny ended up +10/02/2007 09:16:53 AM from Wasila Dahdul to All Participants: + oh that's cool - i didn't know you could add labels to the tree! +10/02/2007 09:17:05 AM from Hilmar Lapp to All Participants: + yes +10/02/2007 09:17:41 AM from Wasila Dahdul to All Participants: + that will make selecting nodes easier visually +10/02/2007 09:17:53 AM from Hilmar Lapp to All Participants: + Mark - you mean how it selects specimens? +10/02/2007 09:17:53 AM from Paula Mabee to All Participants: + could you show them how to enter a tree in Newick and then draw? E.g. human chimp gorilla? +10/02/2007 09:17:55 AM from Hilmar Lapp to All Participants: + okay +10/02/2007 09:17:59 AM from mark to All Participants: + yea - how does it then manifest in the other window? +10/02/2007 09:18:25 AM from Hilmar Lapp to All Participants: + (press return after inputting) +10/02/2007 09:19:21 AM from Hilmar Lapp to All Participants: + when you hit apply selection, it looks for specimens with matching taxon names +10/02/2007 09:19:27 AM from Hilmar Lapp to All Participants: + actually taxon ontology IDs +10/02/2007 09:19:55 AM from Hilmar Lapp to All Participants: + that one shouldn't be matching! :-) +10/02/2007 09:20:46 AM from mark to All Participants: + oh i see it then selects in template the taxon selected and its descendants? +10/02/2007 09:21:05 AM from Hilmar Lapp to All Participants: + it actually just matches based on the selected tips +10/02/2007 09:21:11 AM from Hilmar Lapp to All Participants: + right now +10/02/2007 09:21:21 AM from Wasila Dahdul to All Participants: + you can also de-select some of the descendents (selected tips) +10/02/2007 09:21:25 AM from Hilmar Lapp to All Participants: + but in the tree when you select an ancestor it auto-selects the tips +10/02/2007 09:21:50 AM from mark to All Participants: + oh right as the tips are the things that matter +10/02/2007 09:22:15 AM from Hilmar Lapp to All Participants: + the specimen list should only have species in it, which should be the tree tips +10/02/2007 09:22:42 AM from mark to All Participants: + so is this all being used at the moment? +10/02/2007 09:23:06 AM from mark to All Participants: + oh cool +10/02/2007 09:23:15 AM from Hilmar Lapp to All Participants: + yes, Wasila and Paula have been entering some data, I think mostly for testing +10/02/2007 09:23:27 AM from Hilmar Lapp to All Participants: + we are still getting the taxonomic ontology going +10/02/2007 09:23:36 AM from Hilmar Lapp to All Participants: + the one installed now is a small test version +10/02/2007 09:23:57 AM from mark to All Participants: + i would love to be cc'd on any phenote feedback +10/02/2007 09:24:14 AM from Paula Mabee to All Participants: + Wasila is full time scientific curator on this project and John Lundberg is part time. They are entering most of the data at the moment. We are all working to make sure that the concepts we want reflected in the db are working +10/02/2007 09:24:17 AM from mark to All Participants: + i guess thats where tracker items for phenotemapper are coming from +10/02/2007 09:24:23 AM from mark to All Participants: + which is great! +10/02/2007 09:24:46 AM from Hilmar Lapp to All Participants: + yep, I suggested to Wasila to start using the tracker +10/02/2007 09:24:48 AM from Wasila Dahdul to All Participants: + yes, i'll be sure to post to the Phenote Tracker +10/02/2007 09:25:07 AM from Paula Mabee to All Participants: + if anyone wants them, we could send you our first curated file, Newick tree, and specimen list so they can play with them +10/02/2007 09:25:32 AM from mark to All Participants: + so wasila how are you finding phenote - how is it? +10/02/2007 09:25:37 AM from mark to All Participants: + and paula +10/02/2007 09:26:07 AM from Wasila Dahdul to All Participants: + It's been very useful. Jim has been very responsive in making updates and changes +10/02/2007 09:26:16 AM from Paula Mabee to All Participants: + seems great so far! +10/02/2007 09:26:23 AM from mark to All Participants: + yea jim has really added a lot of great stuff +10/02/2007 09:26:55 AM from Paula Mabee to All Participants: + is Jim on (with Hilmar)? +10/02/2007 09:27:03 AM from Hilmar Lapp to All Participants: + yes - I am actually Jim +10/02/2007 09:27:10 AM from Paula Mabee to All Participants: + !!! hi! +10/02/2007 09:27:18 AM from Hilmar Lapp to All Participants: + I couldn't get webex working on my computer for some reason +10/02/2007 09:27:43 AM from mark to All Participants: + any issues with phenote you wanna chat about? +10/02/2007 09:28:16 AM from Hilmar Lapp to All Participants: + our group is looking forward to the work on the temporary term requester +10/02/2007 09:28:22 AM from Hilmar Lapp to All Participants: + I haven't told them much about it yet +10/02/2007 09:28:27 AM from mark to All Participants: + nicole is working on that +10/02/2007 09:28:35 AM from mark to All Participants: + nicole you wanna discuuss +10/02/2007 09:28:48 AM from Nicole to All Participants: + there's some backend stuff that needs to get resolved... +10/02/2007 09:28:54 AM from Wasila Dahdul to All Participants: + yes it will be useful to have a "place holder" for terms still in discussion on trackers +10/02/2007 09:29:24 AM from Nicole to All Participants: + we're needing to discuss some of the policy details with some of the other pontology producers. +10/02/2007 09:29:25 AM from Hilmar Lapp to All Participants: + Hilmar and I (Jim) will have to run in a few minutes +10/02/2007 09:30:12 AM from Hilmar Lapp to All Participants: + thanks everybody for your patience in getting started +10/02/2007 09:30:22 AM from Nicole to All Participants: + but the idea is that you can suggest a new term/def/other info and then it would get submitted to the particular ontology tracker that is appropriate, and then you'd get a temporary ID. ... +10/02/2007 09:30:25 AM from Wasila Dahdul to All Participants: + thans for the presentation - great to see it in action +10/02/2007 09:30:32 AM from mark to All Participants: + melissa /david/yvonne - any interest in the templater? +10/02/2007 09:30:54 AM from Hilmar Lapp to All Participants: + (didn't mean to jump in the middle of Nicole's explanation) +10/02/2007 09:30:59 AM from Nicole to All Participants: + once the ontology curators resolve the issue, then the temporary term will get obsoleted and then replaced by the permanent term. +10/02/2007 09:31:04 AM from Nicole to All Participants: + (no prob) +10/02/2007 09:31:05 AM from mark to All Participants: + sorry nicole go ahead +10/02/2007 09:31:19 AM from Nicole to All Participants: + and hopefully this will be all automatic. +10/02/2007 09:31:27 AM from Wasila Dahdul to All Participants: + so you would submit the new term via Phenote (not directly to the tracker website)? +10/02/2007 09:31:36 AM from Nicole to All Participants: + we're trying to figure out how to do this without having to have everyone have a sourceforge account +10/02/2007 09:31:47 AM from yvonne to All Participants: + that would swell! + +10/02/2007 09:32:10 AM from Nicole to All Participants: + right, you'd submit with a little interface in phenote, and there'd be some under-the-hood delagating the term to the appropriate ontology +10/02/2007 09:32:29 AM from Wasila Dahdul to All Participants: + very cool! +10/02/2007 09:33:06 AM from Hilmar Lapp to All Participants: + okay, we will need to go - if any other groups are interested in using the character templating functionality (specimen list), let me know +10/02/2007 09:33:19 AM from Nicole to All Participants: + its probably 1-2 months out... i'll send out a link you can play with a version that's been put together over the web, you can send back comments, and we can integrate the interface directly into phenote. +10/02/2007 09:33:21 AM from Hilmar Lapp to All Participants: + we could talk about any adapting needed +10/02/2007 09:33:22 AM from melissaH to All Participants: + yes I agree it could be very helpful. However, I would worry about a number of things. + +10/02/2007 09:33:30 AM from Nicole to All Participants: + ok...thanks so much jim! +10/02/2007 09:33:36 AM from Hilmar Lapp to All Participants: + bye, thank you +10/02/2007 09:33:44 AM from Nicole to All Participants: + (jim - i think suzi will be really interested in this functionality!) +10/02/2007 09:33:45 AM from mark to All Participants: + thanks +10/02/2007 09:33:45 AM from melissaH to All Participants: + bye jim, fantastic work! + +10/02/2007 09:33:52 AM from Wasila Dahdul to All Participants: + thanks jim +10/02/2007 09:33:52 AM from Hilmar Lapp to All Participants: + okay, good +10/02/2007 09:33:58 AM from David OS to All Participants: + cheers jim + +10/02/2007 09:34:03 AM from Paula Mabee to All Participants: + bye and thanks! +10/02/2007 09:34:04 AM from melissaH to All Participants: + its really nice to see it take off after all our meetings dreaming of these very functions + +10/02/2007 09:34:05 AM from yvonne to All Participants: + bye jim + +10/02/2007 09:34:34 AM from Nicole to All Participants: + ok...and last thing. i'll send out emails about moving the meeting to the first thursday of the month. you'll see those emails soon. +10/02/2007 09:34:44 AM from Nicole to All Participants: + also, how do you like the webex forum? +10/02/2007 09:35:34 AM from melissaH to All Participants: + so, my concerns are: 1) if the term is rejected by the ontology editor 2) if the term is misplaced in the ontology 3) if the term is already in the onotology 3) coordination between terms requested in phenote vs. tracker only, theres probably more... sorry for being a thorn + +10/02/2007 09:35:53 AM from David OS to All Participants: + I agree with Melissa - the term request thing needs more discussion - especially anything that allows temporary place-holder terms + +10/02/2007 09:35:57 AM from melissaH to All Participants: + love webex when it works + +10/02/2007 09:36:48 AM from yvonne to All Participants: + webex is just fine with me + +10/02/2007 09:36:53 AM from Wasila Dahdul to All Participants: + i'd like to hear more about hte temporary tracker discussion - will you all have it on teh phentoe mailing list? +10/02/2007 09:36:55 AM from David OS to All Participants: + Guess it might be OK as long as those place-holders never get an ID and therefore are not loadable + +10/02/2007 09:37:03 AM +10/02/2007 09:37:22 AM from Nicole to All Participants: + yeah...maybe we should take this to the list... that way all these issues can get discussed +10/02/2007 09:38:08 AM from Paula Mabee to All Participants: + Are any/all of you going to the Biocurator meeting? Do you have any Phenote togetherness plans? +10/02/2007 09:38:17 AM from mark to All Participants: + im going +10/02/2007 09:38:27 AM from Wasila Dahdul to All Participants: + i'll be there +10/02/2007 09:38:30 AM from melissaH to All Participants: + yvonne and I are going + +10/02/2007 09:38:31 AM from Nicole to All Participants: + oh! yes. there's going to be a phenote during the ontology best practices workshop. +10/02/2007 09:38:34 AM from yvonne to All Participants: + thanks mel + +10/02/2007 09:38:42 AM from Paula Mabee to All Participants: + Jim and John are going (as am I) +10/02/2007 09:38:52 AM from mark to All Participants: + we should probably have a phenote pow wow of some sort +10/02/2007 09:38:56 AM from Nicole to All Participants: + and we'll have a poster too +10/02/2007 09:38:58 AM from mark to All Participants: + much easier to chat in person +10/02/2007 09:39:01 AM from David OS to All Participants: + I'll be there + +10/02/2007 09:39:16 AM from Nicole to All Participants: + i would love that... perhaps during a happy hour after the sat workshop? +10/02/2007 09:39:30 AM from Paula Mabee to All Participants: + is phenote pow wow = "phenote during the ontology best practices workshop"? +10/02/2007 09:39:31 AM from yvonne to All Participants: + that sounds good + +10/02/2007 09:39:39 AM from melissaH to All Participants: + nice + +10/02/2007 09:39:52 AM from Paula Mabee to All Participants: + ok - happy hour too, I get it +10/02/2007 09:39:53 AM from mark to All Participants: + no the workshop will just be a quick demo +10/02/2007 09:40:01 AM from mark to All Participants: + wont be time to get into it as much i think +10/02/2007 09:40:06 AM from Nicole to All Participants: + right +10/02/2007 09:40:56 AM from Nicole to All Participants: + okay. then i'm going to move the term request policy discussion to the list. and i'll send out notices about any change to the meeting as well. +10/02/2007 09:41:16 AM from Nicole to All Participants: + also, if we change the timeslot, we'd have a teleconference phone number available. +10/02/2007 09:42:30 AM from mark2 to All Participants: + sounds good +10/02/2007 09:42:37 AM from Nicole to All Participants: + ok...great then. thank you all for coming. i'll also put up some instructions if you want to play with his configuration and practice files +10/02/2007 09:42:45 AM from David OS to All Participants: + OK. That chat actually works well for me though. Means I can do this in the main office + +10/02/2007 09:43:03 AM from melissaH to All Participants: + I like the chat too. + +10/02/2007 09:43:15 AM from yvonne to All Participants: + me too - I like the chat.. + +10/02/2007 09:43:38 AM from Nicole to All Participants: + ok. sounds goo. +10/02/2007 09:43:53 AM from David OS to All Participants: + OK - see you in San Jose... + +10/02/2007 09:44:18 AM from Wasila Dahdul to All Participants: + ok, thanks! +10/02/2007 09:44:24 AM from Nicole to All Participants: + great... see you soon! +10/02/2007 09:44:29 AM from Paula Mabee to All Participants: + bye, thanks! +10/02/2007 09:44:29 AM from melissaH to All Participants: + bye! + +10/02/2007 09:44:35 AM from yvonne to All Participants: + bye! + +10/02/2007 09:44:36 AM from mark2 to All Participants: + bye This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-24 17:09:09
|
Revision: 1078 http://obo.svn.sourceforge.net/obo/?rev=1078&view=rev Author: mgibson Date: 2007-10-24 10:09:08 -0700 (Wed, 24 Oct 2007) Log Message: ----------- proforma now parses multiple alleles & abberations also updated FB_camcur.cfg to work with new proforma parser/button Modified Paths: -------------- phenote/trunk/conf/FB_camcur.cfg phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java Modified: phenote/trunk/conf/FB_camcur.cfg =================================================================== --- phenote/trunk/conf/FB_camcur.cfg 2007-10-24 01:13:44 UTC (rev 1077) +++ phenote/trunk/conf/FB_camcur.cfg 2007-10-24 17:09:08 UTC (rev 1078) @@ -33,10 +33,10 @@ interface="default" destination_field="GT" group_adapter="phenote.dataadapter.fly.FlyGenotypeGroupAdapter"/> - <ns:field name="Locus Allele 1" datatag="LA1" groups="genotypeMaker"/> - <ns:field name="Locus Allele 2" datatag="LA2" groups="genotypeMaker"/> - <ns:field name="Non Locus Alleles" datatag="NLA" groups="genotypeMaker"/> - <ns:field name="Accesories" datatag="ACC" groups="genotypeMaker"/> + <ns:field name="Locus Allele 1" datatag="LA1" type="TERM" groups="genotypeMaker"/> + <ns:field name="Locus Allele 2" datatag="LA2" type="TERM" groups="genotypeMaker"/> + <ns:field name="Non Locus Alleles" datatag="NLA" type="TERM" groups="genotypeMaker"/> + <ns:field name="Accesories" datatag="ACC" type="TERM" groups="genotypeMaker"/> <!-- MAIN/DEFAULT TAB --> Modified: phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java 2007-10-24 01:13:44 UTC (rev 1077) +++ phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java 2007-10-24 17:09:08 UTC (rev 1078) @@ -100,23 +100,38 @@ set obosession for desitnation fields */ private void parseProforma(File file) throws FileNotFoundException, IOException { OBOSession ses = new OBOSessionImpl(); // maybe add to main obo sess? - Pattern p = Pattern.compile("^\\! GA1a\\..*\\*A \\:(.*)"); + Pattern allelePat = Pattern.compile("^\\! GA1a\\..*\\*A \\:(.*)"); + Pattern abPat = Pattern.compile("^\\! A1a\\..*\\*a \\:(.*)"); LineNumberReader l = new LineNumberReader(new FileReader(file)); for (String line = l.readLine(); line != null; line = l.readLine()) { - // check if have allele - Matcher m = p.matcher(line); - if (m.matches()) { - LOG.debug("Got a match "+line+" allele "+m.group(1)); - // get allele - String allele = m.group(1); + // ALLELES - if pattern matches, makes allele oboClasses & adds to ses + matchAndAddToSession(line,allelePat,ses); + + // ABBERATIONS + matchAndAddToSession(line,abPat,ses); + } + //getDestinationOntology().setOboSession(ses); + setOboSession(ses); + } + + /** check if pattern matches - and if so get groups, split with " # " + make obo classes, and add them to obo session, if doesnt match then + nothing added - used for allele & abberation patterns */ + private void matchAndAddToSession(String line, Pattern p, OBOSession os) { + Matcher m = p.matcher(line); + if (m.matches()) { + LOG.debug("Got a match "+line+" allele "+m.group(1)); + // get allele + String alleles = m.group(1); + Pattern delim = Pattern.compile(" # "); + String[] alleleArray = delim.split(alleles); + for (String allele : alleleArray) { // make obo class from allele OBOClass c = makeAlleleTerm(allele); // add to obo session - ses.addObject(c); + os.addObject(c); } } - //getDestinationOntology().setOboSession(ses); - setOboSession(ses); } private OBOClass makeAlleleTerm(String allele) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-24 01:13:40
|
Revision: 1077 http://obo.svn.sourceforge.net/obo/?rev=1077&view=rev Author: cmungall Date: 2007-10-23 18:13:44 -0700 (Tue, 23 Oct 2007) Log Message: ----------- Added Paths: ----------- obo-database/trunk/rdf/d2rq/chado-obd-d2rq.n3 Added: obo-database/trunk/rdf/d2rq/chado-obd-d2rq.n3 =================================================================== --- obo-database/trunk/rdf/d2rq/chado-obd-d2rq.n3 (rev 0) +++ obo-database/trunk/rdf/d2rq/chado-obd-d2rq.n3 2007-10-24 01:13:44 UTC (rev 1077) @@ -0,0 +1,87 @@ +@prefix map: <file:///stdout#> . +@prefix db: <> . +@prefix vocab: <vocab/> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix d2rq: <http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#> . + +map:database a d2rq:Database; + d2rq:jdbcDriver "org.postgresql.Driver"; +# d2rq:jdbcDSN "jdbc:postgresql://localhost/chado?user=cjm"; + d2rq:jdbcDSN "jdbc:postgresql://localhost/chacrm?user=cjm"; +# d2rq:jdbcDSN "jdbc:postgresql://reaper.lbl.gov:5432/chacrm_4_2?user=cjm"; + . + +map:feature a d2rq:ClassMap; + d2rq:dataStorage map:database; + d2rq:join "feature.dbxref_id = dbxref.dbxref_id" ; + d2rq:join "dbxref.db_id = db.db_id" ; +# d2rq:uriPattern "feature/@@db.name@@:@@feature.feature_id@@"; + d2rq:uriPattern "dbxref/@@dbxref.accession@@"; + . + +map:feature__label a d2rq:PropertyBridge; + d2rq:belongsToClassMap map:feature; + d2rq:property rdfs:label; + d2rq:pattern "@@feature.name@@"; + . +map:FeatureType a d2rq:PropertyBridge ; + d2rq:property rdf:type ; + d2rq:uriPattern "cvterm/@@db.name@@_@@dbxref.accession@@" ; + d2rq:join "feature.type_id = cvterm.cvterm_id" ; + d2rq:join "feature.dbxref_id = dbxref.dbxref_id" ; + d2rq:join "dbxref.db_id = db.db_id" ; + d2rq:belongsToClassMap map:feature . + +map:FeatureProp a d2rq:PropertyBridge ; + d2rq:property vocab:prop ; + d2rq:pattern "@@featureprop.value@@" ; + d2rq:join "featureprop.feature_id = feature.feature_id" ; + d2rq:belongsToClassMap map:feature . + +map:FeaureFeatureLoc a d2rq:PropertyBridge ; + d2rq:property vocab:has_location ; + d2rq:uriPattern "featureloc/@@featureloc.featureloc_id@@" ; + d2rq:join "feature.feature_id = featureloc.feature_id" ; + d2rq:belongsToClassMap map:feature . + +map:FeatureLoc a d2rq:ClassMap; + d2rq:dataStorage map:database; + d2rq:uriPattern "featureloc/@@featureloc.featureloc_id@@"; + d2rq:class vocab:RelativeDiscreteLocation + . +map:FeatureLocBeg a d2rq:PropertyBridge ; + d2rq:property vocab:minCoord ; + d2rq:column "featureloc.fmin" ; + d2rq:datatype xsd:integer ; + d2rq:belongsToClassMap map:FeatureLoc . + +map:FeatureLocEnd a d2rq:PropertyBridge ; + d2rq:property vocab:maxCoord ; + d2rq:column "featureloc.fmax" ; + d2rq:datatype xsd:integer ; + d2rq:belongsToClassMap map:FeatureLoc . + +map:FeatureLocDir a d2rq:PropertyBridge ; + d2rq:property vocab:direction ; + d2rq:column "featureloc.strand" ; + d2rq:datatype xsd:integer ; + d2rq:belongsToClassMap map:FeatureLoc . + +map:FeatureLocSrc a d2rq:PropertyBridge ; + d2rq:property vocab:relativeTo ; + d2rq:uriPattern "feature/@@feature.feature_id@@"; + d2rq:join "feature.feature_id = featureloc.srcfeature_id" ; + d2rq:belongsToClassMap map:FeatureLoc . + +# ignore type for now +map:FeatureRelationship a d2rq:PropertyBridge ; + d2rq:property vocab:part_of ; + d2rq:pattern "feature/@@feature_relationship.object_id@@" ; + d2rq:join "feature.feature_id = feature_relationship.subject_id" ; + d2rq:belongsToClassMap map:feature . + +# synonyms + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-23 16:06:37
|
Revision: 1076 http://obo.svn.sourceforge.net/obo/?rev=1076&view=rev Author: balhoff Date: 2007-10-23 09:06:34 -0700 (Tue, 23 Oct 2007) Log Message: ----------- Fixed problem using NEXUS tree file - JEBL does not replace underscores with spaces in taxon names according to NEXUS spec, so Phenote does it after reading in the tree. Modified Paths: -------------- phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java Modified: phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java 2007-10-23 04:53:30 UTC (rev 1075) +++ phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java 2007-10-23 16:06:34 UTC (rev 1076) @@ -26,6 +26,7 @@ import jebl.evolution.io.NewickExporter; import jebl.evolution.io.NewickImporter; import jebl.evolution.io.NexusImporter; +import jebl.evolution.taxa.Taxon; import jebl.evolution.trees.Tree; import jebl.evolution.trees.Utils; import jebl.gui.trees.treeviewer.TreeViewer; @@ -95,17 +96,6 @@ public void setTree(Tree tree) { this.replaceTaxonUnderscoresWithSpaces(tree); this.getTreeViewer().setTree(tree); - if (this.newickField != null) { - try { - final StringWriter writer = new StringWriter(); - final NewickExporter exporter = new NewickExporter(writer); - exporter.exportTree(tree); - log().debug("The imported tree is: " + writer.toString()); - this.newickField.setText(writer.toString()); - } catch (IOException e) { - log().error("Error exporting Newick tree", e); - } - } } public void newCharList(CharListChangeEvent e) { @@ -125,6 +115,17 @@ return taxa; } + private void updateNewickField(Tree tree) { + try { + final StringWriter writer = new StringWriter(); + final NewickExporter exporter = new NewickExporter(writer); + exporter.exportTree(tree); + this.newickField.setText(writer.toString()); + } catch (IOException e) { + log().error("Error exporting Newick tree", e); + } + } + protected TreeViewer getTreeViewer() { if (this.treeViewer == null) { this.treeViewer = this.createViewer(); @@ -198,15 +199,23 @@ } } - private Tree replaceTaxonUnderscoresWithSpaces(Tree tree) { + private void replaceTaxonUnderscoresWithSpaces(Tree tree) { for (Node node : tree.getNodes()) { if (tree.isExternal(node)) { log().debug("Taxon: " + tree.getTaxon(node).getName()); + final String original = tree.getTaxon(node).getName(); + final String replaced = original.replaceAll("_", " "); + tree.renameTaxa(tree.getTaxon(node), Taxon.getTaxon(replaced)); } else { log().debug("Label: " + node.getAttribute("label")); + final Object label = node.getAttribute("label"); + if (label != null) { + final String original = node.getAttribute("label").toString(); + final String replaced = original.replaceAll("_", " "); + node.setAttribute("label", replaced); + } } } - return null; //TODO } private static Logger log() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-23 04:53:26
|
Revision: 1075 http://obo.svn.sourceforge.net/obo/?rev=1075&view=rev Author: cmungall Date: 2007-10-22 21:53:30 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/build/Makefile obo-database/trunk/sql/api/obd-mutable-api.plpgsql obo-database/trunk/sql/obd-core-views.sql Modified: obo-database/trunk/build/Makefile =================================================================== --- obo-database/trunk/build/Makefile 2007-10-22 18:06:01 UTC (rev 1074) +++ obo-database/trunk/build/Makefile 2007-10-23 04:53:30 UTC (rev 1075) @@ -20,3 +20,9 @@ %.gz: % gzip $< +# build all sources +DBS = ncbi-gene homologene omim hprd hgnc +make-%: + cd build-$* && make all + +build-all: $(patsubst %,make-%,$(DBS)) Modified: obo-database/trunk/sql/api/obd-mutable-api.plpgsql =================================================================== --- obo-database/trunk/sql/api/obd-mutable-api.plpgsql 2007-10-22 18:06:01 UTC (rev 1074) +++ obo-database/trunk/sql/api/obd-mutable-api.plpgsql 2007-10-23 04:53:30 UTC (rev 1075) @@ -1,3 +1,4 @@ +-- @@ store_node(ID,label,source,metatype) CREATE OR REPLACE FUNCTION store_node (VARCHAR,VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS $$ @@ -4,30 +5,53 @@ DECLARE v_uid ALIAS FOR $1; v_label ALIAS FOR $2; - v_uri ALIAS FOR $3; - v_metatype ALIAS FOR $4; + v_source ALIAS FOR $3; + v_metatype ALIAS FOR $4; v_node_id INTEGER; + v_source_id INTEGER; BEGIN + + IF v_source IS NOT NULL THEN + SELECT INTO v_source_id store_node(v_source); + END IF; SELECT INTO v_node_id node_id FROM node WHERE uid=v_uid; IF NOT FOUND THEN INSERT INTO node - (uid,label,uri,metatype) + (uid,label,source_id,metatype) VALUES - (v_uid,v_label,v_uri,v_metatype); + (v_uid,v_label,v_source_id,v_metatype); RETURN currval('node_node_id_seq'); END IF; + UPDATE NODE + SET label = v_label, source_id = v_source_id, metatype = v_metatype + WHERE node_id = v_node_id; RETURN v_node_id; END; $$ LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION store_node (VARCHAR) RETURNS INT AS $$ -SELECT store_node($1,null,null,null) +DECLARE + v_uid ALIAS FOR $1; + v_node_id INTEGER; +BEGIN + SELECT INTO v_node_id node_id + FROM node + WHERE uid=v_uid; + IF NOT FOUND THEN + INSERT INTO node + (uid) + VALUES + (v_uid); + RETURN currval('node_node_id_seq'); + END IF; + RETURN v_node_id; +END $$ -LANGUAGE 'sql'; +LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION store_relation_node (VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS $$ @@ -36,11 +60,30 @@ LANGUAGE 'sql'; CREATE OR REPLACE FUNCTION store_relation_node (VARCHAR) RETURNS INT AS -$$ -SELECT store_node($1,null,null,'R') $$ -LANGUAGE 'sql'; +DECLARE + v_uid ALIAS FOR $1; + v_node_id INTEGER; + v_metatype CHAR; + BEGIN + SELECT INTO v_node_id, v_metatype node_id, metatype + FROM node + WHERE uid=v_uid; + IF NOT FOUND THEN + INSERT INTO node + (uid,metatype) + VALUES + (v_uid,'R'); + RETURN currval('node_node_id_seq'); + END IF; + IF v_metatype != 'R' THEN + UPDATE node SET metatype='R' WHERE node_id=v_node_id; + END IF; + RETURN v_node_id; + END; +$$ LANGUAGE 'plpgsql'; + CREATE OR REPLACE FUNCTION store_class_node (VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS $$ SELECT store_node($1,$2,$3,'C') @@ -72,7 +115,7 @@ v_node_id INTEGER; v_rel_id INTEGER; - v_class_id INTEGER; + v_class_id INTEGER; BEGIN SELECT INTO v_node_id store_instance_node($1,$2,$3); SELECT INTO v_rel_id store_relation_node('OBO_REL:instance_of'); @@ -102,7 +145,13 @@ END; $$ LANGUAGE 'plpgsql'; -CREATE OR REPLACE FUNCTION store_link (VARCHAR,VARCHAR,VARCHAR,VARCHAR) +CREATE OR REPLACE FUNCTION store_ontology_source_node (VARCHAR) RETURNS INT AS +$$ +SELECT store_node($1') +$$ +LANGUAGE 'sql'; + +CREATE OR REPLACE FUNCTION store_link (VARCHAR,VARCHAR,VARCHAR,VARCHAR,BOOLEAN) RETURNS INT AS $$ DECLARE @@ -110,6 +159,7 @@ v_rel ALIAS FOR $2; v_ob ALIAS FOR $3; v_combinator ALIAS FOR $4; + v_is_inferred ALIAS FOR $5; v_link_id INTEGER; v_su_id INTEGER; @@ -125,13 +175,19 @@ v_combinator2 := ''; END IF; INSERT INTO link - (node_id,predicate_id,object_id,combinator) + (node_id,predicate_id,object_id,combinator,is_inferred) VALUES - (v_su_id,v_rel_id,v_ob_id,v_combinator2); + (v_su_id,v_rel_id,v_ob_id,v_combinator2,v_is_inferred); RETURN currval('link_link_id_seq'); END; $$ LANGUAGE 'plpgsql'; +CREATE OR REPLACE FUNCTION store_link (VARCHAR,VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS +$$ +SELECT store_link($1,$2,$3,$4,'f') +$$ +LANGUAGE 'sql'; + CREATE OR REPLACE FUNCTION store_reif_link (VARCHAR,VARCHAR,VARCHAR,VARCHAR,INTEGER) RETURNS INT AS $$ @@ -179,7 +235,7 @@ SELECT INTO v_ob_id store_node(v_ob); SELECT INTO v_rel_id store_relation_node(v_rel); v_combinator2 := v_combinator; - if v_combinator IS NULL THEN + IF v_combinator IS NULL THEN v_combinator2 := ''; END IF; INSERT INTO link @@ -206,6 +262,62 @@ END; $$ LANGUAGE 'plpgsql'; +CREATE OR REPLACE FUNCTION store_node_dbxref_i (INT,VARCHAR) + RETURNS INT AS +$$ +DECLARE + + v_node_id ALIAS FOR $1; + v_rel_id INTEGER; + v_xref_id INTEGER; + BEGIN + SELECT INTO v_xref_id store_node($2); + SELECT INTO v_rel_id store_relation_node('oboMetaModel:xref'); + INSERT INTO link (node_id,predicate_id,object_id,is_metadata) + VALUES (v_node_id,v_rel_id,v_xref_id,'t'); + RETURN v_node_id; + END; +$$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_node_synonym_i (INT,VARCHAR,VARCHAR,VARCHAR) + RETURNS INT AS +$$ +DECLARE + + v_node_id ALIAS FOR $1; + v_rel_id INTEGER; + v_xref_id INTEGER; + v_type_id INTEGER; + BEGIN + v_type_id := $3; + IF v_type_id IS NOT NULL THEN + SELECT INTO v_type_id store_instance_node($2); + END IF; + INSERT INTO alias (node_id,scope,type_id,label) + VALUES (v_node_id,SUBSTRING($2,1,1),v_type_id,$4); + RETURN v_node_id; + END; +$$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_textdef_i (INT,VARCHAR) + RETURNS INT AS +$$ +DECLARE + v_node_id ALIAS FOR $1; + v_rel_id INTEGER; + v_type_id INTEGER; + BEGIN + SELECT INTO v_type_id store_relation_node('definition'); + -- only one textdef per node + DELETE FROM description WHERE node_id=v_node_id AND type_id=v_type_id; + INSERT INTO description (node_id,type_id,label) + VALUES (v_node_id,v_type_id,$2); + RETURN v_node_id; + END; +$$ LANGUAGE 'plpgsql'; + + +-- DELETION -- CREATE OR REPLACE FUNCTION delete_node (VARCHAR) RETURNS INT AS $$ DECLARE Modified: obo-database/trunk/sql/obd-core-views.sql =================================================================== --- obo-database/trunk/sql/obd-core-views.sql 2007-10-22 18:06:01 UTC (rev 1074) +++ obo-database/trunk/sql/obd-core-views.sql 2007-10-23 04:53:30 UTC (rev 1075) @@ -530,14 +530,52 @@ 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_link_node_with_pred_and_source AS + SELECT link.*, + source.uid AS source_uid, + source.label AS source_label + FROM node_link_node_with_pred AS link LEFT OUTER JOIN node AS source ON (link.source_id=source.node_id); + + 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); +CREATE OR REPLACE VIEW description_with_type AS + SELECT + description.*, + type.uid AS type_uid, + type.label AS type_label + FROM + description + INNER JOIN node AS type ON (description.type_id=type.node_id); +CREATE OR REPLACE VIEW description_d AS + SELECT descr.*, + node.uid AS node_uid, + node.label AS node_label + FROM node + INNER JOIN description_with_type AS descr ON (node.source_id=descr.node_id); +CREATE OR REPLACE VIEW alias_with_type AS + SELECT + alias.*, + type.uid AS type_uid, + type.label AS type_label + FROM + alias + LEFT OUTER JOIN node AS type ON (alias.type_id=type.node_id); + +CREATE OR REPLACE VIEW alias_d AS + SELECT a.*, + node.uid AS node_uid, + node.label AS node_label + FROM node + INNER JOIN alias_with_type AS a ON (node.source_id=a.node_id); + + -- ************************************************************ -- OBO METAMODEL -- ************************************************************ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-22 18:06:02
|
Revision: 1074 http://obo.svn.sourceforge.net/obo/?rev=1074&view=rev Author: balhoff Date: 2007-10-22 11:06:01 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Addressed tracker item 1815497 - replaced image URI field with reference section of publication. Modified Paths: -------------- phenote/trunk/conf/phenomap.cfg Modified: phenote/trunk/conf/phenomap.cfg =================================================================== --- phenote/trunk/conf/phenomap.cfg 2007-10-22 16:24:05 UTC (rev 1073) +++ phenote/trunk/conf/phenomap.cfg 2007-10-22 18:06:01 UTC (rev 1074) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<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:phenote-configuration version="1.2" 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"/> @@ -45,7 +45,7 @@ <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="Reference image(s)" syntax-abbrev="Ref" enable="true" groups="default"/> <ns:field name="Notes" syntax-abbrev="Notes" enable="true" groups="default"/> </ns:phenote-configuration> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-22 16:24:09
|
Revision: 1073 http://obo.svn.sourceforge.net/obo/?rev=1073&view=rev Author: balhoff Date: 2007-10-22 09:24:05 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Specimen list now copies and imports trees in NEXUS wrapper - easier to edit with external tools. Modified Paths: -------------- phenote/trunk/src/java/phenote/charactertemplate/SpecimenListController.java phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java phenote/trunk/src/java/phenote/gui/field/CharFieldMatcherEditor.java Modified: phenote/trunk/src/java/phenote/charactertemplate/SpecimenListController.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/SpecimenListController.java 2007-10-19 06:31:32 UTC (rev 1072) +++ phenote/trunk/src/java/phenote/charactertemplate/SpecimenListController.java 2007-10-22 16:24:05 UTC (rev 1073) @@ -4,12 +4,22 @@ import java.awt.datatransfer.StringSelection; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.io.StringWriter; import java.util.HashSet; import java.util.Set; import javax.swing.JMenu; import javax.swing.JMenuItem; +import jebl.evolution.io.ImportException; +import jebl.evolution.io.NewickImporter; +import jebl.evolution.io.NexusExporter; +import jebl.evolution.trees.Tree; +import jebl.evolution.trees.Utils; + import org.apache.log4j.Logger; import phenote.datamodel.CharFieldException; @@ -19,6 +29,7 @@ public class SpecimenListController extends CharacterTemplateController { private static final String COPY_NEWICK_ACTION = "copyAsNewick"; + private static final String COPY_NEXUS_ACTION = "copyAsNEXUS"; public SpecimenListController(String groupName) { super(groupName); @@ -26,12 +37,21 @@ } 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); + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(this.getNewick()), null); } + public void copyAsNEXUSTree() { + final StringWriter writer = new StringWriter(); + final NexusExporter nexus = new NexusExporter(writer); + final Tree tree = this.importTree(this.getNewick()); + try { + nexus.exportTree(tree); + } catch (IOException e) { + log().error("Unable to write NEXUS to clipboard", e); + } + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(writer.toString()), null); + } + private Set<String> getSelectedTaxonNames() { final Set<String> taxa = new HashSet<String>(); for (CharacterI character : this.getSelectionModel().getSelected()) { @@ -44,15 +64,42 @@ } return taxa; } + + private String getNewick() { + final String separator = ","; + final String taxonList = Collections.join(this.getSelectedTaxonNames(), separator); + final String newick = String.format("(%s)", taxonList); + return newick; + } + + private Tree importTree(String newickText) { + Reader reader = new StringReader(newickText); + NewickImporter importer = new NewickImporter(reader, false); + try { + return Utils.rootTheTree(importer.importNextTree()); + } catch (IOException e) { + // this is unlikely since we're using a StringReader + log().error("Can't read tree, newick text must be null", e); + return null; + } catch (ImportException e) { + log().error("Unable to create tree", e); + return null; + } + } 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()); + final SpecimenListActionListener listener = new SpecimenListActionListener(); + final JMenuItem newickItem = new JMenuItem("Copy as Newick tree"); + editMenu.add(newickItem); + newickItem.setActionCommand(COPY_NEWICK_ACTION); + newickItem.addActionListener(listener); + final JMenuItem nexusItem = new JMenuItem("Copy as NEXUS tree"); + editMenu.add(nexusItem); + nexusItem.setActionCommand(COPY_NEXUS_ACTION); + nexusItem.addActionListener(listener); } private Logger log() { @@ -63,6 +110,8 @@ public void actionPerformed(ActionEvent event) { if (event.getActionCommand().equals(COPY_NEWICK_ACTION)) { SpecimenListController.this.copyAsNewick(); + } else if (event.getActionCommand().equals(COPY_NEXUS_ACTION)) { + SpecimenListController.this.copyAsNEXUSTree(); } } } Modified: phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java 2007-10-19 06:31:32 UTC (rev 1072) +++ phenote/trunk/src/java/phenote/charactertemplate/TreeChooser.java 2007-10-22 16:24:05 UTC (rev 1073) @@ -8,6 +8,7 @@ import java.io.IOException; import java.io.Reader; import java.io.StringReader; +import java.io.StringWriter; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -22,7 +23,9 @@ import jebl.evolution.graphs.Node; import jebl.evolution.io.ImportException; +import jebl.evolution.io.NewickExporter; import jebl.evolution.io.NewickImporter; +import jebl.evolution.io.NexusImporter; import jebl.evolution.trees.Tree; import jebl.evolution.trees.Utils; import jebl.gui.trees.treeviewer.TreeViewer; @@ -63,7 +66,7 @@ public Collection<CharacterI> getChosenTemplates(Collection<CharacterI> candidates) { if (this.getCharField() == null) { - this.log().error("CharField not set for TreeChooser - no matching templates."); + log().error("CharField not set for TreeChooser - no matching templates."); return Collections.emptyList(); } final Collection<String> selectedTaxa = this.getSelectedTaxonNames(); @@ -79,8 +82,8 @@ public void setNewickTree(String treeText) { try { - Tree tree = this.importTree(treeText); - this.getTreeViewer().setTree(tree); + final Tree tree = this.importTree(treeText); + this.setTree(tree); if (this.newickFieldLabel != null) this.newickFieldLabel.setForeground(Color.BLACK); } catch (ImportException e) { @@ -89,6 +92,22 @@ } } + public void setTree(Tree tree) { + this.replaceTaxonUnderscoresWithSpaces(tree); + this.getTreeViewer().setTree(tree); + if (this.newickField != null) { + try { + final StringWriter writer = new StringWriter(); + final NewickExporter exporter = new NewickExporter(writer); + exporter.exportTree(tree); + log().debug("The imported tree is: " + writer.toString()); + this.newickField.setText(writer.toString()); + } catch (IOException e) { + log().error("Error exporting Newick tree", e); + } + } + } + public void newCharList(CharListChangeEvent e) { // this is assumed to be coming from the main CharacterListManager this.tryLoadDefaultDataFile(); @@ -132,7 +151,7 @@ JComponent component = (JComponent)swix.render(FileUtil.findUrl("tree_chooser.xml")); return component; } catch (Exception e) { - this.log().error("Unable to render interface", e); + log().error("Unable to render interface", e); return new JPanel(); } } @@ -148,7 +167,7 @@ return Utils.rootTheTree(importer.importNextTree()); } catch (IOException e) { // this is unlikely since we're using a StringReader - this.log().error("Can't read tree, newick text must be null", e); + log().error("Can't read tree, newick text must be null", e); return null; } } @@ -164,20 +183,34 @@ final String defaultFileName = baseName + ".tre"; File treeFile = new File(file.getParent(), defaultFileName); if (treeFile.exists()) { - // the tree must be on the first line and contain no linebreaks + // the tree file must be in NEXUS format try { - String newick = (new BufferedReader(new FileReader(treeFile))).readLine(); - this.setNewickTree(newick); + NexusImporter importer = new NexusImporter(new BufferedReader(new FileReader(treeFile))); + Tree tree = importer.importNextTree(); + this.setTree(tree); } catch (FileNotFoundException e) { log().error("Could not open tree file", e); } catch (IOException e) { log().error("Could not open tree file", e); + } catch (ImportException e) { + log().error("Could not read tree", e); } } } - private Logger log() { - return Logger.getLogger(this.getClass()); + private Tree replaceTaxonUnderscoresWithSpaces(Tree tree) { + for (Node node : tree.getNodes()) { + if (tree.isExternal(node)) { + log().debug("Taxon: " + tree.getTaxon(node).getName()); + } else { + log().debug("Label: " + node.getAttribute("label")); + } + } + return null; //TODO } + + private static Logger log() { + return Logger.getLogger(TreeChooser.class); + } } Modified: phenote/trunk/src/java/phenote/gui/field/CharFieldMatcherEditor.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CharFieldMatcherEditor.java 2007-10-19 06:31:32 UTC (rev 1072) +++ phenote/trunk/src/java/phenote/gui/field/CharFieldMatcherEditor.java 2007-10-22 16:24:05 UTC (rev 1073) @@ -35,8 +35,8 @@ import ca.odell.glazedlists.matchers.AbstractMatcherEditor; /** + * Provides a search panel for filtering character lists by charfield values. * @author Jim Balhoff - * Provides a search panel for filtering character lists by charfield values. */ public class CharFieldMatcherEditor extends AbstractMatcherEditor<CharacterI> { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-19 06:31:35
|
Revision: 1072 http://obo.svn.sourceforge.net/obo/?rev=1072&view=rev Author: cmungall Date: 2007-10-18 23:31:32 -0700 (Thu, 18 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/bin/obd-create-db.pl obo-database/trunk/sql/api/obd-mutable-api.plpgsql Modified: obo-database/trunk/bin/obd-create-db.pl =================================================================== --- obo-database/trunk/bin/obd-create-db.pl 2007-10-18 19:08:05 UTC (rev 1071) +++ obo-database/trunk/bin/obd-create-db.pl 2007-10-19 06:31:32 UTC (rev 1072) @@ -6,6 +6,7 @@ my @files = (); my $dump_as; my $conf_file; +my $user = $ENV{USER}; while (my $opt = shift @ARGV) { if ($opt =~ /^\-/) { if ($opt eq '-d' || $opt eq '--database') { @@ -34,6 +35,7 @@ } } + my $args = $dbhost ? "-h $dbhost $db" : $db; my $dir = `dirname $0`; chomp $dir; @@ -43,8 +45,14 @@ run("createdb $args"); run("psql $args < $sqldir/obd-core-schema.sql "); run("psql $args < $sqldir/obd-core-views.sql "); -run("psql $args < $sqldir/obd-core-functions.plpgsql "); +run("psql -c 'CREATE LANGUAGE plpgsql' $args"); + +run("psql $args < $sqldir/obd-core-functions.plpgsql "); # todo: move +run("psql $args < $sqldir/api/obd-mutable-api.plpgsql "); + +run("echo 'ALTER USER $user 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;' | psql $args"); + if ($conf_file) { my $dir = `dirname $conf_file`; chomp $dir; Modified: obo-database/trunk/sql/api/obd-mutable-api.plpgsql =================================================================== --- obo-database/trunk/sql/api/obd-mutable-api.plpgsql 2007-10-18 19:08:05 UTC (rev 1071) +++ obo-database/trunk/sql/api/obd-mutable-api.plpgsql 2007-10-19 06:31:32 UTC (rev 1072) @@ -1,6 +1,7 @@ CREATE OR REPLACE FUNCTION store_node (VARCHAR,VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS -'DECLARE +$$ +DECLARE v_uid ALIAS FOR $1; v_label ALIAS FOR $2; v_uri ALIAS FOR $3; @@ -16,11 +17,11 @@ (uid,label,uri,metatype) VALUES (v_uid,v_label,v_uri,v_metatype); - RETURN currval(''node_node_id_seq''); + RETURN currval('node_node_id_seq'); END IF; RETURN v_node_id; END; -' LANGUAGE 'plpgsql'; +$$ LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION store_node (VARCHAR) RETURNS INT AS $$ @@ -91,7 +92,8 @@ v_rel_id INTEGER; v_class_id INTEGER; BEGIN - SELECT INTO v_node_id store_instance_node(NULL,NULL,NULL); + INSERT INTO node (is_anonymous) VALUES ('t'); + SELECT INTO v_node_id currval('node_node_id_seq'); SELECT INTO v_rel_id store_relation_node('OBO_REL:instance_of'); SELECT INTO v_class_id store_class_node($1); INSERT INTO link (node_id,predicate_id,object_id) @@ -199,7 +201,7 @@ v_link_id INTEGER; BEGIN SELECT INTO v_annotation_id store_anon_instance_node('oban:Annotation'); - SELECT INTO v_link_id store_reif_link(v_annotation_id,$1,$2,$3,NULL); + SELECT INTO v_link_id store_reif_link($1,$2,$3,NULL,v_annotation_id); RETURN v_annotation_id; END; $$ LANGUAGE 'plpgsql'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-18 19:08:02
|
Revision: 1071 http://obo.svn.sourceforge.net/obo/?rev=1071&view=rev Author: mgibson Date: 2007-10-18 12:08:05 -0700 (Thu, 18 Oct 2007) Log Message: ----------- a term maker can now populate multiple fields not just 1 - as is needed for allele fields in genotype maker Modified Paths: -------------- phenote/trunk/conf/fly_gt.cfg phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/dataadapter/GroupAdapterI.java phenote/trunk/src/java/phenote/dataadapter/OntologyMaker.java phenote/trunk/src/java/phenote/dataadapter/OntologyMakerI.java phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java Modified: phenote/trunk/conf/fly_gt.cfg =================================================================== --- phenote/trunk/conf/fly_gt.cfg 2007-10-18 19:01:51 UTC (rev 1070) +++ phenote/trunk/conf/fly_gt.cfg 2007-10-18 19:08:05 UTC (rev 1071) @@ -35,9 +35,9 @@ group_adapter="phenote.dataadapter.fly.FlyGenotypeGroupAdapter"/> <ns:field name="Locus Allele 1" datatag="LA1" type="TERM" groups="genotypeMaker"/> - <ns:field name="Locus Allele 2" datatag="LA2" groups="genotypeMaker"/> - <ns:field name="Non Locus Alleles" datatag="NLA" groups="genotypeMaker"/> - <ns:field name="Accesories" datatag="ACC" groups="genotypeMaker"/> + <ns:field name="Locus Allele 2" datatag="LA2" type="TERM" groups="genotypeMaker"/> + <ns:field name="Non Locus Alleles" datatag="NLA" type="TERM" groups="genotypeMaker"/> + <ns:field name="Accesories" datatag="ACC" type="TERM" groups="genotypeMaker"/> <!-- ns:plugin launcher="button" launch-group/gui="genotypeMaker" launchText="get alleles from proforma" Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-10-18 19:01:51 UTC (rev 1070) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-10-18 19:08:05 UTC (rev 1071) @@ -1227,7 +1227,7 @@ } GroupAdapterI ga = (GroupAdapterI)o; String destField = grp.getDestinationField(); - ga.setDestinationField(destField); // ex/err msg if fail? + ga.addDestinationField(destField); // ex/err msg if fail? return ga; } catch (Exception e) { Modified: phenote/trunk/src/java/phenote/dataadapter/GroupAdapterI.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/GroupAdapterI.java 2007-10-18 19:01:51 UTC (rev 1070) +++ phenote/trunk/src/java/phenote/dataadapter/GroupAdapterI.java 2007-10-18 19:08:05 UTC (rev 1071) @@ -22,9 +22,10 @@ also setDestinationField needs to take a list This should be replaced by OntologyMakerI - phase out! + thiscould be CharOntMakerI but i dont think thats necasary */ -public interface GroupAdapterI { +public interface GroupAdapterI extends OntologyMakerI { /** If a group reacts to char changes(edits) then a char change listener should be added, for instance a user edits group fields and dest field is automatically @@ -37,8 +38,4 @@ boolean hasCharListChangeListener(); CharListChangeListener getCharListChangeListener(); - /** the destination field that this group is populating (with obo classes), if - a group is not populating a destination field this would be no-oped - one could imagine other destinations like main datamodel */ - void setDestinationField(String field); // CharField? Ex? } Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyMaker.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyMaker.java 2007-10-18 19:01:51 UTC (rev 1070) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyMaker.java 2007-10-18 19:08:05 UTC (rev 1071) @@ -1,5 +1,8 @@ package phenote.dataadapter; +import java.util.ArrayList; +import java.util.List; + import org.apache.log4j.Logger; import org.geneontology.oboedit.datamodel.OBOSession; @@ -11,12 +14,14 @@ public abstract class OntologyMaker implements OntologyMakerI { - // --> List - private CharField destinationCharField; + // --> List - can have multiple destinations + //private CharField destinationCharField; + private List<CharField>destinationCharFields = new ArrayList<CharField>(4); - public void setDestinationField(String fieldName) { + public void addDestinationField(String fieldName) { try { - destinationCharField = CharFieldManager.inst().getCharFieldForName(fieldName); + CharField cf = CharFieldManager.inst().getCharFieldForName(fieldName); + destinationCharFields.add(cf); } catch (CharFieldException e) { // popup? throw ex? log().error("Cant find destination field "+fieldName+" for ontology maker. " @@ -28,27 +33,33 @@ public String getButtonText() { return null; } // ""? protected void setOboSession(OBOSession os) { - getDestinationOntology().setOboSession(os); + for (Ontology o : getDestinationOntologies()) + o.setOboSession(os); } - /** If CharField doesnt have Ontology yet, create one */ - private Ontology getDestinationOntology() { - if (!hasDestinationCharField()) return null; - - CharField cf = getDestinationCharField(); - if (!cf.hasOntologies()) { - Ontology ont = new Ontology(cf.getName()); - cf.addOntology(ont); + /** If CharField doesnt have Ontology yet, create one, assumes thers only one ontol + per char field - ok for now */ + private List<Ontology> getDestinationOntologies() { + List<Ontology> ontList = new ArrayList<Ontology>(); + for (CharField cf : destinationCharFields) { + + //CharField cf = getDestinationCharField(); + if (!cf.hasOntologies()) { + Ontology ont = new Ontology(cf.getName()); + cf.addOntology(ont); + } + //return cf.getOntology(); // just assume theres only 1 ontol + ontList.add(cf.getOntology()); } - return cf.getOntology(); // just assume theres only 1 ontol + return ontList; } protected boolean hasDestinationCharField() { - return getDestinationCharField() != null; + return !destinationCharFields.isEmpty(); } - private CharField getDestinationCharField() { - return destinationCharField; - } +// private CharField getDestinationCharField() { +// return destinationCharField; +// } private Logger log; private Logger log() { Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyMakerI.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyMakerI.java 2007-10-18 19:01:51 UTC (rev 1070) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyMakerI.java 2007-10-18 19:08:05 UTC (rev 1071) @@ -13,4 +13,9 @@ public String getButtonText(); + /** the destination field that this group is populating (with obo classes), if + a group is not populating a destination field this would be no-oped + one could imagine other destinations like main datamodel */ + public void addDestinationField(String field); // CharField? Ex? + } Modified: phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java 2007-10-18 19:01:51 UTC (rev 1070) +++ phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java 2007-10-18 19:08:05 UTC (rev 1071) @@ -42,7 +42,10 @@ private static final Logger LOG = Logger.getLogger(ProformaAlleleParser.class); public ProformaAlleleParser() { - setDestinationField("LA1"); // testing + addDestinationField("LA1"); // testing, eventually from cfg + addDestinationField("LA2"); + addDestinationField("NLA"); + addDestinationField("ACC"); } public boolean useButtonToLaunch() { return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-18 19:01:50
|
Revision: 1070 http://obo.svn.sourceforge.net/obo/?rev=1070&view=rev Author: balhoff Date: 2007-10-18 12:01:51 -0700 (Thu, 18 Oct 2007) Log Message: ----------- Fixed just-introduced layout bug on main window. Modified Paths: -------------- phenote/trunk/conf/character_table_panel.xml Modified: phenote/trunk/conf/character_table_panel.xml =================================================================== --- phenote/trunk/conf/character_table_panel.xml 2007-10-18 18:57:19 UTC (rev 1069) +++ phenote/trunk/conf/character_table_panel.xml 2007-10-18 19:01:51 UTC (rev 1070) @@ -8,7 +8,7 @@ <panel id="buttonPanel"> <gridbagconstraints gridx="0" gridy="1" weightx="0" insets="10,10,10,10" fill="GridBagConstraints.HORIZONTAL"/> <button id="ontolMakerButton" text="Make Ontology" action="makeOntology" toolTipText="Make ontology for field(s)"/> - <panel size="80,1" preferredSize="80,1"/> + <panel size="80,1" preferredSize="80,1" minimumSize="80,1"/> <button id="addButton" text="New" action="addNewCharacter" toolTipText="Add new row"/> <button id="duplicateButton" text="Duplicate" action="duplicateSelectedCharacters" toolTipText="Duplicate selected rows"/> <button id="deleteButton" text="Delete" action="deleteSelectedCharacters" toolTipText="Delete selected rows"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-18 18:57:17
|
Revision: 1069 http://obo.svn.sourceforge.net/obo/?rev=1069&view=rev Author: balhoff Date: 2007-10-18 11:57:19 -0700 (Thu, 18 Oct 2007) Log Message: ----------- New filter field functionality - choose which charfield to search on, match ontology terms exactly or by inheritance. Modified Paths: -------------- phenote/trunk/conf/character_table_panel.xml phenote/trunk/conf/character_template.xml phenote/trunk/src/java/phenote/charactertemplate/CharacterTemplateController.java phenote/trunk/src/java/phenote/gui/CharacterTableController.java phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java phenote/trunk/src/java/phenote/gui/field/TermCompList.java Added Paths: ----------- phenote/trunk/conf/filter_field.xml phenote/trunk/src/java/phenote/gui/field/CharFieldMatcher.java phenote/trunk/src/java/phenote/gui/field/CharFieldMatcherEditor.java phenote/trunk/src/java/phenote/util/EverythingEqualComparator.java phenote/trunk/test/java/phenote/gui/field/ phenote/trunk/test/java/phenote/gui/field/CharFieldMatcherEditorTest.java phenote/trunk/test/java/phenote/gui/field/CharFieldMatcherTest.java phenote/trunk/test/testfiles/CharFieldMatcherEditorTest.tab Modified: phenote/trunk/conf/character_table_panel.xml =================================================================== --- phenote/trunk/conf/character_table_panel.xml 2007-10-18 17:31:24 UTC (rev 1068) +++ phenote/trunk/conf/character_table_panel.xml 2007-10-18 18:57:19 UTC (rev 1069) @@ -2,29 +2,24 @@ <panel id="characterTablePanel" constraints="BorderLayout.CENTER" layout="GridBagLayout"> <scrollpane horizontalScrollBarPolicy="JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS"> - <gridbagconstraints gridx="0" gridy="0" weightx="1" weighty="1" fill="GridBagConstraints.BOTH" insets="5,5,0,5"/> + <gridbagconstraints gridx="0" gridy="0" weightx="1" weighty="1" gridwidth="2" fill="GridBagConstraints.BOTH" insets="5,5,0,5"/> <table id="characterTable"/> </scrollpane> <panel id="buttonPanel"> - <gridbagconstraints gridx="0" gridy="1" weightx="1" insets="10,10,10,10" fill="GridBagConstraints.HORIZONTAL"/> - <button id="ontolMakerButton" text="Make Ontology" action="makeOntology" toolTipText="make ontology for field(s)"/> + <gridbagconstraints gridx="0" gridy="1" weightx="0" insets="10,10,10,10" fill="GridBagConstraints.HORIZONTAL"/> + <button id="ontolMakerButton" text="Make Ontology" action="makeOntology" toolTipText="Make ontology for field(s)"/> <panel size="80,1" preferredSize="80,1"/> <button id="addButton" text="New" action="addNewCharacter" toolTipText="Add new row"/> <button id="duplicateButton" text="Duplicate" action="duplicateSelectedCharacters" toolTipText="Duplicate selected rows"/> <button id="deleteButton" text="Delete" action="deleteSelectedCharacters" toolTipText="Delete selected rows"/> - <panel size="20,1" preferredSize="20,1"/> + <panel size="20,1" preferredSize="20,1" minimumSize="20,1"/> <button id="undoButton" text="Undo" action="undo" toolTipText="Undo previous action"/> - <panel size="80,1" preferredSize="80,1"/> + <panel size="80,1" preferredSize="80,1" minimumSize="80,1"/> <button id="commitButton" text="Save Data" action="commitCharacters" toolTipText="Save Data"/> - <panel size="20,1" preferredSize="20,1"/> + <panel size="20,1" preferredSize="20,1" minimumSize="20,1"/> <button id="graphButton" text="Graph" action="showGraph" toolTipText="Show Graph View"/> - <panel layout="GridBagLayout"> - <label text="Filter:" horizontalAlignment="SwingConstants.RIGHT"> - <gridbagconstraints gridx="0" gridy="0" weightx="1" weighty="0" anchor="GridBagConstraints.EAST"/> - </label> - <textfield id="filterField" columns="25"> - <gridbagconstraints gridx="1" gridy="0" weightx="0" weighty="0" anchor="GridBagConstraints.EAST" insets="0,0,0,5"/> - </textfield> - </panel> </panel> + <panel id="filterPanel" layout="GridLayout"> + <gridbagconstraints gridx="1" gridy="1" weightx="1" fill="GridBagConstraints.HORIZONTAL" anchor="GridBagConstraints.EAST" insets="0,5,0,5"/> + </panel> </panel> Modified: phenote/trunk/conf/character_template.xml =================================================================== --- phenote/trunk/conf/character_template.xml 2007-10-18 17:31:24 UTC (rev 1068) +++ phenote/trunk/conf/character_template.xml 2007-10-18 18:57:19 UTC (rev 1069) @@ -7,21 +7,12 @@ </panel> </splitpane> <panel constraints="BorderLayout.CENTER" layout="GridBagLayout"> - <panel layout="GridBagLayout"> - <gridbagconstraints gridx="0" gridy="0" weightx="1" weighty="0" fill="GridBagConstraints.HORIZONTAL"/> - <label text="Filter:" horizontalAlignment="SwingConstants.RIGHT"> - <gridbagconstraints gridx="0" gridy="0" weightx="1" weighty="0" anchor="GridBagConstraints.EAST"/> - </label> - <textfield id="filterField" columns="25"> - <gridbagconstraints gridx="1" gridy="0" weightx="0" weighty="0" anchor="GridBagConstraints.EAST" insets="0,0,0,10"/> - </textfield> - </panel> <scrollpane horizontalScrollBarPolicy="JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS"> - <gridbagconstraints gridx="0" gridy="1" weightx="1" weighty="1" fill="GridBagConstraints.BOTH" insets="0,10,0,10"/> + <gridbagconstraints gridx="0" gridy="0" weightx="1" weighty="1" gridwidth="2" fill="GridBagConstraints.BOTH" insets="0,10,0,10"/> <table id="characterTemplateTable"/> </scrollpane> <panel id="buttonPanel"> - <gridbagconstraints gridx="0" gridy="2" weightx="1" insets="10,10,10,10"/> + <gridbagconstraints gridx="0" gridy="1" weightx="0" insets="10,10,10,10" fill="GridBagConstraints.HORIZONTAL"/> <button id="addButton" text="New" action="addNewCharacter" toolTipText="Add new row"/> <button id="duplicateButton" text="Duplicate" action="duplicateSelectedCharacters" toolTipText="Duplicate selected rows"/> <button id="deleteButton" text="Delete" action="deleteSelectedCharacters" toolTipText="Delete selected rows"/> @@ -31,5 +22,8 @@ <button id="invertSelectionButton" text="Invert" action="invertMarkedCharacters" toolTipText="Invert rows marked for use"/> <button id="generateButton" text="Generate Characters" action="generateCharacters" toolTipText="Generate characters in the main window from marked templates"/> </panel> + <panel id="filterPanel" layout="GridLayout"> + <gridbagconstraints gridx="1" gridy="1" weightx="1" fill="GridBagConstraints.HORIZONTAL" anchor="GridBagConstraints.EAST" insets="0,5,0,10"/> + </panel> </panel> </splitpane> \ No newline at end of file Added: phenote/trunk/conf/filter_field.xml =================================================================== --- phenote/trunk/conf/filter_field.xml (rev 0) +++ phenote/trunk/conf/filter_field.xml 2007-10-18 18:57:19 UTC (rev 1069) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<panel id="filterContainer" layout="GridBagLayout" border="TitledBorder" toolTipText="Filter table rows"> + <combobox id="charFieldPopup" action="updateEditedCharField" toolTipText="Field to filter on"> + <gridbagconstraints gridx="0" gridy="0" weightx="0" weighty="0" gridheight="2" fill="GridBagConstraints.HORIZONTAL"/> + </combobox> + <panel id="inputFieldContainer" layout="GridLayout"> + <gridbagconstraints gridx="1" gridy="0" weightx="1" weighty="0" gridheight="2" fill="GridBagConstraints.HORIZONTAL"/> + </panel> + <buttongroup id="modeRadioButton"> + <gridbagconstraints gridx="2" gridy="0" weightx="0" weighty="1" gridheight="2" fill="GridBagConstraints.BOTH"/> + <radiobutton id="exactModeRadioButton" text="Exact" action="setExactFilterMode" toolTipText="Match ontology term exactly"> + <gridbagconstraints gridx="2" gridy="0" fill="GridBagConstraints.HORIZONTAL"/> + </radiobutton> + <radiobutton id="inheritModeRadioButton" text="Inherit" action="setInheritFilterMode" toolTipText="Match all descendant ontology terms"> + <gridbagconstraints gridx="2" gridy="1" fill="GridBagConstraints.HORIZONTAL"/> + </radiobutton> + </buttongroup> +</panel> + Modified: phenote/trunk/src/java/phenote/charactertemplate/CharacterTemplateController.java =================================================================== --- phenote/trunk/src/java/phenote/charactertemplate/CharacterTemplateController.java 2007-10-18 17:31:24 UTC (rev 1068) +++ phenote/trunk/src/java/phenote/charactertemplate/CharacterTemplateController.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -21,7 +21,6 @@ import javax.swing.JPanel; import javax.swing.JSeparator; import javax.swing.JTable; -import javax.swing.JTextField; import org.apache.log4j.Logger; import org.swixml.SwingEngine; @@ -34,6 +33,7 @@ import phenote.dataadapter.CharacterListManager; import phenote.dataadapter.LoadSaveManager; import phenote.datamodel.CharField; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.CharacterI; import phenote.edit.CharChangeEvent; import phenote.edit.CharChangeListener; @@ -41,6 +41,7 @@ import phenote.gui.MenuManager; import phenote.gui.TableColumnPrefsSaver; import phenote.gui.TermInfo; +import phenote.gui.field.CharFieldMatcherEditor; import phenote.gui.field.FieldPanel; import phenote.gui.selection.SelectionManager; import phenote.main.Phenote; @@ -51,7 +52,6 @@ import ca.odell.glazedlists.swing.EventSelectionModel; import ca.odell.glazedlists.swing.EventTableModel; import ca.odell.glazedlists.swing.TableComparatorChooser; -import ca.odell.glazedlists.swing.TextComponentMatcherEditor; public class CharacterTemplateController implements ActionListener, TemplateChoiceListener, CharChangeListener, CharListChangeListener { @@ -67,13 +67,15 @@ private JPanel charFieldPanelContainer; // initialized by swix private JPanel termInfoPanelContainer; // initialized by swix private JTable characterTemplateTable; // initialized by swix - private JTextField filterField; // initialized by swix + private JPanel filterPanel; // initialized by swix private List<TemplateChooser> templateChoosers = new ArrayList<TemplateChooser>(); private SortedList<CharacterI> sortedCharacters; private FilterList<CharacterI> filteredCharacters; private EventSelectionModel<CharacterI> selectionModel; private Set<CharacterI> markedCharacters = new HashSet<CharacterI>(); + private CharFieldMatcherEditor filter; + public CharacterTemplateController(String groupName) { super(); this.representedGroup = groupName; @@ -238,7 +240,7 @@ } private void setSelectionWithCharacters(List<CharacterI> characters) { - this.filterField.setText(""); + this.filter.setFilter(null, this); this.getSelectionModel().clearSelection(); for (CharacterI character : characters) { final int index = this.filteredCharacters.indexOf(character); @@ -314,7 +316,9 @@ SwingEngine swix = new SwingEngine(this); try { JComponent component = (JComponent)swix.render(FileUtil.findUrl("character_template.xml")); - this.filteredCharacters = new FilterList<CharacterI>(this.sortedCharacters, new TextComponentMatcherEditor<CharacterI>(filterField, new CharacterFilterator())); + this.filter = new CharFieldMatcherEditor(CharFieldManager.inst().getCharFieldListForGroup(this.representedGroup)); + this.filterPanel.add(this.filter.getComponent()); + this.filteredCharacters = new FilterList<CharacterI>(this.sortedCharacters, this.filter); final CharacterTemplateTableFormat tableFormat = new CharacterTemplateTableFormat(this.representedGroup, this); EventTableModel<CharacterI> eventTableModel = new EventTableModel<CharacterI>(this.filteredCharacters, tableFormat); this.characterTemplateTable.setModel(eventTableModel); @@ -323,7 +327,6 @@ this.characterTemplateTable.setSelectionModel(this.selectionModel); this.characterTemplateTable.putClientProperty("Quaqua.Table.style", "striped"); new TableColumnPrefsSaver(this.characterTemplateTable, this.getTableAutoSaveName()); - this.filterField.putClientProperty("Quaqua.TextField.style", "search"); FieldPanel fieldPanel = new FieldPanel(true, false, this.representedGroup, this.selectionManager, this.editManager, this.selectionModel); this.charFieldPanelContainer.add(fieldPanel); TermInfo termInfo = new TermInfo(this.selectionManager); Modified: phenote/trunk/src/java/phenote/gui/CharacterTableController.java =================================================================== --- phenote/trunk/src/java/phenote/gui/CharacterTableController.java 2007-10-18 17:31:24 UTC (rev 1068) +++ phenote/trunk/src/java/phenote/gui/CharacterTableController.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -4,14 +4,12 @@ import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.util.Comparator; import java.util.List; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JTable; -import javax.swing.JTextField; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; @@ -24,23 +22,20 @@ import phenote.dataadapter.CharacterListManager; import phenote.dataadapter.LoadSaveManager; import phenote.dataadapter.OntologyMakerI; -import phenote.datamodel.CharField; +import phenote.datamodel.CharFieldManager; import phenote.datamodel.CharacterI; import phenote.edit.CharChangeEvent; import phenote.edit.CharChangeListener; import phenote.edit.EditManager; +import phenote.gui.field.CharFieldMatcherEditor; +import phenote.util.EverythingEqualComparator; import phenote.util.FileUtil; import ca.odell.glazedlists.FilterList; import ca.odell.glazedlists.SortedList; -import ca.odell.glazedlists.TextFilterator; import ca.odell.glazedlists.swing.EventSelectionModel; import ca.odell.glazedlists.swing.EventTableModel; import ca.odell.glazedlists.swing.TableComparatorChooser; -import ca.odell.glazedlists.swing.TextComponentMatcherEditor; -/** Layout happens via swix with xml file conf/character_table_panel.xml - i kinda wonder if that file should just be in this directory? */ - public class CharacterTableController { private static final String SAVE_STRING = "Save Data"; @@ -50,13 +45,14 @@ private EventSelectionModel<CharacterI> selectionModel; private CharacterTableFormat tableFormat; private LoadSaveManager loadSaveManager; + private CharFieldMatcherEditor filter; private JPanel characterTablePanel; // initialized by swix private JTable characterTable; // initialized by swix - private JTextField filterField; // initialized by swix private JButton duplicateButton; // initialized by swix private JButton deleteButton; // initialized by swix private JButton commitButton; // initialized by swix private JButton graphButton; // initialized by swix + private JPanel filterPanel; // initialized by swix private JButton ontolMakerButton; // initialized by swix private OntologyMakerI ontolMaker; // for now just 1 term maker... @@ -65,7 +61,8 @@ this.loadPanelLayout(); this.sortedCharacters = new SortedList<CharacterI>(this.getCharacterListManager().getCharacterList().getList(), new EverythingEqualComparator<CharacterI>()); this.sortedCharacters.setMode(SortedList.AVOID_MOVING_ELEMENTS); - this.filteredCharacters = new FilterList<CharacterI>(this.sortedCharacters, new TextComponentMatcherEditor<CharacterI>(this.filterField, new CharacterFilterator())); + this.filter = new CharFieldMatcherEditor(CharFieldManager.inst().getCharFieldListForGroup(this.representedGroup)); + this.filteredCharacters = new FilterList<CharacterI>(this.sortedCharacters, this.filter); this.selectionModel = new EventSelectionModel<CharacterI>(this.filteredCharacters); this.tableFormat = new CharacterTableFormat(this.representedGroup); this.getEditManager().addCharChangeListener(new CharacterChangeListener()); @@ -84,10 +81,14 @@ this.getEditManager().addNewCharacter(); } + /** in swixml config conf/character_table_panel.xml the duplicate button is set up to + call this method */ public void duplicateSelectedCharacters() { this.getEditManager().copyChars(this.selectionModel.getSelected()); } + /** in swixml config conf/character_table_panel.xml the delete button is set up to + call this method */ public void deleteSelectedCharacters() { final int maxSelectedRow = this.selectionModel.getMaxSelectionIndex(); this.getEditManager().deleteChars(this.selectionModel.getSelected()); @@ -100,10 +101,14 @@ } } + /** in swixml config conf/character_table_panel.xml the undo button is set up to + call this method */ public void undo() { this.getEditManager().undo(); } + /** in swixml config conf/character_table_panel.xml the save button is set up to + call this method */ public void commitCharacters() { if (Config.inst().hasQueryableDataAdapter()) { Config.inst().getQueryableDataAdapter().commit(this.getCharacterListManager().getCharacterList()); @@ -129,6 +134,7 @@ return this.selectionModel; } + /** Instantiates interface objects from Swixml file */ private void loadPanelLayout() { SwingEngine swix = new SwingEngine(this); try { @@ -137,7 +143,6 @@ log().fatal("Unable to render character table interface", e); } } - private void initializeInterface() { final EventTableModel<CharacterI> eventTableModel = new EventTableModel<CharacterI>(this.filteredCharacters, this.tableFormat); @@ -149,7 +154,7 @@ if (!Config.inst().uvicGraphIsEnabled()) { this.graphButton.getParent().remove(this.graphButton); } - this.filterField.putClientProperty("Quaqua.TextField.style", "search"); + this.filterPanel.add(this.filter.getComponent()); this.characterTable.addMouseListener(new PopupListener(new TableRightClickMenu(this.characterTable))); this.characterTablePanel.validate(); this.selectionModel.addListSelectionListener(new SelectionListener()); @@ -192,7 +197,7 @@ } private void clearFilter() { - this.filterField.setText(""); + this.filter.setFilter(null, this); } private void updateCharacterForGlazedLists(CharacterI character) { @@ -243,6 +248,7 @@ } } + /** Listens for loading of new data files and clears the search filter */ private class CharacterListChangeListener implements CharListChangeListener { public void newCharList(CharListChangeEvent e) { CharacterTableController.this.clearFilter(); @@ -258,20 +264,6 @@ } } - private static class EverythingEqualComparator<T> implements Comparator<T> { - public int compare(T o1, T o2) { - return 0; - } - } - - private static class CharacterFilterator implements TextFilterator<CharacterI> { - public void getFilterStrings(List<String> baseList, CharacterI character) { - for (CharField charField : character.getAllCharFields()) { - baseList.add(character.getValueString(charField)); - } - } - } - private class PopupListener extends MouseAdapter { JPopupMenu popup; int col; int row; Modified: phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java 2007-10-18 17:31:24 UTC (rev 1068) +++ phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -97,7 +97,7 @@ protected SearchParamsI getSearchParams() { return searchParams; } - protected CompListSearcher getCompListSearcher() { return compListSearcher; } + public CompListSearcher getCompListSearcher() { return compListSearcher; } protected AbstractAutoCompList getCompList() { return this; } Modified: phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-10-18 17:31:24 UTC (rev 1068) +++ phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -40,7 +40,7 @@ ontology to browse - CharFieldGui does either - with get/setText - hides the details of the gui - just a field that gives text should there be subclasses for free text, term, & relations? hmmmm */ -abstract class CharFieldGui implements ListSelectionListener { +public abstract class CharFieldGui implements ListSelectionListener { private CharField charField; private String label; /** if true then set gui but not model, for clearing on multi, default false */ @@ -58,7 +58,7 @@ private Color disabledColor; /** CharFieldGui for main window not post comp box - factory method */ - static CharFieldGui makeCharFieldGui(CharField charField,int minCompChars) { + public static CharFieldGui makeCharFieldGui(CharField charField,int minCompChars) { CharFieldGui fieldGui; if (charField.isTerm()) { //hasOntologies()) { //return new TermCompList(charField,sp,true); // enable listeners @@ -98,7 +98,7 @@ /** make term completion lists for post comp window (genus & diff), they dont listen to selection nor edit model - isolated */ - static CharFieldGui makePostCompTermList(CharField cf,String label, + public static CharFieldGui makePostCompTermList(CharField cf,String label, int minCompChars) { // false - no listeners(dont edit model), false - dont add comp button // eventually adding comp button come from config for recursive comp @@ -556,7 +556,7 @@ CharFieldEnum getCharFieldEnum() { return charField.getCharFieldEnum(); } protected CharField getCharField() { return charField; } - static class CharFieldGuiEx extends Exception { + public static class CharFieldGuiEx extends Exception { protected CharFieldGuiEx(String m) { super(m); } } Added: phenote/trunk/src/java/phenote/gui/field/CharFieldMatcher.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CharFieldMatcher.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/field/CharFieldMatcher.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -0,0 +1,74 @@ +package phenote.gui.field; + +import org.geneontology.oboedit.datamodel.Link; +import org.geneontology.oboedit.datamodel.LinkedObject; +import org.geneontology.oboedit.datamodel.OBOClass; + +import phenote.datamodel.CharField; +import phenote.datamodel.CharFieldManager; +import phenote.datamodel.CharFieldValue; +import phenote.datamodel.CharacterI; +import phenote.datamodel.TermNotFoundException; +import ca.odell.glazedlists.matchers.Matcher; + +/** + * @author Jim Balhoff + * A GlazedLists Matcher implementation which matches characters using a given charfield. + */ +public class CharFieldMatcher implements Matcher<CharacterI> { + + private final CharField charField; + private final String filter; + private final boolean inherit; + + /** + * @param charField The charfield examined to match characters. + * @param filter The value required for character to match. For free text charfields, this will match substrings. + * @param inherit Whether to match all descendants of an ontology term in addition to matching the exact ontology term. + */ + public CharFieldMatcher(CharField charField, String filter, boolean inherit) { + this.charField = charField; + this.filter = filter; + this.inherit = inherit; + } + + public boolean matches(CharacterI character) { + if ((this.filter == null) || (this.filter.equals(""))) return true; + if (this.charField.isTerm()) { + return this.matchTerm(character); + } else { + return this.matchText(character); + } + } + + private boolean matchTerm(CharacterI character) { + try { + final CharFieldValue value = character.getValue(this.charField); + final OBOClass candidateTerm = value.getTerm(); + final OBOClass filterTerm = CharFieldManager.inst().getOboClass(this.filter); + if (this.inherit) { + return this.termIsAncestorOfTerm(filterTerm, candidateTerm); + } else { + return filterTerm.equals(candidateTerm); + } + } catch (TermNotFoundException e) { + return false; + } + } + + private boolean matchText(CharacterI character) { + final String value = character.getValueString(this.charField); + return value.toLowerCase().indexOf(this.filter.toLowerCase()) != -1; + } + + private boolean termIsAncestorOfTerm(LinkedObject ancestor, LinkedObject descendant) { + if (ancestor.equals(descendant)) return true; + for (Link link : ancestor.getChildren()) { + if (this.termIsAncestorOfTerm(link.getChild(), descendant)) { + return true; + } + } + return false; + } + +} Added: phenote/trunk/src/java/phenote/gui/field/CharFieldMatcherEditor.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CharFieldMatcherEditor.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/field/CharFieldMatcherEditor.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -0,0 +1,301 @@ +package phenote.gui.field; + +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Collections; +import java.util.List; +import java.util.Vector; + +import javax.swing.AbstractButton; +import javax.swing.ButtonGroup; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JTextField; +import javax.swing.SwingUtilities; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.plaf.basic.BasicComboBoxRenderer; + +import org.apache.log4j.Logger; +import org.geneontology.oboedit.datamodel.OBOClass; +import org.swixml.SwingEngine; + +import phenote.datamodel.CharField; +import phenote.datamodel.CharFieldManager; +import phenote.datamodel.CharacterI; +import phenote.datamodel.TermNotFoundException; +import phenote.gui.field.CharFieldGui.CharFieldGuiEx; +import phenote.gui.selection.SelectionManager; +import phenote.util.FileUtil; +import ca.odell.glazedlists.matchers.AbstractMatcherEditor; + +/** + * @author Jim Balhoff + * Provides a search panel for filtering character lists by charfield values. + */ +public class CharFieldMatcherEditor extends AbstractMatcherEditor<CharacterI> { + + private JPanel filterContainer; // initialized by swix + private JComboBox charFieldPopup; // initialized by swix + private JPanel inputFieldContainer; // initialized by swix + private ButtonGroup modeRadioButton; // initialized by swix + private JRadioButton exactModeRadioButton; + private JRadioButton inheritModeRadioButton; + private TermCompList ontologyInputField; + private JTextField textInputField; + private List<CharField> charFields; + private CharField editedCharField; + private Mode filterMode; + private String filter; + private boolean ignoreActions = false; + + + /** + * Creates a new CharFieldMatcherEditor which will filter characters composed of the CharFields in charFields. + */ + public CharFieldMatcherEditor(List<CharField> charFields) { + if (charFields.size() < 1) log().error("Filter field initialized with no charfields"); + this.loadPanelLayout(); + this.charFields = charFields; + this.editedCharField = this.charFields.get(0); + this.filterMode = Mode.INHERIT; + this.ontologyInputField = (TermCompList)(CharFieldGui.makePostCompTermList(this.editedCharField, "", 0)); + this.ontologyInputField.setSelectionManager(new SelectionManager()); // make sure the TermCompList doesn't update the term info panel + this.ontologyInputField.getJComboBox().setToolTipText(this.filterContainer.getToolTipText()); + this.ontologyInputField.getJComboBox().addActionListener(new FilterActionListener()); + this.textInputField = new JTextField(); + this.textInputField.setToolTipText(this.filterContainer.getToolTipText()); + this.textInputField.getDocument().addDocumentListener(new FilterDocumentListener()); + this.charFieldPopup.setRenderer(new CharFieldRenderer()); + this.updateGUI(); + } + + /** + * Sets the charfields which the user can choose from for filtering characters. + */ + public void setCharFields(List<CharField> charFields) { + this.charFields = charFields; + this.setEditedCharField(charFields.get(0)); + this.updateGUI(); + } + + /** + * Sets the charfield used to filter the characters + */ + public void setEditedCharField(CharField charField) { + this.editedCharField = charField; + this.updateGUI(); + this.fireChange(); + } + + /** + * Sets the edited charfield according to the currently selected charfield in interface. + * Called by charfield popup button. + */ + public void updateEditedCharField() { + if (this.ignoreActions) return; + this.setEditedCharField((CharField)(this.charFieldPopup.getSelectedItem())); + } + + /** + * Sets the filter value according to the current input in interface. + * Called by the free text or term filter input field. + */ + public void updateFilter() { + if (this.ignoreActions) return; + if (this.editedCharField.isTerm()) { + try { + final OBOClass term = this.ontologyInputField.getCurrentOboClass(); + this.setFilter(term.getID(), this.ontologyInputField); + } catch (CharFieldGuiEx e) { + Object item = this.ontologyInputField.getJComboBox().getSelectedItem(); + this.setFilter((item == null ? null : item.toString()), this.ontologyInputField); + } + } else { + this.setFilter(this.textInputField.getText(), this.textInputField); + } + } + + /** + * Returns the current filter value. For an ontology term this will be an ID. + */ + public String getFilter() { + return this.filter; + } + + /** + * Sets the current text value to filter on. + * @param text The filter text. For an ontology term this should be the ID. + * @param source The source of the filter input. + */ + public void setFilter(String text, Object source) { + this.filter = text; + this.fireChange(); + if (!((source.equals(this.ontologyInputField)) || (source.equals(this.textInputField)))) { + this.updateGUI(); + } + } + + /** + * Sets the filter mode to EXACT. + * This is called by the mode radio button. + */ + public void setExactFilterMode() { + if (this.ignoreActions) return; + this.setFilterMode(Mode.EXACT); + } + + /** + * Sets the filter mode to INHERIT. + * This is called by the mode radio button. + */ + public void setInheritFilterMode() { + if (this.ignoreActions) return; + this.setFilterMode(Mode.INHERIT); + } + + /** + * Sets the filter mode used for matching ontology terms. + */ + public void setFilterMode(Mode mode) { + this.filterMode = mode; + this.fireChange(); + this.updateGUI(); + } + + /** + * Returns the filter mode used for matching ontology terms. + */ + public Mode getFilterMode() { + return this.filterMode; + } + + /** + * Returns the panel containing the filter interface. + */ + public JComponent getComponent() { + return this.filterContainer; + } + + private void fireChange() { + this.fireChanged(new CharFieldMatcher(this.editedCharField, this.filter, this.filterMode.equals(Mode.INHERIT))); + } + + private void updateGUI() { + this.ignoreActions = true; + this.charFieldPopup.setModel(new DefaultComboBoxModel(new Vector<CharField>(this.charFields))); + this.charFieldPopup.setSelectedItem(this.editedCharField); + this.exactModeRadioButton.setSelected(this.filterMode.equals(Mode.EXACT)); + this.inheritModeRadioButton.setSelected(this.filterMode.equals(Mode.INHERIT)); + this.inputFieldContainer.removeAll(); + for (AbstractButton button : Collections.list(modeRadioButton.getElements())) { + button.setEnabled(this.editedCharField.isTerm()); + } + if (this.editedCharField.isTerm()) { + this.inputFieldContainer.add(this.ontologyInputField.getJComboBox()); + this.ontologyInputField.setText(this.labelForTermID(this.getFilter())); + this.ontologyInputField.getCompListSearcher().setOntologies(this.editedCharField.getOntologyList()); + } else { + this.textInputField.setText(this.getFilter()); + this.inputFieldContainer.add(this.textInputField); + } + this.inputFieldContainer.validate(); + this.inputFieldContainer.repaint(); + this.ignoreActions = false; + } + + + /** Instantiates interface objects from Swixml file */ + private void loadPanelLayout() { + SwingEngine swix = new SwingEngine(this); + try { + swix.render(FileUtil.findUrl("filter_field.xml")); + } catch (Exception e) { + log().fatal("Unable to render character table interface", e); + } + } + + private String labelForTermID(String id) { + try { + return CharFieldManager.inst().getOboClass(id).getName(); + } catch (TermNotFoundException e) { + return id; + } + } + + /** + * Mode for filtering characters with ontology terms. + * EXACT matches only the same term. + * INHERIT matches the same term and any that are descendants. + */ + protected static enum Mode {EXACT, INHERIT} + + /** + * Listens to actions from JComboBox of ontologyInputField. + * Triggers filtering based on changed term selection. + */ + private class FilterActionListener implements ActionListener { + + public void actionPerformed(ActionEvent e) { + // need to make sure the TermCompList receives the ActionEvent and updates its OBOClass before we do anything + SwingUtilities.invokeLater(new Runnable() { + public void run() { + CharFieldMatcherEditor.this.updateFilter(); + } + }); + } + + } + + /** + * Listens to textInputField to filter while the user types. + */ + private class FilterDocumentListener implements DocumentListener { + + public void changedUpdate(DocumentEvent e) { + this.update(); + } + + public void insertUpdate(DocumentEvent e) { + this.update(); + } + + public void removeUpdate(DocumentEvent e) { + this.update(); + } + + private void update() { + CharFieldMatcherEditor.this.updateFilter(); + } + + } + + /** + * Allows CharFields to be used as elements for a JList. + * Displays the name of the CharField. + */ + @SuppressWarnings("serial") + private static class CharFieldRenderer extends BasicComboBoxRenderer { + + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + if (value instanceof CharField) { + final CharField charField = (CharField)value; + return super.getListCellRendererComponent(list, charField.getName(), index, isSelected, cellHasFocus); + } else { + log().error("List item is not a charfield"); + return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + } + } + + } + + private static Logger log() { + return Logger.getLogger(CharFieldMatcherEditor.class); + } + +} Modified: phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java 2007-10-18 17:31:24 UTC (rev 1068) +++ phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -51,7 +51,7 @@ //void setSearchAll(boolean s) { searchAll = s; } /** Set the ontology to search. Ontology chooser may set this */ - void setOntology(Ontology o) { + public void setOntology(Ontology o) { //setSearchAll(false); // ?? //ontology = o; // re init or else will modify list passed in in setOntologies @@ -59,7 +59,7 @@ ontologyList.add(o); } - void setOntologies(List<Ontology> l) { + public void setOntologies(List<Ontology> l) { ontologyList = l; // (List<Ontology>)l.clone(); cant clone interfaces } Modified: phenote/trunk/src/java/phenote/gui/field/TermCompList.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-10-18 17:31:24 UTC (rev 1068) +++ phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -26,7 +26,7 @@ import phenote.gui.selection.UseTermEvent; import phenote.gui.selection.UseTermListener; -class TermCompList extends AbstractAutoCompList { +public class TermCompList extends AbstractAutoCompList { private OBOClass currentOboClass = null; // only term comp lists need ontology choosers - if that changes move to AACL @@ -35,7 +35,7 @@ private JButton postCompButton; - protected TermCompList(CharField cf,int minCompChars) { + public TermCompList(CharField cf,int minCompChars) { // AbstractAutoCompList constructor - does pre-populating if minCompChars==0 super(cf,minCompChars); init(); @@ -144,7 +144,7 @@ * Throws exception if there isnt a current obo class, if the user * has typed something that isnt yet a term - hasnt selected a term */ - OBOClass getCurrentOboClass() throws CharFieldGuiEx { + public OBOClass getCurrentOboClass() throws CharFieldGuiEx { if (currentOboClass == null) throw new CharFieldGuiEx("term is null"); if (!currentOboClass.getName().equals(getText())) throw new CharFieldGuiEx("(obo class " + currentOboClass + " and input " + getText() + Added: phenote/trunk/src/java/phenote/util/EverythingEqualComparator.java =================================================================== --- phenote/trunk/src/java/phenote/util/EverythingEqualComparator.java (rev 0) +++ phenote/trunk/src/java/phenote/util/EverythingEqualComparator.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -0,0 +1,14 @@ +/** + * + */ +package phenote.util; + +import java.util.Comparator; + +public class EverythingEqualComparator<T> implements Comparator<T> { + + public int compare(T o1, T o2) { + return 0; + } + +} \ No newline at end of file Added: phenote/trunk/test/java/phenote/gui/field/CharFieldMatcherEditorTest.java =================================================================== --- phenote/trunk/test/java/phenote/gui/field/CharFieldMatcherEditorTest.java (rev 0) +++ phenote/trunk/test/java/phenote/gui/field/CharFieldMatcherEditorTest.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -0,0 +1,77 @@ +package phenote.gui.field; + +import java.io.File; +import java.lang.reflect.InvocationTargetException; + +import javax.swing.SwingUtilities; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +import phenote.config.Config; +import phenote.config.ConfigException; +import phenote.dataadapter.CharacterListManager; +import phenote.dataadapter.LoadSaveManager; +import phenote.datamodel.CharFieldException; +import phenote.datamodel.CharFieldManager; +import phenote.datamodel.CharacterI; +import phenote.main.Phenote; +import ca.odell.glazedlists.EventList; +import ca.odell.glazedlists.FilterList; + +public class CharFieldMatcherEditorTest { + + private FilterList<CharacterI> filteredList; + private CharFieldMatcherEditor matcherEditor; + + @BeforeClass public static void initialize() throws ConfigException { + Phenote.resetAllSingletons(); + Config.inst().setConfigFile("test.cfg"); + Phenote phenote = Phenote.getPhenote(); + phenote.initOntologies(); + } + + @Before public void setup() { + this.matcherEditor = new CharFieldMatcherEditor(CharFieldManager.inst().getCharFieldList()); + this.filteredList = new FilterList<CharacterI>(this.getTestData(), matcherEditor); + } + + @Test public void getComponent() throws InterruptedException, InvocationTargetException { + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + Assert.assertNotNull("Gui component should not be null", matcherEditor.getComponent()); + } + }); + } + + @Test public void testFilter() throws CharFieldException, InterruptedException, InvocationTargetException { + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + try { + matcherEditor.setEditedCharField(CharFieldManager.inst().getCharFieldForName("Publication")); + matcherEditor.setFilter("wayne", this); + Assert.assertTrue("No characters should match", filteredList.isEmpty()); + matcherEditor.setFilter("har", this); + Assert.assertEquals("Two characters should match", 2, filteredList.size()); + matcherEditor.setEditedCharField(CharFieldManager.inst().getCharFieldForName("Entity")); + matcherEditor.setExactFilterMode(); + matcherEditor.setFilter("TAO:0000108", this); + Assert.assertEquals("One character should match", 1, filteredList.size()); + matcherEditor.setInheritFilterMode(); + Assert.assertEquals("Three characters should match", 3, filteredList.size()); + } catch (CharFieldException e) { + Assert.fail(e.getMessage()); + } + } + }); + } + + private EventList<CharacterI> getTestData() { + final File f = new File("test/testfiles/CharFieldMatcherEditorTest.tab"); + final CharacterListManager charManager = new CharacterListManager(); + new LoadSaveManager(charManager).loadData(f); + return charManager.getCharacterList().getList(); + } +} Added: phenote/trunk/test/java/phenote/gui/field/CharFieldMatcherTest.java =================================================================== --- phenote/trunk/test/java/phenote/gui/field/CharFieldMatcherTest.java (rev 0) +++ phenote/trunk/test/java/phenote/gui/field/CharFieldMatcherTest.java 2007-10-18 18:57:19 UTC (rev 1069) @@ -0,0 +1,64 @@ +package phenote.gui.field; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import phenote.config.Config; +import phenote.config.ConfigException; +import phenote.datamodel.CharField; +import phenote.datamodel.CharFieldException; +import phenote.datamodel.CharFieldManager; +import phenote.datamodel.CharacterI; +import phenote.datamodel.CharacterIFactory; +import phenote.main.Phenote; + +public class CharFieldMatcherTest { + + @BeforeClass public static void initialize() throws ConfigException { + Phenote.resetAllSingletons(); + Config.inst().setConfigFile("test.cfg"); + Phenote phenote = Phenote.getPhenote(); + phenote.initOntologies(); + } + + @Test public void testMatchesFreeText() throws CharFieldException { + final CharField pubField = CharFieldManager.inst().getCharFieldForName("Publication"); + final CharacterI character = CharacterIFactory.makeChar(); + character.setValue(pubField, "testpub"); + final CharFieldMatcher internalMatcher = new CharFieldMatcher(pubField, "stp", false); + Assert.assertTrue("Should match internal string", internalMatcher.matches(character)); + final CharFieldMatcher unMatcher = new CharFieldMatcher(pubField, "akz", false); + Assert.assertFalse("Shouldn't match unmatching text", unMatcher.matches(character)); + final CharFieldMatcher upperMatcher = new CharFieldMatcher(pubField, "TEST", false); + Assert.assertTrue("Should match case-insensitive", upperMatcher.matches(character)); + final CharFieldMatcher inheritMatcher = new CharFieldMatcher(pubField, "test", true); + Assert.assertTrue("Should ignore inherit flag", inheritMatcher.matches(character)); + final CharFieldMatcher nullMatcher = new CharFieldMatcher(pubField, null, false); + Assert.assertTrue("Null search should match anything", nullMatcher.matches(character)); + final CharFieldMatcher emptyMatcher = new CharFieldMatcher(pubField, "", false); + Assert.assertTrue("Empty string should match anything", emptyMatcher.matches(character)); + } + + @Test public void testMatchesTerm() throws CharFieldException { + // for this test to work TAO:0001161 (pectoral fin) must descend from TAO:0000108 (fin) + // TAO:0000277 (scale) must not inherit from fin + // perhaps these facts could be tested to make sure + final CharField entityField = CharFieldManager.inst().getCharFieldForName("Entity"); + final CharacterI character = CharacterIFactory.makeChar(); + character.setValue(entityField, "TAO:0001161"); + final CharFieldMatcher sameExactMatcher = new CharFieldMatcher(entityField, "TAO:0001161", false); + Assert.assertTrue("Should match same term ID", sameExactMatcher.matches(character)); + final CharFieldMatcher differentExactMatcher = new CharFieldMatcher(entityField, "TAO:0000108", false); + Assert.assertFalse("Shouldn't match different term ID", differentExactMatcher.matches(character)); + final CharFieldMatcher inheritsMatcher = new CharFieldMatcher(entityField, "TAO:0000108", true); + Assert.assertTrue("Should match descendant term", inheritsMatcher.matches(character)); + final CharFieldMatcher noInheritMatcher = new CharFieldMatcher(entityField, "TAO:0000277", true); + Assert.assertFalse("Should not match non-descendant term", noInheritMatcher.matches(character)); + final CharFieldMatcher nullMatcher = new CharFieldMatcher(entityField, null, true); + Assert.assertTrue("Null search should match anything", nullMatcher.matches(character)); + final CharFieldMatcher badTextMatcher = new CharFieldMatcher(entityField, "blah", true); + Assert.assertFalse("Shouldn't match with bad input text", badTextMatcher.matches(character)); + } + +} Added: phenote/trunk/test/testfiles/CharFieldMatcherEditorTest.tab =================================================================== --- phenote/trunk/test/testfiles/CharFieldMatcherEditorTest.tab (rev 0) +++ phenote/trunk/test/testfiles/CharFieldMatcherEditorTest.tab 2007-10-18 18:57:19 UTC (rev 1069) @@ -0,0 +1,5 @@ +Publication Taxon ID Taxon Name Catalog Number Specimen Count Preparation Entity ID Entity Name Quality ID Quality Name Measurement Unit ID Unit Name Textual Description Image URI Notes Date Created +tom TAO:0001161 pectoral fin Oct 17, 2007 +dick TAO:0000108 fin Oct 17, 2007 +harry TAO:0000107 eye Oct 17, 2007 +harold TAO:0001161 pectoral fin Oct 17, 2007 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-18 17:31:21
|
Revision: 1068 http://obo.svn.sourceforge.net/obo/?rev=1068&view=rev Author: mgibson Date: 2007-10-18 10:31:24 -0700 (Thu, 18 Oct 2007) Log Message: ----------- make locus allele 1 type term for proforma parser ontology maker Modified Paths: -------------- phenote/trunk/conf/fly_gt.cfg Modified: phenote/trunk/conf/fly_gt.cfg =================================================================== --- phenote/trunk/conf/fly_gt.cfg 2007-10-18 14:31:13 UTC (rev 1067) +++ phenote/trunk/conf/fly_gt.cfg 2007-10-18 17:31:24 UTC (rev 1068) @@ -34,7 +34,7 @@ interface="default" destination_field="GT" group_adapter="phenote.dataadapter.fly.FlyGenotypeGroupAdapter"/> - <ns:field name="Locus Allele 1" datatag="LA1" groups="genotypeMaker"/> + <ns:field name="Locus Allele 1" datatag="LA1" type="TERM" groups="genotypeMaker"/> <ns:field name="Locus Allele 2" datatag="LA2" groups="genotypeMaker"/> <ns:field name="Non Locus Alleles" datatag="NLA" groups="genotypeMaker"/> <ns:field name="Accesories" datatag="ACC" groups="genotypeMaker"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-18 14:31:09
|
Revision: 1067 http://obo.svn.sourceforge.net/obo/?rev=1067&view=rev Author: mgibson Date: 2007-10-18 07:31:13 -0700 (Thu, 18 Oct 2007) Log Message: ----------- the beginings of a proforma parser for flybase parses out alleles to make genotypes with in genotype maker still much work to be done here new concept OntologyMaker make ontologies dynamically the group adapter is really just an ontology maker i refactored group adapter to be such but really needs more refactoring im wondering if config should be a generic "plugin" config or just onotology-maker - not sure how groups would interact with "plugins" i think a group could have a plugin - it can certainly have an ontology maker and an ontology maker like proforma parser is not a group - so ontology makers dont necasarily come from groups but can as with genotype maker - and worms ref maker - hmmm need to think about this still need to - populate multiple fields take out gui if not configged config (hardwired right now to genotype maker) parser not getting multiple alleles or those other thingies ... also lists for fields Modified Paths: -------------- phenote/trunk/conf/character_table_panel.xml phenote/trunk/conf/fly_gt.cfg phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/dataadapter/AbstractGroupAdapter.java phenote/trunk/src/java/phenote/dataadapter/GroupAdapterI.java phenote/trunk/src/java/phenote/gui/CharacterTableController.java phenote/trunk/src/java/phenote/gui/field/FieldPanel.java Added Paths: ----------- phenote/trunk/data/fly/ phenote/trunk/data/fly/ds868.proforma phenote/trunk/src/java/phenote/dataadapter/OntologyMaker.java phenote/trunk/src/java/phenote/dataadapter/OntologyMakerI.java phenote/trunk/src/java/phenote/dataadapter/fly/ProformaAlleleParser.java Modified: phenote/trunk/conf/character_table_panel.xml =================================================================== --- phenote/trunk/conf/character_table_panel.xml 2007-10-18 14:29:26 UTC (rev 1066) +++ phenote/trunk/conf/character_table_panel.xml 2007-10-18 14:31:13 UTC (rev 1067) @@ -7,6 +7,8 @@ </scrollpane> <panel id="buttonPanel"> <gridbagconstraints gridx="0" gridy="1" weightx="1" insets="10,10,10,10" fill="GridBagConstraints.HORIZONTAL"/> + <button id="ontolMakerButton" text="Make Ontology" action="makeOntology" toolTipText="make ontology for field(s)"/> + <panel size="80,1" preferredSize="80,1"/> <button id="addButton" text="New" action="addNewCharacter" toolTipText="Add new row"/> <button id="duplicateButton" text="Duplicate" action="duplicateSelectedCharacters" toolTipText="Duplicate selected rows"/> <button id="deleteButton" text="Delete" action="deleteSelectedCharacters" toolTipText="Delete selected rows"/> Modified: phenote/trunk/conf/fly_gt.cfg =================================================================== --- phenote/trunk/conf/fly_gt.cfg 2007-10-18 14:29:26 UTC (rev 1066) +++ phenote/trunk/conf/fly_gt.cfg 2007-10-18 14:31:13 UTC (rev 1067) @@ -39,6 +39,10 @@ <ns:field name="Non Locus Alleles" datatag="NLA" groups="genotypeMaker"/> <ns:field name="Accesories" datatag="ACC" groups="genotypeMaker"/> + <!-- ns:plugin launcher="button" launch-group/gui="genotypeMaker" + launchText="get alleles from proforma" + term-maker="phenote.dataadapter.fly.ProformaAlleleParser" --> + <!-- MAIN/DEFAULT TAB --> <ns:group name="default" title="Main" container="tab" interface="default"/> Added: phenote/trunk/data/fly/ds868.proforma =================================================================== --- phenote/trunk/data/fly/ds868.proforma (rev 0) +++ phenote/trunk/data/fly/ds868.proforma 2007-10-18 14:31:13 UTC (rev 1067) @@ -0,0 +1,2173 @@ +! PUBLICATION PROFORMA Version 27: 25 June 2007 +! +! P. PUBLICATION DATA +! +! P22. Publication FBrf *U :FBrf0190216 +! P32. FBrf to be merged into P22. *N : +! P1. Type of publication [CV] *T :paper +! P21. Journal etc unique ID *W/*U (starw.nice) :9003 +! P2. Journal etc abbreviation *w/*s : +! P20. Series abbreviation *S : +! P3. Volume designation *y : +! P4. Issue number *Y : +! P11a. Page range *z : +! P11b. URL *R : +! P11c. accession number : +! P11d. DOI : +! P10. Year of publication *t : +! P12. Author(s) *a-r : +! P16. Title of publication (excl. part-title) *u : +! P17. Part-number and title *v : +! P13. Language(s) of paper [CV] *L :English +! P14. Additional language(s) of abstract(s) [CV]*A : +! P8. Publisher (if P1 = book) *x : +! P24. Place of publication (if P1 = book) *P : +! P25. Biosis ID *B : +! P26. Medline ID *M : +! P27. Zoo Record ID *Q : +! P29. ISBN if P1=book *I : +! P33. Conference abstract text *D : +! P30. Also published as (FBrf) *C : +! P31. Related publication (FBrf) *E : +! P23. Text of personal communication *F : +! P18. Associated text *G : +! P19. Internal notes *H : +! P38. File deposited to archive *K : +! P39. Delete this FBrf from the bibliography TAKE CARE : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! G. GENE DATA (excluding kilobase distance data) +! If this publication includes information to enter concerning a gene, +! move to the start of the line below and include the Gene proforma. +! GENE PROFORMA Version 46: 3 Aug 2007 +! +! G1a. Gene symbol to use in database *a :Ras85D +! G1b. Gene symbol used in paper *i :Ras +! G1e. Action - rename this gene symbol : +! G1f. Action - merge these genes : +! G1g. Is G1a the valid symbol of a gene in FlyBase? :y +! G30. Gene category (if gene is new to FlyBase) [SO CV] *t : +! G2a. Gene name to use in database *e : +! G2b. Gene name used in paper *V : +! G2c. Database gene name(s) to replace *V : +! G27. Etymology : +! G31a. Action - delete gene - TAKE CARE : +! G31b. Action - dissociate G1a from FBrf - TAKE CARE : +! G20a. G1a in title/abstract? Reviews - G1a significant subject? NSC :n +! G20b. G1a wildtype expression in wildtype analysed? NSC :n +! G20c. G1a expression analysed in mutant/perturbed bckgrd? NSC :n +! G20d. G1a genome annotation analysed? NSC :n +! G20e. G1a product physical interaction analysed? NSC :n +! G20f. G1a cis-regulatory elements characterized? NSC :n +! G20g. G1a gene model decorated - alleles/rescue frags/breaks? NSC :n +! G20h. G1a polymorphism data reported? NSC :n +! G10a. Cytological map posn if by chromosome in situ *c : +! G10b. Cytological map posn if details unspecified *c : +! G11. Comments on cytological map position [SoftCV] *D : +! G25. Relationship to clone [SoftCV]*s : +! G19a. Gene order/orientation from molecular mapping [SoftCV]*s : +! G19b. Comments, not allele-specific -- molecular *s : +! G12a. Comments, not allele-specific - biological role *r : +! G12b. Comments, not allele-specific -- mutants *p : +! G14a. Comments, not allele-specific -- other *u : +! G14b. Identification : +! G28a. Comments -- relationship to other genes [free text] *q : +! G28b. Source for merge/identity of [SoftCV] *q : +! G29a. Functional comp/gain of function -- structured [SoftCV] *q : +! G29b. Functional comp/gain of function [free text] *q : +! G18. Gene(s) stated to interact genetically with G1a *p : +! G22. Homologous gene in reference species of drosophilid*M : +! G24a. GO -- Cellular component | evidence [CV] *f : +! G24b. GO -- Molecular function | evidence [CV] *F : +! G24c. GO -- Biological process | evidence [CV] *d : +! G24e. GO specific internal note *H : +! G24f. GO -- date entered or last reviewed :y +! G15. Internal notes *W : +! RARE FIELDS MODULE: +! move to the start of the line below this and include the Gene Modules pro. +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! GA. ALLELE DATA FOR THIS GENE (excluding kilobase distance data) +! If there is any data to enter regarding a specific allele of this gene, +! move to the start of the line below this and include the Allele proforma. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :Ras85D[V12.Scer\UAS] +! GA1b. Allele symbol used in paper *i : +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k :cell death decrease | third instar larval stage 2 | somatic clone { Scer\GAL4[Act5C.PI] } +! GA17. Phenotype [CV, body part(s) where manifest] *k :dorsal mesothoracic disc & stage 2 third instar larva { Scer\GAL4[Act5C.PI] } +! GA7a. Phenotype [free text] *k :Cells in regions of the late third instar wing disc which are normally sensitive to irradiation induced apoptosis become resistant to it if they are part of @Ras85D[V12.Scer\UAS]@; @Scer\GAL4[Act5C.PI]@ somatic clones. (40Gy of &ggr; rays; assayed after 4hrs) +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I :P{UAS-Ras85D.V12} +! GA10b. Name in paper for construct *L :UAS-Ras[v12] +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u : +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W :"Ras85D[V12.Scer\UAS]" is a guess for "UAS-Ras[v12]" based on common usage. ds070808 +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another gene to curate for this publication, move to the +! start of the line below this and include the Gene proforma again. +! GENE PROFORMA Version 46: 3 Aug 2007 +! +! G1a. Gene symbol to use in database *a :Dp +! G1b. Gene symbol used in paper *i :dDP +! G1e. Action - rename this gene symbol : +! G1f. Action - merge these genes : +! G1g. Is G1a the valid symbol of a gene in FlyBase? :y +! G30. Gene category (if gene is new to FlyBase) [SO CV] *t : +! G2a. Gene name to use in database *e : +! G2b. Gene name used in paper *V : +! G2c. Database gene name(s) to replace *V : +! G27. Etymology : +! G31a. Action - delete gene - TAKE CARE : +! G31b. Action - dissociate G1a from FBrf - TAKE CARE : +! G20a. G1a in title/abstract? Reviews - G1a significant subject? NSC :y +! G20b. G1a wildtype expression in wildtype analysed? NSC :n +! G20c. G1a expression analysed in mutant/perturbed bckgrd? NSC :n +! G20d. G1a genome annotation analysed? NSC :n +! G20e. G1a product physical interaction analysed? NSC :n +! G20f. G1a cis-regulatory elements characterized? NSC :n +! G20g. G1a gene model decorated - alleles/rescue frags/breaks? NSC :n +! G20h. G1a polymorphism data reported? NSC :n +! G10a. Cytological map posn if by chromosome in situ *c : +! G10b. Cytological map posn if details unspecified *c : +! G11. Comments on cytological map position [SoftCV] *D : +! G25. Relationship to clone [SoftCV]*s : +! G19a. Gene order/orientation from molecular mapping [SoftCV]*s : +! G19b. Comments, not allele-specific -- molecular *s : +! G12a. Comments, not allele-specific - biological role *r : +! G12b. Comments, not allele-specific -- mutants *p : +! G14a. Comments, not allele-specific -- other *u : +! G14b. Identification : +! G28a. Comments -- relationship to other genes [free text] *q : +! G28b. Source for merge/identity of [SoftCV] *q : +! G29a. Functional comp/gain of function -- structured [SoftCV] *q : +! G29b. Functional comp/gain of function [free text] *q : +! G18. Gene(s) stated to interact genetically with G1a *p : +! G22. Homologous gene in reference species of drosophilid*M : +! G24a. GO -- Cellular component | evidence [CV] *f : +! G24b. GO -- Molecular function | evidence [CV] *F : +! G24c. GO -- Biological process | evidence [CV] *d : +! G24e. GO specific internal note *H : +! G24f. GO -- date entered or last reviewed :y +! G15. Internal notes *W : +! RARE FIELDS MODULE: +! move to the start of the line below this and include the Gene Modules pro. +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! GA. ALLELE DATA FOR THIS GENE (excluding kilobase distance data) +! If there is any data to enter regarding a specific allele of this gene, +! move to the start of the line below this and include the Allele proforma. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :Dp[a2] +! GA1b. Allele symbol used in paper *i :dDP[a2] +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k :(with Dp[a4]) cell death decrease | third instar larval stage 2 +! GA17. Phenotype [CV, body part(s) where manifest] *k :(with Dp[a4]) dorsal mesothoracic disc & stage 2 third instar larva +! GA7a. Phenotype [free text] *k :In wild-type animals, exposure to 40Gy of &ggr; rays induces a distinct pattern of apoptosis in the wing disc, focussed on the the wing pouch, but excluding the DV boundary region and prospective vein. In @Dp[a4]@/@Dp[a2]@ animals, the same irradiation treatment induces a different pattern of apoptosis, a smaller number of apoptotic cells are clustered in the center of the wing pouch, many in the D-V boundary region or prospective veins. This new pattern of apoptosis is consistent over time and follows the same kinetics as in wild-type. Marker analysis suggests that patterning of the wing disc (including vein and D-V boundary specification) is normal in these animals. +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S :(with Dp[a4]) dorsal mesothoracic disc & stage 2 third instar larva, suppressible { Df(3L)X14/+ } +(with Dp[a4]) dorsal mesothoracic disc & stage 2 third instar larva, suppressible { Df(3L)XR38/+ } +(with Dp[a4]) dorsal mesothoracic disc & stage 2 third instar larva, suppressible { Ark[CD4]/+ } +! GA28c. Genetic interaction [free text] *S :Ectopic cell radiation induced cell death seen at the dorsal-ventral boundary in the wing discs of lated third instar @Dp[a4]@/@Dp[a2]@ animals is partially suppressed by @Df(3L)X14@/+, but not by @Df(3L)XR38@/+ or @Ark[CD4]@/+. +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u : +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :Dp[a4] +! GA1b. Allele symbol used in paper *i :dDP[a4] +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k :(with Dp[a2]) cell death decrease | third instar larval stage 2 +! GA17. Phenotype [CV, body part(s) where manifest] *k :(with Dp[a2]) dorsal mesothoracic disc & stage 2 third instar larva +! GA7a. Phenotype [free text] *k :In wild-type animals, exposure to 40Gy of &ggr; rays induces a distinct pattern of apoptosis in the wing disc, focussed on the the wing pouch, but excluding the DV boundary region and prospective vein. In @Dp[a4]@/@Dp[a2]@ animals, the same irradiation treatment induces a different pattern of apoptosis, a smaller number of apoptotic cells are clustered in the center of the wing pouch, many in the D-V boundary region or prospective veins. This new pattern of apoptosis is consistent over time and follows the same kinetics as in wild-type. Marker analysis suggests that patterning of the wing disc (including vein and D-V boundary specification) is normal in these animals. +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u : +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another gene to curate for this publication, move to the +! start of the line below this and include the Gene proforma again. +! GENE PROFORMA Version 46: 3 Aug 2007 +! +! G1a. Gene symbol to use in database *a :N +! G1b. Gene symbol used in paper *i :N +! G1e. Action - rename this gene symbol : +! G1f. Action - merge these genes : +! G1g. Is G1a the valid symbol of a gene in FlyBase? :y +! G30. Gene category (if gene is new to FlyBase) [SO CV] *t : +! G2a. Gene name to use in database *e : +! G2b. Gene name used in paper *V : +! G2c. Database gene name(s) to replace *V : +! G27. Etymology : +! G31a. Action - delete gene - TAKE CARE : +! G31b. Action - dissociate G1a from FBrf - TAKE CARE : +! G20a. G1a in title/abstract? Reviews - G1a significant subject? NSC :n +! G20b. G1a wildtype expression in wildtype analysed? NSC :n +! G20c. G1a expression analysed in mutant/perturbed bckgrd? NSC :n +! G20d. G1a genome annotation analysed? NSC :n +! G20e. G1a product physical interaction analysed? NSC :n +! G20f. G1a cis-regulatory elements characterized? NSC :n +! G20g. G1a gene model decorated - alleles/rescue frags/breaks? NSC :n +! G20h. G1a polymorphism data reported? NSC :n +! G10a. Cytological map posn if by chromosome in situ *c : +! G10b. Cytological map posn if details unspecified *c : +! G11. Comments on cytological map position [SoftCV] *D : +! G25. Relationship to clone [SoftCV]*s : +! G19a. Gene order/orientation from molecular mapping [SoftCV]*s : +! G19b. Comments, not allele-specific -- molecular *s : +! G12a. Comments, not allele-specific - biological role *r : +! G12b. Comments, not allele-specific -- mutants *p : +! G14a. Comments, not allele-specific -- other *u : +! G14b. Identification : +! G28a. Comments -- relationship to other genes [free text] *q : +! G28b. Source for merge/identity of [SoftCV] *q : +! G29a. Functional comp/gain of function -- structured [SoftCV] *q : +! G29b. Functional comp/gain of function [free text] *q : +! G18. Gene(s) stated to interact genetically with G1a *p : +! G22. Homologous gene in reference species of drosophilid*M : +! G24a. GO -- Cellular component | evidence [CV] *f : +! G24b. GO -- Molecular function | evidence [CV] *F : +! G24c. GO -- Biological process | evidence [CV] *d : +! G24e. GO specific internal note *H : +! G24f. GO -- date entered or last reviewed :y +! G15. Internal notes *W : +! RARE FIELDS MODULE: +! move to the start of the line below this and include the Gene Modules pro. +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! GA. ALLELE DATA FOR THIS GENE (excluding kilobase distance data) +! If there is any data to enter regarding a specific allele of this gene, +! move to the start of the line below this and include the Allele proforma. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :N[ICN.Scer\UAS] +! GA1b. Allele symbol used in paper *i : +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k :cell death increase | third instar larval stage 2 | somatic clone { Scer\GAL4[Act5C.PI] } +! GA17. Phenotype [CV, body part(s) where manifest] *k :dorsal mesothoracic disc & stage 2 third instar larva | somatic clone { Scer\GAL4[Act5C.PI] } +! GA7a. Phenotype [free text] *k :Cells in regions of the late third instar wing disc which are normally insensitive to irradiation induced apoptosis become sensitive to it if they are part of @N[ICN.Scer\UAS]@; @Scer\GAL4[Act5C.PI]@ somatic clones. (40Gy of &ggr; rays; assayed after 4hrs) +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I :P{UAS-N.ICN} +! GA10b. Name in paper for construct *L :UAS-Nic +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u : +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another gene to curate for this publication, move to the +! start of the line below this and include the Gene proforma again. + +! GENE PROFORMA Version 46: 3 Aug 2007 +! +! G1a. Gene symbol to use in database *a :E2f +! G1b. Gene symbol used in paper *i :de2f1 +! G1e. Action - rename this gene symbol : +! G1f. Action - merge these genes : +! G1g. Is G1a the valid symbol of a gene in FlyBase? :y +! G30. Gene category (if gene is new to FlyBase) [SO CV] *t : +! G2a. Gene name to use in database *e : +! G2b. Gene name used in paper *V : +! G2c. Database gene name(s) to replace *V : +! G27. Etymology : +! G31a. Action - delete gene - TAKE CARE : +! G31b. Action - dissociate G1a from FBrf - TAKE CARE : +! G20a. G1a in title/abstract? Reviews - G1a significant subject? NSC :y +! G20b. G1a wildtype expression in wildtype analysed? NSC :y +! G20c. G1a expression analysed in mutant/perturbed bckgrd? NSC :n +! G20d. G1a genome annotation analysed? NSC :n +! G20e. G1a product physical interaction analysed? NSC :y +! G20f. G1a cis-regulatory elements characterized? NSC :n +! G20g. G1a gene model decorated - alleles/rescue frags/breaks? NSC :n +! G20h. G1a polymorphism data reported? NSC :n +! G10a. Cytological map posn if by chromosome in situ *c : +! G10b. Cytological map posn if details unspecified *c : +! G11. Comments on cytological map position [SoftCV] *D : +! G25. Relationship to clone [SoftCV]*s : +! G19a. Gene order/orientation from molecular mapping [SoftCV]*s : +! G19b. Comments, not allele-specific -- molecular *s : +! G12a. Comments, not allele-specific - biological role *r : +! G12b. Comments, not allele-specific -- mutants *p : +! G14a. Comments, not allele-specific -- other *u : +! G14b. Identification : +! G28a. Comments -- relationship to other genes [free text] *q : +! G28b. Source for merge/identity of [SoftCV] *q : +! G29a. Functional comp/gain of function -- structured [SoftCV] *q : +! G29b. Functional comp/gain of function [free text] *q : +! G18. Gene(s) stated to interact genetically with G1a *p : +! G22. Homologous gene in reference species of drosophilid*M : +! G24a. GO -- Cellular component | evidence [CV] *f : +! G24b. GO -- Molecular function | evidence [CV] *F : +! G24c. GO -- Biological process | evidence [CV] *d : +! G24e. GO specific internal note *H : +! G24f. GO -- date entered or last reviewed :y +! G15. Internal notes *W : +! RARE FIELDS MODULE: +! move to the start of the line below this and include the Gene Modules pro. +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! GA. ALLELE DATA FOR THIS GENE (excluding kilobase distance data) +! If there is any data to enter regarding a specific allele of this gene, +! move to the start of the line below this and include the Allele proforma. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :E2f[rM729] +! GA1b. Allele symbol used in paper *i :de2f1[729] +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k : +! GA17. Phenotype [CV, body part(s) where manifest] *k : +! GA7a. Phenotype [free text] *k : +! GA28a. Genetic interaction [CV, class, effect] *S :(with E2f[91]) cell death decrease | third instar larval stage 2, UI { E2f2[76Q1]/E2f2[g5] } +! GA28b. Genetic interaction [CV, anatomy, effect] *S :(with E2f[91]) dorsal mesothoracic disc & stage 2 third instar larva, UI { E2f2[76Q1]/E2f2[g5] } +! GA28c. Genetic interaction [free text] *S :In wild-type animals, exposure to 40Gy of &ggr; rays induces a distinct pattern of apoptosis in the wing disc, focussed on the the wing pouch, but excluding the DV boundary region and prospective vein. In @E2f[rM729]@/@E2f[91]@; @E2f2[76Q1]@/@E2f2[g5]@ animals, the same irradiation treatment induces a different pattern of apoptosis a smaller number of apoptotic cells are clustered in the center of the wing pouch, many in the D-V boundary region or prospective veins. +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u : +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :E2f[91] +! GA1b. Allele symbol used in paper *i :de2f1[91] +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k : +! GA17. Phenotype [CV, body part(s) where manifest] *k : +! GA7a. Phenotype [free text] *k : +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u : +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :E2f[i2] +! GA1b. Allele symbol used in paper *i :de2f1[i2] +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k :hypomorph +! GA56. Phenotypic | dominance class [bipartite CV] *k : +! GA17. Phenotype [CV, body part(s) where manifest] *k :dorsal mesothoracic disc & stage 2 third instar larva +! GA7a. Phenotype [free text] *k :In wild-type animals, exposure to 40Gy of &ggr; rays induces a distinct pattern of apoptosis in the wing disc, focussed on the the wing pouch, but excluding the DV boundary region and prospective vein. In @E2f[i2]@ homozygotes, the same irradiation treatment induces less cell death was reduced in the intervein regions but increased cell death at the D/V boundary. +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u : +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :E2f[su89] +! GA1b. Allele symbol used in paper *i :de2f1[su89] +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k : +! GA17. Phenotype [CV, body part(s) where manifest] *k :dorsal mesothoracic disc & stage 2 third instar larva +! GA7a. Phenotype [free text] *k :In wild-type animals, exposure to 40Gy of &ggr; rays induces a distinct pattern of apoptosis in the wing disc, focussed on the the wing pouch, but excluding the DV boundary region and prospective vein. In @E2f[su89]@ homozygotes, some apoptotic cells are present in both prospective vein and DV boundary regions. +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u : +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :E2f[dsRNA.cFa] +! GA1b. Allele symbol used in paper *i :unnamed +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k : +! GA17. Phenotype [CV, body part(s) where manifest] *k : +! GA7a. Phenotype [free text] *k : +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u :dsRNA transcribed from the template was transfected into S2 cells to study the phenotypic consequences of dsRNA interference (RNAi) of the @E2f@ gene. +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another gene to curate for this publication, move to the +! start of the line below this and include the Gene proforma again. +! GENE PROFORMA Version 46: 3 Aug 2007 +! +! G1a. Gene symbol to use in database *a :E2f2 +! G1b. Gene symbol used in paper *i :de2f2 +! G1e. Action - rename this gene symbol : +! G1f. Action - merge these genes : +! G1g. Is G1a the valid symbol of a gene in FlyBase? :y +! G30. Gene category (if gene is new to FlyBase) [SO CV] *t : +! G2a. Gene name to use in database *e : +! G2b. Gene name used in paper *V : +! G2c. Database gene name(s) to replace *V : +! G27. Etymology : +! G31a. Action - delete gene - TAKE CARE : +! G31b. Action - dissociate G1a from FBrf - TAKE CARE : +! G20a. G1a in title/abstract? Reviews - G1a significant subject? NSC :n +! G20b. G1a wildtype expression in wildtype analysed? NSC :n +! G20c. G1a expression analysed in mutant/perturbed bckgrd? NSC :n +! G20d. G1a genome annotation analysed? NSC :n +! G20e. G1a product physical interaction analysed? NSC :y +! G20f. G1a cis-regulatory elements characterized? NSC :n +! G20g. G1a gene model decorated - alleles/rescue frags/breaks? NSC :n +! G20h. G1a polymorphism data reported? NSC :n +! G10a. Cytological map posn if by chromosome in situ *c : +! G10b. Cytological map posn if details unspecified *c : +! G11. Comments on cytological map position [SoftCV] *D : +! G25. Relationship to clone [SoftCV]*s : +! G19a. Gene order/orientation from molecular mapping [SoftCV]*s : +! G19b. Comments, not allele-specific -- molecular *s : +! G12a. Comments, not allele-specific - biological role *r : +! G12b. Comments, not allele-specific -- mutants *p : +! G14a. Comments, not allele-specific -- other *u : +! G14b. Identification : +! G28a. Comments -- relationship to other genes [free text] *q : +! G28b. Source for merge/identity of [SoftCV] *q : +! G29a. Functional comp/gain of function -- structured [SoftCV] *q : +! G29b. Functional comp/gain of function [free text] *q : +! G18. Gene(s) stated to interact genetically with G1a *p : +! G22. Homologous gene in reference species of drosophilid*M : +! G24a. GO -- Cellular component | evidence [CV] *f : +! G24b. GO -- Molecular function | evidence [CV] *F : +! G24c. GO -- Biological process | evidence [CV] *d : +! G24e. GO specific internal note *H : +! G24f. GO -- date entered or last reviewed :y +! G15. Internal notes *W : +! RARE FIELDS MODULE: +! move to the start of the line below this and include the Gene Modules pro. +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! GA. ALLELE DATA FOR THIS GENE (excluding kilobase distance data) +! If there is any data to enter regarding a specific allele of this gene, +! move to the start of the line below this and include the Allele proforma. +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :E2f2[dsRNA.cSa] +! GA1b. Allele symbol used in paper *i :unnamed +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k : +! GA17. Phenotype [CV, body part(s) where manifest] *k : +! GA7a. Phenotype [free text] *k : +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! GA19. Vehicle of assay [CV] *k : +! GA15. Discoverer *w : +! GA11. Progenitor genotype *O : +! GA23a. Notes on origin [SoftCV] *R : +! GA23b. Notes on origin [free text] *R : +! GA12a. Nucleotide/amino acid changes (wrt GA11) [SoftCV]*s : +! GA12b. Molecular modifications (wrt GA11) [free text] *s : +! GA30. Tagged with : +! GA13. Comments not specific to one transcript/product*u :dsRNA transcribed from the template was transfected into S2 cells to study the phenotypic consequences of dsRNA interference (RNAi) of the @E2f2@ gene. +! GA20. Information on availability *v : +! GA33. Accession number (seq cur only) TAKE CARE : +! GA14. Internal notes *W : +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! If there is another allele of this gene to curate for this pub, move to +! the start of the line below this and include the Allele proforma again. + +! ALLELE PROFORMA Version 39: 6 July 2007 +! +! GA1a. Allele symbol to use in database *A :E2f2[76Q1] +! GA1b. Allele symbol used in paper *i :de2f2[76Q1] +! GA1e. Action - rename this allele symbol : +! GA1f. Action - merge these alleles : +! GA1g. Is GA1a the valid symbol of an allele in FlyBase? :y +! GA2a. Allele name to use in database *e : +! GA2b. Allele name used in paper *V : +! GA2c. Database allele name(s) to replace *V : +! GA31. Etymology : +! GA32a. Action - delete allele - TAKE CARE : +! GA32b. Action - dissociate GA1a from FBrf - TAKE CARE : +! GA3. Rank [CV] *k : +! GA4. Allele class [CV] *k : +! GA56. Phenotypic | dominance class [bipartite CV] *k : +! GA17. Phenotype [CV, body part(s) where manifest] *k : +! GA7a. Phenotype [free text] *k :@E2f2[76Q1]@/@E2f2[329]@ @Mpp6[+t4]@ animals have a pattern of irradiation induced apoptosis in the late third instar wing disc which is identical to that seen in wild-type animals. (@Mpp6[+t4]@ is present to rescued loss of @Mpp6@ in @Df(2L)E2f2[329]@. +! GA28a. Genetic interaction [CV, class, effect] *S : +! GA28b. Genetic interaction [CV, anatomy, effect] *S : +! GA28c. Genetic interaction [free text] *S : +! GA29a. Xenogenetic interaction [CV, class, effect] *j : +! GA29b. Xenogenetic interaction [CV, anatomy, effect] *j : +! GA29c. Xenogenetic interaction [free text] *j : +! GA21. Interallelic complementation data (structured) [SoftCV]*Q : +! GA22. Interallelic complementation data (free text) *Q : +! GA10a. Associated construct *I : +! GA10b. Name in paper for construct *L : +! GA10c. Associated insertion - G1a is outwith insert *G : +! GA10d. Name in paper for insertion *N : +! GA10e. Associated insertion - G1a is inside insert *G : +! GA10f. Name in paper for insertion *N : +! GA10g. Associated aberration / cytology + *P/*C : +! GA8. Mutagen [CV] *o : +! ... [truncated message content] |
From: <mg...@us...> - 2007-10-18 14:29:25
|
Revision: 1066 http://obo.svn.sourceforge.net/obo/?rev=1066&view=rev Author: mgibson Date: 2007-10-18 07:29:26 -0700 (Thu, 18 Oct 2007) Log Message: ----------- something totally wierd going on with svn i had to remove my Phenote.java and then svn update it kept telling me my Phenote.java was in the way - wierd anyone know whats up with that? Modified Paths: -------------- phenote/trunk/src/java/phenote/main/Phenote.java Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-17 22:39:26 UTC (rev 1065) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-18 14:29:26 UTC (rev 1066) @@ -104,8 +104,13 @@ if (a != null) System.out.println("log file: "+a.getFile()); else System.out.println("No MAIN File Appender for log4j"); - File f = new File("phenote_log4j.log"); - System.out.println("path of log file "+f.getPath()+" absolute "+f.getAbsolutePath()+" canWrite "+f.canWrite()); + if (a.getFile() != null) { + File f = new File(a.getFile()); //"phenote_log4j.log"); + System.out.println("path of file "+f.getPath()+" absolute "+f.getAbsolutePath()+" canWrite "+f.canWrite()); + } + else { + System.out.println("file for MAIN log appender is null"); + } // writes error events to log ErrorManager.inst().addErrorListener(new LogErrorListener()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-17 22:39:33
|
Revision: 1065 http://obo.svn.sourceforge.net/obo/?rev=1065&view=rev Author: cmungall Date: 2007-10-17 15:39:26 -0700 (Wed, 17 Oct 2007) Log Message: ----------- Modified Paths: -------------- obo-database/trunk/build/Makefile obo-database/trunk/sql/obd-core-views.sql Added Paths: ----------- obo-database/trunk/sql/api/ obo-database/trunk/sql/api/obd-mutable-api.plpgsql Modified: obo-database/trunk/build/Makefile =================================================================== --- obo-database/trunk/build/Makefile 2007-10-17 19:41:31 UTC (rev 1064) +++ obo-database/trunk/build/Makefile 2007-10-17 22:39:26 UTC (rev 1065) @@ -5,7 +5,7 @@ .PRECIOUS: %.obd-createdb %.obd-load: %.obo %.obd-createdb - obd-load-db-from-obo.pl -d $* $(OBD_LOAD_ARGS) $< >& $@.log && touch $@ + obd-load-db-from-obo.pl --split 5000 -d $* $(OBD_LOAD_ARGS) $< >& $@.log && touch $@ .PRECIOUS: %.obd-load %.obd-pgdump: %.obd-load Added: obo-database/trunk/sql/api/obd-mutable-api.plpgsql =================================================================== --- obo-database/trunk/sql/api/obd-mutable-api.plpgsql (rev 0) +++ obo-database/trunk/sql/api/obd-mutable-api.plpgsql 2007-10-17 22:39:26 UTC (rev 1065) @@ -0,0 +1,217 @@ +CREATE OR REPLACE FUNCTION store_node (VARCHAR,VARCHAR,VARCHAR,VARCHAR) + RETURNS INT AS +'DECLARE + v_uid ALIAS FOR $1; + v_label ALIAS FOR $2; + v_uri ALIAS FOR $3; + v_metatype ALIAS FOR $4; + + v_node_id INTEGER; + BEGIN + SELECT INTO v_node_id node_id + FROM node + WHERE uid=v_uid; + IF NOT FOUND THEN + INSERT INTO node + (uid,label,uri,metatype) + VALUES + (v_uid,v_label,v_uri,v_metatype); + RETURN currval(''node_node_id_seq''); + END IF; + RETURN v_node_id; + END; +' LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_node (VARCHAR) RETURNS INT AS +$$ +SELECT store_node($1,null,null,null) +$$ +LANGUAGE 'sql'; + +CREATE OR REPLACE FUNCTION store_relation_node (VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS +$$ +SELECT store_node($1,$2,$3,'R') +$$ +LANGUAGE 'sql'; + +CREATE OR REPLACE FUNCTION store_relation_node (VARCHAR) RETURNS INT AS +$$ +SELECT store_node($1,null,null,'R') +$$ +LANGUAGE 'sql'; + +CREATE OR REPLACE FUNCTION store_class_node (VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS +$$ +SELECT store_node($1,$2,$3,'C') +$$ +LANGUAGE 'sql'; + +CREATE OR REPLACE FUNCTION store_class_node (VARCHAR) RETURNS INT AS +$$ +SELECT store_node($1,NULL,NULL,'C') +$$ +LANGUAGE 'sql'; + +CREATE OR REPLACE FUNCTION store_instance_node (VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS +$$ +SELECT store_node($1,$2,$3,'I') +$$ +LANGUAGE 'sql'; + +CREATE OR REPLACE FUNCTION store_instance_node (VARCHAR,VARCHAR,VARCHAR,VARCHAR) RETURNS INT AS +$$ +SELECT store_link_si(store_instance_node($1,$2,$3), 'OBO_REL:instance_of', $4, '') +$$ +LANGUAGE 'sql'; + +CREATE OR REPLACE FUNCTION store_instance_node (VARCHAR,VARCHAR,VARCHAR,VARCHAR) + RETURNS INT AS +$$ +DECLARE + + v_node_id INTEGER; + v_rel_id INTEGER; + v_class_id INTEGER; + BEGIN + SELECT INTO v_node_id store_instance_node($1,$2,$3); + SELECT INTO v_rel_id store_relation_node('OBO_REL:instance_of'); + SELECT INTO v_class_id store_class_node($4); + INSERT INTO link (node_id,predicate_id,object_id) + VALUES (v_node_id,v_rel_id,v_class_id); + RETURN v_node_id; + END; +$$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_anon_instance_node (VARCHAR) + RETURNS INT AS +$$ +DECLARE + + v_node_id INTEGER; + v_rel_id INTEGER; + v_class_id INTEGER; + BEGIN + SELECT INTO v_node_id store_instance_node(NULL,NULL,NULL); + SELECT INTO v_rel_id store_relation_node('OBO_REL:instance_of'); + SELECT INTO v_class_id store_class_node($1); + INSERT INTO link (node_id,predicate_id,object_id) + VALUES (v_node_id,v_rel_id,v_class_id); + RETURN v_node_id; + END; +$$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_link (VARCHAR,VARCHAR,VARCHAR,VARCHAR) + RETURNS INT AS +$$ +DECLARE + v_su ALIAS FOR $1; + v_rel ALIAS FOR $2; + v_ob ALIAS FOR $3; + v_combinator ALIAS FOR $4; + + v_link_id INTEGER; + v_su_id INTEGER; + v_rel_id INTEGER; + v_ob_id INTEGER; + v_combinator2 VARCHAR; + BEGIN + SELECT INTO v_su_id store_node(v_su); + SELECT INTO v_ob_id store_node(v_ob); + SELECT INTO v_rel_id store_relation_node(v_rel); + v_combinator2 := v_combinator; + if v_combinator IS NULL THEN + v_combinator2 := ''; + END IF; + INSERT INTO link + (node_id,predicate_id,object_id,combinator) + VALUES + (v_su_id,v_rel_id,v_ob_id,v_combinator2); + RETURN currval('link_link_id_seq'); + END; +$$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_reif_link (VARCHAR,VARCHAR,VARCHAR,VARCHAR,INTEGER) + RETURNS INT AS +$$ +DECLARE + v_su ALIAS FOR $1; + v_rel ALIAS FOR $2; + v_ob ALIAS FOR $3; + v_combinator ALIAS FOR $4; + + v_link_id INTEGER; + v_su_id INTEGER; + v_rel_id INTEGER; + v_ob_id INTEGER; + v_combinator2 VARCHAR; + BEGIN + SELECT INTO v_su_id store_node(v_su); + SELECT INTO v_ob_id store_node(v_ob); + SELECT INTO v_rel_id store_relation_node(v_rel); + v_combinator2 := v_combinator; + if v_combinator IS NULL THEN + v_combinator2 := ''; + END IF; + INSERT INTO link + (node_id,predicate_id,object_id,combinator,reiflink_node_id) + VALUES + (v_su_id,v_rel_id,v_ob_id,v_combinator2,$5); + RETURN currval('link_link_id_seq'); + END; +$$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_link_si (INTEGER,VARCHAR,VARCHAR,VARCHAR) + RETURNS INT AS +$$ +DECLARE + v_su_id ALIAS FOR $1; + v_rel ALIAS FOR $2; + v_ob ALIAS FOR $3; + v_combinator ALIAS FOR $4; + + v_link_id INTEGER; + v_rel_id INTEGER; + v_ob_id INTEGER; + v_combinator2 VARCHAR; + BEGIN + SELECT INTO v_ob_id store_node(v_ob); + SELECT INTO v_rel_id store_relation_node(v_rel); + v_combinator2 := v_combinator; + if v_combinator IS NULL THEN + v_combinator2 := ''; + END IF; + INSERT INTO link + (node_id,predicate_id,object_id,combinator) + VALUES + (v_su_id,v_rel_id,v_ob_id,v_combinator2); + RETURN currval('link_link_id_seq'); + END; +$$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION store_annotation (VARCHAR,VARCHAR,VARCHAR,VARCHAR) + RETURNS INT AS +$$ +DECLARE + v_su ALIAS FOR $1; + v_rel ALIAS FOR $2; + v_ob ALIAS FOR $3; + v_annotation_id INTEGER; + v_link_id INTEGER; +BEGIN + SELECT INTO v_annotation_id store_anon_instance_node('oban:Annotation'); + SELECT INTO v_link_id store_reif_link(v_annotation_id,$1,$2,$3,NULL); + RETURN v_annotation_id; +END; +$$ LANGUAGE 'plpgsql'; + +CREATE OR REPLACE FUNCTION delete_node (VARCHAR) RETURNS INT AS +$$ +DECLARE + num INTEGER; +BEGIN +DELETE FROM node WHERE uid=$1; +GET DIAGNOSTICS num = ROW_COUNT; +RETURN num; +END; +$$ +LANGUAGE 'plpgsql'; Modified: obo-database/trunk/sql/obd-core-views.sql =================================================================== --- obo-database/trunk/sql/obd-core-views.sql 2007-10-17 19:41:31 UTC (rev 1064) +++ obo-database/trunk/sql/obd-core-views.sql 2007-10-17 22:39:26 UTC (rev 1065) @@ -1056,7 +1056,7 @@ GROUP BY source.uid,source.label; -- ************************************************************ --- AUDIT INFO +-- OWL -- ************************************************************ CREATE SCHEMA owl; SET search_path TO owl,obd_prejoins_view, obd_obo_metamodel_view,obd_core_view,public; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-10-17 19:41:32
|
Revision: 1064 http://obo.svn.sourceforge.net/obo/?rev=1064&view=rev Author: balhoff Date: 2007-10-17 12:41:31 -0700 (Wed, 17 Oct 2007) Log Message: ----------- Moved ActionManager to actions package (I think this was a typo). Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/actions/ActionManager.java Modified: phenote/trunk/src/java/phenote/gui/actions/ActionManager.java =================================================================== --- phenote/trunk/src/java/phenote/gui/actions/ActionManager.java 2007-10-17 01:07:03 UTC (rev 1063) +++ phenote/trunk/src/java/phenote/gui/actions/ActionManager.java 2007-10-17 19:41:31 UTC (rev 1064) @@ -1,4 +1,4 @@ -package phenote.gui; +package phenote.gui.actions; // --> phenote.gui.menu ?? import javax.swing.JFrame; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-10-17 01:07:02
|
Revision: 1063 http://obo.svn.sourceforge.net/obo/?rev=1063&view=rev Author: nlw Date: 2007-10-16 18:07:03 -0700 (Tue, 16 Oct 2007) Log Message: ----------- *Added the start of a separate "action" section...to be able to draw on a common set of actions from various points in the code...such as by different gui components. also added the start of a standard toolbar. right now it just has open and save .. which call on the same load and save functions as the old menu items did. now both the menu items and toolbar items for 'open' and 'save' use the same 'action' . would like to extend this further to include the actions for the annotation commands. also would be good for the standard cut/copy/paste edit commands. then, depending on where the action was triggered, different actions might be employed. Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/FileMenu.java phenote/trunk/src/java/phenote/gui/SettingsMenu.java Added Paths: ----------- phenote/trunk/src/java/phenote/gui/StandardToolbar.java phenote/trunk/src/java/phenote/gui/actions/ phenote/trunk/src/java/phenote/gui/actions/ActionManager.java phenote/trunk/src/java/phenote/gui/actions/DuplicateAnnotationAction.java phenote/trunk/src/java/phenote/gui/actions/OpenFileAction.java phenote/trunk/src/java/phenote/gui/actions/SaveAsFileAction.java phenote/trunk/src/java/phenote/main/Phenote.java Removed Paths: ------------- phenote/trunk/src/java/phenote/main/Phenote.java Modified: phenote/trunk/src/java/phenote/gui/FileMenu.java =================================================================== --- phenote/trunk/src/java/phenote/gui/FileMenu.java 2007-10-16 17:03:39 UTC (rev 1062) +++ phenote/trunk/src/java/phenote/gui/FileMenu.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -15,6 +15,8 @@ import phenote.config.ConfigFileQueryGui; import phenote.config.ConfigException; //import phenote.gui.prefswindow.PrefsWindowController; ??? +import phenote.gui.actions.OpenFileAction; +import phenote.gui.actions.SaveAsFileAction; class FileMenu extends JMenu { @@ -34,17 +36,19 @@ newData.addActionListener(actionListener); add(newData); - loadMenuItem = new JMenuItem("Open..."); - loadMenuItem.setEnabled(Config.inst().hasDataAdapters()); - loadMenuItem.setActionCommand("load"); - loadMenuItem.addActionListener(actionListener); + loadMenuItem = new JMenuItem(new OpenFileAction()); +// loadMenuItem = new JMenuItem("Open..."); +// loadMenuItem.setEnabled(Config.inst().hasDataAdapters()); +// loadMenuItem.setActionCommand("load"); +// loadMenuItem.addActionListener(actionListener); add(loadMenuItem); - JMenuItem save = new JMenuItem("Save As..."); - save.setEnabled(Config.inst().hasDataAdapters()); - save.setActionCommand("save"); - save.setMnemonic('s'); - save.addActionListener(actionListener); + JMenuItem save = new JMenuItem(new SaveAsFileAction()); + // JMenuItem save = new JMenuItem("Save As..."); +// save.setEnabled(Config.inst().hasDataAdapters()); +// save.setActionCommand("save"); +// save.setMnemonic('s'); +// save.addActionListener(actionListener); add(save); // JMenuItem export = new JMenuItem("Export..."); Modified: phenote/trunk/src/java/phenote/gui/SettingsMenu.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SettingsMenu.java 2007-10-16 17:03:39 UTC (rev 1062) +++ phenote/trunk/src/java/phenote/gui/SettingsMenu.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -25,6 +25,7 @@ public SearchParams searchParams; private SelectionHistory selHist = SelectionHistory.inst(); private Config config = Config.inst(); + SettingsMenu() { @@ -81,6 +82,16 @@ loadConfig.addActionListener(new ConfigActionListener()); add(loadConfig); + JMenuItem showToolbar = new JMenuItem("Show Toolbar"); + showToolbar.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + //show the toolbar + Phenote.getPhenote().standardToolbar.showToolbar(); + + } + }); + add(showToolbar); + // proto gui config JMenuItem browseConfig = new JMenuItem("Browse configuration(dev)"); browseConfig.addActionListener(new ActionListener() { Added: phenote/trunk/src/java/phenote/gui/StandardToolbar.java =================================================================== --- phenote/trunk/src/java/phenote/gui/StandardToolbar.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/StandardToolbar.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -0,0 +1,101 @@ +package phenote.gui; + + +import phenote.config.Config; +import phenote.config.ConfigException; +import phenote.config.ConfigFileQueryGui; +//import phenote.main.Phenote; +//import phenote.gui.ActionManager; +import phenote.gui.actions.OpenFileAction; +import phenote.gui.actions.SaveAsFileAction; +import phenote.gui.actions.DuplicateAnnotationAction; + +import java.io.IOException; +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.Color; +import javax.swing.border.BevelBorder; +import javax.swing.border.LineBorder; +import java.awt.BorderLayout; +import javax.swing.*; +import javax.swing.Action; +import java.util.Vector; +import java.awt.*; +import java.awt.event.*; + +// This is the basic toolbar to be displayed, containing items +// such as New, Save, Print, etc. Could be turned on/off if desired. +// Basically provides the same functionality as in the menus, +// but doesn't require accessing the menus. + + +public class StandardToolbar extends JToolBar { + + private Config config = Config.inst(); + + // Vector for holding all the actions. + private Vector actions; + private Vector buttons; + + public void hideToolbar() { + hide(); + } + + public void showToolbar() { + show(); + } + + public StandardToolbar() { + super("StandardToolbar"); + init(); + } + + private void init() { + + buttons = new Vector(); + + //Standard things to do for files + //The actions ought to be created elsewhere, yeah? + Action saveAction = new SaveAsFileAction(); + Action openAction = new OpenFileAction(); + Action dupAnnotationAction = new DuplicateAnnotationAction(); + + JButton saveButton = new JButton(saveAction); + JButton openButton = new JButton(openAction); + JButton newTermButton = new JButton("New Term", null); + buttons.add(openButton); + buttons.add(saveButton); +//buttons.add(newTermButton); + + + //Standard things for annotations + //probably ought to be its own toolbar + JButton newAnnotButton = new JButton("New Annot"); + JButton dupAnnotButton = new JButton(dupAnnotationAction); + JButton delAnnotButton = new JButton("Del Annot"); + + +// add(newAnnotButton); +// add(dupAnnotButton); + buttons.add(dupAnnotButton); + JButton tempButton = null; + for (int i=0; i<buttons.size(); i++) { + tempButton = (JButton)buttons.elementAt(i); + if (tempButton.getIcon() != null) { + tempButton.setText(""); //an icon-only button + } + add(tempButton); + } + addSeparator(); + + setBackground(Color.GRAY); + setBorder(new BevelBorder(BevelBorder.LOWERED)); + setRollover(true); + hideToolbar(); + } +} + +//ActionManager am = new ActionManager(); +//Action newAction = am.inst().getAction("New"); +//JButton newButton = new JButton(newAction); Property changes on: phenote/trunk/src/java/phenote/gui/StandardToolbar.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: phenote/trunk/src/java/phenote/gui/actions/ActionManager.java =================================================================== --- phenote/trunk/src/java/phenote/gui/actions/ActionManager.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/actions/ActionManager.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -0,0 +1,77 @@ +package phenote.gui; +// --> phenote.gui.menu ?? + +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.ImageIcon; + + +import javax.swing.AbstractAction; +import javax.swing.Action; +import java.awt.*; +import java.awt.event.*; + + +//This is to help centralize actions that appear in buttons, menus, etc. + +public class ActionManager { + + private Action saveAction; + + private Action openAction; + + private static ActionManager singleton; + + public ActionManager() {} + + public static ActionManager inst() { + if (singleton == null) { + singleton = new ActionManager(); + } + return singleton; + } + + public static void reset() { + singleton = null; + } + + public Action getAction(String actionName) { + Action action=null; + if (actionName.equals("Save")) { + action = new SaveAction(actionName, new ImageIcon("images/Save24.gif"), + "Save as...", new Integer(KeyEvent.VK_S)); + } + else if (actionName.equals("Open")) { + action = new SaveAction(actionName, new ImageIcon("images/Open24.gif"), + "Open file...", new Integer(KeyEvent.VK_O)); + } + else if (actionName.equals("New")) { + action = new SaveAction(actionName, new ImageIcon("images/New24.gif"), + "New file...", new Integer(KeyEvent.VK_N)); + } + return action; + } + + public class SaveAction extends AbstractAction { + public SaveAction(String label, ImageIcon icon, + String desc, Integer mnemonic) { + super(label, icon); + putValue(SHORT_DESCRIPTION, desc); + putValue(MNEMONIC_KEY, mnemonic); + } + public void actionPerformed(ActionEvent e) { + if (e.getActionCommand().equals("Save")) { + System.out.println("Save action "+ e); + } + else if (e.getActionCommand().equals("Open")) { + System.out.println("Open action" + e); + } + else { + System.out.println("Other action" + e); + } + } + } +} + Property changes on: phenote/trunk/src/java/phenote/gui/actions/ActionManager.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: phenote/trunk/src/java/phenote/gui/actions/DuplicateAnnotationAction.java =================================================================== --- phenote/trunk/src/java/phenote/gui/actions/DuplicateAnnotationAction.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/actions/DuplicateAnnotationAction.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -0,0 +1,37 @@ +package phenote.gui.actions; + +//import javax.swing.JFrame; +//import javax.swing.JMenu; +//import javax.swing.JMenuBar; +//import javax.swing.JMenuItem; +import javax.swing.ImageIcon; +import javax.swing.AbstractAction; +import javax.swing.Action; +import java.awt.*; +import java.awt.event.*; + +import phenote.dataadapter.LoadSaveManager; +import phenote.config.Config; + + + +//This is the action for opening files to be used by menus & button items. + +public class DuplicateAnnotationAction extends AbstractAction { + public DuplicateAnnotationAction() { + super("Duplicate", null); + putValue(SHORT_DESCRIPTION, "Duplicate Selected Annotation(s)"); //tooltip text + putValue(NAME, "Duplicate"); + putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_C)); + } + public void actionPerformed(ActionEvent e) { + //if its a button, then do one thing + //if its a menu item, do something else + + System.out.println(e.getActionCommand().toString()+" action selected by:\n "+ e); + //add in all the business for the table copy stuff; + } + +} + + Property changes on: phenote/trunk/src/java/phenote/gui/actions/DuplicateAnnotationAction.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: phenote/trunk/src/java/phenote/gui/actions/OpenFileAction.java =================================================================== --- phenote/trunk/src/java/phenote/gui/actions/OpenFileAction.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/actions/OpenFileAction.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -0,0 +1,43 @@ +package phenote.gui.actions; + +//import javax.swing.JFrame; +//import javax.swing.JMenu; +//import javax.swing.JMenuBar; +//import javax.swing.JMenuItem; +import javax.swing.ImageIcon; +import javax.swing.AbstractAction; +import javax.swing.Action; +import java.awt.*; +import java.awt.event.*; + +import phenote.dataadapter.LoadSaveManager; +import phenote.config.Config; + + + +//This is the action for opening files to be used by menus & button items. + +public class OpenFileAction extends AbstractAction { + public OpenFileAction() { + super("Open", new ImageIcon("images/Open24.gif")); + putValue(SHORT_DESCRIPTION, "Open a file..."); //tooltip text + putValue(NAME, "Open"); + putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_O)); + setEnabled(Config.inst().hasDataAdapters()); + } + public void actionPerformed(ActionEvent e) { + //if its a button, then do one thing + //if its a menu item, do something else + if (!Config.inst().hasDataAdapters()) { + System.out.println("no file data adapter to load/save with"); + return; + } + LoadSaveManager.inst().loadData(); + + System.out.println(e.getActionCommand().toString()+" action selected by:\n "+ e); + + } +// return action; +} + + Property changes on: phenote/trunk/src/java/phenote/gui/actions/OpenFileAction.java ___________________________________________________________________ Name: svn:mime-type + text/plain Added: phenote/trunk/src/java/phenote/gui/actions/SaveAsFileAction.java =================================================================== --- phenote/trunk/src/java/phenote/gui/actions/SaveAsFileAction.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/actions/SaveAsFileAction.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -0,0 +1,44 @@ +package phenote.gui.actions; + +//import javax.swing.JFrame; +//import javax.swing.JMenu; +//import javax.swing.JMenuBar; +//import javax.swing.JMenuItem; +import javax.swing.ImageIcon; +import javax.swing.AbstractAction; +import javax.swing.Action; +import java.awt.*; +import java.awt.event.*; + +import phenote.dataadapter.LoadSaveManager; +import phenote.config.Config; + + +//This is the action for opening files to be used by menus & button items. + +public class SaveAsFileAction extends AbstractAction { + //need a property change listener to see if the file has been modified since + //last saved. be smart! + public SaveAsFileAction() { + super("Save As...", new ImageIcon("images/Save24.gif")); + putValue(SHORT_DESCRIPTION, "Save File Dialog"); //tooltip text + putValue(NAME, "Save As..."); + putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_S)); + setEnabled(Config.inst().hasDataAdapters()); + } + public void actionPerformed(ActionEvent e) { + //if its a button, then do one thing + //if its a menu item, do something else + //log this action + if (!Config.inst().hasDataAdapters()) { + System.out.println("no file data adapter to load/save with"); + return; + } + LoadSaveManager.inst().saveData(); + //log this action + System.out.println(e.getActionCommand().toString()+" action selected by:\n "+ e); + } + // return action; +} + + Property changes on: phenote/trunk/src/java/phenote/gui/actions/SaveAsFileAction.java ___________________________________________________________________ Name: svn:mime-type + text/plain Deleted: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-16 17:03:39 UTC (rev 1062) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -1,515 +0,0 @@ -package phenote.main; - -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.GridLayout; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.io.File; -import java.io.FileNotFoundException; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.List; - -import javax.swing.ImageIcon; -import javax.swing.JFrame; -import javax.swing.JOptionPane; -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; - -import org.apache.log4j.BasicConfigurator; -import org.apache.log4j.Level; -import org.apache.log4j.LogManager; -import org.apache.log4j.Logger; - -import phenote.charactertemplate.CharacterTemplateController; -import phenote.config.Config; -import phenote.config.ConfigException; -import phenote.config.xml.GroupDocument.Group; -import phenote.dataadapter.CharacterListManager; -import phenote.dataadapter.LoadSaveManager; -import phenote.dataadapter.OntologyDataAdapter; -import phenote.datamodel.CharFieldManager; -import phenote.datamodel.CharacterIFactory; -import phenote.datamodel.CharacterListI; -import phenote.edit.EditManager; -import phenote.error.ErrorEvent; -import phenote.error.ErrorListener; -import phenote.error.ErrorManager; -import phenote.gui.CharacterTableController; -import phenote.gui.GridBagUtil; -import phenote.gui.LoadingScreen; -import phenote.gui.MenuManager; -import phenote.gui.SearchParams; -import phenote.gui.SelectionHistory; -import phenote.gui.ShrimpDag; -import phenote.gui.SplashScreen; -import phenote.gui.TermInfo; -import phenote.gui.field.FieldPanel; -import phenote.gui.selection.SelectionManager; -import phenote.servlet.PhenoteWebConfiguration; -import phenote.util.FileUtil; - -public class Phenote { - - private static Logger LOG = Logger.getLogger(Phenote.class); - private static boolean standalone = false; // default for servlet - - private FieldPanel mainFieldPanel; - private static Phenote phenote; - private TermInfo termInfo; - private SelectionHistory selectionHistory; - private CharacterTableController tableController; - private CommandLine commandLine = CommandLine.inst(); - private JFrame frame; - public SplashScreen splashScreen; - public LoadingScreen loadingScreen; - private String logoFile = "images/phenote_logo.jpg"; - - - - // public static Keymap defaultKeymap; - - - 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.DEBUG); - LOG = LogManager.getLogger(Phenote.class); - } - org.apache.log4j.FileAppender a = (org.apache.log4j.FileAppender)rl.getAppender("MAIN"); - if (a != null) System.out.println("log file: "+a.getFile()); - else System.out.println("No MAIN File Appender for log4j"); - - File f = new File("phenote_log4j.log"); - System.out.println("path of log file "+f.getPath()+" absolute "+f.getAbsolutePath()+" canWrite "+f.canWrite()); - - // writes error events to log - ErrorManager.inst().addErrorListener(new LogErrorListener()); - String v = "This is Phenote version "+PhenoteVersion.versionString(); - System.out.println(v); - LOG.info(v); - try { - final String lookAndFeelClassName = UIManager.getSystemLookAndFeelClassName(); - if (lookAndFeelClassName.equals("apple.laf.AquaLookAndFeel")) { - // We are running on Mac OS X - use the Quaqua look and feel - System.setProperty("apple.laf.useScreenMenuBar", "true"); - UIManager.setLookAndFeel("ch.randelshofer.quaqua.QuaquaLookAndFeel"); - } else { - // We are on some other platform, use the system look and feel - UIManager.setLookAndFeel(lookAndFeelClassName); - } - } catch (ClassNotFoundException e) { - LOG.error("Look and feel class not found", e); - } catch (InstantiationException e) { - LOG.error("Could not instantiate look and feel", e); - } catch (IllegalAccessException e) { - LOG.error("Error setting look and feel", e); - } catch (UnsupportedLookAndFeelException e) { - LOG.error("Look and feel not supported", e); - } - - phenote = getPhenote(); - boolean enableSplashScreen = !phenote.commandLine.writeIsSpecified(); - //System.out.println("splash "+enableSplashScreen); - phenote.splashScreenInit(enableSplashScreen); //initialize the splash screen; - phenote.doCommandLine(args); // does config - - //new phenote.gui.ConfigGui(); // testing out - - /* set up the overall task of loading the software - there will be several events: - 1. loading configuration - display config name - 2. checking for ontology updates - per ontology display name - 3. updating ontologies (name) - downloading... display name - 4. loading into datamodel - display name - this is the bulk of the time - */ - - phenote.splashScreen.setProgress("Configuring...", 10); - phenote.loadingScreen.setMessageText("Loading configuration: "+Config.inst().getConfigName()); - phenote.loadingScreen.setProgress(5); - phenote.splashScreen.setProgress("Initializing Ontologies...", 20); - phenote.loadingScreen.setMessageText("Initializing Ontologies"); - phenote.loadingScreen.setProgress(10); -// phenote.loadingScreen.setProgress(20); -// boolean done = false; - - phenote.initOntologies(); - phenote.splashScreen.setProgress("Ontologies Initialized", 70); - phenote.loadingScreen.setMessageText("Ontologies Initialized"); -// phenote.loadingScreen.setProgress(70); - phenote.loadFromCommandLine(); // aft ontols, reads from cmd line if specified - phenote.splashScreen.setProgress("Phenote Loaded", 100); - phenote.loadingScreen.setMessageText("Phenote Loaded"); - phenote.loadingScreen.setProgress(100); - if (phenote.commandLine.writeIsSpecified()) { - phenote.writeFromCommandLine(); - // it hangs after writing - not sure why - System.out.println("Done writing, exiting phenote"); - System.exit(0); - } - else // init gui if not writing (& reading) from cmd line - { - phenote.initGui(); - phenote.splashScreenDestruct(); -// phenote.loadingScreenDestruct(); - } - - if (Config.inst().dataInputServletIsEnabled()) - new phenote.servlet.DataInputServer(); - - } - - /** private constructor -> singleton */ - private Phenote() {} - - - public void initOntologies() { - //OntologyDataAdapter oda = new OntologyDataAdapter(); // singleton? - // loads up OntologyManager - non intuitive? - OntologyDataAdapter.initialize(); - // if (config.useShrimpDagViewer()) - // ShrimpDag.inst().initOntologies(); - } - - private void loadFromCommandLine() { - //LOG.debug("read spec "+commandLine.readIsSpecified()); - if (!commandLine.readIsSpecified()) return; - // LOG.info("Reading "+blah+" from command line"); - try { commandLine.getReadAdapter().load(); } - catch (Exception e) { LOG.error("Failed to do load via command line "+e); } - } - - private void writeFromCommandLine() { - if (!commandLine.writeIsSpecified()) return; - try { commandLine.getWriteAdapter().commit(getCharList()); } - catch (Exception e) { LOG.error("Failed to do write via command line "+e); } - } - - private CharacterListI getCharList() { - return CharacterListManager.inst().getCharacterList(); - } - - public void initGui() { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - makeMainWindow(); - createGroupWindows(); - } - }); - } - - private void createGroupWindows() { - for (Group group : getGroupsByContainer(Group.Container.WINDOW)) { - if (group.getInterface().equals(Group.Interface.CHARACTER_TEMPLATE)) { - 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() { - for (Group group : getGroupsByContainer(Group.Container.TAB)) { - - } - - } - - private boolean hasGroupTabs() { - return !getGroupTabs().isEmpty(); - } - - private int getNumGroupTabs() { - if (getGroupTabs() == null) return 0; - return getGroupTabs().size(); - } - - private List<Group> getGroupTabs() { - return getGroupsByContainer(Group.Container.TAB); - } - - /** Get groups specifically designated for a container - window or tab */ - private List<Group> getGroupsByContainer(Group.Container.Enum container) { - List<Group> l = new ArrayList<Group>(); - for (Group group : Config.inst().getFieldGroups()) { - if (group.getContainer() == container) // only do tabs - l.add(group); - } - return l; - } - - - private void splashScreenInit(boolean enable) { - ImageIcon myImage = new ImageIcon(); - try { - myImage = new ImageIcon(FileUtil.findUrl(logoFile)); - } catch (FileNotFoundException ex) { } - -// ImageIcon myImage = new ImageIcon(logoFile); - splashScreen = new SplashScreen(myImage,enable); - loadingScreen = new LoadingScreen(); - - if (!enable) return; -// splashScreen.setLocationRelativeTo(null); -// splashScreen.setProgressMax(100); -// splashScreen.setScreenVisible(true); - loadingScreen.setScreenVisible(true); - loadingScreen.setLocationRelativeTo(null); // centers panel on screen -// splashScreen.setProgress("Phenote version "+PhenoteVersion.versionString(), 0); - } - - private void splashScreenDestruct() { - splashScreen.setScreenVisible(false); - loadingScreen.setScreenVisible(false); - } - - private void doCommandLine(String[] args) { - try { commandLine.setArgs(args); } // sets config if specified - catch (Exception e) { // no log yet - sys.out - System.out.println("Command line read failed: "+e); }//e.printStackTrace(); - // no config set from command line use default - if (!Config.inst().isInitialized()) { - try { Config.inst().loadDefaultConfigFile(); } - catch (ConfigException ce) { - System.out.println("default config has failed. "+ce+" loading flybase default"); - try { Config.inst().loadDefaultFlybaseConfigFile(); } - catch (ConfigException c) { - System.out.println("flybase default config has failed. We're hosed! "+c); - } - } - } - } - -// private void ontologyProgressChangeListener extends PropertyChangeListener { -// public void propertyChange(PropertyChangeEvent evt) { -// if (!done) { -// int progress = task.getProgress(); -// String m = "some ontology"; -// loadingScreen.setProgress(m, progress); -// } - - - - public Frame getFrame() { return frame; } - - private void makeMainWindow() { - // this may be changed to applet... - frame = new JFrame("Phenote "+PhenoteVersion.versionString()); - if (getNumGroupTabs() < 2) { - Group g = Config.inst().getDefaultGroup(); - frame.getContentPane().add(makeGroupPanel(g)); - } - else { - JTabbedPane tabbedGroups = new JTabbedPane(); - for (Group g : getGroupTabs()) { - JPanel p = makeGroupPanel(g); //.getName()); - tabbedGroups.add(g.getTitle(),p); - } - frame.getContentPane().add(tabbedGroups); - } - MenuManager.createMenuManager(frame); - frame.setPreferredSize(new Dimension(1220,800)); //1100,700)); - if (standalone) // if stand alone exit java on window close - frame.addWindowListener(new WindowExit()); - frame.pack(); - frame.setVisible(true); - } - - /** for standalone & webstart - not for servlet as i think it will bring the - whole servlet down */ - private class WindowExit extends WindowAdapter { - public void windowClosing(WindowEvent e) { - String m=""; - int n; - if (standalone) { - if (Config.inst().isConfigModified()) { - m="Your Default Settings have been modified. Do you wish to save them?"; - n = JOptionPane.showConfirmDialog(null,m,"Configuration Alert", JOptionPane.YES_NO_OPTION); - if (n==JOptionPane.YES_OPTION) { - Config.inst().setAutocompleteSettings(); - //write out configuration! - Config.inst().saveModifiedConfig(); - m=""; - } - else { - m="Your changes have not been saved.\n"; - } - } -// else { -// System.out.println("your settings have not changed"); -// } -// m += "Are you sure you want to quit?"; -// n = JOptionPane.showConfirmDialog(null, m, "Phenote Exit", -// JOptionPane.YES_NO_OPTION); -// if (n==JOptionPane.YES_OPTION) { -// // now quit -// System.exit(0); -// } else { return; } - System.exit(0); - } - } - } - - /** main panel contains FieldPanel CharTablePanel & TermInfo - move this to gui? */ - private JPanel makeGroupPanel(Group group) { - JPanel mainPanel = new JPanel(new GridLayout()); - - JPanel infoHistoryPanel = new JPanel(new GridBagLayout()); - infoHistoryPanel.setBorder(new EmptyBorder(10,10,10,10)); - - this.tableController = new CharacterTableController(group.getName()); - - // need to do different selection & edit mgrs - FieldPanel groupFieldPanel = new FieldPanel(true,false,group.getName(), this.tableController.getSelectionModel()); - groupFieldPanel.setBorder(new EmptyBorder(10,10,10,10)); - // for testing - thats it - if (group == null || group.getName().equals("default")) - mainFieldPanel = groupFieldPanel; - - termInfo = new TermInfo(); - GridBagConstraints ugbc = GridBagUtil.makeFillingConstraint(0,0); - ugbc.weightx = 5; - infoHistoryPanel.add(termInfo.getComponent(),ugbc); - - selectionHistory = SelectionHistory.inst(); - ugbc.gridx++; - ugbc.weightx = 3; - infoHistoryPanel.add(selectionHistory.getComponent(),ugbc); - - JSplitPane innerSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, groupFieldPanel, infoHistoryPanel); - innerSplitPane.setDividerLocation(700); - - - - JSplitPane outerSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, innerSplitPane, this.tableController.getCharacterTablePanel()); - mainPanel.add(outerSplitPane); - return mainPanel; - } - - /** this doesnt work yet - OntologyManager list of char fields is not getting - reset for one thing - slippery slope this stuff */ - public void changeConfig(String newCfg) { // throws ConfigException?? - - try { - // load new config - // Config loadDefaultConfigFile?? as its set above w writeMyPhen? - Config.changeConfig(newCfg); // for now just does update with new version - - // wipe out old data - CharacterListManager.inst().clear(); - - // load ontologies - reuse ones that are already loaded? dump ones not used? - // this needs to reset onotologymanagers charfields - or something does?? - // ontolMan.clear()? - initOntologies(); // ?? i think will preserve ontol cache which is good - - // wipe out & bring up new gui - phenote.initGui(); // or phenote.reinitGui()? - - } - catch (ConfigException e) { // throw it?? - String m = "Failed to change configuration " + e.getMessage(); - JOptionPane.showMessageDialog(null, m, "Config error", - JOptionPane.ERROR_MESSAGE); - } - - } - - public static Phenote getPhenote() { // singleton - if (phenote == null) phenote = new Phenote(); - return phenote; - } - - public static void reset() { - phenote = null; - } - - - /** - * This is used to reset state between unit tests. - */ - public static void resetAllSingletons() { - CharacterListManager.reset(); - LoadSaveManager.reset(); - OntologyDataAdapter.reset(); - CharacterIFactory.reset(); - CharFieldManager.reset(); - EditManager.reset(); - ErrorManager.reset(); - MenuManager.reset(); - SearchParams.reset(); - SelectionHistory.reset(); - ShrimpDag.reset(); - SelectionManager.reset(); - CommandLine.reset(); - PhenoteWebConfiguration.reset(); - Config.reset(); - Phenote.reset(); - } - - /** listens for errors and shoots them to the log */ - private static class LogErrorListener implements ErrorListener { - public void handleError(ErrorEvent e) { - Logger log = Logger.getLogger(e.getSource().getClass()); - log.error(e.getMsg()); - } - } - - // These methods are actually for TestPhenote - public FieldPanel getFieldPanel() { return mainFieldPanel; } - public TermInfo getTermInfo() { return termInfo; } - //public CharacterTablePanel getCharacterTablePanel() { return characterTablePanel; } - public CharacterTableController getCharacterTableController() { return this.tableController; } - - - -} - -// /** args is most likely null if not called from command line */ -// public void initConfig(String[] args) { -// // gets config file from command line & loads - if no config file -// // loads default. should actually put that logic here. -// doCommandLine(args); // load config file -// } - Added: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java (rev 0) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-10-17 01:07:03 UTC (rev 1063) @@ -0,0 +1,524 @@ +package phenote.main; + +import java.awt.Dimension; +import java.awt.Frame; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.GridLayout; +import java.awt.BorderLayout; + +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.File; +import java.io.FileNotFoundException; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; + +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +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; + +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Level; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; + +import phenote.charactertemplate.CharacterTemplateController; +import phenote.config.Config; +import phenote.config.ConfigException; +import phenote.config.xml.GroupDocument.Group; +import phenote.dataadapter.CharacterListManager; +import phenote.dataadapter.LoadSaveManager; +import phenote.dataadapter.OntologyDataAdapter; +import phenote.datamodel.CharFieldManager; +import phenote.datamodel.CharacterIFactory; +import phenote.datamodel.CharacterListI; +import phenote.edit.EditManager; +import phenote.error.ErrorEvent; +import phenote.error.ErrorListener; +import phenote.error.ErrorManager; +import phenote.gui.CharacterTableController; +import phenote.gui.GridBagUtil; +import phenote.gui.LoadingScreen; +import phenote.gui.MenuManager; +import phenote.gui.SearchParams; +import phenote.gui.SelectionHistory; +import phenote.gui.ShrimpDag; +import phenote.gui.SplashScreen; +import phenote.gui.TermInfo; +import phenote.gui.field.FieldPanel; +import phenote.gui.StandardToolbar; +import phenote.gui.selection.SelectionManager; +import phenote.servlet.PhenoteWebConfiguration; +import phenote.util.FileUtil; + +public class Phenote { + + private static Logger LOG = Logger.getLogger(Phenote.class); + private static boolean standalone = false; // default for servlet + + private FieldPanel mainFieldPanel; + private static Phenote phenote; + private TermInfo termInfo; + private SelectionHistory selectionHistory; + private CharacterTableController tableController; + private CommandLine commandLine = CommandLine.inst(); + private JFrame frame; + public StandardToolbar standardToolbar; + public SplashScreen splashScreen; + public LoadingScreen loadingScreen; + private String logoFile = "images/phenote_logo.jpg"; + + + + // public static Keymap defaultKeymap; + + + 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.DEBUG); + LOG = LogManager.getLogger(Phenote.class); + } + org.apache.log4j.FileAppender a = (org.apache.log4j.FileAppender)rl.getAppender("MAIN"); + if (a != null) System.out.println("log file: "+a.getFile()); + else System.out.println("No MAIN File Appender for log4j"); + + File f = new File("phenote_log4j.log"); + System.out.println("path of log file "+f.getPath()+" absolute "+f.getAbsolutePath()+" canWrite "+f.canWrite()); + + // writes error events to log + ErrorManager.inst().addErrorListener(new LogErrorListener()); + String v = "This is Phenote version "+PhenoteVersion.versionString(); + System.out.println(v); + LOG.info(v); + try { + final String lookAndFeelClassName = UIManager.getSystemLookAndFeelClassName(); + if (lookAndFeelClassName.equals("apple.laf.AquaLookAndFeel")) { + // We are running on Mac OS X - use the Quaqua look and feel + System.setProperty("apple.laf.useScreenMenuBar", "true"); + UIManager.setLookAndFeel("ch.randelshofer.quaqua.QuaquaLookAndFeel"); + } else { + // We are on some other platform, use the system look and feel + UIManager.setLookAndFeel(lookAndFeelClassName); + } + } catch (ClassNotFoundException e) { + LOG.error("Look and feel class not found", e); + } catch (InstantiationException e) { + LOG.error("Could not instantiate look and feel", e); + } catch (IllegalAccessException e) { + LOG.error("Error setting look and feel", e); + } catch (UnsupportedLookAndFeelException e) { + LOG.error("Look and feel not supported", e); + } + + phenote = getPhenote(); + boolean enableSplashScreen = !phenote.commandLine.writeIsSpecified(); + //System.out.println("splash "+enableSplashScreen); + phenote.splashScreenInit(enableSplashScreen); //initialize the splash screen; + phenote.doCommandLine(args); // does config + + //new phenote.gui.ConfigGui(); // testing out + + /* set up the overall task of loading the software + there will be several events: + 1. loading configuration - display config name + 2. checking for ontology updates - per ontology display name + 3. updating ontologies (name) - downloading... display name + 4. loading into datamodel - display name - this is the bulk of the time + */ + + phenote.splashScreen.setProgress("Configuring...", 10); + phenote.loadingScreen.setMessageText("Loading configuration: "+Config.inst().getConfigName()); + phenote.loadingScreen.setProgress(5); + phenote.splashScreen.setProgress("Initializing Ontologies...", 20); + phenote.loadingScreen.setMessageText("Initializing Ontologies"); + phenote.loadingScreen.setProgress(10); +// phenote.loadingScreen.setProgress(20); +// boolean done = false; + + phenote.initOntologies(); + phenote.splashScreen.setProgress("Ontologies Initialized", 70); + phenote.loadingScreen.setMessageText("Ontologies Initialized"); +// phenote.loadingScreen.setProgress(70); + phenote.loadFromCommandLine(); // aft ontols, reads from cmd line if specified + phenote.splashScreen.setProgress("Phenote Loaded", 100); + phenote.loadingScreen.setMessageText("Phenote Loaded"); + phenote.loadingScreen.setProgress(100); + if (phenote.commandLine.writeIsSpecified()) { + phenote.writeFromCommandLine(); + // it hangs after writing - not sure why + System.out.println("Done writing, exiting phenote"); + System.exit(0); + } + else // init gui if not writing (& reading) from cmd line + { + phenote.initGui(); + phenote.splashScreenDestruct(); +// phenote.loadingScreenDestruct(); + } + + if (Config.inst().dataInputServletIsEnabled()) + new phenote.servlet.DataInputServer(); + + } + + /** private constructor -> singleton */ + private Phenote() {} + + + public void initOntologies() { + //OntologyDataAdapter oda = new OntologyDataAdapter(); // singleton? + // loads up OntologyManager - non intuitive? + OntologyDataAdapter.initialize(); + // if (config.useShrimpDagViewer()) + // ShrimpDag.inst().initOntologies(); + } + + private void loadFromCommandLine() { + //LOG.debug("read spec "+commandLine.readIsSpecified()); + if (!commandLine.readIsSpecified()) return; + // LOG.info("Reading "+blah+" from command line"); + try { commandLine.getReadAdapter().load(); } + catch (Exception e) { LOG.error("Failed to do load via command line "+e); } + } + + private void writeFromCommandLine() { + if (!commandLine.writeIsSpecified()) return; + try { commandLine.getWriteAdapter().commit(getCharList()); } + catch (Exception e) { LOG.error("Failed to do write via command line "+e); } + } + + private CharacterListI getCharList() { + return CharacterListManager.inst().getCharacterList(); + } + + public void initGui() { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + makeMainWindow(); + createGroupWindows(); + } + }); + } + + private void createGroupWindows() { + for (Group group : getGroupsByContainer(Group.Container.WINDOW)) { + if (group.getInterface().equals(Group.Interface.CHARACTER_TEMPLATE)) { + 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() { + for (Group group : getGroupsByContainer(Group.Container.TAB)) { + + } + + } + + private boolean hasGroupTabs() { + return !getGroupTabs().isEmpty(); + } + + private int getNumGroupTabs() { + if (getGroupTabs() == null) return 0; + return getGroupTabs().size(); + } + + private List<Group> getGroupTabs() { + return getGroupsByContainer(Group.Container.TAB); + } + + /** Get groups specifically designated for a container - window or tab */ + private List<Group> getGroupsByContainer(Group.Container.Enum container) { + List<Group> l = new ArrayList<Group>(); + for (Group group : Config.inst().getFieldGroups()) { + if (group.getContainer() == container) // only do tabs + l.add(group); + } + return l; + } + + + private void splashScreenInit(boolean enable) { + ImageIcon myImage = new ImageIcon(); + try { + myImage = new ImageIcon(FileUtil.findUrl(logoFile)); + } catch (FileNotFoundException ex) { } + +// ImageIcon myImage = new ImageIcon(logoFile); + splashScreen = new SplashScreen(myImage,enable); + loadingScreen = new LoadingScreen(); + + if (!enable) return; +// splashScreen.setLocationRelativeTo(null); +// splashScreen.setProgressMax(100); +// splashScreen.setScreenVisible(true); + loadingScreen.setScreenVisible(true); + loadingScreen.setLocationRelativeTo(null); // centers panel on screen +// splashScreen.setProgress("Phenote version "+PhenoteVersion.versionString(), 0); + } + + private void splashScreenDestruct() { + splashScreen.setScreenVisible(false); + loadingScreen.setScreenVisible(false); + } + + private void doCommandLine(String[] args) { + try { commandLine.setArgs(args); } // sets config if specified + catch (Exception e) { // no log yet - sys.out + System.out.println("Command line read failed: "+e); }//e.printStackTrace(); + // no config set from command line use default + if (!Config.inst().isInitialized()) { + try { Config.inst().loadDefaultConfigFile(); } + catch (ConfigException ce) { + System.out.println("default config has failed. "+ce+" loading flybase default"); + try { Config.inst().loadDefaultFlybaseConfigFile(); } + catch (ConfigException c) { + System.out.println("flybase default config has failed. We're hosed! "+c); + } + } + } + } + +// private void ontologyProgressChangeListener extends PropertyChangeListener { +// public void propertyChange(PropertyChangeEvent evt) { +// if (!done) { +// int progress = task.getProgress(); +// String m = "some ontology"; +// loadingScreen.setProgress(m, progress); +// } + + + + public Frame getFrame() { return frame; } + + private void makeMainWindow() { + // this may be changed to applet... + frame = new JFrame("Phenote "+PhenoteVersion.versionString()); + if (getNumGroupTabs() < 2) { + Group g = Config.inst().getDefaultGroup(); + frame.getContentPane().add(makeGroupPanel(g)); + } + else { + JTabbedPane tabbedGroups = new JTabbedPane(); + for (Group g : getGroupTabs()) { + JPanel p = makeGroupPanel(g); //.getName()); + tabbedGroups.add(g.getTitle(),p); + } + frame.getContentPane().add(tabbedGroups); + } + MenuManager.createMenuManager(frame); + frame.setPreferredSize(new Dimension(1220,800)); //1100,700)); + if (standalone) // if stand alone exit java on window close + frame.addWindowListener(new WindowExit()); + standardToolbar = new StandardToolbar(); + frame.add(standardToolbar, BorderLayout.NORTH); + + frame.pack(); + frame.setVisible(true); + } + + /** for standalone & webstart - not for servlet as i think it will bring the + whole servlet down */ + private class WindowExit extends WindowAdapter { + public void windowClosing(WindowEvent e) { + String m=""; + int n; + if (standalone) { + if (Config.inst().isConfigModified()) { + m="Your Default Settings have been modified. Do you wish to save them?"; + n = JOptionPane.showConfirmDialog(null,m,"Configuration Alert", JOptionPane.YES_NO_OPTION); + if (n==JOptionPane.YES_OPTION) { + Config.inst().setAutocompleteSettings(); + //write out configuration! + Config.inst().saveModifiedConfig(); + m=""; + } + else { + m="Your changes have not been saved.\n"; + } + } +// else { +// System.out.println("your settings have not changed"); +// } +// m += "Are you sure you want to quit?"; +// n = JOptionPane.showConfirmDialog(null, m, "Phenote Exit", +// JOptionPane.YES_NO_OPTION); +// if (n==JOptionPane.YES_OPTION) { +// // now quit +// System.exit(0); +// } else { return; } + System.exit(0); + } + } + } + + /** main panel contains FieldPanel CharTablePanel & TermInfo + move this to gui? */ + private JPanel makeGroupPanel(Group group) { + JPanel mainPanel = new JPanel(new GridLayout()); + + JPanel infoHistoryPanel = new JPanel(new GridBagLayout()); + infoHistoryPanel.setBorder(new EmptyBorder(10,10,10,10)); + + this.tableController = new CharacterTableController(group.getName()); + + // need to do different selection & edit mgrs + FieldPanel groupFieldPanel = new FieldPanel(true,false,group.getName(), this.tableController.getSelectionModel()); + groupFieldPanel.setBorder(new EmptyBorder(10,10,10,10)); + // for testing - thats it + if (group == null || group.getName().equals("default")) + mainFieldPanel = groupFieldPanel; + + termInfo = new TermInfo(); + GridBagConstraints ugbc = GridBagUtil.makeFillingConstraint(0,0); + ugbc.weightx = 5; + infoHistoryPanel.add(termInfo.getComponent(),ugbc); + + selectionHistory = SelectionHistory.inst(); + ugbc.gridx++; + ugbc.weightx = 3; + infoHistoryPanel.add(selectionHistory.getComponent(),ugbc); + + JSplitPane innerSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, groupFieldPanel, infoHistoryPanel); + innerSplitPane.setDividerLocation(700); + + + + JSplitPane outerSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, innerSplitPane, this.tableController.getCharacterTablePanel()); + mainPanel.add(outerSplitPane); + return mainPanel; + } + + /** this doesnt work yet - OntologyManager list of char fields is not getting + reset for one thing - slippery slope this stuff */ + public void changeConfig(String newCfg) { // throws ConfigException?? + + try { + // load new config + // Config loadDefaultConfigFile?? as its set above w writeMyPhen? + Config.changeConfig(newCfg); // for now just does update with new version + + // wipe out old data + CharacterListManager.inst().clear(); + + // load ontologies - reuse ones that are already loaded? dump ones not used? + // this needs to reset onotologymanagers charfields - or something does?? + // ontolMan.clear()? + initOntologies(); // ?? i think will preserve ontol cache which is good + + // wipe out & bring up new gui + phenote.initGui(); // or phenote.reinitGui()? + + } + catch (ConfigException e) { // throw it?? + String m = "Failed to change configuration " + e.getMessage(); + JOptionPane.showMessageDialog(null, m, "Config error", + JOptionPane.ERROR_MESSAGE); + } + + } + + + + public static Phenote getPhenote() { // singleton + if (phenote == null) phenote = new Phenote(); + return phenote; + } + + public static void reset() { + phenote = null; + } + + + /** + * This is used to reset state between unit tests. + */ + public static void resetAllSingletons() { + CharacterListManager.reset(); + LoadSaveManager.reset(); + OntologyDataAdapter.reset(); + CharacterIFactory.reset(); + CharFieldManager.reset(); + EditManager.reset(); + ErrorManager.reset(); + MenuManager.reset(); + SearchParams.reset(); + SelectionHistory.reset(); + ShrimpDag.reset(); + SelectionManager.reset(); + CommandLine.reset(); + PhenoteWebConfiguration.reset(); + Config.reset(); + Phenote.reset(); + } + + /** listens for errors and shoots them to the log */ + private static class LogErrorListener implements ErrorListener { + public void handleError(ErrorEvent e) { + Logger log = Logger.getLogger(e.getSource().getClass()); + log.error(e.getMsg()); + } + } + + // These methods are actually for TestPhenote + public FieldPanel getFieldPanel() { return mainFieldPanel; } + public TermInfo getTermInfo() { return termInfo; } + //public CharacterTablePanel getCharacterTablePanel() { return characterTablePanel; } + public CharacterTableController getCharacterTableController() { return this.tableController; } + + + +} + +// /** args is most likely null if not called from command line */ +// public void initConfig(String[] args) { +// // gets config file from command line & loads - if no config file +// // loads default. should actually put that logic here. +// doCommandLine(args); // load config file +// } + Property changes on: phenote/trunk/src/java/phenote/main/Phenote.java ___________________________________________________________________ Name: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-16 17:03:35
|
Revision: 1062 http://obo.svn.sourceforge.net/obo/?rev=1062&view=rev Author: cmungall Date: 2007-10-16 10:03:39 -0700 (Tue, 16 Oct 2007) Log Message: ----------- Modified Paths: -------------- phenote/trunk/conf/ncbo.cfg Added Paths: ----------- phenote/trunk/conf/envo_gold.cfg Removed Paths: ------------- phenote/trunk/conf/metagenomic_sample.cfg Added: phenote/trunk/conf/envo_gold.cfg =================================================================== --- phenote/trunk/conf/envo_gold.cfg (rev 0) +++ phenote/trunk/conf/envo_gold.cfg 2007-10-16 17:03:39 UTC (rev 1062) @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ns:phenote-configuration version="0.1-alpha" xmlns:ns="phenote/config/xml" + name="Environmental Sample" + author="Chris Mungall" + description="For annotating instances of samples obtained from geographic locations and environment types"> + <ns:log config-file="conf/log4j-standalone.xml"/> + + <!-- wipeout always means that the master will always wipeout the local copy + in this mode modifying the local is useless --> + <!-- ns:master-to-local-config mode="WIPEOUT" when="ALWAYS" + overriding-master-url="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/phenote/trunk/conf/envo_sample.cfg" / --> + + <!-- ********************* FILE ADAPTERS ************************** --> + <!-- be sure to include at least one enabled file adapter --> + <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> + + + <!-- ******************** FIELD DEFINITIONS *********************** --> + <ns:field name="Organism" enable="true" desc="Type of organism sampled"/> + <ns:field name="STRAIN" enable="true" datatag="GT" desc="Strain of organism sampled"/> + <ns:field name="SYMBIONT" enable="true" desc="Symbiont of organism sampled"/> + <ns:field name="HABITAT_DESC" enable="true" desc=""/> + <ns:field name="Habitat" enable="true"> + <ns:ontology name="Relationship" is-postcomp-rel="true" + file="http://obofoundry.org/ro/ro.obo"/> + <ns:ontology name="ENVO" file="http://www.purl.org/obo/obo-all/envo/envo.obo"/> + <ns:ontology name="FMA" file="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/fma-conversion/trunk/fma_obo.obo"/> + <ns:ontology name="PATO" file="http://purl.org/obo/obo-all/quality/quality.obo"/> + <ns:ontology name="CHEBI" + file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo"/> + </ns:field> + <ns:field name="ISOLATION_DESC" enable="true" desc=""/> + <ns:field name="Isolation" enable="true"> + <ns:ontology name="Relationship" is-postcomp-rel="true" + file="http://obofoundry.org/ro/ro.obo"/> + <ns:ontology name="ENVO" file="http://www.purl.org/obo/obo-all/envo/envo.obo"/> + <ns:ontology name="FMA" file="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/fma-conversion/trunk/fma_obo.obo"/> + <ns:ontology name="DO" file="http://purl.org/obo/obo-all/disease_ontology/disease_ontology.obo"/> + <ns:ontology name="PATO" file="http://purl.org/obo/obo-all/quality/quality.obo"/> + <ns:ontology name="CL" + file="http://www.berkeleybop.org/ontologies/obo-all/cell/cell.obo" /> + <ns:ontology name="TAXSLIM" file="metagenomic_taxslim.obo"/> + <ns:ontology name="CHEBI" + file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo"/> + </ns:field> + <ns:field name="Isolation Time" enable="true" desc="time at which sample was collected"/> + <ns:field name="COUNTRY" enable="true" desc=""/> + <ns:field name="Location" enable="true"> + <ns:ontology name="Relationship" is-postcomp-rel="true" + file="http://obofoundry.org/ro/ro.obo"/> + <ns:ontology file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/environmental/gaz.obo"/> + </ns:field> + <ns:field name="GOLDSTAMP" enable="true" desc=""/> + <ns:field name="TAXON" enable="true"> + <ns:ontology name="Relationship" is-postcomp-rel="true" + file="http://obofoundry.org/ro/ro.obo"/> + <ns:ontology file="metagenomic_taxslim.obo"/> + </ns:field> + + <!-- *********************** SETTINGS **************************** --> + <ns:uvic-graph enable="false"/> + <ns:term-history enable="false"/> + <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <!--set to 0 if you want to bypass the check; time in seconds--> + <ns:update-timer timer="10"/> + + +</ns:phenote-configuration> Deleted: phenote/trunk/conf/metagenomic_sample.cfg =================================================================== --- phenote/trunk/conf/metagenomic_sample.cfg 2007-10-16 00:59:46 UTC (rev 1061) +++ phenote/trunk/conf/metagenomic_sample.cfg 2007-10-16 17:03:39 UTC (rev 1062) @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ns:phenote-configuration version="0.1-alpha" xmlns:ns="phenote/config/xml" - name="Environmental Sample" - author="Chris Mungall" - description="For annotating instances of samples obtained from geographic locations and environment types"> - <ns:log config-file="conf/log4j-standalone.xml"/> - - <!-- wipeout always means that the master will always wipeout the local copy - in this mode modifying the local is useless --> - <!-- ns:master-to-local-config mode="WIPEOUT" when="ALWAYS" - overriding-master-url="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/phenote/trunk/conf/envo_sample.cfg" / --> - - <!-- ********************* FILE ADAPTERS ************************** --> - <!-- be sure to include at least one enabled file adapter --> - <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> - - - <!-- ******************** FIELD DEFINITIONS *********************** --> - <ns:field name="Organism" enable="true" desc="Type of organism sampled"/> - <ns:field name="STRAIN" enable="true" datatag="GT" desc="Strain of organism sampled"/> - <ns:field name="SYMBIONT" enable="true" desc="Symbiont of organism sampled"/> - <ns:field name="HABITAT_DESC" enable="true" desc=""/> - <ns:field name="Habitat" enable="true"> - <ns:ontology name="Relationship" is-postcomp-rel="true" - file="http://obofoundry.org/ro/ro.obo"/> - <ns:ontology name="ENVO" file="http://www.purl.org/obo/obo-all/envo/envo.obo"/> - <ns:ontology name="FMA" file="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/fma-conversion/trunk/fma_obo.obo"/> - <ns:ontology name="CHEBI" - file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo"/> - </ns:field> - <ns:field name="ISOLATION_DESC" enable="true" desc=""/> - <ns:field name="Isolation" enable="true"> - <ns:ontology name="Relationship" is-postcomp-rel="true" - file="http://obofoundry.org/ro/ro.obo"/> - <ns:ontology name="ENVO" file="http://www.purl.org/obo/obo-all/envo/envo.obo"/> - <ns:ontology name="FMA" file="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/fma-conversion/trunk/fma_obo.obo"/> - <ns:ontology name="DO" file="http://purl.org/obo/obo-all/disease_ontology/disease_ontology.obo"/> - <ns:ontology name="CL" - file="http://www.berkeleybop.org/ontologies/obo-all/cell/cell.obo" /> - <ns:ontology name="TAXSLIM" file="metagenomic_taxslim.obo"/> - <ns:ontology name="CHEBI" - file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo"/> - </ns:field> - <ns:field name="Isolation Time" enable="true" desc="time at which sample was collected"/> - <ns:field name="COUNTRY" enable="true" desc=""/> - <ns:field name="Location" enable="true"> - <ns:ontology name="Relationship" is-postcomp-rel="true" - file="http://obofoundry.org/ro/ro.obo"/> - <ns:ontology file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/environmental/gaz.obo"/> - </ns:field> - <ns:field name="GOLDSTAMP" enable="true" desc=""/> - <ns:field name="TAXON" enable="true"> - <ns:ontology name="Relationship" is-postcomp-rel="true" - file="http://obofoundry.org/ro/ro.obo"/> - <ns:ontology file="metagenomic_taxslim.obo"/> - </ns:field> - - <!-- *********************** SETTINGS **************************** --> - <ns:uvic-graph enable="false"/> - <ns:term-history enable="false"/> - <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> - <!--set to 0 if you want to bypass the check; time in seconds--> - <ns:update-timer timer="10"/> - - -</ns:phenote-configuration> Modified: phenote/trunk/conf/ncbo.cfg =================================================================== --- phenote/trunk/conf/ncbo.cfg 2007-10-16 00:59:46 UTC (rev 1061) +++ phenote/trunk/conf/ncbo.cfg 2007-10-16 17:03:39 UTC (rev 1062) @@ -1,4 +1,4 @@ -<?xml version="1.3.2" encoding="UTF-8"?> +<?xml version="1.0" encoding="UTF-8"?> <!-- *********************** CONFIG INFO ************************** --> <ns:phenote-configuration xmlns:ns="phenote/config/xml" name="NCBO-OMIM Configuration" @@ -82,4 +82,4 @@ changed master-to-local config settings to ALWAYS WIPEOUT --> <!-- 07.10.2007 - Added link to fma_obo repository at foundry --> -</ns:phenote-configuration> \ No newline at end of file +</ns:phenote-configuration> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-10-16 00:59:43
|
Revision: 1061 http://obo.svn.sourceforge.net/obo/?rev=1061&view=rev Author: cmungall Date: 2007-10-15 17:59:46 -0700 (Mon, 15 Oct 2007) Log Message: ----------- Modified Paths: -------------- phenote/trunk/conf/metagenomic_sample.cfg Added Paths: ----------- phenote/trunk/obo-files/metagenomic_taxslim.obo Modified: phenote/trunk/conf/metagenomic_sample.cfg =================================================================== --- phenote/trunk/conf/metagenomic_sample.cfg 2007-10-16 00:58:48 UTC (rev 1060) +++ phenote/trunk/conf/metagenomic_sample.cfg 2007-10-16 00:59:46 UTC (rev 1061) @@ -37,7 +37,7 @@ <ns:ontology name="DO" file="http://purl.org/obo/obo-all/disease_ontology/disease_ontology.obo"/> <ns:ontology name="CL" file="http://www.berkeleybop.org/ontologies/obo-all/cell/cell.obo" /> - <ns:ontology name="TAXSLIM" file="envo_taxslim.obo"/> + <ns:ontology name="TAXSLIM" file="metagenomic_taxslim.obo"/> <ns:ontology name="CHEBI" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo"/> </ns:field> @@ -52,7 +52,7 @@ <ns:field name="TAXON" enable="true"> <ns:ontology name="Relationship" is-postcomp-rel="true" file="http://obofoundry.org/ro/ro.obo"/> - <ns:ontology file="envo_taxslim.obo"/> + <ns:ontology file="metagenomic_taxslim.obo"/> </ns:field> <!-- *********************** SETTINGS **************************** --> Added: phenote/trunk/obo-files/metagenomic_taxslim.obo =================================================================== --- phenote/trunk/obo-files/metagenomic_taxslim.obo (rev 0) +++ phenote/trunk/obo-files/metagenomic_taxslim.obo 2007-10-16 00:59:46 UTC (rev 1061) @@ -0,0 +1,12048 @@ +format-version: 1.2 + +[Term] +id: NCBITaxon:1 +name: root +namespace: unknown +synonym: "all" RELATED [] + +[Term] +id: NCBITaxon:100226 +name: Streptomyces coelicolor A3(2) +namespace: unknown +is_a: NCBITaxon:1902 ! Streptomyces coelicolor + +[Term] +id: NCBITaxon:100379 +name: Onion yellows phytoplasma +namespace: unknown +synonym: "Phytoplasma sp. onion yellows" RELATED [] +is_a: NCBITaxon:85620 ! Candidatus Phytoplasma asteris + +[Term] +id: NCBITaxon:101510 +name: Rhodococcus sp. RHA1 +namespace: unknown +synonym: "Rhodococcus sp. (strain RHA1)" EXACT [] +is_a: NCBITaxon:1827 ! Rhodococcus + +[Term] +id: NCBITaxon:101534 +name: Candidatus Blochmannia pennsylvanicus +namespace: unknown +synonym: "'Candidatus Blochmannia pennsylvanicus'" RELATED [] +synonym: "Blochmannia pennsylvanicus" RELATED [] +synonym: "endosymbiont of Camponotus pennsylvanicus" RELATED [] +is_a: NCBITaxon:203804 ! Candidatus Blochmannia + +[Term] +id: NCBITaxon:103690 +name: Nostoc sp. PCC 7120 +namespace: unknown +synonym: "Anabaena 7120" RELATED [] +synonym: "Anabaena PCC7120" RELATED [] +synonym: "Anabaena sp PCC 7120" RELATED [] +synonym: "Anabaena sp. (ATCC 27893)" RELATED [] +synonym: "Anabaena sp. (PCC 7120)" RELATED [] +synonym: "Anabaena sp. (strain PCC 7120)" RELATED [] +synonym: "Anabaena sp. 7120" RELATED [] +synonym: "Anabaena sp. DCC D0672" RELATED [] +synonym: "Anabaena sp. IRRI 'Ab 47 XX'" RELATED [] +synonym: "Anabaena sp. PCC 7120" RELATED [] +synonym: "Anabaena sp. PCC7120" RELATED [] +synonym: "Anabaena sp. SAG 25.82" RELATED [] +synonym: "Anabaena variabilis UTCC 387" RELATED [] +synonym: "Nostoc (Anabaena) sp. PCC 7120" RELATED [] +synonym: "Nostoc PCC7120" RELATED [] +synonym: "Nostoc muscorum ISU" RELATED [] +synonym: "Nostoc sp. ATCC 27347" RELATED [] +synonym: "Nostoc sp. ATCC 72893" RELATED [] +synonym: "Nostoc sp. PCC7120" RELATED [] +synonym: "Nostoc sp. strain PCC 7120" RELATED [] +is_a: NCBITaxon:1177 ! Nostoc + +[Term] +id: NCBITaxon:1041 +name: Erythrobacter +namespace: unknown +synonym: "Erythrobacter Shiba and Simidu 1982" RELATED [] +is_a: NCBITaxon:335929 ! Erythrobacteraceae + +[Term] +id: NCBITaxon:1046 +name: Chromatiaceae +namespace: unknown +synonym: "Chromatiaceae Bavendamm 1924 (Approved Lists 1980) emend. Imhoff 1984" RELATED [] +synonym: "purple sulfur bacteria" EXACT [] +is_a: NCBITaxon:135613 ! Chromatiales + +[Term] +id: NCBITaxon:1053 +name: Halorhodospira halophila +namespace: unknown +synonym: "Ectothiorhodospira halophila" RELATED [] +synonym: "Ectothiorhodospira halophila Raymond and Sistrom 1969 (Approved Lists 1980)" RELATED [] +synonym: "Halorhodospira halophila (Raymond and Sistrom 1969) Imhoff and Suling 1997" RELATED [] +is_a: NCBITaxon:85108 ! Halorhodospira + +[Term] +id: NCBITaxon:105560 +name: Methylibium petroleiphilum +namespace: unknown +synonym: "Methylibium petroleiphilum Nakatsu et al. 2006" RELATED [] +is_a: NCBITaxon:316612 ! Methylibium + +[Term] +id: NCBITaxon:1060 +name: Rhodobacter +namespace: unknown +synonym: "Rhodobacter Imhoff et al. 1984" RELATED [] +is_a: NCBITaxon:31989 ! Rhodobacteraceae + +[Term] +id: NCBITaxon:106178 +name: canis group +namespace: unknown +is_a: NCBITaxon:943 ! Ehrlichia + +[Term] +id: NCBITaxon:106179 +name: phagocytophilum group +namespace: unknown +synonym: "phagocytophila group" EXACT [] +is_a: NCBITaxon:768 ! Anaplasma + +[Term] +id: NCBITaxon:1063 +name: Rhodobacter sphaeroides +namespace: unknown +synonym: "Rhodobacter sphaeroides (van Niel 1944) Imhoff et al. 1984" RELATED [] +synonym: "Rhodococcus capsulatus" RELATED [] +synonym: "Rhodococcus minor" RELATED [] +synonym: "Rhodopseudomonas sphaeroides" RELATED [] +synonym: "Rhodopseudomonas sphaeroides van Niel 1944 (Approved Lists 1980)" RELATED [] +synonym: "Rhodopseudomonas spheroides" RELATED [] +synonym: "Rhodorhagus capsulatus" RELATED [] +synonym: "Rhodorhagus minor" RELATED [] +synonym: "Rhodorrhagus capsulatus" RELATED [] +synonym: "Rhodorrhagus spheroides" RELATED [] +synonym: "Rhodosphaera capsulata" RELATED [] +synonym: "Rhodosphaera minor" RELATED [] +is_a: NCBITaxon:1060 ! Rhodobacter + +[Term] +id: NCBITaxon:106370 +name: Frankia sp. CcI3 +namespace: unknown +is_a: NCBITaxon:1854 ! Frankia + +[Term] +id: NCBITaxon:106589 +name: Cupriavidus +namespace: unknown +synonym: "Cupravidus" EXACT [] +synonym: "Cupriavidus Makkar and Casida 1987 emend. Vandamme and Coenye 2004" RELATED [] +synonym: "Wautersia" RELATED [] +synonym: "Wautersia Vaneechoutte et al. 2004" RELATED [] +is_a: NCBITaxon:119060 ! Burkholderiaceae + +[Term] +id: NCBITaxon:106590 +name: Cupriavidus necator +namespace: unknown +synonym: "Alcaligenes eutrophus" RELATED [] +synonym: "Alcaligenes eutrophus Davis 1969 (Approved Lists 1980)" RELATED [] +synonym: "Cupravidus necator" EXACT [] +synonym: "Cupriavidus necator Makkar and Casida 1987" RELATED [] +synonym: "Hydrogenomonas eutropha" RELATED [] +synonym: "Ralstonia eutropha" RELATED [] +synonym: "Ralstonia eutropha (Davis 1969) Yabuuchi et al. 1996" RELATED [] +synonym: "Wautersia eutropha" RELATED [] +synonym: "Wautersia eutropha (Davis 1969) Vaneechoutte et al. 2004" RELATED [] +is_a: NCBITaxon:106589 ! Cupriavidus + +[Term] +id: NCBITaxon:1073 +name: Rhodopseudomonas +namespace: unknown +synonym: "Rhodobacillus" RELATED [] +synonym: "Rhodomonas" RELATED [] +synonym: "Rhodopseudomonas Czurda and Maresch 1937 (Approved Lists 1980) emend. Imhoff et al. 1984" RELATED [] +synonym: "Rhodopseudomonas Czurda and Maresch 1937 emend. van Niel 1944" RELATED [] +synonym: "Rhodopseudomonas Kluyver and van Niel 1937 (sic)" RELATED [] +is_a: NCBITaxon:41294 ! Bradyrhizobiaceae + +[Term] +id: NCBITaxon:1076 +name: Rhodopseudomonas palustris +namespace: unknown +synonym: "Rhodobacillus palustris" RELATED [] +synonym: "Rhodobacter palustris" RELATED [] +synonym: "Rhodobacterium capsulatum" RELATED [] +synonym: "Rhodomonas palustris" RELATED [] +synonym: "Rhodopseudomonas palustris (Molisch 1907) van Niel 1944" RELATED [] +synonym: "Rhodopseudomonas rutila" RELATED [] +synonym: "Rhodopseudomonas rutila Akiba et al. 1983" RELATED [] +synonym: "Rhodovibrio parvus" RELATED [] +is_a: NCBITaxon:1073 ! Rhodopseudomonas + +[Term] +id: NCBITaxon:107806 +name: Buchnera aphidicola str. APS (Acyrthosiphon pisum) +namespace: unknown +synonym: "Buchnera sp. APS" RELATED [] +is_a: NCBITaxon:118099 ! Buchnera aphidicola (Acyrthosiphon pisum) + +[Term] +id: NCBITaxon:1081 +name: Rhodospirillum +namespace: unknown +synonym: "Rhodospirillum Molisch 1907 (Approved Lists 1980) emend. Imhoff et al. 1998" RELATED [] +is_a: NCBITaxon:41295 ! Rhodospirillaceae + +[Term] +id: NCBITaxon:1085 +name: Rhodospirillum rubrum +namespace: unknown +synonym: "Dicrospirillum rubrum" RELATED [] +synonym: "Rhodospirillum giganteum" RELATED [] +synonym: "Rhodospirillum gracile" RELATED [] +synonym: "Rhodospirillum longum" RELATED [] +synonym: "Rhodospirillum rubrum (Esmarch 1887) Molisch 1907" RELATED [] +synonym: "Spirillum rubrum" RELATED [] +is_a: NCBITaxon:1081 ! Rhodospirillum + +[Term] +id: NCBITaxon:1090 +name: Chlorobi +namespace: unknown +synonym: "'Chlorobi'" RELATED [] +synonym: "Chlorobi" RELATED [] +synonym: "Green sulfur bacteria" RELATED [] +synonym: "green sulfur bacteria" RELATED [] +is_a: NCBITaxon:68336 ! Bacteroidetes/Chlorobi group + +[Term] +id: NCBITaxon:1091 +name: Chlorobium +namespace: unknown +synonym: "Chlorobium Nadson 1906 (Approved Lists 1980) emend. Imhoff 2003" RELATED [] +is_a: NCBITaxon:274493 ! Chlorobium/Pelodictyon group + +[Term] +id: NCBITaxon:109168 +name: Desulfotalea +namespace: unknown +synonym: "Desulfotalea Knoblauch et al. 1999" RELATED [] +is_a: NCBITaxon:213121 ! Desulfobulbaceae + +[Term] +id: NCBITaxon:1094 +name: Chlorobium phaeovibrioides +namespace: unknown +synonym: "Chlorobium phaeovibrioides Pfennig 1968 (Approved Lists 1980) emend. Imhoff 2003" RELATED [] +is_a: NCBITaxon:1091 ! Chlorobium + +[Term] +id: NCBITaxon:1096 +name: Chlorobium phaeobacteroides +namespace: unknown +synonym: "Chlorobium phaeobacteroides Pfennig 1968 (Approved Lists 1980) emend. Imhoff 2003" RELATED [] +is_a: NCBITaxon:1091 ! Chlorobium + +[Term] +id: NCBITaxon:1097 +name: Chlorobaculum tepidum +namespace: unknown +synonym: "Chlorobaculum tepidum (Wahlund et al. 1996) Imhoff 2003" RELATED [] +synonym: "Chlorobium tepidum" RELATED [] +synonym: "Chlorobium tepidum Wahlund et al. 1991" RELATED [] +synonym: "Chlorobium tepidum Wahlund et al. 1996" RELATED [] +is_a: NCBITaxon:256319 ! Chlorobaculum + +[Term] +id: NCBITaxon:1099 +name: Pelodictyon +namespace: unknown +synonym: "Pelodictyon Lauterborn 1913" RELATED [] +is_a: NCBITaxon:274493 ! Chlorobium/Pelodictyon group + +[Term] +id: NCBITaxon:1100 +name: Pelodictyon luteolum +namespace: unknown +synonym: "Aphanothece luteola" RELATED [] +synonym: "Chlorobium luteolum" RELATED [] +synonym: "Chlorobium luteolum (Schmidle 1901) Imhoff 2003" RELATED [] +synonym: "Pelodictyon aggregatum" RELATED [] +synonym: "Pelodictyon luteolum (Schmidle 1901) Pfennig and Truper 1971" RELATED [] +synonym: "Schmidlea luteola" RELATED [] +is_a: NCBITaxon:1099 ! Pelodictyon + +[Term] +id: NCBITaxon:110321 +name: Sinorhizobium medicae +namespace: unknown +synonym: "Ensifer medicae" RELATED [] +synonym: "Ensifer medicae (Rome et al. 1996) Young 2003" RELATED [] +synonym: "Sinorhizobium medicae Rome et al. 1996" RELATED [] +is_a: NCBITaxon:28105 ! Sinorhizobium + +[Term] +id: NCBITaxon:110500 +name: Pelotomaculum thermopropionicum +namespace: unknown +synonym: "Pelotomaculum thermopropionicum Imachi et al. 2002" RELATED [] +is_a: NCBITaxon:191373 ! Pelotomaculum + +[Term] +id: NCBITaxon:110539 +name: Mycobacterium vanbaalenii +namespace: unknown +synonym: "Mycobacterium vanbaalenii Khan et al. 2002" RELATED [] +is_a: NCBITaxon:1763 ! Mycobacterium + +[Term] +id: NCBITaxon:1106 +name: Chloroflexaceae +namespace: unknown +synonym: "'Chloroflexaceae'" RELATED [] +synonym: "Chloroflexaceae" RELATED [] +synonym: "filamentous anoxygenic phototrophic bacteria" EXACT [] +synonym: "photosynthetic flexibacteria" EXACT [] +is_a: NCBITaxon:32064 ! Chloroflexales + +[Term] +id: NCBITaxon:110662 +name: Synechococcus sp. CC9605 +namespace: unknown +is_a: NCBITaxon:1129 ! Synechococcus + +[Term] +id: NCBITaxon:110932 +name: Leifsonia +namespace: unknown +synonym: "Leifsonia" RELATED [] +synonym: "Leifsonia Evtushenko et al. 2000" RELATED [] +is_a: NCBITaxon:85023 ! Microbacteriaceae + +[Term] +id: NCBITaxon:111527 +name: pseudomallei group +namespace: unknown +is_a: NCBITaxon:32008 ! Burkholderia + +[Term] +id: NCBITaxon:1117 +name: Cyanobacteria +namespace: unknown +synonym: "Cyanophyceae" RELATED [] +synonym: "Cyanophycota" RELATED [] +synonym: "Cyanophyta" RELATED [] +synonym: "Oxygenic photosynthetic bacteria" RELATED [] +synonym: "Oxyphotobacteria" RELATED [] +synonym: "blue-green algae" EXACT [] +synonym: "blue-green bacteria" EXACT [] +synonym: "cyanobacteria" RELATED [] +synonym: "cyanophytes" EXACT [] +is_a: NCBITaxon:2 ! Bacteria + +[Term] +id: NCBITaxon:1118 +name: Chroococcales +namespace: unknown +is_a: NCBITaxon:1117 ! Cyanobacteria + +[Term] +id: NCBITaxon:112 +name: Planctomycetales +namespace: unknown +synonym: "Planctomycetales Schlesner and Stackebrandt 1987" RELATED [] +synonym: "planctomycetes" RELATED [] +is_a: NCBITaxon:203683 ! Planctomycetacia + +[Term] +id: NCBITaxon:112074 +name: unclassified Acidobacteriaceae +namespace: unknown +is_a: NCBITaxon:204434 ! Acidobacteriaceae + +[Term] +id: NCBITaxon:1129 +name: Synechococcus +namespace: unknown +synonym: "Anacystis" RELATED [] +is_a: NCBITaxon:1118 ! Chroococcales + +[Term] +id: NCBITaxon:1140 +name: Synechococcus elongatus PCC 7942 +namespace: unknown +synonym: "Anacystis nidulans" RELATED [] +synonym: "Anacystis nidulans R2" RELATED [] +synonym: "Anacystis nidulans R2-SPc'" RELATED [] +synonym: "Syncchococcus PCC7942" RELATED [] +synonym: "Synechococcus 7942" RELATED [] +synonym: "Synechococcus PCC 7942" RELATED [] +synonym: "Synechococcus PCC7942" RELATED [] +synonym: "Synechococcus sp. (PCC 7942)" RELATED [] +synonym: "Synechococcus sp. (strain PCC 7942)" RELATED [] +synonym: "Synechococcus sp. IAM M-200" RELATED [] +synonym: "Synechococcus sp. PCC 7942" EXACT [] +synonym: "Synechococcus sp. PCC7942" RELATED [] +synonym: "Synechocystis sp. PCC 7942" RELATED [] +is_a: NCBITaxon:32046 ! Synechococcus elongatus + +[Term] +id: NCBITaxon:114185 +name: Candidatus Carsonella +namespace: unknown +synonym: "'Candidatus Carsonella'" RELATED [] +synonym: "Candidatus Carsonella" RELATED [] +synonym: "Carsonella" RELATED [] +synonym: "primary endosymbionts of psyllids" EXACT [] +is_a: NCBITaxon:118884 ! unclassified Gammaproteobacteria + +[Term] +id: NCBITaxon:114186 +name: Candidatus Carsonella ruddii +namespace: unknown +synonym: "Candidatus Carsonella ruddii" RELATED [] +synonym: "Carsonella ruddii" RELATED [] +is_a: NCBITaxon:114185 ! Candidatus Carsonella + +[Term] +id: NCBITaxon:1142 +name: Synechocystis +namespace: unknown +synonym: "Synechococystis" RELATED [] +is_a: NCBITaxon:1118 ! Chroococcales + +[Term] +id: NCBITaxon:114277 +name: spotted fever group +namespace: unknown +is_a: NCBITaxon:780 ! Rickettsia + +[Term] +id: NCBITaxon:114292 +name: typhus group +namespace: unknown +is_a: NCBITaxon:780 ! Rickettsia + +[Term] +id: NCBITaxon:114295 +name: unclassified Rickettsia +namespace: unknown +is_a: NCBITaxon:780 ! Rickettsia + +[Term] +id: NCBITaxon:114615 +name: Bradyrhizobium sp. ORS278 +namespace: unknown +is_a: NCBITaxon:374 ! Bradyrhizobium + +[Term] +id: NCBITaxon:114627 +name: Alkaliphilus +namespace: unknown +synonym: "Alkaliphilus Takai et al. 2001 emend. Cao et al. 2003" RELATED [] +synonym: "Alkalliphilus" RELATED [] +is_a: NCBITaxon:31979 ! Clostridiaceae + +[Term] +id: NCBITaxon:1148 +name: Synechocystis sp. PCC 6803 +namespace: unknown +synonym: "Aphanocapsa sp. (strain N-1)" RELATED [] +synonym: "Aphanocapsa sp. N-1" RELATED [] +synonym: "Synechocystis 6803" EXACT [] +synonym: "Synechocystis PCC6803" EXACT [] +synonym: "Synechocystis sp. (ATCC 27184)" RELATED [] +synonym: "Synechocystis sp. (PCC 6803)" EXACT [] +synonym: "Synechocystis sp. (strain PCC 6803)" EXACT [] +synonym: "Synechocystis sp. ATCC 27184" RELATED [] +synonym: "Synechocystis sp. PCC6803" EXACT [] +synonym: "Synechocystis sp.PCC6803" RELATED [] +is_a: NCBITaxon:1142 ! Synechocystis + +[Term] +id: NCBITaxon:1150 +name: Oscillatoriales +namespace: unknown +is_a: NCBITaxon:1117 ! Cyanobacteria + +[Term] +id: NCBITaxon:115711 +name: Chlamydophila pneumoniae AR39 +namespace: unknown +synonym: "Chlamydia pneumoniae AR39" RELATED [] +is_a: NCBITaxon:83558 ! Chlamydophila pneumoniae + +[Term] +id: NCBITaxon:115713 +name: Chlamydophila pneumoniae CWL029 +namespace: unknown +synonym: "Chlamydia pneumoniae CWL029" RELATED [] +is_a: NCBITaxon:83558 ! Chlamydophila pneumoniae + +[Term] +id: NCBITaxon:1161 +name: Nostocales +namespace: unknown +is_a: NCBITaxon:1117 ! Cyanobacteria + +[Term] +id: NCBITaxon:1162 +name: Nostocaceae +namespace: unknown +is_a: NCBITaxon:1161 ! Nostocales + +[Term] +id: NCBITaxon:1163 +name: Anabaena +namespace: unknown +is_a: NCBITaxon:1162 ! Nostocaceae + +[Term] +id: NCBITaxon:1172 +name: Anabaena variabilis +namespace: unknown +synonym: "Anabaena ATCC29413" RELATED [] +synonym: "Anabaena PCC7937" RELATED [] +synonym: "Anabaena flos-aquae (strain IUCC 1444)" RELATED [] +synonym: "Anabaena sp. (ATCC 29413)" RELATED [] +synonym: "Anabaena sp. (PCC 7937)" RELATED [] +synonym: "Anabaena sp. (strain ATCC 29413)" RELATED [] +synonym: "Anabaena sp. (strain PCC 7937)" RELATED [] +synonym: "Anabaena sp. A37" RELATED [] +synonym: "Anabaena sp. PCC 7937" RELATED [] +synonym: "Anabaena sp. UTEX1444" RELATED [] +synonym: "Nostoc PCC7937" RELATED [] +is_a: NCBITaxon:1163 ! Anabaena + +[Term] +id: NCBITaxon:117207 +name: Sphingopyxis alaskensis +namespace: unknown +synonym: "Sphingomonas alaska" EXACT [] +synonym: "Sphingomonas alaskensis" RELATED [] +synonym: "Sphingomonas alaskensis Vancanneyt et al. 2001" RELATED [] +synonym: "Sphingopixis alaskensis" RELATED [] +synonym: "Sphingopyxis alaskensis (Vancanneyt et al. 2001) Godoy et al. 2003" RELATED [] +is_a: NCBITaxon:165697 ! Sphingopyxis + +[Term] +id: NCBITaxon:1177 +name: Nostoc +namespace: unknown +synonym: "Amorphonostoc" RELATED [] +is_a: NCBITaxon:1162 ! Nostocaceae + +[Term] +id: NCBITaxon:117743 +name: Flavobacteria +namespace: unknown +synonym: "'Flavobacteria'" RELATED [] +synonym: "Flavobacteria" RELATED [] +synonym: "not Flavobacteria Cavalier-Smith 2002" RELATED [] +is_a: NCBITaxon:976 ! Bacteroidetes + +[Term] +id: NCBITaxon:117747 +name: Sphingobacteria +namespace: unknown +synonym: "'Sphingobacteria'" RELATED [] +synonym: "not Sphingobacteria Cavalier-Smith 2002" RELATED [] +is_a: NCBITaxon:976 ! Bacteroidetes + +[Term] +id: NCBITaxon:118099 +name: Buchnera aphidicola (Acyrthosiphon pisum) +namespace: unknown +synonym: "Acyrthosiphon pisum endosymbiont" RELATED [] +synonym: "Acyrthosiphon pisum primary endosymbiont" RELATED [] +synonym: "Acyrthosiphon pisum symbiotic bacterium" RELATED [] +synonym: "Buchnera sp. (Acyrthosiphon pisum symbiont)" RELATED [] +synonym: "primary endosymbiont of Acyrthosiphon pisum" RELATED [] +is_a: NCBITaxon:9 ! Buchnera aphidicola + +[Term] +id: NCBITaxon:118882 +name: Brucellaceae +namespace: unknown +synonym: "Brucellaceae Breed et al. 1957" RELATED [] +is_a: NCBITaxon:356 ! Rhizobiales + +[Term] +id: NCBITaxon:118884 +name: unclassified Gammaproteobacteria +namespace: unknown +synonym: "unclassified gamma proteobacteria" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:118964 +name: Deinococcales +namespace: unknown +synonym: "Deinococcales Rainey et al. 1997" RELATED [] +synonym: "radio-resistant micrococci" EXACT [] +is_a: NCBITaxon:188787 ! Deinococci + +[Term] +id: NCBITaxon:118968 +name: Coxiellaceae +namespace: unknown +synonym: "Coxiella group" RELATED [] +synonym: "Coxiellaceae Garrity et al. 2005" RELATED [] +is_a: NCBITaxon:118969 ! Legionellales + +[Term] +id: NCBITaxon:118969 +name: Legionellales +namespace: unknown +synonym: "Legionellaceae group" RELATED [] +synonym: "Legionellales Garrity et al. 2005" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:119060 +name: Burkholderiaceae +namespace: unknown +synonym: "'Burkholderiaceae'" RELATED [] +synonym: "Burkholderia group" RELATED [] +is_a: NCBITaxon:80840 ! Burkholderiales + +[Term] +id: NCBITaxon:119065 +name: unclassified Burkholderiales +namespace: unknown +is_a: NCBITaxon:80840 ! Burkholderiales + +[Term] +id: NCBITaxon:119069 +name: Hydrogenophilales +namespace: unknown +synonym: "'Hydrogenophilales'" RELATED [] +synonym: "Hydrogenophilus group" RELATED [] +is_a: NCBITaxon:28216 ! Betaproteobacteria + +[Term] +id: NCBITaxon:119072 +name: Thermoanaerobacter tengcongensis +namespace: unknown +synonym: "Caldanaerobacter subterraneus subsp. tengcongensis" RELATED [] +synonym: "Caldanaerobacter subterraneus subsp. tengcongensis (Xue et al. 2001) Fardeau et al. 2004" RELATED [] +synonym: "Thermoanaerobacter tengcongensis Xue et al. 2001" RELATED [] +is_a: NCBITaxon:1754 ! Thermoanaerobacter + +[Term] +id: NCBITaxon:119219 +name: Cupriavidus metallidurans +namespace: unknown +synonym: "Cupriavidus metallidurans (Goris et al. 2001) Vandamme and Coenye 2004" RELATED [] +synonym: "Ralstonia metallidurans" RELATED [] +synonym: "Ralstonia metallidurans Goris et al. 2001" RELATED [] +synonym: "Wautersia metallidurans" RELATED [] +synonym: "Wautersia metallidurans (Goris et al. 2001) Vaneechoutte et al. 2004" RELATED [] +is_a: NCBITaxon:106589 ! Cupriavidus + +[Term] +id: NCBITaxon:119484 +name: Syntrophobacter fumaroxidans +namespace: unknown +synonym: "Syntrophobacter fumaroxidans Harmsen et al. 1998" RELATED [] +is_a: NCBITaxon:29526 ! Syntrophobacter + +[Term] +id: NCBITaxon:119856 +name: Francisella tularensis subsp. tularensis +namespace: unknown +synonym: "Francisella tularensis subsp. nearctica" RELATED [] +synonym: "Francisella tularensis subsp. tularensis (McCoy and Chapin 1912) Dorofe'ev 1947" RELATED [] +synonym: "Francisella tularensis var. tularemia" RELATED [] +is_a: NCBITaxon:263 ! Francisella tularensis + +[Term] +id: NCBITaxon:119857 +name: Francisella tularensis subsp. holarctica +namespace: unknown +synonym: "Francisella tularensis subsp. holarctica" RELATED [] +synonym: "Francisella tularensis subsp. holarctica (ex Olsufjev et al. 1959) Olsufjev & Meshcheryakova 1983" RELATED [] +synonym: "Francisella tularensis var. palaearctica" RELATED [] +is_a: NCBITaxon:263 ! Francisella tularensis + +[Term] +id: NCBITaxon:119912 +name: Salmonella enterica subsp. enterica serovar Choleraesuis +namespace: unknown +synonym: "Salmonella choleraesuis choleraesuis" RELATED [] +synonym: "Salmonella choleraesuis serovar Choleraesuis" RELATED [] +synonym: "Salmonella enterica serovar Choleraesuis" RELATED [] +is_a: NCBITaxon:59201 ! Salmonella enterica subsp. enterica + +[Term] +id: NCBITaxon:120045 +name: Zymomonas mobilis subsp. mobilis +namespace: unknown +synonym: "Zymomonas mobilis subsp. mobilis (Lindner 1928) De Ley and Swings 1976" RELATED [] +synonym: "Zymomonas mobilis subsp. mobilis (Lindner 1928) Kluyver and van Niel 1936" RELATED [] +is_a: NCBITaxon:542 ! Zymomonas mobilis + +[Term] +id: NCBITaxon:1205 +name: Trichodesmium +namespace: unknown +is_a: NCBITaxon:1150 ! Oscillatoriales + +[Term] +id: NCBITaxon:1206 +name: Trichodesmium erythraeum +namespace: unknown +is_a: NCBITaxon:1205 ! Trichodesmium + +[Term] +id: NCBITaxon:120793 +name: Mycobacterium avium complex (MAC) +namespace: unknown +synonym: "MAC" BROAD [] +is_a: NCBITaxon:1763 ! Mycobacterium + +[Term] +id: NCBITaxon:120961 +name: Roseiflexus +namespace: unknown +synonym: "Roseiflexus Hanada et al. 2002" RELATED [] +is_a: NCBITaxon:1106 ! Chloroflexaceae + +[Term] +id: NCBITaxon:1212 +name: Prochlorales +namespace: unknown +synonym: "Prochlorales" RELATED [] +synonym: "Prochlorales (ex Lewin 1977) Florenzano et al. 1986 emend. Burger-Wiersma et al. 1989" RELATED [] +synonym: "prochlorophytes" EXACT [] +is_a: NCBITaxon:1117 ! Cyanobacteria + +[Term] +id: NCBITaxon:1217 +name: Prochlorococcaceae +namespace: unknown +synonym: "'Prochlorococcaceae'" RELATED [] +is_a: NCBITaxon:1212 ! Prochlorales + +[Term] +id: NCBITaxon:1218 +name: Prochlorococcus +namespace: unknown +synonym: "Prochlorococcus Chisholm et al. 2001" RELATED [] +is_a: NCBITaxon:1217 ! Prochlorococcaceae + +[Term] +id: NCBITaxon:1219 +name: Prochlorococcus marinus +namespace: unknown +synonym: "Prochlorococcus marinus Chisholm et al. 2001" RELATED [] +synonym: "Prochlorococcus maritima" RELATED [] +is_a: NCBITaxon:1218 ! Prochlorococcus + +[Term] +id: NCBITaxon:122277 +name: Pectobacterium +namespace: unknown +synonym: "Pectobacterium Waldee 1945 (Approved Lists 1980) emend. Hauben et al. 1999" RELATED [] +is_a: NCBITaxon:543 ! Enterobacteriaceae + +[Term] +id: NCBITaxon:1224 +name: Proteobacteria +namespace: unknown +synonym: "Proteobacteria (as class) Stackebrandt et al. 1988" RELATED [] +synonym: "Proteobacteria Garrity et al. 2005" RELATED [] +synonym: "not Proteobacteria Cavalier-Smith 2002" RELATED [] +synonym: "proteobacteria" RELATED [] +synonym: "purple bacteria" EXACT [] +synonym: "purple bacteria and relatives" EXACT [] +synonym: "purple non-sulfur bacteria" EXACT [] +synonym: "purple photosynthetic bacteria" EXACT [] +synonym: "purple photosynthetic bacteria and relatives" EXACT [] +is_a: NCBITaxon:2 ! Bacteria + +[Term] +id: NCBITaxon:122586 +name: Neisseria meningitidis MC58 +namespace: unknown +synonym: "Neisseria meningitidis serogroup B strain MC58" RELATED [] +is_a: NCBITaxon:491 ! Neisseria meningitidis serogroup B + +[Term] +id: NCBITaxon:122587 +name: Neisseria meningitidis Z2491 +namespace: unknown +synonym: "Neisseria meningitidis serogroup A strain Z2491" RELATED [] +is_a: NCBITaxon:65699 ! Neisseria meningitidis serogroup A + +[Term] +id: NCBITaxon:1227 +name: Nitrosococcus +namespace: unknown +synonym: "Nitrosococcus Winogradsky 1892" RELATED [] +is_a: NCBITaxon:1046 ! Chromatiaceae + +[Term] +id: NCBITaxon:1229 +name: Nitrosococcus oceani +namespace: unknown +synonym: "Nitrosococcus oceani corrig. (Watson 1965) Watson 1971" RELATED [] +synonym: "Nitrosococcus oceanus" RELATED [] +synonym: "Nitrosocystis oceanus" RELATED [] +is_a: NCBITaxon:1227 ! Nitrosococcus + +[Term] +id: NCBITaxon:1231 +name: Nitrosospira multiformis +namespace: unknown +synonym: "Nitrosolobus multiformis" RELATED [] +synonym: "Nitrosolobus multiformis Watson et al. 1971 (Approved Lists 1980)" RELATED [] +synonym: "Nitrosospira multiformis (Watson et al. 1971) Head et al. 1995" RELATED [] +is_a: NCBITaxon:35798 ! Nitrosospira + +[Term] +id: NCBITaxon:1236 +name: Gammaproteobacteria +namespace: unknown +synonym: "Gammaproteobacteria Garrity et al. 2005" RELATED [] +synonym: "Proteobacteria gamma subdivision" RELATED [] +synonym: "Purple bacteria, gamma subdivision" RELATED [] +synonym: "g-proteobacteria" RELATED [] +synonym: "gamma proteobacteria" RELATED [] +synonym: "gamma subdivision" RELATED [] +synonym: "gamma subgroup" RELATED [] +is_a: NCBITaxon:1224 ! Proteobacteria + +[Term] +id: NCBITaxon:1239 +name: Firmicutes +namespace: unknown +synonym: "Bacillus/Clostridium group" RELATED [] +synonym: "Clostridium group firmicutes" RELATED [] +synonym: "Firmacutes" RELATED [] +synonym: "Firmicutes corrig. Gibbons and Murray 1978" RELATED [] +synonym: "Gram-positive bacteria" EXACT [] +synonym: "Low G+C firmicutes" RELATED [] +synonym: "clostridial firmicutes" RELATED [] +synonym: "low G+C Gram-positive bacteria" EXACT [] +synonym: "low GC Gram+" EXACT [] +is_a: NCBITaxon:2 ! Bacteria + +[Term] +id: NCBITaxon:1243 +name: Leuconostoc +namespace: unknown +synonym: "Betacoccus" RELATED [] +synonym: "Leuconostoc van Tieghem 1878" RELATED [] +is_a: NCBITaxon:81850 ! Leuconostocaceae + +[Term] +id: NCBITaxon:1245 +name: Leuconostoc mesenteroides +namespace: unknown +synonym: "Ascococcus mesenteroides" RELATED [] +synonym: "Betacoccus arabinosaceus" RELATED [] +synonym: "Leuconostoc mesanteroides" RELATED [] +synonym: "Leuconostoc mesenteroides (Tsenkovskii 1878) van Tieghem 1878" RELATED [] +is_a: NCBITaxon:1243 ! Leuconostoc + +[Term] +id: NCBITaxon:1247 +name: Oenococcus oeni +namespace: unknown +synonym: "Leuconostoc blayaisense" RELATED [] +synonym: "Leuconostoc oeni" RELATED [] +synonym: "Leuconostoc oeni corrig. Garvie 1967 (Approved Lists 1980)" RELATED [] +synonym: "Leuconostoc oenos" RELATED [] +synonym: "Oenococcus oeni (Garvie 1967) Dicks et al. 1995" RELATED [] +is_a: NCBITaxon:46254 ! Oenococcus + +[Term] +id: NCBITaxon:1253 +name: Pediococcus +namespace: unknown +synonym: "Pediococcus Balcke 1884 (sic)" RELATED [] +synonym: "Pediococcus Claussen 1903" RELATED [] +is_a: NCBITaxon:33958 ! Lactobacillaceae + +[Term] +id: NCBITaxon:1255 +name: Pediococcus pentosaceus +namespace: unknown +synonym: "Pediococcus hennebergii" RELATED [] +synonym: "Pediococcus parvulus" RELATED [] +synonym: "Pediococcus pentosaceus Mees 1934" RELATED [] +synonym: "Tetracoccus No. 2" RELATED [] +is_a: NCBITaxon:1253 ! Pediococcus + +[Term] +id: NCBITaxon:126 +name: Planctomycetaceae +namespace: unknown +synonym: "Planctomycetaceae Schlesner and Stackebrandt 1987" RELATED [] +is_a: NCBITaxon:112 ! Planctomycetales + +[Term] +id: NCBITaxon:1268 +name: Micrococcaceae +namespace: unknown +synonym: "Micrococcaceae Pribham (sic) 1929 (Approved Lists 1980) emend. Stackebrandt et al. 1997" RELATED [] +synonym: "Micrococcaceae Pribram 1929 (Approved Lists 1980) emend. Stackebrandt et al. 1997" RELATED [] +is_a: NCBITaxon:85006 ! Micrococcineae + +[Term] +id: NCBITaxon:1279 +name: Staphylococcus +namespace: unknown +synonym: "Aurococcus" RELATED [] +synonym: "Staphylococcus Rosenbach 1884" RELATED [] +is_a: NCBITaxon:90964 ! Staphylococcaceae + +[Term] +id: NCBITaxon:127906 +name: Vibrio cholerae O1 +namespace: unknown +synonym: "Vibrio cholerae 01" RELATED [] +synonym: "Vibrio cholerae serogroup O1" RELATED [] +is_a: NCBITaxon:666 ! Vibrio cholerae + +[Term] +id: NCBITaxon:1280 +name: Staphylococcus aureus +namespace: unknown +synonym: "Micrococcus aureus" RELATED [] +synonym: "Micrococcus pyogenes" RELATED [] +synonym: "Staphilococcus aureus" RELATED [] +synonym: "Staphlococcus pyogenes citreus" RELATED [] +synonym: "Staphylococcus aureus Rosenbach 1884" RELATED [] +synonym: "Staphylococcus pyogenes aureus" RELATED [] +synonym: "Staphylococus aureus" RELATED [] +synonym: "Streptococcus aureus" RELATED [] +is_a: NCBITaxon:1279 ! Staphylococcus + +[Term] +id: NCBITaxon:1282 +name: Staphylococcus epidermidis +namespace: unknown +synonym: "Albococcus epidermidis" RELATED [] +synonym: "Micrococcus epidermidis" RELATED [] +synonym: "Staphylococcus epidermidis (Winslow and Winslow 1908) Evans 1916" RELATED [] +synonym: "Staphylococcus epidermidis albus" RELATED [] +is_a: NCBITaxon:1279 ! Staphylococcus + +[Term] +id: NCBITaxon:1283 +name: Staphylococcus haemolyticus +namespace: unknown +synonym: "Staphylococcus haemolyticus Schleifer and Kloos 1975" RELATED [] +is_a: NCBITaxon:1279 ! Staphylococcus + +[Term] +id: NCBITaxon:12916 +name: Acidovorax +namespace: unknown +synonym: "Acidivorax" EXACT [] +synonym: "Acidovorax Willems et al. 1990 emend. Willems et al. 1992" RELATED [] +is_a: NCBITaxon:80864 ! Comamonadaceae + +[Term] +id: NCBITaxon:129337 +name: Geobacillus +namespace: unknown +synonym: "Geobacillus Nazina et al. 2001" RELATED [] +is_a: NCBITaxon:186817 ! Bacillaceae + +[Term] +id: NCBITaxon:12960 +name: Azoarcus +namespace: unknown +synonym: "Azoarcus Reinhold-Hurek et al. 1993" RELATED [] +is_a: NCBITaxon:75787 ! Rhodocyclaceae + +[Term] +id: NCBITaxon:1297 +name: Deinococcus-Thermus +namespace: unknown +synonym: "'Deinococcus-Thermus'" RELATED [] +synonym: "Thermus/Deinococcus group" RELATED [] +is_a: NCBITaxon:2 ! Bacteria + +[Term] +id: NCBITaxon:1298 +name: Deinococcus +namespace: unknown +synonym: "Deinococcus Brooks and Murray 1981 emend. Rainey et al. 1997" RELATED [] +is_a: NCBITaxon:183710 ! Deinococcaceae + +[Term] +id: NCBITaxon:1299 +name: Deinococcus radiodurans +namespace: unknown +synonym: "Deinococcus radiidurans" EXACT [] +synonym: "Deinococcus radiodurans (ex Raj et al. 1960) Brooks and Murray 1981" RELATED [] +synonym: "Micrococcus radiodurans" RELATED [] +is_a: NCBITaxon:1298 ! Deinococcus + +[Term] +id: NCBITaxon:129957 +name: Carboxydothermus +namespace: unknown +synonym: "Carboxydothermus Svetlichny et al. 1991" RELATED [] +is_a: NCBITaxon:186807 ! Peptococcaceae + +[Term] +id: NCBITaxon:129958 +name: Carboxydothermus hydrogenoformans +namespace: unknown +synonym: "Carboxydothermus hydrogeniformans" RELATED [] +synonym: "Carboxydothermus hydrogenoformans Svetlichny et al. 1991" RELATED [] +is_a: NCBITaxon:129957 ! Carboxydothermus + +[Term] +id: NCBITaxon:1300 +name: Streptococcaceae +namespace: unknown +synonym: "Streptococcaceae Deibel and Seeley 1974" RELATED [] +is_a: NCBITaxon:186826 ! Lactobacillales + +[Term] +id: NCBITaxon:1301 +name: Streptococcus +namespace: unknown +synonym: "Streptococcus Rosenbach 1884" RELATED [] +is_a: NCBITaxon:1300 ! Streptococcaceae + +[Term] +id: NCBITaxon:1305 +name: Streptococcus sanguinis +namespace: unknown +synonym: "Streptococcus sanguinis corrig. White and Niven 1946 (AL 1980) emend. Kilian et al. 1989" RELATED [] +synonym: "Streptococcus sanguis" RELATED [] +is_a: NCBITaxon:1301 ! Streptococcus + +[Term] +id: NCBITaxon:1307 +name: Streptococcus suis +namespace: unknown +synonym: "Streptococcus suis (ex Elliott 1966) Kilpper-Balz and Schleifer 1987" RELATED [] +is_a: NCBITaxon:1301 ! Streptococcus + +[Term] +id: NCBITaxon:1308 +name: Streptococcus thermophilus +namespace: unknown +synonym: "Streptococcus salivarius subsp. thermophilus" RELATED [] +synonym: "Streptococcus salivarius subsp. thermophilus (Orla-Jensen 1919) Farrow and Collins 1984" RELATED [] +synonym: "Streptococcus salivarius thermophilus" EXACT [] +synonym: "Streptococcus thermophilus (Orla-Jensen 1919) Schleifer et al. 1995" RELATED [] +is_a: NCBITaxon:1301 ! Streptococcus + +[Term] +id: NCBITaxon:1309 +name: Streptococcus mutans +namespace: unknown +synonym: "Staphylococcus mutans" RELATED [] +synonym: "Streptococcus mutans Clarke 1924" RELATED [] +is_a: NCBITaxon:1301 ! Streptococcus + +[Term] +id: NCBITaxon:1311 +name: Streptococcus agalactiae +namespace: unknown +synonym: "Streptoccocus de la mammite" RELATED [] +synonym: "Streptococcus agalactiae Lehmann and Neumann 1896" RELATED [] +synonym: "Streptococcus agalactiae contagiosae" RELATED [] +synonym: "Streptococcus difficile" RELATED [] +synonym: "Streptococcus difficilis" RELATED [] +synonym: "Streptococcus difficilis corrig. Eldar et al. 1995" RELATED [] +synonym: "Streptococcus mastitidis" RELATED [] +is_a: NCBITaxon:1301 ! Streptococcus + +[Term] +id: NCBITaxon:1313 +name: Streptococcus pneumoniae +namespace: unknown +synonym: "Diplococcus pneumoniae" RELATED [] +synonym: "Micrococcus pneumoniae" RELATED [] +synonym: "Streptococcus pneumoniae (Klein 1884) Chester 1901" RELATED [] +is_a: NCBITaxon:1301 ! Streptococcus + +[Term] +id: NCBITaxon:13134 +name: Magnetospirillum +namespace: unknown +synonym: "Magnetospirillum Schleifer et al. 1992" RELATED [] +is_a: NCBITaxon:41295 ! Rhodospirillaceae + +[Term] +id: NCBITaxon:1314 +name: Streptococcus pyogenes +namespace: unknown +synonym: "Micrococcus scarlatinae" RELATED [] +synonym: "Streptococcus erysipelatos" RELATED [] +synonym: "Streptococcus hemolyticus" RELATED [] +synonym: "Streptococcus pyogenes Rosenbach 1884" RELATED [] +synonym: "Streptococcus pyrogenes" RELATED [] +synonym: "Streptococcus scarlatinae" RELATED [] +is_a: NCBITaxon:1301 ! Streptococcus + +[Term] +id: NCBITaxon:131550 +name: Fibrobacteres/Acidobacteria group +namespace: unknown +synonym: "Fibrobacter/Acidobacteria group" EXACT [] +is_a: NCBITaxon:2 ! Bacteria + +[Term] +id: NCBITaxon:131567 +name: cellular organisms +namespace: unknown +synonym: "biota" RELATED [] +is_a: NCBITaxon:1 ! root + +[Term] +id: NCBITaxon:131568 +name: Kineococcus radiotolerans +namespace: unknown +synonym: "Kineococcus radiotolerans Phillips et al. 2002" RELATED [] +is_a: NCBITaxon:33981 ! Kineococcus + +[Term] +id: NCBITaxon:133193 +name: Alkalilimnicola +namespace: unknown +synonym: "Alcalilimnicola" RELATED [] +synonym: "Alcalilimnigenes" EXACT [] +synonym: "Alkalilimnicola corrig. Yakimov et al. 2001" RELATED [] +is_a: NCBITaxon:72276 ! Ectothiorhodospiraceae + +[Term] +id: NCBITaxon:13373 +name: Burkholderia mallei +namespace: unknown +synonym: "Acinetobacter mallei" RELATED [] +synonym: "Actinobacillus mallei" RELATED [] +synonym: "Bacillus mallei" RELATED [] +synonym: "Burkholderia mallei (Zopf 1885) Yabuuchi et al. 1993" RELATED [] +synonym: "Loefferella mallei" RELATED [] +synonym: "Malleomyces mallei" RELATED [] +synonym: "Pfeifferella mallei" RELATED [] +synonym: "Pseudomonas mallei" RELATED [] +synonym: "Pseudomonas mallei (Zopf 1885) Redfearn et al. 1966 (Approved Lists 1980)" RELATED [] +is_a: NCBITaxon:32008 ! Burkholderia + +[Term] +id: NCBITaxon:134821 +name: Ureaplasma parvum +namespace: unknown +synonym: "Ureaplasma parvum Robertson et al. 2002" RELATED [] +synonym: "Ureaplasma urealyticum biovar 1" RELATED [] +is_a: NCBITaxon:2129 ! Ureaplasma + +[Term] +id: NCBITaxon:1350 +name: Enterococcus +namespace: unknown +synonym: "Enterococcus" RELATED [] +synonym: "Enterococcus (ex Thiercelin and Jouhaud 1903) Schleifer and Kilpper-Balz 1984" RELATED [] +is_a: NCBITaxon:81852 ! Enterococcaceae + +[Term] +id: NCBITaxon:1351 +name: Enterococcus faecalis +namespace: unknown +synonym: "Enterococcus faecalis (Andrewes and Horder 1906) Schleifer and Kilpper-Balz 1984" RELATED [] +synonym: "Enterococcus proteiformis" RELATED [] +synonym: "Enterocoque" RELATED [] +synonym: "Micrococcus ovalis" RELATED [] +synonym: "Micrococcus zymogenes" RELATED [] +synonym: "Streptococcus faecalis" RELATED [] +synonym: "Streptococcus faecalis Andrewes and Horder 1906 (Approved Lists 1980)" RELATED [] +synonym: "Streptococcus glycerinaceus" RELATED [] +synonym: "Streptococcus liquefaciens" RELATED [] +is_a: NCBITaxon:1350 ! Enterococcus + +[Term] +id: NCBITaxon:135461 +name: Bacillus subtilis subsp. subtilis +namespace: unknown +synonym: "Bacillus subtilis subsp. subtilis (Ehrenberg 1835) Cohn 1872" RELATED [] +is_a: NCBITaxon:1423 ! Bacillus subtilis + +[Term] +id: NCBITaxon:135575 +name: Idiomarina +namespace: unknown +synonym: "Idiomarina Ivanova et al. 2000" RELATED [] +is_a: NCBITaxon:267893 ! Idiomarinaceae + +[Term] +id: NCBITaxon:135577 +name: Idiomarina loihiensis +namespace: unknown +synonym: "Idiomarina loihiensis Donachie et al. 2003" RELATED [] +is_a: NCBITaxon:135575 ! Idiomarina + +[Term] +id: NCBITaxon:135613 +name: Chromatiales +namespace: unknown +synonym: "Chromatiaceae/Ectothiorhodospiraceae group" RELATED [] +synonym: "Chromatiales Imhoff 2005" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:135614 +name: Xanthomonadales +namespace: unknown +synonym: "Xanthomonadales Saddler and Bradbury 2005" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:135615 +name: Cardiobacteriales +namespace: unknown +synonym: "Cardiobacteriaceae group" RELATED [] +synonym: "Cardiobacteriales Garrity et al. 2005" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:135616 +name: Piscirickettsiaceae +namespace: unknown +synonym: "Piscirickettsia group" RELATED [] +synonym: "Piscirickettsiaceae Fryer and Lannan 2005" RELATED [] +is_a: NCBITaxon:72273 ! Thiotrichales + +[Term] +id: NCBITaxon:135618 +name: Methylococcales +namespace: unknown +synonym: "Methylococcaceae group" RELATED [] +synonym: "Methylococcales Bowman 2005" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:135619 +name: Oceanospirillales +namespace: unknown +synonym: "Oceanospirillales Garrity et al. 2005" RELATED [] +synonym: "Oceanospirillum/Halomonas group" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:135620 +name: Oceanospirillaceae +namespace: unknown +synonym: "Alcanivorax/Fundibacter group" RELATED [] +synonym: "Oceanospirillaceae Garrity et al. 2005" RELATED [] +synonym: "Oceanospirillum group" RELATED [] +is_a: NCBITaxon:135619 ! Oceanospirillales + +[Term] +id: NCBITaxon:135621 +name: Pseudomonadaceae +namespace: unknown +synonym: "Pseudomonadaceae Winslow et al. 1917" RELATED [] +is_a: NCBITaxon:72274 ! Pseudomonadales + +[Term] +id: NCBITaxon:135622 +name: Alteromonadales +namespace: unknown +synonym: "Alteromonadaceae group" RELATED [] +synonym: "Alteromonadales Bowman and McMeekin 2005" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:135623 +name: Vibrionales +namespace: unknown +synonym: "'Vibrionales'" RELATED [] +synonym: "Vibrionaceae group" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:135624 +name: Aeromonadales +namespace: unknown +synonym: "Aeromonadaceae/Succinivibrionaceae group" RELATED [] +synonym: "Aeromonadales Martin-Carnahan and Joseph 2005" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:135625 +name: Pasteurellales +namespace: unknown +synonym: "Pasteruellaceae group" RELATED [] +synonym: "Pasteurellales Garrity et al. 2005" RELATED [] +is_a: NCBITaxon:1236 ! Gammaproteobacteria + +[Term] +id: NCBITaxon:1357 +name: Lactococcus +namespace: unknown +synonym: "Lactococcus Schleifer et al. 1986" RELATED [] +synonym: "lactic streptococci" EXACT [] +is_a: NCBITaxon:1300 ! Streptococcaceae + +[Term] +id: NCBITaxon:135720 +name: Neisseria meningitidis serogroup C +namespace: unknown +synonym: "Neisseria meningitidis (serogroup C)" RELATED [] +is_a: NCBITaxon:487 ! Neisseria meningitidis + +[Term] +id: NCBITaxon:1358 +name: Lactococcus lactis +namespace: unknown +synonym: "Bacterium lacti" RELATED [] +synonym: "Bacterium lactis" RELATED [] +synonym: "Lactococcus lactis (Lister 1873) Schleifer et al. 1986" RELATED [] +synonym: "Lactococcus lactis (Lohnis) Schleifer et al. 1986" RELATED [] +synonym: "Streptococcus lactis" RELATED [] +synonym: "Streptococcus lactis (Lister 1873) Lohnis 1909 (Approved Lists 1980)" RELATED [] +is_a: NCBITaxon:1357 ! Lactococcus + +[Term] +id: NCBITaxon:135842 +name: Buchnera aphidicola (Baizongia pistaciae) +namespace: unknown +is_a: NCBITaxon:9 ! Buchnera aphidicola + +[Term] +id: NCBITaxon:1359 +name: Lactococcus lactis subsp. cremoris +namespace: unknown +synonym: "Lactobacillus cremoris" RELATED [] +synonym: "Lactococcus cremoris" RELATED [] +synonym: "Lactococcus lactis (SUBSP. CREMORIS)" EXACT [] +synonym: "Lactococcus lactis cremoris" EXACT [] +synonym: "Lactococcus lactis subsp. cremoris (Orla-Jensen 1919) Schleifer et al. 1986" RELATED [] +synonym: "Streptococcus cremoris" RELATED [] +synonym: "Streptococcus cremoris Orla-Jensen 1919 (Approved Lists 1980)" RELATED [] +synonym: "Streptococcus hollandicus" RELATED [] +synonym: "Streptococcus lactis B" RELATED [] +synonym: "Streptococcus lactis subsp. cremoris" RELATED [] +synonym: "Streptococcus lactis subsp. cremoris (Orla-Jensen 1919) Garvie and Farrow 1982" RELATED [] +is_a: NCBITaxon:1358 ! Lactococcus lactis + +[Term] +id: NCBITaxon:136 +name: Spirochaetales +namespace: unknown +synonym: "Spirochaetales Buchanan 1917" RELATED [] +synonym: "spirochetes" RELATED [] +is_a: NCBITaxon:203692 ! Spirochaetes (class) + +[Term] +id: NCBITaxon:1360 +name: Lactococcus lactis subsp. lactis +namespace: unknown +synonym: "Lactobacillus xylosus" RELATED [] +synonym: "Lactobacillus xylosus Kitahara 1938 (Approved Lists 1980)" RELATED [] +synonym: "Lactococcus lactis (SUBSP. LACTIS)" RELATED [] +synonym: "Lactococcus lactis lactis" EXACT [] +synonym: "Lactococcus lactis subsp. diacitilactis (sic)" RELATED [] +synonym: "Lactococcus lactis subsp. lactis (Lister 1873) Schleifer et al. 1986" RELATED [] +synonym: "Streptococcus diacetilactis" RELATED [] +synonym: "Streptococcus lactis subsp. diacetilactis" RELATED [] +synonym: "Streptococcus lactis subsp. diacetilactis (ex Matuszewski et al. 1936) Garvie and Farrow 1982" RELATED [] +synonym: "Streptococcus lactis subsp. lactis" RELATED [] +synonym: "Streptococcus lactis subsp. lactis (Lister 1873) Lohnis 1909" RELATED [] +is_a: NCBITaxon:1358 ! Lactococcus lactis + +[Term] +id: NCBITaxon:136841 +name: Pseudomonas aeruginosa group +namespace: unknown +is_a: NCBITaxon:286 ! Pseudomonas + +[Term] +id: NCBITaxon:136843 +name: Pseudomonas fluorescens group +namespace: unknown +synonym: "fluorescent pseudomonads" EXACT [] +is_a: NCBITaxon:286 ! Pseudomonas + +[Term] +id: NCBITaxon:136845 +name: Pseudomonas putida group +namespace: unknown +is_a: NCBITaxon:286 ! Pseudomonas + +[Term] +id: NCBITaxon:136846 +name: Pseudomonas stutzeri group +namespace: unknown +is_a: NCBITaxon:286 ! Pseudomonas + +[Term] +id: NCBITaxon:136849 +name: Pseudomonas syringae group +namespace: unknown +is_a: NCBITaxon:286 ! Pseudomonas + +[Term] +id: NCBITaxon:13687 +name: Sphingomonas +namespace: unknown +synonym: "Sphingomonas Yabuuchi et al. 1990 emend. Busse et al. 2003" RELATED [] +synonym: "Sphingomonas Yabuuchi et al. 1990 emend. Takeuchi et al. 2001" RELATED [] +synonym: "Sphingomonas Yabuuchi et al. 1990 emend. Yabuuchi et al. 1999" RELATED [] +synonym: "Sphingomonas Yabuuchi et al. 1990 emend. Yabuuchi et al. 2002" RELATED [] +is_a: NCBITaxon:41297 ! Sphingomonadaceae + +[Term] +id: NCBITaxon:137 +name: Spirochaetaceae +namespace: unknown +synonym: "Spirochaetaceae Swellengrebel 1907" RELATED [] +synonym: "Treponemataceae" RELATED [] +synonym: "Treponemataceae Robinson 1948 (Approved Lists 1980)" RELATED [] +is_a: NCBITaxon:136 ! Spirochaetales + +[Term] +id: NCBITaxon:138 +name: Borrelia +namespace: unknown +synonym: "Borrelia Swellengrebel 1907" RELATED [] +is_a: NCBITaxon:137 ! Spirochaetaceae + +[Term] +id: NCBITaxon:138119 +name: Desulfitobacterium hafniense Y51 +namespace: unknown +synonym: "Desulfitobacterium hafniense str. Y51" EXACT [] +synonym: "Desulfitobacterium hafniense strain Y51" EXACT [] +synonym: "Desulfitobacterium sp. Y51" EXACT [] +is_a: NCBITaxon:49338 ! Desulfitobacterium hafniense + +[Term] +id: NCBITaxon:1385 +name: Bacillales +namespace: unknown +synonym: "Bacillales Prevot 1953" RELATED [] +synonym: "Bacillus/Staphylococcus group" RELATED [] +is_a: NCBITaxon:91061 ! Bacilli + +[Term] +id: NCBITaxon:1386 +name: Bacillus +namespace: unknown +synonym: "Bacillus Cohn 1872" RELATED [] +synonym: "Bacillus rRNA group 1" RELATED [] +is_a: NCBITaxon:186817 ! Bacillaceae + +[Term] +id: NCBITaxon:138677 +name: Chlamydophila pneumoniae J138 +namespace: unknown +synonym: "Chlamydia pneumoniae (strain J138)" RELATED [] +is_a: NCBITaxon:83558 ! Chlamydophila pneumoniae + +[Term] +id: NCBITaxon:139 +name: Borrelia burgdorferi +namespace: unknown +synonym: "Borrelia burdorferi" RELATED [] +synonym: "Borrelia burgdorferi Johnson et al. 1984 emend. Baranton et al. 1992" RELATED [] +synonym: "Borrelia burgdorferi sensu stricto" EXACT [] +synonym: "Borrelia burgdorffragment" RELATED [] +synonym: "Lyme disease spirochete" EXACT [] +is_a: NCBITaxon:64895 ! Borrelia burgdorferi group + +[Term] +id: NCBITaxon:1390 +name: Bacillus amyloliquefaciens +namespace: unknown +synonym: "Bacillus amyloliquefaciens (ex Fukumoto 1943) Priest et al. 1987" RELATED [] +synonym: "Bacillus amyloliquifaciens" RELATED [] +is_a: NCBITaxon:1386 ! Bacillus + +[Term] +id: NCBITaxon:1392 +name: Bacillus anthracis +namespace: unknown +synonym: "Bacillus anthracis Cohn 1872" RELATED [] +synonym: "Bacillus cereus var. anthracis" RELATED [] +synonym: "Bacteridium anthracis" RELATED [] +synonym: "anthrax" EXACT [] +synonym: "anthrax bacterium" EXACT [] +is_a: NCBITaxon:86661 ! Bacillus cereus group + +[Term] +id: NCBITaxon:1396 +name: Bacillus cereus +namespace: unknown +synonym: "Bacillus cereus Frankland and Frankland 1887" RELATED [] +synonym: "Bacillus endorhythmos" RELATED [] +synonym: "Bacillus medusa" RELATED [] +is_a: NCBITaxon:86661 ! Bacillus cereus group + +[Term] +id: NCBITaxon:1402 +name: Bacillus licheniformis +namespace: unknown +synonym: "Bacillus licheniformis (Weigmann 1898) Chester 1901" RELATED [] +synonym: "Bacillus sp. W10.6" RELATED [] +synonym: "Clostridium licheniforme" RELATED [] +synonym: "Denitrobacillus licheniformis" RELATED [] +is_a: NCBITaxon:1386 ! Bacillus + +[Term] +id: NCBITaxon:141679 +name: Photorhabdus luminescens subsp. laumondii +namespace: unknown +synonym: "Photorhabdus luminescens subsp. laumondii Fischer-Le Saux et al. 1999" RELATED [] +is_a: NCBITaxon:29488 ! Photorhabdus luminescens + +[Term] +id: NCBITaxon:1423 +name: Bacillus subtilis +namespace: unknown +synonym: "Bacillus globigii" RELATED [] +synonym: "Bacillus natto" RELATED [] +synonym: "Bacillus subtilis (Ehrenberg 1835) Cohn 1872" RELATED [] +synonym: "Bacillus subtilis8" RELATED [] +synonym: "Bacillus uniflagellatus" RELATED [] +synonym: "Vibrio subtilis" RELATED [] +is_a: NCBITaxon:1386 ! Bacillus + +[Term] +id: NCBITaxon:142479 +name: Prochlorococcus marinus subsp. pastoris +namespace: unknown +synonym: "Prochlorococcus marinus subsp. pastoris Rippka et al. 2000" RELATED [] +synonym: "Prochlorococcus marinus subsp. pastoris Rippka et al. 2001" RELATED [] +is_a: NCBITaxon:1219 ! Prochlorococcus marinus + +[Term] +id: NCBITaxon:142554 +name: Prochlorococcus marinus subsp. marinus +namespace: unknown +synonym: "Prochlorococcus marinus subsp. marinus Chisholm et al. 1992" RELATED [] +synonym: "Prochlorococcus marinus subsp. marinus Chisholm et al. 2001" RELATED [] +is_a: NCBITaxon:1219 ! Prochlorococcus marinus + +[Term] +id: NCBITaxon:1428 +name: Bacillus thuringiensis +namespace: unknown +synonym: "Bacillus cereus var. thuringiensis" RELATED [] +synonym: "Bacillus thuringiensi" RELATED [] +synonym: "Bacillus thuringiensis Berliner 1915" RELATED [] +is_a: NCBITaxon:86661 ! Bacillus cereus group + +[Term] +id: NCBITaxon:1462 +name: Geobacillus kaustophilus +namespace: unknown +synonym: "Bacillus kaustophilus" RELATED [] +synonym: "Bacillus kaustophilus (ex Prickett 1928) Priest et al. 1989" RELATED [] +synonym: "Geobacillus kaustophilus (Priest et al. 1989) Nazina et al. 2001" RELATED [] +is_a: NCBITaxon:129337 ! Geobacillus + +[Term] +id: NCBITaxon:146785 +name: Thermosynechococcus +namespace: unknown +is_a: NCBITaxon:1118 ! Chroococcales + +[Term] +id: NCBITaxon:146786 +name: Thermosynechococcus elongatus +namespace: unknown +is_a: NCBITaxon:146785 ! Thermosynechococcus + +[Term] +id: NCBITaxon:146891 +name: Prochlorococcus marinus str. AS9601 +namespace: unknown +synonym: "Prochlorococcus sp. AS9601" RELATED [] +is_a: NCBITaxon:1219 ! Prochlorococcus marinus + +[Term] +id: NCBITaxon:146918 +name: Salinibacter +namespace: unknown +synonym: "Candidatus Salinibacter" RELATED [] +synonym: "Salinibacter Anton et al. 2002" RELATED [] +is_a: NCBITaxon:422177 ! Sphingobacteriales genera incertae sedis + +[Term] +id: NCBITaxon:146919 +name: Salinibacter ruber +namespace: unknown +synonym: "Salinibacter ruber Anton et al. 2002" RELATED [] +is_a: NCBITaxon:146918 ! Salinibacter + +[Term] +id: NCBITaxon:147452 +name: Staphylococcus saprophyticus subsp. saprophyticus +namespace: unknown +synonym: "Staphylococcus saprophyticus subsp. saprophyticus (Fairbrother 1940) Shaw et al. 1951" RELATED [] +is_a: NCBITaxon:29385 ! Staphylococcus saprophyticus + +[Term] +id: NCBITaxon:1485 +name: Clostridium +namespace: unknown +synonym: "Clostridium Prazmowski 1880" RELATED [] +is_a: NCBITaxon:31979 ! Clostridiaceae + +[Term] +id: NCBITaxon:1488 +name: Clostridium acetobutylicum +namespace: unknown +synonym: "Clostridium acetobutylicum McCoy et al. 1926 (Approved Lists 1980) emend. Keis et al. 2001" RELATED [] +synonym: "Clostridium acetobutyricum" RELATED [] +synonym: "Clostridium acetonobutylicum" RELATED [] +synonym: "Granulobacter pectinovorum" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:1491 +name: Clostridium botulinum +namespace: unknown +synonym: "Bacillus botulinus" RELATED [] +synonym: "Bacillus putrificus" RELATED [] +synonym: "Botulobacillus botulinus" RELATED [] +synonym: "Clostridium botulinum (van Ermengem 1896) Bergey et al. 1923" RELATED [] +synonym: "Clostridium putrificum" RELATED [] +synonym: "Clostridium putrificum (Trevisan 1889) Reddish and Rettger 1922 (Approved Lists 1980)" RELATED [] +synonym: "Ermengemillus botulinus" RELATED [] +synonym: "Pacinia putrifica" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:1496 +name: Clostridium difficile +namespace: unknown +synonym: "Bacillus difficilis" RELATED [] +synonym: "Clostridium difficile (Hall and O'Toole 1935) Prevot 1938" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:150052 +name: Yersinia enterocolitica subsp. enterocolitica +namespace: unknown +synonym: "Yersinia enterocolitica subsp. enterocolitica (Schleifstein and Coleman 1939) Frederiksen 1964" RELATED [] +is_a: NCBITaxon:630 ! Yersinia enterocolitica + +[Term] +id: NCBITaxon:1502 +name: Clostridium perfringens +namespace: unknown +synonym: "'Clostridium plagarum'" RELATED [] +synonym: "Bacillus perfringens" RELATED [] +synonym: "Bacterium welchii" RELATED [] +synonym: "Clostridium perfringens (Veillon and Zuber 1898) Hauduroy et al. 1937" RELATED [] +synonym: "Clostridium plagarum" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:1513 +name: Clostridium tetani +namespace: unknown +synonym: "Bacillus tetani" RELATED [] +synonym: "Clostridium tetani (Flugge 1886) Bergey et al. 1923" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:1515 +name: Clostridium thermocellum +namespace: unknown +synonym: "Clostridium thermocellum Viljoen et al. 1926" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:1520 +name: Clostridium beijerinckii +namespace: unknown +synonym: "Clostridium beijerinckii Donker 1926 (Approved Lists 1980) emend. Keis et al. 2001" RELATED [] +synonym: "Clostridium rubrum" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:1525 +name: Moorella thermoacetica +namespace: unknown +synonym: "Clostridium thermaceticum" RELATED [] +synonym: "Clostridium thermaceticum corrig. Fontaine et al. 1942 (Approved Lists 1980)" RELATED [] +synonym: "Clostridium thermoaceticum" RELATED [] +synonym: "Moorella thermoacetica (Fontaine et al. 1942) Collins et al. 1994" RELATED [] +is_a: NCBITaxon:44260 ! Moorella + +[Term] +id: NCBITaxon:152794 +name: Corynebacterium efficiens +namespace: unknown +synonym: "Corynebacterium efficiens Fudou et al. 2002" RELATED [] +is_a: NCBITaxon:1716 ! Corynebacterium + +[Term] +id: NCBITaxon:1534 +name: Clostridium kluyveri +namespace: unknown +synonym: "Clostridium kluyveri Barker and Taha 1942" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:1542 +name: Clostridium novyi +namespace: unknown +synonym: "Bacillus novyi" RELATED [] +synonym: "Clostridium novyi (Migula 1894) Bergey et al. 1923" RELATED [] +synonym: "Clostridium novyi (Migula 1900 (not Migula 1894)) Bergey et al. 1923" RELATED [] +synonym: "Clostridium oedematiens" RELATED [] +is_a: NCBITaxon:1485 ! Clostridium + +[Term] +id: NCBITaxon:155864 +name: Escherichia coli O157:H7 EDL933 +namespace: unknown +synonym: "Escherichia coli 0157:H7 EDL933" RELATED [] +is_a: NCBITaxon:562 ! Escherichia coli + +[Term] +id: NCBITaxon:155892 +name: Caulobacter vibrioides +namespace: unknown +synonym: "Caulobacter crescens" RELATED [] +synonym: "Caulobacter crescentus" RELATED [] +synonym: "Caulobacter crescentus Poindexter 1964" RELATED [] +synonym: "Caulobacter vibrioides Henrici and Johnson 1935" RELATED [] +synonym: "Caulobacter vibroides" RELATED [] +is_a: NCBITaxon:75 ! Caulobacter + +[Term] +id: NCBITaxon:1562 +name: Desulfotomaculum +namespace: unknown +synonym: "Desulfotomaculum Campbell and Postgate 1965" RELATED [] +is_a: NCBITaxon:186807 ! Peptococcaceae + +[Term] +id: NCBITaxon:156889 +name: Magnetococcus sp. MC-1 +namespace: unknown +is_a: NCBITaxon:162171 ! Magnetococcus + +[Term] +id: NCBITaxon:157 +name: Treponema +namespace: unknown +synonym: "Microspironema" RELATED [] +synonym: "Spironema" RELATED [] +synonym: "Treponema Schaudinn 1905" RELATED [] +is_a: NCBITaxon:137 ! Spirochaetaceae + +[Term] +id: NCBITaxon:1573 +name: Clavibacter +namespace: unknown +synonym: "Clavibacter Davis et al. 1984" RELATED [] +is_a: NCBITaxon:85023 ! Microbacteriaceae + +[Term] +id: NCBITaxon:1575 +name: Leifsonia xyli +namespace: unknown +synonym: "Clavibacter xyli" RELATED [] +synonym: "Clavibacter xyli Davis et al. 1984" RELATED [] +synonym: "Leifsonia xyli (Davis et al. 1984) Evtushenko et al. 2000" RELATED [] +is_a: NCBITaxon:110932 ! Leifsonia + +[Term] +id: NCBITaxon:157673 +name: Mannheimia succiniciproducens +namespace: unknown +synonym: "Mannheimia succiniciproducens" RELATED [] +is_a: NCBITaxon:75984 ! Mannheimia + +[Term] +id: NCBITaxon:1578 +name: Lactobacillus +namespace: unknown +synonym: "Lactobacillus Beijerinck 1901" RELATED [] +is_a: NCBITaxon:33958 ! Lactobacillaceae + +[Term] +id: NCBITaxon:1579 +name: Lactobacillus acidophilus +namespace: unknown +synonym: "Bacillus acidophilus" RELATED [] +synonym: "Lactobacillus acidophilus (Moro 1900) Hansen and Mocquot 1970" RELATED [] +synonym: "Lactobacillus acidophilus Johnson et al. 1980" RELATED [] +synonym: "Thermobacterium intestinale" RELATED [] +is_a: NCBITaxon:1578 ! Lactobacillus + +[Term] +id: NCBITaxon:158 +name: Treponema denticola +namespace: unknown +synonym: "Spirillum dentium" RELATED [] +synonym: "Spirochaeta ambigua" RELATED [] +synonym: "Spirochaeta comandonii" RELATED [] +synonym: "Spirochaeta dentium" RELATED [] +synonym: "Spirochaeta microdentium" RELATED [] +synonym: "Spirochaeta orthodonta" RELATED [] +synonym: "Spirochaete denticola" RELATED [] +synonym: "Spirochaete dentium" RELATED [] +synonym: "Spironema dentium" RELATED [] +synonym: "Treponema ambiguum" RELATED [] +synonym: "Treponema comandonii" RELATED [] +synonym: "Treponema denticola (ex Brumpt 1925) Chan et al. 1993" RELATED [] +synonym: "Treponema denticola (ex Flugge 1886) Chan et al. 1993" RELATED [] +synonym: "Treponema dentium" RELATED [] +synonym: "Treponema dentium-stenogyratum" RELATED [] +synonym: "Treponema microdentium" RELATED [] +synonym: "Treponema orthodontum" RELATED [] +is_a: NCBITaxon:157 ! Treponema + +[Term] +id: NCBITaxon:1580 +name: Lactobacillus brevis +namespace: unknown +synonym: "Bacillus casei g" RELATED [] +synonym: "Bacillus g" RELATED [] +synonym: "Betabacterium breve" RELATED [] +synonym: "Lactobacillus brevis (Orla-Jensen 1919) Bergey et al. 1934" RELATED [] +synonym: "Lactobacterium breve" RELATED [] +is_a: NCBITaxon:1578 ! Lactobacillus + +[Term] +id: NCBITaxon:158080 +name: Chromohalobacter salexigens +namespace: unknown +synonym: "Chromohalobacter salexigens Arahal et al. 2001" RELATED [] +is_a: NCBITaxon:42054 ! Chromohalobacter + +[Term] +id: NCBITaxon:1582 +name: Lactobacillus casei +namespace: unknown +synonym: "Bacillus a" RELATED [] +synonym: "Bacillus casei a" RELATED [] +synonym: "Bacterium casei a" RELATED [] +synonym: "Caseobacterium vulgare" RELATED [] +synonym: "Lactobacillus casei" RELATED [] +synonym: "Lactobacillus casei (Orla-Jensen 1916) Hansen & Lessel 1971 (AL 1980) emend. Dicks et al. 1996" RELATED [] +synonym: "Lactobacillus casei casei" RELATED [] +synonym: "Lactobacillus casei subsp. casei" RELATED [] +synonym: "Lactobacterium casei" RELATED [] +synonym: "Streptobacterium casei" RELATED [] +is_a: NCBITaxon:1578 ! Lactobacillus + +[Term] +id: NCBITaxon:158327 +name: Hahella chejuensis +namespace: unknown +synonym: "Hahella chejuensis Lee et al. 2001" RELATED [] +is_a: NCBITaxon:158481 ! Hahella + +[Term] +id: NCBITaxon:1584 +name: Lactobacillus delbrueckii +namespace: unknown +synonym: "Bacillus Delbrucki" RELATED [] +synonym: "Bacillus acidificans longissimus" RELATED [] +synonym: "Bacterium delbrucki" RELATED [] +synonym: "Lactobacillus delbrucki" RELATED [] +synonym: "Lactobacillus delbrueckii (Leichmann 1896) Beijerinck 1901" RELATED [] +synonym: "Lactobacillus delbrueckii Beijerinck 1901" RELATED [] +synonym: "Lactobacillus delbruekii" RELATED [] +synonym: "Lactobacterium delbrucki" RELATED [] +synonym: "Plocamobacterium delbrucki" RELATED [] +synonym: "Thermobacterium cereale" RELATED [] +synonym: "Ulvina delbrucki" RELATED [] +is_a: NCBITaxon:1578 ! Lactobacillus + +[Term] +id: NCBITaxon:158481 +name: Hahella +namespace: unknown +synonym: "Hahella Lee et al. 2001 emend. Baik et al., 2005" RELATED [] ... [truncated message content] |