Skip to content
Snippets Groups Projects
Commit ac63bbe2 authored by Nicolas  MAILLET's avatar Nicolas MAILLET
Browse files

Start of creation enzyme

parent c5eea95a
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment