kcomp, kgen, tools for combining biological parts

Skip to first unread message


Feb 6, 2019, 5:59:28 AM2/6/19
to kappa-users
Hi all,

I thought the some tools that I have written might be of some interest. They are
proof of concept tools to (1) take a description of a genetic circuit, consisting of
biological parts, and written in the RDF/Turtle language and create a Kappa
program from it and (2) take a database of biological parts and a specification
of a target behaviour implemented in Python, and try to derive an appropriate

Feedback and comments are welcome.

Best wishes,
William Waites

Jean Krivine

Feb 6, 2019, 7:18:22 AM2/6/19
to wwa...@ieee.org, kappa-users
Looks great!
I see you have an option:

kgen - Executes an evolutionary algorithm to discover oscillatory circuits

Is it possible to know more about this feature?

You received this message because you are subscribed to the Google Groups "kappa-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kappa-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

William Waites

Feb 6, 2019, 7:46:20 AM2/6/19
to Jean Krivine, kappa-users
Hi Jean,

There’s an article about it that’s under review just now. In the meantime, I would be happy
to privately share a copy of the manuscript if you would like.

Briefly, the input to kgen consists of:

1. a database of parts
2. a circuit “skeleton” or specification
3. a fitness function of the observables (and possibly the circuit itself)

and the output is a list of circuits made from the parts and fitness scores for each.

A good function for discovering simple oscillators is (negative) cross-correlation of two
output agents. That is what we use in the article and example.

The skeleton is essentially a list of part types that constitute a valid circuit, e.g. a two
operon circuit like this,

[ a gcc:Operator ] [ a gcc:Promoter ] [ a gcc:RibosomeBindingSite] [ a gcc:CodingSequence ] [ a gcc:Terminator ]
[ a gcc:Operator ] [ a gcc:Promoter ] [ a gcc:RibosomeBindingSite] [ a gcc:CodingSequence ] [ a gcc:Terminator ]

where “[ a Foo ]” is read as “some part with type Foo”. In the paper we also discuss, but
do not implement, mutating the circuit syntax.

The kgen program fills in the circuit with types from the database (that have the details
like rates, transcription factors and so forth), calls for the circuit to be simulated, evaluates
the result, mutates, evaluates again, and so forth.

Best wishes,

Jean Krivine

Feb 6, 2019, 8:03:05 AM2/6/19
to William Waites, kappa-users
Yes please I would love to have a look at the manuscript if that's ok with you.
Reply all
Reply to author
0 new messages