Monday, June 16, 2008

GenePython - What’s the Big Idea?

GenePython is exactly what its name suggests! It is the use of Python (www.python.org), a popular and simple, open-source programming language to simulate gene expression in silico. Python has a way to depict real objects in what Pythonspeak is called ‘classes’. Classes can also be formed from other classes thereby inheriting their properties and behavior.

GenePython uses Python classes to depict molecular objects and define their behavior. This allows the flexibility of not just exploring the behavior of a mixture of different objects in-silico but also redefining the response of individual objects to different stimuli.

So in GenePython we have a class defining a sequence, for instance a genome comprising of either DNA or RNA. Similarly, sequences involved in the central dogma of molecular biology as well as the adjunct can all be represented using the class ‘Sequence’ or classes that inherit from class Sequence.

This architecture allows GenePython to facilitate the rapid construction of a virtual cell capable of simulating processes within and similar to the central dogma. This means that it can be used to rapidly create and explore in silico gene expression, understand bio-molecules that can be derived, classify them, create metabolic networks and systems and even design a-life.

In our next blog, we will look at how class ‘Sequence’ works. We’ll get you to use this class and explore the different behavioral patterns possible with the class. Those of you who are new to Python need not fear… we’ll run you through the code in Englishspeak and guide you through installing Python on your computer.

Labels: , , , , , ,

5 Comments:

Blogger Ramray Bhat said...

Hello, since this is my first post, let me introduce myself by saying I study evolution and development for a living.
You have in this post, outlined a proposal to simulate the properties (correct me if I am wrong) of units/molecules, based on their established properties in vivo. Based on your simulations you plan to observe and let your in silico system exhibit/reveal properties of the same system on a higher heirarchical level of complexity, i.e. that of a cell.
I admire the bravado in this endeavor but doubt the reach of it. The reason is that the entire set of behaviors, if you may of any biological unit and even the number and type of components involved at any level has not been elucidated.
I appreciate the fact that miRNAs have been mentioned. I also expect you will account for natural dominant negatives, inherently disordered state of protein structures, noise regulation of gene expression by methylation/demethylation and such phenomena all of which seem to bear influence at the level of organization you plan to simulate.
Only, how much complexity will you stuff in to let the in-silico system try and simulate a-life?
I assure you I am no skeptic and I guess my argument is an anti-reductionist one, but one I cannot help making as I hope you are cognizant of this stumbleblock right at the outset. I wish you the very best of luck!
PS: Hope I didnt completely misunderstand the project and run out of track for miles!

June 18, 2008 8:56 AM  
Blogger sohan modak said...

Hi Ramray (is it how it is written?). In a sense, you are right. We do sound over-optimistic! Not really, whatever you have said about the complexities, captions, subcaptions, regulators, regulators of regulators, and the entire cascade is right and naturally involved in building a VIRTUAL CELL, or VIRTUAL LIFE. But we want to begin with the way the the information flows from DNA to RNA to polypeptide. And, right now we are in an ambiguous situation. Are we not, when we sort of ignore that some of the signalling elements must be operative on the plus strand and others on the minus strand?
Really that's the begining. genepython begins with the flow of genetic information and progressively, as more and dmore like minded persons join in, it will spread across the Life paradigm!
Welcome, we do value your participation and contribution.

sohan modak

June 23, 2008 12:39 AM  
Blogger Ramray Bhat said...

Thank you for your welcome Dr Modak, and yes, that is how my name is written. The project is of immense interest to me, and I am sure to follow, and learn from the future posts of this blog.
Every hierarchical level of phenotypic structure and organization has certain rules of interaction. The Central Dogma is certainly one at the molecular level, one which is implicitly assumed to work every time a researcher conducts experiments on every other level. It will be interesting to note the emergent properties from simulations of the Central proto-dogma, if I may. The ambiguity referred to, in your response is real.
Best of Luck!

June 23, 2008 12:31 PM  
Blogger Pranav Yajnik said...

Hi... although I am one of the contributors to the GenePython code this is my first post (well, its only a comment!). So let me introduce myself... I am a student of biology and have been so for the past few years. I am small in age, stature and mind, so please excuse what follows as the ramblings of someone who is just beginning to understand a very small part of the very small part of stuff that Nature has condescended to allow us humans to understand.
Being one of the actual coders that has coded the code that is the current form of GenePython, I shall hazard a guess as to what it currently does. As of now, GenePython is a utility that can scan character sequences to search for subsequences. We have made use of an elegant programming paradigm often referred to as 'Object Oriented Programming' in order to organise the searching in order to provide a 'biologically intuitive' interface to whomsoever that wishes to search these sequences for whatsoever reason. That is the first-glanced, slightly short-sighted view of GenePython.
Looking further, one may see that using the constructs that GenePython offers, one may organise his/her/its searching endeavours into a linear, hierarchical form, not very unlike something that would resemble the way that enzymes like RNA polymerase and ribosome work on their substrates i.e. they recognise signal sequences which spur them into action to create a product (which happens to be another sequence) and this product is passed on to another enzyme which does something similar.
I think the word 'simulation' is a bit confusing. Although it may be merely be a matter of niggling semantics, I would describe GenePython as an 'emulation' of a small subset of properties of certain sequence processing enzymes. GenePython was created for a specific purpose and it may eventually serve that purpose. It was not explicitly created to simulate biological complexity. At this juncture I shall hazard another guess... extending GenePython to actually simulate cellular events, rather than emulating the flow of genetic information, shall require an overhaul of our current design, not merely for the reason that the design is currently far too computationally inefficient to simulate physical events.
I suspect that Anupam might accuse me of being a pessimist (and Ramray might accuse me of lacking bravado!). This thread is incomplete without his comments... so looking to hear from you Anupam.

June 24, 2008 3:58 PM  
Blogger Anupam Saraph said...

First GenePython is a perspective. A perspective of in-silico a-life based on the central-dogma. You may well have your own perspective for in-silco life, for a-life or life not based on the central-dogma.

Gene python is then a python based framework for in-silco gene-engineering. What you will be able to do will depend on you, your ability to build on the framework further detailed views of the molecular understanding as you go, and perhaps your computational power.

Like all open-source projects it is the community which will drive its direction and accomplishments. It is for you to find the use of GenePython or to realize the power of the approach and have fun doing so.

I hope you participate in adding value and enjoy the process!

October 18, 2008 6:39 PM  

Post a Comment

<< Home