def find_blocked_reactions(model,<EOL>reaction_list=None,<EOL>zero_cutoff=None,<EOL>open_exchanges=False,<EOL>processes=None):
zero_cutoff = normalize_cutoff(model, zero_cutoff)<EOL>with model:<EOL><INDENT>if open_exchanges:<EOL><INDENT>for reaction in model.exchanges:<EOL><INDENT>reaction.bounds = (min(reaction.lower_bound, -<NUM_LIT:1000>),<EOL>max(reaction.upper_bound, <NUM_LIT:1000>))<EOL><DEDENT><DEDENT>if reaction_list is None:<EOL><INDENT>reaction_list = model.reactions<EOL><DEDENT>model.slim_optimize()<EOL>solution = get_solution(model, reactions=reaction_list)<EOL>reaction_list = solution.fluxes[<EOL>solution.fluxes.abs() < zero_cutoff].index.tolist()<EOL>flux_span = flux_variability_analysis(<EOL>model, fraction_of_optimum=<NUM_LIT:0.>, reaction_list=reaction_list,<EOL>processes=processes<EOL>)<EOL>return flux_span[<EOL>flux_span.abs().max(axis=<NUM_LIT:1>) < zero_cutoff].index.tolist()<EOL><DEDENT>
Find reactions that cannot carry any flux.

The question whether or not a reaction is blocked is highly dependent
on the current exchange reaction settings for a COBRA model. Hence an
argument is provided to open all exchange reactions.

Notes
-----
Sink and demand reactions are left untouched. Please modify them manually.

Parameters
----------
model : cobra.Model
    The model to analyze.
reaction_list : list, optional
    List of reactions to consider, the default includes all model
    reactions.
zero_cutoff : float, optional
    Flux value which is considered to effectively be zero
    (default model.tolerance).
open_exchanges : bool, optional
    Whether or not to open all exchange reactions to very high flux ranges.
processes : int, optional
    The number of parallel processes to run. Can speed up the computations
    if the number of reactions is large. If not explicitly
    passed, it will be set from the global configuration singleton.

Returns
-------
list
    List with the identifiers of blocked reactions.