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

Reply via email to