MAJ terminée. Nous sommes passés en version 14.6.2 . Pour consulter les "releases notes" associées c'est ici :

https://about.gitlab.com/releases/2022/01/11/security-release-gitlab-14-6-2-released/
https://about.gitlab.com/releases/2022/01/04/gitlab-14-6-1-released/

Commit 00be8258 authored by BARGAIN Orianne's avatar BARGAIN Orianne
Browse files

add detection partial hill reaction

parent 6d4c200e
E+S=>ES.
ES+S=>ESS.
ESS=>E+P.
E+S=>P.
S+E=>ES.
S+ES=>X+SES.
S+E=>SE.
S+SE=>SES.
SES=>P+E.
......@@ -21,6 +21,7 @@
:- initial(option(ep: no)).
:- initial(option(enzyme: yes)).
:- initial(option(hill_reaction: no)).
:- initial(option(partial_hill_reaction: no)).
pattern_reduction(Input_file) :-
......@@ -32,6 +33,7 @@ pattern_reduction(Input_file) :-
option(r_2, yesno, MM_R_2, 'michaelis menten with R-2 reaction'),
option(ep, yesno, MM_EP, 'michaelis menten with EP specie'),
option(hill_reaction, yesno, Hill, 'specifies if reducing hill patterns'),
option(partial_hill_reaction, yesno, Part_Hill, 'specifies if reducing partial hill patterns'),
option(enzyme, yesno, MM_E, 'michaelis menten reduced reaction with enzyme'),
debug(motif, "Debugging motif reduction", []),
debug(motif, "Option: R_1:~w", [MM_R_1]),
......@@ -60,6 +62,14 @@ pattern_reduction(Input_file) :-
;
true
),
(
Part_Hill = yes
->
partial_hill_detection(Graph, Stream, Dict_arcs_direct, Dict_arcs_indirect),
debug(motif, "Done looking for partial Hill motifs", [])
;
true
),
write_reactions(Graph, Stream, Dict_arcs_direct, Dict_arcs_indirect),
close(Stream).
......@@ -507,3 +517,89 @@ hill_reaction(SES, Dict_arcs_direct, Dict_arcs_indirect, E, S, P):-
assert(seen(ES)),
assert(seen(SE)),
assert(seen(SES)).
/* partial_hill_detection */
/* partial_hill_detection(+Graph, +Stream, +Dict_arcs_direct, +Dict_arcs_indirect)
-> looks for hill reactions
+Graph: the graph
+Stream: where to write the new graph
+Dict_arcs_direct: dict of directed arcs
+Dict_arcs_indirect: dict of undirected arcs */
partial_hill_detection(Graph, Stream, Dict_arcs_direct, Dict_arcs_indirect):-
Graph = [Number_vertex, Number_species, _, Id],
assert(seen(Number_vertex)),
Number_species_1 is Number_species - 1,
numlist(0, Number_species_1, Species_list),
set_counter(patrial_hill_pattern_count, 0),
forall(
(
member(ES, Species_list)
),
(
(
not(seen(ES)),
once(partial_hill_reaction(ES, Dict_arcs_direct, Dict_arcs_indirect, E, S, P))
->
debug(motif, "Hill reaction with E:~w S:~w P:~w ES:~w", [E, S, P, ES]),
write_reaction([E, S], [E, P], Id, Stream),
count(patrial_hill_pattern_count, _)
;
true
)
)
),
peek_count(patrial_hill_pattern_count, Nb_partial_hill_reaction),
write('\nNumber of partial Hill patterns: '),
write(Nb_partial_hill_reaction),
write('\n').
/* partial_hill_reaction */
/* partial_hill_reaction(+SES, +Dict_arcs_direct, +Dict_arcs_indirect, +E, +S, +P)
-> checks if the concerned species and reactions form a hill reaction
+SES: catalyser
+Dict_arcs_direct: dict of directed arcs
+Dict_arcs_indirect: dict of undirected arcs
+E: enzyme
+S: substrate
+P: product */
partial_hill_reaction(ES, Dict_arcs_direct, Dict_arcs_indirect, E, S, P):-
get_dict(ES, Dict_arcs_indirect, Targets_ES),
Targets_ES = [R1],
get_dict(ES, Dict_arcs_direct, Goals_ES),
Goals_ES = [R2],
get_dict(R2, Dict_arcs_indirect, Targets_R2),
(
Targets_R2 = [S, ES]
;
Targets_R2 = [ES, S]
),
get_dict(R2, Dict_arcs_direct, Goals_R2),
Goals_R2 = [ESS],
get_dict(ESS, Dict_arcs_indirect, Targets_ESS),
Targets_ESS = [R2],
get_dict(ESS, Dict_arcs_direct, Goals_ESS),
Goals_ESS = [R3],
get_dict(R3, Dict_arcs_indirect, Targets_R3),
Targets_R3 = [ESS],
get_dict(R3, Dict_arcs_direct, Goals_R3),
(
Goals_R3 = [E, P]
;
Goals_R3 = [P, E]
),
get_dict(R1, Dict_arcs_indirect, Targets_R1),
(
Targets_R1 = [S, E]
;
Targets_R1 = [E, S]
),
get_dict(R1, Dict_arcs_direct, Goals_R1),
Goals_R1 = [ES],
assert(seen(R1)),
assert(seen(R2)),
assert(seen(R3)),
assert(seen(ES)),
assert(seen(ESS)).
Markdown is supported
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