Hi Rajarshi,
I attach here the java file with the structures : BF5_MDL2 and BF5_MDL3
This java file contails other tests too, which you do not need.
To compile it remover everything except cdktestBF5
Best regards,
Adel.
Rajarshi Guha wrote:
Could you send the structures as attachments? Gmail is mangling the lines
On Mon, Oct 4, 2010 at 11:59 AM, Adel Golovin <[email protected]> wrote:
Hi Rajarshi,
In the test example both structures have single or double bonds.
There is no aromaticity given and this particular structure (BF5) does not
have aromatic rings.
The problem is that the isomorphism test gives a positive result whether the
fingerprints are different.
The difference between the data is that in the first one bonds are ordered
by the bonds order (double go first, then single) and in the second there is
no order.
Best regards,
Adel.
Rajarshi Guha wrote:
Hmm, does this problem get resolved if you explicitly perceive
aromaticity? The hashed FP considers aromatic bonds and so bond
ordering shouldn't affect the fp (but will if it only sees
single/double bonds)
On Mon, Oct 4, 2010 at 10:46 AM, Adel Golovin <[email protected]> wrote:
Hi Egon,
thank for looking into it.
The example with 1FH concern the aromaticity test and I'm going to
investigate it further.
Consider different fingerprints for isomorphic structures:
The structure is BF5:
http://www.ebi.ac.uk/pdbe-site/pdbemotif/chem/detail.jsp?code=BF5
The code below has two different MDL files representing the same
structure.
I tested these structures whether they are isomorphic using the
following code and generate the same fingerprints.
The result is that they are isomorphic but generate different
fingerprints.
The only difference between them is the order of bonds.
the code:
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Comparator;
import java.util.logging.Logger;
import org.junit.Test;
import org.openscience.cdk.exception.CDKException;
import org.openscience.cdk.fingerprint.Fingerprinter;
import org.openscience.cdk.isomorphism.UniversalIsomorphismTester;
public class FingerprintsTest {
static final Logger log = Logger.getAnonymousLogger();
String BF5_MDL2 =
"BF5\n" +
" -ISIS- 3D\n" +
"\n" +
" 26 29 0 0 0 0 0 0 0 0 1 V2000\n" +
" 1.3870 -0.9840 -0.0020 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 1.4580 3.3830 -1.1290 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 1.0220 0.3780 0.1280 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 0.3730 -2.0890 -0.0500 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -0.2940 0.7270 0.2360 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 1.6240 2.7830 0.2690 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 0.2990 2.8850 1.0310 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 5.4950 -1.7360 -0.3370 O 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 5.9860 0.2980 0.0110 O 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 3.0790 -2.6160 -0.2080 O 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -0.6550 2.0360 0.3820 O 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -1.0310 -1.5910 0.0620 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -1.3360 -0.2980 0.1960 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -3.2600 1.0700 -0.6250 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 5.1450 -0.5810 -0.1270 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -2.6810 0.0840 0.3000 N 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 3.3150 1.0580 0.0750 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 3.7210 -0.2520 -0.0410 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -5.4360 0.0600 -0.1210 N 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 2.7060 -1.3170 -0.0860 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 2.0030 1.3690 0.1540 N 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -3.5490 -0.4860 1.3420 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -4.8260 -1.0120 0.6780 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -6.7360 -0.3450 -0.6290 N 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -4.5480 0.4860 -1.2160 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -2.0390 -2.4900 0.0320 F 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 12 13 2 0 0 0 0\n" +
" 5 3 2 0 0 0 0\n" +
" 1 20 2 0 0 0 0\n" +
" 17 18 2 0 0 0 0\n" +
" 15 9 2 0 0 0 0\n" +
" 12 4 1 0 0 0 0\n" +
" 13 5 1 0 0 0 0\n" +
" 4 1 1 0 0 0 0\n" +
" 7 6 1 0 0 0 0\n" +
" 6 2 1 0 0 0 0\n" +
" 1 3 1 0 0 0 0\n" +
" 18 20 1 0 0 0 0\n" +
" 18 15 1 0 0 0 0\n" +
" 22 23 1 0 0 0 0\n" +
" 25 14 1 0 0 0 0\n" +
" 12 26 1 0 0 0 0\n" +
" 13 16 1 0 0 0 0\n" +
" 22 16 1 0 0 0 0\n" +
" 14 16 1 0 0 0 0\n" +
" 6 21 1 0 0 0 0\n" +
" 3 21 1 0 0 0 0\n" +
" 17 21 1 0 0 0 0\n" +
" 23 19 1 0 0 0 0\n" +
" 25 19 1 0 0 0 0\n" +
" 5 11 1 0 0 0 0\n" +
" 7 11 1 0 0 0 0\n" +
" 20 10 1 0 0 0 0\n" +
" 15 8 1 0 0 0 0\n" +
" 19 24 1 0 0 0 0\n" +
"M CHG 1 8 -1\n" +
"\n" +
"M END\n";
String BF5_MDL3 =
"BF5\n" +
" -ISIS- 3D\n" +
"\n" +
" 26 29 0 0 0 0 0 0 0 0 1 V2000\n" +
" 1.3870 -0.9840 -0.0020 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 1.4580 3.3830 -1.1290 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 1.0220 0.3780 0.1280 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 0.3730 -2.0890 -0.0500 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -0.2940 0.7270 0.2360 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 1.6240 2.7830 0.2690 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 0.2990 2.8850 1.0310 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 5.4950 -1.7360 -0.3370 O 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 5.9860 0.2980 0.0110 O 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 3.0790 -2.6160 -0.2080 O 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -0.6550 2.0360 0.3820 O 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -1.0310 -1.5910 0.0620 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -1.3360 -0.2980 0.1960 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -3.2600 1.0700 -0.6250 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 5.1450 -0.5810 -0.1270 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -2.6810 0.0840 0.3000 N 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 3.3150 1.0580 0.0750 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 3.7210 -0.2520 -0.0410 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -5.4360 0.0600 -0.1210 N 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 2.7060 -1.3170 -0.0860 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 2.0030 1.3690 0.1540 N 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -3.5490 -0.4860 1.3420 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -4.8260 -1.0120 0.6780 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -6.7360 -0.3450 -0.6290 N 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -4.5480 0.4860 -1.2160 C 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" -2.0390 -2.4900 0.0320 F 0 0 0 0 0 0 0 0 0 0 0
0\n" +
" 12 26 1 0 0 0 0\n" +
" 12 13 2 0 0 0 0\n" +
" 12 4 1 0 0 0 0\n" +
" 13 16 1 0 0 0 0\n" +
" 22 16 1 0 0 0 0\n" +
" 14 16 1 0 0 0 0\n" +
" 5 11 1 0 0 0 0\n" +
" 7 11 1 0 0 0 0\n" +
" 13 5 1 0 0 0 0\n" +
" 6 21 1 0 0 0 0\n" +
" 3 21 1 0 0 0 0\n" +
" 17 21 1 0 0 0 0\n" +
" 20 10 1 0 0 0 0\n" +
" 5 3 2 0 0 0 0\n" +
" 19 24 1 0 0 0 0\n" +
" 23 19 1 0 0 0 0\n" +
" 25 19 1 0 0 0 0\n" +
" 15 9 2 0 0 0 0\n" +
" 4 1 1 0 0 0 0\n" +
" 15 8 1 0 0 0 0\n" +
" 7 6 1 0 0 0 0\n" +
" 6 2 1 0 0 0 0\n" +
" 1 3 1 0 0 0 0\n" +
" 1 20 2 0 0 0 0\n" +
" 17 18 2 0 0 0 0\n" +
" 18 20 1 0 0 0 0\n" +
" 18 15 1 0 0 0 0\n" +
" 22 23 1 0 0 0 0\n" +
" 25 14 1 0 0 0 0\n" +
"M CHG 1 8 -1\n" +
"\n" +
"M END\n";
@Test public void cdktestBF5() throws IOException, CDKException {
StringReader mdl1 = new StringReader(BF5_MDL3);
org.openscience.cdk.io.MDLReader mdl1Reader = new
org.openscience.cdk.io.MDLReader(mdl1);
StringReader mdl2 = new StringReader(BF5_MDL2);
org.openscience.cdk.io.MDLReader mdl2Reader = new
org.openscience.cdk.io.MDLReader(mdl2);
org.openscience.cdk.Molecule molMdl1 = new
org.openscience.cdk.Molecule();
mdl1Reader.read(molMdl1);
org.openscience.cdk.Molecule molMdl2 = new
org.openscience.cdk.Molecule();
mdl2Reader.read(molMdl2);
assertTrue(UniversalIsomorphismTester.isIsomorph(molMdl1, molMdl2));
Fingerprinter finger = new Fingerprinter();
BitSet fingerprint1 = finger.getFingerprint(molMdl1);
finger = new Fingerprinter();
BitSet fingerprint2 = finger.getFingerprint(molMdl2);
assertEquals(fingerprint1, fingerprint2);
}
}
Regards,
Adel.
Egon Willighagen wrote:
On Thu, Sep 30, 2010 at 5:08 PM, Adel Golovin <[email protected]> wrote:
cdk-1.3.4
Good. On the bus home I wrote four new unit tests for the
fingerprinter, and using the AtomContainerAtomPermutor and
AtomContainerBondPermutor on two molecules, and that showed no
problems. If you send me your file I can use that for a test too
(which I would upload to the repository, if you are OK with that...)
Egon
------------------------------------------------------------------------------
Virtualization is moving to the mainstream and overtaking non-virtualized
environment for deploying applications. Does it make network security
easier or more difficult to achieve? Read this whitepaper to separate the
two and get a better understanding.
http://p.sf.net/sfu/hp-phase2-d2d
_______________________________________________
Cdk-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cdk-user
package psm.chem.test;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Comparator;
import java.util.logging.Logger;
import org.junit.Test;
import org.openscience.cdk.exception.CDKException;
import org.openscience.cdk.fingerprint.Fingerprinter;
import org.openscience.cdk.isomorphism.UniversalIsomorphismTester;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import psm.chem.Atom;
import psm.chem.Bond;
import psm.chem.CIFReader;
import psm.chem.FingerprintProviderManager;
import psm.chem.IFingerprintProvider;
import psm.chem.MDLReader;
import psm.chem.SubstructureItem;
public class FingerprintsTest {
static final Logger log = Logger.getAnonymousLogger();
static final String ADE =
"ADE\n" +
" -ISIS- 3D\n" +
"\n" +
" 15 16 0 0 0 0 0 0 0 0 1 V2000\n" +
" 0.6800 0.0000 -2.3500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.3600 0.0000 -1.2400 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.9200 0.0000 1.7800 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.6600 0.0000 -2.0800 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.8000 0.0000 -0.7200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 0.6600 0.0000 1.2100 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 0.5100 0.0100 -0.1900 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.4300 0.0000 1.9600 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.8300 0.0000 0.1200 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.1100 0.0000 -3.3400 H 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.0100 0.0000 2.7500 H 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.7100 0.0000 1.2200 H 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.3700 0.0000 -2.7300 H 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -2.5000 0.0000 2.0800 H 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.6400 0.0000 1.4200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1 4 1 0 0 0 0\n" +
" 4 5 1 0 0 0 0\n" +
" 4 13 1 0 0 0 0\n" +
" 1 2 2 0 0 0 0\n" +
" 1 10 1 0 0 0 0\n" +
" 2 7 1 0 0 0 0\n" +
" 6 7 1 0 0 0 0\n" +
" 5 7 2 0 0 0 0\n" +
" 3 6 1 0 0 0 0\n" +
" 6 8 2 0 0 0 0\n" +
" 3 11 1 0 0 0 0\n" +
" 3 12 1 0 0 0 0\n" +
" 8 15 1 0 0 0 0\n" +
" 9 15 2 0 0 0 0\n" +
" 14 15 1 0 0 0 0\n" +
" 5 9 1 0 0 0 0\n" +
"M END\n";
@Test public void testADE() throws IOException {
Reader mdl = new StringReader(ADE);
SubstructureItem sI = MDLReader.getSubstructureItem(mdl, "ADE", false, false, false);
IFingerprintProvider f = FingerprintProviderManager.getFingerprintProvider(SubstructureItem.FINGERPRINT_PROVIDER);
BitSet fingerprint1 = f != null ? f.getFingerprint(sI) : null;
Arrays.sort(sI.getAtoms(), new Comparator<Atom>() {
public int compare(Atom a, Atom b) {
return a.getElement().compareTo(b.getElement());
}
});
BitSet fingerprint2 = f != null ? f.getFingerprint(sI) : null;
assertEquals(fingerprint1, fingerprint2);
}
public static final String FH =
"1FH\n" +
" -ISIS- 3D\n" +
"\n" +
" 49 57 0 0 0 0 0 0 0 0 1 V2000\n" +
" 9.8200 12.3400 10.5300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.8600 6.1100 2.1400 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 12.1900 6.4000 0.7700 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 13.0200 10.2400 7.6900 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 7.9600 10.7000 9.8200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 9.9000 11.8400 11.7000 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 7.2500 6.4200 1.8500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 11.8300 7.8100 3.4200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 9.9900 9.7100 7.4000 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.5200 8.4100 6.0300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 6.5900 8.9100 6.7200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 6.3300 6.8700 2.9100 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 8.6400 8.0900 4.6200 Fe 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 10.7600 7.2800 2.6700 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 10.8500 9.3100 6.4300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 8.5900 9.5100 7.3700 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 7.9100 8.8700 6.3000 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 6.7600 7.5500 4.0900 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 8.7200 6.6400 1.9200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 9.4000 7.3100 3.0100 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.5800 7.7900 4.8300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 10.5000 8.6400 5.2500 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 11.7200 8.4400 4.6200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 14.0100 12.1500 9.0500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 13.6000 11.6800 10.1600 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.7200 6.1100 -1.6600 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 14.3200 9.0000 5.0900 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.9300 7.3800 4.7500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 9.6400 5.4500 -0.4700 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.8500 8.5000 -1.1500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 6.2700 5.7900 -0.4200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 6.4200 8.2000 0.1200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 12.8300 9.0000 5.4000 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 9.7500 6.2000 0.9000 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 4.4000 7.2900 4.2000 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.1300 9.8400 8.8700 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 7.6600 9.9700 8.4800 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 15.0100 12.9100 8.9500 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.5000 7.4600 -2.0400 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 8.5200 12.1300 9.7200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.0600 6.8400 1.1700 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 12.8900 5.1900 1.1700 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 13.2500 11.7500 7.7600 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 6.6500 6.8400 0.5100 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 12.2900 9.5400 6.5300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 6.4300 9.5800 8.0500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 10.7500 13.0000 10.0100 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 10.9500 6.6100 1.4100 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 4.7900 6.7100 3.0100 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1 6 2 0 0 0 0\n" +
" 1 47 1 0 0 0 0\n" +
" 2 41 2 0 0 0 0\n" +
" 3 42 2 0 0 0 0\n" +
" 4 43 1 0 0 0 0\n" +
" 5 40 1 0 0 0 0\n" +
" 7 12 2 0 0 0 0\n" +
" 7 44 1 0 0 0 0\n" +
" 8 14 2 0 0 0 0\n" +
" 9 15 1 0 0 0 0\n" +
" 10 11 1 0 0 0 0\n" +
" 11 46 1 0 0 0 0\n" +
" 11 17 2 0 0 0 0\n" +
" 12 49 1 0 0 0 0\n" +
" 12 18 1 0 0 0 0\n" +
" 13 17 1 0 0 0 0\n" +
" 13 22 1 0 0 0 0\n" +
" 13 20 1 0 0 0 0\n" +
" 13 18 1 0 0 0 0\n" +
" 14 20 1 0 0 0 0\n" +
" 14 48 1 0 0 0 0\n" +
" 15 45 2 0 0 0 0\n" +
" 15 22 1 0 0 0 0\n" +
" 16 17 1 0 0 0 0\n" +
" 16 37 1 0 0 0 0\n" +
" 9 16 2 0 0 0 0\n" +
" 7 19 1 0 0 0 0\n" +
" 19 20 2 0 0 0 0\n" +
" 19 34 1 0 0 0 0\n" +
" 10 21 2 0 0 0 0\n" +
" 21 35 1 0 0 0 0\n" +
" 18 21 1 0 0 0 0\n" +
" 23 33 2 0 0 0 0\n" +
" 22 23 1 0 0 0 0\n" +
" 8 23 1 0 0 0 0\n" +
" 24 38 1 0 0 0 0\n" +
" 24 25 2 0 0 0 0\n" +
" 26 39 1 0 0 0 0\n" +
" 30 39 2 0 0 0 0\n" +
" 26 31 2 0 0 0 0\n" +
" 30 32 1 0 0 0 0\n" +
" 27 33 1 0 0 0 0\n" +
" 33 45 1 0 0 0 0\n" +
" 29 34 1 0 0 0 0\n" +
" 34 48 1 0 0 0 0\n" +
" 35 49 2 0 0 0 0\n" +
" 28 35 1 0 0 0 0\n" +
" 5 37 1 0 0 0 0\n" +
" 37 46 2 0 0 0 0\n" +
" 1 40 1 0 0 0 0\n" +
" 24 43 1 0 0 0 0\n" +
" 32 44 2 0 0 0 0\n" +
" 31 44 1 0 0 0 0\n" +
" 4 45 1 0 0 0 0\n" +
" 36 46 1 0 0 0 0\n" +
" 3 48 1 0 0 0 0\n" +
" 2 49 1 0 0 0 0\n" +
"M CHG 1 13 2\n" +
"M END\n";
@Test public void test1FH() throws IOException, CDKException {
Reader mdl = new StringReader(FH);
SubstructureItem sI = MDLReader.getSubstructureItem(mdl, "1FH", false, false, false);
IFingerprintProvider f = FingerprintProviderManager.getFingerprintProvider(SubstructureItem.FINGERPRINT_PROVIDER);
BitSet fingerprint1 = f != null ? f.getFingerprint(sI) : null;
Arrays.sort(sI.getAtoms(), new Comparator<Atom>() {
public int compare(Atom a, Atom b) {
return a.getElement().compareTo(b.getElement());
}
});
Arrays.sort(sI.getBonds(), new Comparator<Bond>() {
public int compare(Bond a, Bond b) {
return a.getBondType() - b.getBondType();
}
});
BitSet fingerprint2 = f != null ? f.getFingerprint(sI) : null;
assertEquals(fingerprint1, fingerprint2);
// org.openscience.cdk.io.MDLReader cdkmdl = new org.openscience.cdk.io.MDLReader();
// StringReader r = new StringReader(sI.toMDL());
// cdkmdl.setReader(r);
// Molecule mol = new Molecule();
// cdkmdl.read(mol);
// IRingSet ringSet = new SSSRFinder(mol).findSSSR();
}
String BF5_MDL1 =
"BF5\n" +
" -ISIS- 3D\n" +
"\n" +
" 26 29 0 0 0 0 0 0 0 0 1 V2000\n" +
" 1.3900 -0.9800 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.4600 3.3800 -1.1300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.0200 0.3800 0.1300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 0.3700 -2.0900 -0.0500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.2900 0.7300 0.2400 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.6200 2.7800 0.2700 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 0.3000 2.8900 1.0300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.5000 -1.7400 -0.3400 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.9900 0.3000 0.0100 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.0800 -2.6200 -0.2100 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.6600 2.0400 0.3800 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.0300 -1.5900 0.0600 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.3400 -0.3000 0.2000 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -3.2600 1.0700 -0.6300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.1500 -0.5800 -0.1300 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -2.6800 0.0800 0.3000 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.3200 1.0600 0.0800 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.7200 -0.2500 -0.0400 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -5.4400 0.0600 -0.1200 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.7100 -1.3200 -0.0900 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.0000 1.3700 0.1500 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -3.5500 -0.4900 1.3400 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -4.8300 -1.0100 0.6800 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -6.7400 -0.3500 -0.6300 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -4.5500 0.4900 -1.2200 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -2.0400 -2.4900 0.0300 F 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1 3 1 0 0 0 0\n" +
" 1 20 2 0 0 0 0\n" +
" 3 21 1 0 0 0 0\n" +
" 1 4 1 0 0 0 0\n" +
" 3 5 2 0 0 0 0\n" +
" 5 11 1 0 0 0 0\n" +
" 6 21 1 0 0 0 0\n" +
" 2 6 1 0 0 0 0\n" +
" 7 11 1 0 0 0 0\n" +
" 6 7 1 0 0 0 0\n" +
" 12 26 1 0 0 0 0\n" +
" 12 13 2 0 0 0 0\n" +
" 4 12 1 0 0 0 0\n" +
" 13 16 1 0 0 0 0\n" +
" 5 13 1 0 0 0 0\n" +
" 14 16 1 0 0 0 0\n" +
" 9 15 2 0 0 0 0\n" +
" 8 15 1 0 0 0 0\n" +
" 17 21 1 0 0 0 0\n" +
" 17 18 2 0 0 0 0\n" +
" 18 20 1 0 0 0 0\n" +
" 15 18 1 0 0 0 0\n" +
" 19 24 1 0 0 0 0\n" +
" 10 20 1 0 0 0 0\n" +
" 16 22 1 0 0 0 0\n" +
" 22 23 1 0 0 0 0\n" +
" 19 23 1 0 0 0 0\n" +
" 14 25 1 0 0 0 0\n" +
" 19 25 1 0 0 0 0\n" +
"M CHG 1 8 -1\n" +
"M END \n";
String BF5_MDL2 =
"BF5\n" +
" -ISIS- 3D\n" +
"\n" +
" 26 29 0 0 0 0 0 0 0 0 1 V2000\n" +
" 1.3870 -0.9840 -0.0020 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.4580 3.3830 -1.1290 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.0220 0.3780 0.1280 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 0.3730 -2.0890 -0.0500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.2940 0.7270 0.2360 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.6240 2.7830 0.2690 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 0.2990 2.8850 1.0310 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.4950 -1.7360 -0.3370 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.9860 0.2980 0.0110 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.0790 -2.6160 -0.2080 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.6550 2.0360 0.3820 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.0310 -1.5910 0.0620 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.3360 -0.2980 0.1960 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -3.2600 1.0700 -0.6250 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.1450 -0.5810 -0.1270 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -2.6810 0.0840 0.3000 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.3150 1.0580 0.0750 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.7210 -0.2520 -0.0410 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -5.4360 0.0600 -0.1210 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.7060 -1.3170 -0.0860 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.0030 1.3690 0.1540 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -3.5490 -0.4860 1.3420 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -4.8260 -1.0120 0.6780 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -6.7360 -0.3450 -0.6290 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -4.5480 0.4860 -1.2160 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -2.0390 -2.4900 0.0320 F 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 12 13 2 0 0 0 0\n" +
" 5 3 2 0 0 0 0\n" +
" 1 20 2 0 0 0 0\n" +
" 17 18 2 0 0 0 0\n" +
" 15 9 2 0 0 0 0\n" +
" 12 4 1 0 0 0 0\n" +
" 13 5 1 0 0 0 0\n" +
" 4 1 1 0 0 0 0\n" +
" 7 6 1 0 0 0 0\n" +
" 6 2 1 0 0 0 0\n" +
" 1 3 1 0 0 0 0\n" +
" 18 20 1 0 0 0 0\n" +
" 18 15 1 0 0 0 0\n" +
" 22 23 1 0 0 0 0\n" +
" 25 14 1 0 0 0 0\n" +
" 12 26 1 0 0 0 0\n" +
" 13 16 1 0 0 0 0\n" +
" 22 16 1 0 0 0 0\n" +
" 14 16 1 0 0 0 0\n" +
" 6 21 1 0 0 0 0\n" +
" 3 21 1 0 0 0 0\n" +
" 17 21 1 0 0 0 0\n" +
" 23 19 1 0 0 0 0\n" +
" 25 19 1 0 0 0 0\n" +
" 5 11 1 0 0 0 0\n" +
" 7 11 1 0 0 0 0\n" +
" 20 10 1 0 0 0 0\n" +
" 15 8 1 0 0 0 0\n" +
" 19 24 1 0 0 0 0\n" +
"M CHG 1 8 -1\n" +
"\n" +
"M END\n";
String BF5_MDL3 =
"BF5\n" +
" -ISIS- 3D\n" +
"\n" +
" 26 29 0 0 0 0 0 0 0 0 1 V2000\n" +
" 1.3870 -0.9840 -0.0020 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.4580 3.3830 -1.1290 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.0220 0.3780 0.1280 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 0.3730 -2.0890 -0.0500 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.2940 0.7270 0.2360 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 1.6240 2.7830 0.2690 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 0.2990 2.8850 1.0310 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.4950 -1.7360 -0.3370 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.9860 0.2980 0.0110 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.0790 -2.6160 -0.2080 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -0.6550 2.0360 0.3820 O 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.0310 -1.5910 0.0620 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -1.3360 -0.2980 0.1960 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -3.2600 1.0700 -0.6250 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 5.1450 -0.5810 -0.1270 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -2.6810 0.0840 0.3000 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.3150 1.0580 0.0750 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 3.7210 -0.2520 -0.0410 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -5.4360 0.0600 -0.1210 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.7060 -1.3170 -0.0860 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 2.0030 1.3690 0.1540 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -3.5490 -0.4860 1.3420 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -4.8260 -1.0120 0.6780 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -6.7360 -0.3450 -0.6290 N 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -4.5480 0.4860 -1.2160 C 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" -2.0390 -2.4900 0.0320 F 0 0 0 0 0 0 0 0 0 0 0 0\n" +
" 12 26 1 0 0 0 0\n" +
" 12 13 2 0 0 0 0\n" +
" 12 4 1 0 0 0 0\n" +
" 13 16 1 0 0 0 0\n" +
" 22 16 1 0 0 0 0\n" +
" 14 16 1 0 0 0 0\n" +
" 5 11 1 0 0 0 0\n" +
" 7 11 1 0 0 0 0\n" +
" 13 5 1 0 0 0 0\n" +
" 6 21 1 0 0 0 0\n" +
" 3 21 1 0 0 0 0\n" +
" 17 21 1 0 0 0 0\n" +
" 20 10 1 0 0 0 0\n" +
" 5 3 2 0 0 0 0\n" +
" 19 24 1 0 0 0 0\n" +
" 23 19 1 0 0 0 0\n" +
" 25 19 1 0 0 0 0\n" +
" 15 9 2 0 0 0 0\n" +
" 4 1 1 0 0 0 0\n" +
" 15 8 1 0 0 0 0\n" +
" 7 6 1 0 0 0 0\n" +
" 6 2 1 0 0 0 0\n" +
" 1 3 1 0 0 0 0\n" +
" 1 20 2 0 0 0 0\n" +
" 17 18 2 0 0 0 0\n" +
" 18 20 1 0 0 0 0\n" +
" 18 15 1 0 0 0 0\n" +
" 22 23 1 0 0 0 0\n" +
" 25 14 1 0 0 0 0\n" +
"M CHG 1 8 -1\n" +
"\n" +
"M END\n";
String BF5_CIF =
"#\n" +
"_chem_comp.id BF5\n" +
"_chem_comp.name \"(3S)-10-(4-AMINOPIPERAZIN-1-YL)-9-FLUORO-7-HYDROXY-3-METHYL-2,3-DIHYDRO-8H-[1,4]OXAZINO[2,3,4-IJ]QUINOLINE-6-CARBOXYLATE\"\n" +
"_chem_comp.type non-polymer\n" +
"_chem_comp.pdbx_type HETAIN\n" +
"_chem_comp.formula \"C17 H19 F N4 O4\"\n" +
"_chem_comp.mon_nstd_parent_comp_id ?\n" +
"_chem_comp.pdbx_synonyms ?\n" +
"_chem_comp.pdbx_formal_charge 0\n" +
"_chem_comp.pdbx_initial_date 2010-06-08\n" +
"_chem_comp.pdbx_modified_date 2010-06-09\n" +
"_chem_comp.pdbx_ambiguous_flag N\n" +
"_chem_comp.pdbx_release_status REL\n" +
"_chem_comp.pdbx_replaced_by ?\n" +
"_chem_comp.pdbx_replaces ?\n" +
"_chem_comp.formula_weight 362.356\n" +
"_chem_comp.one_letter_code ?\n" +
"_chem_comp.three_letter_code BF5\n" +
"_chem_comp.pdbx_model_coordinates_details ?\n" +
"_chem_comp.pdbx_model_coordinates_missing_flag N\n" +
"_chem_comp.pdbx_ideal_coordinates_details Corina\n" +
"_chem_comp.pdbx_ideal_coordinates_missing_flag Y\n" +
"_chem_comp.pdbx_model_coordinates_db_code 2XH1\n" +
"_chem_comp.pdbx_subcomponent_list ?\n" +
"_chem_comp.pdbx_processing_site EBI\n" +
"#\n" +
"loop_\n" +
"_chem_comp_atom.comp_id\n" +
"_chem_comp_atom.atom_id\n" +
"_chem_comp_atom.alt_atom_id\n" +
"_chem_comp_atom.type_symbol\n" +
"_chem_comp_atom.charge\n" +
"_chem_comp_atom.pdbx_align\n" +
"_chem_comp_atom.pdbx_aromatic_flag\n" +
"_chem_comp_atom.pdbx_leaving_atom_flag\n" +
"_chem_comp_atom.pdbx_stereo_config\n" +
"_chem_comp_atom.model_Cartn_x\n" +
"_chem_comp_atom.model_Cartn_y\n" +
"_chem_comp_atom.model_Cartn_z\n" +
"_chem_comp_atom.pdbx_model_Cartn_x_ideal\n" +
"_chem_comp_atom.pdbx_model_Cartn_y_ideal\n" +
"_chem_comp_atom.pdbx_model_Cartn_z_ideal\n" +
"_chem_comp_atom.pdbx_component_atom_id\n" +
"_chem_comp_atom.pdbx_component_comp_id\n" +
"_chem_comp_atom.pdbx_ordinal\n" +
"BF5 C1 C1 C 0 1 N N N 23.103 57.969 17.600 -1.031 -1.591 0.062 C1 BF5 1\n" +
"BF5 F1 F1 F 0 1 N N N 22.561 59.179 17.665 -2.039 -2.490 0.032 F1 BF5 2\n" +
"BF5 N1 N1 N 0 1 N N N 21.720 57.229 15.663 -2.681 0.084 0.300 N1 BF5 3\n" +
"BF5 O1 O1 O 0 1 N N N 23.091 54.755 15.859 -0.655 2.036 0.382 O1 BF5 4\n" +
"BF5 C2 C2 C 0 1 N N N 22.731 57.011 16.657 -1.336 -0.298 0.196 C2 BF5 5\n" +
"BF5 N2 N2 N 0 1 N N N 25.032 54.265 17.798 2.003 1.369 0.154 N2 BF5 6\n" +
"BF5 O2 O2 O 0 1 N N N 26.080 57.174 20.505 3.079 -2.616 -0.208 O2 BF5 7\n" +
"BF5 C3 C3 C 0 1 N N N 23.384 55.770 16.736 -0.294 0.727 0.236 C3 BF5 8\n" +
"BF5 N3 N3 N 0 1 N N N 18.977 57.969 15.086 -5.436 0.060 -0.121 N3 BF5 9\n" +
"BF5 O3 O3 O 0 1 N N N 28.224 53.669 20.476 5.986 0.298 0.011 O3 BF5 10\n" +
"BF5 C4 C4 C 0 1 N N N 24.075 57.729 18.568 0.373 -2.089 -0.050 C4 BF5 11\n" +
"BF5 N4 N4 N 0 1 N N N 17.930 58.146 14.152 -6.736 -0.345 -0.629 N4 BF5 12\n" +
"BF5 O4 O4 O -1 1 N N N 27.581 55.293 21.784 5.495 -1.736 -0.337 O4 BF5 13\n" +
"BF5 C5 C5 C 0 1 N N N 24.176 53.862 15.542 0.299 2.885 1.031 C5 BF5 14\n" +
"BF5 C6 C6 C 0 1 N N S 24.660 53.213 16.834 1.624 2.783 0.269 C6 BF5 15\n" +
"BF5 C7 C7 C 0 1 N N N 23.534 52.369 17.438 1.458 3.383 -1.129 C7 BF5 16\n" +
"BF5 C8 C8 C 0 1 N N N 24.715 56.517 18.630 1.387 -0.984 -0.002 C8 BF5 17\n" +
"BF5 C9 C9 C 0 1 N N N 24.376 55.523 17.716 1.022 0.378 0.128 C9 BF5 18\n" +
"BF5 C10 C10 C 0 1 N N N 25.982 54.011 18.734 3.315 1.058 0.075 C10 BF5 19\n" +
"BF5 C11 C11 C 0 1 N N N 26.399 54.934 19.698 3.721 -0.252 -0.041 C11 BF5 20\n" +
"BF5 C12 C12 C 0 1 N N N 25.759 56.270 19.680 2.706 -1.317 -0.086 C12 BF5 21\n" +
"BF5 C13 C13 C 0 1 N N N 20.602 56.269 15.904 -3.549 -0.486 1.342 C13 BF5 22\n" +
"BF5 C14 C14 C 0 1 N N N 19.307 56.526 15.141 -4.826 -1.012 0.678 C14 BF5 23\n" +
"BF5 C15 C15 C 0 1 N N N 20.120 58.767 14.607 -4.548 0.486 -1.216 C15 BF5 24\n" +
"BF5 C16 C16 C 0 1 N N N 21.286 58.637 15.572 -3.260 1.070 -0.625 C16 BF5 25\n" +
"BF5 C17 C17 C 0 1 N N N 27.464 54.614 20.717 5.145 -0.581 -0.127 C17 BF5 26\n" +
"BF5 HO2 HO2 H 0 1 N N N 26.665 56.812 21.160 4.036 -2.756 -0.171 HO2 BF5 27\n" +
"BF5 H4 H4 H 0 1 N N N 24.863 58.478 18.397 0.567 -2.780 0.770 H4 BF5 28\n" +
"BF5 H4A H4A H 0 1 N N N 23.572 57.854 19.538 0.481 -2.625 -0.992 H4A BF5 29\n" +
"BF5 HN4 HN4 H 0 1 N N N 17.691 59.115 14.099 -7.155 0.391 -1.178 HN4 BF5 30\n" +
"BF5 HN4A HN4A H 0 0 N N N 18.228 57.827 13.253 -6.666 -1.199 -1.163 HN4A BF5 31\n" +
"BF5 H5 H5 H 0 1 N N N 23.829 53.087 14.843 -0.056 3.916 1.016 H5 BF5 32\n" +
"BF5 H5A H5A H 0 1 N N N 24.998 54.425 15.077 0.441 2.559 2.061 H5A BF5 33\n" +
"BF5 H6 H6 H 0 1 N N N 25.529 52.575 16.616 2.399 3.326 0.810 H6 BF5 34\n" +
"BF5 H7 H7 H 0 1 N N N 23.246 51.579 16.729 0.680 2.841 -1.667 H7 BF5 35\n" +
"BF5 H7A H7A H 0 1 N N N 23.882 51.911 18.375 1.176 4.432 -1.042 H7A BF5 36\n" +
"BF5 H7B H7B H 0 1 N N N 22.665 53.011 17.644 2.399 3.303 -1.673 H7B BF5 37\n" +
"BF5 H10 H10 H 0 1 N N N 26.445 53.035 18.734 4.053 1.846 0.109 H10 BF5 38\n" +
"BF5 H13 H13 H 0 1 N N N 20.961 55.272 15.609 -3.032 -1.305 1.842 H13 BF5 39\n" +
"BF5 H13A H13A H 0 0 N N N 20.361 56.313 16.976 -3.805 0.286 2.068 H13A BF5 40\n" +
"BF5 H14 H14 H 0 1 N N N 18.488 55.996 15.649 -5.528 -1.337 1.446 H14 BF5 41\n" +
"BF5 H14A H14A H 0 0 N N N 19.423 56.152 14.113 -4.579 -1.853 0.031 H14A BF5 42\n" +
"BF5 H15 H15 H 0 1 N N N 20.427 58.403 13.615 -4.303 -0.373 -1.841 H15 BF5 43\n" +
"BF5 H15A H15A H 0 0 N N N 19.822 59.824 14.538 -5.050 1.243 -1.818 H15A BF5 44\n" +
"BF5 H16 H16 H 0 1 N N N 20.972 58.984 16.568 -3.489 1.989 -0.085 H16 BF5 45\n" +
"BF5 H16A H16A H 0 0 N N N 22.124 59.251 15.212 -2.552 1.279 -1.427 H16A BF5 46\n" +
"#\n" +
"loop_\n" +
"_chem_comp_bond.comp_id\n" +
"_chem_comp_bond.atom_id_1\n" +
"_chem_comp_bond.atom_id_2\n" +
"_chem_comp_bond.value_order\n" +
"_chem_comp_bond.pdbx_aromatic_flag\n" +
"_chem_comp_bond.pdbx_stereo_config\n" +
"_chem_comp_bond.pdbx_ordinal\n" +
"BF5 C1 F1 SING N N 1\n" +
"BF5 C1 C2 DOUB N N 2\n" +
"BF5 C1 C4 SING N N 3\n" +
"BF5 N1 C2 SING N N 4\n" +
"BF5 N1 C13 SING N N 5\n" +
"BF5 N1 C16 SING N N 6\n" +
"BF5 O1 C3 SING N N 7\n" +
"BF5 O1 C5 SING N N 8\n" +
"BF5 C2 C3 SING N N 9\n" +
"BF5 N2 C6 SING N N 10\n" +
"BF5 N2 C9 SING N N 11\n" +
"BF5 N2 C10 SING N N 12\n" +
"BF5 O2 C12 SING N N 13\n" +
"BF5 C3 C9 DOUB N N 14\n" +
"BF5 N3 N4 SING N N 15\n" +
"BF5 N3 C14 SING N N 16\n" +
"BF5 N3 C15 SING N N 17\n" +
"BF5 O3 C17 DOUB N N 18\n" +
"BF5 C4 C8 SING N N 19\n" +
"BF5 O4 C17 SING N N 20\n" +
"BF5 C5 C6 SING N N 21\n" +
"BF5 C6 C7 SING N N 22\n" +
"BF5 C8 C9 SING N N 23\n" +
"BF5 C8 C12 DOUB N N 24\n" +
"BF5 C10 C11 DOUB N N 25\n" +
"BF5 C11 C12 SING N N 26\n" +
"BF5 C11 C17 SING N N 27\n" +
"BF5 C13 C14 SING N N 28\n" +
"BF5 C15 C16 SING N N 29\n" +
"BF5 O2 HO2 SING N N 30\n" +
"BF5 C4 H4 SING N N 31\n" +
"BF5 C4 H4A SING N N 32\n" +
"BF5 N4 HN4 SING N N 33\n" +
"BF5 N4 HN4A SING N N 34\n" +
"BF5 C5 H5 SING N N 35\n" +
"BF5 C5 H5A SING N N 36\n" +
"BF5 C6 H6 SING N N 37\n" +
"BF5 C7 H7 SING N N 38\n" +
"BF5 C7 H7A SING N N 39\n" +
"BF5 C7 H7B SING N N 40\n" +
"BF5 C10 H10 SING N N 41\n" +
"BF5 C13 H13 SING N N 42\n" +
"BF5 C13 H13A SING N N 43\n" +
"BF5 C14 H14 SING N N 44\n" +
"BF5 C14 H14A SING N N 45\n" +
"BF5 C15 H15 SING N N 46\n" +
"BF5 C15 H15A SING N N 47\n" +
"BF5 C16 H16 SING N N 48\n" +
"BF5 C16 H16A SING N N 49\n" +
"#\n" +
"loop_\n" +
"_pdbx_chem_comp_descriptor.comp_id\n" +
"_pdbx_chem_comp_descriptor.type\n" +
"_pdbx_chem_comp_descriptor.program\n" +
"_pdbx_chem_comp_descriptor.program_version\n" +
"_pdbx_chem_comp_descriptor.descriptor\n" +
"BF5 SMILES ACDLabs 12.01 \"[O-]C(=O)C=1C(O)=C4C=2N(C=1)C(COC=2C(N3CCN(N)CC3)=C(F)C4)C\"\n" +
"BF5 InChI InChI 1.02 \"InChI=1S/C17H21FN4O4/c1-9-8-26-16-13-10(15(23)11(17(24)25)7-22(9)13)6-12(18)14(16)20-2-4-21(19)5-3-20/h7,9,23H,2-6,8,19H2,1H3,(H,24,25)/p-1/t9-/m0/s1\"\n" +
"BF5 InChIKey InChI 1.02 XSSSNYCVNIDBIB-VIFPVBQESA-M\n" +
"BF5 SMILES_CANONICAL CACTVS 3.370 \"c...@h]1coc2=c3n1c=c(C([O-])=O)C(=C3CC(=C2N4CCN(N)CC4)F)O\"\n" +
"BF5 SMILES CACTVS 3.370 \"C[CH]1COC2=C3N1C=C(C([O-])=O)C(=C3CC(=C2N4CCN(N)CC4)F)O\"\n" +
"BF5 SMILES_CANONICAL \"OpenEye OEToolkits\" 1.7.0 \"c...@h]1coc2=c3n1c=c(C(=C3CC(=C2N4CCN(CC4)N)F)O)C(=O)[O-]\"\n" +
"BF5 SMILES \"OpenEye OEToolkits\" 1.7.0 \"CC1COC2=C3N1C=C(C(=C3CC(=C2N4CCN(CC4)N)F)O)C(=O)[O-]\"\n" +
"#\n" +
"_pdbx_chem_comp_identifier.comp_id BF5\n" +
"_pdbx_chem_comp_identifier.type \"SYSTEMATIC NAME\"\n" +
"_pdbx_chem_comp_identifier.program ACDLabs\n" +
"_pdbx_chem_comp_identifier.program_version 12.01\n" +
"_pdbx_chem_comp_identifier.identifier \"(3S)-10-(4-aminopiperazin-1-yl)-9-fluoro-7-hydroxy-3-methyl-2,3-dihydro-8H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylate\"\n" +
"#\n";
@Test public void testBF5() throws IOException, CDKException {
Reader mdl2 = new StringReader(BF5_MDL2);
SubstructureItem sImdl2 = MDLReader.getSubstructureItem(mdl2, "BF5", false, false, false);
Reader cif = new StringReader(BF5_CIF);
SubstructureItem sIcif = CIFReader.getSubstructureItem(cif, "BF5", false, false);
// IFingerprintProvider f = FingerprintProviderManager.getFingerprintProvider(SubstructureItem.FINGERPRINT_PROVIDER);
// BitSet fingerprint2 = f != null ? f.getFingerprint(sImdl2) : null;
// BitSet fingerprint3 = f != null ? f.getFingerprint(sIcif) : null;
mdl2 = new StringReader(sImdl2.toMDL());
org.openscience.cdk.io.MDLReader mdl2Reader = new org.openscience.cdk.io.MDLReader(mdl2);
cif = new StringReader(sIcif.toMDL());
org.openscience.cdk.io.MDLReader cifReader = new org.openscience.cdk.io.MDLReader(cif);
org.openscience.cdk.Molecule molMdl2 = new org.openscience.cdk.Molecule();
mdl2Reader.read(molMdl2);
org.openscience.cdk.Molecule molCif = new org.openscience.cdk.Molecule();
cifReader.read(molCif);
assertTrue(UniversalIsomorphismTester.isIsomorph(molMdl2, molCif));
System.out.println(sIcif.toMDL());
// System.out.println();
// System.out.println(sImdl2.toMDL());
assertEquals(BF5_MDL2.replaceAll("\\s+", ""), sImdl2.toMDL().replaceAll("\\s+", ""));
// assertEquals(sImdl2.toMDL().replaceAll("\\s+", ""), sIcif.toMDL().replaceAll("\\s+", ""));
Fingerprinter finger = new Fingerprinter();
BitSet fingerprintMdl2 = finger.getFingerprint(molMdl2);
finger = new Fingerprinter();
BitSet fingerprintCif = finger.getFingerprint(molCif);
assertEquals(fingerprintMdl2, fingerprintCif);
}
@Test public void cdktestBF5() throws IOException, CDKException {
StringReader mdl1 = new StringReader(BF5_MDL3);
org.openscience.cdk.io.MDLReader mdl1Reader = new org.openscience.cdk.io.MDLReader(mdl1);
StringReader mdl2 = new StringReader(BF5_MDL2);
org.openscience.cdk.io.MDLReader mdl2Reader = new org.openscience.cdk.io.MDLReader(mdl2);
org.openscience.cdk.Molecule molMdl1 = new org.openscience.cdk.Molecule();
mdl1Reader.read(molMdl1);
org.openscience.cdk.Molecule molMdl2 = new org.openscience.cdk.Molecule();
mdl2Reader.read(molMdl2);
assertTrue(UniversalIsomorphismTester.isIsomorph(molMdl1, molMdl2));
Fingerprinter finger = new Fingerprinter();
BitSet fingerprint1 = finger.getFingerprint(molMdl1);
finger = new Fingerprinter();
BitSet fingerprint2 = finger.getFingerprint(molMdl2);
assertEquals(fingerprint1, fingerprint2);
}
}
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Cdk-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cdk-user