Skip to content

Commit 95b6640

Browse files
committed
Remove 2750 lines dead code, move optional files to optional package
Profiling (JaCoCo) showed 57.5% of code never executed during tests. Removed from EBIMatrix: 5 matrix decompositions (Cholesky, Eigenvalue, LU, QR, SVD) + solve/inverse/det/rank methods — zero external callers. Removed from MoleculeTools: Suffix, EBIDoubleUtility, EBIMolSplitter. Removed from PatternFingerprinter: PatternComparators. Moved to optional/ package (0% coverage, not core): - Permutor, AtomContainerAtomPermutor, ReactionSimilarityTool EBIMatrix: 4075 → 1747 lines. All 135 tests pass. Co-Authored-By: Syed Asad Rahman <asad.rahman@bioinceptionlabs.com>
1 parent 706cf96 commit 95b6640

9 files changed

Lines changed: 56 additions & 2804 deletions

File tree

src/main/java/com/bioinceptionlabs/aamtool/Annotator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
import com.bioinceptionlabs.reactionblast.mechanism.BondChangeCalculator;
5252
import com.bioinceptionlabs.reactionblast.mechanism.MappingSolution;
5353
import com.bioinceptionlabs.reactionblast.mechanism.ReactionMechanismTool;
54-
import static com.bioinceptionlabs.reactionblast.tools.ReactionSimilarityTool.getSimilarity;
54+
import static com.bioinceptionlabs.reactionblast.optional.ReactionSimilarityTool.getSimilarity;
5555
import com.bioinceptionlabs.reactionblast.tools.StandardizeReaction;
5656

5757
/**

src/main/java/com/bioinceptionlabs/reactionblast/fingerprints/PatternFingerprinter.java

Lines changed: 26 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -347,8 +347,32 @@ public void setFingerprintID(String fingerprintID) {
347347
*/
348348
@Override
349349
public int compare(IPatternFingerprinter o1, IPatternFingerprinter o2) {
350-
Comparator<IPatternFingerprinter> comparator = PatternComparators.overallComparator();
351-
return comparator.compare(o1, o2);
350+
int len1 = o1.getFeatureCount();
351+
int len2 = o2.getFeatureCount();
352+
if (!o1.getFingerprintID().equals(o2.getFingerprintID())) {
353+
return o1.getFingerprintID().compareTo(o2.getFingerprintID());
354+
}
355+
int n = min(len1, len2);
356+
if (len1 == len2) {
357+
int pos = 0;
358+
while (n-- != 0) {
359+
try {
360+
if (!o1.getFeature(pos).equals(o2.getFeature(pos))) {
361+
return o1.getFeature(pos).compareTo(o2.getFeature(pos));
362+
} else if (!o1.getFeature(pos).equals(o2.getFeature(pos))) {
363+
double v1 = o1.getWeight(pos);
364+
double v2 = o2.getWeight(pos);
365+
if (v1 != v2) {
366+
return (int) (max(v1, v2) - min(v1, v2));
367+
}
368+
}
369+
} catch (CDKException ex) {
370+
LOGGER.error(SEVERE, null, ex);
371+
}
372+
pos++;
373+
}
374+
}
375+
return max(len1, len2) - n;
352376
}
353377

354378
/**
@@ -574,72 +598,4 @@ public void setValue(double weight) {
574598

575599

576600

577-
/**
578-
* @contact Syed Asad Rahman, BioInception.
579-
* @author Syed Asad Rahman <asad.rahman@bioinceptionlabs.com>
580-
*/
581-
public static class PatternComparators {
582-
583-
private static final ILoggingTool LOGGER
584-
= LoggingToolFactory.createLoggingTool(PatternComparators.class);
585-
586-
public static Comparator<IPatternFingerprinter> overallComparator() {
587-
return (IPatternFingerprinter o1, IPatternFingerprinter o2) -> {
588-
int len1 = o1.getFeatureCount();
589-
int len2 = o2.getFeatureCount();
590-
if (!o1.getFingerprintID().equals(o2.getFingerprintID())) {
591-
return o1.getFingerprintID().compareTo(o2.getFingerprintID());
592-
}
593-
int n = min(len1, len2);
594-
if (len1 == len2) {
595-
int pos = 0;
596-
while (n-- != 0) {
597-
try {
598-
if (!o1.getFeature(pos).equals(o2.getFeature(pos))) {
599-
return o1.getFeature(pos).compareTo(o2.getFeature(pos));
600-
} else if (!o1.getFeature(pos).equals(o2.getFeature(pos))) {
601-
double v1 = o1.getWeight(pos);
602-
double v2 = o2.getWeight(pos);
603-
if (v1 != v2) {
604-
return (int) (max(v1, v2) - min(v1, v2));
605-
}
606-
}
607-
} catch (CDKException ex) {
608-
LOGGER.error(SEVERE, null, ex);
609-
}
610-
pos++;
611-
}
612-
}
613-
return max(len1, len2) - n;
614-
};
615-
}
616-
617-
public static Comparator<IPatternFingerprinter> dataComparator() {
618-
return (IPatternFingerprinter o1, IPatternFingerprinter o2) -> {
619-
int len1 = o1.getFeatureCount();
620-
int len2 = o2.getFeatureCount();
621-
if (!o1.getFingerprintID().equals(o2.getFingerprintID())) {
622-
return o1.getFingerprintID().compareTo(o2.getFingerprintID());
623-
}
624-
int n = min(len1, len2);
625-
if (len1 == len2) {
626-
int pos = 0;
627-
while (n-- != 0) {
628-
double v1 = o1.getWeight(pos);
629-
double v2 = o2.getWeight(pos);
630-
if (v1 != v2) {
631-
return (int) (max(v1, v2) - min(v1, v2));
632-
}
633-
pos++;
634-
}
635-
}
636-
return max(len1, len2) - n;
637-
};
638-
}
639-
640-
private PatternComparators() {
641-
}
642-
}
643-
644-
645601
}

