diff --git a/docs/userguide.rst b/docs/userguide.rst
index 4952b2e94745810c0a1f5630f4afd71dc3757e6b..db011c094237d5fd9fa3e2863c41bf905ca40523 100644
--- a/docs/userguide.rst
+++ b/docs/userguide.rst
@@ -336,4 +336,132 @@ Decreasing verbosity, i.e. using **-q** option, remove all informations except e
 Creating a new enzyme
 =====================
 
-Todo very sooooon :D
\ No newline at end of file
+Option **-a, --addenzyme** let the user to define new enzymes. An enzyme contains one or several rules and exceptions.
+
+On the following, nomenclature of `Schechter and Berger <https://www.ncbi.nlm.nih.gov/pubmed/6035483>`_ is used. According to it, amino acids before the cleavage site are designated as `P1`, `P2`, `P3`, etc in the N-terminal direction, and as `P1'`, `P2'`, `P3'`, etc in the C-terminal direction. For example, with cleavage site represented as '|'::
+
+    ...P3-P2-P1-|-P1'-P2'-P3'...
+
+
+Definition of rules
+-------------------
+
+A rule specify which amino acid is targeted by the enzyme, the cleavage position (i.e. **before** or **after** the targeted amino acid) and optionally the surrounding context. Each amino acid must be surrounded by parenthesis, i.e. '**(**' and '**)**' and the cleavage position is symbolized by a comma, i.e. '**,**'.
+
+For example, to define a cleavage occurring **before** A, one must input::
+
+    (,A)
+
+To define a cleavage occurring **after** B, one must input::
+
+    (B,)
+
+The context is specified by adding other amino acids, before or after the targeted one. For example, to define a cleavage occurring **before** A (position `P1'`) preceded by B in position `P1`, C in position `P3` and followed by D in position `P2'`, one must input::
+
+    (C)()(B)(,A)(D)
+
+Note that this enzyme will only cleave if it finds the motif C*BAD, where * is **one** amino acid, no matter which one.
+It will **not** cleave BAD, nor C*BA, BA, AD, etc. For example::
+
+    $ rpg -a    
+    Name of the new enzyme?
+    rpg_example_userguide
+    Create a cleaving rule (c) or an exception (e)? (q) to quit:
+    c
+    Write your cleaving rule, (q) to quit:
+    (C)()(B)(,A)(D)
+    Create a cleaving rule (c) or an exception (e)? (q) to quit:
+    q
+    Add an other enzyme? (y/n)
+    n
+
+    $ rpg -i CWBADE -e 28
+    >Input_0_rpg_example_userguide_3_3_307.36728_5.46
+    CWB
+    >Input_1_rpg_example_userguide_6_3_333.29818_3.4
+    ADE
+
+    $ rpg -i FAD -e 28
+    >Input_0_rpg_example_userguide_0_3_351.35928_3.6
+    FAD
+
+
+To make this enzyme always cleaves, for example, before A (`P1'`) followed by D in `P2'`, on top of the previous rule, one has to defined two rules in **RPG**::
+
+    (,A)(D)
+    (C)()(B)(,A)(D)
+
+Not that this enzyme will **not** cut BAD, has it is specified that it will cut before A preceded by B in `P1` **if there is C in `P3`**. Identically, it will **not** cut C*BA*, has D is require in `P2'` for the second rule::
+
+    $rpg -a
+    Name of the new enzyme?
+    rpg_example_userguide
+    Create a cleaving rule (c) or an exception (e)? (q) to quit:
+    c
+    Write your cleaving rule, (q) to quit:
+    (,A)(D)
+    Create a cleaving rule (c) or an exception (e)? (q) to quit:
+    c
+    Write your cleaving rule, (q) to quit:
+    (C)()(B)(,A)(D)
+    Create a cleaving rule (c) or an exception (e)? (q) to quit:
+    q
+    Add an other enzyme? (y/n)
+    n
+
+    $ rpg -i CWBADE -e 28
+    >Input_0_rpg_example_userguide_3_3_307.36728_5.46
+    CWB
+    >Input_1_rpg_example_userguide_6_3_333.29818_3.4
+    ADE
+
+    $ rpg -i FAD -e 28
+    >Input_0_rpg_example_userguide_1_1_165.19188_5.54
+    F
+    >Input_1_rpg_example_userguide_3_2_204.18268_3.6
+    AD
+
+    $ rpg -i BAD -e 28
+    >Input_0_rpg_example_userguide_0_3_204.18268_3.6
+    BAD
+
+The order of inputted rules is not relevant. This enzyme::
+
+    (,A)(D)
+    (C)()(B)(,A)(D)
+
+and this second one::
+
+    (C)()(B)(,A)(D)
+    (,A)(D)
+
+are identical.
+
+It is possible to define none related cleavage rules for the same enzyme, for example::
+
+    (P)(W,)(E)(T)
+    (G,)(G)
+
+This enzyme will cleave after G (position `P1`) followed by G in `P1'` and also after W (`P1`) preceded by P in `P2` and followed by E in `P1'` and T in `P2'`.
+
+
+
+Definition of exceptions
+------------------------
+
+An exception should always be linked to a rule.
+
+
+
+Writing easily complex enzymes
+------------------------------
+
+Mot clé 'or' et double comma
+copier/coller
+
+
+
+Deleting enzymes
+----------------
+
+Enzymes are stored in ~/rpg_user.py
\ No newline at end of file