Commit ac63bbe2 authored by Nicolas  MAILLET's avatar Nicolas MAILLET
Browse files

Start of creation enzyme

parent c5eea95a
Pipeline #4848 passed with stages
in 13 minutes and 34 seconds
......@@ -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
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment