Menu

#1358 ClassCastExpection when creating fingerprint

cdk-1.6.x
closed
nobody
1
2015-11-28
2015-02-19
No

Hi,

the following compound causes a classcastexpection in the smartsquerytool when creating the functional group fingerprint.

Kind regards,
Martin

:::java

    StringBuffer s = new StringBuffer();
    s.append("\n");
    s.append("  CDK     0218151819\n");
    s.append("\n");
    s.append(" 17 17  0  0  0  0  0  0  0  0999 V2000\n");
    s.append("   -0.5704  -12.5706    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -1.1804  -11.2003    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -1.7904   -9.8299    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -0.9085   -8.6164    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -1.5185   -7.2461    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -0.6367   -6.0326    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -1.2467   -4.6622    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -0.3648   -3.4488    0.0000 S   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -0.9748   -2.0784    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -0.0930   -0.8650    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("    1.4070   -0.8650    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("    1.8710    0.5620    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("    0.6570    1.4430    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -0.5560    0.5610    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("   -1.9826    1.0244    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("    0.5832   -8.7734    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("    1.1932  -10.1438    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
    s.append("  1  2  3  0  0  0  0 \n");
    s.append("  2  3  1  0  0  0  0 \n");
    s.append("  3  4  1  0  0  0  0 \n");
    s.append("  4  5  2  0  0  0  0 \n");
    s.append("  5  6  1  0  0  0  0 \n");
    s.append("  6  7  1  0  0  0  0 \n");
    s.append("  7  8  1  0  0  0  0 \n");
    s.append("  8  9  1  0  0  0  0 \n");
    s.append("  9 10  1  0  0  0  0 \n");
    s.append(" 10 11  1  0  0  0  0 \n");
    s.append(" 11 12  2  0  0  0  0 \n");
    s.append(" 12 13  1  0  0  0  0 \n");
    s.append(" 13 14  1  0  0  0  0 \n");
    s.append(" 10 14  2  0  0  0  0 \n");
    s.append(" 14 15  1  0  0  0  0 \n");
    s.append("  4 16  1  0  0  0  0 \n");
    s.append(" 16 17  1  0  0  0  0 \n");
    s.append("M  END\n");
    Reader input = new StringReader(s.toString());

    ISimpleChemObjectReader reader = new ReaderFactory().createReader(input);
    IChemFile content = (IChemFile) reader.read((IChemObject) new ChemFile());
    List<IAtomContainer> list = ChemFileManipulator.getAllAtomContainers(content);
    reader.close();
    IAtomContainer mol = list.get(0);
    mol = (IAtomContainer) AtomContainerManipulator.removeHydrogens(mol);
    AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol);

    System.out.println(new SmilesGenerator().create(mol));

    SubstructureFingerprinter fp = new SubstructureFingerprinter(
            StandardSubstructureSets.getFunctionalGroupSMARTS());
    fp.getBitFingerprint(mol);

Related

Bugs: #1358

Discussion

  • Martin Gütlein

    Martin Gütlein - 2015-02-19

    CDK Version 1.5.8

     
  • Egon Willighagen

    • summary: classcastexpection when creating fingerprint --> ClassCastExpection when creating fingerprint
     
  • Egon Willighagen

    • Group: master --> cdk-1.6.x
     
  • Egon Willighagen

    Martin, can you please add the stacktrace?

     
  • Martin Gütlein

    Martin Gütlein - 2015-02-19

    Stacktrace:

    Exception in thread "main" com.google.common.util.concurrent.UncheckedExecutionException: java.lang.ClassCastException: org.openscience.cdk.stereo.DoubleBondStereochemistry cannot be cast to org.openscience.cdk.interfaces.ITetrahedralChirality
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
        at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4827)
        at org.openscience.cdk.isomorphism.matchers.smarts.RecursiveSmartsAtom.matches(RecursiveSmartsAtom.java:92)
        at org.openscience.cdk.isomorphism.matchers.smarts.LogicalOperatorAtom$Disjunction.matches(LogicalOperatorAtom.java:223)
        at org.openscience.cdk.isomorphism.matchers.smarts.LogicalOperatorAtom$Disjunction.matches(LogicalOperatorAtom.java:223)
        at org.openscience.cdk.isomorphism.matchers.smarts.LogicalOperatorAtom$Disjunction.matches(LogicalOperatorAtom.java:223)
        at org.openscience.cdk.smiles.smarts.SMARTSQueryTool.matches(SMARTSQueryTool.java:366)
        at org.openscience.cdk.smiles.smarts.SMARTSQueryTool.matches(SMARTSQueryTool.java:330)
        at org.openscience.cdk.fingerprint.SubstructureFingerprinter.getBitFingerprint(SubstructureFingerprinter.java:412)
        at org.cdktest.CDK15Snippets.classCastException(CDK15Snippets.java:121)
        at org.cdktest.CDK15Snippets.main(CDK15Snippets.java:187)
    Caused by: java.lang.ClassCastException: org.openscience.cdk.stereo.DoubleBondStereochemistry cannot be cast to org.openscience.cdk.interfaces.ITetrahedralChirality
        at org.openscience.cdk.isomorphism.SmartsStereoMatch.checkTetrahedral(SmartsStereoMatch.java:142)
        at org.openscience.cdk.isomorphism.SmartsStereoMatch.apply(SmartsStereoMatch.java:117)
        at org.openscience.cdk.isomorphism.SmartsStereoMatch.apply(SmartsStereoMatch.java:59)
        at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647)
        at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
        at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
        at com.google.common.collect.Iterators$7.computeNext(Iterators.java:645)
        at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
        at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
        at org.openscience.cdk.isomorphism.matchers.smarts.RecursiveSmartsAtom$1.load(RecursiveSmartsAtom.java:68)
        at org.openscience.cdk.isomorphism.matchers.smarts.RecursiveSmartsAtom$1.load(RecursiveSmartsAtom.java:65)
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
        ... 13 more
    
     
    • John May

      John May - 2015-02-19

      Hmm, very odd. Will look into it - thanks!

       
  • John May

    John May - 2015-02-22

    Okay just patched.

     
  • Martin Gütlein

    Martin Gütlein - 2015-05-26

    Hi John, cannot find the patch, which version do I have to use?

     
    • John May

      John May - 2015-05-26

      https://github.com/cdk/cdk/commit/b12d2caccdb31d229834b371b07f1de454ef69a1

      Latest release was before patch, so I'm afraid you'll have to build the
      latest dev version. Will make a new release soon.

      Regards,
      John W May
      john.wilkinsonmay@gmail.com

      On 26 May 2015 at 12:21, "Martin Gütlein" martinguetlein@users.sf.net
      wrote:

      Hi John, cannot find the patch, which version do I have to use?

      Status: open
      Group: cdk-1.6.x
      Labels: SMARTS Exception
      Created: Thu Feb 19, 2015 07:57 AM UTC by Martin Gütlein
      Last Updated: Sun Feb 22, 2015 09:18 PM UTC
      Owner: nobody

      Hi,

      the following compound causes a classcastexpection in the smartsquerytool
      when creating the functional group fingerprint.

      Kind regards,
      Martin

      :::java

      StringBuffer s = new StringBuffer();
      s.append("\n");
      s.append("  CDK     0218151819\n");
      s.append("\n");
      s.append(" 17 17  0  0  0  0  0  0  0  0999 V2000\n");
      s.append("   -0.5704  -12.5706    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -1.1804  -11.2003    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -1.7904   -9.8299    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -0.9085   -8.6164    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -1.5185   -7.2461    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -0.6367   -6.0326    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -1.2467   -4.6622    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -0.3648   -3.4488    0.0000 S   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -0.9748   -2.0784    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -0.0930   -0.8650    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("    1.4070   -0.8650    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("    1.8710    0.5620    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("    0.6570    1.4430    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -0.5560    0.5610    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("   -1.9826    1.0244    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("    0.5832   -8.7734    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("    1.1932  -10.1438    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
      s.append("  1  2  3  0  0  0  0 \n");
      s.append("  2  3  1  0  0  0  0 \n");
      s.append("  3  4  1  0  0  0  0 \n");
      s.append("  4  5  2  0  0  0  0 \n");
      s.append("  5  6  1  0  0  0  0 \n");
      s.append("  6  7  1  0  0  0  0 \n");
      s.append("  7  8  1  0  0  0  0 \n");
      s.append("  8  9  1  0  0  0  0 \n");
      s.append("  9 10  1  0  0  0  0 \n");
      s.append(" 10 11  1  0  0  0  0 \n");
      s.append(" 11 12  2  0  0  0  0 \n");
      s.append(" 12 13  1  0  0  0  0 \n");
      s.append(" 13 14  1  0  0  0  0 \n");
      s.append(" 10 14  2  0  0  0  0 \n");
      s.append(" 14 15  1  0  0  0  0 \n");
      s.append("  4 16  1  0  0  0  0 \n");
      s.append(" 16 17  1  0  0  0  0 \n");
      s.append("M  END\n");
      Reader input = new StringReader(s.toString());
      
      ISimpleChemObjectReader reader = new ReaderFactory().createReader(input);
      IChemFile content = (IChemFile) reader.read((IChemObject) new ChemFile());
      List<IAtomContainer> list = ChemFileManipulator.getAllAtomContainers(content);
      reader.close();
      IAtomContainer mol = list.get(0);
      mol = (IAtomContainer) AtomContainerManipulator.removeHydrogens(mol);
      AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol);
      
      System.out.println(new SmilesGenerator().create(mol));
      
      SubstructureFingerprinter fp = new SubstructureFingerprinter(
              StandardSubstructureSets.getFunctionalGroupSMARTS());
      fp.getBitFingerprint(mol);
      

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/cdk/bugs/1358/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       

      Related

      Bugs: #1358

  • John May

    John May - 2015-11-28

    Resolved

     
  • John May

    John May - 2015-11-28
    • status: open --> closed