Ejemplo n.º 1
0
def test_trapspaces_that_intersect_subspace():
    primes = get_primes("raf")

    assert compute_trapspaces_that_intersect_subspace(primes, {"Raf": 1, "Mek": 0, "Erk": 0}, "min") == [{"Raf": 1, "Mek": 0, "Erk": 0}]
    assert compute_trapspaces_that_intersect_subspace(primes, {"Erk": 0}, "min") == [{"Raf": 1, "Mek": 0, "Erk": 0}]
    assert compute_trapspaces_that_intersect_subspace(primes, {"Erk": 0}, "all") == [{}, {'Erk': 0, 'Mek': 0}, {'Erk': 0, 'Mek': 0, 'Raf': 1}]
    assert compute_trapspaces_that_intersect_subspace(primes, {"Erk": 0}, "max") == [{'Erk': 0, 'Mek': 0}]
    assert compute_trapspaces_that_intersect_subspace(primes, {}, "all") == [{}, {'Erk': 1, 'Mek': 1}, {'Erk': 0, 'Mek': 0}, {'Erk': 0, 'Mek': 0, 'Raf': 1}]
Ejemplo n.º 2
0
def test_known_trap_spaces_for_mapk():
    primes = get_primes("grieco_mapk")

    tspaces = compute_trap_spaces(primes, type_="min")
    assert len(tspaces) == 18

    tspaces = compute_trap_spaces(primes, type_="max")
    assert len(tspaces) == 9
Ejemplo n.º 3
0
def test_compute_json():
    primes = get_primes("n5s3")
    fname = get_tests_path_out(fname="n5s3_attrs.json")
    attractors = compute_attractors(primes=primes,
                                    update="asynchronous",
                                    fname_json=fname,
                                    max_output=2)

    assert attractors
def test_create_basins_piechart():
    try:
        primes = get_primes("n5s3")
        attractors = compute_attractors(primes, update="asynchronous")
        compute_basins(attractors)
        fname_image = get_tests_path_out(fname="basins_piechart")
        create_basins_piechart(attractors, fname_image=fname_image)
    except NameError:
        pass
Ejemplo n.º 5
0
def test_find_minimal_autonomous_nodes():
    primes = get_primes("randomnet_n15k3")
    igraph = primes2igraph(primes)
    nodes = find_minimal_autonomous_nodes(igraph, core=set())
    expected = [{
        "Gene8", "Gene9", "Gene1", "Gene2", "Gene3", "Gene4", "Gene5", "Gene6",
        "Gene7", "Gene12", "Gene13", "Gene10", "Gene11", "Gene14"
    }]

    assert expected == nodes
def test_find_vanham_variables():
    primes = get_primes("multivalued")
    result = find_vanham_variables(primes)
    expected = {
        2: ["input", "x2", "x3", "x6_level2"],
        3: ["x1"],
        4: ["x4"],
        5: ["x5"]
    }

    assert result == expected
def test_energy():
    primes = get_primes("raf")
    answer = energy(primes, "000")
    expected = 1

    assert answer == expected

    answer = energy(primes, "010")
    expected = 3

    assert answer == expected

    answer = energy(primes, "001")
    expected = 0

    assert answer == expected
Ejemplo n.º 8
0
def test_enumerate_states():
    primes = get_primes("raf")
    prop = "!Erk | (Raf & Mek)"
    expected = {"010", "011", "001", "000", "111"}
    answer = set(enumerate_states(primes, prop))
    
    assert answer == expected

    prop = "0"
    expected = set([])
    answer = set(enumerate_states(primes, prop))
    
    assert answer == expected

    prop = "TRUE"
    expected = {"010", "011", "001", "000", "111", "110", "101", "100"}
    answer = set(enumerate_states(primes, prop))
    
    assert answer == expected
Ejemplo n.º 9
0
def test_size_state_space():
    primes = get_primes("multivalued")
    result = size_state_space(primes, van_ham=False, fixed_inputs=False)
    expected = 2**13
    
    assert result == expected

    result = size_state_space(primes, van_ham=False, fixed_inputs=True)
    expected = 2**12
    
    assert result == expected

    result = size_state_space(primes, van_ham=True, fixed_inputs=False)
    expected = 2**4*3*4*5
    
    assert result == expected

    result = size_state_space(primes, van_ham=True, fixed_inputs=True)
    expected = 2**3*3*4*5
    
    assert result == expected
from pyboolnet.repository import get_primes
from pyboolnet.state_transition_graphs import create_stg_image
from pyboolnet.state_transition_graphs import energy, random_walk, add_style_path, add_style_anonymous, stg2image, \
    primes2stg
