X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fsurfacing%2FDomainArchitectureBasedGenomeSimilarityCalculator.java;h=a61ba305a8bce02ff46b0666e5e21bdc9238997e;hb=1556760e353eae5745f1ae9471a64f0089554639;hp=caf6cb06c68d722c1af567b927e10d73322d6c4f;hpb=87d34f343d0262cd0c009c6f1da058a5a217bc64;p=jalview.git diff --git a/forester/java/src/org/forester/surfacing/DomainArchitectureBasedGenomeSimilarityCalculator.java b/forester/java/src/org/forester/surfacing/DomainArchitectureBasedGenomeSimilarityCalculator.java index caf6cb0..a61ba30 100644 --- a/forester/java/src/org/forester/surfacing/DomainArchitectureBasedGenomeSimilarityCalculator.java +++ b/forester/java/src/org/forester/surfacing/DomainArchitectureBasedGenomeSimilarityCalculator.java @@ -35,18 +35,18 @@ public class DomainArchitectureBasedGenomeSimilarityCalculator { public static final double MAX_SIMILARITY_SCORE = 1.0; public static final double MIN_SIMILARITY_SCORE = 0.0; + private Set _all_binary_domain_combinations; + private Set _all_domains; + private boolean _allow_domains_to_be_ignored; + private Set _binary_domain_combinations_specific_to_0; + private Set _binary_domain_combinations_specific_to_1; final private GenomeWideCombinableDomains _combinable_domains_genome_0; final private GenomeWideCombinableDomains _combinable_domains_genome_1; private Set _domain_ids_to_ignore; - private boolean _allow_domains_to_be_ignored; - private Set _all_domains; - private Set _shared_domains; private Set _domains_specific_to_0; private Set _domains_specific_to_1; - private Set _all_binary_domain_combinations; private Set _shared_binary_domain_combinations; - private Set _binary_domain_combinations_specific_to_0; - private Set _binary_domain_combinations_specific_to_1; + private Set _shared_domains; public DomainArchitectureBasedGenomeSimilarityCalculator( final GenomeWideCombinableDomains combinable_domains_genome_0, final GenomeWideCombinableDomains combinable_domains_genome_1 ) { @@ -115,17 +115,6 @@ public class DomainArchitectureBasedGenomeSimilarityCalculator { setDomainIdsToIgnore( new HashSet() ); } - private void forceRecalculation() { - _all_domains = null; - _shared_domains = null; - _domains_specific_to_0 = null; - _domains_specific_to_1 = null; - _all_binary_domain_combinations = null; - _shared_binary_domain_combinations = null; - _binary_domain_combinations_specific_to_0 = null; - _binary_domain_combinations_specific_to_1 = null; - } - /** * Does not return binary combinations which contain one or two domains * to be ignored -- if ignoring is allowed. @@ -169,30 +158,6 @@ public class DomainArchitectureBasedGenomeSimilarityCalculator { return _all_domains; } - private Set getBinaryDomainCombinationsSpecificToGenome( final boolean specific_to_genome_0 ) { - final Set specific = new HashSet(); - final Set bc0 = getCombinableDomainsGenome0().toBinaryDomainCombinations(); - final Set bc1 = getCombinableDomainsGenome1().toBinaryDomainCombinations(); - if ( specific_to_genome_0 ) { - for( final BinaryDomainCombination binary_domain_combination0 : bc0 ) { - if ( !bc1.contains( binary_domain_combination0 ) ) { - specific.add( binary_domain_combination0 ); - } - } - } - else { - for( final BinaryDomainCombination binary_domain_combination1 : bc1 ) { - if ( !bc0.contains( binary_domain_combination1 ) ) { - specific.add( binary_domain_combination1 ); - } - } - } - if ( isAllowDomainsToBeIgnored() && !getDomainIdsToIgnore().isEmpty() ) { - return pruneBinaryCombinations( specific ); - } - return specific; - } - public Set getBinaryDomainCombinationsSpecificToGenome0() { if ( _binary_domain_combinations_specific_to_0 == null ) { _binary_domain_combinations_specific_to_0 = getBinaryDomainCombinationsSpecificToGenome( true ); @@ -207,42 +172,6 @@ public class DomainArchitectureBasedGenomeSimilarityCalculator { return _binary_domain_combinations_specific_to_1; } - private GenomeWideCombinableDomains getCombinableDomainsGenome0() { - return _combinable_domains_genome_0; - } - - private GenomeWideCombinableDomains getCombinableDomainsGenome1() { - return _combinable_domains_genome_1; - } - - private Set getDomainIdsToIgnore() { - return _domain_ids_to_ignore; - } - - private Set getDomainsSpecificToGenome( final boolean specific_to_genome_0 ) { - final Set specific = new HashSet(); - final Set d0 = getCombinableDomainsGenome0().getAllDomainIds(); - final Set d1 = getCombinableDomainsGenome1().getAllDomainIds(); - if ( specific_to_genome_0 ) { - for( final String domain0 : d0 ) { - if ( !d1.contains( domain0 ) ) { - specific.add( domain0 ); - } - } - } - else { - for( final String domain1 : d1 ) { - if ( !d0.contains( domain1 ) ) { - specific.add( domain1 ); - } - } - } - if ( isAllowDomainsToBeIgnored() && !getDomainIdsToIgnore().isEmpty() ) { - return pruneDomains( specific ); - } - return specific; - } - public Set getDomainsSpecificToGenome0() { if ( _domains_specific_to_0 == null ) { _domains_specific_to_0 = getDomainsSpecificToGenome( true ); @@ -293,6 +222,87 @@ public class DomainArchitectureBasedGenomeSimilarityCalculator { return _shared_domains; } + public void setAllowDomainsToBeIgnored( final boolean allow_domains_to_be_ignored ) { + forceRecalculation(); + _allow_domains_to_be_ignored = allow_domains_to_be_ignored; + } + + void setDomainIdsToIgnore( final Set domain_ids_to_ignore ) { + forceRecalculation(); + _domain_ids_to_ignore = domain_ids_to_ignore; + } + + private void forceRecalculation() { + _all_domains = null; + _shared_domains = null; + _domains_specific_to_0 = null; + _domains_specific_to_1 = null; + _all_binary_domain_combinations = null; + _shared_binary_domain_combinations = null; + _binary_domain_combinations_specific_to_0 = null; + _binary_domain_combinations_specific_to_1 = null; + } + + private Set getBinaryDomainCombinationsSpecificToGenome( final boolean specific_to_genome_0 ) { + final Set specific = new HashSet(); + final Set bc0 = getCombinableDomainsGenome0().toBinaryDomainCombinations(); + final Set bc1 = getCombinableDomainsGenome1().toBinaryDomainCombinations(); + if ( specific_to_genome_0 ) { + for( final BinaryDomainCombination binary_domain_combination0 : bc0 ) { + if ( !bc1.contains( binary_domain_combination0 ) ) { + specific.add( binary_domain_combination0 ); + } + } + } + else { + for( final BinaryDomainCombination binary_domain_combination1 : bc1 ) { + if ( !bc0.contains( binary_domain_combination1 ) ) { + specific.add( binary_domain_combination1 ); + } + } + } + if ( isAllowDomainsToBeIgnored() && !getDomainIdsToIgnore().isEmpty() ) { + return pruneBinaryCombinations( specific ); + } + return specific; + } + + private GenomeWideCombinableDomains getCombinableDomainsGenome0() { + return _combinable_domains_genome_0; + } + + private GenomeWideCombinableDomains getCombinableDomainsGenome1() { + return _combinable_domains_genome_1; + } + + private Set getDomainIdsToIgnore() { + return _domain_ids_to_ignore; + } + + private Set getDomainsSpecificToGenome( final boolean specific_to_genome_0 ) { + final Set specific = new HashSet(); + final Set d0 = getCombinableDomainsGenome0().getAllDomainIds(); + final Set d1 = getCombinableDomainsGenome1().getAllDomainIds(); + if ( specific_to_genome_0 ) { + for( final String domain0 : d0 ) { + if ( !d1.contains( domain0 ) ) { + specific.add( domain0 ); + } + } + } + else { + for( final String domain1 : d1 ) { + if ( !d0.contains( domain1 ) ) { + specific.add( domain1 ); + } + } + } + if ( isAllowDomainsToBeIgnored() && !getDomainIdsToIgnore().isEmpty() ) { + return pruneDomains( specific ); + } + return specific; + } + private void init() { deleteAllDomainIdsToIgnore(); setAllowDomainsToBeIgnored( false ); @@ -322,14 +332,4 @@ public class DomainArchitectureBasedGenomeSimilarityCalculator { } return pruned; } - - public void setAllowDomainsToBeIgnored( final boolean allow_domains_to_be_ignored ) { - forceRecalculation(); - _allow_domains_to_be_ignored = allow_domains_to_be_ignored; - } - - void setDomainIdsToIgnore( final Set domain_ids_to_ignore ) { - forceRecalculation(); - _domain_ids_to_ignore = domain_ids_to_ignore; - } } \ No newline at end of file