We have used Crow to integrate different sets of predicted
interactions between proteins of Mycobacterium tuberculosis
with sequence-, structure- and various other
information. From this knowledge source we selected several
(suggested) protein pairs for which we can model the
structure of both binding partners. These interactions are
now, in a first step, validated experimentally and their
structure will then be modelled with our flexible
protein-protein docking strategy and additional experimental data.
The following example shows how the Jython interface to Crow
can be used for interactive work. We load a list of proteins
from a semantic web document and select all interactions
between proteins with a close homologue in the PDB database
of protein structures. This is an example for
interactive work. Application programmers would use
other, event-based strategies.
## define URL-shortcut
SpaceMap.put( "bio", URI ("file:///home/user/protein_properties.n3#") )
## get some property types from central repository
pt_homology = PropMap.getType("bio:homology")
pt_identity = PropMap.getType("bio:identity")
pt_coverage = PropMap.getType("bio:alnCoverage")
pt_interaction = PropMap.getType("bio:interaction")
pt_score = PropMap.getType("bio:score")
pt_from, pt_to = PropMap.pt_from, PropMap.pt_to
## load list of proteins
prot_store = UriMap.getStore("file:///home/user/mtb_proteins.n3#"))
prot_store.update()
all_prot = prot_store.getAll()
## select homologies to template structures in the PDB, wait until
the data
## are loaded from a cross-linked file (at most 1000s)
homologies = all_prot.valuesOf(pt_homology, 1000 )
homologies = homologies.filterBy(pt_identity, 0,3, 1.0)
homologies = homologies.filterBy(pt_coverage, 0.75, 1.0)
## select modelable proteins
model_prot = all_prot.filterBy( pt_homology, homologies )
## get interactions between modelable proteins
interactions = model_prot.valuesOf( pt_interaction )
model_interactions = interactions.filterBy(pt_from, model_prot).filterBy(pt_to, model_prot)
## save target interactions into new semantic web document
new_store = UriMap.getStore("http://.../target_interactions_current.n3#")
new_store.addAll( model_interactions )
new_store.setLocal( "/home/user/target_interactions.n3")
new_store.save()
|