Skip to content

Commit 98d0b3c

Browse files
committed
Release 3.8.1: SMSD 6.9.1, MolGraph canonical SMILES, benchmark refresh
1 parent 3abaa85 commit 98d0b3c

4 files changed

Lines changed: 21 additions & 21 deletions

File tree

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
Introduction
88
============
99

10-
`Reaction Decoder Tool (RDT) v3.8.0`
10+
`Reaction Decoder Tool (RDT) v3.8.1`
1111
--------------------------------------
1212

1313
**Toolkit-agnostic reaction mapping engine** with CDK adapter. Deterministic, no training data required.
@@ -18,7 +18,7 @@ Published tools are scored on **chemically equivalent** atom mapping — whether
1818

1919
| Tool | Chemically Equivalent Atom-Map | Bond-Change Exact | Mol-Map Exact | Strict Atom-Index Exact | Deterministic |
2020
|------|-------------------------------|-------------------|---------------|------------------------|---------------|
21-
| **RDT v3.8.0** | **99.2%** | **99.2%** | **75.6%** | 22.8% | **Yes** |
21+
| **RDT v3.8.1** | **99.2%** | **99.2%** | **76.8%** | 19.6% | **Yes** |
2222
| RXNMapper | 83.74%† | - | - | - | No |
2323
| RDTool (published) | 76.18%† | - | - | - | Yes |
2424
| ChemAxon | 70.45%† | - | - | - | Yes |
@@ -133,7 +133,7 @@ The package namespace has changed from `uk.ac.ebi` to `com.bioinceptionlabs` in
133133
<!-- Old (v2.x) -->
134134
<groupId>uk.ac.ebi.rdt</groupId>
135135

