Defining Building Blocks Sets
Since (most) DELs are made up of thousands of building blocks, defining each one as a separate file (like for other components) would be too tedious. Instead, they are defined as single rows of a large “set” of building blocks. This makes more sense intuition wise as well, as DELs are composed of “cycles” where an entire set of building blocks is used for that cycle.
As a results, you will only ever have to define a full building
block set (a BuildingBlockSet object in DELi). DELi can
only load building blocks as sets. It cannot load single
building blocks.
File Format
The main file format is that of a comma separated value (CSV) file.
A header line is expected, naming the columns
There is only one required column: id
Additionally, you must include either a tag column or a smiles column.
It can be both, but one must be present (otherwise it is just of list of ids).
The order of these columns does not matter.
Note
DELi is case sensitive when it comes to column names.
Below are the possible columns:
idcolumn holds the name/ID of a given building block,tagcolumn hold the DNA tag associated with that building block (must be a valid DNA sequence),smilescolumn holds the SMILES string for that building block.subset_idcolumn holds the subset ID for that building block. This is used when defining building block subsets for reactions.
Any other columns are ignored by DELi; it will not cause any issues to include them.
Note
If your DEL building block regions have overhangs the overhang nucleotides should not be part of the tag included in the building block set file
An example building block set file might look like:
id,tag,smiles,subset_id
BB1,AGCTG,CCC,1
BB2,GCTAG,CCCCC,1
BB3,GGCTT,CCCCOC,2
...
Naming building block sets
The base name of the file is used as the name of the building block set by DELi.
If my building block file is path/to/my_building_blocks.csv, then the ID/name
of this set is my_building_blocks. DELi requires that all building block
set within a given Library have unique names.
Some keywords are also reserved by DELi and cannot be used as building block set names,
such as linker or scaffold. DELi will raise an error if you try to load
a building block set with a reserved name.
Uniqueness of Building Blocks
DELi will assert that the tag column (if provided) is unique for every building
of a given building block set. While tags between sets can be the same,
they cannot be the same within a given set.
To support the possible multi-tagging or building blocks, DELi does not require
the id column to be unique. However, if you include a smiles column it
will assert that the SMILES is the same for all building blocks with the same id.
If there is a subset_id column it will also assert that all building blocks
with the same id have the same subset_id.
DELi will warn you if it detects two identical building blocks in a file that (all elements are the same). It will then just keep one of them and continue on.
It is worth noting here that this is not the exact same as how DELi handles
BuildingBlockSet objects in python. It will always assert that
all BuildingBlock objects in a BuildingBlockSet have unique. This is
because TaggedBuildingBlock objects can handle an arbitrary number of tags
for the same building block, something that you cannot really do in a CSV file.
Warning
You must provide the exact same SMILES. Even if the SMILES are chemically equivalent but written differently, DELi will raise an error.
Saving in the DELi Data Directory
If you have configured the DELi Data Directory,
you should save the building block set files in the building_blocks sub-directory.
This way, when using DELi, you can reference the building block sets by their name, rather
than having to know the exact path to the file.