Edinburgh-Genome-Foundry / DnaChisel

:pencil2: A versatile DNA sequence optimizer
https://edinburgh-genome-foundry.github.io/DnaChisel/
MIT License
219 stars 40 forks source link

Objective functions #6

Closed picousse closed 6 years ago

picousse commented 6 years ago

Hi, Is there a way to see all possible constraints/objectives? I don't seem to find them, nor on the git, nor in the documentation. More specifically I'm interested if there is some kind of harmonization possible using this tool?

Package looks really nice by the way.

Best regards, Pieter

picousse commented 6 years ago

Found it. under builtin_specification

the codon harmonization code should then be CodonOptimize(species = 'E. coli' , mode = harmonized, location....)

Zulko commented 6 years ago

The package is still under-documented, sorry for that. For codon optimization, you must use organism names as listed here, without the number, for instance e_coli.

Also, CodonOptimize should always be used with an EnforceTranslation constraint to conserve the protein sequence.

problem = DnaOptimizationProblem(
    constraints = [EnforceTranslation()]
    objectives=[CodonOptimize('e_coli')]
)

Don't hesitate to ask for support I'm happy to help.

Zulko commented 6 years ago

If you want simple examples of different specifications (and they are not in the "examples") you can also have a look at the tests. Not ideal, but better than nothing.

picousse commented 6 years ago

Hi, I was also wondering where it gets the info of the origin species? normally when you harmonize you also need to have a codon table of the original host species to map it over the destination species.

Is this based on the sequence around the target sequence? Should I give e.g. a complete genome? Genbank file with all proteins in there or something similar?

I truely get how difficult documentation is :-)

Zulko commented 6 years ago

I am not aware of a codon optimization using the original species' table. See issue #2 for an explanation of what was done. I wrote "For harmonized, the optimization will bring the relative frequencies of the different triplets as close as possible as the frequencies in the reference species (this is also known as codon harmonization)." Do you think it should have been done otherwise ?

picousse commented 6 years ago

owkay. I commented in #2 closing this one.