from pyboolnet.state_transition_graphs import sccgraph2image
from pyboolnet.state_transition_graphs import stg2sccgraph, stg2condensationgraph, best_first_reachability

if __name__ == "__main__":
    primes = get_primes("xiao_wnt5a")
    create_stg_image(primes, "asynchronous", "stg.pdf")
    create_stg_image(primes,
                     "asynchronous",
                     "stg2.pdf",
                     initial_states={
                         "x4": 0,
                         "x5": 0
                     },
                     styles=["anonymous", "tendencies", "mintrapspaces"])

    # drawing paths

    path = random_walk(primes,
                       "asynchronous",
                       initial_state="--00---",
                       length=4)
    stg = primes2stg(primes, "asynchronous", initial_states={"x4": 0, "x5": 0})
    add_style_path(stg, path, color="red")
    add_style_anonymous(stg)
    stg2image(stg, "stg3.pdf")

    # drawing factor graphs
Ejemplo n.º 11
0
from pyboolnet.repository import get_primes
from pyboolnet.state_transition_graphs import primes2stg
from pyboolnet.attractors import compute_attractors_tarjan, compute_attractors, find_attractor_state_by_randomwalk_and_ctl

if __name__ == "__main__":
    # attractor computation with Tarjan

    primes = get_primes("tournier_apoptosis")

    stg = primes2stg(primes, "asynchronous")
    steady, cyclic = compute_attractors_tarjan(stg)
    print(steady)
    print(cyclic)

    # random walk attractor detection

    state = find_attractor_state_by_randomwalk_and_ctl(primes, "asynchronous")
    print(state)

    # model checking based attractor detection

    attrs = compute_attractors(primes, "asynchronous", fname_json="attrs.json")

    print(attrs["is_complete"])
    for x in attrs["attractors"]:
        print(x["is_steady"])
        print(x["state"]["str"])
Ejemplo n.º 12
0
def test_primes2eqn():
    fname_out = get_tests_path_out(fname="fileexchange_primes2eqn.eqn")
    primes = get_primes("raf")
    primes2eqn(primes, fname_out)
Ejemplo n.º 13
0
from pyboolnet.repository import get_primes
from pyboolnet.trap_spaces import compute_trap_spaces, compute_steady_states

if __name__ == "__main__":
    # compute minimal and maximal trap spaces

    primes = get_primes("remy_tumorigenesis")
    mints = compute_trap_spaces(primes, "min")
    print(len(mints))

    max_trap_spaces = compute_trap_spaces(primes, "max")
    print(len(max_trap_spaces))
    print(max_trap_spaces)

    # compute steady states using the ASP solver

    steady = compute_steady_states(primes)
    print(len(steady))
def primes():
    return get_primes("n5s3")
def test_stg2htg():
    fname_out = get_tests_path_out(fname="raf_htg.pdf")
    primes = get_primes("raf")
    stg = primes2stg(primes, "asynchronous")
    htg = stg2htg(stg)
    htg2image(htg, fname_out)
def test_stg2sccgraph():
    fname_out = get_tests_path_out(fname="raf_sccgraph.pdf")
    primes = get_primes("raf")
    stg = primes2stg(primes, "asynchronous")
    scc_graph = stg2sccgraph(stg)
    sccgraph2image(scc_graph, fname_out)
def test_compute_basins():
    primes = get_primes("n5s3")
    attractors = compute_attractors(primes, update="asynchronous")
    compute_basins(attractors)
def test_cycle_free_basins():
    primes = get_primes("n5s3")
    cycle_free_basin(primes, update="asynchronous")
def test_strong_basins():
    primes = get_primes("n5s3")
    strong_basin(primes, update="asynchronous")
def test_weak_basins():
    primes = get_primes("n5s3")
    weak_basin(primes, update="asynchronous")
Ejemplo n.º 21
0

from pyboolnet.phenotypes import compute_phenotypes, compute_phenotype_diagram, create_phenotypes_piechart
from pyboolnet.attractors import compute_attractors
from pyboolnet.repository import get_primes


if __name__ == "__main__":
    # compute the commitment diagram

    primes = get_primes("arellano_rootstem")
    print(sorted(primes))

    attractors = compute_attractors(primes, "asynchronous")
    markers = ["WOX", "MGP"]
    phenotypes = compute_phenotypes(attractors, markers, fname_json="phenos.json")

    # inspect marker patterns

    for pheno in phenotypes["phenotypes"]:
        print(pheno["name"])
        print(pheno["pattern"])

    # draw diagram

    diagram = compute_phenotype_diagram(phenotypes, fname_image="phenos_diagram.pdf")

    # draw pie chart

    create_phenotypes_piechart(diagram, fname_image="phenos_piechart.pdf")
