/*** * This method will copy properties of Feature source in Feature target and will override all the other properties of Target feature. * Only the participant is not copied * @param source * @param target */ public static void copyAndOverrideBasicFeaturesProperties(Feature source, Feature target){ if (source != null && target != null){ target.setShortName(source.getShortName()); target.setFullName(source.getFullName()); target.setType(source.getType()); target.setRole(source.getRole()); // copy collections target.getAliases().clear(); target.getAliases().addAll(source.getAliases()); target.getLinkedFeatures().clear(); target.getLinkedFeatures().addAll(source.getLinkedFeatures()); target.getAnnotations().clear(); target.getAnnotations().addAll(source.getAnnotations()); target.getIdentifiers().clear(); target.getIdentifiers().addAll(source.getIdentifiers()); target.getXrefs().clear(); target.getXrefs().addAll(source.getXrefs()); target.getRanges().clear(); target.getRanges().addAll(source.getRanges()); } } }
String name1 = feature1.getShortName(); String name2 = feature2.getShortName(); if (name1 != null && name2 != null){ if (!name1.equalsIgnoreCase(name2)){ CvTerm type1 = feature1.getType(); CvTerm type2 = feature2.getType(); CvTerm interactionEffect1 = feature1.getRole(); CvTerm interactionEffect2 = feature2.getRole(); String interpro1 = feature1.getInterpro(); String interpro2 = feature2.getInterpro(); else if (!feature1.getIdentifiers().isEmpty() && !feature2.getIdentifiers().isEmpty()){ if (!ComparatorUtils.findAtLeastOneMatchingIdentifier(feature1.getIdentifiers(), feature2.getIdentifiers())){ return false; Collection<Range> ranges1 = feature1.getRanges(); Collection<Range> ranges2 = feature2.getRanges();
if (object.getFullName() != null){ MIJsonUtils.writeSeparator(writer); MIJsonUtils.writeProperty("name", JSONValue.escape(object.getFullName()), writer); else if (object.getShortName() != null){ MIJsonUtils.writeSeparator(writer); MIJsonUtils.writeProperty("name", JSONValue.escape(object.getShortName()), writer); if (object.getType() != null){ MIJsonUtils.writeSeparator(writer); MIJsonUtils.writePropertyKey("type", writer); getCvWriter().write(object.getType()); if (object.getRole() != null){ MIJsonUtils.writeSeparator(writer); MIJsonUtils.writePropertyKey("role", writer); getCvWriter().write(object.getRole()); if (!object.getRanges().isEmpty()){ MIJsonUtils.writeSeparator(writer); MIJsonUtils.writePropertyKey("sequenceData", writer); MIJsonUtils.writeOpenArray(writer); Iterator<Range> rangeIterator = object.getRanges().iterator(); while (rangeIterator.hasNext()){ getRangeWriter().write(rangeIterator.next(), object); if (!object.getLinkedFeatures().isEmpty()){ MIJsonUtils.writeSeparator(writer);
/** * For each participants of the interaction, collect all respective feature types and feature range status and * check if the dependencies are correct. * * @param feature to check on. * @return a collection of validator messages. * if we fail to retreive the MI Ontology. */ public Collection<ValidatorMessage> check( Feature feature) throws ValidatorException { Collection<ValidatorMessage> messages = Collections.EMPTY_LIST; if (feature.getType() != null){ Collection<Range> featureRange = feature.getRanges(); CvTerm featureType = feature.getType(); messages = new ArrayList<ValidatorMessage>(); if (!feature.getRanges().isEmpty()){ for (Range r : featureRange){ // build a context in case of error MiContext context = RuleUtils.buildContext(feature, "feature"); context.addAssociatedContext(RuleUtils.buildContext(featureType, "feature type")); context.addAssociatedContext(RuleUtils.buildContext(r, "feature range")); CvTerm startStatus = r.getStart().getStatus(); CvTerm endStatus = r.getEnd().getStatus(); messages.addAll( mapping.check( featureType, startStatus, context, this ) ); messages.addAll( mapping.check( featureType, endStatus, context, this ) ); } } } return messages; }
public void writeFeature(Feature feature) throws IOException { if (feature != null){ if (feature.getType() != null){ writeCvTermName(feature.getType()); if (feature.getRanges().isEmpty()){ getWriter().write(Range.UNDETERMINED_POSITION_SYMBOL); getWriter().write(Range.POSITION_SEPARATOR); Iterator<Range> rangeIterator = feature.getRanges().iterator(); while(rangeIterator.hasNext()){ getWriter().write(RangeUtils.convertRangeToString(rangeIterator.next())); if (feature.getInterpro() != null){ getWriter().write("("); escapeAndWriteString(feature.getInterpro()); getWriter().write(")");
public void onTypeUpdate(T protein, CvTerm old) { if (old == null){ featureChangeLogger.log(Level.INFO, "The type has been initialised for the feature " + protein.toString()); } else if (protein.getType() == null){ featureChangeLogger.log(Level.INFO, "The type has been reset for the feature " + protein.toString()); } else { featureChangeLogger.log(Level.INFO, "The type " + old.toString() + " has been replaced with " + protein.getType() + " in the feature " + protein.toString()); } }
Entity participant = feature.getParticipant(); Interactor interactor = null; String sequence = null; Collection<psidev.psi.mi.jami.model.Range> ranges = feature .getRanges();
public static Feature createDefaultFeature(String name, CvTerm featureType, Collection<Range> ranges) { Feature feature = new DefaultFeature(name, null, featureType); if (ranges != null){ feature.getRanges().addAll(ranges); } return feature; }
/** * For each cross reference of this XrefContainer, collects all respective cross reference type(s) and * check if the dependencies are correct. * * @param container to check on. * @return a collection of validator messages. * if we fail to retreive the MI Ontology. */ public Collection<ValidatorMessage> check( Feature container) throws ValidatorException { Collection<ValidatorMessage> messages = new ArrayList<ValidatorMessage>(); // Collect the identifiers Collection<Xref> identifiers = container.getIdentifiers(); for ( Xref reference : identifiers) { MiContext context = RuleUtils.buildContext(reference, "database xref"); context.addAssociatedContext(RuleUtils.buildContext(container, "feature")); // build a context in case of error messages.addAll( mapping.check( reference.getDatabase(), reference.getQualifier(), context, this ) ); } // Collect the db references Collection<Xref> databaseReferences = container.getXrefs(); for ( Xref reference : databaseReferences) { MiContext context = RuleUtils.buildContext(reference, "database xref"); context.addAssociatedContext(RuleUtils.buildContext(container, "feature")); // build a context in case of error messages.addAll( mapping.check( reference.getDatabase(), reference.getQualifier(), context, this ) ); } return messages; }
public void onInterproUpdate(T feature, String oldInterpro) { if (oldInterpro == null){ featureChangeLogger.log(Level.INFO, "The interpro identifier has been initialised for the feature " + feature.toString()); } else if (feature.getInterpro() == null){ featureChangeLogger.log(Level.INFO, "The interpro identifier has been reset for the feature " + feature.toString()); } else { featureChangeLogger.log(Level.INFO, "The interpro identifier " + oldInterpro.toString() + " has been replaced with " + feature.getInterpro() + " in the feature " + feature.toString()); } }
public void onFullNameUpdate(T protein, String oldFullName) { if (oldFullName == null){ featureChangeLogger.log(Level.INFO, "The full name has been initialised for the feature " + protein.toString()); } else if (protein.getFullName() == null){ featureChangeLogger.log(Level.INFO, "The full name has been reset for the feature " + protein.toString()); } else { featureChangeLogger.log(Level.INFO, "The full name " + oldFullName + " has been updated with " + protein.getFullName() + " in the feature " + protein.toString()); } }
public void onRoleUpdate(T protein, CvTerm oldRole) { if (oldRole == null){ featureChangeLogger.log(Level.INFO, "The feature role has been initialised for the feature " + protein.toString()); } else if (protein.getRole() == null){ featureChangeLogger.log(Level.INFO, "The feature role has been reset for the feature " + protein.toString()); } else { featureChangeLogger.log(Level.INFO, "The feature role " + oldRole.toString() + " has been replaced with " + protein.getRole() + " in the feature " + protein.toString()); } }
public void onShortNameUpdate(T protein, String oldShortName) { featureChangeLogger.log(Level.INFO, "The short name " + oldShortName + " has been updated with " + protein.getShortName() + " in the feature " + protein.toString()); }
private void collectFeaturesAndAddToGraph(I interaction, Graph<F, BindingPair<F>> graph) { for (Object o : interaction.getParticipants()){ Participant participant = (Participant)o; for (Object o2 : participant.getFeatures()){ F feature = (F)o2; if (!feature.getLinkedFeatures().isEmpty()){ graph.addVertex(feature); for (Object o3 : feature.getLinkedFeatures()){ F feature2 = (F)o3; graph.addVertex(feature2); graph.addEdge(feature, feature2); } } } } } }
parent != null && parent.getParticipant() != null && !(parent.getParticipant().getInteractor() instanceof Complex)){ interactor = parent.getParticipant().getInteractor(); participant = parent.getParticipant();
if (feature != null){ if (feature.getType() != null){ CvTerm type = feature.getType(); if (type.getFullName() != null){ escapeAndWriteString(type.getFullName()); if (feature.getRanges().isEmpty()){ getWriter().write(Range.UNDETERMINED_POSITION_SYMBOL); getWriter().write(Range.POSITION_SEPARATOR); Iterator<Range> rangeIterator = feature.getRanges().iterator(); while(rangeIterator.hasNext()){ getWriter().write(RangeUtils.convertRangeToString(rangeIterator.next()));
public static boolean isBindingSite( OntologyManager ontologyManager, Feature feature ) { return isOfType( ontologyManager, feature.getType(), RuleUtils.BINDING_SITE, true ); }
public static Feature createDefaultFeature(String name, CvTerm featureType, Range range) { Feature feature = new DefaultFeature(name, null, featureType); if (range != null){ feature.getRanges().add(range); } return feature; }
String name1 = feature1.getShortName(); String name2 = feature2.getShortName(); if (name1 != null && name2 != null){ int comp = name1.toLowerCase().trim().compareTo(name2.toLowerCase().trim()); CvTerm type1 = feature1.getType(); CvTerm type2 = feature2.getType(); CvTerm interactionEffect1 = feature1.getRole(); CvTerm interactionEffect2 = feature2.getRole(); String interpro1 = feature1.getInterpro(); String interpro2 = feature2.getInterpro(); Collection<Xref> identifiers1 = feature1.getIdentifiers(); Collection<Xref> identifiers2 = feature2.getIdentifiers(); Collection<Range> ranges1 = feature1.getRanges(); Collection<Range> ranges2 = feature2.getRanges();
if (feature != null){ if (feature.getType() != null){ CvTerm type = feature.getType(); if (type.getFullName() != null){ escapeAndWriteString(type.getFullName()); if (feature.getRanges().isEmpty()){ getWriter().write(Range.UNDETERMINED_POSITION_SYMBOL); getWriter().write(Range.POSITION_SEPARATOR); Iterator<Range> rangeIterator = feature.getRanges().iterator(); while(rangeIterator.hasNext()){ getWriter().write(RangeUtils.convertRangeToString(rangeIterator.next()));