Back in the dark ages, when working on the first (now defunct) html version of the group website, I started to wonder a bit about making more use of plain text in my everyday workflows. As much as html isn’t exactly a convenient format for writing, I was tired of trying to herd figures into the right places in Word.
To me, one of the great advantages of using Blender to visualize molecules is that it’s a unified platform for rendering both high quality stills and animations. Even though I haven’t explored the animation side all that deeply, simple videos of rotating molecules and the like are trivially simple. I use this all the time in my courses to jazz up my lectures as an alternative to yet another bond-line structure.
In the last post, I talked about my experiences using Blender to visualize different aspects of my group’s research. In this post, I’ll give a quick introduction to the script I use to import geometries into Blender along with the template I import them into. The script brings in structures in PDB format files and can generate bond-line or space-filling models.
Most of the work we do in my group focuses on molecules or systems with somewhat complicated three-dimensional structures. A few years back, I was working on a proposal and found myself spending the better portion of a day struggling to draw a single ChemDraw graphic; it was of a compound with a stacked architecture and I was trying to fudge in a sort of 3D perspective. The process was tedious and the end result was deeply unsatisfying. It started to become clear that the work we were doing really demanded some means of rendering decent images of 3D objects, both molecules and abstract cartoons. That led to a little poking around online and eventually to Blender, a free, open source, professional-grade package for rendering 3D images and animations.
The last post went over pretty well, so I thought I’d follow-up with a quick how-to on RSS feeds for the uninitiated. Truthfully, this is a tremendously simple process. All that’s needed is a feed aggregator. For this purpose, I chose RSSOwl. This actually isn’t what I use (I use Reeder as a client for Feedbin, a cloud RSS reader), but RSSOwl is both free and multiplatform. The process shouldn’t be any more complicated with other clients. There are quite a number available for different PCs, smartphones, and tablets. Continue reading
Honestly, there’s nothing particularly novel about the topic of this post: using RSS feeds to keep up with the scientific literature. The technology has been around for ages. Nature Chemistry actually has a nice editorial on this subject (among other things) from a couple of years ago, and many library websites offer advice. So file this post under “advice for new grad students in my group that could be of interest to others”. If you already have a good RSS workflow I’m not sure there will be a whole lot on offer here. However, if you don’t, you really owe it to yourself to consider switching over. Perhaps as part of a New Year’s resolution to better keep up with the literature?
Here I thought I’d go through the script and explain its logic. The idea is that it could be modified to fit whatever format you get your MC output in or to change the information that it returns, hopefully even without a lot of programming experience.
Let me say at the outset that this was one of my first little Python projects. I make no claims that it’s particularly elegant or pythonic; in fact, I have plans for a newer version that will be a bit better organized. Criticisms always appreciated. That said, it does get the job done.
The script is written in Python. I decided to pick it up a few years ago as a way to get back into simple computer programming and haven’t looked back. I use it a lot for little projects like this one and for some simple applications in my group’s publications (like nonlinear curve fitting). Unfortunately, Python’s not a compiled language so you’ll have to have it installed in order to use the script, which is written in Python 3, not Python 2.[1. Right now a slow transition is taking place from Python 2 to 3. There’s still a lot done in 2, but I chose to learn 3 because my need for external packages is limited. Also, Python 3 is the scripting language for Blender, which will be the subject of many future posts.]
In an ideal world, I think we’d all prefer faculty-graded, free-response style exams. Unfortunately, that’s just not really realistic for a chemistry professor teaching large service classes.[1. The largest classes I’ve taught have up to about 200 students.] While we do use online homework for the classes I teach, we’re not really set up to use these sorts of systems as a primary assessment tool. That leaves, of course, machine-graded, multiple choice (MC) as the go-to format for most (but not all) of my exam questions.