Introduction to Neomania and Its Impact
“Neomania” is a term coined by Nassim Nicolas Taleb, in his book Antifragile [1]. It refers to an unhealthy yearning for anything new, where the newness of a product or idea overcomes any weakness, deficiency, or difficulty of use. For some reason, traditional examples often cite Apple products, but “early adopters” are everywhere. In article 69 of his excellent compendium, The Art of Thinking Clearly [2], Rolf Dobelli explains that evolution will soon weed out most of these new inventions. The world 50 years from now will look similar to the world of 50 years ago (especially pleasing is his description of the fork, invented roughly 2000 years ago, as a “killer app”).
However, this “survival of the fittest” is critical to understanding why newness is goodness in our particular domain, chemistry software. There are several different “levels” of newness that we can consider:
- The provision of “toolkits” rather than apps
- Empowering the use of the latest scripting languages (e.g Python) to expose the toolkit
- Introducing specific new features in the toolkit APIs
Understanding the Pipeline Pilot Chemistry Software Development Kit (SDK)
The Pipeline Pilot Chemistry Software Development Kit (SDK) from BIOVIA provides an excellent context for discussing the above points.
The first point has in fact, long been a strategic choice for a cheminformatics provider, and many have changed their strategy over the last 30 years. Fundamentally, providing a toolkit is driven by the realization that there are in fact many scientists with sophisticated skills in both chemistry and programming. Given the right toolkit, they can do amazing research, which can go into the “survival of the fittest” process which is scientific peer review.
The Pipeline Pilot Chemistry SDK is a standalone toolkit for chemistry. You simply have good-old “Pipeline Pilot Chemistry” [3] objects and their methods, which you call in your own code, outside of the data pipelining environment of Pipeline Pilot. By the way, this makes the execution on chemistry-focused calculations even quicker than doing it through Pipeline Pilot.
The second point has also proven to be a no-brainer becuase Python is now hard to put second to any other scripting language. It is difficult to look 50 years into the future of software. Still, the level of skills in Python of most programmers today can be guaranteed (I may come to regret saying this, given my level of Perl usage ten years ago compared to that today).
One of the reasons for such rapid acceptance is the Python Jupyter Notebook, which is an efficient way of writing, executing, and documenting your code via a web browser. A screenshot of a “chemistry notebook” is shown below:
Leveraging New Features in the 2023 Release
Python also simplifies deploying the SDK, as you can install it directly into Python using a wheel, newly available in the 2023 release.
Finally, as shown in Figure 1, I’m fixing nitro groups, a common task. But here I’m able to make use of a nice new feature in the latest (2023) release of the SDK: a function which uses a Python “predicate” (Boolean-valued function) to give me a list of chemistry objects (e.g. atoms or bonds in a given molecule).
This is a simple but flexible way of exploring a molecule to find groups that need fixing. It is part-way between a simple loop (too low-level for my taste) and a full-blown subgroup mapping, with its complex class extensions and method overrides.
Using this new function, I managed to trim a large chunk of code out of my fixNitroGroups() function. Now, I can hear you thinking: “Is this really important?” Yes, because now I am down in the DNA of my application. The code is the DNA of our software applications, and the stronger we make it, the more robust the application becomes, and the more likely it is to survive.
This is why newness is goodness for us. Introducing a fresh method simplifies our code, enabling us to channel our efforts toward generating groundbreaking scientific advancements and pushing the boundaries of innovation and exploration.
References
[1] https://en.wikipedia.org/wiki/Antifragile_(book)
[2] https://en.wikipedia.org/wiki/The_Art_of_Thinking_Clearly