# Work

# Formal models for gene regulatory networks

Complex interactions occur inside the cells of biological organisms.
Formal models aim to describe these interactions at a high level by representing the different molecules as abstract entities (for instance “genes”) and by modeling their interactions through logical relations such as : activation of genes A and B **implies** deactivation of gene C.
Models based on boolean networks have been produced from expert knowledge to describe biological processes.

*Source : https://en.wikipedia.org/wiki/Gene_regulatory_network*

The amount of experimental omic data available (gene, transcription, ..) led to a focus on the development of algorithms that automatically infer models from datasets.
In this context, at the interaction between symbolic reasoning and machine learning, we developed an algorithm based on **combinatorial optimization** in order to learn a logic program that mimics the real system. More

Models that are produced can be analyzed in order to extract useful properties.
With an exponential number of possible behaviours, it is however not possible to exhaustively verify them.
Instead, sophisticated algorithms are developed to abstract the dynamics of the models in order to simplify its analysis.
We developed an approach to verify reachability in Automata Networks by combining two techniques : **Bounded Model Checking** and **Static Analysis**. More

# Optimization and machine learning for Computational Protein Design

Proteins are molecules that are composed of amino acids residues, assembled into a chain.
Designing novel proteins is an important challenge with various applications in medicine and environmental sustainability for instance.
Computational protein design is the task of designing new proteins by the use of **artificial intelligence** tools such as **combinatorial optimization** and **machine learning**.
It is a rapidly evolving field, in particular with the advance of deep learning technologies.

Designing new proteins can be performed computationally by first selecting a protein structure (spatial organization of its atoms) that would fulfill a targeted function.
Then, an energy function can be used on this structure to predict the sequence.
This energy function will be used to define a **combinatorial optimization** problem where variables are the amino acids at each position of the designed sequence (20 possibilites for each).

*Representation of a protein structure. Source : https://en.wikipedia.org/wiki/Protein*

Depending on the design problem, the optimization problem might have different forms.
In the context of a negative design problem, we developed a **biobjective optimization** method for **discrete graphical models** (the formalism used to carry the energy function).
More