This blog post explores the RDKit function ConstrainedEmbed.
Continue readingCategory Archives: Python
Should scientists learn C++?
Conventional wisdom dictates that compiled languages are slow to develop, can be slow to compile, but are fast to run. Interpreted languages are easy to use and do not require compilation but have sluggish performance. Like most people in scientific computing, the first two languages I learned were C++ and Python; I use Python every day but when, if ever, would I use C++?
Continue readingQuick Python tricks
It’s always fun when you stumble across something in your programming toolkit that you had never noticed. Here are three things I’ve recently enjoyed learning.
- Ternary syntax
a = int(raw_input()) is_even = True if a % 0 == 0 else False
- Enumerate
I’ve been looping over the length of my list, all these years, like a chump. It turns out you can do this:
for index, item in enumerate(some_list): # now the index of each item is available as well as the item
# Don't do do this for index in range(len(some_list)): item = some_list[index]
- for… else
Every so often, you really need to know that a for loop has run to completion. That’s what for…else is for!
for item in iterable:
if item % 0 == 0:
first_even_number = item
else:
raise ValueError('No even numbers')
Some useful tools
For my blog post this week, I thought I would share, as the title suggests, a small collection of tools and packages that I found to make my work a bit easier over the last few months (mainly python based). I might add to this list as I find new tools that I think deserve a shout-out.
Biopandas
Reading in .pdb files for processing and writing your own parser (while being a good exercise to familiarize yourself with the format) is a pain and clutters your code with boilerplate.
Luckily for us, Sebastian Raschka has written a neat package called biopandas [1] which enables quick I/O of .pdb files via the pandas DataFrame class.
Continue reading