Biologia orientada a objectes

Acabo de llegir un interessant article que explica l'aplicació del paradigma de l'orientació a objectes, propi dels populars llenguatges de programació Ruby, Java o C#, en la descripció estàtica i dinàmica dels diferents productes gènics i els seus derivats. Els atributs i propietats dels objectes, que poden ser tant proteïnes com els complexes ulteriors que formen, provenen dels termes dels vocabularis creats des del projecte Gene Ontology.
Aquesta aproximació és molt suggerent, atès que permet unir dintre del context de l'objecte les diferents ontologies o principis d'organització de la GO (Funció Molecular, Procés biològic i Component cel·lular).
Amb això és possible, per exemple, l'ús de diagrames de classe generats amb UML, per tal de descriure i simular els processos biològics, en particular la interacció dels seus components.
Aquí reprodueixo de l'article (en anglès) la correspondència dels principis d'orientació a objectes amb la integració del model amb la Gene Ontology.


Object-Oriented Term Object-Oriented Definition Object-Oriented use of the GO Example
Class A class is a template from which object instances are created. It specifies the common characteristics that objects created from it will contain Classes are created from gene products whose characteristics are defined by the GO molecular function and cellular component terms The class Smad 2 is created based on the properties of the gene product Smad 2, which are defined by molecular functions such as “protein homodimerization’ (GO:0042803) and ‘ATP binding’ (GO:0042301)
Object An instance of a class that contains unique properties Objects are created from the template classes, but may contain properties unique to a particular object Two different Smad 2 objects may be created, one of which is phosphorylated, and one which is not
Inheritance Relationships between classes, whereby a more specific class inherits all the properties and methods of the classes they belong to Relationships defined by ‘is a’ are generalizations in which child classes of the DAG inherit the properties of the parent class (if a child class has multiple parent classes, multiple inheritance applies) The cellular component ‘plasma membrane’ (GO:0005886) inherits the properties of the general class cellular component ‘membrane’
(GO:0016020)
Composition Certain objects may be assembled from collections of other objects ‘part_of’ relationships defined in the GO DAG are rendered as
composition relationships in an OOM
The ‘membrane’ (GO:0005623) and ‘intracellular’ (GO:0005622)
space are part of the ‘cell’ (GO:0005623)
Polymorphism The ability of an object to interpret messages differently when received by different objects GO functions may change for different proteins and be given different input and output values The function ‘protein homodimerization activity’ (GO:0042803) in the context of SMAD2 accepts two SMAD2s and outputs a dimerized SMAD2, whereas in the context of TGF-beta receptor II it accepts two receptors and outputs a dimerized receptor
Encapsulation Hiding the state and implementation of an
object
The exact mechanism by which an object is created is hidden in an OOM The details involved in the translation (GO: 0043037) of Smad
2 are hidden, but a Smad 2 molecule is still created