X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fsurfacing%2FBasicCombinableDomains.java;h=c04333c3cba78f990121aa4e3114b46baa3e3530;hb=d4d61f9d2969283e821f650d031c169899fb3870;hp=300a4ed8aabc505115f4d626d51a78ea43f1126f;hpb=656be28debec520e0e35a8b311114398a40ea366;p=jalview.git diff --git a/forester/java/src/org/forester/surfacing/BasicCombinableDomains.java b/forester/java/src/org/forester/surfacing/BasicCombinableDomains.java index 300a4ed..c04333c 100644 --- a/forester/java/src/org/forester/surfacing/BasicCombinableDomains.java +++ b/forester/java/src/org/forester/surfacing/BasicCombinableDomains.java @@ -27,34 +27,35 @@ package org.forester.surfacing; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import org.forester.protein.BinaryDomainCombination; -import org.forester.protein.DomainId; import org.forester.species.Species; -import org.forester.util.DescriptiveStatistics; +import org.forester.util.ForesterUtil; public class BasicCombinableDomains implements CombinableDomains { - final private DomainId _key_domain; - private int _key_domain_count; - private int _key_domain_proteins_count; - final private Species _species; - final private TreeMap _combining_domains; - private DescriptiveStatistics _key_domain_confidence_statistics; + final private String _key_domain; + private int _key_domain_count; + final private Species _species; + final private TreeMap _combining_domains; + final private Set _proteins_with_key_domain; - public BasicCombinableDomains( final DomainId key_domain, final Species species ) { + public BasicCombinableDomains( final String key_domain, final Species species ) { _key_domain = key_domain; _species = species; - _combining_domains = new TreeMap(); - init(); + _combining_domains = new TreeMap(); + _proteins_with_key_domain = new HashSet(); + _key_domain_count = 0; } @Override - public void addCombinableDomain( final DomainId protein_domain ) { + public void addCombinableDomain( final String protein_domain ) { if ( getCombiningDomains().containsKey( protein_domain ) ) { getCombiningDomains().put( protein_domain, getCombiningDomains().get( protein_domain ) + 1 ); } @@ -64,8 +65,16 @@ public class BasicCombinableDomains implements CombinableDomains { } @Override - public List getAllDomains() { - final List domains = getCombinableDomains(); + public void addKeyDomainProtein( final String protein ) { + if ( ForesterUtil.isEmpty( protein ) ) { + throw new IllegalArgumentException( "attempt to add null or empty protein" ); + } + getKeyDomainProteins().add( protein ); + } + + @Override + public List getAllDomains() { + final List domains = getCombinableDomains(); if ( !domains.contains( getKeyDomain() ) ) { domains.add( getKeyDomain() ); } @@ -73,19 +82,19 @@ public class BasicCombinableDomains implements CombinableDomains { } @Override - public List getCombinableDomains() { - final List domains = new ArrayList( getNumberOfCombinableDomains() ); - for( final DomainId domain : getCombiningDomains().keySet() ) { + public List getCombinableDomains() { + final List domains = new ArrayList( getNumberOfCombinableDomains() ); + for( final String domain : getCombiningDomains().keySet() ) { domains.add( domain ); } return domains; } @Override - public SortedMap getCombinableDomainsIds() { - final SortedMap ids = new TreeMap(); - for( final DomainId domain : getCombiningDomains().keySet() ) { - final DomainId pd = domain; + public SortedMap getCombinableDomainsIds() { + final SortedMap ids = new TreeMap(); + for( final String domain : getCombiningDomains().keySet() ) { + final String pd = domain; ids.put( pd, getCombiningDomains().get( pd ) ); } return ids; @@ -94,8 +103,8 @@ public class BasicCombinableDomains implements CombinableDomains { @Override public StringBuilder getCombiningDomainIdsAsStringBuilder() { final StringBuilder sb = new StringBuilder(); - for( final Iterator iter = getCombiningDomains().keySet().iterator(); iter.hasNext(); ) { - final DomainId key = iter.next(); + for( final Iterator iter = getCombiningDomains().keySet().iterator(); iter.hasNext(); ) { + final String key = iter.next(); sb.append( key.toString() ); sb.append( " [" ); final int count = getCombiningDomains().get( key ); @@ -108,28 +117,23 @@ public class BasicCombinableDomains implements CombinableDomains { return sb; } - protected TreeMap getCombiningDomains() { + protected TreeMap getCombiningDomains() { return _combining_domains; } @Override - public DomainId getKeyDomain() { + public String getKeyDomain() { return _key_domain; } @Override - public DescriptiveStatistics getKeyDomainConfidenceDescriptiveStatistics() { - return _key_domain_confidence_statistics; - } - - @Override public int getKeyDomainCount() { return _key_domain_count; } @Override public int getKeyDomainProteinsCount() { - return _key_domain_proteins_count; + return getKeyDomainProteins().size(); } @Override @@ -138,7 +142,7 @@ public class BasicCombinableDomains implements CombinableDomains { } @Override - public int getNumberOfProteinsExhibitingCombination( final DomainId protein_domain ) { + public int getNumberOfProteinsExhibitingCombination( final String protein_domain ) { if ( getCombiningDomains().containsKey( protein_domain ) ) { return getCombiningDomains().get( protein_domain ); } @@ -152,36 +156,20 @@ public class BasicCombinableDomains implements CombinableDomains { return _species; } - private void init() { - _key_domain_count = 0; - _key_domain_proteins_count = 0; - _key_domain_confidence_statistics = null; - } - @Override - public boolean isCombinable( final DomainId protein_domain ) { + public boolean isCombinable( final String protein_domain ) { return getCombiningDomains().containsKey( protein_domain ); } @Override - public void setKeyDomainConfidenceDescriptiveStatistics( final DescriptiveStatistics key_domain_confidence_statistics ) { - _key_domain_confidence_statistics = key_domain_confidence_statistics; - } - - @Override public void setKeyDomainCount( final int key_domain_count ) { _key_domain_count = key_domain_count; } @Override - public void setKeyDomainProteinsCount( final int key_domain_proteins_count ) { - _key_domain_proteins_count = key_domain_proteins_count; - } - - @Override public List toBinaryDomainCombinations() { final List binary_combinations = new ArrayList( getNumberOfCombinableDomains() ); - for( final DomainId domain : getCombiningDomains().keySet() ) { + for( final String domain : getCombiningDomains().keySet() ) { binary_combinations.add( new BasicBinaryDomainCombination( getKeyDomain(), domain ) ); } return binary_combinations; @@ -201,4 +189,9 @@ public class BasicCombinableDomains implements CombinableDomains { sb.append( getCombiningDomainIdsAsStringBuilder() ); return sb.toString(); } + + @Override + public Set getKeyDomainProteins() { + return _proteins_with_key_domain; + } }