From: Mark G. <mg...@us...> - 2005-04-28 22:33:56
|
Update of /cvsroot/gmod/apollo/src/java/apollo/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31747/src/java/apollo/config Modified Files: ApolloNameAdapterI.java DefaultNameAdapter.java FlyNameAdapter.java GmodNameAdapter.java Log Message: peptide accession/id is now being set from name adapter setTranscriptIdsFromAnnot, as they are no longer set from setTranscriptName as accessions are idish not namish it has been decided. Transcript.generatePepSeq now takes acc & name. setAnnotId is only used for explicit id changes and id changes due to type changes which is all unique to fly so i moved it to fly name adapter. using new peptide id transaction subpart - undo works. nomi - i reverted FlyNameAdapter.setSeqNamesFromTranscript to setting cdna name to trans name - i think thats right. some rice errors seems to have popped up due to this - looking into that. Index: ApolloNameAdapterI.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/config/ApolloNameAdapterI.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ApolloNameAdapterI.java 8 Apr 2005 16:03:05 -0000 1.18 --- ApolloNameAdapterI.java 28 Apr 2005 22:33:45 -0000 1.19 *************** *** 81,84 **** --- 81,85 ---- /** Generate a peptide name given a transcript name. */ public String generatePeptideNameFromTranscriptName(String transcriptName); + public String generatePeptideIdFromTranscriptId(String transcriptId); } Index: DefaultNameAdapter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/config/DefaultNameAdapter.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** DefaultNameAdapter.java 28 Apr 2005 18:43:36 -0000 1.26 --- DefaultNameAdapter.java 28 Apr 2005 22:33:45 -0000 1.27 *************** *** 360,364 **** } ! /** returns CompoundTransaction of all id changes */ public CompoundTransaction setAnnotId(AnnotatedFeatureI annot, String id) { //annot.setId(id); --- 360,368 ---- } ! /** currently only used by fly which overrides this - ! returns CompoundTransaction of all id changes - this is used by GeneEditPanel ! for explicit id changes(fly) and UpdateTransaction/TransactionUtil for id changes ! caused by type changes (fly) which should eventually use compound trans ! Merge & split dont use this (should they?) */ public CompoundTransaction setAnnotId(AnnotatedFeatureI annot, String id) { //annot.setId(id); *************** *** 367,375 **** compoundTrans.addTransaction(ut); ! // If root set all transcript ids - should this go in fly and/or rice? ! if (annot.isAnnotationRoot()) { ! CompoundTransaction transcriptTrans = setTranscriptIdsFromAnnot(annot); ! compoundTrans.addTransaction(transcriptTrans); // ignores null ! } return compoundTrans; //return ut; --- 371,379 ---- compoundTrans.addTransaction(ut); ! // // If root set all transcript ids - should this go in fly and/or rice? ! // if (annot.isAnnotationRoot()) { ! // CompoundTransaction transcriptTrans = setTranscriptIdsFromAnnot(annot); ! // compoundTrans.addTransaction(transcriptTrans); // ignores null ! // } return compoundTrans; //return ut; *************** *** 387,399 **** } ! /** For now does nothing. fly/rice subclass implements. Should fly rice setting ! of trans id be the default? */ ! protected CompoundTransaction setTranscriptIdsFromAnnot(AnnotatedFeatureI annotParent) { ! return null; ! } public String generatePeptideNameFromTranscriptName(String transcriptName) { return transcriptName; } } // This is no longer used externally - its an internal FlyNameAdapter thing --- 391,406 ---- } ! // /** For now does nothing. fly/rice subclass implements. Should fly rice setting ! // of trans id be the default? */ ! // protected CompoundTransaction setTranscriptIdsFromAnnot(AnnotatedFeatureI annotParent) { ! // return null; ! // } public String generatePeptideNameFromTranscriptName(String transcriptName) { return transcriptName; } + public String generatePeptideIdFromTranscriptId(String transcriptId) { + return transcriptId; + } } // This is no longer used externally - its an internal FlyNameAdapter thing Index: FlyNameAdapter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/config/FlyNameAdapter.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** FlyNameAdapter.java 27 Apr 2005 23:57:27 -0000 1.36 --- FlyNameAdapter.java 28 Apr 2005 22:33:45 -0000 1.37 *************** *** 226,233 **** } - /** 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 - will need to get into exon ids at some point. */ - protected void setExonIdsFromTranscript(SeqFeatureI transcript) {} --- 226,229 ---- *************** *** 236,247 **** // peptide name from gmod CompoundTransaction ct = super.setSeqNamesFromTranscript(trans); if (trans.get_cDNASequence() != null) { //trans.get_cDNASequence().setAccessionNo(trans.getName()); -> editModel TransactionSubpart ts = TransactionSubpart.CDNA_NAME; UpdateTransaction t = new UpdateTransaction(trans,ts); ! t.setOldSubpartValue(trans.get_cDNASequence().getAccessionNo()); ! // t.setNewSubpartValue(trans.getName()); // Sequence accession should be id, not name ! t.setNewSubpartValue(trans.getId()); t.editModel(); ct.addTransaction(t); --- 232,246 ---- // peptide name from gmod CompoundTransaction ct = super.setSeqNamesFromTranscript(trans); + + // dont know if this is right - its setting cdna id/acc on trans name change if (trans.get_cDNASequence() != null) { //trans.get_cDNASequence().setAccessionNo(trans.getName()); -> editModel TransactionSubpart ts = TransactionSubpart.CDNA_NAME; UpdateTransaction t = new UpdateTransaction(trans,ts); ! t.setOldSubpartValue(trans.get_cDNASequence().getName()); ! t.setNewSubpartValue(trans.getName()); // Sequence accession should be id, not name ! // nomi - shouldnt this be getName(), you just changed this, reverting back - mg ! // t.setNewSubpartValue(trans.getId()); t.editModel(); ct.addTransaction(t); *************** *** 286,290 **** --- 285,351 ---- return false; } + + + /** returns CompoundTransaction of all id changes - this is used by GeneEditPanel + for explicit id changes(fly) and UpdateTransaction/TransactionUtil for id changes + caused by type changes (fly) which should eventually use compound trans - + at the moment this is really just for fly + Merge & split dont use this (should they?) */ + public CompoundTransaction setAnnotId(AnnotatedFeatureI annot, String id) { + CompoundTransaction compoundTrans = super.setAnnotId(annot,id); //DefNA sets annot + + // If root set all transcript ids - should this go in fly and/or rice? + if (annot.isAnnotationRoot()) { + CompoundTransaction transcriptTrans = setTranscriptIdsFromAnnot(annot); + compoundTrans.addTransaction(transcriptTrans); // ignores null + } + + return compoundTrans; //return ut; + } + + /** called by setAnnotId, sets all the transcript ids. used for explicit id changes + from GEP and id changes from type changes. */ + private CompoundTransaction setTranscriptIdsFromAnnot(AnnotatedFeatureI annotParent) { + CompoundTransaction compTrans = new CompoundTransaction(); + for (int i=0; i<annotParent.size(); i++) { + SeqFeatureI trans = annotParent.getFeatureAt(i); + String transcriptSuffix = getTranscriptSuffix(trans,annotParent); + String transId = annotParent.getId() + transcriptSuffix; + //trans.setId(transId); + UpdateTransaction ut = setId(trans,transId); // DefaultNameAdapter + compTrans.addTransaction(ut); + //setExonIdsFromTranscript(trans); // ret CompoundTrans?? // doesnt do anything + ut = setPeptideIdFromTranscriptId(trans); + compTrans.addTransaction(ut); + } + return compTrans; + } + + private UpdateTransaction setPeptideIdFromTranscriptId(SeqFeatureI transcript) { + if (!transcript.hasPeptideSequence()) + return null; + + String pepId = generatePeptideIdFromTranscriptId(transcript.getId()); + + TransactionSubpart ts = TransactionSubpart.PEPTIDE_ID; + String oldId = transcript.getPeptideSequence().getAccessionNo(); + UpdateTransaction ut = new UpdateTransaction(transcript,ts,oldId,pepId); + ut.editModel(); + return ut; + } + /** Generates peptide id from existing transcript id. + Replace transcript suffix with peptide suffix */ + public String generatePeptideIdFromTranscriptId(String transcriptId) { + // this will do it for trans id - should rename method + return generatePeptideNameFromTranscriptName(transcriptId); + } + + // /** 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 + // will need to get into exon ids at some point. */ + // protected void setExonIdsFromTranscript(SeqFeatureI transcript) {} + } + // private final static String transcriptNamePattern = ".*-R[A-Z]+"; Index: GmodNameAdapter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/config/GmodNameAdapter.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** GmodNameAdapter.java 28 Apr 2005 18:43:36 -0000 1.15 --- GmodNameAdapter.java 28 Apr 2005 22:33:45 -0000 1.16 *************** *** 381,410 **** ! protected CompoundTransaction setTranscriptIdsFromAnnot(AnnotatedFeatureI annotParent) { ! CompoundTransaction compTrans = new CompoundTransaction(); ! for (int i=0; i<annotParent.size(); i++) { ! SeqFeatureI trans = annotParent.getFeatureAt(i); ! String transcriptSuffix = getTranscriptSuffix(trans,annotParent); ! String transId = annotParent.getId() + transcriptSuffix; ! //trans.setId(transId); ! UpdateTransaction ut = setId(trans,transId); // DefaultNameAdapter ! compTrans.addTransaction(ut); ! setExonIdsFromTranscript(trans); // ret CompoundTrans?? ! } ! return compTrans; ! } ! ! /** Exon id with range: Gene:start-end, it would be nice if fly ! would adopt this naming as well. Called from setTranscriptIdFromAnnot */ ! protected void setExonIdsFromTranscript(SeqFeatureI transcript) { ! for (int i=0; i<transcript.getNumberOfChildren(); i++) { ! SeqFeatureI exon = transcript.getFeatureAt(i); ! String annotTopId = transcript.getRefFeature().getId(); ! // eventually should create event as well... and return it ! exon.setId(annotTopId + ":" + exon.getStart() + "-" + exon.getEnd()); ! } ! } ! private String getTranscriptSuffix(SeqFeatureI trans,AnnotatedFeatureI annot) { String transcript_id = (trans.getId() == null ? trans.getName() : trans.getId()); int index = (transcript_id != null ? transcript_id.lastIndexOf("-") : -1); --- 381,398 ---- ! // this is currently not actually used - was only called by setTranscriptIdsFromAnnot ! // which GmodNameAdapter doesnt use (explicit id cng & id cng via type cng) ! // /** Exon id with range: Gene:start-end, it would be nice if fly ! // would adopt this naming as well. Called from setTranscriptIdFromAnnot */ ! // protected void setExonIdsFromTranscript(SeqFeatureI transcript) { ! // for (int i=0; i<transcript.getNumberOfChildren(); i++) { ! // SeqFeatureI exon = transcript.getFeatureAt(i); ! // String annotTopId = transcript.getRefFeature().getId(); ! // // eventually should create event as well... and return it ! // exon.setId(annotTopId + ":" + exon.getStart() + "-" + exon.getEnd()); ! // } ! // } ! protected String getTranscriptSuffix(SeqFeatureI trans,AnnotatedFeatureI annot) { String transcript_id = (trans.getId() == null ? trans.getName() : trans.getId()); int index = (transcript_id != null ? transcript_id.lastIndexOf("-") : -1); *************** *** 455,480 **** String pepName = transcriptName; // default? -- shouldnt happen int index = transcriptName.indexOf(getTranscriptSuffixRoot()); ! if (index > 0) { // this should always be the case ! // transfer transcript ordinal to peptide. might include -temp as well ! String ordinal = ! transcriptName.substring(index + getTranscriptSuffixRoot().length()); ! pepName = transcriptName.substring(0,index) + getPeptideSuffixRoot() + ordinal; ! } return pepName; } - /** Generates peptide id from existing transcript id. - Replace transcript suffix with peptide suffix */ - public String generatePeptideIdFromTranscriptId(String transcriptId) { - String pepId = transcriptId; // default? -- shouldnt happen - int index = transcriptId.indexOf(getTranscriptSuffixRoot()); - if (index > 0) { // this should always be the case - // transfer transcript ordinal to peptide. might include -temp as well - String ordinal = - transcriptId.substring(index + getTranscriptSuffixRoot().length()); - pepId = transcriptId.substring(0,index) + getPeptideSuffixRoot() + ordinal; - } - return pepId; - } private final static String transcriptSuffixRoot = "-transcript"; --- 443,456 ---- String pepName = transcriptName; // default? -- shouldnt happen int index = transcriptName.indexOf(getTranscriptSuffixRoot()); ! if (index == -1) // shouldnt happen ! return null; ! ! // transfer transcript ordinal to peptide. might include -temp as well ! String ordinal = ! transcriptName.substring(index + getTranscriptSuffixRoot().length()); ! pepName = transcriptName.substring(0,index) + getPeptideSuffixRoot() + ordinal; return pepName; } private final static String transcriptSuffixRoot = "-transcript"; |