High level language for describing reaction schema
We need a language to describe actual and hypothetical preparations,
including reactions, conditions, duration, quantities, annotations,
etc. Such a language should be rigorous enough to do unambiguous
"chemistry in a computer", yet flexible enough to be useful for
representing real world chemistries.
VCL is an experiment -- it doesn't exist yet
VCL is just a gleam in our collective eye so far;
we're still working on proof-of-principle programs.
The VCL paradigm is a real-world laboratory
With VCL, you create objects representing real things
(e.g., reagents, reactions, containers)
then do things with them
(e.g., react, add, and remove molecules from containers).
VCL is a simple but formal language
A VCL specification is composed of a series of commands.
The trick is to make them intuitive yet powerful.
Here are the VCL 0.3 commands.
Generic vs specific reaction schema
We expect that VCL will be able to represent both
specific reaction schemes (e.g., from synthetic papers)
and generic reaction schemes
(e.g., processes in laboratories and factories).
Examples
Combinatorial synthesis schema
The generalized SET object allows real-world combinatorial
(and not-so combinatorial) schema to be simulated,
e.g., operate on sets of containers.
A great advantage of VCL is that "messy" pseudo-combinatorial
preparations are easy to encode (unlike CHORTLES or MTZ).
Database model
Our conceptual model for the database representation of specific
VCL's is to store them as a reaction, i.e., key VCLs by (overall)
reactants and products. Explicit reactions and reaction intermediates
could be automatically crossreferenced.
The same approach might be used with generic VCL's using the
"transformation SMILES".
With this model, VCL's would be searchable but not uniqifiable.
The Thor datatype would be something like:
VCL<name;vcl;dummyargs>
Outstanding issues
What is the relationship between VCL and reaction databases
e.g., how about the ability to substitute
LOOKUP for
CREATE anywhere?
What is the relationship between VCL and the proposed
synthesis schema engine?
Should VCL process concentration/volume information,
e.g., be able to produce a "recipe"?
Should VCL annotations be searchable?
Should VCL include GCL-like operations,
e.g., REQUIRE?
Should VCL operate on other computed properties?
E.g.,
REMOVE MOLECULES WITH (clogptalk > 4)