src/main/java/com/bioinceptionlabs/reactionblast/tools/AtomContainerAtomPermutor.java renamed to src/main/java/com/bioinceptionlabs/reactionblast/optional/AtomContainerAtomPermutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
1717
* MA 02110-1301 USA
1818
*/
19-
package com.bioinceptionlabs.reactionblast.tools;
19+
package com.bioinceptionlabs.reactionblast.optional;
2020

2121
import java.util.Iterator;
2222

src/main/java/com/bioinceptionlabs/reactionblast/tools/Permutor.java renamed to src/main/java/com/bioinceptionlabs/reactionblast/optional/Permutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
1717
* MA 02110-1301 USA
1818
*/
19-
package com.bioinceptionlabs.reactionblast.tools;
19+
package com.bioinceptionlabs.reactionblast.optional;
2020

2121
import static java.lang.Math.max;
2222
import static java.lang.System.arraycopy;

src/main/java/com/bioinceptionlabs/reactionblast/tools/ReactionSimilarityTool.java renamed to src/main/java/com/bioinceptionlabs/reactionblast/optional/ReactionSimilarityTool.java

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
1717
* MA 02110-1301 USA
1818
*/
19-
package com.bioinceptionlabs.reactionblast.tools;
19+
package com.bioinceptionlabs.reactionblast.optional;
2020

2121
import static java.lang.Double.parseDouble;
2222
import static java.lang.Math.log;
@@ -27,7 +27,7 @@
2727

2828
import org.openscience.cdk.exception.CDKException;
2929
import com.bioinceptionlabs.reactionblast.fingerprints.IPatternFingerprinter;
30-
import static com.bioinceptionlabs.reactionblast.tools.MoleculeTools.EBIDoubleUtility.append;
30+
import static java.lang.System.arraycopy;
3131

3232
/**
3333
* This tool finds reaction similarity and distance based on our in-house
@@ -583,6 +583,27 @@ private static double getPointWiseMutualInformation(double[] bondFeatures1, doub
583583
return MI;
584584
}
585585

586+
private static double[] append(double[] val1, double[] val2) throws CDKException {
587+
if (val1.length == 0 || val2.length == 0) {
588+
throw new CDKException("Index < 0: ");
589+
}
590+
double[] feature = new double[val1.length + val2.length];
591+
arraycopy(val1, 0, feature, 0, val1.length);
592+
arraycopy(val2, 0, feature, val1.length, val2.length);
593+
return feature;
594+
}
595+
596+
private static double[] append(double[] val1, double[] val2, double[] val3) throws CDKException {
597+
if (val1.length == 0 || val2.length == 0 || val3.length == 0) {
598+
throw new CDKException("Index < 0: ");
599+
}
600+
double[] feature = new double[val1.length + val2.length + val3.length];
601+
arraycopy(val1, 0, feature, 0, val1.length);
602+
arraycopy(val2, 0, feature, val1.length, val2.length);
603+
arraycopy(val3, 0, feature, val1.length + val2.length, val3.length);
604+
return feature;
605+
}
606+
586607
private ReactionSimilarityTool() {
587608
}
588609
}

src/main/java/com/bioinceptionlabs/reactionblast/signature/RBlastMoleculeSignature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
import signature.AbstractGraphSignature;
4949
import signature.AbstractVertexSignature;
5050
import signature.ColoredTree;
51-
import static com.bioinceptionlabs.reactionblast.tools.AtomContainerAtomPermutor.permute;
51+
import static com.bioinceptionlabs.reactionblast.optional.AtomContainerAtomPermutor.permute;
5252
import static java.lang.Integer.parseInt;
5353
import static java.lang.Math.PI;
5454
import static java.lang.Math.abs;

0 commit comments

Comments
 (0)