﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&lt;h3 style="font-family: Comic Sans MS"&gt;&lt;font color="#FA1A0A" size="10"&gt;︻┳═一Java&lt;/font&gt;&lt;/h3&gt;-随笔分类-Openbabel</title><link>http://www.blogjava.net/rain1102/category/42273.html</link><description>&lt;br/&gt;&lt;font color="green" style="font-family: 华文行楷;font-size:16px;"&gt;子曰：危邦不入，乱邦不居。天下有道则见，无道则隐。&lt;/font&gt;&lt;font color="#3C1435"&gt;&lt;/font&gt;</description><language>zh-cn</language><lastBuildDate>Fri, 20 Nov 2009 14:31:45 GMT</lastBuildDate><pubDate>Fri, 20 Nov 2009 14:31:45 GMT</pubDate><ttl>60</ttl><item><title>mol2ps-a freeware tool for 2D depiction of molecular structures</title><link>http://www.blogjava.net/rain1102/archive/2009/11/20/303059.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 20 Nov 2009 07:26:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/11/20/303059.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/303059.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/11/20/303059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/303059.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/303059.html</trackback:ping><description><![CDATA[<span style="font-weight: bold">mol2ps</span> is a freely available command-line utility program which reads molecular structure files in different formats (see below) and generates Postscript output for 2D display. The Postscript file can then be used e.g. for creating a bitmap file, using a Postscript interpreter like <a href="http://www.cs.wisc.edu/~ghost/">Ghostscript</a>.<br />
<br />
As an example, the following 2D representation of caffeine in PNG (Portable Network Graphics) format was created from the corresponding MDL molfile (<a href="http://pubchem.ncbi.nlm.nih.gov/">PubChem</a> CID <a href="http://pubchem.ncbi.nlm.nih.gov/summary/summary.cgi?cid=2519">2519</a>), using mol2ps in combination with Ghostscript:<br />
<br />
<img title="" style="width: 154px; height: 132px" alt="Caffeine 2D structure" src="http://merian.pch.univie.ac.at/~nhaider/cheminf/caffeine.png" /><br />
<br />
As input files, MDL molfiles and SD files (*.mol, *.sdf; 2D and 3D), Alchemy molfiles (*.mol), and Sybyl mol2 files (*.mol2) are accepted by mol2ps, the preferred format is the MDL molfile format. At present, it is not intended to extend the number of supported input file formats, as there are powerful file format converters available, such as <a href="http://openbabel.sourceforge.net/">OpenBabel</a>.<br />
<span style="font-weight: bold"><br />
</span>The main purpose of mol2ps is to create small, but high-quality 2D pictures of molecules for display on web pages. Especially for web-based molecular structure databases it is quite useful to have pre-built pictures for display in hitlists instead of invoking browser plugins, <a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a> applets, or server-side programs for display of the individual structures. A description of how such structure databases can be created with free software is given <a href="http://merian.pch.univie.ac.at/~nhaider/cheminf/moldb.html">here</a>.<br />
<br />
<p><span style="font-weight: bold">Availability</span></p>
<span style="font-weight: bold">mol2ps</span> is freely available under the terms of the GNU General Public License (GPL), for a detailed description of this license, please visit <a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>.<br />
It is written in Pascal and it was compiled with the <a href="http://www.freepascal.org/">Free Pascal</a> compiler for the following platforms: Linux i386, FreeBSD i386, Windows (Win32 console application). You may use it on your own risk, there is no warranty for anything.<br />
<br />
<p><span style="font-weight: bold">Download</span></p>
<div style="margin-left: 40px">source code: <a href="http://merian.pch.univie.ac.at/pch/download/chemistry/mol2ps/mol2ps.pas">mol2ps.pas</a> (approx. 139 KB)<br />
Linux (i386) executable: <a href="http://merian.pch.univie.ac.at/pch/download/chemistry/mol2ps/bin/mol2ps-latest-linux-i386.gz">mol2ps-latest-linux-i386.gz</a> (approx. 81 KB)<br />
FreeBSD (i386) executable: <a href="http://merian.pch.univie.ac.at/pch/download/chemistry/mol2ps/bin/mol2ps-latest-freebsd-i386.gz">mol2ps-latest-freebsd-i386.gz</a> (approx. 114 KB)<br />
Win32 console application: <a href="http://merian.pch.univie.ac.at/pch/download/chemistry/mol2ps/bin/mol2ps-latest-win32.zip">mol2ps-latest-win32.zip</a> (approx. 62 KB)<br />
example color definition file: <a href="http://merian.pch.univie.ac.at/pch/download/chemistry/mol2ps/color.conf">color.conf</a> <br />
</div><img src ="http://www.blogjava.net/rain1102/aggbug/303059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-11-20 15:26 <a href="http://www.blogjava.net/rain1102/archive/2009/11/20/303059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Python中使用openbabel</title><link>http://www.blogjava.net/rain1102/archive/2009/10/25/299655.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Sun, 25 Oct 2009 04:37:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/10/25/299655.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/299655.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/10/25/299655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/299655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/299655.html</trackback:ping><description><![CDATA[<p>如果你的环境还没准备好, 可以官方网站看如何配置环境:http://openbabel.org/wiki/Install_Python_bindings<br />
<strong>1. 通过使用OBMol, OBAtom和OBBond来创建原子和键</strong><br />
import openbabel<br />
<br />
mol = openbabel.OBMol()<br />
print 'Should print 0 (atoms)'<br />
print mol.NumAtoms()<br />
<br />
a = mol.NewAtom()<br />
a.SetAtomicNum(6)&nbsp;&nbsp; # carbon atom<br />
a.SetVector(0.0, 1.0, 2.0) # coordinates<br />
<br />
b = mol.NewAtom()<br />
mol.AddBond(1, 2, 1)&nbsp;&nbsp; # atoms indexed from 1<br />
print 'Should print 2 (atoms)'<br />
print mol.NumAtoms()<br />
print 'Should print 1 (bond)'<br />
print mol.NumBonds()<br />
<br />
mol.Clear();<br />
<br />
<strong>2. 通过OBConversion来读取分子, 并输出不同格式文件或字符串值</strong><br />
import openbabel<br />
<br />
obConversion = openbabel.OBConversion()<br />
obConversion.SetInAndOutFormats("smi", "mdl")&nbsp;&nbsp;&nbsp; //读取smiles值, 然后输出mdl值<br />
<br />
mol = openbabel.OBMol()<br />
obConversion.ReadString(mol, "C1=CC=CS1")<br />
<br />
print 'Should print 5 (atoms)'<br />
print mol.NumAtoms()<br />
<br />
mol.AddHydrogens()<br />
print 'Should print 9 (atoms) after adding hydrogens'<br />
print mol.NumAtoms()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //输出原子个数<br />
<br />
outMDL = obConversion.WriteString(mol)<br />
<br />
<strong>3. 计算fp值</strong><br />
import pybel<br />
smiles = ['CCCC', 'CCCN']<br />
mols = [pybel.readstring("smi", x) for x in smiles]&nbsp;&nbsp; # Create two molecules from the SMILES<br />
fps = [x.calcfp() for x in mols]&nbsp;&nbsp; # Calculate their fingerprints<br />
print fps[0].bits, fps[1].bits<br />
print fps[0].fp[0]<br />
<br />
mol2 = pybel.readstring('smi', 'c2ccc1ccccc1c2')<br />
fp2 = mol2.calcfp("FP4")<br />
print fp2<br />
print fp2.bits</p>
<br />
<p>mol3 = pybel.readstring('smi', 'C1CCCCC1')<br />
fp3 = mol3.calcfp()</p>
<p>print fp3.__or__(fp2)&nbsp; //计算相似度值<br />
<br />
<span style="color: #008000"><strong style="color: #000000">4. 读取sdf文件<br />
</strong></span>#encoding=utf-8<br />
import pybel<br />
for mymol in pybel.readfile("sdf", "structures_all.sdf"):<br />
&nbsp;&nbsp;&nbsp; fp = mymol.calcfp("FP2")<br />
&nbsp;&nbsp;&nbsp; print fp<br />
<br />
<strong>5. 输出txt文件和sdf文件</strong></p>
print mymol.write("smi")&nbsp;&nbsp;&nbsp; //'CCCC'<br />
mymol.write("smi", "outputfile.txt")<br />
largeSDfile = Outputfile("sdf", "multipleSD.sdf")<br />
largeSDfile.write(mymol)<br />
largeSDfile.write(myothermol)<br />
largeSDfile.close()<br />
<br /><img src ="http://www.blogjava.net/rain1102/aggbug/299655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-10-25 12:37 <a href="http://www.blogjava.net/rain1102/archive/2009/10/25/299655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Openbabel子结构匹配</title><link>http://www.blogjava.net/rain1102/archive/2009/10/21/299137.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 21 Oct 2009 00:55:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/10/21/299137.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/299137.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/10/21/299137.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/299137.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/299137.html</trackback:ping><description><![CDATA[<p>package com.founder.openbabel;</p>
<p>import org.openbabel.OBConversion;<br />
import org.openbabel.OBMol;<br />
import org.openbabel.OBSmartsPattern;</p>
<p>public class Test {</p>
<p>&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Initialise<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.loadLibrary("openbabel_java");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Read molecule from SMILES string<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBConversion conv = new OBConversion();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OBMol mol = new OBMol();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conv.SetInFormat("smi");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conv.ReadString(mol, "C(Cl)(=O)CCC(=O)Cl");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // What are the indices of the carbon atoms<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // of the acid chloride groups?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">&nbsp;OBSmartsPattern acidpattern = new OBSmartsPattern();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acidpattern.Init("C(=O)Cl");<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long t1 = System.currentTimeMillis();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000">boolean flag = acidpattern.Match(mol);<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long t2 = System.currentTimeMillis();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Cost time:" + (t2-t1) + "ms");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(flag);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>}<br />
</p><img src ="http://www.blogjava.net/rain1102/aggbug/299137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-10-21 08:55 <a href="http://www.blogjava.net/rain1102/archive/2009/10/21/299137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>