<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Depth-First: Tag scripting</title>
    <link>http://depth-first.com/articles/tag/scripting</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Walking the Web of Chemical Informatics</description>
    <item>
      <title>PerlMol: A Case Study in Open Source Cheminformatics Software</title>
      <description>&lt;p&gt;&lt;a href="http://www.perlmol.org/"&gt;&lt;img src="http://depth-first.com/demo/20071115/perlmol.png" align="right"&gt;&lt;/img&gt;&lt;/a&gt;How does open source software happen? Although many factors come into play, the majority of answers seem to revolve around a simple theme: developers building solutions to fill their own needs. Yet only a fraction of these solutions end up becoming open source software. And only a fraction of those end up being used by a wider audience. What's the key ingredient? There's still a lot to learn from studying individual cases.&lt;/p&gt;

&lt;p&gt;Readable discussions about the origins of specific open source projects are pretty rare, but those dealing with the origins of open source cheminformatics software are more uncommon still. So it was with great interest that I came across &lt;a href="http://www.ddj.com/web-development/184416118"&gt;Ivan Tubert-Brohman's account&lt;/a&gt; of how &lt;a href="http://www.perlmol.org/"&gt;PerlMol&lt;/a&gt; was created.&lt;/p&gt;

&lt;p&gt;PerlMol is an open source "collection of Perl modules for cheminformatics and computational chemistry." Many software packages fit into this category, and some of them are open source, so why write another? For Tubert-Brohman, the deciding factor was being able to work in his preferred environment, Perl:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;I was surprised that CPAN [&lt;a href="http://www.cpan.org/"&gt;The Comprehensive Perl Archive Network&lt;/a&gt;] was sorely lacking in terms of modules for chemistry. The only available modules were Chemistry::Element, which allows you to convert between atomic number, element symbol, and element name and store other elemental information; and Chemistry::MolecularMass, which calculates the mass from the molecular formula. There were no modules that actually dealt with the structure of molecules. While some of the options in other languages are not bad, I was looking for something with the simplicity and conciseness of Perl that could allow me to write "chemical one-liners" to solve small problems very quickly, without having to compile anything. Hence, PerlMol was born.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The elimination of the need to compile, and relaxed syntaxes that promote succinct code are two of the biggest reasons to try a &lt;a href="http://depth-first.com/articles/2006/11/14/eleven-free-cheminformatics-scripting-environments"&gt;cheminformatics scripting environment&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There's a lot of great software still to be written in cheminformatics, and some of it will be open source. Although open sourcing that side project you've been working on may not be the best option for your career or your company, studying case studies like that of PerlMol gives plenty of food for thought.&lt;/p&gt;</description>
      <pubDate>Thu, 15 Nov 2007 09:49:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:0ed89b69-2a1f-4495-b8b1-ae7c8c8eb31c</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/11/15/perlmol-a-case-study-in-open-source-cheminformatics-software</link>
      <category>Open X</category>
      <category>perlmol</category>
      <category>scripting</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Eleven Free Cheminformatics Scripting Environments</title>
      <description>&lt;p&gt;A &lt;a href="http://tech.groups.yahoo.com/group/chemoinf/message/235"&gt;recent question&lt;/a&gt; on Yahoo's chemoinf forum got me thinking about free cheminformatics scripting environments. If you've ever wanted to learn an object-oriented scripting language such as Ruby, Python, Perl, or Groovy in the context of cheminformatics, there are many good options to choose from. Few experiences expand a programmer's horizons more than learning one of these &lt;a href="http://www.journalhome.com/codecraft/9003/"&gt;freedom languages&lt;/a&gt;. This is especially true for developers who, like myself, come from a background involving the safety languages C++ and Java.&lt;/p&gt;

