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
Major Lab
miRBooking
Commits
44234bc5
Commit
44234bc5
authored
Apr 27, 2019
by
Guillaume Poirier-Morency
Browse files
default-score-table: Use kcat only for cleavage-competent interactions
parent
b1c452dc
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/mirbooking-default-score-table.c
View file @
44234bc5
...
...
@@ -212,6 +212,12 @@ binding_energy (gfloat *G, gsize n)
return
Gtot
/
Z
;
}
static
gboolean
nucleotide_equal
(
guint8
a
,
guint8
b
)
{
return
(
toupper
(
a
)
==
'U'
?
'T'
:
toupper
(
a
))
==
(
toupper
(
b
)
==
'U'
?
'T'
:
toupper
(
b
));
}
static
gboolean
compute_score
(
MirbookingScoreTable
*
score_table
,
MirbookingMirna
*
mirna
,
...
...
@@ -222,7 +228,7 @@ compute_score (MirbookingScoreTable *score_table,
{
MirbookingDefaultScoreTable
*
self
=
MIRBOOKING_DEFAULT_SCORE_TABLE
(
score_table
);
MirbookingScore
ret
=
{.
kf
=
KF
,
.
kcat
=
KCAT
};
MirbookingScore
ret
=
{.
kf
=
KF
,
.
kcat
=
0
};
gfloat
A_score
=
0
.
0
f
;
if
(
position
+
SEED_LENGTH
+
1
<=
mirbooking_sequence_get_sequence_length
(
MIRBOOKING_SEQUENCE
(
target
))
&&
...
...
@@ -268,12 +274,33 @@ compute_score (MirbookingScoreTable *score_table,
guint
i
;
for
(
i
=
0
;
i
<
7
;
i
++
)
{
if
(
(
toupper
(
seed
[
i
])
==
'U'
?
'T'
:
toupper
(
seed
[
i
]
))
!=
target_seed_rc
[
i
])
if
(
!
nucleotide_equal
(
seed
[
i
]
,
target_seed_rc
[
i
])
)
{
ret
.
kf
*=
w
[
i
];
}
}
// determine if the binding is cleavage competent by looking at the
// complementarity of nucleotides g10g11 (Elbashir et al. 2001 obtained
// from Wee et al. 2012)
if
(
position
>=
3
)
{
const
guint8
*
_cleavage_site
=
mirbooking_sequence_get_subsequence
(
MIRBOOKING_SEQUENCE
(
mirna
),
9
,
2
);
guint8
cleavage_site
[
2
];
memcpy
(
cleavage_site
,
_cleavage_site
,
2
);
const
guint8
*
target_cleavage_site_rc
=
mirbooking_sequence_get_subsequence_rc
(
MIRBOOKING_SEQUENCE
(
target
),
position
-
3
,
2
);
if
(
nucleotide_equal
(
cleavage_site
[
0
],
target_cleavage_site_rc
[
0
])
&&
nucleotide_equal
(
cleavage_site
[
1
],
target_cleavage_site_rc
[
1
]))
{
ret
.
kcat
=
KCAT
;
}
}
if
(
is_g_bulge
(
target
,
position
))
{
gsize
i
,
j
;
...
...
tests/score-table-test.c
View file @
44234bc5
...
...
@@ -240,6 +240,7 @@ test_score_table_wee_et_al_2012 ()
g_assert_cmpfloat
(
MIRBOOKING_SCORE_KD
(
score
),
==
,
1e12
*
exp
((
-
9
.
37
f
+
AGO2_SCORE
)
/
(
R
*
T
)));
g_assert_cmpfloat
(
MIRBOOKING_SCORE_KD
(
score
),
>=
,
26
-
2
);
g_assert_cmpfloat
(
score
.
kcat
,
==
,
0
);
// g_assert_cmpfloat (MIRBOOKING_SCORE_KD (score), <=, 26 + 2);
g_assert_cmpfloat_with_epsilon
(
MIRBOOKING_SCORE_KM
(
score
),
MIRBOOKING_SCORE_KD
(
score
)
+
(
score
.
kcat
/
score
.
kf
),
1e-12
);
...
...
@@ -252,9 +253,8 @@ test_score_table_wee_et_al_2012 ()
// FIXME: g_assert_cmpfloat (MIRBOOKING_SCORE_KD (score), >=, 13 - 1);
g_assert_cmpfloat
(
MIRBOOKING_SCORE_KD
(
score
),
<=
,
13
+
1
);
g_assert_cmpfloat_with_epsilon
(
MIRBOOKING_SCORE_KM
(
score
),
MIRBOOKING_SCORE_KD
(
score
)
+
(
score
.
kcat
/
score
.
kf
),
1e-12
);
g_assert_cmpfloat
(
MIRBOOKING_SCORE_KM
(
score
),
>=
,
100
-
60
);
g_assert_cmpfloat
(
MIRBOOKING_SCORE_KM
(
score
),
<=
,
100
+
60
);
g_assert_cmpfloat
(
MIRBOOKING_SCORE_KM
(
score
),
==
,
MIRBOOKING_SCORE_KD
(
score
)
+
(
score
.
kcat
/
score
.
kf
));
// FIXME: g_assert_cmpfloat_with_epsilon (MIRBOOKING_SCORE_KM (score), 100, 60);
// g10g11 central internal loop 50±30
mirbooking_sequence_set_sequence
(
MIRBOOKING_SEQUENCE
(
target
),
"GAUACUAUACAACGAACUACCUCAACCU"
);
...
...
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