private void processClusterContext(MiClusterContext context, String interactionAc, Collection<BinaryInteraction> toBinary) { // process the context information List<CrossReference> detectionMethods = toBinary.iterator().next().getDetectionMethods(); String detectionMI = detectionMethods.iterator().next().getIdentifier(); if (!context.getMiTerms().containsKey(detectionMI)){ context.getMiTerms().put(detectionMI, detectionMethods.iterator().next().getText()); } List<CrossReference> interactionTypes = toBinary.iterator().next().getInteractionTypes(); String typeMi = interactionTypes.iterator().next().getIdentifier(); if (!context.getMiTerms().containsKey(typeMi)){ context.getMiTerms().put(typeMi, interactionTypes.iterator().next().getText()); } context.getInteractionToMethod_type().put(interactionAc, new MethodTypePair(detectionMI, typeMi)); if (toBinary.size() > 1){ context.getSpokeExpandedInteractions().add(interactionAc); } }
public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } MethodTypePair pair2 = (MethodTypePair) o; if ((method == null && pair2.getMethod() != null) || (method != null && pair2.getMethod() == null)){ return false; } else if (method != null && !method.equalsIgnoreCase(pair2.getMethod())){ return false; } if ((type == null && pair2.getType() != null) || (type != null && pair2.getType() == null)){ return false; } else if (type != null && !type.equalsIgnoreCase(pair2.getType())){ return false; } return true; }
public Map<String, List<String>> getMethodToPubmed() { Map<String, List<String>> methodToPubmed = new HashMap<String, List<String>>(); for (Map.Entry<MethodTypePair, List<String>> entry : methodTypePairListMap.entrySet()){ MethodTypePair pair = entry.getKey(); if (methodToPubmed.containsKey(pair.getMethod()) && pair.getMethod() != null){ methodToPubmed.get(pair.getMethod()).addAll(entry.getValue()); } else { if (pair.getMethod() != null){ methodToPubmed.put(pair.getMethod(), entry.getValue()); } } } return methodToPubmed; }
public Map<String, List<String>> getTypeToPubmed() { Map<String, List<String>> typeToPubmed = new HashMap<String, List<String>>(); for (Map.Entry<MethodTypePair, List<String>> entry : methodTypePairListMap.entrySet()){ MethodTypePair pair = entry.getKey(); if (typeToPubmed.containsKey(pair.getType()) && pair.getType() != null){ typeToPubmed.get(pair.getType()).addAll(entry.getValue()); } else { if (pair.getType() != null){ typeToPubmed.put(pair.getType(), entry.getValue()); } } } return typeToPubmed; } }
private int computeNumberOfExperimentsHavingDetectionMethod(String method, ExportContext context, EncoreInteraction interaction, Set<String> validIntactIds){ Map<MethodTypePair, List<String>> invertedMap = WriterUtils.invertMapFromKeySelection(context.getInteractionToMethod_type(), interaction.getExperimentToPubmed().keySet()); int numberOfExperiment = 0; for (Map.Entry<MethodTypePair, List<String>> entry : invertedMap.entrySet()){ if (entry.getKey().getMethod().equals(method)){ numberOfExperiment += entry.getValue().size(); validIntactIds.addAll(entry.getValue()); } } return numberOfExperiment; }
@Override public boolean canExportBinaryInteraction(BinaryInteraction interaction, ExportContext context) throws UniprotExportException { double score = FilterUtils.getMiClusterScoreFor(interaction); if (score >= positive_export_threshold){ Set<String> intactInteractions = new HashSet<String>(); intactInteractions.addAll(FilterUtils.extractIntactAcFrom(interaction.getInteractionAcs())); if (intactInteractions.isEmpty()){ throw new UniprotExportException("The interaction :" + interaction.getInteractorA().toString() + "-" + interaction.getInteractorB().toString() +" doesn't have any references to IntAct."); } for (String ac : intactInteractions){ if (!context.getSpokeExpandedInteractions().contains(ac)){ String type = context.getInteractionToMethod_type().get(ac).getType(); if (!type.equals(COLOCALIZATION)){ logger.info("The negative interaction " + ac + " passed the export rules with score = " + score); return true; } } } } return false; }
private int computeForBinaryInteractionNumberOfExperimentsHavingDetectionMethod(String method, ExportContext context, BinaryInteraction interaction, Set<String> validIntactIds){ Set<String> intactAcs = FilterUtils.extractIntactAcFrom(interaction.getInteractionAcs()); Map<MethodTypePair, List<String>> invertedMap = WriterUtils.invertMapFromKeySelection(context.getInteractionToMethod_type(), intactAcs); int numberOfExperiment = 0; for (Map.Entry<MethodTypePair, List<String>> entry : invertedMap.entrySet()){ if (entry.getKey().getMethod().equals(method)){ for (String intactId : entry.getValue()){ if (!context.getSpokeExpandedInteractions().contains(intactId)){ numberOfExperiment ++; validIntactIds.add(intactId); } } } } return numberOfExperiment; }
protected void processMiTerms(BinaryInteraction interaction, MiClusterContext context, String intactAc){ List<CrossReference> detectionMethods = interaction.getDetectionMethods(); Map<String, String> miTerms = context.getMiTerms(); for (CrossReference method : detectionMethods){ if (!miTerms.containsKey(method.getIdentifier())){ String methodName = method.getText() != null ? method.getText() : "-"; miTerms.put(method.getIdentifier(), methodName); } } List<CrossReference> types = interaction.getInteractionTypes(); for (CrossReference type : types){ if (!miTerms.containsKey(type.getIdentifier())){ String methodName = type.getText() != null ? type.getText() : "-"; miTerms.put(type.getIdentifier(), methodName); } } String detectionMI = detectionMethods.iterator().next().getIdentifier(); String typeMi = types.iterator().next().getIdentifier(); MethodTypePair entry = new MethodTypePair(detectionMI, typeMi); context.getInteractionToMethod_type().put(intactAc, entry); }
@Override public boolean canExportEncoreInteraction(EncoreInteraction encore, ExportContext context) throws UniprotExportException { double score = FilterUtils.getMiClusterScoreFor(encore); if (score >= positive_export_threshold){ if (encore.getExperimentToDatabase() == null){ throw new UniprotExportException("The interaction " + encore.getId() + ":" + encore.getInteractorA() + "-" + encore.getInteractorB() +" doesn't have any references to IntAct."); } Set<String> intactInteractions = new HashSet<String>(); intactInteractions.addAll(encore.getExperimentToPubmed().keySet()); if (intactInteractions.isEmpty()){ throw new UniprotExportException("The interaction " + encore.getId() + ":" + encore.getInteractorA() + "-" + encore.getInteractorB() +" doesn't have any references to IntAct."); } for (String ac : intactInteractions){ if (!context.getSpokeExpandedInteractions().contains(ac)){ String type = context.getInteractionToMethod_type().get(ac).getType(); if (!type.equals(COLOCALIZATION)){ logger.info("The interaction " + encore.getId() + " passed the export rules with score = " + score); return true; } } } } return false; }
if (!context.getSpokeExpandedInteractions().contains(ac)){ String method = context.getInteractionToMethod_type().get(ac).getMethod();
MethodTypePair pair = new MethodTypePair(meth.getIdentifier(), type); MethodTypePair pair = new MethodTypePair(method, type.getIdentifier()); String method = iMethods.get(i).getIdentifier(); String type = iTypes.get(i).getIdentifier(); MethodTypePair pair = new MethodTypePair(method, type); MethodTypePair pair = new MethodTypePair(null, type.getIdentifier()); MethodTypePair pair = new MethodTypePair(meth.getIdentifier(), null); MethodTypePair pair = new MethodTypePair(null, type.getIdentifier()); MethodTypePair pair = new MethodTypePair(meth.getIdentifier(), null);
@Override public boolean canExportNegativeEncoreInteraction(EncoreInteraction encore, ExportContext context, ExportedClusteredInteractions positiveInteractions) throws UniprotExportException { boolean isElgibleForExport = ExporterUtils.isNegativeInteractionEligibleForUniprotExport(encore, positiveInteractions); if (isElgibleForExport){ double score = FilterUtils.getMiClusterScoreFor(encore); if (score >= negative_export_threshold){ if (encore.getExperimentToDatabase() == null){ throw new UniprotExportException("The interaction " + encore.getId() + ":" + encore.getInteractorA() + "-" + encore.getInteractorB() +" doesn't have any references to IntAct."); } Set<String> intactInteractions = new HashSet<String>(); intactInteractions.addAll(encore.getExperimentToPubmed().keySet()); if (intactInteractions.isEmpty()){ throw new UniprotExportException("The interaction " + encore.getId() + ":" + encore.getInteractorA() + "-" + encore.getInteractorB() +" doesn't have any references to IntAct."); } for (String ac : intactInteractions){ if (!context.getSpokeExpandedInteractions().contains(ac)){ String type = context.getInteractionToMethod_type().get(ac).getType(); if (!type.equals(COLOCALIZATION)){ logger.info("The negative interaction " + encore.getId() + " passed the export rules with score = " + score); return true; } } } } } return false; }
MethodTypePair entry = new MethodTypePair(detectionMI, typeMi); context.getInteractionToMethod_type().put(intactAc, entry);
if (pair.getMethod() != null){ psiDetectionMethod.setIdentifier(pair.getMethod()); if(miMethodOntologyTerms.containsKey(pair.getMethod())){ psiDetectionMethod.setText(miMethodOntologyTerms.get(pair.getMethod())); psiDetectionMethod.setDatabase("psi-mi"); if (pair.getType() != null){ psitype.setIdentifier(pair.getType()); if(miTypeOntologyTerms.containsKey(pair.getType())){ psitype.setText(miTypeOntologyTerms.get(pair.getType())); psitype.setDatabase("psi-mi");