Genbank usage notes

Annotation type

For a genbank feature to be recognized by DNA Chisel, they must be of type misc_feature (ask your favorite Genbank editor if you are unsure how to set this type).

The annotation should have the same parameters as the specification it represents (so the same parameters as you would write in a Python script, except that strings do not require quotes):

Weighted objectives

Like with python scripts, when in presence of multiple competing optimization objectives, you can give them a weight multiplicator via the boost parameter, e.g. ~MySpec(..., boost=2).

Multiple specifications in the same annotation

If you want to write fewer annotations, you can define several specifications in a single feature, separating them with the & symbol. For instance, to conserve a gene while getting rid of CpG islands and keeping the global GC% between 45% and 55%:

Adding new annotations to the Genbank parser

New specifications can be supported by the DNA Chisel parser by extending the default specifications dict:

from dnachisel import DEFAULT_SPECIFICATIONS_DICT
...

class MySpecification(Specification):
    def __init__(self, param1, param2=55):
        ...

DEFAULT_SPECIFICATIONS_DICT['MySpecification'] = MySpecification
problem = DnaOptimizationProblem.from_record('my_record.gb')

Any specification in this dictionary can be used in Genbank annotations with the same parameters as in a Python script (note that strings do not require quotes):