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