Пример #1
0
  /**
   * 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);
  }
Пример #2
0
  /**
   * 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;
      }
    }
  }