Saturday, June 20, 2009
chem-bla-ics: Bioclipse-JChemPaint
chem-bla-ics: Bioclipse-JChemPaint
Sunday, January 04, 2009
Mychem v0.6.0 is Released !
The version 0.6.0 of Mychem has been released on 2008-12-30. The main changes are:
- New functions:
- bit_fp_or
- bit_fp_count
- bit_fp_and
- molecule_to_inchi
- inchi_to_molecule
- Bug fixes
- Updated documentation
- Molecule type is now MDL Molfile
- Works with Open Babel v2.1.1 and v2.2.0.
Two versions of Mychem are now available:
- Mychem2 - Designed for Open Babel v2.1.1.
- Mychem3 - Designed for Open Babel v2.2.0.
Monday, November 10, 2008
Major fix in Mychem
In some case, the return value of Mychem functions was blank and no error were raised.
Fredrik Wallner has founded that setting a character at the end of the string to '\0' fixes this issue.
The old code:
const char *inputMol = args->args[0];
The new code:
char *inputMol = (char *) malloc(sizeof(char)*(args->lengths[0]+1));
strncpy(inputMol, args->args[0], args->lengths[0]);
inputMol[args->lengths[0]] = 0;
This indicates that the character string given by MySQL as parameter does not contains the '\0' character at the end.
Many thanks to Fredrik Wallner !
The road is now open to go to the next release (0.6.0)
Saturday, June 14, 2008
Mychem works on Windows XP
After some works on the source files and tuning Microsoft Visual Express C++, I'm proud to announce that Mychem is working on Microsoft Windows XP.
The Microsoft Windows version of Mychem will be released soon. The Mychem documentation will also contain a section about the compilation and the installation of Mychem on Windows XP.
Tuesday, April 08, 2008
New release of Mychem
The version 0.5.5 of Mychem has been released on 2008-04-08. The main changes are:
- New functions:
- strip_salts
- molecule_to_canonical_smiles
- is_2D
- is_3D
- is_chiral
- number_of_rings
- number_of_acceptors
- number_of_donors
- molpsa
- molmr
- mollogp
- Bug fixes
- Updated documentation
The Tanimoto function has been enhanced by two methods. The first was to store the
fingerprint as binary string. The second was to implement directly the tanimoto algorithm. Now, the Tanimoto coefficient computation of more than 70.000 entries takes less than 0.4 second on my laptop.
At least, a short article has been published about Pgchem and Mychem on Alchem.org.
Friday, February 22, 2008
Some news about Mychem
The last version is v0.4.5 and has been released on 2008-02-18.
There are three major updates in this version:
- The build system has been modified (each module is in a directory)
- Five function have been added to the property module
- The documentation has now a troubleshooting appendix
Tuesday, January 15, 2008
Chemical Structures v2.1
Each structure can be accessed through a web interface. Structure are displayed with the Jmol applet. These html pages contain also Microformat data (InChI and SMILES).
The project has been translated into 5 languages (english, dutch, french, german and spanish) and new languages can be easily added by editing a single file.
The project is actually used in german and french schools.
Wednesday, December 05, 2007
New European Initiatives about Open Access
Recently, two documents have been published:
- a document published by the Council of the European Union concerning access to scientific data (starting on page 37):
http://www.consilium.europa.eu/ueDocs/cms_Data/docs/pressData/en/intm/97225.pdf - a document published by the French National Research Agency (ANR) recommends to use the HAL service. The HAL service is one of the Open Archives Initiative projects in France:
http://www.agence-nationale-recherche.fr/actualite/13
Friday, August 17, 2007
Mychem 0.2 is out !
- conversion of chemical files (CML, InChI, SMILES, MDL Mol)
- calculation of some chemical properties (formula, molecular weight)
Other functions, like fingerprint generation or tanimoto calculation are available on the SVN trunk:
svn co https://mychem.svn.sourceforge.net/svnroot/mychem/trunk mychem
The package contains also:
- a short documentation (mychem.docbook)
- MychemAdmin, a graphical interface for creating MySQL chemical database (fig. 1)
Friday, July 27, 2007
CML file reloaded
<?xml version="1.0"?>
<molecule xmlns="http://www.xml-cml.org/schema"
xmlns:cml="http://www.xml-cml.org/dict/cml"
xmlns:units="http://www.xml-cml.org/units/units"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:iupac="http://www.iupac.org" id="CS_oxolane">
<formula concise=" C 4 H 8 O 1 "/>
<identifier convention="iupac:inchi" value="1/C4H8O/c1-2-4-5-3-1/h1-4H2"/>
<name convention="IUPAC">Oxolan</name>
<atomArray>
<atom id="a1" elementType="C" x3="-0.03" y3="1.09" z3="-0.03"/>
<atom id="a2" elementType="C" x3="-1.33" y3="0.28" z3="0.024"/>
<atom id="a3" elementType="O" x3="-1.01" y3="-1.10" z3="-0.13"/>
<atom id="a4" elementType="C" x3="0.39" y3="-1.30" z3="0.02"/>
<atom id="a5" elementType="C" x3="1.09" y3="0.06" z3="-0.04"/>
<atom id="a6" elementType="H" x3="0.04" y3="1.79" z3="0.82"/>
<atom id="a7" elementType="H" x3="-0.00" y3="1.73" z3="-0.94"/>
<atom id="a8" elementType="H" x3="-2.03" y3="0.51" z3="-0.79"/>
<atom id="a9" elementType="H" x3="-1.86" y3="0.39" z3="0.98"/>
<atom id="a10" elementType="H" x3="0.68" y3="-1.98" z3="-0.79"/>
<atom id="a11" elementType="H" x3="0.55" y3="-1.81" z3="0.98"/>
<atom id="a12" elementType="H" x3="1.72" y3="0.15" z3="-0.94"/>
<atom id="a13" elementType="H" x3="1.78" y3="0.20" z3="0.82"/>
</atomArray>
<bondArray>
<bond atomRefs2="a1 a2" order="1"/>
<bond atomRefs2="a2 a3" order="1"/>
<bond atomRefs2="a3 a4" order="1"/>
<bond atomRefs2="a4 a5" order="1"/>
<bond atomRefs2="a5 a1" order="1"/>
<bond atomRefs2="a1 a6" order="1"/>
<bond atomRefs2="a1 a7" order="1"/>
<bond atomRefs2="a2 a8" order="1"/>
<bond atomRefs2="a2 a9" order="1"/>
<bond atomRefs2="a4 a10" order="1"/>
<bond atomRefs2="a4 a11" order="1"/>
<bond atomRefs2="a5 a12" order="1"/>
<bond atomRefs2="a5 a13" order="1"/>
</bondArray>
<propertyList>
<property dictRef="cml:molwt" title="Molecular weight">
<scalar dataType="xsd:double" dictRef="cml:molwt" units="units:g">
72.11
</scalar>
</property>
<property dictRef="cml:isotopicwt" title="Monoisotopic mass">
<scalar dataType="xsd:double" dictRef="cml:monoisotopicwt" units="units:g">
72.06
</scalar>
</property>
<property dictRef="cml:mp" title="Melting point">
<scalar dataType="xsd:double" errorValue="1.0" dictRef="cml:mp" units="units:celsius">
-108
</scalar>
</property>
<property dictRef="cml:bp" title="Boiling point">
<scalar dataType="xsd:double" errorValue="1.0" dictRef="cml:bp" units="units:celsius">
65
</scalar>
</property>
</propertyList>
</molecule>
Thursday, July 19, 2007
PyMOL 1.0 is released
PyMOL 1.0 executables are available for download by current PyMOL Subscribers. The open-source code for 1.0 is freely available from the b10 branche of the subversion repository:
svn co https://pymol.svn.sourceforge.net/svnroot/pymol/branches/b10/pymol pymol-1.0
Read the entire news on the Alchem Website !
Tuesday, February 27, 2007
Chemical Structure 2.0 released !
- the project contains 524 structures
- the build system is based on CMake
- the user interface has been improved by using a new html design
- SMILES string is displayed on the molecule page
- Python scripts are used to generate html pages (instead of XSLT)
- name and formula indexes are available
- many bug fixes
- ...
Screenshot.

