From 12f593761faaf9a1003bcc6c4e4b6c25bfdcdfaf Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Mon, 13 Nov 2006 16:56:52 +0000 Subject: [PATCH] FeatureCvTerm updates git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@4914 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- .../sanger/artemis/util/DatabaseDocument.java | 97 +++++++++++++++---- 1 file changed, 76 insertions(+), 21 deletions(-) diff --git a/uk/ac/sanger/artemis/util/DatabaseDocument.java b/uk/ac/sanger/artemis/util/DatabaseDocument.java index 7855330ef..6481b65cb 100644 --- a/uk/ac/sanger/artemis/util/DatabaseDocument.java +++ b/uk/ac/sanger/artemis/util/DatabaseDocument.java @@ -44,6 +44,8 @@ import org.gmod.schema.sequence.FeatureCvTermProp; import org.gmod.schema.cv.CvTerm; import org.gmod.schema.general.DbXRef; import org.gmod.schema.organism.Organism; +import org.gmod.schema.pub.PubDbXRef; +import org.gmod.schema.pub.Pub; import java.sql.*; import java.text.SimpleDateFormat; @@ -103,7 +105,8 @@ public class DatabaseDocument extends Document // controlled vocabulary /** controlled_curation controlled vocabulary */ - private static String CONTROLLED_CURATION_TAG_CVNAME = "CC_genedb_controlledcuration"; + private static String CONTROLLED_CURATION_TAG_CVNAME = + "CC_genedb_controlledcuration"; /** product controlled vocabulary */ private static String PRODUCTS_TAG_CVNAME = "genedb_products"; @@ -492,9 +495,11 @@ public class DatabaseDocument extends Document Hashtable synonym = getAllFeatureSynonyms(dao, null); Hashtable featureCvTerms = getFeatureCvTermsByFeature(dao); + List pubDbXRefs= dao.getPubDbXRef(); + if(featureCvTerms != null) - System.out.println("\n\n"+featureCvTerms.size()+"\n\n"); + System.out.println("\n\n"+featureCvTerms.size()+" "+pubDbXRefs.size()+"\n\n"); // create gff byte stream for(int i = 0; i < feature_size; i++) @@ -513,7 +518,7 @@ public class DatabaseDocument extends Document chadoToGFF(feat, parentFeature.getUniqueName(), dbxrefs, synonym, featureCvTerms, - id_store, dao, + pubDbXRefs, id_store, dao, feat.getFeatureLoc(), this_buff); if( i%10 == 0 || i == feature_size-1) @@ -580,6 +585,20 @@ public class DatabaseDocument extends Document return featureCvTerms; } + private static PubDbXRef getPubDbXRef(final List pubDbXRefs, + final int pubId) + { + PubDbXRef pubDbXRef; + for(int i=0; i<pubDbXRefs.size(); i++) + { + pubDbXRef = (PubDbXRef)pubDbXRefs.get(i); + if(pubDbXRef.getPub().getPubId() == pubId) + return pubDbXRef; + } + + return null; + } + /** * Use by the gene editor to retrieve the gene and related * features @@ -623,7 +642,7 @@ public class DatabaseDocument extends Document ByteBuffer buff = new ByteBuffer(); - chadoToGFF(feature, null, null, null, null, null, dao, + chadoToGFF(feature, null, null, null, null, null, null, dao, featureloc, buff); // get children of gene @@ -644,7 +663,7 @@ public class DatabaseDocument extends Document FeatureLoc loc = getFeatureLoc(new Vector( transcript.getFeatureLocsForFeatureId()), src_id); chadoToGFF(transcript, feature.getUniqueName(), null, - null, null, id_store, dao, loc, buff); + null, null, null, id_store, dao, loc, buff); // get children of transcript - exons and pp List transcipt_relations = new Vector( @@ -664,7 +683,7 @@ public class DatabaseDocument extends Document loc = getFeatureLoc( new Vector(child.getFeatureLocsForFeatureId()),src_id); chadoToGFF(child, transcript.getUniqueName(), null, - null, null, id_store, dao, loc, buff); + null, null, null, id_store, dao, loc, buff); } } @@ -687,6 +706,7 @@ public class DatabaseDocument extends Document final Hashtable dbxrefs, final Hashtable synonym, final Hashtable featureCvTerms, + final List pubDbXRefs, final Hashtable id_store, final GmodDAO dao, final FeatureLoc featureloc, @@ -867,26 +887,49 @@ public class DatabaseDocument extends Document if(cvterm.getCv().getName().equals(CONTROLLED_CURATION_TAG_CVNAME)) { - int cvtermId = feature_cvterm.getCvTerm().getCvTermId(); - String cvName = getCvTerm(cvtermId, dao).getCv().getName(); + //int cvtermId = feature_cvterm.getCvTerm().getCvTermId(); + //String cvName = getCvTerm(cvtermId, dao).getCv().getName(); + //this_buff.append("cv="+cvName+"%3B"); + //this_buff.append("db_xref="+dbXRef.getDb().getName() + ":" + // + dbXRef.getAccession() + "%3B"); this_buff.append("controlled_curation="); this_buff.append("term="+feature_cvterm.getCvTerm().getName()+"%3B"); - this_buff.append("cv="+cvName+"%3B"); - this_buff.append("db_xref="+dbXRef.getDb().getName() + ":" - + dbXRef.getAccession() + "%3B"); + // PMID + if(feature_cvterm.getPub().getUniqueName() != null && + !feature_cvterm.getPub().getUniqueName().equals("NULL")) + { + Pub pub = feature_cvterm.getPub(); + PubDbXRef pubDbXRef = getPubDbXRef(pubDbXRefs, + pub.getPubId()); + + if(pubDbXRef == null || + !pub.getUniqueName().endsWith(pubDbXRef.getDbXRef().getAccession())) + { + JOptionPane.showMessageDialog(null, "Cannot find pub_dbxref for:\n"+ + feature_cvterm.getPub().getUniqueName(), + "Database Error", + JOptionPane.ERROR_MESSAGE); + } + + this_buff.append("db_xref="+ + pub.getUniqueName()+ "%3B"); + } - List feature_cvtermprops = (List)feature_cvterm.getFeatureCvTermProps(); - for(int i=0; i<feature_cvtermprops.size(); i++) + List feature_cvtermprops = (List) feature_cvterm.getFeatureCvTermProps(); + for(int i = 0; i < feature_cvtermprops.size(); i++) { - FeatureCvTermProp feature_cvtermprop = (FeatureCvTermProp)feature_cvtermprops.get(i); - this_buff.append(getCvtermName(feature_cvtermprop.getCvTerm().getCvTermId(), dao)); + FeatureCvTermProp feature_cvtermprop = + (FeatureCvTermProp)feature_cvtermprops.get(i); + this_buff.append(getCvtermName(feature_cvtermprop.getCvTerm() + .getCvTermId(), dao)); this_buff.append("="); this_buff.append(feature_cvtermprop.getValue()); - if(i<feature_cvtermprops.size()) + if(i < feature_cvtermprops.size()) this_buff.append("%3B"); } + this_buff.append(";"); } else if(cvterm.getCv().getName().equals(PRODUCTS_TAG_CVNAME)) @@ -916,16 +959,21 @@ public class DatabaseDocument extends Document this_buff.append("db_xref="+dbXRef.getDb().getName() + ":" + dbXRef.getAccession() + "%3B"); - List feature_cvtermprops = (List)feature_cvterm.getFeatureCvTermProps(); - for(int i=0; i<feature_cvtermprops.size(); i++) + + List feature_cvtermprops = (List)feature_cvterm + .getFeatureCvTermProps(); + for(int i = 0; i < feature_cvtermprops.size(); i++) { - FeatureCvTermProp feature_cvtermprop = (FeatureCvTermProp)feature_cvtermprops.get(i); - this_buff.append(getCvtermName(feature_cvtermprop.getCvTerm().getCvTermId(), dao)); + FeatureCvTermProp feature_cvtermprop = + (FeatureCvTermProp)feature_cvtermprops.get(i); + this_buff.append(getCvtermName(feature_cvtermprop.getCvTerm() + .getCvTermId(), dao)); this_buff.append("="); this_buff.append(feature_cvtermprop.getValue()); - if(i<feature_cvtermprops.size()) + if(i < feature_cvtermprops.size()) this_buff.append("%3B"); } + this_buff.append(";"); } } @@ -1165,6 +1213,13 @@ public class DatabaseDocument extends Document GmodDAO dao = null; dao = getDAO(); schema_list = dao.getOrganisms(); + + +/* Organism o = new Organism(); + o.setCommonName("web"); + schema_list.add(o);*/ + + Iterator it = schema_list.iterator(); db = new Hashtable(); -- GitLab