&lt;p&gt;Below is a complete roundup of Open Source cheminformatics scripting environments, grouped by language. If closed, commercial offerings were included, this list would, of course, be longer. In the interest of full disclosure, I am the author of RCDK and have worked on OBRuby.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;img src="http://depth-first.com/files/ruby_logo_new.gif" align="right"&gt;&lt;/img&gt;&lt;a href="http://depth-first.com/articles/2006/10/30/agile-chemical-informatics-development-with-cdk-and-ruby-rcdk-0-3-0"&gt;Ruby Chemistry Development Kit (RCDK)&lt;/a&gt;- IUPAC nomenclature translation, 2-D structure layout, 2-D color rendering. RCDK combines the capabilities of three Open Source Java toolkits with the agility of the Ruby platform, all in an easy-to-install package. Parse IUPAC nomenclature. Create 2-D coordinates for SMILES strings and IUPAC names. Render anti-aliased color 2-D molecular images in SVG, PNG, and JPG format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2006/10/31/obruby-a-ruby-interface-to-open-babel"&gt;Ruby/Open Babel: OBRuby&lt;/a&gt;- A recent addition to the growing family of alternative programming interfaces offered by the C++ toolkit &lt;a href="http://openbabel.sf.net"&gt;Open Babel&lt;/a&gt;. Interconvert several molecular languages including SMILES, molfile, CML, PDB, and InChi. Perform sophisticated molecular queries with SMARTS pattern matching.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.chemruby.org/hiki/"&gt;Chemruby&lt;/a&gt; &lt;a href="http://rubyforge.org/projects/chemruby/"&gt;Rubyforge Site&lt;/a&gt; - A pure Ruby toolkit with portions written in C to speed performance. Although I successfully installed Chemruby on my system, I can't use it due to a failed dependency on a library called "dbm".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://rubyforge.org/projects/molruby"&gt;Molruby&lt;/a&gt; - Parse SDFiles in Ruby or on the command line. Molruby is clearly a project in it's early stages. On the other hand, if you're interested in learning Ruby, Molruby's small size may be suited to getting familiar with key concepts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;img src="http://depth-first.com/files/python-logo.gif" align="right"&gt;&lt;a href="http://www.dalkescientific.com/PyDaylight/"&gt;PyDaylight&lt;/a&gt; - A "Pythonic", "thick" interface to the popular &lt;a href="http://www.daylight.com/"&gt;Daylight toolkit&lt;/a&gt;. The author, &lt;a href="http://www.dalkescientific.com/"&gt;Andrew Dalke&lt;/a&gt; has done a great deal to promote the idea of applying scripting languages to cheminformatics. Unfortunately, Daylight's toolkit isn't yet offered under an Open Source license, making it difficult for me to evaluate the PyDaylight interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://openbabel.sourceforge.net/wiki/Python"&gt;Python/Open Babel&lt;/a&gt; - Access a good chunk of the impressive Open Babel API through Python. I needed to perform a &lt;a href="http://sourceforge.net/mailarchive/forum.php?thread_id=30886953&amp;amp;forum_id=45398"&gt;a small modification&lt;/a&gt; to get OBPython working on my system. After that this package worked exactly as advertised.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://almost.cubic.uni-koeln.de/cdk/cdk_top/cdk_news/archive/cdknews2.2.article17.pdf"&gt;Python/CDK&lt;/a&gt; - Use &lt;a href="http://www.jython.org/Project/"&gt;Jython&lt;/a&gt; to access the complete CDK API using Python. Jython is a Java implementation of the Python interpreter, and so this use of the CDK lets developers combine their favorite Java and Python software.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://frowns.sourceforge.net/"&gt;FROWNS (Python)&lt;/a&gt; - Loosely based on the PyDaylight API by Andrew Dalke. Read and write SMILES and Molfiles. Perform SMARTS queries, work with fingerprints and enumerate molecular cycles. With optional &lt;a href="http://www.graphviz.org/"&gt;GraphVis&lt;/a&gt; support, render 2-D molecular images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;img src="http://depth-first.com/files/lcamel.gif" align="right"&gt;&lt;a href="http://openbabel.sourceforge.net/wiki/Perl"&gt;Perl/Open Babel&lt;/a&gt; - Use &lt;a href="http://openbabel.sf.net"&gt;Open Babel&lt;/a&gt; from Perl. I was &lt;a href="http://sourceforge.net/mailarchive/forum.php?thread_id=30895758&amp;amp;forum_id=45398"&gt;unsuccessful&lt;/a&gt; in building OBPerl on my system; your mileage may vary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.perlmol.org/"&gt;Perlmol&lt;/a&gt;- Read and write a number of common formats including SMILES, molfile, SLN, and PDB. Query by molecular and reaction pattern. Installation on my system went smoothly. One of the best-documented projects on this list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;img src="http://depth-first.com/files/groovy.png" align="right"&gt; Groovy/CDK - &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt; is a relatively new object-oriented scripting language for Java. I found no Internet references on using Groovy with CDK in English, although it should be simple to do. If you read Japanese, try &lt;a href="http://cheminformatics.seesaa.net/article/22870145.html"&gt;this link&lt;/a&gt;. Stay tuned for more on this interesting combination.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
      <pubDate>Tue, 14 Nov 2006 16:13:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:2f7ed7b3-e129-44e7-a62a-d97b78849b61</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2006/11/14/eleven-free-cheminformatics-scripting-environments</link>
      <category>Tools</category>
      <category>scripting</category>
      <category>opensource</category>
      <category>python</category>
      <category>ruby</category>
      <category>perl</category>
      <category>groovy</category>
    </item>
  </channel>
</rss>