def attractors():
    return compute_attractors(primes=get_primes("raf"), update="asynchronous")
Ejemplo n.º 23
0
    sys.exit(1)


def steady_states_projected(primes: dict, project: List[str] = [], max_output: int = 1000, fname_asp: Optional[str] = None):
    print("ERROR: steady_states_projected is removed, use compute_steady_states_projected")
    sys.exit(1)


def trapspaces_that_contain_state(primes: dict, state: dict, type_: str, fname_asp: str = None, representation: str = "dict", max_output: int = 1000):
    print("ERROR: trapspaces_that_contain_state is removed, use compute_trapspaces_that_contain_state")
    sys.exit(1)


def trapspaces_that_intersect_subspace(primes: dict, subspace: dict, type_: str, fname_asp: str = None, representation: str = "dict", max_output: int = 1000):
    print("ERROR: trapspaces_that_intersect_subspace is removed, use compute_trapspaces_that_intersect_subspace")
    sys.exit(1)


def trapspaces_within_subspace(primes: dict, subspace: dict, type_: str, fname_asp: str = None, representation: str = "dict", max_output: int = 1000):
    print("ERROR: trapspaces_within_subspace is removed, use compute_trapspaces_within_subspace")
    sys.exit(1)


if __name__ == '__main__':
    from pyboolnet.repository import get_primes
    from pyboolnet.external.potassco import primes2asp

    primes = get_primes("raf")
    asp_text = primes2asp(primes, "", None, None, type_="min")
    print(asp_text)
Ejemplo n.º 24
0
def test_trapspaces_that_contain_state_max_output():
    primes = get_primes("raf")
    answer = compute_trapspaces_that_contain_state(primes, {"Raf": 1, "Mek": 0, "Erk": 0}, "all", max_output=1)
    
    assert len(answer) == 1
    assert answer[0] in compute_trapspaces_that_contain_state(primes, {"Raf": 1, "Mek": 0, "Erk": 0}, "all", max_output=1000)
def test_stg2condensationgraph():
    fname_out = get_tests_path_out(fname="raf_cgraph.pdf")
    primes = get_primes("raf")
    stg = primes2stg(primes, "asynchronous")
    cgraph = stg2condensationgraph(stg)
    condensationgraph2image(cgraph, fname_out)
Ejemplo n.º 26
0
def test_completeness_max_output():
    primes = get_primes("davidich_yeast")

    assert completeness(primes, "asynchronous", max_output=10000)
    assert not completeness(primes, "asynchronous", max_output=2)
Ejemplo n.º 27
0
def test_trapspaces_that_contain_state():
    primes = get_primes("raf")

    assert compute_trapspaces_that_contain_state(primes, {"Raf": 1, "Mek": 0, "Erk": 0}, "min", fname_asp=None) == [{"Raf": 1, "Mek": 0, "Erk": 0}]
    assert compute_trapspaces_that_contain_state(primes, {"Raf": 0, "Mek": 1, "Erk": 1}, "min", fname_asp=None) == [{"Mek": 1, "Erk": 1}]
    assert compute_trapspaces_that_contain_state(primes, {"Raf": 1, "Mek": 1, "Erk": 0}, "min", fname_asp=None) == [{}]
Ejemplo n.º 28
0
def test_random_state():
    primes = get_primes(name="n6s1c2")
    assert type(random_state(primes=primes)) is dict
    assert type(random_state(primes=primes, subspace="111-0-")) is dict
Ejemplo n.º 29
0
def test_create_image():
    fname = get_tests_path_out(fname="interactiongraphs_create_image.pdf")
    primes = get_primes("raf")
    create_image(primes, fname)
Ejemplo n.º 30
0
from pyboolnet.file_exchange import bnet2primes
from pyboolnet.repository import get_primes

if __name__ == "__main__":

    for name in ["tournier_apoptosis", "grieco_mapk", "remy_tumorigenesis", "dahlhaus_neuroplastoma"]:
        primes = get_primes(name)
        fname = os.path.join(name, name+"_attractors_sync.json")
        compute_attractors(primes, update="synchronous", fname_json=fname)
        fname = os.path.join(name, name+"_attractors_mixed.json")
        compute_attractors(primes, update="mixed", fname_json=fname)


    names = get_all_names()

    for name in names:

        if name == "n12c5":
            continue  # takes forever to compute prime implicants

        primes = bnet2primes(os.path.join(name, name + ".bnet"))
        fname = os.path.join(name, name+"_igraph.pdf")
        create_stg_image(primes, fname)

    names = PyBoolNet.Repository.names_with_fast_analysis()

    for name in names:

        primes = bnet2primes(os.path.join(name, name + ".bnet"))

        fname = os.path.join(name, name+"_attractors.json")