// Path: src/main/java/ch/picard/ppimapbuilder/data/protein/ortholog/OrthologScoredProtein.java
// public class OrthologScoredProtein extends Protein {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private final Double score;
// 
// 	public OrthologScoredProtein(Protein protein, Double score) {
// 		super(protein.getUniProtId(), protein.getOrganism());
// 		this.score = score;
// 	}
// 
// 	public Double getScore() {
// 		return score;
// 	}
// 
// }


import java.util.Map;
import java.util.Set;
import ch.picard.ppimapbuilder.data.organism.Organism;
import ch.picard.ppimapbuilder.data.protein.ortholog.OrthologScoredProtein;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

		return atLeastOneAdditionMade;
	}

	public void addOrtholog(Protein entry, List<? extends Protein> orthologs) {
		UniProtEntry uniProtEntry = null;
		if (entry instanceof UniProtEntry) {
			uniProtEntry = (UniProtEntry) entry;
			add(uniProtEntry);
		} else
			uniProtEntry = findByPrimaryAccession(entry.getUniProtId());

		if (uniProtEntry == null)
			return;

		for (Protein ortholog : orthologs) {
			Map<String, UniProtEntry> entries = uniprotEntriesIndexed.get(ortholog.getOrganism());
			if (entries == null) {
				entries = Maps.newHashMap();
				uniprotEntriesIndexed.put(ortholog.getOrganism(), entries);
			}
			entries.put(ortholog.getUniProtId(), uniProtEntry);

			String strictId = ProteinUtils.UniProtId.extractStrictUniProtId(ortholog.getUniProtId());
			if(!strictId.equals(ortholog.getUniProtId())) {
				entries.put(strictId, uniProtEntry);
			}
		}
	}

// Path: src/main/java/ch/picard/ppimapbuilder/data/protein/ortholog/OrthologScoredProtein.java
// public class OrthologScoredProtein extends Protein {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private final Double score;
// 
// 	public OrthologScoredProtein(Protein protein, Double score) {
// 		super(protein.getUniProtId(), protein.getOrganism());
// 		this.score = score;
// 	}
// 
// 	public Double getScore() {
// 		return score;
// 	}
// 
// }


// Path: src/main/java/ch/picard/ppimapbuilder/data/protein/UniProtEntrySet.java
import java.util.Map;
import java.util.Set;
import ch.picard.ppimapbuilder.data.organism.Organism;
import ch.picard.ppimapbuilder.data.protein.ortholog.OrthologScoredProtein;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;


		return atLeastOneAdditionMade;
	}

	public void addOrtholog(Protein entry, List<? extends Protein> orthologs) {
		UniProtEntry uniProtEntry = null;
		if (entry instanceof UniProtEntry) {
			uniProtEntry = (UniProtEntry) entry;
			add(uniProtEntry);
		} else
			uniProtEntry = findByPrimaryAccession(entry.getUniProtId());

		if (uniProtEntry == null)
			return;

		for (Protein ortholog : orthologs) {
			Map<String, UniProtEntry> entries = uniprotEntriesIndexed.get(ortholog.getOrganism());
			if (entries == null) {
				entries = Maps.newHashMap();
				uniprotEntriesIndexed.put(ortholog.getOrganism(), entries);
			}
			entries.put(ortholog.getUniProtId(), uniProtEntry);

			String strictId = ProteinUtils.UniProtId.extractStrictUniProtId(ortholog.getUniProtId());
			if(!strictId.equals(ortholog.getUniProtId())) {
				entries.put(strictId, uniProtEntry);
			}
		}
	}

	public void addOrthologs(Map<Protein, Map<Organism, List<OrthologScoredProtein>>> orthologs) {