136-
<!-- New (v3.8.0+) -->
136+
<!-- New (v3.8.1+) -->
137137
<groupId>com.bioinceptionlabs</groupId>
138138
```
139139

@@ -207,7 +207,7 @@ Sub-commands
207207
`AAM using SMILES`
208208

209209
```
210-
java -jar rdt-3.8.0-jar-with-dependencies.jar -Q SMI -q "CC(O)CC(=O)OC(C)CC(O)=O.O[H]>>[H]OC(=O)CC(C)O.CC(O)CC(O)=O" -g -c -j AAM -f TEXT
210+
java -jar rdt-3.8.1-jar-with-dependencies.jar -Q SMI -q "CC(O)CC(=O)OC(C)CC(O)=O.O[H]>>[H]OC(=O)CC(C)O.CC(O)CC(O)=O" -g -c -j AAM -f TEXT
211211
```
212212

213213
`Perform AAM` for Transporters
@@ -216,14 +216,14 @@ Sub-commands
216216
`AAM using SMILES` (accept mapping with no bond changes -b)
217217

218218
```
219-
java -jar rdt-3.8.0-jar-with-dependencies.jar -Q SMI -q "O=C(O)C(N)CC(=O)N.O=C(O)C(N)CS>>C(N)(CC(=O)N)C(=O)O.O=C(O)C(N)CS" -b -g -c -j AAM -f TEXT
219+
java -jar rdt-3.8.1-jar-with-dependencies.jar -Q SMI -q "O=C(O)C(N)CC(=O)N.O=C(O)C(N)CS>>C(N)(CC(=O)N)C(=O)O.O=C(O)C(N)CS" -b -g -c -j AAM -f TEXT
220220
```
221221

222222
`Annotate Reaction using SMILES`
223223
---------------------------------
224224

225225
```
226-
java -jar rdt-3.8.0-jar-with-dependencies.jar -Q SMI -q "CC(O)CC(=O)OC(C)CC(O)=O.O[H]>>[H]OC(=O)CC(C)O.CC(O)CC(O)=O" -g -c -j ANNOTATE -f XML
226+
java -jar rdt-3.8.1-jar-with-dependencies.jar -Q SMI -q "CC(O)CC(=O)OC(C)CC(O)=O.O[H]>>[H]OC(=O)CC(C)O.CC(O)CC(O)=O" -g -c -j ANNOTATE -f XML
227227
```
228228

229229

@@ -233,12 +233,12 @@ Sub-commands
233233
`Compare Reactions using SMILES with precomputed AAM mappings`
234234

235235
```
236-
java -jar rdt-3.8.0-jar-with-dependencies.jar -Q RXN -q example/ReactionDecoder_mapped.rxn -T RXN -t example/ReactionDecoder_mapped.rxn -j COMPARE -f BOTH -u
236+
java -jar rdt-3.8.1-jar-with-dependencies.jar -Q RXN -q example/ReactionDecoder_mapped.rxn -T RXN -t example/ReactionDecoder_mapped.rxn -j COMPARE -f BOTH -u
237237
```
238238

239239

240240
`Compare Reactions using RXN files`
241241

242242
```
243-
java -jar rdt-3.8.0-jar-with-dependencies.jar -Q RXN -q example/ReactionDecoder_mapped.rxn -T RXN -t example/ReactionDecoder_mapped.rxn -j COMPARE -f BOTH
243+
java -jar rdt-3.8.1-jar-with-dependencies.jar -Q RXN -q example/ReactionDecoder_mapped.rxn -T RXN -t example/ReactionDecoder_mapped.rxn -j COMPARE -f BOTH
244244
```

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>com.bioinceptionlabs</groupId>
55
<artifactId>rdt</artifactId>
66
<description>Reaction Decoder Tool</description>
7-
<version>3.8.0</version>
7+
<version>3.8.1</version>
88
<packaging>jar</packaging>
99
<properties>
1010
<jdk.version>21</jdk.version>
@@ -185,7 +185,7 @@
185185
<dependency>
186186
<groupId>com.bioinceptionlabs</groupId>
187187
<artifactId>smsd</artifactId>
188-
<version>6.9.0</version>
188+
<version>6.9.1</version>
189189
</dependency>
190190

191191
<!-- https://mvnrepository.com/artifact/commons-cli/commons-cli -->
@@ -226,7 +226,7 @@
226226
<plugin>
227227
<groupId>org.apache.maven.plugins</groupId>
228228
<artifactId>maven-assembly-plugin</artifactId>
229-
<version>3.8.0</version>
229+
<version>3.8.1</version>
230230
<configuration>
231231
<descriptorRefs>
232232
<descriptorRef>jar-with-dependencies</descriptorRef>

reports/golden-benchmark-report.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Golden Benchmark Report
22

3-
Release: RDT v3.8.0
3+
Release: RDT v3.8.1
44

5-
Date: 2026-04-03
5+
Date: 2026-04-03 (v3.8.1)
66

77
Dataset: Lin et al. 2022 golden dataset
88

@@ -34,7 +34,7 @@ mvn -q -Dtest=GoldenDatasetBenchmarkTest -Dgolden.max=250 test
3434
|------|-----------------|---------------|----------------|-------------------------------|-------------------|-------------------------|------------------------|-----------------------|----------------------|---------------------|-------|
3535
| `20` | `20/20 (100.0%)` | `11/20 (55.0%)` | `2/20 (10.0%)` | `20/20 (100.0%)` | `20/20 (100.0%)` | `20/20 (100.0%)` | `20/20 (100.0%)` | `20/20 (100.0%)` | `870/870 (100.0%)` | `0/20 (0.0%)` | `2.3 rxn/sec` |
3636
| `100` | `100/100 (100.0%)` | `71/100 (71.0%)` | `27/100 (27.0%)` | `100/100 (100.0%)` | `100/100 (100.0%)` | `100/100 (100.0%)` | `100/100 (100.0%)` | `100/100 (100.0%)` | `4509/4509 (100.0%)` | `0/100 (0.0%)` | `4.3 rxn/sec` |
37-
| `250` | `250/250 (100.0%)` | `189/250 (75.6%)` | `57/250 (22.8%)` | `248/250 (99.2%)` | `248/250 (99.2%)` | `248/250 (99.2%)` | `248/250 (99.2%)` | `248/250 (99.2%)` | `11747/11769 (99.8%)` | `2/250 (0.8%)` | `2.8 rxn/sec` |
37+
| `250` | `250/250 (100.0%)` | `192/250 (76.8%)` | `49/250 (19.6%)` | `248/250 (99.2%)` | `248/250 (99.2%)` | `248/250 (99.2%)` | `248/250 (99.2%)` | `248/250 (99.2%)` | `11747/11769 (99.8%)` | `2/250 (0.8%)` | `2.3 rxn/sec` |
3838

3939
## Interpretation
4040

src/main/java/com/bioinceptionlabs/reactionblast/mapping/GraphMatcher.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.openscience.cdk.interfaces.IMapping;
4545
import org.openscience.cdk.interfaces.IReaction;
4646
import org.openscience.cdk.silent.SilentChemObjectBuilder;
47+
import com.bioinception.smsd.core.MolGraph;
4748
import org.openscience.cdk.smiles.SmiFlavor;
4849
import org.openscience.cdk.smiles.SmilesGenerator;
4950
import org.openscience.cdk.tools.ILoggingTool;
@@ -266,26 +267,25 @@ public static Collection<MCSSolution> matcher(Holder mh) throws Exception {
266267
}
267268

268269
/*
269-
* Pre-compute canonical SMILES for identity detection.
270+
* Pre-compute canonical SMILES for identity detection using SMSD
271+
* MolGraph (stereo-aware, independent of CDK SmilesGenerator).
270272
*/
271-
SmilesGenerator canonSmigen = new SmilesGenerator(
272-
SmiFlavor.Canonical | SmiFlavor.Stereo);
273273
Map<Integer, String> eductSmiles = new TreeMap<>();
274274
for (int i = 0; i < eductCount; i++) {
275275
IAtomContainer e = reactionStructureInformation.getEduct(i);
276276
if (e != null && e.getAtomCount() > 0) {
277277
harmonizeForSmsd(e);
278-
try { eductSmiles.put(i, canonSmigen.create(e)); }
279-
catch (CDKException | RuntimeException ex) { eductSmiles.put(i, ""); }
278+
try { eductSmiles.put(i, new MolGraph(e).toCanonicalSmiles()); }
279+
catch (RuntimeException ex) { eductSmiles.put(i, ""); }
280280
}
281281
}
282282
Map<Integer, String> productSmiles = new TreeMap<>();
283283
for (int j = 0; j < productCount; j++) {
284284
IAtomContainer p = reactionStructureInformation.getProduct(j);
285285
if (p != null && p.getAtomCount() > 0) {
286286
harmonizeForSmsd(p);
287-
try { productSmiles.put(j, canonSmigen.create(p)); }
288-
catch (CDKException | RuntimeException ex) { productSmiles.put(j, ""); }
287+
try { productSmiles.put(j, new MolGraph(p).toCanonicalSmiles()); }
288+
catch (RuntimeException ex) { productSmiles.put(j, ""); }
289289
}
290290
}
291291

0 commit comments

Comments
 (0)