From 597aa157fabe2bb5f478945d1a009701118581e5 Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Thu, 30 Nov 2006 10:01:23 +0000 Subject: [PATCH] FeatureCvTermPubs added git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@5043 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- uk/ac/sanger/artemis/chado/ChadoDemo.java | 35 +++++++------- uk/ac/sanger/artemis/chado/GmodDAO.java | 4 +- uk/ac/sanger/artemis/chado/IBatisDAO.java | 7 ++- uk/ac/sanger/artemis/chado/JdbcDAO.java | 57 ++++++++++++++++++++++- 4 files changed, 83 insertions(+), 20 deletions(-) diff --git a/uk/ac/sanger/artemis/chado/ChadoDemo.java b/uk/ac/sanger/artemis/chado/ChadoDemo.java index 18a3b961c..2c62eb138 100644 --- a/uk/ac/sanger/artemis/chado/ChadoDemo.java +++ b/uk/ac/sanger/artemis/chado/ChadoDemo.java @@ -25,13 +25,8 @@ package uk.ac.sanger.artemis.chado; import org.gmod.schema.cv.CvTerm; -import org.gmod.schema.general.DbXRef; -import org.gmod.schema.pub.Pub; -import org.gmod.schema.pub.PubDbXRef; import org.gmod.schema.sequence.Feature; import org.gmod.schema.sequence.FeatureCvTerm; -import org.gmod.schema.sequence.FeatureCvTermDbXRef; -import org.gmod.schema.sequence.FeatureCvTermProp; import org.gmod.schema.sequence.FeatureDbXRef; import org.gmod.schema.sequence.FeatureSynonym; import org.gmod.schema.sequence.FeatureProp; @@ -51,6 +46,7 @@ import java.util.Enumeration; import java.util.Hashtable; import java.util.Iterator; import java.util.List; +import java.util.Collection; import java.util.Vector; import javax.swing.JLabel; @@ -118,6 +114,8 @@ public class ChadoDemo */ public ChadoDemo() { + uk.ac.sanger.artemis.components.Splash.initLogger(); + try { setLocation(); @@ -315,7 +313,8 @@ public class ChadoDemo List attributes = (List)chado_feature.getFeatureProps(); List dbxrefs = dao.getFeatureDbXRefsByFeatureUniquename(uniquename); List featureCvTerms = dao.getFeatureCvTermsByFeature(chado_feature); - List featureCvTermDbXRefs = dao.getFeatureCvTermDbXRef(chado_feature); + List featureCvTermDbXRefs = dao.getFeatureCvTermDbXRefByFeature(chado_feature); + List featureCvTermPubs = dao.getFeatureCvTermPubByFeature(chado_feature); if(dbxrefs.size() > 0) { @@ -329,7 +328,7 @@ public class ChadoDemo attr_buff.append("\n"); } - List synonyms = (List)chado_feature.getFeatureSynonyms(); + Collection synonyms = chado_feature.getFeatureSynonyms(); // append synonyms if(synonyms != null && synonyms.size() > 0) @@ -337,10 +336,10 @@ public class ChadoDemo FeatureSynonym alias; System.out.println("\n\nNow get synonym & type_id.......\n\n"); - - for(int i = 0; i < synonyms.size(); i++) + Iterator it = synonyms.iterator(); + while(it.hasNext()) { - alias = (FeatureSynonym) synonyms.get(i); + alias = (FeatureSynonym)it.next(); attr_buff.append("/"); attr_buff.append(alias.getSynonym().getCvTerm().getName() + "="); attr_buff.append(alias.getSynonym().getName()); @@ -351,14 +350,17 @@ public class ChadoDemo } if(attributes != null) - for(int i = 0; i < attributes.size(); i++) + { + Iterator it = attributes.iterator(); + while(it.hasNext()) { - FeatureProp featprop = (FeatureProp) attributes.get(i); + FeatureProp featprop = (FeatureProp)it.next(); attr_buff.append("/" + featprop.getCvTerm().getName() + "=" + GFFStreamFeature.decode(featprop.getValue()) + "\n"); } - + } + if(featureCvTerms != null) { for(int j=0; j<featureCvTerms.size(); j++) @@ -367,7 +369,7 @@ public class ChadoDemo FeatureCvTerm feature_cvterm = (FeatureCvTerm)featureCvTerms.get(j); DatabaseDocument.appendControlledVocabulary(attr_buff, dao, feature_cvterm, - featureCvTermDbXRefs, pubDbXRefs); + featureCvTermDbXRefs, featureCvTermPubs, pubDbXRefs); attr_buff.append("\n"); } @@ -412,11 +414,12 @@ public class ChadoDemo feature = (Feature) featureList.get(i); // assume only one featureloc - List locs = (List)feature.getFeatureLocsForFeatureId(); + Collection locs = feature.getFeatureLocsForFeatureId(); if(locs != null && locs.size() > 0) { - FeatureLoc loc = (FeatureLoc)locs.get(0); + Iterator it = locs.iterator(); + FeatureLoc loc = (FeatureLoc)it.next(); int fmin = loc.getFmin().intValue() + 1; int fmax = loc.getFmax().intValue(); rowData[i][4] = fmin + "..." + fmax; diff --git a/uk/ac/sanger/artemis/chado/GmodDAO.java b/uk/ac/sanger/artemis/chado/GmodDAO.java index b5ce43ab6..b0480f071 100644 --- a/uk/ac/sanger/artemis/chado/GmodDAO.java +++ b/uk/ac/sanger/artemis/chado/GmodDAO.java @@ -45,7 +45,9 @@ public abstract class GmodDAO implements SequenceDaoI, SchemaDaoI, OrganismDaoI, public abstract List getPubDbXRef(); - public abstract List getFeatureCvTermDbXRef(Feature feature); + public abstract List getFeatureCvTermDbXRefByFeature(Feature feature); + + public abstract List getFeatureCvTermPubByFeature(Feature feature); /** * Return the list of all feature_synonyms as Feature.featureSynonyms diff --git a/uk/ac/sanger/artemis/chado/IBatisDAO.java b/uk/ac/sanger/artemis/chado/IBatisDAO.java index 2d7b15891..742ac5edf 100644 --- a/uk/ac/sanger/artemis/chado/IBatisDAO.java +++ b/uk/ac/sanger/artemis/chado/IBatisDAO.java @@ -305,11 +305,16 @@ public class IBatisDAO extends GmodDAO } - public List getFeatureCvTermDbXRef(Feature feature) + public List getFeatureCvTermDbXRefByFeature(Feature feature) { return sqlMap.queryForList("getFeatureCvTermDbXRef", feature); } + public List getFeatureCvTermPubByFeature(Feature feature) + { + return sqlMap.queryForList("getFeatureCvTermPub", feature); + } + public List getProducts() { return null; diff --git a/uk/ac/sanger/artemis/chado/JdbcDAO.java b/uk/ac/sanger/artemis/chado/JdbcDAO.java index a3ef5e235..f9c6e14c4 100644 --- a/uk/ac/sanger/artemis/chado/JdbcDAO.java +++ b/uk/ac/sanger/artemis/chado/JdbcDAO.java @@ -41,6 +41,7 @@ import org.gmod.schema.sequence.FeatureLoc; import org.gmod.schema.sequence.FeatureRelationship; import org.gmod.schema.sequence.FeatureSynonym; import org.gmod.schema.sequence.FeatureCvTermDbXRef; +import org.gmod.schema.sequence.FeatureCvTermPub; import org.gmod.schema.general.DbXRef; import org.gmod.schema.organism.Organism; import org.gmod.schema.cv.CvTerm; @@ -231,6 +232,9 @@ public class JdbcDAO extends GmodDAO CvTerm cvterm = new CvTerm(); cvterm.setCvTermId(rs.getInt("cvterm_id")); cvterm.setName(rs.getString("cvterm_name")); + Cv cv = new Cv(); + cv.setName(rs.getString("cv_name")); + cvterm.setCv(cv); DbXRef dbxref = new DbXRef(); dbxref.setAccession(rs.getString("accession")); @@ -254,6 +258,8 @@ public class JdbcDAO extends GmodDAO int next_fc_rank = -1; int next_feature_cvterm_id = -1; int feature_cvterm_id = rs.getInt("feature_cvterm_id"); + feature_cvterm.setFeatureCvTermId(feature_cvterm_id); + do { FeatureCvTermProp featureProp = new FeatureCvTermProp(); @@ -576,7 +582,7 @@ public class JdbcDAO extends GmodDAO return null; } - public List getFeatureCvTermDbXRef(Feature feature) + public List getFeatureCvTermDbXRefByFeature(Feature feature) { String sql = "SELECT fcd.feature_cvterm_id, dbx.*, db.name "+ "FROM feature_cvterm_dbxref fcd "+ @@ -626,6 +632,48 @@ public class JdbcDAO extends GmodDAO } } + public List getFeatureCvTermPubByFeature(Feature feature) + { + String sql = "SELECT fcp.feature_cvterm_id, pub.* " + + "FROM feature_cvterm_pub fcp " + + "LEFT JOIN pub ON fcp.pub_id=pub.pub_id "; + + if(feature != null && feature.getUniqueName() != null) + sql = sql+ " " + + "LEFT JOIN feature_cvterm fc ON fcp.feature_cvterm_id=fc.feature_cvterm_id "+ + "WHERE feature_id=(SELECT feature_id FROM feature WHERE uniquename='"+ + feature.getUniqueName()+"')"; + + appendToLogFile(sql, sqlLog); + + try + { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery(sql); + List featureCvTermPubs = new Vector(); + FeatureCvTermPub featureCvTermPub; + while(rs.next()) + { + featureCvTermPub = new FeatureCvTermPub(); + FeatureCvTerm featureCvTerm = new FeatureCvTerm(); + featureCvTerm.setFeatureCvTermId( rs.getInt("feature_cvterm_id") ); + featureCvTermPub.setFeatureCvTerm(featureCvTerm); + + Pub pub = new Pub(); + pub.setUniqueName(rs.getString("uniquename")); + + featureCvTermPub.setPub(pub); + featureCvTermPubs.add(featureCvTermPub); + } + + return featureCvTermPubs; + } + catch(SQLException sqle) + { + throw new RuntimeException(sqle); + } + } + public List getProducts() { return null; @@ -748,6 +796,8 @@ public class JdbcDAO extends GmodDAO feature.setFeatureProps(new Vector()); feature.addFeatureProp(featureprop); } + else + feature.setFeatureProps(new Vector(0)); // feature relationship FeatureRelationship feature_relationship = new FeatureRelationship(); @@ -769,6 +819,8 @@ public class JdbcDAO extends GmodDAO feature.addFeatureRelationshipsForSubjectId(feature_relationship); } + else + feature.setFeatureRelationshipsForSubjectId(new Vector(0)); if(!rs.isLast()) { @@ -1051,7 +1103,8 @@ public class JdbcDAO extends GmodDAO pubDbXRef = new PubDbXRef(); Pub pub = new Pub(); pub.setPubId(rs.getInt("pub_id")); - + pubDbXRef.setPub(pub); + DbXRef dbXRef = new DbXRef(); dbXRef.setAccession(rs.getString("accession")); dbXRef.setDescription(rs.getString("description")); -- GitLab