X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fsurfacing%2FBasicCombinableDomains.java;h=02a8278ec1d7ad1a7612708f86ff59c8583b3340;hb=612e51e63eb66025a04439fc380384a945a4a30f;hp=9f108cc1d8122b7530a69265a4767d6f9da0a3fc;hpb=48f7a89be9d34f1930a1f863e608235cc27184c5;p=jalview.git diff --git a/forester/java/src/org/forester/surfacing/BasicCombinableDomains.java b/forester/java/src/org/forester/surfacing/BasicCombinableDomains.java index 9f108cc..02a8278 100644 --- a/forester/java/src/org/forester/surfacing/BasicCombinableDomains.java +++ b/forester/java/src/org/forester/surfacing/BasicCombinableDomains.java @@ -6,7 +6,7 @@ // Copyright (C) 2008-2009 Christian M. Zmasek // Copyright (C) 2008-2009 Burnham Institute for Medical Research // All rights reserved -// +// // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either @@ -16,41 +16,46 @@ // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. -// +// // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA // // Contact: phylosoft @ gmail . com -// WWW: www.phylosoft.org/forester +// WWW: https://sites.google.com/site/cmzmasek/home/software/forester 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.util.DescriptiveStatistics; +import org.forester.protein.BinaryDomainCombination; +import org.forester.species.Species; +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 TreeMap _combining_domains; + final private String _key_domain; + private int _key_domain_count; + final private Set _proteins_with_key_domain; + final private Species _species; - 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; } - public void addCombinableDomain( final DomainId protein_domain ) { + @Override + public void addCombinableDomain( final String protein_domain ) { if ( getCombiningDomains().containsKey( protein_domain ) ) { getCombiningDomains().put( protein_domain, getCombiningDomains().get( protein_domain ) + 1 ); } @@ -59,35 +64,47 @@ public class BasicCombinableDomains implements CombinableDomains { } } - public List getAllDomains() { - final List domains = getCombinableDomains(); + @Override + 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() ); } return domains; } - public List getCombinableDomains() { - final List domains = new ArrayList( getNumberOfCombinableDomains() ); - for( final DomainId domain : getCombiningDomains().keySet() ) { + @Override + public List getCombinableDomains() { + final List domains = new ArrayList( getNumberOfCombinableDomains() ); + for( final String domain : getCombiningDomains().keySet() ) { domains.add( domain ); } return domains; } - public SortedMap getCombinableDomainsIds() { - final SortedMap ids = new TreeMap(); - for( final DomainId domain : getCombiningDomains().keySet() ) { - final DomainId pd = domain; + @Override + 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; } + @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 ); @@ -100,31 +117,33 @@ public class BasicCombinableDomains implements CombinableDomains { return sb; } - protected TreeMap getCombiningDomains() { - return _combining_domains; - } - - public DomainId getKeyDomain() { + @Override + public String getKeyDomain() { return _key_domain; } - public DescriptiveStatistics getKeyDomainConfidenceDescriptiveStatistics() { - return _key_domain_confidence_statistics; - } - + @Override public int getKeyDomainCount() { return _key_domain_count; } + @Override + public Set getKeyDomainProteins() { + return _proteins_with_key_domain; + } + + @Override public int getKeyDomainProteinsCount() { - return _key_domain_proteins_count; + return getKeyDomainProteins().size(); } + @Override public int getNumberOfCombinableDomains() { return _combining_domains.size(); } - public int getNumberOfProteinsExhibitingCombination( final DomainId protein_domain ) { + @Override + public int getNumberOfProteinsExhibitingCombination( final String protein_domain ) { if ( getCombiningDomains().containsKey( protein_domain ) ) { return getCombiningDomains().get( protein_domain ); } @@ -133,37 +152,27 @@ public class BasicCombinableDomains implements CombinableDomains { } } + @Override public Species getSpecies() { return _species; } - private void init() { - _key_domain_count = 0; - _key_domain_proteins_count = 0; - _key_domain_confidence_statistics = null; - } - - public boolean isCombinable( final DomainId protein_domain ) { + @Override + public boolean isCombinable( final String protein_domain ) { return getCombiningDomains().containsKey( protein_domain ); } - 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; } - 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() ) { - binary_combinations.add( new BasicBinaryDomainCombination( getKeyDomain(), domain ) ); + for( final String domain : getCombiningDomains().keySet() ) { + // binary_combinations.add( new BasicBinaryDomainCombination( getKeyDomain(), domain ) ); + binary_combinations.add( BasicBinaryDomainCombination.obtainInstance( getKeyDomain(), domain ) ); } return binary_combinations; } @@ -182,4 +191,8 @@ public class BasicCombinableDomains implements CombinableDomains { sb.append( getCombiningDomainIdsAsStringBuilder() ); return sb.toString(); } + + protected TreeMap getCombiningDomains() { + return _combining_domains; + } }