public void check(EntityReference er, boolean fix) { if(!er.getMemberEntityReference().isEmpty()) { if (er.getXref().isEmpty()) { error(er, "no.xrefs", false); } else { boolean present = false; for (Xref x : er.getXref()) { Class<? extends BioPAXElement> face = x.getModelInterface(); if (UnificationXref.class.equals(face)) { present = true; } } if (!present) { error(er, "no.unification.xref", false); } } } }
/** * Given a model this method will analyze the states and populate the stateChangeMap and extendedControls maps. * @param model to be analyzed. */ public void analyzeStates(Model model) { GroupMap groupMap = Grouper.inferGroups(model); ModelUtils.replaceEquivalentFeatures(model); stateChangeMap = new HashMap<BioPAXElement, Set<PEStateChange>>(); extendedControls = new HashMap<Conversion, Set<EntityReference>>(); for (EntityReference pr : model.getObjects(EntityReference.class)) { if (!pr.getRDFId().startsWith("http://biopax.org/generated/fixer/normalizeGenerics/")) { Set<PEStateChange> stateChanges = stateChangeMap.get(pr); if (stateChanges == null) { stateChanges = new HashSet<PEStateChange>(); stateChangeMap.put(pr, stateChanges); } for (SimplePhysicalEntity spe : pr.getEntityReferenceOf()) { scanInteractions(groupMap, stateChanges, pr, spe); } } } }
/** * Searches for the shortest name of the PhysicalEntity. * @param spe entity to search in * @return the shortest name */ private String getShortestName(SimplePhysicalEntity spe) { String name = null; for (String s : spe.getName()) { if (name == null || s.length() > name.length()) name = s; } EntityReference er = spe.getEntityReference(); if (er != null) { for (String s : er.getName()) { if (name == null || s.length() > name.length()) name = s; } } return name; }
@Override public void check(SimplePhysicalEntity thing, boolean fix) { EntityReference er = thing.getEntityReference(); Set<EntityFeature> erefs = er.getEntityFeature(), peefs = new HashSet<EntityFeature>(); peefs.addAll(thing.getFeature()); peefs.addAll(thing.getNotFeature()); for(EntityFeature ef: peefs) { if(!erefs.contains(ef)) { if(fix) er.addEntityFeature(ef); error(thing, "improper.feature.use", fix, ef.getRDFId(), er.getRDFId()); } } }
private org.opencb.bionetdb.core.models.Protein createProtein(BioPAXElement bioPAXElement) { org.opencb.bionetdb.core.models.Protein protein = new org.opencb.bionetdb.core.models.Protein(); Protein proteinBP = (Protein) bioPAXElement; // Common properties setPhysicalEntityCommonProperties(proteinBP, protein); // Protein properties if (proteinBP.getEntityReference() != null) { EntityReference entityReference = proteinBP.getEntityReference(); // altIds for (String name : entityReference.getName()) { org.opencb.bionetdb.core.models.Xref xref = new org.opencb.bionetdb.core.models.Xref(); xref.setSource(REACTOME_FEAT + "biopax"); xref.setId(name); protein.setXref(xref); } // description protein.setDescription(new ArrayList<>(entityReference.getComment())); // xref Set<Xref> xrefs = entityReference.getXref(); for (Xref xref : xrefs) { org.opencb.bionetdb.core.models.Xref x = new org.opencb.bionetdb.core.models.Xref(); x.setSource(xref.getDb()); x.setSourceVersion(xref.getDbVersion()); x.setId(xref.getId()); x.setIdVersion(xref.getIdVersion()); protein.setXref(x); } } return protein; }
private void appendXrefs(Controller controller, StringBuilder builder) { HashSet<SimplePhysicalEntity> simple = new HashSet<SimplePhysicalEntity>(); if(controller instanceof PhysicalEntity) { Simplify.getSimpleMembers((PhysicalEntity) controller, simple); for (SimplePhysicalEntity spe : simple) { builder.append("(").append(spe.getEntityReference().getXref()).append(")"); } } } }
for (Xref xref : er.getXref()) name = er.getDisplayName(); name = er.getStandardName(); else if (er != null && !er.getName().isEmpty()) name = er.getName().iterator().next();
if(!er.getEntityFeature().contains(ef)) continue; //skip String newUri = Normalizer.uri(er.getUri() + "_", null, ef.getUri(), ef.getModelInterface()); EntityFeature newEf = (new ShallowCopy()).copy(ef, newUri); model.add(newEf); er.removeEntityFeature(ef); er.addEntityFeature(newEf); for(SimplePhysicalEntity spe : er.getEntityReferenceOf()) { er.removeEntityFeature(ef); er.addEntityFeature(ef);
for(SimplePhysicalEntity spe : er.getEntityReferenceOf()) { if(spe.getDisplayName() == null || spe.getDisplayName().trim().length() == 0) { if(er.getDisplayName() != null && er.getDisplayName().trim().length() > 0) { spe.setDisplayName(er.getDisplayName());
&& er.getModelInterface()==entityReferenceClass && (!(er instanceof SequenceEntityReference) || sameNameOrUndefined(((SequenceEntityReference)er).getOrganism(),bioSource) LOG.warn("A different " + er.getModelInterface().getSimpleName() + ", URI=" + baseUri + ", was found; for interactor:" + interactor.getId() + ", a new ("+entityReferenceClass.getSimpleName()+") URI will be used:" + newUri); entityReference.setDisplayName(shortName); if(er.getDisplayName() != null) { if(shortName.length() < er.getDisplayName().length()) { entityReference.addName(er.getDisplayName()); //keep both names entityReference.setDisplayName(shortName); } else { entityReference.addName(shortName); //keep both names entityReference.setDisplayName(shortName); if (name != null) { if(name.length() > 100 && //and there are other names (entityReference.getDisplayName()!=null || (synonyms!=null && !synonyms.isEmpty()))) entityReference.addComment(name); //comment instead of 'standardName' else entityReference.addName(name); entityReference.addName(synonym); entityReference.addXref((Xref) xref);
@Override public String toString() { StringBuilder bldr = new StringBuilder(); bldr.append(isComplex).append("{"); if (!isEmpty()) { for (EntityReference member : members) { bldr.append(member.getRDFId()).append(","); } for (Group subgroup : subgroups) { bldr.append(subgroup.toString()).append(","); } bldr.deleteCharAt(bldr.length() - 1); } return bldr.append("}").toString(); }
public void check(final Validation validation, EntityReference eref) { Set<Set<SimplePhysicalEntity>> clasters = algorithm.cluster(eref.getEntityReferenceOf(), Integer.MAX_VALUE); // report the error case once per cluster for (Set<SimplePhysicalEntity> col : clasters) { if(col.size() > 1) { SimplePhysicalEntity u = col.iterator().next(); col.remove(u); error(validation, eref, "same.state.entity", false, u, col); } } }
private Group inferGroupFromER(EntityReference element, Model model) { Group group = new Group(false, element); for (EntityReference member : element.getMemberEntityReference()) { if(group.genericClass==null) { group.genericClass = member.getModelInterface(); } group.addMember(member); } Set<Group> owners = delegated.get(element); if (owners != null) { for (Group owner : owners) { owner.addSubgroup(group); } } ModelUtils.copySimplePointers(model, element, group); return group.isEmpty() ? null : group; } }
Set<EntityFeature> erFeatures = new HashSet<EntityFeature>(er.getEntityFeature());//defensive copy String uri = Normalizer.uri(er.getUri() + "_", null, ef.getUri(), ef.getModelInterface()); for(EntityFeature f : er.getEntityFeature()) { if(uri.equals(f.getUri())) { newEf = f; er.addEntityFeature(newEf); } else { er.addEntityFeature(ef); error(validation, thing, "improper.feature.use", validation.isFix(), ef.getUri(), er.getUri());
private org.opencb.bionetdb.core.models.Dna createDna(BioPAXElement bioPAXElement) { org.opencb.bionetdb.core.models.Dna dna = new org.opencb.bionetdb.core.models.Dna(); Dna dnaBP = (Dna) bioPAXElement; // Common properties setPhysicalEntityCommonProperties(dnaBP, dna); // Dna properties if (dnaBP.getEntityReference() != null) { EntityReference entityReference = dnaBP.getEntityReference(); // altIds for (String name : entityReference.getName()) { org.opencb.bionetdb.core.models.Xref xref = new org.opencb.bionetdb.core.models.Xref(); xref.setSource(REACTOME_FEAT + "biopax"); xref.setId(name); dna.setXref(xref); } // description dna.setDescription(new ArrayList<>(entityReference.getComment())); // xref Set<Xref> xrefs = entityReference.getXref(); for (Xref xref : xrefs) { org.opencb.bionetdb.core.models.Xref x = new org.opencb.bionetdb.core.models.Xref(); x.setSource(xref.getDb()); x.setSourceVersion(xref.getDbVersion()); x.setId(xref.getId()); x.setIdVersion(xref.getIdVersion()); dna.setXref(x); } } return dna; }
private static <T extends Xref> List<T> getXRefs(BioPAXElement bpe, Class<T> xrefClass) { if(bpe instanceof XReferrable) { List<T> erefs = new ArrayList<T>(); erefs.addAll(new ClassFilterSet<Xref,T>( ((XReferrable)bpe).getXref(), xrefClass) ); if(bpe instanceof SimplePhysicalEntity && ((SimplePhysicalEntity)bpe).getEntityReference() != null) { erefs.addAll(new ClassFilterSet<Xref,T>( ((SimplePhysicalEntity)bpe).getEntityReference().getXref(), xrefClass) ); } return erefs; } return new ArrayList<T>(); }
for(SimplePhysicalEntity spe : er.getEntityReferenceOf()) { if(spe.getDisplayName() == null || spe.getDisplayName().trim().length() == 0) { if(er.getDisplayName() != null && er.getDisplayName().trim().length() > 0) { spe.setDisplayName(er.getDisplayName()); if(validation != null) validation.setFixed(BiopaxValidatorUtils.getId(spe),
private Map<String, String> calculateIdMapings(Model model) { Map<String, String> idMappings = new HashMap<String, String>(); final Set<SimplePhysicalEntity> proteins = model.getObjects(SimplePhysicalEntity.class); for (SimplePhysicalEntity protein : proteins) { final String protRefId = protein.getEntityReference().getRDFId(); for (Xref xref : protein.getXref()) { if ("uniprotkb".equals(xref.getDb())) { String newId = IDENTIFIERS_ORG + "uniprot/" + xref.getId(); idMappings.put(protRefId, newId); break; } else if ("chebi".equals(xref.getDb())) { String newId = IDENTIFIERS_ORG + xref.getDb() + "/" + xref.getId(); idMappings.put(protRefId, newId); break; } } } return idMappings; }
public void check(EntityReference eref, boolean fix) { Set<Set<SimplePhysicalEntity>> clasters = algorithm.cluster(eref.getEntityReferenceOf(), Integer.MAX_VALUE); // report the error case once per cluster for (Set<SimplePhysicalEntity> col : clasters) { if(col.size() > 1) { SimplePhysicalEntity u = col.iterator().next(); col.remove(u); error(eref, "same.state.entity", false, u, BiopaxValidatorUtils.getIdListAsString(col)); } } }