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