Chemical Structure Project. An online version is available on the following website:
http://chem-file.sourceforge.net/
Download. The last version can be downloaded on this page:
https://sourceforge.net/project/showfiles.php?group_id=169897
About Chemical Structures. The Chemical Structures project aims to provide a complete set of molecular structures. The version 2.0 contains over 500 structures of organic compounds. In addition to structural data, each file contains complementary informations, like molecular weight, boiling point, melting point or InChI code.
Chemical Structures is part of the Blue Obelisk Data Repository.
Thursday, February 22, 2007
KOpenBabel: a new building block for a chemistry-aware desktop
KOpenBabel is divided in three parts:
- KOpenBabel3: a KDE3 interface
- KOpenBabel4: a KDE4 interface
- QOpenBabel: a Qt4 interface
KOpenBabel3 and QOpenBabel are the most advanced projects. Translastions are available in french and german. All basic features are working. Some works are needed on the translation of KOpenBabel4. Each packages are released under the GNU Public License.
QOpenBabel has been successfully compiled on Microsoft Windows XP.
For furthers informations, visit the project website:
http://kopenbabel.sourceforge.net
Monday, January 08, 2007
A simple CML parser written in Python
Below is a simple module for parsing CML file. As you can see, it's really easy to add the support for another tags.
import xml.sax.handler
class CMLHandler(xml.sax.handler.ContentHandler):
def __init__(self):
self.id = ""
self.formula = ""
self.inIdentifier = False
self.inchi = "InChI/1="
self.inInChI = False
self.inBasic = False
self.name = ""
self.inName = False
self.weight = ""
self.inWeight = False
self.mpt = ""
self.mptSet = False
self.inMpt = False
self.bpt = ""
self.inBpt = False
self.bptSet = False
def startElement(self, name, attributes):
if name == "molecule":
self.id = attributes["id"]
if name == "formula":
self.formula = attributes["concise"]
if name == "identifier":
self.inIdentifier = True
if attributes.has_key("version") and attributes["version"] == "InChI/1":
self.inInChI = True
if name == "basic":
self.inBasic = True
if name == "name":
self.inName = True
if name == "scalar":
if attributes["dictRef"] == "cml:molwt":
self.inWeight = True
elif attributes["dictRef"] == "cml:mpt":
self.inMpt = True
elif attributes["dictRef"] == "cml:bpt":
self.inBpt = True
def characters(self, data):
if self.inName:
self.name += data
if self.inWeight:
self.weight += data
if self.inMpt:
self.mpt += data
if self.inBpt:
self.bpt += data
if self.inBasic and self.inInChI:
self.inchi += data
def endElement(self,name):
if name == "identifier":
self.inIdenfitier = False
if name == "basic":
self.inBasic = False
if self.inInChI:
self.inInChI = False
if name == "name":
self.inName = False
if name == "inchi":
self.inInChI = False
if name == "scalar":
if self.inWeight:
self.inWeight = False
elif self.inMpt:
self.inMpt = False
self.mptSet = True
elif self.inBpt:
self.inBpt = False
self.bptSet = True
Thursday, June 15, 2006
CML, a powerful chemical file type
By using the right style sheet, it's possible to transform or to render easily the information. For example, it's used in the chemical-structures project to generate html datasheet of each compound.
Some papers relevant to this topic have been published.
Here is an example of molecule (D-Alanine) in cml format:
<?xml version="1.0"?>
<molecule xmlns="http://www.xml-cml.org/schema/cml2/core"
id="D-alanine">
<name convention="IUPAC">(2R)-2-Aminopropanoic acid</name>
<atomArray>
<atom id="a1" elementType="H" x3="-3.496" y3="1.763" z3="-2.499"/>
<atom id="a2" elementType="C" x3="-3.687" y3="0.754" z3="-2.120"/>
<atom id="a3" elementType="N" x3="-2.411" y3="0.067" z3="-1.892"/>
<atom id="a4" elementType="H" x3="-1.649" y3="0.745" z3="-1.865"/>
<atom id="a5" elementType="H" x3="-2.208" y3="-0.558" z3="-2.672"/>
<atom id="a6" elementType="C" x3="-4.450" y3="0.847" z3="-0.803"/>
<atom id="a7" elementType="H" x3="-5.398" y3="1.380" z3="-0.932"/>
<atom id="a8" elementType="H" x3="-3.872" y3="1.391" z3="-0.048"/>
<atom id="a9" elementType="H" x3="-4.682" y3="-0.144" z3="-0.401"/>
<atom id="a10" elementType="C" x3="-4.453" y3="-0.004" z3="-3.198"/>
<atom id="a11" elementType="O" x3="-4.044" y3="-0.991" z3="-3.791"/>
<atom id="a12" elementType="O" x3="-5.639" y3="0.577" z3="-3.501"/>
<atom id="a13" elementType="H" x3="-6.093" y3="0.057" z3="-4.197"/>
</atomArray>
<bondArray>
<bond atomRefs2="a1 a2" order="1"/>
<bond atomRefs2="a2 a3" order="1"/>
<bond atomRefs2="a2 a6" order="1"/>
<bond atomRefs2="a2 a10" order="1"/>
<bond atomRefs2="a3 a4" order="1"/>
<bond atomRefs2="a3 a5" order="1"/>
<bond atomRefs2="a6 a7" order="1"/>
<bond atomRefs2="a6 a8" order="1"/>
<bond atomRefs2="a6 a9" order="1"/>
<bond atomRefs2="a10 a11" order="2"/>
<bond atomRefs2="a10 a12" order="1"/>
<bond atomRefs2="a12 a13" order="1"/>
</bondArray>
</molecule>