@@ -0,0 +1,1533 @@
+#!/usr/bin/env jython%0A%0Aimport os%0Aimport sys%0A%0A# Add all JChem jars to path%0AJCHEM_LIB = '/Applications/ChemAxon/JChemSuite/lib'%0Afor f in os.listdir(JCHEM_LIB):%0A    sys.path.append(os.path.join(JCHEM_LIB, f))%0A%0Afrom chemaxon.formats import MolImporter, MolExporter%0Afrom chemaxon.marvin.io import MolExportException%0A%0Aimport common%0A%0A%0A# SMILES import/export options: https://docs.chemaxon.com/display/docs/SMILES+and+SMARTS+import+and+export+options%0A# Aromatization and hydrogen export options: https://docs.chemaxon.com/display/docs/Basic+export+options%0A%0A%0Aclass MyAromaticSmilesWriter(common.AromaticSmilesWriter):%0A    def getoutput(self, smi):%0A        mol = MolImporter.importMol(smi, 'smiles')%0A        try:%0A            # a - General (Daylight) aromatization. (Alternatives: a_bas, a_loose, a_ambig, etc.)%0A            # u - Write %22unique%22 smiles (include chirality into graph invariants, slower)%0A            msmi = MolExporter.exportToFormat(mol, 'smiles:a')%0A        except MolExportException as e:%0A            # return ' '.join(str(e).split('%5Cn'))  # Write error message to a single line%0A            return ''%0A        return msmi%0A%0A%0Aclass MyHydrogenCounter(common.HydrogenCounter):%0A    def getoutput(self, smi):%0A        mol = MolImporter.importMol(smi, 'smiles')%0A        N = mol.getAtomCount()%0A        hcounts = %5Batom.getImplicitHcount() for atom in mol.getAtomIterator()%5D%0A        return hcounts, None%0A%0A%0Aif __name__ == %22__main__%22:%0A    myname = %22jchem_17.23%22%0A    MyAromaticSmilesWriter(myname).main()%0A    MyHydrogenCounter(myname).main()%0A%0A

Add JChem script