Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Nicolas MAILLET
rpg
Commits
07158c8d
Commit
07158c8d
authored
Mar 07, 2019
by
Nicolas MAILLET
Browse files
Modify output of __repr__ for a rule
parent
4e349d3d
Changes
4
Hide whitespace changes
Inline
Side-by-side
rpg/rule.py
View file @
07158c8d
...
...
@@ -60,13 +60,13 @@ class Rule:
ret
+=
"index="
+
str
(
self
.
index
)
+
"
\n
"
for
_
in
range
(
lvl
):
ret
+=
"
\t
"
ret
+=
"
letter
="
+
str
(
self
.
letter
)
+
"
\n
"
ret
+=
"
amino_acid
="
+
str
(
self
.
letter
)
+
"
\n
"
for
_
in
range
(
lvl
):
ret
+=
"
\t
"
ret
+=
"c
ut
="
+
str
(
self
.
cut
)
+
"
\n
"
ret
+=
"c
leavage
="
+
str
(
self
.
cut
)
+
"
\n
"
for
_
in
range
(
lvl
):
ret
+=
"
\t
"
ret
+=
"pos="
+
str
(
self
.
pos
)
+
"
\n
"
ret
+=
"pos
ition
="
+
str
(
self
.
pos
)
+
"
\n
"
# Sub-rules
for
i
in
self
.
rules
:
ret
+=
str
(
i
.
__repr__
(
lvl
+
1
))
...
...
tests/test_RapidPeptidesGenerator.py
View file @
07158c8d
...
...
@@ -64,21 +64,24 @@ def test_create_enzymes_to_use(capsys):
enzymes
=
[
23
,
31
,
29
]
miscleavage
=
[
1.1
,
20
]
res
=
RapidPeptidesGenerator
.
create_enzymes_to_use
(
enzymes
,
miscleavage
)
assert
res
.
__repr__
()
==
"[Id: 23
\n
Name: Glu-C
\n
Ratio Miscleavage: 1.1"
\
"0%
\n
Rules: [index=0
\n
letter=D
\n
cut=True
\n
pos=1
\n
,"
\
" index=0
\n
letter=E
\n
cut=True
\n
pos=1
\n
]
\n
, Id: 31"
\
"
\n
Name: NTCB
\n
Ratio Miscleavage: 20.00%
\n
Rules"
\
": [index=0
\n
letter=C
\n
cut=True
\n
pos=0
\n
]
\n
, Id: "
\
"29
\n
Name: Lys-N
\n
Ratio Miscleavage: 0.00%
\n
Rul"
\
"es: [index=0
\n
letter=K
\n
cut=True
\n
pos=0
\n
]
\n
]"
assert
res
.
__repr__
()
==
"[Id: 23
\n
Name: Glu-C
\n
Ratio Miscleavage: 1.10%"
\
"
\n
Rules: [index=0
\n
amino_acid=D
\n
cleavage=True"
\
"
\n
position=1
\n
, index=0
\n
amino_acid=E
\n
cleavage"
\
"=True
\n
position=1
\n
]
\n
, Id: 31
\n
Name: NTCB
\n
Rat"
\
"io Miscleavage: 20.00%
\n
Rules: [index=0
\n
amino_"
\
"acid=C
\n
cleavage=True
\n
position=0
\n
]
\n
, Id: 29"
\
"
\n
Name: Lys-N
\n
Ratio Miscleavage: 0.00%
\n
Rules:"
\
" [index=0
\n
amino_acid=K
\n
cleavage=True
\n
positio"
\
"n=0
\n
]
\n
]"
enzymes
=
[
23
,
31
]
miscleavage
=
[
1.1
,
20
,
40
]
res
=
RapidPeptidesGenerator
.
create_enzymes_to_use
(
enzymes
,
miscleavage
)
_
,
err
=
capsys
.
readouterr
()
assert
err
==
"Warning: Too much miscleavage values. Last values will "
\
"be ignored.
\n
"
assert
res
.
__repr__
()
==
"[Id: 23
\n
Name: Glu-C
\n
Ratio Miscleavage: 1.1"
\
"0%
\n
Rules: [index=0
\n
letter=D
\n
cut=True
\n
pos=1
\n
,"
\
" index=0
\n
letter=E
\n
cut=True
\n
pos=1
\n
]
\n
, Id: 31"
\
"
\n
Name: NTCB
\n
Ratio Miscleavage: 20.00%
\n
Rules"
\
": [index=0
\n
letter=C
\n
cut=True
\n
pos=0
\n
]
\n
]"
assert
res
.
__repr__
()
==
"[Id: 23
\n
Name: Glu-C
\n
Ratio Miscleavage: 1.10%"
\
"
\n
Rules: [index=0
\n
amino_acid=D
\n
cleavage=True"
\
"
\n
position=1
\n
, index=0
\n
amino_acid=E
\n
cleavage"
\
"=True
\n
position=1
\n
]
\n
, Id: 31
\n
Name: NTCB
\n
Rat"
\
"io Miscleavage: 20.00%
\n
Rules: [index=0
\n
amino_"
\
"acid=C
\n
cleavage=True
\n
position=0
\n
]
\n
]"
tests/test_enzyme.py
View file @
07158c8d
...
...
@@ -17,9 +17,10 @@ def test_enzyme(tmpdir):
# Test function '__repr__()'
res
=
enz0
.
__repr__
()
assert
res
==
"Id: -1
\n
Name: fake_enzyme1
\n
Ratio Miscleavage: 0.00%
\n
R"
\
"ules: [index=0
\n
letter=D
\n
cut=True
\n
pos=1
\n\t
index=-1
\n\t
l"
\
"etter=S
\n\t
cut=False
\n\t
pos=-1
\n
]
\n
"
assert
res
==
"Id: -1
\n
Name: fake_enzyme1
\n
Ratio Miscleavage: 0.00%
\n
Rule"
\
"s: [index=0
\n
amino_acid=D
\n
cleavage=True
\n
position=1
\n\t
in"
\
"dex=-1
\n\t
amino_acid=S
\n\t
cleavage=False
\n\t
position=-1
\n
]"
\
"
\n
"
dict_rule
=
{}
rule_txt
=
"(D,)"
...
...
tests/test_rule.py
View file @
07158c8d
...
...
@@ -15,7 +15,7 @@ def test_rule():
# Test function '__repr__()'
print_res
=
rule0
.
__repr__
()
assert
print_res
==
"index=0
\n
letter=D
\n
cut
=True
\n
pos=0
\n
"
assert
print_res
==
"index=0
\n
amino_acid=D
\n
cleavage
=True
\n
pos
ition
=0
\n
"
# Simple rule1
index
=
2
...
...
@@ -24,7 +24,7 @@ def test_rule():
pos
=
1
rule1
=
rule
.
Rule
(
index
,
letter
,
cut
,
pos
)
print_res
=
rule1
.
__repr__
()
assert
print_res
==
"index=2
\n
letter=Q
\n
cut
=False
\n
pos=1
\n
"
assert
print_res
==
"index=2
\n
amino_acid=Q
\n
cleavage
=False
\n
pos
ition
=1
\n
"
# Simple rule2 identical to 1
index
=
0
...
...
@@ -40,8 +40,9 @@ def test_rule():
# Test __repr__
print_res
=
rule2
.
__repr__
()
assert
print_res
==
"index=0
\n
letter=D
\n
cut=True
\n
pos=0
\n\t
index=2"
\
"
\n\t
letter=Q
\n\t
cut=False
\n\t
pos=1
\n
"
assert
print_res
==
"index=0
\n
amino_acid=D
\n
cleavage=True
\n
position=0
\n\t
"
\
"index=2
\n\t
amino_acid=Q
\n\t
cleavage=False
\n\t
positio"
\
"n=1
\n
"
# Test function '__ne__()'
assert
rule0
!=
rule2
...
...
@@ -72,19 +73,19 @@ def test_rule():
# Test function 'format_a_rule(prev_name, prev_com)'
res
=
rule2
.
format_a_rule
(
prev_name
,
prev_com
)
assert
res
==
[
'D_0'
,
' # Always cleaves before D, except...'
,
'D_0 = rule.Rule(0, "D", True, 0) # Always cleaves before D
,
'
'except...'
]
'D_0 = rule.Rule(0, "D", True, 0) # Always cleaves before D'
'
,
except...'
]
res
=
rule1
.
format_a_rule
(
prev_name
,
prev_com
)
assert
res
==
[
'1Q2'
,
' # Never cleaves after Q, except...'
,
'1Q2 = rule.Rule(2, "Q", False, 1) # Never cleaves after Q,
'
'except...'
]
'1Q2 = rule.Rule(2, "Q", False, 1) # Never cleaves after Q,'
'
except...'
]
# Test function 'format_rule()'
res
=
rule2
.
format_rule
()
assert
res
==
'D_0 = rule.Rule(0, "D", True, 0) # Always cleaves before D
, ex
'
\
'cept...
\n
D_0Q2 = rule.Rule(2, "Q", False, 1) # Never c
leaves b
'
\
'efore D, followed by Q, except...
\n
D_0.rules.appen
d(D_0Q2)
'
\
'
\n
ENZ.append(D_0)
\n\n
'
assert
res
==
'D_0 = rule.Rule(0, "D", True, 0) # Always cleaves before D'
\
'
, ex
cept...
\n
D_0Q2 = rule.Rule(2, "Q", False, 1) # Never c'
\
'
leaves b
efore D, followed by Q, except...
\n
D_0.rules.appen'
\
'
d(D_0Q2)
\n
ENZ.append(D_0)
\n\n
'
def
test_check_rule
():
"""Test function 'check_rule(exprule)'."""
...
...
@@ -374,7 +375,7 @@ def test_create_rules():
assert
len
(
res
)
==
7
# Double comma and 'or'
# Cleaves after I or J, except if
a
K is after, but cleaves if a L is before
# Cleaves after I or J, except if K is after, but cleaves if a L is before
all_rules
=
{}
rule6
=
"(,I or J,)"
all_rules
[
rule6
]
=
True
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment