From: Mark G. <mg...@us...> - 2005-04-29 19:47:17
|
Update of /cvsroot/gmod/apollo/src/java/apollo/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25159/src/java/apollo/config Modified Files: ApolloNameAdapterI.java DefaultNameAdapter.java FlyNameAdapter.java GmodNameAdapter.java Log Message: fixed rice bug due to protein stuff - the protein id/acc is now being set in name adapter setTranscriptId for gmod & fly. fly needs the temp id for its inserting of protein. Index: ApolloNameAdapterI.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/config/ApolloNameAdapterI.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** ApolloNameAdapterI.java 28 Apr 2005 22:33:45 -0000 1.19 --- ApolloNameAdapterI.java 29 Apr 2005 19:47:09 -0000 1.20 *************** *** 38,41 **** --- 38,44 ---- public CompoundTransaction setTranscriptName(AnnotatedFeatureI trans,String name); + /** Sets transcript id, may also set peptide id */ + public CompoundTransaction setTranscriptId(SeqFeatureI trans, String id); + /** Sets the name of a transcript based upon its annot parent. May also set exon names. May also set peptide accession */ Index: DefaultNameAdapter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/config/DefaultNameAdapter.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** DefaultNameAdapter.java 28 Apr 2005 22:33:45 -0000 1.27 --- DefaultNameAdapter.java 29 Apr 2005 19:47:09 -0000 1.28 *************** *** 117,120 **** --- 117,127 ---- return ct; } + + public CompoundTransaction setTranscriptId(SeqFeatureI trans, String id) { + CompoundTransaction ct = new CompoundTransaction(); + ct.addTransaction(setId(trans,id)); + return ct; + } + public CompoundTransaction setTranscriptNameFromAnnot(AnnotatedFeatureI trans, AnnotatedFeatureI gene) { *************** *** 124,129 **** /** returns an add transaction for adding synonym to annot. return null if ! syn is null,no_name, or temp ! */ protected AddTransaction addSynonym(AnnotatedFeatureI annFeat, String syn) { if (syn == null || syn.equals(SeqFeatureI.NO_NAME) || isTemp(syn)) --- 131,136 ---- /** returns an add transaction for adding synonym to annot. return null if ! syn is null,no_name, or temp - should probably also check if synonym exists ! already */ protected AddTransaction addSynonym(AnnotatedFeatureI annFeat, String syn) { if (syn == null || syn.equals(SeqFeatureI.NO_NAME) || isTemp(syn)) *************** *** 380,390 **** } ! protected UpdateTransaction setId(SeqFeatureI annot, String id) { TransactionSubpart ts = TransactionSubpart.ID; ! UpdateTransaction ut = new UpdateTransaction(annot,ts); ! ut.setOldId(annot.getId()); ! ut.setOldSubpartValue(annot.getId()); ! ut.setNewId(id); ! ut.setNewSubpartValue(id); ut.editModel(); // makes change to annot return ut; --- 387,396 ---- } ! protected UpdateTransaction setId(SeqFeatureI annot, String newId) { TransactionSubpart ts = TransactionSubpart.ID; ! String oldId = annot.getId(); ! UpdateTransaction ut = new UpdateTransaction(annot,ts,oldId,newId); ! ut.setOldId(oldId); ! ut.setNewId(newId); ut.editModel(); // makes change to annot return ut; Index: FlyNameAdapter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/config/FlyNameAdapter.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** FlyNameAdapter.java 28 Apr 2005 22:33:45 -0000 1.37 --- FlyNameAdapter.java 29 Apr 2005 19:47:09 -0000 1.38 *************** *** 341,344 **** --- 341,354 ---- } + /** Flys peptide ids derive from its transcript id (unlike gmod/rice) */ + protected UpdateTransaction setPeptideIdFromTranscript(SeqFeatureI trans) { + String newPepId = generatePeptideIdFromTranscriptId(trans.getId()); + String oldPepId = trans.getPeptideSequence().getAccessionNo(); + TransactionSubpart ts = TransactionSubpart.PEPTIDE_ID; + UpdateTransaction ut = new UpdateTransaction(trans,ts,oldPepId,newPepId); + ut.editModel(); + return ut; + } + // /** Fly and rice do this differently, though it would be nice if fly adopted // rice's exon id style. For now fly does nothing, and rice overrides. Fly Index: GmodNameAdapter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/config/GmodNameAdapter.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** GmodNameAdapter.java 28 Apr 2005 22:33:45 -0000 1.16 --- GmodNameAdapter.java 29 Apr 2005 19:47:09 -0000 1.17 *************** *** 58,62 **** return ""; } ! prefix = prefix + ":temp"; int num = nextAnnotNumber(annots); return prefix + num; --- 58,62 ---- return ""; } ! prefix = prefix + getTempSuffix(); int num = nextAnnotNumber(annots); return prefix + num; *************** *** 174,179 **** } ! /** Return -transcript#-temp, where # is transcript number. If suffix already being ! used, uses the first unused #. -temp is added to trip chado trigger to create new transcript name - which prevents naming collisions. */ protected String generateTranscriptSuffix(int t_index, Vector transcripts, --- 174,179 ---- } ! /** Return -transcript#:temp, where # is transcript number. If suffix already being ! used, uses the first unused #. :temp is added to trip chado trigger to create new transcript name - which prevents naming collisions. */ protected String generateTranscriptSuffix(int t_index, Vector transcripts, *************** *** 188,192 **** } if (addTemp) ! suffix += "-temp"; if (suffixInUse (transcripts, suffix, t_index)) { // If that suffix was used, recursively choose a new one. --- 188,192 ---- } if (addTemp) ! suffix += ":temp"; if (suffixInUse (transcripts, suffix, t_index)) { // If that suffix was used, recursively choose a new one. *************** *** 272,275 **** --- 272,276 ---- // Checks whether feature's name is an ID appropriate for this kind of feature // this could use a better comment - logic here is confusing + // where is this used - this is fly specific it seems public boolean nameIsId (SeqFeatureI feature) { String prefix; *************** *** 369,372 **** --- 370,374 ---- // rice/chado jdbc doesnt need to do this as the updating of seq names is // automatic via trigger (same with transcript & exons) + // need these transactions for undo (rice trigger supressed for now) CompoundTransaction seqTrans = setSeqNamesFromTranscript(trans); compTrans.addTransaction(seqTrans); *************** *** 380,383 **** --- 382,419 ---- } + public CompoundTransaction setTranscriptId(SeqFeatureI trans,String id) { + CompoundTransaction compTrans = super.setTranscriptId(trans,id); + + if (trans.getRefFeature().isProteinCodingGene()) { + compTrans.addTransaction(setPeptideIdFromTranscript(trans)); + } + // synonym?? + // AddTransaction at = super.addSynonym(trans,oldId); + // compTrans.addTransaction(at); + compTrans.setSource(this); + return compTrans; + } + + /** chado generates peptide ids not apollo. apollo either keeps the existing + accession, and if null just creates a temp pep id (just uses name) */ + protected UpdateTransaction setPeptideIdFromTranscript(SeqFeatureI transcript) { + // if already set leave it be... + if (transcript.getPeptideSequence().getAccessionNo() != null) + return null; + + // just need anything with temp in it! + String tempPepId = generatePeptideNameFromTranscriptName(transcript.getId()); + if (tempPepId == null) + tempPepId = transcript.getName() + getPeptideSuffixRoot() + getTempSuffix(); + // its probably already temp - but just in case + if (!isTemp(tempPepId)) + tempPepId += getTempSuffix(); + + String oldPepId = null; // null required above + TransactionSubpart ts = TransactionSubpart.PEPTIDE_ID; + UpdateTransaction ut = new UpdateTransaction(transcript,ts,oldPepId,tempPepId); + ut.editModel(); + return ut; + } // this is currently not actually used - was only called by setTranscriptIdsFromAnnot *************** *** 446,450 **** return null; ! // transfer transcript ordinal to peptide. might include -temp as well String ordinal = transcriptName.substring(index + getTranscriptSuffixRoot().length()); --- 482,486 ---- return null; ! // transfer transcript ordinal to peptide. might include :temp as well String ordinal = transcriptName.substring(index + getTranscriptSuffixRoot().length()); *************** *** 471,479 **** /** This is used as a check if transcript suffix editing is allowed in the annot info editor. gmod/rice disallows this by default so this is actually not ! relevant yet for rice. (fly allows this so its important there). */ public String getTranscriptNamePattern() { String pat = ".*"+getTranscriptSuffixRoot()+getTranscriptOrdinalPattern(); if (transcriptCanHaveTempSuffix()) ! pat += "(-temp)*"; // is that right? * on parentheses? return pat; } --- 507,516 ---- /** This is used as a check if transcript suffix editing is allowed in the annot info editor. gmod/rice disallows this by default so this is actually not ! relevant yet for rice. (fly allows this so its important there). ! move to fly? */ public String getTranscriptNamePattern() { String pat = ".*"+getTranscriptSuffixRoot()+getTranscriptOrdinalPattern(); if (transcriptCanHaveTempSuffix()) ! pat += "("+getTempSuffix()+")*"; // is that right? * on parentheses? return pat; } *************** *** 492,496 **** } ! /** Returns true. gmod temps transcript suffixes (by default). the -temp indicates that the db needs to create a new transcript name */ protected boolean transcriptCanHaveTempSuffix() { --- 529,533 ---- } ! /** Returns true. gmod temps transcript suffixes (by default). the :temp indicates that the db needs to create a new transcript name */ protected boolean transcriptCanHaveTempSuffix() { *************** *** 498,501 **** --- 535,540 ---- } + private String getTempSuffix() { return ":temp"; } + /** Returns true if changing type from oldType to newType will cause a change in feature ID, i.e. the ID prefix will change to reflect the new type. |