Archive for February, 2010
GSK Opens Up on Malaria
A few weeks ago, we posted a number of reasons why we believe the Pharmaceutical industry needs to pursue greater openness to accelerate innovation and reduce the cost and time of drug development. A few weeks after that, almost as if by magic, pharmaceutical giant GlaxoSmithKline made a very encouraging announcement which is hopefully a first step in the direction of openness and a promising boost to global health initiatives around the world working on Malaria:
GSK has screened its pharmaceutical compound library of more than 2 million molecules for any that may inhibit the malaria parasite P.falciparum, the deadliest form of malaria, which is found primarily in sub-Saharan Africa. This exercise took five scientists a year to complete, and has yielded more than 13,500 compounds that could lead to the development of new and innovative treatments for malaria, which kills at least one million children every year in Africa.
GSK will make these findings, including the chemical structures and associated assay data, freely available to the public via leading scientific websites. The release of these data will mark the first time that a pharmaceutical company has made public the structures of so many of its compounds in the hope that they could lead to new medicines for malaria.
Building upon its commitments to create a “knowledge pool” for neglected tropical diseases, GSK
today announced that governance of the “knowledge pool” will be taken over by an independent third party, BIO Ventures for Global Health (BVGH). GSK and BVGH have also signed a Memorandum of Understanding with the Emory Institute for Drug Discovery (EIDD) to join the pool and further open up knowledge, chemical libraries, and other assets in the search for new medicines for neglected tropical diseases. A second collaboration has also been established with South Africa firm iThemba Pharmaceuticals. This work will help research and discovery into new medicines to treat tuberculosis.
In addition to opening up its library of malaria hits to the public and creating a third-party administered “knowledge pool”, GSK is even promising to give 60 scientists access to its advanced facilities in Spain and a funding pool of $8 million to help fund malaria research.
While GSK is reaping (well-deserved) kudo’s for this, we believe (perhaps, more correctly, hope) that GSK is also using this to figure out if greater openness can help their underlying business and how best to do it. As a Nature editorial on the subject opines:
The move advances the pharmaceutical industry’s slow but steady shift towards more open sharing of data. At least for early-stage, precompetitive research, drug companies are finding it useful to lower the firewalls around their intellectual property and pool their resources. Making data public brings fresh eyes and minds to the problem, and has the potential to accelerate the discovery process.
Let’s hope this marks the beginning of a very productive move towards greater information sharing.
Voyager I’s Valentines Day Gift to the World
If you’re an astronomy buff, February 14 means a lot more than just Valentines Day. It also marks the fateful day (HT: NASA Jet Propulsion Laboratory), in 1990, when the Voyager I spaceprobe took a “family portrait” of all the planets of our solar system that it could see as one last parting gift before it shut down its camera and continued its journey towards “interstellar space”:
The diagram above shows the 60 frames that Voyager I took. The pictures aren’t high-resolution beauties (as a result of needing to use optical tricks to correct for the amazing brightness of the sun and the light it scatters, and smearing from the long exposure times needed to capture Neptune and Uranus), but it is still amazing to think that this is the only family portrait mosaic of the solar system ever taken. Closeups on the 6 prominently visible planets are below (left to right and top to bottom are Venus, Earth, Jupiter, and Saturn, Uranus, Neptune):
More details are at the NASA JPL page, but I will leave you all with this bit from Carl Sagan:
This was the image that inspired Carl Sagan, the the Voyager imaging team member who had suggested taking this portrait, to call our home planet "a pale blue dot."
As he wrote in a book by that name, "That’s here. That’s home. That’s us. On it everyone you love, everyone you know, everyone you ever heard of, every human being who ever was, lived out their lives. … There is perhaps no better demonstration of the folly of human conceits than this distant image of our tiny world."
Happy 20 year anniversary to the grandest family portrait humanity has ever taken, and happy Valentine’s Day to all.
Treating Python Functions as First Class Objects
For this Bench Press post, I wanted to discuss a relatively unused feature in Python which I found to be a big help while doing some Benchside-related coding. For many coders, the programming experience centers around C, C++, and/or Java. While these three languages are still widely used and are as prominent as ever, the transition from these “C-like” syntaxes to Python can be a bit tough. Oftentimes, programmers learn only a portion of Python’s syntax and proceed to write “Java-like” Python. As a result, their Python code can become unnecessarily long, inefficient, and un-Pythonic, mainly because the best way to write a program in Java isn’t always the best way to write it in Python.
While there are many ways to write Pythonic code, one of the key features most people typically don’t employ is the use of functions as first-class objects. To see what I mean by first-class object, let’s take a look at the following Python functions:
def sumOfSquares(a, b):
return a**2 + b**2
def sumOfCubes(a, b):
return a**3 + b**3
def sumOfNegatives(a, b):
return (-a) + (-b)
While these functions will do the job, each function essentially performs the same duty, only with minor adjustments. As a programmer, you should have alarms going off, as one of the cardinal sins in programming is to write redundant code. While there are solutions to this in C, C++, or Java (such as using templates), none are as clean, in my opinion, as Python’s:
def square(a):
return a**2
def cube(a):
return a**3
def negative(a):
return -a
def sum (a, b, function):
return function(a) + function(b)
For our examples, sumOfSquares becomes sum(a, b, square), sumOfCubes becomes sum(a, b, cube), and sumOfNegatives becomes sum(a, b, negative). What makes this Pythonic solution more impressive is that the function sum actually takes in as an argument a function (in our case, square, cube, and negative)! Not only does this allow sum to be generalized for other functions (for example, square root or double), instead of writing out sumOfSquares, sumOfCubes, etc. we simply need to invoke the sum function with the proper function.
In addition to being passed as an argument, first-class functions can also be stored within data types (like lists and dictionaries), returned from functions, and referenced by variables. If you are new to this style of programming, I recommend reading a few Python tutorials on how to use higher order functions and experimenting on your own.
Extra for experts: For those C/C++/Java wizards out there, yes I realize C and C++ have similar functionality using function pointers, and that Java has a built-in function object interface. However, each of these generally requires a very messy implementation and aren’t usually taught in standard courses. Furthermore, you will find that Python’s support of higher order functions is much more expansive and well-documented (such as built-in support for map, reduce, and filter operations).
Also, some of you may find that my example above skimped out on my example because I haven’t actually declared a sumOfSquares or sumOfCubes. I agree, while sum(a, b, square) is equivalent to sumOfSquares, to actually declare a sumOfSquares function object, I’ll need to introduce lambda. In short:
sumOfSquares = lambda a, b: sum(a, b, square)
sumOfCubes = lambda a, b: sum(a, b, cube)
Lambda creates objects known as “anonymous functions,” which can be assigned to a variable name like sumOfSquares. Our new version of sumOfSquares is completely equivalent to the one that we first defined at the top.
Show us the money!
We have always sought out new frontiers and this generation is no different. Today’s frontiers can’t be found on a map. They’re being explored in our classrooms and our laboratories, in our start-ups and our factories. And today’s pioneers are not traveling to some far flung place. These pioneers are all around us — the entrepreneurs and the inventors, the researchers, the engineers — helping to lead us into the future, just as they have in the past. This is the nation that has led the world for two centuries in the pursuit of discovery.
-President Barack Obama, Energy Speech at MIT October 23, 2009
As a candidate for President and throughout President Obama’s first year he has established himself as a friend of the scientific community. He has made many statements like the one above poignantly establishing the importance of innovation and scientific discovery in our nation’s goals. However, supportive statements don’t pay the bills and as I’ve had reiterated to me several times during my conversations with various professors at graduate school interviews; funding is king. Ultimately, the best way for President Obama to demonstrate his support of the sciences is to show us the money. He started off on the right foot with the science funding handed out in the stimulus package last year. The chart below illustrates President Obama’s proposed budgetary changes.
Minus the small decrease in funding for the CDC, many scientific organizations could potentially see sizable increases in funding. As I’ll be starting my graduate work in biosciences next fall I’m extremely happy to see the proposed increases. I’m quite surprised to see a reduction in funds budgeted to the CDC after the recent swine flu outbreak. However, the overall increase in funding is a huge step forward compared to the prior administration. Hopefully Congress will pass a budget with increases similar to the President’s proposed budget. These funds could be used to improve the financial status of many labs across the country that were affected by declining funding availability. I’ve got my fingers crossed that President Obama will continue supporting the sciences in not just his speeches but in his actions as well.


