X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fsurfacing%2FCountsBasedPairwiseDomainSimilarity.java;h=8439f4c5ba1e8f4d83fa84d9baf6f3fa217c57aa;hb=d4d61f9d2969283e821f650d031c169899fb3870;hp=b1abfeb2d3c5692841f99e10a7e83b68223b2336;hpb=48f7a89be9d34f1930a1f863e608235cc27184c5;p=jalview.git diff --git a/forester/java/src/org/forester/surfacing/CountsBasedPairwiseDomainSimilarity.java b/forester/java/src/org/forester/surfacing/CountsBasedPairwiseDomainSimilarity.java index b1abfeb..8439f4c 100644 --- a/forester/java/src/org/forester/surfacing/CountsBasedPairwiseDomainSimilarity.java +++ b/forester/java/src/org/forester/surfacing/CountsBasedPairwiseDomainSimilarity.java @@ -7,7 +7,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 @@ -17,20 +17,20 @@ // 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; public class CountsBasedPairwiseDomainSimilarity implements PairwiseDomainSimilarity { - private final double _score; - private final int _copy_number_difference; + private final short _copy_number_difference; + private final short _counts_sum; /** * counts_difference: (counts for domain 1) minus (counts for domain 2). @@ -39,27 +39,28 @@ public class CountsBasedPairwiseDomainSimilarity implements PairwiseDomainSimila * @param counts_difference value of domain_1 minus value of domain_2 * @param counts_sum */ - public CountsBasedPairwiseDomainSimilarity( final int counts_difference, final int counts_sum ) { + public CountsBasedPairwiseDomainSimilarity( final short counts_difference, final short counts_sum ) { if ( counts_sum <= 0 ) { throw new IllegalArgumentException( "attempt to use copy sum of less than or equal to 0: " + counts_sum ); } - _copy_number_difference = counts_difference; - final int abs_copy_number_difference = Math.abs( counts_difference ); - if ( abs_copy_number_difference > counts_sum ) { + if ( Math.abs( counts_difference ) > counts_sum ) { throw new IllegalArgumentException( "attempt to use absolute copy number difference larger than copy number sum" ); } - _score = 1.0 - ( double ) abs_copy_number_difference / counts_sum; + _copy_number_difference = counts_difference; + _counts_sum = counts_sum; } /** * Returns (counts for domain 1) minus (counts for domain 2). * */ + @Override public int getDifferenceInCounts() { return _copy_number_difference; } + @Override public double getSimilarityScore() { - return _score; + return ( 1.0 - ( ( double ) Math.abs( _copy_number_difference ) / _counts_sum ) ); } }