/** * Add a non canonical 3' splice site. Sets the splice site's transcript to this transcript * object. * * @param nonCanonicalThreePrimeSpliceSite - Non canonical 3' splice site to be added */ public void addNonCanonicalThreePrimeSpliceSite( NonCanonicalThreePrimeSpliceSite nonCanonicalThreePrimeSpliceSite) { CVTerm partOfCvterm = conf.getDefaultCVTermForClass("PartOf"); // add non canonical 3' splice site FeatureRelationship fr = new FeatureRelationship( conf.getDefaultCVTermForClass("PartOf"), this.feature, nonCanonicalThreePrimeSpliceSite.getFeature(), 0 // TODO: Do we need to rank the order of any other transcripts? ); feature.getChildFeatureRelationships().add(fr); nonCanonicalThreePrimeSpliceSite.getFeature().getParentFeatureRelationships().add(fr); }
/** * Delete an non canonical 3' splice site. Deletes both the transcript -> non canonical 3' splice * site and non canonical 3' splice site -> transcript relationships. * * @param nonCanonicalThreePrimeSpliceSite - NonCanonicalThreePrimeSpliceSite to be deleted */ public void deleteNonCanonicalThreePrimeSpliceSite( NonCanonicalThreePrimeSpliceSite nonCanonicalThreePrimeSpliceSite) { Collection<CVTerm> partOfCvterms = conf.getCVTermsForClass("PartOf"); Collection<CVTerm> nonCanonicalThreePrimeSpliceSiteCvterms = conf.getCVTermsForClass("NonCanonicalThreePrimeSpliceSite"); Collection<CVTerm> transcriptCvterms = conf.getCVTermsForClass("Transcript"); // delete transcript -> non canonical 3' splice site child relationship for (FeatureRelationship fr : feature.getChildFeatureRelationships()) { if (!partOfCvterms.contains(fr.getType())) { continue; } if (!nonCanonicalThreePrimeSpliceSiteCvterms.contains(fr.getSubjectFeature().getType())) { continue; } if (fr.getSubjectFeature().equals(nonCanonicalThreePrimeSpliceSite.getFeature())) { boolean ok = feature.getChildFeatureRelationships().remove(fr); break; } } // delete transcript -> non canonical 3' splice site parent relationship for (FeatureRelationship fr : nonCanonicalThreePrimeSpliceSite.getFeature().getParentFeatureRelationships()) { if (!partOfCvterms.contains(fr.getType())) { continue; } if (!transcriptCvterms.contains(fr.getObjectFeature().getType())) { continue; } if (fr.getSubjectFeature().equals(nonCanonicalThreePrimeSpliceSite.getFeature())) { boolean ok = nonCanonicalThreePrimeSpliceSite .getFeature() .getParentFeatureRelationships() .remove(fr); break; } } }