diff --git a/docs/NORDic.rst b/docs/NORDic.rst deleted file mode 100644 index 8b39d94..0000000 --- a/docs/NORDic.rst +++ /dev/null @@ -1,157 +0,0 @@ -NORDic package -================= - -Submodules ----------- - -NORDic.NORDic\_NI.functions module --------------------------------------------------- - -.. automodule:: NORDic.NORDic_NI.functions - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_PMR.functions module --------------------------------------------------- - -.. automodule:: NORDic.NORDic_PMR.functions - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DS.functions module -------------------------------------------------------- - -.. automodule:: NORDic.NORDic_DS.functions - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DS.get_drug_signatures module ---------------------------------------------------------------- - -.. automodule:: NORDic.NORDic_DS.get_drug_signatures - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DS.get_drug_targets module ---------------------------------------------------------------- - -.. automodule:: NORDic.NORDic_DS.get_drug_targets - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DR.bandits module ----------------------------------- - -.. automodule:: NORDic.NORDic_DR.bandits - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DR.functions module ----------------------------------- - -.. automodule:: NORDic.NORDic_DR.functions - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DR.utils module ----------------------------------- - -.. automodule:: NORDic.NORDic_DR.utils - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.DISGENET_utils module ---------------------------------------- - -.. automodule:: NORDic.UTILS.DISGENET_utils - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.LINCS_utils module ---------------------------------- - -.. automodule:: NORDic.UTILS.LINCS_utils - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.STRING_utils module ---------------------------------- - -.. automodule:: NORDic.UTILS.STRING_utils - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_data module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_data - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_exp module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_exp - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_grn module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_grn - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_network module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_network - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_plot module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_plot - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_sim module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_sim - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_state module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_state - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: NORDic - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/NORDic_DR.rst b/docs/NORDic_DR.rst new file mode 100644 index 0000000..af30112 --- /dev/null +++ b/docs/NORDic_DR.rst @@ -0,0 +1,26 @@ +NORDic_DR module +================= + +NORDic.NORDic\_DR.bandits module +---------------------------------- + +.. automodule:: NORDic.NORDic_DR.bandits + :members: + :undoc-members: + :show-inheritance: + +NORDic.NORDic\_DR.functions module +---------------------------------- + +.. automodule:: NORDic.NORDic_DR.functions + :members: + :undoc-members: + :show-inheritance: + +NORDic.NORDic\_DR.utils module +---------------------------------- + +.. automodule:: NORDic.NORDic_DR.utils + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/NORDic_DS.rst b/docs/NORDic_DS.rst new file mode 100644 index 0000000..607a9dd --- /dev/null +++ b/docs/NORDic_DS.rst @@ -0,0 +1,26 @@ +NORDic_DS module +================= + +NORDic.NORDic\_DS.functions module +------------------------------------------------------- + +.. automodule:: NORDic.NORDic_DS.functions + :members: + :undoc-members: + :show-inheritance: + +NORDic.NORDic\_DS.get_drug_signatures module +--------------------------------------------------------------- + +.. automodule:: NORDic.NORDic_DS.get_drug_signatures + :members: + :undoc-members: + :show-inheritance: + +NORDic.NORDic\_DS.get_drug_targets module +--------------------------------------------------------------- + +.. automodule:: NORDic.NORDic_DS.get_drug_targets + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/NORDic_NI.rst b/docs/NORDic_NI.rst new file mode 100644 index 0000000..1797100 --- /dev/null +++ b/docs/NORDic_NI.rst @@ -0,0 +1,10 @@ +NORDic_NI module +================= + +NORDic.NORDic\_NI.functions module +-------------------------------------------------- + +.. automodule:: NORDic.NORDic_NI.functions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/NORDic_PMR.rst b/docs/NORDic_PMR.rst new file mode 100644 index 0000000..485f9a9 --- /dev/null +++ b/docs/NORDic_PMR.rst @@ -0,0 +1,10 @@ +NORDic_PMR module +================= + +NORDic.NORDic\_PMR.functions module +-------------------------------------------------- + +.. automodule:: NORDic.NORDic_PMR.functions + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/NORDic_UTILS.rst b/docs/NORDic_UTILS.rst new file mode 100644 index 0000000..d26eee6 --- /dev/null +++ b/docs/NORDic_UTILS.rst @@ -0,0 +1,82 @@ +NORDic_UTILS module +==================== + +NORDic.UTILS.DISGENET_utils module +--------------------------------------- + +.. automodule:: NORDic.UTILS.DISGENET_utils + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.LINCS_utils module +--------------------------------- + +.. automodule:: NORDic.UTILS.LINCS_utils + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.STRING_utils module +--------------------------------- + +.. automodule:: NORDic.UTILS.STRING_utils + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.utils_data module +--------------------------------- + +.. automodule:: NORDic.UTILS.utils_data + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.utils_exp module +--------------------------------- + +.. automodule:: NORDic.UTILS.utils_exp + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.utils_grn module +--------------------------------- + +.. automodule:: NORDic.UTILS.utils_grn + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.utils_network module +--------------------------------- + +.. automodule:: NORDic.UTILS.utils_network + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.utils_plot module +--------------------------------- + +.. automodule:: NORDic.UTILS.utils_plot + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.utils_sim module +--------------------------------- + +.. automodule:: NORDic.UTILS.utils_sim + :members: + :undoc-members: + :show-inheritance: + +NORDic.UTILS.utils_state module +--------------------------------- + +.. automodule:: NORDic.UTILS.utils_state + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/html/NORDic.html b/docs/_build/html/NORDic.html deleted file mode 100644 index aa5dd96..0000000 --- a/docs/_build/html/NORDic.html +++ /dev/null @@ -1,3623 +0,0 @@ - - - - - - - NORDic package — NORDic v2.4.3 documentation - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

NORDic package

-
-

Submodules

-
-
-

NORDic.NORDic_NI.functions module

-
-
-NORDic.NORDic_NI.functions.import_all_solutions(solution_fname, quiet=False)
-

Import all solutions which have been generated

-

-
-

Parameters

-
-
solution_fnamePython character string

header of solution files

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
solutionsPandas DataFrame

rows/[genes] x columns/[solution IDs] containing regulatory functions for each gene in each solution

-
-
-
-
- -
-
-NORDic.NORDic_NI.functions.network_identification(file_folder, taxon_id, path_to_genes=None, disgenet_args=None, network_fname=None, string_args=None, experiments_fname=None, lincs_args=None, edge_args=None, sig_args=None, bonesis_args=None, weights=None, seed=0, njobs=1, force_experiments=True, accept_nonRNA=False, preserve_network_sign=True)
-

Generates or retrieves the optimal network model

-

-
-

Parameters

-
-
file_folderPython character string

path to which files should be saved

-
-
taxon_idPython integer

NCBI Taxonomy ID for the considered species

-
-
path_to_genesPython character string or None

[default=None] : path to the file containing gene names (one per line)

-
-
disgenet_argsPython dictionary or None

[default=None] : arguments to the DisGeNET API (see test files)

-
-
network_fnamePython character string or None

[default=None] : path to the file containing the prior knowledge network (see test files)

-
-
string_argsPython dictionary or None

[default=None] : arguments to the STRING API (see test files)

-
-
experiments_fnamePython character string or None

[default=None] : path to the file containing the matrix of gene expression data (genes x samples) (see test files for format)

-
-
lincs_argsPython dictionary or None

[default=None] : arguments to the LINCS L1000 API (see test files)

-
-
edge_argsPython dictionary or None

[default=None] : arguments to the processing of edges (see test files)

-
-
sig_argsPython dictionary or None

[default=None] : arguments to the processing of signatures (see test files)

-
-
bonesis_argsPython dictionary or None

[default=None] : arguments to building constraints and generating solutions using BoneSIS (see test files)

-
-
weightsPython dictionary or None

[default=None] : weights to the optimal model selection procedure (see test files)

-
-
seedPython integer

[default=0] : random seed

-
-
njobsPython integer

[default=1] : number of parallel jobs

-
-
force_experimentsPython bool

[default=True] : if set to True, returns an error if no experimental profile associated with the genes is found

-
-
accept_nonRNAPython bool

[default=False] : if set to False, ignores gene names which cannot be converted to EntrezIDs or which are not present in LINCS L1000

-
-
-
-
-

Returns

-
-
solutionPython character string

optimal model selected by the procedure

-
-
-
-
- -
-
-NORDic.NORDic_NI.functions.select_optimal_model(sols, weights, file_folder)
-
- -
-
-NORDic.NORDic_NI.functions.solution2cytoscape(solution, fname)
-

Convert a solution into a Cytoscape-readable file

-

-
-

Parameters

-
-
solutionPandas Series

rows/[genes]

-
-
fnamePython character string

path to Cytoscape-readable SIF and XML (style) files (no extension)

-
-
-
-
-

Returns

-
-
None

writes a Cytoscape-readable file

-
-
-
-
- -
-
-NORDic.NORDic_NI.functions.solution_generation(file_folder, taxon_id, path_to_genes=None, disgenet_args=None, network_fname=None, string_args=None, experiments_fname=None, lincs_args=None, edge_args=None, sig_args=None, bonesis_args=None, weights=None, seed=0, njobs=1, force_experiments=True, accept_nonRNA=False, preserve_network_sign=True)
-

Generates or retrieves the optimal network model

-

-
-

Parameters

-
-
file_folderPython character string

path to which files should be saved

-
-
taxon_idPython integer

NCBI Taxonomy ID for the considered species

-
-
path_to_genesPython character string or None

path to the file containing gene names (one per line)

-
-
disgenet_argsPython dictionary or None

arguments to the DisGeNET API (see test files)

-
-
network_fnamePython character string or None

path to the file containing the prior knowledge network (see test files)

-
-
string_argsPython dictionary or None

arguments to the STRING API (see test files)

-
-
experiments_fnamePython character string or None

path to the file containing the matrix of gene expression data (genes x samples) (see test files for format)

-
-
lincs_argsPython dictionary or None

arguments to the LINCS L1000 API (see test files)

-
-
edge_argsPython dictionary or None

arguments to the processing of edges (see test files)

-
-
sig_argsPython dictionary or None

arguments to the processing of signatures (see test files)

-
-
bonesis_argsPython dictionary or None

arguments to building constraints and generating solutions using BoneSIS (see test files)

-
-
seedPython integer

[default=0] : random seed

-
-
njobsPython integer

[default=1] : number of parallel jobs

-
-
force_experimentsPython bool

[default=True] : if set to True, returns an error if no experimental profile associated with the genes is found

-
-
accept_nonRNAPython bool

[default=False] : if set to False, ignores gene names which cannot be converted to EntrezIDs or which are not present in LINCS L1000

-
-
-
-
-

Returns

-
-
solutionPython character string

optimal model selected by the procedure

-
-
-
-
- -
-
-NORDic.NORDic_NI.functions.visualize_models(sols, file_folder)
-

Selection of an optimal model in a set of solutions, based on a topology-based desirability function

-

-
-

Parameters

-
-
solsPandas DataFrame

rows/[genes] x columns/[solution IDs]

-
-
weightsPython dictionary

weight for each graph characteristic

-
-
-
-
-

Returns

-
-
solutionPandas DataFrame

rows/[genes] x column/[solution ID] selected solution

-
-
-
-
- -
-
-

NORDic.NORDic_PMR.functions module

-
-
-NORDic.NORDic_PMR.functions.compute_similarities(f, x0, A, A_WT, gene_outputs, nb_sims, experiments, repeat=1, exp_name='', quiet=False)
-

Compute similarities between any attractor in WT and in mutants, weighted by their probabilities

-

-
-

Parameters

-
-
fBoolean Network (MPBN) object

the mutated network

-
-
x0MPBN object

initial state

-
-
AAttractor list

list of attractors in mutant

-
-
A_WTAttractor list

list of attractors in WT

-
-
gene_outputsPython character string list

list of node names to check

-
-
nb_simsPython integer

number of iterations to compute the probabilities

-
-
experimentsPython dictionary list

list of experiments (different rates/depths)

-
-
repeatPython integer

[default=1] : how many times should these experiments be repeated

-
-
exp_namePython character string

[default=””] : printed info about the experiment (if quiet=True)

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
simPython float

change in attractors induced by the mutation

-
-
-
-
- -
-
-NORDic.NORDic_PMR.functions.greedy(network_name, k, states, im_params, simu_params, save_folder=None, quiet=False)
-

Greedy Influence Maximization Algorithm [Kempe et al., 2003]. Finds iteratively the maximum spreader and adds it to the list until the list is of size k

-

-
-

Parameters

-
-
network_namePython character string

bnet network

-
-
kPython integer

maximum size of the spreader

-
-
im_paramsPython dictionary or None

[default=None] : parameters of the influence maximization

-
-
statesPandas DataFrame or None

[default=None] : list of initial states to consider

-
-
save_folderPython character string

[default=None] : where to save intermediary results (if None: do not save intermediary results)

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
S, spreadsPython character string list

nodes in the spreader set, Python dictionary: spread value associated with every tested subset of nodes

-
-
-
-
- -
-
-NORDic.NORDic_PMR.functions.run_experiments(network_name, spreader, gene_list, state, gene_outputs, simu_params, quiet=False)
-
- -
-
-NORDic.NORDic_PMR.functions.spread(network_name, spreader, gene_list, state, gene_outputs, simu_params, seednb=0, quiet=False)
-

Compute the spread of each gene in gene_inputs+spreader with initial state state on genes gene_outputs. Here, the (single state) spread is defined as the indicator of the emptyness of the intersection between WT and mutant attractors

-

-
-

Parameters

-
-
network_namePython character string

filename of the network in .bnet (needs to be pickable)

-
-
spreaderPython character string list

subset of node names

-
-
gene_listPython character string list

list of node names to perturb in addition to the spreader

-
-
statePandas DataFrame

binary initial state rows/[genes] x columns/[values in {-1,0,1}]

-
-
gene_outputsPython character string list

list of node names to check

-
-
simu_paramsPython dictionary

arguments to MPBN-SIM

-
-
seednbPython integer

[default=0] : random seed

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
spdsPython float dictionary

change in mutant attractor states for each gene in gene_list that is, the similarity between any attractor reachable from state in WT and any in mutant spreader+{g} where g in gene_list

-
-
-
-
- -
-
-NORDic.NORDic_PMR.functions.spread_multistate(network_name, spreader, gene_list, states, gene_outputs, im_params, simu_params, quiet=False)
-

Compute the spread of each gene in gene_inputs+spreader with initial states in states on genes gene_outputs. Here, the (single state) spread is defined as the indicator of the emptyness of the intersection between WT and mutant attractors

-

-
-

Parameters

-
-
network_namePython character string

filename of the network in .bnet (needs to be pickable)

-
-
spreaderPython character string list

subset of node names

-
-
gene_listPython character string list

list of node names to perturb in addition to the spreader

-
-
statesPandas DataFrame

binary initial state rows/[genes] x columns/[state ID]

-
-
gene_outputsPython character string list

list of node names to check

-
-
im_paramsPython dictionary

arguments to Influence Maximization

-
-
simu_paramsPython dictionary

arguments to MPBN-SIM

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
spdsPython float dictionary

change in mutant attractor states for each gene in gene_list that is, the geometric mean of similarities between any attractor reachable from state in states in WT and any in mutant spreader+{g} where g in gene_list

-
-
-
-
- -
-
-

NORDic.NORDic_DS.functions module

-
-
-NORDic.NORDic_DS.functions.baseline(signatures, phenotype, is_binary=False)
-

Compute the cosine scores between a set of signatures S and a differential phenotype P

-

-
-

Parameters

-
-
SPandas DataFrame

signatures rows/[genes] x columns/[drug names] [Treated || Control]

-
-
PPandas DataFrame

differential phenotype rows/[genes] x column/[disease name] [Diseased || Healthy]

-
-
is_binaryPython bool

[default=False] : if set to True, the signatures and phenotypes might be binary (that is, with values in {0,1})

-
-
-
-
-

Returns

-
-
scoresPython float dictionary

dictionary (keys=drug names, values=scores), the higher the score, the higher the repurposing power

-
-
-
-
- -
-
-NORDic.NORDic_DS.functions.compute_frontier(df, samples, nbseed=0, quiet=False)
-

Fit a model to classify control/treated phenotypes

-

-
-

Parameters

-
-
dfPandas DataFrame

rows/[genes] x columns/[samples] (either 1: active expression, -1: inactive expression, 0: undetermined expression)

-
-
samplesPandas DataFrame

rows/[“annotation”] x columns/[samples ], values are 1 (healthy sample) or 2 (patient sample).

-
-
nbseedPython integer

[default=0] : random seed

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
modelPython object

object with a function “predict” that returns predictions (1: control, or 2: treated) on phenotypes

-
-
-
-
- -
-
-NORDic.NORDic_DS.functions.compute_metrics(rewards, ground_truth, K=[2, 5, 10], use_negative_class=False, nperms=10000, thres=0.0, beta=1.0)
-

Compute AUC, Hit Ratio @ k of method for positive/negative class with p-value

-

-
-

Parameters

-
-
rewardsPython float list

predicted scores

-
-
ground_truthPython float list

ground truth scores

-
-
KPython integer list

[default=[2,5,10]] : ranks at which the hit ratio should be computed

-
-
use_negative_classPython bool

[default=False] : if set to True, compute the performance with respect to the negative class instead of the positive class

-
-
npermsPython integer

[default=10000] : number of permutations to perform

-
-
thresPython float

[default=0.] : decision threshold to determine the positive (resp. negative) class

-
-
betaPython float

[default=1.] : value of the coefficient in the F-measure

-
-
-
-
-

Returns

-
-
res_diPython dictionary

(keys=metrics, values=values of the metrics)

-
-
-
-
- -
-
-NORDic.NORDic_DS.functions.compute_score(f, x0, A, score, genes, nb_sims, experiments, repeat=1, exp_name='', quiet=False)
-

Compute similarities between any attractor in WT and in mutants, weighted by their probabilities

-

-
-

Parameters

-
-
fBoolean Network (MPBN) object

the mutated network

-
-
x0MPBN object

initial state

-
-
AAttractor list

list of attractors in mutant network

-
-
scorePython object

scoring of attractors

-
-
genesPython character string list

list of genes in the model frontier

-
-
nb_simsPython integer

number of iterations to compute the probabilities

-
-
experimentsPython dictionary list

list of experiments (different rates/depths)

-
-
repeatPython integer

[default=1] : how many times should these experiments be repeated

-
-
exp_namePython character string

[default=””] : printable for an experiment

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
scorePython float

change in attractors induced by the mutation

-
-
-
-
- -
-
-NORDic.NORDic_DS.functions.empirical_pvalue(sorted_rewards, sorted_ground_truth, nperms, method='ks_2samp')
-

Compute an empirical p-value corresponding to testing whether the distributions in the predicted scores and the ground truth are similar by randomly permuting the values of the predictions and averaging the number of significant statistics across all permutations

-

-
-

Parameters

-
-
sorted_rewardsPython float list

predicted scores sorted by genes of increasing predicted value

-
-
sorted_ground_truthPython float list

ground truth scores sorted by genes of increasing predicted value

-
-
npermsPython integer

number of permutations to perform

-
-
methodPython character string

[default=”ks_2samp”] : statistical test to perform at each permutation (should belong to scipy.stats)

-
-
-
-
-

Returns

-
-
pvaluePython float

empirical p-value corresponding to the test across all @nperms permutations

-
-
-
-
- -
-
-NORDic.NORDic_DS.functions.simulate(network_fname, targets, patients, score, simu_params={}, nbseed=0, quiet=False)
-

Simulate and score the individual effects of drugs on patient phenotypes, compared to controls

-

-
-

Parameters

-
-
network_fnamePython character string

(relative) path to a network .BNET file

-
-
targetsPandas DataFrame

rows/[genes] x columns/[drugs to test] (either 1: active expression, -1: inactive expression, 0: undetermined expression)

-
-
patientsPandas DataFrame

rows/[genes] x columns/[samples] (either 1: activatory, -1: inhibitory, 0: no regulation).

-
-
scorePython object

scoring of attractors

-
-
simu_paramsPython dictionary

[default={}] : arguments to MPBN-SIM

-
-
nbseedPython integer

[default=0] : random seed

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
scoresPandas DataFrame

rows/[patient phenotypes] x columns/[drug names], values are the associated scores

-
-
-
-
- -
-
-NORDic.NORDic_DS.functions.simulate_treatment(network_name, targets, score, state, simu_params={}, quiet=False)
-

Compute the score assigned to a drug with targets in @targets[[drug]] in network

-

-
-

Parameters

-
-
network_namePython character string

filename of the network in .bnet (needs to be pickable)

-
-
targetsPandas DataFrame

rows/[genes] x columns/[columns]

-
-
scorePython object

scoring of attractors

-
-
statePandas DataFrame

binary patient initial state rows/[genes] x columns/[values in {-1,0,1}]

-
-
simu_paramsPython dictionary

[default={}] : arguments to MPBN-SIM

-
-
seednbPython integer

[default=0] : random seed

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
effectsPython float dictionary

distance from attractors from treated networks to control profiles

-
-
-
-
- -
-
-

NORDic.NORDic_DS.get_drug_signatures module

-
-
-NORDic.NORDic_DS.get_drug_signatures.compute_drug_signatures_L1000(pubchem_cids, lincs_args, binarize=True, gene_list=None, chunksize=10)
-

Get drug signatures from LINCS L1000

-

-
-

Parameters

-
-
pubchem_cidsPython integer list

list of drug PubChem CIDs

-
-
lincs_argsPython dictionary

additional arguments for LINCS L1000 requests

-
-
binarizePython bool

[default=True] : should the resulting signatures be binarized?

-
-
-
-
-

Returns

-
-
sigsPandas DataFrame

rows/[genes] x columns/[drug names]

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_signatures.drugname2pubchem(drug_names, lincs_args)
-

Convert drug names into PubChem CIDs

-

-
-

Parameters

-
-
drug_namesPython character string list

list of drug names

-
-
lincs_argsPython dictionary

additional arguments for LINCS L1000 requests

-
-
-
-
-

Returns

-
-
pubchem_cidsPython dictionary

(keys=drug names, values=PubChem CIDs)

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_signatures.get_ranking(CD)
-

Retrieve ranking (50 first drugs) from L1000 CDS^2 search engine

-

-
-

Parameters

-
-
CDPandas DataFrame

rows/[genes] x column/[value] differential phenotype

-
-
-
-
-

Returns

-
-
resulsPandas DataFrame

rows/[drug names] x column/[“L1000 CDS2”] ranking of the drugs according to their ability to reverse the phenotype

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_signatures.pubchem2drugname(pubchem_cids, lincs_args)
-

Convert drug names into PubChem CIDs

-

-
-

Parameters

-
-
pubchem_cidsPython integer list

list of drug PubChem CIDs

-
-
lincs_argsPython dictionary

additional arguments for LINCS L1000 requests

-
-
-
-
-

Returns

-
-
pert_inamesPython dictionary

(keys=PubChem CIDs, values=drug names)

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_signatures.retrieve_drug_signature(pubchem_cid, cell_ids, gene_list, lincs_args, binarize, quiet=False)
-

Retrieve control & treated samples from LINCS L1000 and compute the corresponding drug signature

-

-
-

Parameters

-
-
pubchem_cidPython integer

drug PubChem CID

-
-
cell_idsPython character string list

list of candidate cell lines in LINCS L1000

-
-
gene_listPython integer list

list of EntrezID genes

-
-
lincs_argsPython dictionary

additional arguments for LINCS L1000 requests

-
-
binarizePython bool

should the resulting signatures be binarized?

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
sigPandas DataFrame

rows/[genes] x column/[drug PubChem]

-
-
-
-
- -
-
-

NORDic.NORDic_DS.get_drug_targets module

-
-
-NORDic.NORDic_DS.get_drug_targets.get_targets_DrugBank(drug_names, path_to_drugbank, drug_fname, target_fname, quiet=False)
-

Utility function which gets drug targets from a local DrugBank database

-

-
-

Parameters

-
-
drug_namesPython character string list

list of common drug names

-
-
path_to_drugbankPython character string

(relative) path to DrugBank files

-
-
drug_fnamePython character string

file name of .XML file of the complete database (full_database.xml) in DrugBank

-
-
target_fnamePython character string

file name of .CSV file of the protein targets (all.csv) in DrugBank

-
-
quietPython bool

prints out verbose (default=False)

-
-
-
-
-

Returns

-
-
target_dfPandas DataFrame

rows/[lists of HGNC symbols of targets] x columns/[drug names], values are “*” (known regulator) or “” (no known regulation)

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_targets.get_targets_DrugCentral(drug_names, quiet=False)
-

Utility function to retrieve drug targets from the DrugCentral 2021

-

-
-

Parameters

-
-
drug_namePython character string list

list of common drug names

-
-
quietPython bool

prints out verbose (default=False)

-
-
-
-
-

Returns

-
-
target_dfPandas DataFrame

rows/[lists of HGNC symbols of targets] x columns/[drug names], values are “*” (known regulator) or “” (no known regulation)

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_targets.get_targets_LINCS(drug_names, path_to_lincs, credentials, selection=None, nsigs=None, quiet=False)
-

Utility function to retrieve drug targets from the LINCS L1000 database

-

-
-

Parameters

-
-
drug_namesPython character string list

list of common drug names

-
-
path_to_lincsPython character string

(relative) path to LINCS files

-
-
credentialsPython character string

(relative) path to LINCS credentials file

-
-
quietPython bool

prints out verbose (default=False)

-
-
-
-
-

Returns

-
-
target_dfPandas DataFrame

rows/[lists of HGNC symbols of targets] x columns/[drug names], values are “*” (known regulator) or “” (no known regulation)

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_targets.get_targets_MINERVA(drug_names, quiet=False)
-

Utility function using httr:GET to send queries to a given MINERVA Platform instance

-

-
-

Parameters

-
-
drug_namesPython character string list

list of common drug names

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
target_dfPandas DataFrame

rows/[lists of HGNC symbols of targets] x columns/[drug names], values are “*” (known regulator) or “” (no known regulation)

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_targets.get_targets_TTD(drug_names, quiet=False)
-

Utility function to retrieve drug targets from the Therapeutic Target Database (TTD)

-

-
-

Parameters

-
-
drug_namePython character string list

list of common drug names

-
-
quietPython bool

prints out verbose (default=False)

-
-
-
-
-

Returns

-
-
target_dfPandas DataFrame

rows/[lists of HGNC symbols of targets] x columns/[drug names], values are “-” (inhibitor) or “+” (activator) or “” (no known regulation)

-
-
-
-
- -
-
-NORDic.NORDic_DS.get_drug_targets.retrieve_drug_targets(file_folder, drug_names, TARGET_args={}, gene_list=[], sources=['DrugBank', 'MINERVA', 'LINCS', 'TTD', 'DrugCentral'], quiet=False)
-

Retrieve drug targets from several online sources

-

-
-

Parameters

-
-
drug_namesPython character string list

list of common drug names

-
-
TARGET_argsPython dictionary

[default={}] : see for each source

-
-
gene_listPython character string list

[default=[]] : list of HGNC symbols

-
-
sourcesPython character string list

[default=[“DrugBank”,”MINERVA”,”LINCS”,”TTD”,”DrugCentral”]] : list of source names (in [“DrugBank”,”MINERVA”,”LINCS”,”TTD”,”DrugCentral”])

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
targets_dfPandas DataFrame

rows/[genes] x columns/[drug names], values are the number of times a target is connected to a drug across all queried databases

-
-
-
-
- -
-
-

NORDic.NORDic_DR.bandits module

-
-
-class NORDic.NORDic_DR.bandits.AdaHedge(K)
-

Bases: Learner

-
-
-act()
-
- -
-
-incur(w)
-
- -
- -
-
-class NORDic.NORDic_DR.bandits.Greedy(K)
-

Bases: Learner

-
-
-act()
-
- -
-
-incur(w)
-
- -
- -
-
-class NORDic.NORDic_DR.bandits.Learner(K, name='UnimplementedLearner')
-

Bases: object

-
-
-act()
-
- -
-
-incur(w)
-
- -
- -
-
-class NORDic.NORDic_DR.bandits.LinGapE(method_args)
-

Bases: Misspecified

-
-
-apply(problem, greedy_sampling=True, lambda_val=1.0)
-
- -
-
-greedy(problem, b_t, c_t, Vinv)
-
- -
-
-optimized(problem, b_t, c_t, Vinv)
-
- -
-
-stopping_rule()
-
- -
-
-update(problem, candidates, Vinv, b)
-
- -
- -
-
-class NORDic.NORDic_DR.bandits.MisLid(method_args)
-

Bases: Misspecified

-
-
-apply(problem, precision=1e-07)
-
- -
-
-best_answer(means)
-
- -
-
-stopping_rule(quiet=True)
-
- -
-
-update(problem, candidates, Vinv, b, Vinv_val=None)
-
- -
- -
-
-class NORDic.NORDic_DR.bandits.Misspecified(method_args)
-

Bases: object

-
-
-clear()
-
- -
-
-run(problem, nsimu, run_id=None, quiet=False)
-
- -
-
-sample(problem, candidates)
-
- -
- -
-
-NORDic.NORDic_DR.bandits.gaussian(X, delta, sigma, c)
-
- -
-
-NORDic.NORDic_DR.bandits.heuristic(X, delta, sigma, c)
-
- -
-
-NORDic.NORDic_DR.bandits.misspecified(X, delta, sigma, c)
-
- -
-
-NORDic.NORDic_DR.bandits.subheuristic(X, delta, sigma, c)
-
- -
-
-

NORDic.NORDic_DR.functions module

-
-
-NORDic.NORDic_DR.functions.adaptive_testing(network_name, signatures, targets, score, states, simu_params={}, bandit_args={}, reward_fname=None, quiet=False)
-
-

Perform adaptive testing and recommends most promising treatments (=maximizing score)

-
-

-
-

Parameters

-
-
network_namePython character string

(relative) path to a network .BNET file

-
-
signaturesPandas DataFrame

rows/[features] x columns/[drugs to test]

-
-
targetsPandas DataFrame

rows/[genes] x columns/[drugs to test] (either 1: active expression, -1: inactive expression, 0: undetermined expression)

-
-
scorePython object

scoring of attractors

-
-
statesPandas DataFrame

rows/[gene] x columns/[patient samples] (either 1: activatory, -1: inhibitory, 0: no regulation).

-
-
simu_params: Python dictionary

[default={}] : arguments to MPBN-SIM

-
-
bandit_paramsPython dictionary

[default={}] : arguments to the bandit algorithms

-
-
reward_fnamePython character string

[default=None] : path to a reward matrix rows/[patients] x columns/[drugs]

-
-
quietPython bool

[default=False] : prints verbose

-
-
-
-
-

Returns

-
-
empirical_recPandas DataFrame

rows/[drugs to test] x column/[“Frequency”], the percentage of times across all simulations at the end of which the considered drug is recommended

-
-
-
-
- -
-
-class NORDic.NORDic_DR.functions.testing_problem(signatures, problem_args)
-

Bases: object

-
-
-reward(arm)
-
- -
- -
-
-

NORDic.NORDic_DR.utils module

-
-
-NORDic.NORDic_DR.utils.argmax_m(ls, m)
-
- -
-
-NORDic.NORDic_DR.utils.barycentric_spanner(X, C=1, quiet=True, precision=1e-06)
-
- -
-
-NORDic.NORDic_DR.utils.c_kt(direction, problem, na, t, Vinv, M, c, x=None, confidence_width=None, cnorm=None)
-
- -
-
-NORDic.NORDic_DR.utils.closest_alternative(problem, b, means, theta, eta, w, c, S_t, constraint='L_inf', subsample=False, alternative_arms=[])
-
- -
-
-NORDic.NORDic_DR.utils.cnorm(x, norm='L_inf')
-
- -
-
-NORDic.NORDic_DR.utils.lambert(y, approx=False)
-
- -
-
-NORDic.NORDic_DR.utils.mahalanobis(x, M, power=1)
-
- -
-
-NORDic.NORDic_DR.utils.optimistic_gradient(problem, Vinv, mu, lambda_, na, t, M, c, gain_type, x=None)
-
- -
-
-NORDic.NORDic_DR.utils.projection(Vinv, b, x_hat, X, nb_pulls, c)
-
- -
-
-NORDic.NORDic_DR.utils.quadprog_solve_qp(P, q, G=None, h=None, A=None, b=None)
-
- -
-
-NORDic.NORDic_DR.utils.randf(ls, m, f)
-
- -
-
-NORDic.NORDic_DR.utils.sherman_morrison(M, x)
-
- -
-
-NORDic.NORDic_DR.utils.solve_alternative_quadprog(problem, b, theta_emp, eta_emp, a, i_t, w, epsilon, constraint=None)
-
- -
-
-NORDic.NORDic_DR.utils.tracking_rule(w, sum_w, na, t, tracking_type, forced_exploration=False)
-
- -
-
-NORDic.NORDic_DR.utils.update_misspecified(problem, candidates, Vinv, b, c, na, rewards, Vinv_val=None)
-
- -
-
-

NORDic.UTILS.DISGENET_utils module

-
-
-NORDic.UTILS.DISGENET_utils.get_genes_evidences_from_DISGENET(gene_list, disease, limit=3000, source='CURATED', min_score=0, chunksize=100, user_key=None, quiet=False)
-

Retrieves the references for the association between each gene in the list and the disease

-

-
-

Parameters

-
-
gene_listPython character string list

list of associated genes

-
-
diseasePython character string

Concept ID (CID) from MedGen

-
-
limitPython integer

[default=3000] : limit of the number of references

-
-
sourcePython character string

[default=”CURATED”] : DisGeNET data sources [“CURATED”,”ANIMAL MODELS”,”INFERRED”,”ALL”] (see https://www.disgenet.org/dbinfo)

-
-
min_scorePython float

[default=0] : minimum evidence score

-
-
chunksizePython integer

[default=100] : size of chunks (1 chunk per request)

-
-
user_keyPython character string or None

[default=None] : API key from DisGeNET

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
res_dfPandas DataFrame

rows/[row number] x columns/[“gene_symbol”, “sentence”, “associationtype”, “pmid”, “year”, “score”]

-
-
-
-
- -
-
-NORDic.UTILS.DISGENET_utils.get_genes_proteins_from_DISGENET(disease_list, limit=3000, source='CURATED', min_score=0, min_ei=0, min_dsi=0.25, min_dpi=0, chunksize=100, user_key=None, quiet=False)
-

Retrieves a list of protein names (and associated gene names) related to the input disease CIDs

-

-
-

Parameters

-
-
disease_listPython character string list

list of Concept IDs (CID) from Medgen for each disease

-
-
limitPython integer

[default=3000] : max. number of proteins

-
-
sourcePython character string

[default=”CURATED”] : DisGeNET data sources [“CURATED”,”ANIMAL MODELS”,”INFERRED”,”ALL”] (see https://www.disgenet.org/dbinfo)

-
-
min_scorePython float

[default=0] : minimum global score

-
-
min_eiPython float

[default=0] : minimimum Evidence Index

-
-
min_dsiPython float

[default=0.25] : minimum Disease Specificity Index

-
-
min_dpiPython float

[default=0] : minimum Disease Pleiotropy Index

-
-
chunksizePython integer

[default=100] : size of chunks (1 chunk per request)

-
-
user_keyPython character string or None

[default=None] : API key from DisGeNET

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
res_dfPandas DataFrame

rows/[Disease CID] x columns/[“Protein”, “Gene Name”] or None if Not found.

-
-
-
-
- -
-
-NORDic.UTILS.DISGENET_utils.get_user_key_DISGENET(fname)
-

Retrieves the user key from DisGeNET to call the API

-

-
-

Parameters

-
-
fnamePython character string

path of text file containing on the first line the email, the second the password

-
-
-
-
-

Returns

-
-
user_keyPython character string

from DisGeNET

-
-
-
-
- -
-
-

NORDic.UTILS.LINCS_utils module

-
-
-NORDic.UTILS.LINCS_utils.binarize_via_CD(df, samples, binarize=1, nperm=10000, quiet=False)
-

Run a differential expression analysis on a dataframe using Characteristic Direction (CD) [1] (implementation: www.maayanlab.net/CD/) -[1] doi.org/10.1186/1471-2105-15-79

-

-
-

Parameters

-
-
dfPandas DataFrame

one transcriptional profile per column (/!if #genes>25,000, then the 25,000 genes with highest variance will be considered)

-
-
samplesPython integer list

indicates which columns correspond to control (=1) / treated (=2) samples

-
-
binarizePython integer

[default=1] : whether to return a binary signature or a real-valued column ~magnitude of change in expression

-
-
npermPython integer

[default=10000] : number of iterations to build the null distribution on which p-values will be computed

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
signaturePandas DataFrame

rows/[gene index] x columns/[“aggregated”]: 0=down-regulated (DR), 1=up-regulated (UR) (if binarize=1) else <0=DR, >0=UR

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.build_url(endpoint, method, params, user_key=None)
-

Builds the request to CLUE API

-

-
-

Parameters

-
-
endpointPython character string

in [“sigs”, “cells”, “genes”, “perts”, “plates”, “profiles”, “rep_drugs”, “rep_drug_indications”, “pcls”]

-
-
methodPython character string

in [“count”, “filter”, “distinct”]

-
-
paramsPython dictionary

additional arguments for the request

-
-
user_keyPython character string

[default=None] : API key for LINCS CLUE.io

-
-
-
-
-

Returns

-
-
urlPython character string

URL of request

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.compute_interference_scale(sigs, samples, entrez_id, is_oe, taxon_id, lincs_specific_ctl_genes, quiet=True, eps=2e-07)
-

Computes the interference scale [1] which determines whether a genetic perturbation was successful -[1] doi.org/10.1002/psp4.12107

-

-
-

Parameters

-
-
sigsPandas DataFrame

rows/[genes] x columns/[control and treated samples]

-
-
samplesPython integer list

contains 1 for control samples, 2 for treated ones for each column of @sigs

-
-
entrez_idPython integer

EntrezID of the perturbed gene

-
-
is_oePython bool

is the experiment an overexpression of the perturbed gene (is_oe=True) or a knockdown

-
-
taxon_idPython integer

NCBI taxonomy ID

-
-
lincs_specific_ctl_genesPython string list

list of HNCG gene symbols for housekeeping genes

-
-
quietPython bool

[default=True] : prints out verbose

-
-
epsPython float

[default=2e-7] : avoids numerical errors for low-expression housekeeping genes

-
-
-
-
-

Returns

-
-
iscalePython float

interference scale for the input experiment

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.convert_ctrlgenes_EntrezGene(taxon_id)
-

Retrieves EntrezID from control genes in LINCS L1000 [1] -[1] doi.org/10.1002/psp4.12107

-

-
-

Parameters

-
-
taxon_idPython integer

NCBI taxonomy ID

-
-
-
-
-

Returns

-
-
lincs_specific_ctl_genesPython character string list

list of EntrezGene IDs for all genes in input list

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.create_restricted_drug_signatures(sig_ids, entrezid_list, path_to_lincs, which_lvl=[3], strict=True, quiet=False)
-

Create dataframe of drug signatures from LINCS L1000 from a subset of signature and gene IDs

-

-
-

Parameters

-
-
sig_idsPython character string list

list of signature IDs from LINCS L1000 (Level 3: “distil_id”, Level 5: “sig_id”)

-
-
entrezid_listPython character string list

list of EntrezIDs

-
-
path_to_lincsPython character string

folder in which LINCS L1000-related files are stored

-
-
which_lvlPython integer list

[3] for Level 3, [5] for Level 5

-
-
strictPython bool

[default=True] : if set to True, if not all signatures are retrieved, then return None. If set to False, return the (sub)set of retrievable signatures

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
sigs Pandas DataFrame

rows/[genes] x columns/[drugs]

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.download_file(path_to_lincs, file_name, base_url, file_sha, check_SHA=True, quiet=False)
-

Downloads automatically LINCS L1000-related files from Gene Expression Omnibus (GEO) (/!can be time-consuming: expect waiting times up to 20 min with a good Internet connection)

-

-
-

Parameters

-
-
path_to_lincsPython character string

path to local LINCS L1000 folder in which the files will be downloaded

-
-
file_namePython character string

file name to download on GEO

-
-
base_urlPython character string

path to GEO repository

-
-
file_shaPython character string

file name of corresponding SHA hash to check file integrity

-
-
check_SHAPython bool

[default=True] : whether to check the file integrity

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
0Python integer

0 means that the download was successful

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.download_lincs_files(path_to_lincs, which_lvl)
-

Returns and downloads the proper LINCS L1000 files from Gene Expression Omnibus (GEO)

-

-
-

Parameters

-
-
path_to_lincsPython character string

path to folder in which LINCS L1000-related files will be locally stored

-
-
which_lvlPython integer list

LINCS L1000 Level to download (either [3] -normalized gene expression-, [5] -binary experimental signatures-, [3,5])

-
-
-
-
-

Returns

-
-
file_listPython list of 4 Python character string lists

gene_files, sig_files, lvl3_files, lvl5_files Python lists of character strings

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.get_treated_control_dataset(treatment, pert_type, cell, filters, entrez_ids, taxon_id, user_key, path_to_lincs, entrez_id=None, selection='distil_ss', dose=None, iunit=None, itime=None, which_lvl=[5], nsigs=2, same_plate=True, quiet=False, trim_w_interference_scale=True, return_metrics=[])
-

Retrieve set of experimental profiles, with at least nsigs treated and control sample

-

-
-

Parameters

-
-
treatmentPython character string

HUGO gene symbol

-
-
pert_typePython character string

type of perturbation as accepted by LINCS L1000

-
-
cellPython character string

cell line existing in LINCS L1000

-
-
filtersPython dictionary

additional parameters for the LINCS L1000 requests

-
-
entrez_idsPython integer list

EntrezID genes

-
-
taxon_idPython integer

NCBI taxonomy ID

-
-
user_keyPython character string

LINCS L1000 user API key

-
-
path_to_lincsPython character string

path where LINCS L1000 files are locally stored

-
-
entrez_idPython integer

EntrezID identifier for HUGO gene symbol treatment

-
-
selectionPython character string

[default=”distil_ss”] : LINCS L1000 metric which is maximized by a given experiment

-
-
dosePython character string or None

[default=None] : filter by dose (if not None)

-
-
iunitPython character string or None

[default=None] : unit of dose

-
-
itimePython character string or None

[default=None] : filter by exposure time (if not None)

-
-
which_lvlPython integer list

[default=[3]] : LINCS L1000 data level to consider (either 3 or 5)

-
-
nsigsPython integer

[default=2] : minimal number of samples of each condition in each experiment

-
-
same_platePython bool

[default=True] : select samples from the same plate for each experiment and condition

-
-
quietPython bool

[default=True] : prints out verbose

-
-
trim_w_interference_scalePython bool

[default=True] : computes the interference scale criteria for further trimming

-
-
return_metricsPython character string list

[default=[]] : list of LINCS L1000 metrics to return as the same time as the profiles

-
-
-
-
-

Returns

-
-
sigsPandas DataFrame

rows/[genes+”annotation”+”signame”+”sigid”] x columns/[profiles] or None

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.get_user_key(fname)
-

Retrieves user key for interacting with LINCS L1000 CLUE API

-

-
-

Parameters

-
-
fnamePython character string

path to file containing credentials for LINCS L1000 (first line: username, second line: password, third line: user key)

-
-
-
-
-

Returns

-
-
user_keyPython character string

identifier for the LINCS L1000 CLUE API

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.post_request(url, quiet=True, pause_time=1)
-

Post request to API

-

-
-

Parameters

-
-
urlPython character string

URL formatted as in build_url

-
-
quietPython bool

[default=True] : prints out verbose

-
-
pause_timePython integer

[default=1] : minimum time in seconds between each request

-
-
-
-
-

Returns

-
-
dataPython dictionary

(JSON) or Python character string list (if request was method=”distinct”)

-
-
-
-
- -
-
-NORDic.UTILS.LINCS_utils.select_best_sig(params, filters, user_key, selection='distil_ss', nsigs=2, same_plate=True, iunit=None, quiet=False)
-

Select “best” set of profiles (“experiment”) (in terms of quality, or criterion “selection”) according to filters

-

-
-

Parameters

-
-
paramsPython dictionary

additional arguments for the request

-
-
filtersPython dictionary

additional arguments for filtering the results of the request (defined with params)

-
-
selectionPython character string

[default=”distil_ss”] : name of the metric in LINCS L1000 to define the best signature

-
-
nsigsPython integer

[default=2] : minimum number of signatures to retrieve

-
-
same_platePython bool

[default=True] : whether to retrieve signatures from the same plate or not

-
-
iunitPython character string or None

[default=None] : unit of dose (if None, any)

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
dataPython dictionary list

the list of profile IDs to retrieve from LINCS L1000

-
-
-
-
- -
-
-

NORDic.UTILS.STRING_utils module

-
-
-NORDic.UTILS.STRING_utils.get_app_name_STRING(fname)
-

Retrieves app name from STRING to interact with the API

-

-
-

Parameters

-
-
fnamePython character string

path to file with a unique line = email adress

-
-
-
-
-

Returns

-
-
app_namePython character string

identifier for the STRING API

-
-
-
-
- -
-
-NORDic.UTILS.STRING_utils.get_image_from_STRING(my_genes, taxon_id, file_name='network.png', min_score=0, network_flavor='evidence', network_type='functional', app_name=None, version='11.5', quiet=False)
-

Retrieves protein IDs in STRING associated with input genes in the correct species

-

-
-

Parameters

-
-
genes_listPython character list

list of gene symbols

-
-
taxon_idPython integer

taxon ID from NCBI

-
-
file_namePython character string

[default=”network.png”] : image file name

-
-
min_scorePython float

[default=0] : confidence lower threshold (in [0,1])

-
-
network_flavorPython character string

[default=”evidence”] : show links related to [“confidence”, “action”, “evidence”]

-
-
network_typePython character string

[default=”functional”] : show “functional” or “physical” network

-
-
app_namePython character string

[default=None] : identifier for STRING

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
None

writes the network image to a file file_name

-
-
-
-
- -
-
-NORDic.UTILS.STRING_utils.get_interactions_from_STRING(gene_list, taxon_id, min_score=0, app_name=None, file_folder=None, version='11.0', strict=False, quiet=False)
-

Retrieves (un)directed and (un)signed physical interactions from the STRING database

-

-
-

Parameters

-
-
gene_listPython character string list

list of genes

-
-
taxon_idPython integer

NCBI taxonomy ID

-
-
min_scorePython integer

[default=0] : in [0,1] STRING combined score

-
-
app_namePython character string

[default=None] : identifier for STRING

-
-
file_folderPython character string

[default=None]: where to save the file from STRING (if None, the file is not saved)

-
-
versionPython character string

[default=”v11.0”] : STRING database version

-
-
strictPython bool

[default=False] : if set to True, only keep interactions involving genes BOTH in @gene_list

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
res_dfPandas Dataframe

rows/[interation number] x columns/[“preferredName_A”, “preferredName_B”, “sign”, “directed”, “score”]

-
-
-
-
- -
-
-NORDic.UTILS.STRING_utils.get_interactions_partners_from_STRING(gene_list, taxon_id, min_score=0, network_type='functional', add_nodes=0, limit=5, app_name=None, version='11.5', quiet=False)
-

Retrieves undirected and unsigned interactions from the STRING database

-

-
-

Parameters

-
-
gene_listPython character string list

list of gene symbols

-
-
taxon_idPython integer

NCBI taxonomy ID

-
-
min_scorePython integer

[default=0] : minimum STRING combined edge score in [0,1]

-
-
network_typePython character string

[default=”functional”] : returns “functional” or “physical” network

-
-
limitPython integer

[default=5] : limits the number of interaction partners retrieved per protein (most confident interactions come first)

-
-
app_namePython character string

[default=None] : identifier for STRING

-
-
versionPython character string

[default=”11.5”] : STRING version

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
networkPandas DataFrame

rows/[row number] x columns/[“preferredName_A”,”preferredName_B”,”score”,”directed”]

-
-
-
-
- -
-
-NORDic.UTILS.STRING_utils.get_network_from_STRING(gene_list, taxon_id, min_score=0, network_type='functional', add_nodes=0, app_name=None, version='11.5', quiet=False)
-

Retrieves undirected and unsigned interactions from the STRING database

-

-
-

Parameters

-
-
gene_listPython character string list

list of gene symbols

-
-
taxon_idPython integer

NCBI taxonomy ID

-
-
min_scorePython integer

[default=0] : minimum STRING combined edge score in [0,1]

-
-
network_typePython character string

[default=”functional”] : returns “functional” or “physical” network

-
-
add_nodesPython integer

[default=0] : add nodes in the closest interaction neighborhood involved with the genes in @gene_list if set to 1

-
-
app_namePython character string

[default=None] : identifier for STRING

-
-
versionPython character string

[default=”11.5”] : STRING version

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
networkPandas DataFrame

rows/[row number] x columns/[“preferredName_A”,”preferredName_B”,”score”,”directed”]

-
-
-
-
- -
-
-NORDic.UTILS.STRING_utils.get_protein_names_from_STRING(gene_list, taxon_id, app_name=None, version='11.5', quiet=False)
-

Retrieves protein IDs in STRING associated with input genes in the correct species

-

-
-

Parameters

-
-
genes_listPython character list

list of gene symbols

-
-
taxon_idPython integer

taxon ID from NCBI

-
-
versionPython character string

[default=”11.5”] : STRING version

-
-
app_namePython character string

[default=None] : identifier to access STRING

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
res_dfPandas DataFrame

rows/[row number] x columns/[“queryItem”, “stringId”, “preferredName”, “annotation”]

-
-
-
-
- -
-
-NORDic.UTILS.STRING_utils.string_api_url(v)
-
- -
-
-

NORDic.UTILS.utils_data module

-
-
-NORDic.UTILS.utils_data.convert_EntrezGene_LINCSL1000(file_folder, EntrezGenes, user_key, quiet=False)
-

Converts EntrezIDs to Gene Symbols present in LINCS L1000

-

-
-

Parameters

-
-
file_folderPython character string

path to folder of intermediate results

-
-
EntrezGenesPython character string list

list of EntrezGene IDs

-
-
user_keyPython character string

LINCS L1000 user key

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
PandasPandas DataFrame

rows/[EntrezID] x columns/[“Gene Symbol”,”Entrez ID”] (“-” if they do not exist)

-
-
-
-
- -
-
-NORDic.UTILS.utils_data.convert_genes_EntrezGene(gene_list, taxon_id, app_name, chunksize=100, missing_genes={'C11ORF74': 'IFTAP', 'ENSP00000451560': 'TPPP2', 'RP11-566K11.2': 'TUBB4'}, quiet=False)
-

Convert gene symbols into EntrezGene CID

-

-
-

Parameters

-
-
gene_listPython character string list

list of genes

-
-
taxon_idPython character string

NCBI taxonomy ID

-
-
app_namePython character string

STRING identifier

-
-
missing_genesPython dictionary of character string x character string

known conversions

-
-
chunksizePython integer

[default=100] : 1 chunk per request

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
res_dfPandas DataFrame

rows/[“InputValue”] x columns/[“Gene ID”/might be separated by “; “] (“-” if they do not exist) or None if no identifier has been found

-
-
-
-
- -
-
-NORDic.UTILS.utils_data.get_all_celllines(pert_inames, user_key, quiet=False)
-

Get all cell lines in which one gene in the input list has been specifically perturbed (genetic perturbation)

-

-
-

Parameters

-
-
pert_inamesPython character string

List of genes (symbols from LINCS L1000)

-
-
user_keyPython character string

user key from LINCS L1000 CLUE API

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
cell_linesPython character string list

list of cell lines in which at least one gene from pert_inames has been perturbed

-
-
-
-
- -
-
-NORDic.UTILS.utils_data.request_biodbnet(probe_list, from_, to_, taxon_id, chunksize=500, quiet=False)
-

Converts gene identifier from from to to in a given species

-

-
-

Parameters

-
-
probe_listPython character string list

list of probes to convert (of type from_)

-
-
from_Python character string

an identifier type as recognized by BioDBnet

-
-
to_Python character string

an identifier type as recognized by BioDBnet

-
-
taxonIdPython integer

NCBI taxonomy ID

-
-
chunksizePython integer

[default=500] : 1 chunk per request

-
-
-
-
-

Returns

-
-
res_dfPandas DataFrame

rows/[“InputValue”/from_] x columns[to_] (“-” if the identifier has not been found)

-
-
-
-
- -
-
-

NORDic.UTILS.utils_exp module

-
-
-NORDic.UTILS.utils_exp.get_experimental_constraints(file_folder, cell_lines, pert_types, pert_di, taxon_id, selection, user_key, path_to_lincs, thres_iscale=None, nsigs=2, quiet=False)
-

Retrieve experimental profiles from the provided cell lines, perturbation types, list of genes, in the given species (taxon ID)

-

-
-

Parameters

-
-
file_folderPython character string

folder where to store intermediary results

-
-
cell_linesPython character string list

cell lines present in LINCS L1000

-
-
pert_typesPython character string list

types of perturbations as supported by LINCS L1000

-
-
pert_diPython dictionary

(keys=Python character string, values=Python integer) associates HUGO gene symbols to their EntrezGene IDs

-
-
taxon_idPython integer

NCBI taxonomy ID

-
-
selectionPython character string

LINCS L1000 metric to maximize

-
-
user_keyPython character string

LINCS L1000 user API key

-
-
path_to_lincsPython character string

path to local LINCS L1000 files

-
-
thres_iscalePython float or None

[default=None] : lower threshold on the interference scale which quantifies the success of a genetic experiment

-
-
nsigsPython integer

[default=2] : minimal number of profiles per experiment and condition

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
signaturesPandas DataFrame

rows/[genes+annotations] x columns/[profile/signature IDs]

-
-
-
-
- -
-
-NORDic.UTILS.utils_exp.profiles2signatures(profiles_df, user_key, path_to_lincs, save_fname, backgroundfile=False, selection='distil_ss', thres=0.5, bin_method='binary', nbackground_limits=(4, 30), quiet=False)
-

Convert experimental profiles into signatures (1 for control samples, 1 for treated ones)

-

-
-

Parameters

-
-
profiles_dfPandas DataFrame

rows/[genes+annotations] x columns/[samples]

-
-
user_keyPython character string

LINCS L1000 user API key

-
-
path_to_lincsPython character string

path to local LINCS L1000 files

-
-
save_fnamePython character string

path to save normalized expression profiles per cell line

-
-
background_filePython bool

[default=False] : retrieves from LINCS L1000 supplementary expression values if set to True to compute more precise basal gene expression levels

-
-
selectionPython character string

[default=”distil_ss”] : LINCS L1000 metric to maximize for the “background” data

-
-
thresPython float

[default=0.5] : threshold for cutoff normalized gene expression values (in [0,0.5])

-
-
bin_methodPython character string

[default=”binary”] : binarization approach

-
-
nbackground_limitsPython integer tuple

[default=(4,30)] : lower and upper bounds on the number of profiles for the background expression data

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
signatures_df Pandas DataFrame

rows/[genes] x columns/[signature ID]

-
-
-
-
- -
-
-

NORDic.UTILS.utils_grn module

-
-
-NORDic.UTILS.utils_grn.CL(influences)
-

Computes the average of node-wise clustering coefficients. The clustering coefficient of a node is the ratio of the degree of the considered node and the maximum possible number of connections such that this node and its current neighbors form a clique

-

-
-

Parameters

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes]

-
-
-
-
-

Returns

-
-
CLPython float

network clustering coefficient

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.Centr(influences)
-

Computes the network centralization, which is correlated with the similarity of the network to a graph with a star topology

-

-
-

Parameters

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes]

-
-
-
-
-

Returns

-
-
CentrPython float

network centralization

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.DS(influences)
-

Computes the number of edges over the maximum number of possible connections between the nodes in the network

-

-
-

Parameters

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes]

-
-
-
-
-

Returns

-
-
DSPython float

network density

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.GT(influences)
-

Computes the network heterogeneity, which quantifies the non-uniformity of the node degrees across the network

-

-
-

Parameters

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes]

-
-
-
-
-

Returns

-
-
GTPython float

network heterogeneity

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.build_influences(network_df, tau, beta=1, cor_method='pearson', expr_df=None, accept_nonRNA=False, quiet=False)
-

Filters out (and signs of unsigned) edges based on gene expression

-

-
-

Parameters

-
-
network_dfPandas DataFrame

rows/[index] x columns/[[“Input”, “Output”, “SSign”]] interactions

-
-
tauPython float

threshold on genepairwise expression correlation

-
-
betaPython integer

[default=1] : power applied to the adjacency matrix

-
-
cor_methodPython character string

[default=”pearson”] : type of correlation

-
-
expr_dfPandas DataFrame

[default=None] : rows/[genes] x columns/[samples] gene expression data

-
-
accept_nonRNAPython bool

[default=False] : if set to False, ignores gene names which are not present in expr_df

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes] signed adjacency matrix with only interactions s.t. corr^beta>=tau

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.build_observations(grn, signatures, quiet=False)
-

Implement experimental constraints from perturbation experiments in signatures. Experimental constraints are of the form Initial state masked by single-gene perturbation can lead to a steady attractor state Final

-

-
-

Parameters

-
-
grnInfluenceGraph (from BoneSiS)

contains topological constraints

-
-
signaturesPandas DataFrame

rows/[genes] x columns/[experiment IDs]. Experiment IDs is of the form “<pert. gene>_<pert. type>_<…>_<cell line>” (treated) or “initial_<cell line>” (control)

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
BOBoNesis object (from BoneSiS)

BoNesis object which can be evaluated

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.create_grn(influences, exact=False, max_maxclause=3, quiet=False)
-

Create a BoneSiS InfluenceGraph

-

-
-

Parameters

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes] of interactions, values in {-1,1,0} -1:negative,1:positive,0:absent

-
-
exactPython bool

[default=False] : should all interactions be preserved?

-
-
max_maxclausePython integer

[default=3] : upper bound on the number of clauses in DNF form

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
grnBoneSiS InfluenceGraph class object

BoneSiS GRN object

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.desirability(x, f_weight_di, A=0, B=1)
-

Harrington’s desirability function, used by [1] -Converts a list of functions to maximize into a single scalar function to maximize with values in [@A,@B]

-
-
[1] http://ceur-ws.org/Vol-2488/paper17.pdf

https://cran.r-project.org/web/packages/desirability/vignettes/desirability.pdf

-
-
-

-
-

Parameters

-
-
xdatapoint

any input to functions in f_weight_di

-
-
f_weight_diPython dictionary

function with arguments as the same type as x, and associated weight

-
-
APython float

[default=0] : lower bound of the function interval

-
-
BPython float

[default=1] : upper bound of the function interval

-
-
-
-
-

Returns

-
-
des(x)Python float

value of the desirability function at point x

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.general_topological_parameter(influences, weights)
-

Computes the general topological parameter (GTP) associated with the input network

-

-
-

Parameters

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes]

-
-
weightsPython dictionary of (Python character string x Python float)

all keys must be in [“DS”,”CL”,”Centr”,”GT”]

-
-
-
-
-

Returns

-
-
scorePython float

score using the Harrington’s desirability function

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.get_genes_downstream(network_fname, gene, n=-1)
-

Get the list of genes downstream of a gene in a network

-

-
-

Parameters

-
-
network_fnamePython character string

path to the .BNET file associated with the network

-
-
genePython character string

gene name in the network

-
-
nPython integer

[default=-1] : number of recursions (if<0, recursively get all downstream genes)

-
-
-
-
-

Returns

-
-
lst_downstreamPython character string list

list of nodes downstream of @gene

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.get_genes_interactions_from_PPI(ppi, connected=False, score=0, filtering=True, quiet=False)
-

Filtering edges to decrease computational cost while preserving network connectivity (if needed)

-

-
-

Parameters

-
-
ppiPandas DataFrame

rows/[index] x columns[{“preferredName_A”, “preferredName_B”, “sign”, “directed”, “score”]]; sign in {-1,1,2}, directed in {0,1}, score in [0,1]

-
-
connectedPython bool

[default=True] : if set to True, preserve/enforce connectivity on the final network

-
-
scorePython float

[default=0] : Lower bound on the edge-associated score

-
-
filteringPython bool

[default=True] : Whether to filter out edges by a correlation threshold

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
ppi_acceptedPandas DataFrame

rows/[index] x columns/[[“Input”, “Output”]]

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.get_genes_most_variable(control_profiles, treated_profiles, p=0.8)
-

Get the list of genes which contribute most to the variation between two conditions (in the @pth percentile of change)

-

-
-

Parameters

-
-
control_profilesPandas DataFrame

rows/[genes] x columns/[samples] profiles from condition 1

-
-
treated_profilesPandas DataFrame

rows/[genes] x columns/[samples] profiles from condition 1

-
-
pPython float

100*p th percentile to consider

-
-
-
-
-

Returns

-
-
lst_genesPython character string list

list of nodes which contribute most to the variation between conditions

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.get_grfs_from_solution(solution)
-

Retrieve all gene regulatory functions (GRFs) from a given solution

-

-
-

Parameters

-
-
solutionPandas Series

rows/[genes]

-
-
-
-
-

Returns

-
-
grfsPython dictionary

{gene: {regulator: sign, …}, …} where sign in {-1,1} -1: inhibitor, 1: activator

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.get_maxdegree(influences, activatory=True, quiet=False)
-

Computes the maximum ingoing degree (or the maximum number of potential activatory regulators) in a graph

-

-
-

Parameters

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes] of interactions: -1:negative,1:positive,0:absent

-
-
activatoryPython bool

[default=True] : computes the maximum number of potential activatory regulators instead

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
maxindegreePython integer

maximum ingoing degree (or the maximum number of potential activatory regulators)

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.get_minimal_edges(R, maximal=False)
-

Return one of the solutions with the smallest (or greatest) number of edges

-

-
-

Parameters

-
-
RPandas DataFrame

rows/[genes] x columns/[solution IDs]

-
-
connectedPython bool

[default=False] : if set to True, return the CONNECTED solution which satisfies those constraints

-
-
maximalPython bool

[default=False] : if set to True, return the solution with the greatest number of edges

-
-
-
-
-

Returns

-
-
solution, nedgesPython integer x Python integer

solution and corresponding number of edges

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.get_weakly_connected(network_df, gene_list, index_col='preferredName_A', column_col='preferredName_B', score_col='sscore')
-

Depth-first search (DFS) on undirected network

-

-
-

Parameters

-
-
network_dfPandas DataFrame

rows/[index] x columns/[[“Input”,”Output”]]

-
-
gene_listPython character string list

list of genes (needed to take into account isolated genes in the network)

-
-
index_colPython character string

[default=”preferredName_A”] : column in network_df (input gene)

-
-
column_colPython character string

[default=”preferredName_B”] : column in network_df (output gene)

-
-
score_colPython character string

[default=”sscore”] : column in network_df (edge weight)

-
-
-
-
-

Returns

-
-
componentsType of @network_df.loc[network_df.index[0]][“Input”] Python list of Python list

list of weakly connected components in the network, ordered by decreasing size

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.infer_network(BO, njobs=1, fname='solutions', use_diverse=True, limit=50, niterations=1)
-

Infer solutions matching topological & experimental constraints

-

-
-

Parameters

-
-
BOBonesis object (from BoneSiS)

contains topological & experimental constraints

-
-
fnamePython character string

[default=”solutions”] : path to solution files

-
-
use_diversePython bool

[default=True] : use the “diverse” procedure in BoneSiS

-
-
limitPython integer

[default=50] : maximum number of solutions to generate per interation

-
-
niterationsPython integer

[default=1] : maximum number of iterations

-
-
-
-
-

Returns

-
-
nsolutionsPython integer

list of # solutions per iteration

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.load_grn(fname)
-

Loads GRN as MPBN class element

-

-
-

Parameters

-
-
fnamePython character string

BNET file

-
-
-
-
-

Returns

-
-
BNmpbn.MPBooleanNetwork object

Boolean network with Most Permissive semantics

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.reconnect_network(network_fname)
-

Write the network with all isolated nodes (no ingoing/outgoing edges) filtered out

-

-
-

Parameters

-
-
network_fnamePython character string

path to the .BNET associated with the network

-
-
-
-
-

Returns

-
-
fnamePython character string

path to the .BNET associated with the reconnected network

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.save_grn(solution, fname, sep=', ', quiet=False, max_show=5, write=True)
-

Write and/or print .bnet file

-

-
-

Parameters

-
-
solutionPandas Series

rows/[genes] contains gene regulatory functions (GRF)

-
-
fnamePython character string

where to write the file (w/o .bnet extension)

-
-
sepPython character string

what separates regulators from regulated genes

-
-
quietPython bool

[default=False] : prints out verbose

-
-
max_showPython integer

[default=5] : maximum number of printed GRFs

-
-
writePython bool

[default=True] : if set to True, write to a .bnet file

-
-
-
-
-

Returns

-
-
None

writes the GRN to a file fname

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.save_solutions(bnetworks, fname, limit)
-

Enumerate and save solutions

-

-
-

Parameters

-
-
bnetworksBonesis object

Output of the inference

-
-
fnamePython character string

ZIP filename to store the solutions

-
-
limitPython integer

maximum number of solutions to enumerate

-
-
-
-
-

Parameters

-
-
nPython integer

number of enumerated solutions

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.solution2influences(solution)
-

Converts a solution object into a influences object

-

-
-

Parameters

-
-
solutionPandas Series

rows/[genes]

-
-
-
-
-

Returns

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes] contains values {-1,1,0,2} -1: negative, 1: positive, 0: absent, 2: non monotonic

-
-
-
-
- -
-
-NORDic.UTILS.utils_grn.zip2df(fname)
-

Extract solutions in ZIP file as DataFrames

-

-
-

Parameters

-
-
fnamePython character string

zip file which contains BNET solutions

-
-
-
-
-

Returns

-
-
solutionsPandas DataFrame

rows/[genes] x columns/[solutions] the GRFs for each gene in each solution

-
-
-
-
- -
-
-

NORDic.UTILS.utils_network module

-
-
-NORDic.UTILS.utils_network.aggregate_networks(file_folder, gene_list, taxon_id, min_score, network_type, app_name, version_net='11.5', version_act='11.0', quiet=0)
-

This function performs the following pipeline to build a prior knowledge network based on a subset of genes -- Retrieve protein actions and predicted PPIs from STRING -- Merge the two networks while solving all inconsistencies (duplicates, paradoxes, etc.) in signs, directions, scores -- Determine the greatest threshold on the edge score which allows all of the core gene set to be connected (binary search) -- Trim out edges which scores are below the threshold, and remove all isolated nodes

-

-
-

Parameters

-
-
file_folderPython character string

relative path where to store files

-
-
gene_listPython character string list

list of core gene symbols to preserve in the network

-
-
taxon_idPython integer

NCBI taxonomy ID

-
-
min_scorePython integer

minimum score on edges retrieved from the STRING database

-
-
app_namePython character string

Identifier for STRING requests

-
-
version_netPython character string

[default=”11.5”] : Number of version for interaction data in the STRING database. To avoid compatibility issues, it is strongly advised not to change this parameter

-
-
version_actPython character string

[default=”11.0”] : Number of version for protein action data in the STRING database. To avoid compatibility issues, it is strongly advised not to change this parameter

-
-
quietPython bool

[default=None] : prints out verbose

-
-
-
-
-

Returns

-
-
final_networkPandas DataFrame

rows/[interactions] x columns/[[“preferredName_A”, “preferredName_B”, “sign”, “directed”, “score”]]

-
-
-
-
- -
-
-NORDic.UTILS.utils_network.capture()
-
- -
-
-NORDic.UTILS.utils_network.determine_edge_threshold(network, core_gene_set, quiet=True)
-

Determine the greatest threshold on the edge score which allows all of the core gene set to be connected (binary search)

-

-
-

Parameters

-
-
networkPandas DataFrame

rows/[interactions] x at least three columns “preferredName_A” (input node), “preferredName_B” (output node), “score” (edge score)

-
-
core_gene_setPython character string list

list of genes that should remain connected

-
-
quietPython bool

[default=None]: prints out verbose

-
-
-
-
-

Returns

-
-
tPython float

maximum threshold which allows the connection of all genes in the core set

-
-
-
-
- -
-
-NORDic.UTILS.utils_network.get_network_from_OmniPath(gene_list=None, disease_name=None, species='human', sources_int='omnipath', domains_int=None, types_int=None, min_curation_effort=-1, domains_annot='HPA_tissue', quiet=False)
-

Retrieve a network from OmniPath

-

-
-

Parameters

-
-
gene_listPython character string

[default=None] : List of genes to consider (or do not filter the interactions from Omnipath if =None)

-
-
disease_namePython character string

[default=None] : Disease name (in letters) to consider

-
-
speciesPython character string

[default=None] : Species to consider (either “human”, “mouse”, or “rat”)

-
-
sources_intPython character string

[default=None] : Which databases for interactions to consider (if =None, consider them all)

-
-
domains_intPython character string

[default=None] : source of interactions in OmniPath

-
-
types_intPython character string

[default=None] : Types of interactions, e.g., “post_translational”, “transcriptional”, “post_transcriptional”, “mirna_transcriptional”

-
-
min_curation_effortPython integer

[default=-1] : if positive, select edges based on that criteria (the higher, the better). Counts the unique database-citation pairs, i.e. how many times was an interaction described in a paper and mentioned in a database

-
-
domain_annotPython character string

[default=’HPA_tissue’] : source of annotations in OmniPath

-
-
quietPython bool

[default=False] : prints out verbose

-
-
-
-
-

Returns

-
-
final_networkPandas DataFrame

rows/[interactions] x columns/[[“preferredName_A”, “preferredName_B”, “sign”, “directed”, “score”]]

-
-
annot_widePandas DataFrame

rows/[gene symbols] x columns/[annotations from the database @domains_annot]

-
-
-
-
- -
-
-NORDic.UTILS.utils_network.merge_network_PPI(network, PPI, quiet=True)
-

Merge two network while solving all inconsistencies (duplicates, paradoxes, etc.) in signs, directions, scores

-

-
-

Parameters

-
-
networkPandas DataFrame

rows/[interactions] x at least three columns “preferredName_A” (input node), “preferredName_B” (output node), “score” (edge score)

-
-
PPIPandas DataFrame

rows/[interactions] x at least three columns “preferredName_A” (input node), “preferredName_B” (output node), “score” (edge score)

-
-
quietPython bool

[default=None] : prints out verbose

-
-
-
-
-

Returns

-
-
final_networkPandas DataFrame

rows/[interactions] x columns/[[“preferredName_A”, “preferredName_B”, “sign”, “directed”, “score”]]

-
-
-
-
- -
-
-NORDic.UTILS.utils_network.remove_isolated(network, quiet=False)
-

Remove all nodes which do not belong to the largest connected component from the network

-

-
-

Parameters

-
-
networkPandas DataFrame

rows/[interactions] x columns/[[“preferredName_A”, “preferredName_B”, “sign”, “directed”, “score”]]

-
-
quietPython bool

[default=None] : prints out verbose

-
-
-
-
-

Returns

-
-
trimmed_networkPandas DataFrame

rows/[interactions] x columns/[[“preferredName_A”, “preferredName_B”, “sign”, “directed”, “score”]]

-
-
-
-
- -
-
-

NORDic.UTILS.utils_plot module

-
-
-NORDic.UTILS.utils_plot.influences2graph(influences, fname, optional=False, compile2png=True, engine='sfdp')
-

Plots a network by conversion to a DOT file and then to PNG

-

-
-

Parameters

-
-
influencesPandas DataFrame

rows/[genes] x columns/[genes], contains {-1,1,2}

-
-
fnamePython character string

filename of png file

-
-
optionalPython bool

[default=False] : should interactions be drawn as optional (dashed lines)?

-
-
-
-
-

Returns

-
-
None

writes a DOT file which can be converted to PNG image (if compile2png=True)

-
-
-
-
- -
-
-NORDic.UTILS.utils_plot.plot_boxplots(scores, patient_scores, ground_truth=None, fsize=12, msize=5, fname='boxplots.pdf')
-

Plots one boxplot per treatment (all values obtained on patient profiles)

-

-
-

Parameters

-
-
scoresPandas DataFrame

rows/[drug names] x column/[value]

-
-
patient_scoresPandas DataFrame

rows/[drug names] x columns/[patient samples]

-
-
ground_truthPandas DataFrame

[default=None] : rows/[drug names] x column/[class] Values in 1: treatment, 0: unknown, -1: aggravating. If not provided: does not color boxplots according to the class

-
-
fsizePython integer

[default=18] : font size

-
-
msizePython integer

[default=5] : marker size

-
-
fnamePython character string

[default=”boxplots”] : file name for the plot

-
-
-
-
-

Returns

-
-
None

create boxplots of reward scores across patients for each drug

-
-
-
-
- -
-
-NORDic.UTILS.utils_plot.plot_discrete_distributions(signatures, fname='signature_expression_distribution.png')
-

Plots the distributions (histograms) of genes with determined status across signatures

-

-
-

Parameters

-
-
signaturesPandas DataFrame

rows/[genes] x columns/[samples] with values in {0,NaN,1}. Determined status is either 0 or 1.

-
-
fnamePython character string

[default=”signature_expression_distribution.png”] : file name

-
-
-
-
-

Returns

-
-
None

plots the number of genes with expression values 0, 1 or NaN in each signature

-
-
-
-
- -
-
-NORDic.UTILS.utils_plot.plot_distributions(profiles, fname='gene_expression_distribution.png', thres=None)
-

Plots the distributions (boxplots) of gene expression across samples for each gene, and the selected threshold for binarization

-

-
-

Parameters

-
-
profilesPandas DataFrame

rows/[genes+annotations] x columns/[samples]

-
-
fnamePython character string

[default=”gene_expression_distribution.png”] : file name

-
-
thresPython float or None

[default=None] : binarization threshold (if there is any)

-
-
-
-
-

Returns

-
-
None

plots boxplots of expression for each gene in profiles

-
-
-
-
- -
-
-NORDic.UTILS.utils_plot.plot_heatmap(X, ground_truth=None, fname='heatmap.pdf', w=20, h=20, bfsize=20, fsize=20, rot=75)
-

Plots an heatmap of the signatures, with the potential ground truth

-

-
-

Parameters

-
-
XPandas DataFrame

rows/[features] x columns/[drug names]

-
-
ground_truthPandas DataFrame

[default=None] : rows/[drug names] x column/[class] Values in 1: treatment, 0: unknown, -1: aggravating. If not provided: does not color boxplots according to the class

-
-
fnamePython character string

[default=”heatmap.pdf”] : file name for the plot

-
-
wPython integer

[default=20] : figure width

-
-
hPython integer

[default=20] : figure height

-
-
bfsizePython integer

[default=20] : font size in the color bar

-
-
rotPython integer

[default=75] : rotation angle of labels

-
-
-
-
-

Returns

-
-
None

plots an heatmap of similarity across drugs based on the Pearson correlation

-
-
-
-
- -
-
-NORDic.UTILS.utils_plot.plot_influence_graph(network_df, input_col, output_col, sign_col, direction_col=None, fname='graph.png', optional=True)
-

Converts a network into a PNG picture

-

-
-

Parameters

-
-
network_dfPandas DataFrame

rows/[index] x columns/[input_col,output_col,sign_col]

-
-
input_col,output_col,sign_col,direction_colPython character string

columns of network_df

-
-
fnamePython character string

[default=”graph.png”] : file name for PNG picture

-
-
optionalPython bool

[default=True] : should edges be plotted as dashed lines?

-
-
-
-
-

Returns

-
-
None

Creates a image of the graph in file fname

-
-
-
-
- -
-
-NORDic.UTILS.utils_plot.plot_precision_recall(pr, prs, tr, beta=1, thres=0.5, fname='PRC.pdf', method_name='predictor', fsize=18)
-

Plots a Precision-Recall curve (with variations across samples)

-

-
-

Parameters

-
-
prPandas DataFrame

rows/[drug names] x column/[value]

-
-
prsPandas DataFrame

rows/[drug names] x columns/[patient samples]

-
-
trPandas DataFrame

[default=None] : rows/[drug names] x column/[class]

-
-
betaPython float

[default=1] : value of coefficient beta for the F-measure

-
-
thresPython float

[default=0.5] : decision threshold

-
-
fnamePython character string

[default=”PRC.pdf”] : file name for the plot

-
-
method_namePython character string

[default=”predictor”] : name of the predictor

-
-
fsizePython integer

[default=18] : font size

-
-
-
-
-

Returns

-
-
None

Plots a Precision-Recall curve based on the drug repurposing predictions

-
-
-
-
- -
-
-NORDic.UTILS.utils_plot.plot_roc_curve(pr, prs, tr, fname='ROC.pdf', method_name='predictor', fsize=18)
-

Plots a ROC curve (with variations across samples)

-

-
-

Parameters

-
-
prPandas DataFrame

rows/[drug names] x column/[value]

-
-
prsPandas DataFrame

rows/[drug names] x columns/[patient samples]

-
-
trPandas DataFrame

[default=None] : rows/[drug names] x column/[class]

-
-
fnamePython character string

[default=”ROC.pdf”] : file name for the plot

-
-
method_namePython character string

[default=”predictor”] : name of the predictor

-
-
fsizePython integer

[default=18] : font size

-
-
-
-
-

Returns

-
-
None

Plots a ROC curve based on the drug repurposing predictions

-
-
-
-
- -
-
-NORDic.UTILS.utils_plot.plot_signatures(signatures, perturbed_genes=None, width=10, height=10, max_show=50, fname='signatures')
-

Print signatures

-

-
-

Parameters

-
-
signaturesPandas DataFrame

rows/[genes] x columns/[signature IDs]

-
-
perturbed_genesPython character string list

[default=None] : list of gene names perturbed in the signatures

-
-
width, heightPython integer

[default=10] : dimensions of image

-
-
max_showPython integer

[default=50] : maximum number of genes shown (as only the @max_show genes with highest variance across signatures are plotted)

-
-
fnamePython character string

[default=”signatures”] : path of resulting PNG image

-
-
-
-
-

Returns

-
-
None

plots the signatures as heatmaps in file fname

-
-
-
-
- -
-
-

NORDic.UTILS.utils_sim module

-
-
-class NORDic.UTILS.utils_sim.BN_SIM(seednb=0, njobs=None)
-

Bases: object

-
-
-add_initial_states(initial, final=None)
-
- -
-
-add_permanent_mutation(mutation)
-
- -
-
-add_transient_mutation(mutation)
-
- -
-
-attrs_similarity(attrs1, attrs2, gene_outputs=None)
-
- -
-
-boxplot()
-
- -
-
-enumerate_attractors(verbose=False)
-
- -
-
-generate_trajectories(params={}, outputs=[])
-
- -
-
-initialize_network(network_fname)
-
- -
-
-up_to_attractors(network_fname, initial, final, mutation_permanent={}, mutation_transient={}, verbose=True)
-
- -
-
-update_network(network_fname, initial, final=None, mutation_permanent={}, mutation_transient={}, verbose=True)
-
- -
- -
-
-class NORDic.UTILS.utils_sim.BONESIS_SIM(seednb=0, njobs=None)
-

Bases: BN_SIM

-
-
-add_initial_states(initial, final)
-
- -
-
-add_permanent_mutation(mutation)
-
- -
-
-add_transient_mutation(mutation)
-
- -
-
-enumerate_attractors(verbose=True)
-
- -
-
-generate_trajectories(params={}, outputs=[])
-
- -
-
-initialize_network(network_fname)
-
- -
- -
-
-class NORDic.UTILS.utils_sim.MABOSS_SIM(seednb=0, njobs=None)
-

Bases: BN_SIM

-
-
-add_initial_states(initial, final=None)
-
- -
-
-add_permanent_mutation(mutation)
-
- -
-
-add_transient_mutation(mutation)
-
- -
-
-enumerate_attractors(verbose=True)
-
- -
-
-generate_trajectories(params={}, outputs=[])
-
- -
-
-initialize_network(network_fname)
-
- -
- -
-
-class NORDic.UTILS.utils_sim.MPBN_SIM(seednb=0, njobs=None)
-

Bases: BN_SIM

-
-
-add_initial_states(initial, final=None)
-
- -
-
-add_permanent_mutation(mutation)
-
- -
-
-add_transient_mutation(mutation)
-
- -
-
-enumerate_attractors(max_attrs=-1, verbose=True)
-
- -
-
-generate_trajectories(params={}, outputs=[], show_plot=True)
-
- -
-
-initialize_network(network_fname)
-
- -
- -
-
-NORDic.UTILS.utils_sim.capture()
-
- -
-
-NORDic.UTILS.utils_sim.choice(a, size=None, replace=True, p=None)
-

Generates a random sample from a given 1-D array

-
-

New in version 1.7.0.

-
-
-

Note

-

New code should use the ~numpy.random.Generator.choice -method of a ~numpy.random.Generator instance instead; -please see the random-quick-start.

-
-
-

Parameters

-
-
a1-D array-like or int

If an ndarray, a random sample is generated from its elements. -If an int, the random sample is generated as if it were np.arange(a)

-
-
sizeint or tuple of ints, optional

Output shape. If the given shape is, e.g., (m, n, k), then -m * n * k samples are drawn. Default is None, in which case a -single value is returned.

-
-
replaceboolean, optional

Whether the sample is with or without replacement. Default is True, -meaning that a value of a can be selected multiple times.

-
-
p1-D array-like, optional

The probabilities associated with each entry in a. -If not given, the sample assumes a uniform distribution over all -entries in a.

-
-
-
-
-

Returns

-
-
samplessingle item or ndarray

The generated random samples

-
-
-
-
-

Raises

-
-
ValueError

If a is an int and less than zero, if a or p are not 1-dimensional, -if a is an array-like of size 0, if p is not a vector of -probabilities, if a and p have different lengths, or if -replace=False and the sample size is greater than the population -size

-
-
-
-
-

See Also

-

randint, shuffle, permutation -random.Generator.choice: which should be used in new code

-
-
-

Notes

-

Setting user-specified probabilities through p uses a more general but less -efficient sampler than the default. The general sampler produces a different sample -than the optimized sampler even if each element of p is 1 / len(a).

-

Sampling random rows from a 2-D array is not possible with this function, -but is possible with Generator.choice through its axis keyword.

-
-
-

Examples

-

Generate a uniform random sample from np.arange(5) of size 3:

-
>>> np.random.choice(5, 3)
-array([0, 3, 4]) # random
->>> #This is equivalent to np.random.randint(0,5,3)
-
-
-

Generate a non-uniform random sample from np.arange(5) of size 3:

-
>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
-array([3, 3, 0]) # random
-
-
-

Generate a uniform random sample from np.arange(5) of size 3 without -replacement:

-
>>> np.random.choice(5, 3, replace=False)
-array([3,1,0]) # random
->>> #This is equivalent to np.random.permutation(np.arange(5))[:3]
-
-
-

Generate a non-uniform random sample from np.arange(5) of size -3 without replacement:

-
>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
-array([2, 3, 0]) # random
-
-
-

Any of the above can be repeated with an arbitrary array-like -instead of just integers. For instance:

-
>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
->>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
-array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], # random
-      dtype='<U11')
-
-
-
-
- -
-
-NORDic.UTILS.utils_sim.test(enumerator, seednb, njobs, network_fname, control_profile, treated_profiles, compare_to, mutation_permanent={}, mutation_transient={}, gene_outputs=None, print_boxplot=False, verbose=True)
-
- -
-
-

NORDic.UTILS.utils_state module

-
-
-NORDic.UTILS.utils_state.binarize_experiments(data, thres=0.5, method='binary', strict=True, njobs=1)
-

Binarize experimental profiles

-

-
-

Parameters

-
-
dataPandas DataFrame

rows/[genes] x columns/[samples]

-
-
thresPython float

[default=0.5] : threshold for @method=”binary” (in [0,0.5])

-
-
methodPython character string

[default=”binary”] : binarization method in [“binary”,”probin”]

-
-
strictPython bool

[default=True] : takes into account equalities (if set to True, value=thres will lead to undefined for the corresponding gene)

-
-
njobsPython integer

[default=1] : parallelism if needed

-
-
-
-
-

Returns

-

signatures : Pandas DataFrame: rows/[genes] x columns[samples] with values in [0,1,NaN]

-
-
- -
-
-NORDic.UTILS.utils_state.compare_states(x, y, genes=None)
-

Computes the similarity between two sets of Boolean states

-

-
-

Parameters

-
-
xPandas DataFrame

rows/[genes] x columns/[state IDs] contains (0, 1, NaN)

-
-
yPandas DataFrame

rows/[genes] x columns/[state IDs] contains (0, 1, NaN)

-
-
genesPython character string list

list of gene symbols

-
-
-
-
-

Returns

-
-
simsNumPy array

similarities between each column of x and each columns of y, on the list of N present genes in genes (if provided) otherwise on the union of N genes in x and y

-
-
NPython integer

number of genes on which the similarity is computed

-
-
-
-
- -
-
-NORDic.UTILS.utils_state.finetune_binthres(df, samples, network_fname, mutation, step=0.005, maxt=0.5, mint=0, score_binthres=<function <lambda>>, njobs=1, verbose=True)
-

Select the binarization threshold (in function @binarize_experiments) which maximize the dissimilarity interconditions and the similarity intracondition -…

-
-

Parameters

-
-
dfPandas DataFrame

rows/[genes] x columns/[samples]: profiles

-
-
samplesPython character string list

annotations of conditions for each sample in df

-
-
network_fnamePython character string

file name containing the network

-
-
mutationPython dictionary

dictionary (key=gene, value=perturbation type) gene perturbations which are considered

-
-
stepPython float

[default=0.005] step in the interval to look for the threshold value

-
-
maxtPython float

[default=0.5] maximum threshold value

-
-
mintPython float

[default=0.] minimum threshold value

-
-
score_binthresPython lambda function

[default=lambda itc,ita_c,ita_t:(1-itc)*ita_c*ita_t] fitness function for the threshold value

-
-
njobsPython integer

[default=1] number of parallel jobs

-
-
verbosePython bool

[default=True] prints out verbose

-
-
-
-
-

Returns

-
-
max_thresPython float

threshold value maximizing the fitness function

-
-
-
-
- -
-
-NORDic.UTILS.utils_state.quantile_normalize(df, njobs=1)
-
- -
-
-

Module contents

-
-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/NORDic.rst.txt b/docs/_build/html/_sources/NORDic.rst.txt deleted file mode 100644 index 8b39d94..0000000 --- a/docs/_build/html/_sources/NORDic.rst.txt +++ /dev/null @@ -1,157 +0,0 @@ -NORDic package -================= - -Submodules ----------- - -NORDic.NORDic\_NI.functions module --------------------------------------------------- - -.. automodule:: NORDic.NORDic_NI.functions - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_PMR.functions module --------------------------------------------------- - -.. automodule:: NORDic.NORDic_PMR.functions - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DS.functions module -------------------------------------------------------- - -.. automodule:: NORDic.NORDic_DS.functions - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DS.get_drug_signatures module ---------------------------------------------------------------- - -.. automodule:: NORDic.NORDic_DS.get_drug_signatures - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DS.get_drug_targets module ---------------------------------------------------------------- - -.. automodule:: NORDic.NORDic_DS.get_drug_targets - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DR.bandits module ----------------------------------- - -.. automodule:: NORDic.NORDic_DR.bandits - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DR.functions module ----------------------------------- - -.. automodule:: NORDic.NORDic_DR.functions - :members: - :undoc-members: - :show-inheritance: - -NORDic.NORDic\_DR.utils module ----------------------------------- - -.. automodule:: NORDic.NORDic_DR.utils - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.DISGENET_utils module ---------------------------------------- - -.. automodule:: NORDic.UTILS.DISGENET_utils - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.LINCS_utils module ---------------------------------- - -.. automodule:: NORDic.UTILS.LINCS_utils - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.STRING_utils module ---------------------------------- - -.. automodule:: NORDic.UTILS.STRING_utils - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_data module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_data - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_exp module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_exp - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_grn module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_grn - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_network module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_network - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_plot module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_plot - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_sim module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_sim - :members: - :undoc-members: - :show-inheritance: - -NORDic.UTILS.utils_state module ---------------------------------- - -.. automodule:: NORDic.UTILS.utils_state - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: NORDic - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/_build/html/_sources/content.rst.txt b/docs/_build/html/_sources/content.rst.txt deleted file mode 100644 index fb8f608..0000000 --- a/docs/_build/html/_sources/content.rst.txt +++ /dev/null @@ -1,61 +0,0 @@ -Statement of need ------------------ - -Being able to build in an automated and reproducible way a model of gene interactions and their influences on gene activity will allow to consider more complex diseases and biological phenomena, on a larger set of genes. These models might speed up the understanding of the gene regulation hierarchy by bioinformaticians and biologists, allow to predict novel drugs or gene targets which might be investigated later for healthcare purposes. In particular, the network-oriented approach allow to predict off-targets, which are non-specific drug targets which might lead to otherwise unexpected toxic side effects. - -`NORDic `_ is an open-source package which allows to focus on a network-oriented approach to identify regulatory mechanisms linked to a disease, to detect master regulators in a diseased transcriptomic context, to simulate drug effects on a patient through a network, and adaptively test drugs to perform sample-efficient, error-bound drug repurposing. As such, it is comprised of four distinct submodules: - -- NORDic NI identifies a disease-associated gene regulatory network (as a Boolean network) with its dynamics combining several biological sources and methods. The main contribution is that this inference can be performed even in the absence of previously curated experiments and prior knowledge networks. - -- NORDic PMR detects master regulators in a Boolean network, given examples of diseased transcriptomic profiles. In contrast to prior works, the score assigned to (groups of) master regulators takes into account the network topology as well as its dynamics with respect to the diseased profiles. - -- NORDic DS (since version 2.0.0) scores the effect of a treatment on a patient (the higher the score, the most promising the treatment) based on a Boolean network. This approach computes the similarity of a predicted treated patient profile to control profiles to output a signature reversal score associated with the considered drug. The signature reversion approach has already been applied with some success. - -- NORDic DR (since version 2.0.0) uses the routine in NORDic DS and a bandit algorithm to adaptively test treatments and perform drug repurposing. This novel approach allows to get recommendations with a bounded probability of false discovery, while remaining sample efficient. - -Usage ------ - -Quick access to NORDic -:::::::::::::::::::::::: - -The easiest way not to having to deal with environment configuration is to use the CoLoMoTo-Docker. First ensure that `Docker `_ is installed for your distribution: :: - - $ service docker start - $ docker run hello-world # downloads a test image, runs it in a container (prints a confirmation message), exits - -Then install the `CoLoMoTo-Docker `_: :: - - $ conda create -n nordic_colomoto python=3.10 -y - $ conda activate nordic_colomoto - $ pip install -U colomoto-docker - $ mkdir notebooks - $ colomoto-docker -v notebooks:local-notebooks ## or any version later than 2023-03-01 - -In the Jupyter browser, you will see a local-notebooks directory which is bound to your notebooks directory, where you can find all tutorial notebooks in CoLoMoTo, the one for NORDic included (NORDic-demo.ipynb). - -Environment -::::::::::: - -In order to run notebook `Introduction to NORDic.ipynb `__, it is strongly advised to create a virtual environment using Conda (python>=3.8): :: - - $ conda create -n test_NORDic python=3.8 -y - $ conda activate test_NORDic - $ conda install -c creda -y -q nordic - $ python3 -m pip install notebook>=6.5.4 markupsafe==2.0.1 ## packages for Jupyter notebook - $ conda deactivate ## refresh the virtual environment - $ conda activate test_NORDic - $ cd notebooks/ && jupyter notebook - -The complete list of dependencies for NORDic can be found at `requirements.txt `__ (pip) or `meta.yaml `__ (conda). - -Example usage -::::::::::::: - -Once installed, to import NORDic into your Python code: :: - - $ import NORDic - -Please check out notebook `Introduction to NORDic.ipynb `__. All functions are documented, so one can check out the inputs and outputs of a function func by typing: :: - -$ > help(func) \ No newline at end of file diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt deleted file mode 100644 index b7327d3..0000000 --- a/docs/_build/html/_sources/index.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -.. NORDic documentation master file, created by - sphinx-quickstart on Wed Aug 30 06:38:52 2023. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to NORDic's documentation! -================================== - -Being able to build in an automated and reproducible way a model of gene interactions and their influences on gene activity will allow to consider more complex diseases and biological phenomena, on a larger set of genes. These models might speed up the understanding of the gene regulation hierarchy by bioinformaticians and biologists, allow to predict novel drugs or gene targets which might be investigated later for healthcare purposes. In particular, the network-oriented approach allow to predict off-targets, which are non-specific drug targets which might lead to otherwise unexpected toxic side effects. - -`NORDic `_ is an open-source package which allows to focus on a network-oriented approach to identify regulatory mechanisms linked to a disease, to detect master regulators in a diseased transcriptomic context, to simulate drug effects on a patient through a network, and adaptively test drugs to perform sample-efficient, error-bound drug repurposing. - -.. toctree:: - :maxdepth: 4 - - install - content - modules - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` diff --git a/docs/_build/html/_sources/install.rst.txt b/docs/_build/html/_sources/install.rst.txt deleted file mode 100644 index 26395a5..0000000 --- a/docs/_build/html/_sources/install.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ -Installation ------------- - -Supported platforms -::::::::::::::::::: - -The package has been developed and mainly tested on a Linux platform. Issues when using it on Windows or Macs can be reported on this GitHub repository. - -Dependencies -:::::::::::: - -It is strongly advised to create a virtual environment using Conda (python>=3.8) :: - - $ conda create -n test_NORDic python=3.8 - $ conda activate test_NORDic - -The complete list of dependencies can be found at `requirements.txt `_ or `meta.yaml `_. - -Using pip (package hosted on PyPI) -:::::::::::::::::::::::::::::::::: - -We need to install missing dependencies from PyPI: :: - - $ apt-get install graphviz # for Debian distributions, check the correct command for your own distribution - $ conda install -c colomoto -y -q maboss - $ pip install NORDic - -Using conda (package hosted on Anaconda.org) -:::::::::::::::::::::::::::::::::::::::::::: - -All dependencies are retrievable from Anaconda: :: - - $ conda install -c creda -y -q nordic - -Using `CoLoMoTo-Docker `_ (since March 1st, 2023) -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - -Run the following command lines: :: - - $ pip install -U colomoto-docker - $ colomoto-docker - -From Source Files -::::::::::::::::: - -Download the `tar.gz file from PyPI `_ and extract it. The library consists of a directory named `NORDic` containing several Python modules. \ No newline at end of file diff --git a/docs/_build/html/_sources/modules.rst.txt b/docs/_build/html/_sources/modules.rst.txt deleted file mode 100644 index 9fd5344..0000000 --- a/docs/_build/html/_sources/modules.rst.txt +++ /dev/null @@ -1,7 +0,0 @@ -NORDic -====== - -.. toctree:: - :maxdepth: 4 - - NORDic \ No newline at end of file diff --git a/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js b/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js deleted file mode 100644 index 8141580..0000000 --- a/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +++ /dev/null @@ -1,123 +0,0 @@ -/* Compatability shim for jQuery and underscores.js. - * - * Copyright Sphinx contributors - * Released under the two clause BSD licence - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x - } - return decodeURIComponent(x.replace(/\+/g, ' ')); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css deleted file mode 100644 index cfc60b8..0000000 --- a/docs/_build/html/_static/basic.css +++ /dev/null @@ -1,921 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/docs/_build/html/_static/css/badge_only.css b/docs/_build/html/_static/css/badge_only.css deleted file mode 100644 index c718cee..0000000 --- a/docs/_build/html/_static/css/badge_only.css +++ /dev/null @@ -1 +0,0 @@ -.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff b/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff deleted file mode 100644 index 6cb6000..0000000 Binary files a/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 b/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 deleted file mode 100644 index 7059e23..0000000 Binary files a/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff b/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff deleted file mode 100644 index f815f63..0000000 Binary files a/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 b/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 deleted file mode 100644 index f2c76e5..0000000 Binary files a/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot b/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca..0000000 Binary files a/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg b/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845..0000000 --- a/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ - - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf b/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2..0000000 Binary files a/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff b/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a..0000000 Binary files a/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 b/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc6..0000000 Binary files a/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/lato-bold-italic.woff b/docs/_build/html/_static/css/fonts/lato-bold-italic.woff deleted file mode 100644 index 88ad05b..0000000 Binary files a/docs/_build/html/_static/css/fonts/lato-bold-italic.woff and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 b/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 deleted file mode 100644 index c4e3d80..0000000 Binary files a/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/lato-bold.woff b/docs/_build/html/_static/css/fonts/lato-bold.woff deleted file mode 100644 index c6dff51..0000000 Binary files a/docs/_build/html/_static/css/fonts/lato-bold.woff and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/lato-bold.woff2 b/docs/_build/html/_static/css/fonts/lato-bold.woff2 deleted file mode 100644 index bb19504..0000000 Binary files a/docs/_build/html/_static/css/fonts/lato-bold.woff2 and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/lato-normal-italic.woff b/docs/_build/html/_static/css/fonts/lato-normal-italic.woff deleted file mode 100644 index 76114bc..0000000 Binary files a/docs/_build/html/_static/css/fonts/lato-normal-italic.woff and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 b/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 deleted file mode 100644 index 3404f37..0000000 Binary files a/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/lato-normal.woff b/docs/_build/html/_static/css/fonts/lato-normal.woff deleted file mode 100644 index ae1307f..0000000 Binary files a/docs/_build/html/_static/css/fonts/lato-normal.woff and /dev/null differ diff --git a/docs/_build/html/_static/css/fonts/lato-normal.woff2 b/docs/_build/html/_static/css/fonts/lato-normal.woff2 deleted file mode 100644 index 3bf9843..0000000 Binary files a/docs/_build/html/_static/css/fonts/lato-normal.woff2 and /dev/null differ diff --git a/docs/_build/html/_static/css/theme.css b/docs/_build/html/_static/css/theme.css deleted file mode 100644 index 19a446a..0000000 --- a/docs/_build/html/_static/css/theme.css +++ /dev/null @@ -1,4 +0,0 @@ -html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js deleted file mode 100644 index d06a71d..0000000 --- a/docs/_build/html/_static/doctools.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - -const _ready = (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } -}; - -/** - * Small JavaScript module for the documentation. - */ -const Documentation = { - init: () => { - Documentation.initDomainIndexTable(); - Documentation.initOnKeyListeners(); - }, - - /** - * i18n support - */ - TRANSLATIONS: {}, - PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), - LOCALE: "unknown", - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext: (string) => { - const translated = Documentation.TRANSLATIONS[string]; - switch (typeof translated) { - case "undefined": - return string; // no translation - case "string": - return translated; // translation exists - default: - return translated[0]; // (singular, plural) translation tuple exists - } - }, - - ngettext: (singular, plural, n) => { - const translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated !== "undefined") - return translated[Documentation.PLURAL_EXPR(n)]; - return n === 1 ? singular : plural; - }, - - addTranslations: (catalog) => { - Object.assign(Documentation.TRANSLATIONS, catalog.messages); - Documentation.PLURAL_EXPR = new Function( - "n", - `return (${catalog.plural_expr})` - ); - Documentation.LOCALE = catalog.locale; - }, - - /** - * helper function to focus on search bar - */ - focusSearchBar: () => { - document.querySelectorAll("input[name=q]")[0]?.focus(); - }, - - /** - * Initialise the domain index toggle buttons - */ - initDomainIndexTable: () => { - const toggler = (el) => { - const idNumber = el.id.substr(7); - const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); - if (el.src.substr(-9) === "minus.png") { - el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; - toggledRows.forEach((el) => (el.style.display = "none")); - } else { - el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; - toggledRows.forEach((el) => (el.style.display = "")); - } - }; - - const togglerElements = document.querySelectorAll("img.toggler"); - togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) - ); - togglerElements.forEach((el) => (el.style.display = "")); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); - }, - - initOnKeyListeners: () => { - // only install a listener if it is really needed - if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS - ) - return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; - - if (!event.shiftKey) { - switch (event.key) { - case "ArrowLeft": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const prevLink = document.querySelector('link[rel="prev"]'); - if (prevLink && prevLink.href) { - window.location.href = prevLink.href; - event.preventDefault(); - } - break; - case "ArrowRight": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const nextLink = document.querySelector('link[rel="next"]'); - if (nextLink && nextLink.href) { - window.location.href = nextLink.href; - event.preventDefault(); - } - break; - } - } - - // some keyboard layouts may need Shift to get / - switch (event.key) { - case "/": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.focusSearchBar(); - event.preventDefault(); - } - }); - }, -}; - -// quick alias for translations -const _ = Documentation.gettext; - -_ready(Documentation.init); diff --git a/docs/_build/html/_static/documentation_options.js b/docs/_build/html/_static/documentation_options.js deleted file mode 100644 index d3a0158..0000000 --- a/docs/_build/html/_static/documentation_options.js +++ /dev/null @@ -1,14 +0,0 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: 'v2.4.3', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, -}; \ No newline at end of file diff --git a/docs/_build/html/_static/file.png b/docs/_build/html/_static/file.png deleted file mode 100644 index a858a41..0000000 Binary files a/docs/_build/html/_static/file.png and /dev/null differ diff --git a/docs/_build/html/_static/jquery.js b/docs/_build/html/_static/jquery.js deleted file mode 100644 index c4c6022..0000000 --- a/docs/_build/html/_static/jquery.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/docs/_build/html/_static/js/html5shiv.min.js b/docs/_build/html/_static/js/html5shiv.min.js deleted file mode 100644 index cd1c674..0000000 --- a/docs/_build/html/_static/js/html5shiv.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/** -* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed -*/ -!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/docs/_build/html/_static/js/theme.js b/docs/_build/html/_static/js/theme.js deleted file mode 100644 index 1fddb6e..0000000 --- a/docs/_build/html/_static/js/theme.js +++ /dev/null @@ -1 +0,0 @@ -!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - diff --git a/docs/_build/html/_static/minus.png b/docs/_build/html/_static/minus.png deleted file mode 100644 index d96755f..0000000 Binary files a/docs/_build/html/_static/minus.png and /dev/null differ diff --git a/docs/_build/html/_static/plus.png b/docs/_build/html/_static/plus.png deleted file mode 100644 index 7107cec..0000000 Binary files a/docs/_build/html/_static/plus.png and /dev/null differ diff --git a/docs/_build/html/_static/pygments.css b/docs/_build/html/_static/pygments.css deleted file mode 100644 index 84ab303..0000000 --- a/docs/_build/html/_static/pygments.css +++ /dev/null @@ -1,75 +0,0 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #008000; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #9C6500 } /* Comment.Preproc */ -.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -.highlight .gr { color: #E40000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #008400 } /* Generic.Inserted */ -.highlight .go { color: #717171 } /* Generic.Output */ -.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #008000 } /* Keyword.Pseudo */ -.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #B00040 } /* Keyword.Type */ -.highlight .m { color: #666666 } /* Literal.Number */ -.highlight .s { color: #BA2121 } /* Literal.String */ -.highlight .na { color: #687822 } /* Name.Attribute */ -.highlight .nb { color: #008000 } /* Name.Builtin */ -.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.highlight .no { color: #880000 } /* Name.Constant */ -.highlight .nd { color: #AA22FF } /* Name.Decorator */ -.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #0000FF } /* Name.Function */ -.highlight .nl { color: #767600 } /* Name.Label */ -.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #19177C } /* Name.Variable */ -.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #666666 } /* Literal.Number.Bin */ -.highlight .mf { color: #666666 } /* Literal.Number.Float */ -.highlight .mh { color: #666666 } /* Literal.Number.Hex */ -.highlight .mi { color: #666666 } /* Literal.Number.Integer */ -.highlight .mo { color: #666666 } /* Literal.Number.Oct */ -.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ -.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ -.highlight .sc { color: #BA2121 } /* Literal.String.Char */ -.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ -.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ -.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ -.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ -.highlight .sx { color: #008000 } /* Literal.String.Other */ -.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ -.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ -.highlight .ss { color: #19177C } /* Literal.String.Symbol */ -.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #0000FF } /* Name.Function.Magic */ -.highlight .vc { color: #19177C } /* Name.Variable.Class */ -.highlight .vg { color: #19177C } /* Name.Variable.Global */ -.highlight .vi { color: #19177C } /* Name.Variable.Instance */ -.highlight .vm { color: #19177C } /* Name.Variable.Magic */ -.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js deleted file mode 100644 index 97d56a7..0000000 --- a/docs/_build/html/_static/searchtools.js +++ /dev/null @@ -1,566 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -/** - * Simple result scoring code. - */ -if (typeof Scorer === "undefined") { - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [docname, title, anchor, descr, score, filename] - // and returns the new score. - /* - score: result => { - const [docname, title, anchor, descr, score, filename] = result - return score - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: { - 0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5, // used to be unimportantResults - }, - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - partialTitle: 7, - // query found in terms - term: 5, - partialTerm: 2, - }; -} - -const _removeChildren = (element) => { - while (element && element.lastChild) element.removeChild(element.lastChild); -}; - -/** - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping - */ -const _escapeRegExp = (string) => - string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string - -const _displayItem = (item, searchTerms) => { - const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; - const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; - const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; - const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - - const [docName, title, anchor, descr, score, _filename] = item; - - let listItem = document.createElement("li"); - let requestUrl; - let linkUrl; - if (docBuilder === "dirhtml") { - // dirhtml builder - let dirname = docName + "/"; - if (dirname.match(/\/index\/$/)) - dirname = dirname.substring(0, dirname.length - 6); - else if (dirname === "index/") dirname = ""; - requestUrl = docUrlRoot + dirname; - linkUrl = requestUrl; - } else { - // normal html builders - requestUrl = docUrlRoot + docName + docFileSuffix; - linkUrl = docName + docLinkSuffix; - } - let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; - linkEl.innerHTML = title; - if (descr) - listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; - else if (showSearchSummary) - fetch(requestUrl) - .then((responseData) => responseData.text()) - .then((data) => { - if (data) - listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) - ); - }); - Search.output.appendChild(listItem); -}; -const _finishSearch = (resultCount) => { - Search.stopPulse(); - Search.title.innerText = _("Search Results"); - if (!resultCount) - Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." - ); - else - Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); -}; -const _displayNextItem = ( - results, - resultCount, - searchTerms -) => { - // results left, load the summary and display it - // this is intended to be dynamic (don't sub resultsCount) - if (results.length) { - _displayItem(results.pop(), searchTerms); - setTimeout( - () => _displayNextItem(results, resultCount, searchTerms), - 5 - ); - } - // search finished, update title and status message - else _finishSearch(resultCount); -}; - -/** - * Default splitQuery function. Can be overridden in ``sphinx.search`` with a - * custom function per language. - * - * The regular expression works by splitting the string on consecutive characters - * that are not Unicode letters, numbers, underscores, or emoji characters. - * This is the same as ``\W+`` in Python, preserving the surrogate pair area. - */ -if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query - .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings -} - -/** - * Search Module - */ -const Search = { - _index: null, - _queued_query: null, - _pulse_status: -1, - - htmlToText: (htmlString) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); - const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; - console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." - ); - return ""; - }, - - init: () => { - const query = new URLSearchParams(window.location.search).get("q"); - document - .querySelectorAll('input[name="q"]') - .forEach((el) => (el.value = query)); - if (query) Search.performSearch(query); - }, - - loadIndex: (url) => - (document.body.appendChild(document.createElement("script")).src = url), - - setIndex: (index) => { - Search._index = index; - if (Search._queued_query !== null) { - const query = Search._queued_query; - Search._queued_query = null; - Search.query(query); - } - }, - - hasIndex: () => Search._index !== null, - - deferQuery: (query) => (Search._queued_query = query), - - stopPulse: () => (Search._pulse_status = -1), - - startPulse: () => { - if (Search._pulse_status >= 0) return; - - const pulse = () => { - Search._pulse_status = (Search._pulse_status + 1) % 4; - Search.dots.innerText = ".".repeat(Search._pulse_status); - if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch: (query) => { - // create the required interface elements - const searchText = document.createElement("h2"); - searchText.textContent = _("Searching"); - const searchSummary = document.createElement("p"); - searchSummary.classList.add("search-summary"); - searchSummary.innerText = ""; - const searchList = document.createElement("ul"); - searchList.classList.add("search"); - - const out = document.getElementById("search-results"); - Search.title = out.appendChild(searchText); - Search.dots = Search.title.appendChild(document.createElement("span")); - Search.status = out.appendChild(searchSummary); - Search.output = out.appendChild(searchList); - - const searchProgress = document.getElementById("search-progress"); - // Some themes don't use the search progress node - if (searchProgress) { - searchProgress.innerText = _("Preparing search..."); - } - Search.startPulse(); - - // index already loaded, the browser was quick! - if (Search.hasIndex()) Search.query(query); - else Search.deferQuery(query); - }, - - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - - // stem the search terms and add them to the correct list - const stemmer = new Stemmer(); - const searchTerms = new Set(); - const excludedTerms = new Set(); - const highlightTerms = new Set(); - const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); - splitQuery(query.trim()).forEach((queryTerm) => { - const queryTermLower = queryTerm.toLowerCase(); - - // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; - - // stem the word - let word = stemmer.stemWord(queryTermLower); - // select the correct list - if (word[0] === "-") excludedTerms.add(word.substr(1)); - else { - searchTerms.add(word); - highlightTerms.add(queryTermLower); - } - }); - - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - - // console.debug("SEARCH: searching for:"); - // console.info("required: ", [...searchTerms]); - // console.info("excluded: ", [...excludedTerms]); - - // array of [docname, title, anchor, descr, score, filename] - let results = []; - _removeChildren(document.getElementById("search-progress")); - - const queryLower = query.toLowerCase(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // lookup as object - objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) - ); - - // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); - - // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); - - // remove duplicate search results - // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept - let seen = new Set(); - results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); - if (!seen.has(resultStr)) { - acc.push(result); - seen.add(resultStr); - } - return acc; - }, []); - - results = results.reverse(); - - // for debugging - //Search.lastresults = results.slice(); // a copy - // console.info("search results:", Search.lastresults); - - // print the results - _displayNextItem(results, results.length, searchTerms); - }, - - /** - * search for object names - */ - performObjectSearch: (object, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const objects = Search._index.objects; - const objNames = Search._index.objnames; - const titles = Search._index.titles; - - const results = []; - - const objectSearchCallback = (prefix, match) => { - const name = match[4] - const fullname = (prefix ? prefix + "." : "") + name; - const fullnameLower = fullname.toLowerCase(); - if (fullnameLower.indexOf(object) < 0) return; - - let score = 0; - const parts = fullnameLower.split("."); - - // check for different match types: exact matches of full name or - // "last name" (i.e. last dotted part) - if (fullnameLower === object || parts.slice(-1)[0] === object) - score += Scorer.objNameMatch; - else if (parts.slice(-1)[0].indexOf(object) > -1) - score += Scorer.objPartialMatch; // matches in last name - - const objName = objNames[match[1]][2]; - const title = titles[match[0]]; - - // If more than one term searched for, we require other words to be - // found in the name/title/description - const otherTerms = new Set(objectTerms); - otherTerms.delete(object); - if (otherTerms.size > 0) { - const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); - if ( - [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) - ) - return; - } - - let anchor = match[3]; - if (anchor === "") anchor = fullname; - else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; - - const descr = objName + _(", in ") + title; - - // add custom score for some objects according to scorer - if (Scorer.objPrio.hasOwnProperty(match[2])) - score += Scorer.objPrio[match[2]]; - else score += Scorer.objPrioDefault; - - results.push([ - docNames[match[0]], - fullname, - "#" + anchor, - descr, - score, - filenames[match[0]], - ]); - }; - Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) - ); - return results; - }, - - /** - * search for full-text terms in the index - */ - performTermsSearch: (searchTerms, excludedTerms) => { - // prepare search - const terms = Search._index.terms; - const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - - const scoreMap = new Map(); - const fileMap = new Map(); - - // perform the search on the required terms - searchTerms.forEach((word) => { - const files = []; - const arr = [ - { files: terms[word], score: Scorer.term }, - { files: titleTerms[word], score: Scorer.title }, - ]; - // add support for partial matches - if (word.length > 2) { - const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); - } - - // no match but word was a required one - if (arr.every((record) => record.files === undefined)) return; - - // found search word in contents - arr.forEach((record) => { - if (record.files === undefined) return; - - let recordFiles = record.files; - if (recordFiles.length === undefined) recordFiles = [recordFiles]; - files.push(...recordFiles); - - // set score for the word in each file - recordFiles.forEach((file) => { - if (!scoreMap.has(file)) scoreMap.set(file, {}); - scoreMap.get(file)[word] = record.score; - }); - }); - - // create the mapping - files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); - }); - }); - - // now check if the files don't contain excluded terms - const results = []; - for (const [file, wordList] of fileMap) { - // check if all requirements are matched - - // as search terms with length < 3 are discarded - const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 - ).length; - if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount - ) - continue; - - // ensure that none of the excluded terms is in the search result - if ( - [...excludedTerms].some( - (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) - ) - ) - break; - - // select one (max) score for the file. - const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); - // add result to the result list - results.push([ - docNames[file], - titles[file], - "", - null, - score, - filenames[file], - ]); - } - return results; - }, - - /** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words. - */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); - if (text === "") return null; - - const textLower = text.toLowerCase(); - const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) - .filter((i) => i > -1) - .slice(-1)[0]; - const startWithContext = Math.max(actualStartPosition - 120, 0); - - const top = startWithContext === 0 ? "" : "..."; - const tail = startWithContext + 240 < text.length ? "..." : ""; - - let summary = document.createElement("p"); - summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; - - return summary; - }, -}; - -_ready(Search.init); diff --git a/docs/_build/html/_static/sphinx_highlight.js b/docs/_build/html/_static/sphinx_highlight.js deleted file mode 100644 index aae669d..0000000 --- a/docs/_build/html/_static/sphinx_highlight.js +++ /dev/null @@ -1,144 +0,0 @@ -/* Highlighting utilities for Sphinx HTML documentation. */ -"use strict"; - -const SPHINX_HIGHLIGHT_ENABLED = true - -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - parent.insertBefore( - span, - parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(SphinxHighlight.highlightSearchWords); -_ready(SphinxHighlight.initEscapeListener); diff --git a/docs/_build/html/content.html b/docs/_build/html/content.html deleted file mode 100644 index 96aefe7..0000000 --- a/docs/_build/html/content.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - Statement of need — NORDic v2.4.3 documentation - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

Statement of need

-

Being able to build in an automated and reproducible way a model of gene interactions and their influences on gene activity will allow to consider more complex diseases and biological phenomena, on a larger set of genes. These models might speed up the understanding of the gene regulation hierarchy by bioinformaticians and biologists, allow to predict novel drugs or gene targets which might be investigated later for healthcare purposes. In particular, the network-oriented approach allow to predict off-targets, which are non-specific drug targets which might lead to otherwise unexpected toxic side effects.

-

NORDic is an open-source package which allows to focus on a network-oriented approach to identify regulatory mechanisms linked to a disease, to detect master regulators in a diseased transcriptomic context, to simulate drug effects on a patient through a network, and adaptively test drugs to perform sample-efficient, error-bound drug repurposing. As such, it is comprised of four distinct submodules:

-
    -
  • NORDic NI identifies a disease-associated gene regulatory network (as a Boolean network) with its dynamics combining several biological sources and methods. The main contribution is that this inference can be performed even in the absence of previously curated experiments and prior knowledge networks.

  • -
  • NORDic PMR detects master regulators in a Boolean network, given examples of diseased transcriptomic profiles. In contrast to prior works, the score assigned to (groups of) master regulators takes into account the network topology as well as its dynamics with respect to the diseased profiles.

  • -
  • NORDic DS (since version 2.0.0) scores the effect of a treatment on a patient (the higher the score, the most promising the treatment) based on a Boolean network. This approach computes the similarity of a predicted treated patient profile to control profiles to output a signature reversal score associated with the considered drug. The signature reversion approach has already been applied with some success.

  • -
  • NORDic DR (since version 2.0.0) uses the routine in NORDic DS and a bandit algorithm to adaptively test treatments and perform drug repurposing. This novel approach allows to get recommendations with a bounded probability of false discovery, while remaining sample efficient.

  • -
-
-
-

Usage

-
-

Quick access to NORDic

-

The easiest way not to having to deal with environment configuration is to use the CoLoMoTo-Docker. First ensure that Docker is installed for your distribution:

-
$ service docker start
-$ docker run hello-world # downloads a test image, runs it in a container (prints a confirmation message), exits
-
-
-

Then install the CoLoMoTo-Docker:

-
$ conda create -n nordic_colomoto python=3.10 -y
-$ conda activate nordic_colomoto
-$ pip install -U colomoto-docker
-$ mkdir notebooks
-$ colomoto-docker -v notebooks:local-notebooks ## or any version later than 2023-03-01
-
-
-

In the Jupyter browser, you will see a local-notebooks directory which is bound to your notebooks directory, where you can find all tutorial notebooks in CoLoMoTo, the one for NORDic included (NORDic-demo.ipynb).

-
-
-

Environment

-

In order to run notebook Introduction to NORDic.ipynb, it is strongly advised to create a virtual environment using Conda (python>=3.8):

-
$ conda create -n test_NORDic python=3.8 -y
-$ conda activate test_NORDic
-$ conda install -c creda -y -q nordic
-$ python3 -m pip install notebook>=6.5.4 markupsafe==2.0.1 ## packages for Jupyter notebook
-$ conda deactivate ## refresh the virtual environment
-$ conda activate test_NORDic
-$ cd notebooks/ && jupyter notebook
-
-
-

The complete list of dependencies for NORDic can be found at requirements.txt (pip) or meta.yaml (conda).

-
-
-

Example usage

-

Once installed, to import NORDic into your Python code:

-
$ import NORDic
-
-
-

Please check out notebook Introduction to NORDic.ipynb. All functions are documented, so one can check out the inputs and outputs of a function func by typing:

-
$ > help(func)
-
-
-
-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html deleted file mode 100644 index 1fb38bb..0000000 --- a/docs/_build/html/genindex.html +++ /dev/null @@ -1,846 +0,0 @@ - - - - - - Index — NORDic v2.4.3 documentation - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - -
  • -
  • -
-
-
-
-
- - -

Index

- -
- A - | B - | C - | D - | E - | F - | G - | H - | I - | L - | M - | N - | O - | P - | Q - | R - | S - | T - | U - | V - | Z - -
-

A

- - - -
- -

B

- - - -
- -

C

- - - -
- -

D

- - - -
- -

E

- - -
- -

F

- - -
- -

G

- - - -
- -

H

- - -
- -

I

- - - -
- -

L

- - - -
- -

M

- - - -
- -

N

- - - -
    -
  • - NORDic.UTILS.DISGENET_utils - -
  • -
  • - NORDic.UTILS.LINCS_utils - -
  • -
  • - NORDic.UTILS.STRING_utils - -
  • -
  • - NORDic.UTILS.utils_data - -
  • -
  • - NORDic.UTILS.utils_exp - -
  • -
  • - NORDic.UTILS.utils_grn - -
  • -
  • - NORDic.UTILS.utils_network - -
  • -
  • - NORDic.UTILS.utils_plot - -
  • -
  • - NORDic.UTILS.utils_sim - -
  • -
  • - NORDic.UTILS.utils_state - -
  • -
- -

O

- - - -
- -

P

- - - -
- -

Q

- - - -
- -

R

- - - -
- -

S

- - - -
- -

T

- - - -
- -

U

- - - -
- -

V

- - -
- -

Z

- - -
- - - -
-
-
- -
- -
-

© Copyright 2023, Clémence Réda, Andrée Delahaye-Duriez.

-
- - Built with Sphinx using a - theme - provided by Read the Docs. - - -
-
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html deleted file mode 100644 index 9fb9b67..0000000 --- a/docs/_build/html/index.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - Welcome to NORDic’s documentation! — NORDic v2.4.3 documentation - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

Welcome to NORDic’s documentation!

-

Being able to build in an automated and reproducible way a model of gene interactions and their influences on gene activity will allow to consider more complex diseases and biological phenomena, on a larger set of genes. These models might speed up the understanding of the gene regulation hierarchy by bioinformaticians and biologists, allow to predict novel drugs or gene targets which might be investigated later for healthcare purposes. In particular, the network-oriented approach allow to predict off-targets, which are non-specific drug targets which might lead to otherwise unexpected toxic side effects.

-

NORDic is an open-source package which allows to focus on a network-oriented approach to identify regulatory mechanisms linked to a disease, to detect master regulators in a diseased transcriptomic context, to simulate drug effects on a patient through a network, and adaptively test drugs to perform sample-efficient, error-bound drug repurposing.

-
- -
-
-
-

Indices and tables

- -
- - -
-
-
- -
- -
-

© Copyright 2023, Clémence Réda, Andrée Delahaye-Duriez.

-
- - Built with Sphinx using a - theme - provided by Read the Docs. - - -
-
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/install.html b/docs/_build/html/install.html deleted file mode 100644 index 2b82a12..0000000 --- a/docs/_build/html/install.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - Installation — NORDic v2.4.3 documentation - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

Installation

-
-

Supported platforms

-

The package has been developed and mainly tested on a Linux platform. Issues when using it on Windows or Macs can be reported on this GitHub repository.

-
-
-

Dependencies

-

It is strongly advised to create a virtual environment using Conda (python>=3.8)

-
$ conda create -n test_NORDic python=3.8
-$ conda activate test_NORDic
-
-
-

The complete list of dependencies can be found at requirements.txt or meta.yaml.

-
-
-

Using pip (package hosted on PyPI)

-

We need to install missing dependencies from PyPI:

-
$ apt-get install graphviz # for Debian distributions, check the correct command for your own distribution
-$ conda install -c colomoto -y -q maboss
-$ pip install NORDic
-
-
-
-
-

Using conda (package hosted on Anaconda.org)

-

All dependencies are retrievable from Anaconda:

-
$ conda install -c creda -y -q nordic
-
-
-
-
-

Using CoLoMoTo-Docker (since March 1st, 2023)

-

Run the following command lines:

-
$ pip install -U colomoto-docker
-$ colomoto-docker
-
-
-
-
-

From Source Files

-

Download the tar.gz file from PyPI and extract it. The library consists of a directory named NORDic containing several Python modules.

-
-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/modules.html b/docs/_build/html/modules.html deleted file mode 100644 index 47c70b1..0000000 --- a/docs/_build/html/modules.html +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - NORDic — NORDic v2.4.3 documentation - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

NORDic

-
- -
-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv deleted file mode 100644 index 3d2caa6..0000000 Binary files a/docs/_build/html/objects.inv and /dev/null differ diff --git a/docs/_build/html/py-modindex.html b/docs/_build/html/py-modindex.html deleted file mode 100644 index f54c1f3..0000000 --- a/docs/_build/html/py-modindex.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - Python Module Index — NORDic v2.4.3 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - -
  • -
  • -
-
-
-
-
- - -

Python Module Index

- -
- n -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
- n
- NORDic -
    - NORDic.NORDic_DR.bandits -
    - NORDic.NORDic_DR.functions -
    - NORDic.NORDic_DR.utils -
    - NORDic.NORDic_DS.functions -
    - NORDic.NORDic_DS.get_drug_signatures -
    - NORDic.NORDic_DS.get_drug_targets -
    - NORDic.NORDic_NI.functions -
    - NORDic.NORDic_PMR.functions -
    - NORDic.UTILS.DISGENET_utils -
    - NORDic.UTILS.LINCS_utils -
    - NORDic.UTILS.STRING_utils -
    - NORDic.UTILS.utils_data -
    - NORDic.UTILS.utils_exp -
    - NORDic.UTILS.utils_grn -
    - NORDic.UTILS.utils_network -
    - NORDic.UTILS.utils_plot -
    - NORDic.UTILS.utils_sim -
    - NORDic.UTILS.utils_state -
- - -
-
-
- -
- -
-

© Copyright 2023, Clémence Réda, Andrée Delahaye-Duriez.

-
- - Built with Sphinx using a - theme - provided by Read the Docs. - - -
-
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html deleted file mode 100644 index 346d2b9..0000000 --- a/docs/_build/html/search.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - Search — NORDic v2.4.3 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - -
  • -
  • -
-
-
-
-
- - - - -
- -
- -
-
-
- -
- -
-

© Copyright 2023, Clémence Réda, Andrée Delahaye-Duriez.

-
- - Built with Sphinx using a - theme - provided by Read the Docs. - - -
-
-
-
-
- - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js deleted file mode 100644 index c23d8ae..0000000 --- a/docs/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({"docnames": ["NORDic", "content", "index", "install", "modules"], "filenames": ["NORDic.rst", "content.rst", "index.rst", "install.rst", "modules.rst"], "titles": ["NORDic package", "Statement of need", "Welcome to NORDic\u2019s documentation!", "Installation", "NORDic"], "terms": {"import_all_solut": [0, 2, 4], "solution_fnam": 0, "quiet": 0, "fals": [0, 1], "import": [0, 1], "all": [0, 1, 3], "solut": 0, "which": [0, 1, 2], "have": [0, 1], "been": [0, 1, 3], "gener": 0, "python": [0, 1, 3], "charact": 0, "string": 0, "header": 0, "file": [0, 2], "bool": 0, "default": 0, "print": [0, 1], "out": [0, 1], "verbos": 0, "panda": 0, "datafram": 0, "row": 0, "gene": [0, 1, 2], "x": 0, "column": 0, "id": 0, "contain": [0, 1, 3], "regulatori": [0, 1, 2], "each": 0, "network_identif": [0, 2, 4], "file_fold": 0, "taxon_id": 0, "path_to_gen": 0, "none": 0, "disgenet_arg": 0, "network_fnam": 0, "string_arg": 0, "experiments_fnam": 0, "lincs_arg": 0, "edge_arg": 0, "sig_arg": 0, "bonesis_arg": 0, "weight": 0, "seed": 0, "0": [0, 1], "njob": 0, "1": [0, 1], "force_experi": 0, "true": 0, "accept_nonrna": 0, "preserve_network_sign": 0, "retriev": [0, 3], "optim": [0, 4], "network": [0, 1, 2], "model": [0, 1, 2], "path": 0, "should": 0, "save": 0, "integ": 0, "ncbi": 0, "taxonomi": 0, "consid": [0, 1, 2], "speci": 0, "name": [0, 3], "one": [0, 1], "per": 0, "line": [0, 3], "dictionari": 0, "argument": 0, "disgenet": 0, "api": 0, "test": [0, 1, 2, 3, 4], "prior": [0, 1], "knowledg": [0, 1], "matrix": 0, "express": 0, "data": 0, "sampl": [0, 1, 2, 4], "format": 0, "linc": 0, "l1000": 0, "process": 0, "edg": 0, "signatur": [0, 1], "build": [0, 1, 2], "constraint": 0, "us": [0, 1, 2], "bonesi": 0, "select": 0, "procedur": 0, "random": 0, "number": 0, "parallel": 0, "job": 0, "set": [0, 1, 2], "an": [0, 1, 2], "error": [0, 1, 2], "experiment": 0, "profil": [0, 1], "associ": [0, 1], "i": [0, 1, 2, 3], "found": [0, 1, 3], "ignor": 0, "cannot": 0, "convert": 0, "entrezid": 0, "ar": [0, 1, 2, 3], "present": 0, "select_optimal_model": [0, 2, 4], "sol": 0, "solution2cytoscap": [0, 2, 4], "fname": 0, "cytoscap": 0, "readabl": 0, "seri": 0, "sif": 0, "xml": 0, "style": 0, "extens": 0, "write": 0, "solution_gener": [0, 2, 4], "visualize_model": [0, 2, 4], "base": [0, 1], "topologi": [0, 1], "desir": [0, 2, 4], "graph": 0, "characterist": 0, "compute_similar": [0, 2, 4], "f": 0, "x0": 0, "A": 0, "a_wt": 0, "gene_output": 0, "nb_sim": 0, "experi": [0, 1], "repeat": 0, "exp_nam": 0, "comput": [0, 1], "similar": [0, 1], "between": 0, "ani": [0, 1], "attractor": 0, "wt": 0, "mutant": 0, "probabl": [0, 1], "boolean": [0, 1], "mpbn": 0, "object": 0, "mutat": 0, "initi": 0, "state": 0, "list": [0, 1, 3], "node": 0, "check": [0, 1, 3], "iter": 0, "differ": 0, "rate": 0, "depth": 0, "how": 0, "mani": 0, "time": 0, "info": 0, "about": 0, "sim": 0, "float": 0, "chang": 0, "induc": 0, "greedi": [0, 2, 4], "network_nam": 0, "k": 0, "im_param": 0, "simu_param": 0, "save_fold": 0, "influenc": [0, 1, 2], "maxim": 0, "algorithm": [0, 1], "kemp": 0, "et": 0, "al": 0, "2003": 0, "find": [0, 1], "maximum": 0, "spreader": 0, "add": 0, "until": 0, "size": 0, "bnet": 0, "where": [0, 1], "intermediari": 0, "result": 0, "do": 0, "": 0, "spread": [0, 2, 4], "valu": 0, "everi": 0, "subset": 0, "run_experi": [0, 2, 4], "gene_list": 0, "seednb": 0, "gene_input": 0, "here": 0, "singl": 0, "defin": 0, "indic": 0, "empty": 0, "intersect": 0, "filenam": 0, "need": [0, 2, 3], "pickabl": 0, "perturb": 0, "addit": 0, "binari": 0, "spd": 0, "reachabl": 0, "from": [0, 2], "g": 0, "spread_multist": [0, 2, 4], "geometr": 0, "mean": 0, "baselin": [0, 2, 4], "phenotyp": 0, "is_binari": 0, "cosin": 0, "score": [0, 1], "differenti": 0, "p": 0, "drug": [0, 1, 2], "treat": [0, 1], "control": [0, 1], "diseas": [0, 1, 2], "healthi": 0, "might": [0, 1, 2], "kei": 0, "higher": [0, 1], "repurpos": [0, 1, 2], "power": 0, "compute_fronti": [0, 2, 4], "df": 0, "nbseed": 0, "fit": 0, "classifi": 0, "either": 0, "activ": [0, 1, 2, 3], "inact": 0, "undetermin": 0, "annot": 0, "2": [0, 1], "patient": [0, 1, 2], "predict": [0, 1, 2], "compute_metr": [0, 2, 4], "reward": [0, 4], "ground_truth": 0, "5": [0, 1], "10": [0, 1], "use_negative_class": 0, "nperm": 0, "10000": 0, "thre": 0, "beta": 0, "auc": 0, "hit": 0, "ratio": 0, "method": [0, 1], "posit": 0, "neg": 0, "class": 0, "ground": 0, "truth": 0, "rank": 0, "perform": [0, 1, 2], "respect": [0, 1], "instead": 0, "permut": 0, "decis": 0, "threshold": 0, "determin": 0, "resp": 0, "coeffici": 0, "measur": 0, "res_di": 0, "metric": 0, "compute_scor": [0, 2, 4], "frontier": 0, "printabl": 0, "empirical_pvalu": [0, 2, 4], "sorted_reward": 0, "sorted_ground_truth": 0, "ks_2samp": 0, "empir": 0, "correspond": 0, "whether": 0, "distribut": [0, 1, 3], "randomli": 0, "averag": 0, "signific": 0, "statist": 0, "across": 0, "sort": 0, "increas": 0, "belong": 0, "scipi": 0, "stat": 0, "pvalu": 0, "simul": [0, 1, 2, 4], "target": [0, 1, 2], "individu": 0, "effect": [0, 1, 2], "compar": 0, "rel": 0, "activatori": 0, "inhibitori": 0, "regul": [0, 1, 2], "simulate_treat": [0, 2, 4], "assign": [0, 1], "distanc": 0, "compute_drug_signatures_l1000": [0, 2, 4], "pubchem_cid": 0, "binar": 0, "chunksiz": 0, "get": [0, 1, 3], "pubchem": 0, "cid": 0, "request": 0, "sig": 0, "drugname2pubchem": [0, 2, 4], "drug_nam": 0, "get_rank": [0, 2, 4], "cd": [0, 1], "50": 0, "first": [0, 1], "search": 0, "engin": 0, "resul": 0, "cds2": 0, "accord": 0, "abil": 0, "revers": [0, 1], "pubchem2drugnam": [0, 2, 4], "pert_inam": 0, "retrieve_drug_signatur": [0, 2, 4], "cell_id": 0, "candid": 0, "cell": 0, "get_targets_drugbank": [0, 2, 4], "path_to_drugbank": 0, "drug_fnam": 0, "target_fnam": 0, "local": [0, 1], "drugbank": 0, "databas": 0, "common": 0, "complet": [0, 1, 3], "full_databas": 0, "csv": 0, "protein": 0, "target_df": 0, "hgnc": 0, "symbol": 0, "known": 0, "get_targets_drugcentr": [0, 2, 4], "drugcentr": 0, "2021": 0, "get_targets_linc": [0, 2, 4], "path_to_linc": 0, "credenti": 0, "nsig": 0, "get_targets_minerva": [0, 2, 4], "httr": 0, "send": 0, "queri": 0, "given": [0, 1], "minerva": 0, "platform": [0, 2], "instanc": 0, "get_targets_ttd": [0, 2, 4], "therapeut": 0, "ttd": 0, "inhibitor": 0, "retrieve_drug_target": [0, 2, 4], "target_arg": 0, "sourc": [0, 1, 2], "sever": [0, 1, 3], "onlin": 0, "targets_df": 0, "connect": 0, "adahedg": [0, 2, 4], "learner": [0, 2, 4], "act": [0, 4], "incur": [0, 4], "w": 0, "unimplementedlearn": 0, "lingap": [0, 2, 4], "method_arg": 0, "misspecifi": [0, 2, 4], "appli": [0, 1, 4], "problem": 0, "greedy_sampl": 0, "lambda_v": 0, "b_t": 0, "c_t": 0, "vinv": 0, "stopping_rul": [0, 4], "updat": [0, 4], "b": 0, "mislid": [0, 2, 4], "precis": 0, "1e": 0, "07": 0, "best_answ": [0, 4], "vinv_val": 0, "clear": [0, 4], "run": [0, 1, 3, 4], "nsimu": 0, "run_id": 0, "gaussian": [0, 2, 4], "delta": 0, "sigma": 0, "c": [0, 1, 3], "heurist": [0, 2, 4], "subheurist": [0, 2, 4], "adaptive_test": [0, 2, 4], "bandit_arg": 0, "reward_fnam": 0, "adapt": [0, 1, 2], "recommend": [0, 1], "most": [0, 1], "promis": [0, 1], "treatment": [0, 1], "featur": 0, "bandit_param": 0, "empirical_rec": 0, "frequenc": 0, "percentag": 0, "end": 0, "testing_problem": [0, 2, 4], "problem_arg": 0, "arm": 0, "argmax_m": [0, 2, 4], "l": 0, "m": [0, 1], "barycentric_spann": [0, 2, 4], "06": 0, "c_kt": [0, 2, 4], "direct": 0, "na": 0, "t": 0, "confidence_width": 0, "cnorm": [0, 2, 4], "closest_altern": [0, 2, 4], "theta": 0, "eta": 0, "s_t": 0, "l_inf": 0, "subsampl": 0, "alternative_arm": 0, "norm": 0, "lambert": [0, 2, 4], "y": [0, 1, 3], "approx": 0, "mahalanobi": [0, 2, 4], "optimistic_gradi": [0, 2, 4], "mu": 0, "lambda_": 0, "gain_typ": 0, "project": [0, 2, 4], "x_hat": 0, "nb_pull": 0, "quadprog_solve_qp": [0, 2, 4], "q": [0, 1, 3], "h": 0, "randf": [0, 2, 4], "sherman_morrison": [0, 2, 4], "solve_alternative_quadprog": [0, 2, 4], "theta_emp": 0, "eta_emp": 0, "i_t": 0, "epsilon": 0, "tracking_rul": [0, 2, 4], "sum_w": 0, "tracking_typ": 0, "forced_explor": 0, "update_misspecifi": [0, 2, 4], "get_genes_evidences_from_disgenet": [0, 2, 4], "limit": 0, "3000": 0, "curat": [0, 1], "min_scor": 0, "100": 0, "user_kei": 0, "refer": 0, "concept": 0, "medgen": 0, "anim": 0, "infer": [0, 1], "http": 0, "www": 0, "org": [0, 2], "dbinfo": 0, "minimum": 0, "evid": 0, "chunk": 0, "res_df": 0, "gene_symbol": 0, "sentenc": 0, "associationtyp": 0, "pmid": 0, "year": 0, "get_genes_proteins_from_disgenet": [0, 2, 4], "disease_list": 0, "min_ei": 0, "min_dsi": 0, "25": 0, "min_dpi": 0, "relat": 0, "input": [0, 1], "max": 0, "global": 0, "minimimum": 0, "index": [0, 2], "specif": [0, 1, 2], "pleiotropi": 0, "Not": 0, "get_user_key_disgenet": [0, 2, 4], "user": 0, "call": 0, "text": 0, "email": 0, "second": 0, "password": 0, "binarize_via_cd": [0, 2, 4], "analysi": 0, "implement": 0, "maayanlab": 0, "net": 0, "doi": 0, "1186": 0, "1471": 0, "2105": 0, "15": 0, "79": 0, "transcript": 0, "000": 0, "highest": 0, "varianc": 0, "real": 0, "magnitud": 0, "null": 0, "aggreg": 0, "down": 0, "dr": [0, 1], "up": [0, 1, 2], "ur": 0, "els": 0, "build_url": [0, 2, 4], "endpoint": 0, "param": 0, "clue": 0, "pert": 0, "plate": 0, "rep_drug": 0, "rep_drug_ind": 0, "pcl": 0, "count": 0, "filter": 0, "distinct": [0, 1], "io": 0, "url": 0, "compute_interference_scal": [0, 2, 4], "entrez_id": 0, "is_o": 0, "lincs_specific_ctl_gen": 0, "ep": 0, "2e": 0, "interfer": 0, "scale": 0, "genet": 0, "wa": 0, "success": [0, 1], "1002": 0, "psp4": 0, "12107": 0, "ones": 0, "overexpress": 0, "knockdown": 0, "hncg": 0, "housekeep": 0, "7": 0, "avoid": 0, "numer": 0, "low": 0, "iscal": 0, "convert_ctrlgenes_entrezgen": [0, 2, 4], "entrezgen": 0, "create_restricted_drug_signatur": [0, 2, 4], "sig_id": 0, "entrezid_list": 0, "which_lvl": 0, "3": [0, 1, 3], "strict": 0, "creat": [0, 1, 3], "level": 0, "distil_id": 0, "folder": 0, "store": 0, "If": 0, "sub": 0, "download_fil": [0, 2, 4], "file_nam": 0, "base_url": 0, "file_sha": 0, "check_sha": 0, "download": [0, 1, 3], "automat": 0, "omnibu": 0, "geo": 0, "can": [0, 1, 3], "consum": 0, "expect": 0, "wait": 0, "20": 0, "min": 0, "good": 0, "internet": 0, "repositori": [0, 3], "sha": 0, "hash": 0, "integr": 0, "download_lincs_fil": [0, 2, 4], "proper": 0, "normal": 0, "file_list": 0, "4": [0, 1], "gene_fil": 0, "sig_fil": 0, "lvl3_file": 0, "lvl5_file": 0, "get_treated_control_dataset": [0, 2, 4], "pert_typ": 0, "distil_ss": 0, "dose": 0, "iunit": 0, "itim": 0, "same_pl": 0, "trim_w_interference_scal": 0, "return_metr": 0, "least": 0, "hugo": 0, "type": [0, 1], "accept": 0, "exist": 0, "identifi": [0, 1, 2], "unit": 0, "exposur": 0, "minim": 0, "condit": 0, "same": 0, "criteria": 0, "further": 0, "trim": 0, "signam": 0, "sigid": 0, "get_user_kei": [0, 2, 4], "interact": [0, 1, 2], "usernam": 0, "third": 0, "post_request": [0, 2, 4], "pause_tim": 0, "post": 0, "json": 0, "select_best_sig": [0, 2, 4], "best": 0, "term": 0, "qualiti": 0, "criterion": 0, "get_app_name_str": [0, 2, 4], "app": 0, "uniqu": 0, "adress": 0, "app_nam": 0, "get_image_from_str": [0, 2, 4], "my_gen": 0, "png": 0, "network_flavor": 0, "network_typ": 0, "version": [0, 1], "11": 0, "correct": [0, 3], "genes_list": 0, "taxon": 0, "imag": [0, 1], "confid": 0, "lower": 0, "show": 0, "link": [0, 1, 2], "action": 0, "physic": 0, "get_interactions_from_str": [0, 2, 4], "un": 0, "sign": 0, "combin": [0, 1], "v11": 0, "onli": 0, "keep": 0, "involv": 0, "both": 0, "inter": 0, "preferredname_a": 0, "preferredname_b": 0, "get_interactions_partners_from_str": [0, 2, 4], "add_nod": 0, "undirect": 0, "unsign": 0, "partner": 0, "come": 0, "get_network_from_str": [0, 2, 4], "closest": 0, "neighborhood": 0, "get_protein_names_from_str": [0, 2, 4], "access": [0, 2], "queryitem": 0, "stringid": 0, "preferrednam": 0, "string_api_url": [0, 2, 4], "v": [0, 1], "convert_entrezgene_lincsl1000": [0, 2, 4], "intermedi": 0, "entrez": 0, "thei": 0, "convert_genes_entrezgen": [0, 2, 4], "missing_gen": 0, "c11orf74": 0, "iftap": 0, "ensp00000451560": 0, "tppp2": 0, "rp11": 0, "566k11": 0, "tubb4": 0, "convers": 0, "inputvalu": 0, "separ": 0, "ha": [0, 1, 3], "get_all_celllin": [0, 2, 4], "cell_lin": 0, "request_biodbnet": [0, 2, 4], "probe_list": 0, "from_": 0, "to_": 0, "500": 0, "probe": 0, "recogn": 0, "biodbnet": 0, "taxonid": 0, "get_experimental_constraint": [0, 2, 4], "pert_di": 0, "thres_iscal": 0, "provid": 0, "support": [0, 2], "quantifi": 0, "profiles2signatur": [0, 2, 4], "profiles_df": 0, "save_fnam": 0, "backgroundfil": 0, "bin_method": 0, "nbackground_limit": 0, "30": 0, "background_fil": 0, "supplementari": 0, "more": [0, 1, 2], "basal": 0, "background": 0, "cutoff": 0, "approach": [0, 1, 2], "tupl": 0, "upper": 0, "bound": [0, 1, 2], "signatures_df": 0, "cl": [0, 2, 4], "wise": 0, "cluster": 0, "The": [0, 1, 3], "degre": 0, "possibl": 0, "thi": [0, 1, 3], "its": [0, 1], "current": 0, "neighbor": 0, "form": 0, "cliqu": 0, "centr": [0, 2, 4], "central": 0, "correl": 0, "star": 0, "d": [0, 1, 2, 4], "over": 0, "densiti": 0, "gt": [0, 2, 4], "heterogen": 0, "non": [0, 1, 2], "uniform": 0, "build_influ": [0, 2, 4], "network_df": 0, "tau": 0, "cor_method": 0, "pearson": 0, "expr_df": 0, "output": [0, 1], "ssign": 0, "genepairwis": 0, "adjac": 0, "corr": 0, "build_observ": [0, 2, 4], "grn": 0, "mask": 0, "lead": [0, 1, 2], "steadi": 0, "final": 0, "influencegraph": 0, "topolog": 0, "_": 0, "initial_": 0, "bo": 0, "evalu": 0, "create_grn": [0, 2, 4], "exact": 0, "max_maxclaus": 0, "absent": 0, "preserv": 0, "claus": 0, "dnf": 0, "f_weight_di": 0, "harrington": 0, "scalar": 0, "ceur": 0, "vol": 0, "2488": 0, "paper17": 0, "pdf": 0, "cran": 0, "r": 0, "web": 0, "vignett": 0, "datapoint": 0, "interv": 0, "de": 0, "point": 0, "general_topological_paramet": [0, 2, 4], "gtp": 0, "must": 0, "get_genes_downstream": [0, 2, 4], "n": [0, 1, 3], "downstream": 0, "recurs": 0, "lst_downstream": 0, "get_genes_interactions_from_ppi": [0, 2, 4], "ppi": 0, "decreas": 0, "cost": 0, "while": [0, 1], "enforc": 0, "ppi_accept": 0, "get_genes_most_vari": [0, 2, 4], "control_profil": 0, "treated_profil": 0, "8": [0, 1, 3], "contribut": [0, 1], "variat": 0, "two": 0, "pth": 0, "percentil": 0, "th": 0, "lst_gene": 0, "get_grfs_from_solut": [0, 2, 4], "grf": 0, "get_maxdegre": [0, 2, 4], "ingo": 0, "potenti": 0, "maxindegre": 0, "get_minimal_edg": [0, 2, 4], "smallest": 0, "greatest": 0, "satisfi": 0, "those": 0, "nedg": 0, "get_weakly_connect": [0, 2, 4], "index_col": 0, "column_col": 0, "score_col": 0, "sscore": 0, "take": [0, 1], "account": [0, 1], "isol": 0, "compon": 0, "loc": 0, "weakli": 0, "order": [0, 1], "infer_network": [0, 2, 4], "use_divers": 0, "niter": 0, "match": 0, "divers": 0, "nsolut": 0, "load_grn": [0, 2, 4], "load": 0, "element": 0, "bn": 0, "mpbooleannetwork": 0, "permiss": 0, "semant": 0, "reconnect_network": [0, 2, 4], "outgo": 0, "reconnect": 0, "save_grn": [0, 2, 4], "sep": 0, "max_show": 0, "o": 0, "what": 0, "save_solut": [0, 2, 4], "bnetwork": 0, "enumer": 0, "zip": 0, "solution2influ": [0, 2, 4], "monoton": 0, "zip2df": [0, 2, 4], "extract": [0, 3], "aggregate_network": [0, 2, 4], "version_net": 0, "version_act": 0, "follow": [0, 3], "pipelin": 0, "merg": 0, "solv": 0, "inconsist": 0, "duplic": 0, "paradox": 0, "etc": 0, "allow": [0, 1, 2], "core": 0, "below": 0, "remov": 0, "To": 0, "compat": 0, "issu": [0, 3], "strongli": [0, 1, 3], "advis": [0, 1, 3], "final_network": 0, "captur": [0, 2, 4], "determine_edge_threshold": [0, 2, 4], "core_gene_set": 0, "three": 0, "remain": [0, 1], "get_network_from_omnipath": [0, 2, 4], "disease_nam": 0, "human": 0, "sources_int": 0, "omnipath": 0, "domains_int": 0, "types_int": 0, "min_curation_effort": 0, "domains_annot": 0, "hpa_tissu": 0, "letter": 0, "mous": 0, "rat": 0, "them": 0, "e": 0, "post_transl": 0, "post_transcript": 0, "mirna_transcript": 0, "better": 0, "citat": 0, "pair": 0, "describ": 0, "paper": 0, "mention": 0, "domain_annot": 0, "annot_wid": 0, "merge_network_ppi": [0, 2, 4], "remove_isol": [0, 2, 4], "largest": 0, "trimmed_network": 0, "influences2graph": [0, 2, 4], "option": 0, "compile2png": 0, "sfdp": 0, "plot": 0, "dot": 0, "drawn": 0, "dash": 0, "plot_boxplot": [0, 2, 4], "patient_scor": 0, "fsize": 0, "12": 0, "msize": 0, "boxplot": [0, 4], "obtain": 0, "unknown": 0, "aggrav": 0, "doe": 0, "color": 0, "18": 0, "font": 0, "marker": 0, "plot_discrete_distribut": [0, 2, 4], "signature_expression_distribut": 0, "histogram": 0, "statu": 0, "nan": 0, "plot_distribut": [0, 2, 4], "gene_expression_distribut": 0, "plot_heatmap": [0, 2, 4], "heatmap": 0, "bfsize": 0, "rot": 0, "75": 0, "figur": 0, "width": 0, "height": 0, "bar": 0, "rotat": 0, "angl": 0, "label": 0, "plot_influence_graph": [0, 2, 4], "input_col": 0, "output_col": 0, "sign_col": 0, "direction_col": 0, "pictur": 0, "plot_precision_recal": [0, 2, 4], "pr": 0, "tr": 0, "prc": 0, "method_nam": 0, "predictor": 0, "recal": 0, "curv": 0, "plot_roc_curv": [0, 2, 4], "roc": 0, "plot_signatur": [0, 2, 4], "perturbed_gen": 0, "dimens": 0, "shown": 0, "bn_sim": [0, 2, 4], "add_initial_st": [0, 4], "add_permanent_mut": [0, 4], "add_transient_mut": [0, 4], "attrs_similar": [0, 4], "attrs1": 0, "attrs2": 0, "enumerate_attractor": [0, 4], "generate_trajectori": [0, 4], "initialize_network": [0, 4], "up_to_attractor": [0, 4], "mutation_perman": 0, "mutation_transi": 0, "update_network": [0, 4], "bonesis_sim": [0, 2, 4], "maboss_sim": [0, 2, 4], "mpbn_sim": [0, 2, 4], "max_attr": 0, "show_plot": 0, "choic": [0, 2, 4], "replac": 0, "arrai": 0, "new": 0, "code": [0, 1], "numpi": 0, "pleas": [0, 1], "quick": [0, 2], "start": [0, 1], "like": 0, "int": 0, "ndarrai": 0, "were": 0, "np": 0, "arang": 0, "shape": 0, "case": 0, "without": 0, "multipl": 0, "entri": 0, "assum": 0, "item": 0, "valueerror": 0, "less": 0, "than": [0, 1], "zero": 0, "dimension": 0, "vector": 0, "length": 0, "greater": 0, "popul": 0, "randint": 0, "shuffl": 0, "specifi": 0, "through": [0, 1, 2], "effici": [0, 1, 2], "sampler": 0, "produc": 0, "even": [0, 1], "len": 0, "axi": 0, "keyword": 0, "equival": 0, "6": [0, 1], "abov": 0, "arbitrari": 0, "just": 0, "For": 0, "aa_milne_arr": 0, "pooh": 0, "rabbit": 0, "piglet": 0, "christoph": 0, "dtype": 0, "u11": 0, "compare_to": 0, "print_boxplot": 0, "binarize_experi": [0, 2, 4], "probin": 0, "equal": 0, "undefin": 0, "compare_st": [0, 2, 4], "otherwis": [0, 1, 2], "union": 0, "finetune_binthr": [0, 2, 4], "step": 0, "005": 0, "maxt": 0, "mint": 0, "score_binthr": 0, "lambda": 0, "dissimilar": 0, "intercondit": 0, "intracondit": 0, "look": 0, "itc": 0, "ita_c": 0, "ita_t": 0, "max_thr": 0, "quantile_norm": [0, 2, 4], "Being": [1, 2], "abl": [1, 2], "autom": [1, 2], "reproduc": [1, 2], "wai": [1, 2], "complex": [1, 2], "biolog": [1, 2], "phenomena": [1, 2], "larger": [1, 2], "These": [1, 2], "speed": [1, 2], "understand": [1, 2], "hierarchi": [1, 2], "bioinformatician": [1, 2], "biologist": [1, 2], "novel": [1, 2], "investig": [1, 2], "later": [1, 2], "healthcar": [1, 2], "purpos": [1, 2], "In": [1, 2], "particular": [1, 2], "orient": [1, 2], "off": [1, 2], "unexpect": [1, 2], "toxic": [1, 2], "side": [1, 2], "open": [1, 2], "packag": [1, 2, 4], "focu": [1, 2], "mechan": [1, 2], "detect": [1, 2], "master": [1, 2], "transcriptom": [1, 2], "context": [1, 2], "As": 1, "compris": 1, "four": 1, "submodul": [1, 2, 4], "ni": 1, "dynam": 1, "main": 1, "absenc": 1, "previous": 1, "pmr": 1, "contrast": 1, "work": 1, "group": 1, "well": 1, "sinc": [1, 2], "alreadi": 1, "some": 1, "routin": 1, "bandit": [1, 2, 4], "discoveri": 1, "easiest": 1, "deal": 1, "configur": 1, "colomoto": [1, 2], "docker": [1, 2], "ensur": 1, "instal": [1, 2], "your": [1, 3], "servic": 1, "hello": 1, "world": 1, "confirm": 1, "messag": 1, "exit": 1, "Then": 1, "conda": [1, 2], "nordic_colomoto": 1, "pip": [1, 2], "u": [1, 3], "mkdir": 1, "notebook": 1, "2023": [1, 2], "03": 1, "01": 1, "jupyt": 1, "browser": 1, "you": 1, "see": 1, "directori": [1, 3], "tutori": 1, "includ": 1, "demo": 1, "ipynb": 1, "introduct": 1, "virtual": [1, 3], "test_nord": [1, 3], "creda": [1, 3], "python3": 1, "markupsaf": 1, "deactiv": 1, "refresh": 1, "depend": [1, 2], "requir": [1, 3], "txt": [1, 3], "meta": [1, 3], "yaml": [1, 3], "onc": 1, "function": [1, 2, 4], "document": 1, "so": 1, "func": 1, "help": 1, "host": 2, "pypi": 2, "anaconda": 2, "march": 2, "1st": 2, "statement": 2, "usag": 2, "environ": [2, 3], "exampl": 2, "nordic_ni": [2, 4], "modul": [2, 3, 4], "nordic_pmr": [2, 4], "nordic_d": [2, 4], "get_drug_signatur": [2, 4], "get_drug_target": [2, 4], "nordic_dr": [2, 4], "util": [2, 4], "disgenet_util": [2, 4], "lincs_util": [2, 4], "string_util": [2, 4], "utils_data": [2, 4], "utils_exp": [2, 4], "utils_grn": [2, 4], "utils_network": [2, 4], "utils_plot": [2, 4], "utils_sim": [2, 4], "utils_st": [2, 4], "content": [2, 4], "develop": 3, "mainli": 3, "linux": 3, "when": 3, "window": 3, "mac": 3, "report": 3, "github": 3, "It": 3, "we": 3, "miss": 3, "apt": 3, "graphviz": 3, "debian": 3, "command": 3, "own": 3, "maboss": 3, "nordic": 3, "tar": 3, "gz": 3, "librari": 3, "consist": 3}, "objects": {"": [[0, 0, 0, "-", "NORDic"]], "NORDic.NORDic_DR": [[0, 0, 0, "-", "bandits"], [0, 0, 0, "-", "functions"], [0, 0, 0, "-", "utils"]], "NORDic.NORDic_DR.bandits": [[0, 1, 1, "", "AdaHedge"], [0, 1, 1, "", "Greedy"], [0, 1, 1, "", "Learner"], [0, 1, 1, "", "LinGapE"], [0, 1, 1, "", "MisLid"], [0, 1, 1, "", "Misspecified"], [0, 3, 1, "", "gaussian"], [0, 3, 1, "", "heuristic"], [0, 3, 1, "", "misspecified"], [0, 3, 1, "", "subheuristic"]], "NORDic.NORDic_DR.bandits.AdaHedge": [[0, 2, 1, "", "act"], [0, 2, 1, "", "incur"]], "NORDic.NORDic_DR.bandits.Greedy": [[0, 2, 1, "", "act"], [0, 2, 1, "", "incur"]], "NORDic.NORDic_DR.bandits.Learner": [[0, 2, 1, "", "act"], [0, 2, 1, "", "incur"]], "NORDic.NORDic_DR.bandits.LinGapE": [[0, 2, 1, "", "apply"], [0, 2, 1, "", "greedy"], [0, 2, 1, "", "optimized"], [0, 2, 1, "", "stopping_rule"], [0, 2, 1, "", "update"]], "NORDic.NORDic_DR.bandits.MisLid": [[0, 2, 1, "", "apply"], [0, 2, 1, "", "best_answer"], [0, 2, 1, "", "stopping_rule"], [0, 2, 1, "", "update"]], "NORDic.NORDic_DR.bandits.Misspecified": [[0, 2, 1, "", "clear"], [0, 2, 1, "", "run"], [0, 2, 1, "", "sample"]], "NORDic.NORDic_DR.functions": [[0, 3, 1, "", "adaptive_testing"], [0, 1, 1, "", "testing_problem"]], "NORDic.NORDic_DR.functions.testing_problem": [[0, 2, 1, "", "reward"]], "NORDic.NORDic_DR.utils": [[0, 3, 1, "", "argmax_m"], [0, 3, 1, "", "barycentric_spanner"], [0, 3, 1, "", "c_kt"], [0, 3, 1, "", "closest_alternative"], [0, 3, 1, "", "cnorm"], [0, 3, 1, "", "lambert"], [0, 3, 1, "", "mahalanobis"], [0, 3, 1, "", "optimistic_gradient"], [0, 3, 1, "", "projection"], [0, 3, 1, "", "quadprog_solve_qp"], [0, 3, 1, "", "randf"], [0, 3, 1, "", "sherman_morrison"], [0, 3, 1, "", "solve_alternative_quadprog"], [0, 3, 1, "", "tracking_rule"], [0, 3, 1, "", "update_misspecified"]], "NORDic.NORDic_DS": [[0, 0, 0, "-", "functions"], [0, 0, 0, "-", "get_drug_signatures"], [0, 0, 0, "-", "get_drug_targets"]], "NORDic.NORDic_DS.functions": [[0, 3, 1, "", "baseline"], [0, 3, 1, "", "compute_frontier"], [0, 3, 1, "", "compute_metrics"], [0, 3, 1, "", "compute_score"], [0, 3, 1, "", "empirical_pvalue"], [0, 3, 1, "", "simulate"], [0, 3, 1, "", "simulate_treatment"]], "NORDic.NORDic_DS.get_drug_signatures": [[0, 3, 1, "", "compute_drug_signatures_L1000"], [0, 3, 1, "", "drugname2pubchem"], [0, 3, 1, "", "get_ranking"], [0, 3, 1, "", "pubchem2drugname"], [0, 3, 1, "", "retrieve_drug_signature"]], "NORDic.NORDic_DS.get_drug_targets": [[0, 3, 1, "", "get_targets_DrugBank"], [0, 3, 1, "", "get_targets_DrugCentral"], [0, 3, 1, "", "get_targets_LINCS"], [0, 3, 1, "", "get_targets_MINERVA"], [0, 3, 1, "", "get_targets_TTD"], [0, 3, 1, "", "retrieve_drug_targets"]], "NORDic.NORDic_NI": [[0, 0, 0, "-", "functions"]], "NORDic.NORDic_NI.functions": [[0, 3, 1, "", "import_all_solutions"], [0, 3, 1, "", "network_identification"], [0, 3, 1, "", "select_optimal_model"], [0, 3, 1, "", "solution2cytoscape"], [0, 3, 1, "", "solution_generation"], [0, 3, 1, "", "visualize_models"]], "NORDic.NORDic_PMR": [[0, 0, 0, "-", "functions"]], "NORDic.NORDic_PMR.functions": [[0, 3, 1, "", "compute_similarities"], [0, 3, 1, "", "greedy"], [0, 3, 1, "", "run_experiments"], [0, 3, 1, "", "spread"], [0, 3, 1, "", "spread_multistate"]], "NORDic.UTILS": [[0, 0, 0, "-", "DISGENET_utils"], [0, 0, 0, "-", "LINCS_utils"], [0, 0, 0, "-", "STRING_utils"], [0, 0, 0, "-", "utils_data"], [0, 0, 0, "-", "utils_exp"], [0, 0, 0, "-", "utils_grn"], [0, 0, 0, "-", "utils_network"], [0, 0, 0, "-", "utils_plot"], [0, 0, 0, "-", "utils_sim"], [0, 0, 0, "-", "utils_state"]], "NORDic.UTILS.DISGENET_utils": [[0, 3, 1, "", "get_genes_evidences_from_DISGENET"], [0, 3, 1, "", "get_genes_proteins_from_DISGENET"], [0, 3, 1, "", "get_user_key_DISGENET"]], "NORDic.UTILS.LINCS_utils": [[0, 3, 1, "", "binarize_via_CD"], [0, 3, 1, "", "build_url"], [0, 3, 1, "", "compute_interference_scale"], [0, 3, 1, "", "convert_ctrlgenes_EntrezGene"], [0, 3, 1, "", "create_restricted_drug_signatures"], [0, 3, 1, "", "download_file"], [0, 3, 1, "", "download_lincs_files"], [0, 3, 1, "", "get_treated_control_dataset"], [0, 3, 1, "", "get_user_key"], [0, 3, 1, "", "post_request"], [0, 3, 1, "", "select_best_sig"]], "NORDic.UTILS.STRING_utils": [[0, 3, 1, "", "get_app_name_STRING"], [0, 3, 1, "", "get_image_from_STRING"], [0, 3, 1, "", "get_interactions_from_STRING"], [0, 3, 1, "", "get_interactions_partners_from_STRING"], [0, 3, 1, "", "get_network_from_STRING"], [0, 3, 1, "", "get_protein_names_from_STRING"], [0, 3, 1, "", "string_api_url"]], "NORDic.UTILS.utils_data": [[0, 3, 1, "", "convert_EntrezGene_LINCSL1000"], [0, 3, 1, "", "convert_genes_EntrezGene"], [0, 3, 1, "", "get_all_celllines"], [0, 3, 1, "", "request_biodbnet"]], "NORDic.UTILS.utils_exp": [[0, 3, 1, "", "get_experimental_constraints"], [0, 3, 1, "", "profiles2signatures"]], "NORDic.UTILS.utils_grn": [[0, 3, 1, "", "CL"], [0, 3, 1, "", "Centr"], [0, 3, 1, "", "DS"], [0, 3, 1, "", "GT"], [0, 3, 1, "", "build_influences"], [0, 3, 1, "", "build_observations"], [0, 3, 1, "", "create_grn"], [0, 3, 1, "", "desirability"], [0, 3, 1, "", "general_topological_parameter"], [0, 3, 1, "", "get_genes_downstream"], [0, 3, 1, "", "get_genes_interactions_from_PPI"], [0, 3, 1, "", "get_genes_most_variable"], [0, 3, 1, "", "get_grfs_from_solution"], [0, 3, 1, "", "get_maxdegree"], [0, 3, 1, "", "get_minimal_edges"], [0, 3, 1, "", "get_weakly_connected"], [0, 3, 1, "", "infer_network"], [0, 3, 1, "", "load_grn"], [0, 3, 1, "", "reconnect_network"], [0, 3, 1, "", "save_grn"], [0, 3, 1, "", "save_solutions"], [0, 3, 1, "", "solution2influences"], [0, 3, 1, "", "zip2df"]], "NORDic.UTILS.utils_network": [[0, 3, 1, "", "aggregate_networks"], [0, 3, 1, "", "capture"], [0, 3, 1, "", "determine_edge_threshold"], [0, 3, 1, "", "get_network_from_OmniPath"], [0, 3, 1, "", "merge_network_PPI"], [0, 3, 1, "", "remove_isolated"]], "NORDic.UTILS.utils_plot": [[0, 3, 1, "", "influences2graph"], [0, 3, 1, "", "plot_boxplots"], [0, 3, 1, "", "plot_discrete_distributions"], [0, 3, 1, "", "plot_distributions"], [0, 3, 1, "", "plot_heatmap"], [0, 3, 1, "", "plot_influence_graph"], [0, 3, 1, "", "plot_precision_recall"], [0, 3, 1, "", "plot_roc_curve"], [0, 3, 1, "", "plot_signatures"]], "NORDic.UTILS.utils_sim": [[0, 1, 1, "", "BN_SIM"], [0, 1, 1, "", "BONESIS_SIM"], [0, 1, 1, "", "MABOSS_SIM"], [0, 1, 1, "", "MPBN_SIM"], [0, 3, 1, "", "capture"], [0, 3, 1, "", "choice"], [0, 3, 1, "", "test"]], "NORDic.UTILS.utils_sim.BN_SIM": [[0, 2, 1, "", "add_initial_states"], [0, 2, 1, "", "add_permanent_mutation"], [0, 2, 1, "", "add_transient_mutation"], [0, 2, 1, "", "attrs_similarity"], [0, 2, 1, "", "boxplot"], [0, 2, 1, "", "enumerate_attractors"], [0, 2, 1, "", "generate_trajectories"], [0, 2, 1, "", "initialize_network"], [0, 2, 1, "", "up_to_attractors"], [0, 2, 1, "", "update_network"]], "NORDic.UTILS.utils_sim.BONESIS_SIM": [[0, 2, 1, "", "add_initial_states"], [0, 2, 1, "", "add_permanent_mutation"], [0, 2, 1, "", "add_transient_mutation"], [0, 2, 1, "", "enumerate_attractors"], [0, 2, 1, "", "generate_trajectories"], [0, 2, 1, "", "initialize_network"]], "NORDic.UTILS.utils_sim.MABOSS_SIM": [[0, 2, 1, "", "add_initial_states"], [0, 2, 1, "", "add_permanent_mutation"], [0, 2, 1, "", "add_transient_mutation"], [0, 2, 1, "", "enumerate_attractors"], [0, 2, 1, "", "generate_trajectories"], [0, 2, 1, "", "initialize_network"]], "NORDic.UTILS.utils_sim.MPBN_SIM": [[0, 2, 1, "", "add_initial_states"], [0, 2, 1, "", "add_permanent_mutation"], [0, 2, 1, "", "add_transient_mutation"], [0, 2, 1, "", "enumerate_attractors"], [0, 2, 1, "", "generate_trajectories"], [0, 2, 1, "", "initialize_network"]], "NORDic.UTILS.utils_state": [[0, 3, 1, "", "binarize_experiments"], [0, 3, 1, "", "compare_states"], [0, 3, 1, "", "finetune_binthres"], [0, 3, 1, "", "quantile_normalize"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"nordic": [0, 1, 2, 4], "packag": [0, 3], "submodul": 0, "nordic_ni": 0, "function": 0, "modul": 0, "paramet": 0, "return": 0, "nordic_pmr": 0, "nordic_d": 0, "get_drug_signatur": 0, "get_drug_target": 0, "nordic_dr": 0, "bandit": 0, "util": 0, "disgenet_util": 0, "lincs_util": 0, "string_util": 0, "utils_data": 0, "utils_exp": 0, "utils_grn": 0, "utils_network": 0, "utils_plot": 0, "utils_sim": 0, "rais": 0, "see": 0, "also": 0, "note": 0, "exampl": [0, 1], "utils_st": 0, "content": 0, "statement": 1, "need": 1, "usag": 1, "quick": 1, "access": 1, "environ": 1, "welcom": 2, "": 2, "document": 2, "indic": 2, "tabl": 2, "instal": 3, "support": 3, "platform": 3, "depend": 3, "us": 3, "pip": 3, "host": 3, "pypi": 3, "conda": 3, "anaconda": 3, "org": 3, "colomoto": 3, "docker": 3, "sinc": 3, "march": 3, "1st": 3, "2023": 3, "from": 3, "sourc": 3, "file": 3}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"NORDic package": [[0, "nordic-package"]], "Submodules": [[0, "submodules"]], "NORDic.NORDic_NI.functions module": [[0, "module-NORDic.NORDic_NI.functions"]], "Parameters": [[0, "parameters"], [0, "id1"], [0, "id3"], [0, "id5"], [0, "id7"], [0, "id9"], [0, "id11"], [0, "id13"], [0, "id15"], [0, "id17"], [0, "id19"], [0, "id21"], [0, "id23"], [0, "id25"], [0, "id27"], [0, "id29"], [0, "id31"], [0, "id33"], [0, "id35"], [0, "id37"], [0, "id39"], [0, "id41"], [0, "id43"], [0, "id45"], [0, "id47"], [0, "id49"], [0, "id51"], [0, "id53"], [0, "id55"], [0, "id57"], [0, "id59"], [0, "id61"], [0, "id63"], [0, "id65"], [0, "id67"], [0, "id69"], [0, "id71"], [0, "id73"], [0, "id75"], [0, "id77"], [0, "id79"], [0, "id81"], [0, "id83"], [0, "id85"], [0, "id87"], [0, "id89"], [0, "id91"], [0, "id93"], [0, "id95"], [0, "id97"], [0, "id99"], [0, "id101"], [0, "id103"], [0, "id105"], [0, "id107"], [0, "id109"], [0, "id111"], [0, "id113"], [0, "id115"], [0, "id117"], [0, "id119"], [0, "id121"], [0, "id123"], [0, "id125"], [0, "id127"], [0, "id129"], [0, "id131"], [0, "id133"], [0, "id135"], [0, "id137"], [0, "id139"], [0, "id141"], [0, "id143"], [0, "id145"], [0, "id147"], [0, "id148"], [0, "id149"], [0, "id151"], [0, "id153"], [0, "id155"], [0, "id157"], [0, "id159"], [0, "id161"], [0, "id163"], [0, "id165"], [0, "id167"], [0, "id169"], [0, "id171"], [0, "id173"], [0, "id175"], [0, "id177"], [0, "id179"], [0, "id181"], [0, "id183"], [0, "id185"], [0, "id187"]], "Returns": [[0, "returns"], [0, "id2"], [0, "id4"], [0, "id6"], [0, "id8"], [0, "id10"], [0, "id12"], [0, "id14"], [0, "id16"], [0, "id18"], [0, "id20"], [0, "id22"], [0, "id24"], [0, "id26"], [0, "id28"], [0, "id30"], [0, "id32"], [0, "id34"], [0, "id36"], [0, "id38"], [0, "id40"], [0, "id42"], [0, "id44"], [0, "id46"], [0, "id48"], [0, "id50"], [0, "id52"], [0, "id54"], [0, "id56"], [0, "id58"], [0, "id60"], [0, "id62"], [0, "id64"], [0, "id66"], [0, "id68"], [0, "id70"], [0, "id72"], [0, "id74"], [0, "id76"], [0, "id78"], [0, "id80"], [0, "id82"], [0, "id84"], [0, "id86"], [0, "id88"], [0, "id90"], [0, "id92"], [0, "id94"], [0, "id96"], [0, "id98"], [0, "id100"], [0, "id102"], [0, "id104"], [0, "id106"], [0, "id108"], [0, "id110"], [0, "id112"], [0, "id114"], [0, "id116"], [0, "id118"], [0, "id120"], [0, "id122"], [0, "id124"], [0, "id126"], [0, "id128"], [0, "id130"], [0, "id132"], [0, "id134"], [0, "id136"], [0, "id138"], [0, "id140"], [0, "id142"], [0, "id144"], [0, "id146"], [0, "id150"], [0, "id152"], [0, "id154"], [0, "id156"], [0, "id158"], [0, "id160"], [0, "id162"], [0, "id164"], [0, "id166"], [0, "id168"], [0, "id170"], [0, "id172"], [0, "id174"], [0, "id176"], [0, "id178"], [0, "id180"], [0, "id182"], [0, "id184"], [0, "id186"], [0, "id188"]], "NORDic.NORDic_PMR.functions module": [[0, "module-NORDic.NORDic_PMR.functions"]], "NORDic.NORDic_DS.functions module": [[0, "module-NORDic.NORDic_DS.functions"]], "NORDic.NORDic_DS.get_drug_signatures module": [[0, "module-NORDic.NORDic_DS.get_drug_signatures"]], "NORDic.NORDic_DS.get_drug_targets module": [[0, "module-NORDic.NORDic_DS.get_drug_targets"]], "NORDic.NORDic_DR.bandits module": [[0, "module-NORDic.NORDic_DR.bandits"]], "NORDic.NORDic_DR.functions module": [[0, "module-NORDic.NORDic_DR.functions"]], "NORDic.NORDic_DR.utils module": [[0, "module-NORDic.NORDic_DR.utils"]], "NORDic.UTILS.DISGENET_utils module": [[0, "module-NORDic.UTILS.DISGENET_utils"]], "NORDic.UTILS.LINCS_utils module": [[0, "module-NORDic.UTILS.LINCS_utils"]], "NORDic.UTILS.STRING_utils module": [[0, "module-NORDic.UTILS.STRING_utils"]], "NORDic.UTILS.utils_data module": [[0, "module-NORDic.UTILS.utils_data"]], "NORDic.UTILS.utils_exp module": [[0, "module-NORDic.UTILS.utils_exp"]], "NORDic.UTILS.utils_grn module": [[0, "module-NORDic.UTILS.utils_grn"]], "NORDic.UTILS.utils_network module": [[0, "module-NORDic.UTILS.utils_network"]], "NORDic.UTILS.utils_plot module": [[0, "module-NORDic.UTILS.utils_plot"]], "NORDic.UTILS.utils_sim module": [[0, "module-NORDic.UTILS.utils_sim"]], "Raises": [[0, "raises"]], "See Also": [[0, "see-also"]], "Notes": [[0, "notes"]], "Examples": [[0, "examples"]], "NORDic.UTILS.utils_state module": [[0, "module-NORDic.UTILS.utils_state"]], "Module contents": [[0, "module-NORDic"]], "Statement of need": [[1, "statement-of-need"]], "Usage": [[1, "usage"]], "Quick access to NORDic": [[1, "quick-access-to-nordic"]], "Environment": [[1, "environment"]], "Example usage": [[1, "example-usage"]], "Welcome to NORDic\u2019s documentation!": [[2, "welcome-to-nordic-s-documentation"]], "Indices and tables": [[2, "indices-and-tables"]], "Installation": [[3, "installation"]], "Supported platforms": [[3, "supported-platforms"]], "Dependencies": [[3, "dependencies"]], "Using pip (package hosted on PyPI)": [[3, "using-pip-package-hosted-on-pypi"]], "Using conda (package hosted on Anaconda.org)": [[3, "using-conda-package-hosted-on-anaconda-org"]], "Using CoLoMoTo-Docker (since March 1st, 2023)": [[3, "using-colomoto-docker-since-march-1st-2023"]], "From Source Files": [[3, "from-source-files"]], "NORDic": [[4, "nordic"]]}, "indexentries": {"adahedge (class in nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.AdaHedge"]], "bn_sim (class in nordic.utils.utils_sim)": [[0, "NORDic.UTILS.utils_sim.BN_SIM"]], "bonesis_sim (class in nordic.utils.utils_sim)": [[0, "NORDic.UTILS.utils_sim.BONESIS_SIM"]], "cl() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.CL"]], "centr() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.Centr"]], "ds() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.DS"]], "gt() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.GT"]], "greedy (class in nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.Greedy"]], "learner (class in nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.Learner"]], "lingape (class in nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.LinGapE"]], "maboss_sim (class in nordic.utils.utils_sim)": [[0, "NORDic.UTILS.utils_sim.MABOSS_SIM"]], "mpbn_sim (class in nordic.utils.utils_sim)": [[0, "NORDic.UTILS.utils_sim.MPBN_SIM"]], "mislid (class in nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.MisLid"]], "misspecified (class in nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.Misspecified"]], "nordic": [[0, "module-NORDic"]], "nordic.nordic_dr.bandits": [[0, "module-NORDic.NORDic_DR.bandits"]], "nordic.nordic_dr.functions": [[0, "module-NORDic.NORDic_DR.functions"]], "nordic.nordic_dr.utils": [[0, "module-NORDic.NORDic_DR.utils"]], "nordic.nordic_ds.functions": [[0, "module-NORDic.NORDic_DS.functions"]], "nordic.nordic_ds.get_drug_signatures": [[0, "module-NORDic.NORDic_DS.get_drug_signatures"]], "nordic.nordic_ds.get_drug_targets": [[0, "module-NORDic.NORDic_DS.get_drug_targets"]], "nordic.nordic_ni.functions": [[0, "module-NORDic.NORDic_NI.functions"]], "nordic.nordic_pmr.functions": [[0, "module-NORDic.NORDic_PMR.functions"]], "nordic.utils.disgenet_utils": [[0, "module-NORDic.UTILS.DISGENET_utils"]], "nordic.utils.lincs_utils": [[0, "module-NORDic.UTILS.LINCS_utils"]], "nordic.utils.string_utils": [[0, "module-NORDic.UTILS.STRING_utils"]], "nordic.utils.utils_data": [[0, "module-NORDic.UTILS.utils_data"]], "nordic.utils.utils_exp": [[0, "module-NORDic.UTILS.utils_exp"]], "nordic.utils.utils_grn": [[0, "module-NORDic.UTILS.utils_grn"]], "nordic.utils.utils_network": [[0, "module-NORDic.UTILS.utils_network"]], "nordic.utils.utils_plot": [[0, "module-NORDic.UTILS.utils_plot"]], "nordic.utils.utils_sim": [[0, "module-NORDic.UTILS.utils_sim"]], "nordic.utils.utils_state": [[0, "module-NORDic.UTILS.utils_state"]], "act() (nordic.nordic_dr.bandits.adahedge method)": [[0, "NORDic.NORDic_DR.bandits.AdaHedge.act"]], "act() (nordic.nordic_dr.bandits.greedy method)": [[0, "NORDic.NORDic_DR.bandits.Greedy.act"]], "act() (nordic.nordic_dr.bandits.learner method)": [[0, "NORDic.NORDic_DR.bandits.Learner.act"]], "adaptive_testing() (in module nordic.nordic_dr.functions)": [[0, "NORDic.NORDic_DR.functions.adaptive_testing"]], "add_initial_states() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.add_initial_states"]], "add_initial_states() (nordic.utils.utils_sim.bonesis_sim method)": [[0, "NORDic.UTILS.utils_sim.BONESIS_SIM.add_initial_states"]], "add_initial_states() (nordic.utils.utils_sim.maboss_sim method)": [[0, "NORDic.UTILS.utils_sim.MABOSS_SIM.add_initial_states"]], "add_initial_states() (nordic.utils.utils_sim.mpbn_sim method)": [[0, "NORDic.UTILS.utils_sim.MPBN_SIM.add_initial_states"]], "add_permanent_mutation() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.add_permanent_mutation"]], "add_permanent_mutation() (nordic.utils.utils_sim.bonesis_sim method)": [[0, "NORDic.UTILS.utils_sim.BONESIS_SIM.add_permanent_mutation"]], "add_permanent_mutation() (nordic.utils.utils_sim.maboss_sim method)": [[0, "NORDic.UTILS.utils_sim.MABOSS_SIM.add_permanent_mutation"]], "add_permanent_mutation() (nordic.utils.utils_sim.mpbn_sim method)": [[0, "NORDic.UTILS.utils_sim.MPBN_SIM.add_permanent_mutation"]], "add_transient_mutation() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.add_transient_mutation"]], "add_transient_mutation() (nordic.utils.utils_sim.bonesis_sim method)": [[0, "NORDic.UTILS.utils_sim.BONESIS_SIM.add_transient_mutation"]], "add_transient_mutation() (nordic.utils.utils_sim.maboss_sim method)": [[0, "NORDic.UTILS.utils_sim.MABOSS_SIM.add_transient_mutation"]], "add_transient_mutation() (nordic.utils.utils_sim.mpbn_sim method)": [[0, "NORDic.UTILS.utils_sim.MPBN_SIM.add_transient_mutation"]], "aggregate_networks() (in module nordic.utils.utils_network)": [[0, "NORDic.UTILS.utils_network.aggregate_networks"]], "apply() (nordic.nordic_dr.bandits.lingape method)": [[0, "NORDic.NORDic_DR.bandits.LinGapE.apply"]], "apply() (nordic.nordic_dr.bandits.mislid method)": [[0, "NORDic.NORDic_DR.bandits.MisLid.apply"]], "argmax_m() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.argmax_m"]], "attrs_similarity() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.attrs_similarity"]], "barycentric_spanner() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.barycentric_spanner"]], "baseline() (in module nordic.nordic_ds.functions)": [[0, "NORDic.NORDic_DS.functions.baseline"]], "best_answer() (nordic.nordic_dr.bandits.mislid method)": [[0, "NORDic.NORDic_DR.bandits.MisLid.best_answer"]], "binarize_experiments() (in module nordic.utils.utils_state)": [[0, "NORDic.UTILS.utils_state.binarize_experiments"]], "binarize_via_cd() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.binarize_via_CD"]], "boxplot() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.boxplot"]], "build_influences() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.build_influences"]], "build_observations() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.build_observations"]], "build_url() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.build_url"]], "c_kt() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.c_kt"]], "capture() (in module nordic.utils.utils_network)": [[0, "NORDic.UTILS.utils_network.capture"]], "capture() (in module nordic.utils.utils_sim)": [[0, "NORDic.UTILS.utils_sim.capture"]], "choice() (in module nordic.utils.utils_sim)": [[0, "NORDic.UTILS.utils_sim.choice"]], "clear() (nordic.nordic_dr.bandits.misspecified method)": [[0, "NORDic.NORDic_DR.bandits.Misspecified.clear"]], "closest_alternative() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.closest_alternative"]], "cnorm() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.cnorm"]], "compare_states() (in module nordic.utils.utils_state)": [[0, "NORDic.UTILS.utils_state.compare_states"]], "compute_drug_signatures_l1000() (in module nordic.nordic_ds.get_drug_signatures)": [[0, "NORDic.NORDic_DS.get_drug_signatures.compute_drug_signatures_L1000"]], "compute_frontier() (in module nordic.nordic_ds.functions)": [[0, "NORDic.NORDic_DS.functions.compute_frontier"]], "compute_interference_scale() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.compute_interference_scale"]], "compute_metrics() (in module nordic.nordic_ds.functions)": [[0, "NORDic.NORDic_DS.functions.compute_metrics"]], "compute_score() (in module nordic.nordic_ds.functions)": [[0, "NORDic.NORDic_DS.functions.compute_score"]], "compute_similarities() (in module nordic.nordic_pmr.functions)": [[0, "NORDic.NORDic_PMR.functions.compute_similarities"]], "convert_entrezgene_lincsl1000() (in module nordic.utils.utils_data)": [[0, "NORDic.UTILS.utils_data.convert_EntrezGene_LINCSL1000"]], "convert_ctrlgenes_entrezgene() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.convert_ctrlgenes_EntrezGene"]], "convert_genes_entrezgene() (in module nordic.utils.utils_data)": [[0, "NORDic.UTILS.utils_data.convert_genes_EntrezGene"]], "create_grn() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.create_grn"]], "create_restricted_drug_signatures() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.create_restricted_drug_signatures"]], "desirability() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.desirability"]], "determine_edge_threshold() (in module nordic.utils.utils_network)": [[0, "NORDic.UTILS.utils_network.determine_edge_threshold"]], "download_file() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.download_file"]], "download_lincs_files() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.download_lincs_files"]], "drugname2pubchem() (in module nordic.nordic_ds.get_drug_signatures)": [[0, "NORDic.NORDic_DS.get_drug_signatures.drugname2pubchem"]], "empirical_pvalue() (in module nordic.nordic_ds.functions)": [[0, "NORDic.NORDic_DS.functions.empirical_pvalue"]], "enumerate_attractors() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.enumerate_attractors"]], "enumerate_attractors() (nordic.utils.utils_sim.bonesis_sim method)": [[0, "NORDic.UTILS.utils_sim.BONESIS_SIM.enumerate_attractors"]], "enumerate_attractors() (nordic.utils.utils_sim.maboss_sim method)": [[0, "NORDic.UTILS.utils_sim.MABOSS_SIM.enumerate_attractors"]], "enumerate_attractors() (nordic.utils.utils_sim.mpbn_sim method)": [[0, "NORDic.UTILS.utils_sim.MPBN_SIM.enumerate_attractors"]], "finetune_binthres() (in module nordic.utils.utils_state)": [[0, "NORDic.UTILS.utils_state.finetune_binthres"]], "gaussian() (in module nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.gaussian"]], "general_topological_parameter() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.general_topological_parameter"]], "generate_trajectories() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.generate_trajectories"]], "generate_trajectories() (nordic.utils.utils_sim.bonesis_sim method)": [[0, "NORDic.UTILS.utils_sim.BONESIS_SIM.generate_trajectories"]], "generate_trajectories() (nordic.utils.utils_sim.maboss_sim method)": [[0, "NORDic.UTILS.utils_sim.MABOSS_SIM.generate_trajectories"]], "generate_trajectories() (nordic.utils.utils_sim.mpbn_sim method)": [[0, "NORDic.UTILS.utils_sim.MPBN_SIM.generate_trajectories"]], "get_all_celllines() (in module nordic.utils.utils_data)": [[0, "NORDic.UTILS.utils_data.get_all_celllines"]], "get_app_name_string() (in module nordic.utils.string_utils)": [[0, "NORDic.UTILS.STRING_utils.get_app_name_STRING"]], "get_experimental_constraints() (in module nordic.utils.utils_exp)": [[0, "NORDic.UTILS.utils_exp.get_experimental_constraints"]], "get_genes_downstream() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.get_genes_downstream"]], "get_genes_evidences_from_disgenet() (in module nordic.utils.disgenet_utils)": [[0, "NORDic.UTILS.DISGENET_utils.get_genes_evidences_from_DISGENET"]], "get_genes_interactions_from_ppi() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.get_genes_interactions_from_PPI"]], "get_genes_most_variable() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.get_genes_most_variable"]], "get_genes_proteins_from_disgenet() (in module nordic.utils.disgenet_utils)": [[0, "NORDic.UTILS.DISGENET_utils.get_genes_proteins_from_DISGENET"]], "get_grfs_from_solution() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.get_grfs_from_solution"]], "get_image_from_string() (in module nordic.utils.string_utils)": [[0, "NORDic.UTILS.STRING_utils.get_image_from_STRING"]], "get_interactions_from_string() (in module nordic.utils.string_utils)": [[0, "NORDic.UTILS.STRING_utils.get_interactions_from_STRING"]], "get_interactions_partners_from_string() (in module nordic.utils.string_utils)": [[0, "NORDic.UTILS.STRING_utils.get_interactions_partners_from_STRING"]], "get_maxdegree() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.get_maxdegree"]], "get_minimal_edges() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.get_minimal_edges"]], "get_network_from_omnipath() (in module nordic.utils.utils_network)": [[0, "NORDic.UTILS.utils_network.get_network_from_OmniPath"]], "get_network_from_string() (in module nordic.utils.string_utils)": [[0, "NORDic.UTILS.STRING_utils.get_network_from_STRING"]], "get_protein_names_from_string() (in module nordic.utils.string_utils)": [[0, "NORDic.UTILS.STRING_utils.get_protein_names_from_STRING"]], "get_ranking() (in module nordic.nordic_ds.get_drug_signatures)": [[0, "NORDic.NORDic_DS.get_drug_signatures.get_ranking"]], "get_targets_drugbank() (in module nordic.nordic_ds.get_drug_targets)": [[0, "NORDic.NORDic_DS.get_drug_targets.get_targets_DrugBank"]], "get_targets_drugcentral() (in module nordic.nordic_ds.get_drug_targets)": [[0, "NORDic.NORDic_DS.get_drug_targets.get_targets_DrugCentral"]], "get_targets_lincs() (in module nordic.nordic_ds.get_drug_targets)": [[0, "NORDic.NORDic_DS.get_drug_targets.get_targets_LINCS"]], "get_targets_minerva() (in module nordic.nordic_ds.get_drug_targets)": [[0, "NORDic.NORDic_DS.get_drug_targets.get_targets_MINERVA"]], "get_targets_ttd() (in module nordic.nordic_ds.get_drug_targets)": [[0, "NORDic.NORDic_DS.get_drug_targets.get_targets_TTD"]], "get_treated_control_dataset() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.get_treated_control_dataset"]], "get_user_key() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.get_user_key"]], "get_user_key_disgenet() (in module nordic.utils.disgenet_utils)": [[0, "NORDic.UTILS.DISGENET_utils.get_user_key_DISGENET"]], "get_weakly_connected() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.get_weakly_connected"]], "greedy() (nordic.nordic_dr.bandits.lingape method)": [[0, "NORDic.NORDic_DR.bandits.LinGapE.greedy"]], "greedy() (in module nordic.nordic_pmr.functions)": [[0, "NORDic.NORDic_PMR.functions.greedy"]], "heuristic() (in module nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.heuristic"]], "import_all_solutions() (in module nordic.nordic_ni.functions)": [[0, "NORDic.NORDic_NI.functions.import_all_solutions"]], "incur() (nordic.nordic_dr.bandits.adahedge method)": [[0, "NORDic.NORDic_DR.bandits.AdaHedge.incur"]], "incur() (nordic.nordic_dr.bandits.greedy method)": [[0, "NORDic.NORDic_DR.bandits.Greedy.incur"]], "incur() (nordic.nordic_dr.bandits.learner method)": [[0, "NORDic.NORDic_DR.bandits.Learner.incur"]], "infer_network() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.infer_network"]], "influences2graph() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.influences2graph"]], "initialize_network() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.initialize_network"]], "initialize_network() (nordic.utils.utils_sim.bonesis_sim method)": [[0, "NORDic.UTILS.utils_sim.BONESIS_SIM.initialize_network"]], "initialize_network() (nordic.utils.utils_sim.maboss_sim method)": [[0, "NORDic.UTILS.utils_sim.MABOSS_SIM.initialize_network"]], "initialize_network() (nordic.utils.utils_sim.mpbn_sim method)": [[0, "NORDic.UTILS.utils_sim.MPBN_SIM.initialize_network"]], "lambert() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.lambert"]], "load_grn() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.load_grn"]], "mahalanobis() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.mahalanobis"]], "merge_network_ppi() (in module nordic.utils.utils_network)": [[0, "NORDic.UTILS.utils_network.merge_network_PPI"]], "misspecified() (in module nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.misspecified"]], "module": [[0, "module-NORDic"], [0, "module-NORDic.NORDic_DR.bandits"], [0, "module-NORDic.NORDic_DR.functions"], [0, "module-NORDic.NORDic_DR.utils"], [0, "module-NORDic.NORDic_DS.functions"], [0, "module-NORDic.NORDic_DS.get_drug_signatures"], [0, "module-NORDic.NORDic_DS.get_drug_targets"], [0, "module-NORDic.NORDic_NI.functions"], [0, "module-NORDic.NORDic_PMR.functions"], [0, "module-NORDic.UTILS.DISGENET_utils"], [0, "module-NORDic.UTILS.LINCS_utils"], [0, "module-NORDic.UTILS.STRING_utils"], [0, "module-NORDic.UTILS.utils_data"], [0, "module-NORDic.UTILS.utils_exp"], [0, "module-NORDic.UTILS.utils_grn"], [0, "module-NORDic.UTILS.utils_network"], [0, "module-NORDic.UTILS.utils_plot"], [0, "module-NORDic.UTILS.utils_sim"], [0, "module-NORDic.UTILS.utils_state"]], "network_identification() (in module nordic.nordic_ni.functions)": [[0, "NORDic.NORDic_NI.functions.network_identification"]], "optimistic_gradient() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.optimistic_gradient"]], "optimized() (nordic.nordic_dr.bandits.lingape method)": [[0, "NORDic.NORDic_DR.bandits.LinGapE.optimized"]], "plot_boxplots() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.plot_boxplots"]], "plot_discrete_distributions() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.plot_discrete_distributions"]], "plot_distributions() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.plot_distributions"]], "plot_heatmap() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.plot_heatmap"]], "plot_influence_graph() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.plot_influence_graph"]], "plot_precision_recall() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.plot_precision_recall"]], "plot_roc_curve() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.plot_roc_curve"]], "plot_signatures() (in module nordic.utils.utils_plot)": [[0, "NORDic.UTILS.utils_plot.plot_signatures"]], "post_request() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.post_request"]], "profiles2signatures() (in module nordic.utils.utils_exp)": [[0, "NORDic.UTILS.utils_exp.profiles2signatures"]], "projection() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.projection"]], "pubchem2drugname() (in module nordic.nordic_ds.get_drug_signatures)": [[0, "NORDic.NORDic_DS.get_drug_signatures.pubchem2drugname"]], "quadprog_solve_qp() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.quadprog_solve_qp"]], "quantile_normalize() (in module nordic.utils.utils_state)": [[0, "NORDic.UTILS.utils_state.quantile_normalize"]], "randf() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.randf"]], "reconnect_network() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.reconnect_network"]], "remove_isolated() (in module nordic.utils.utils_network)": [[0, "NORDic.UTILS.utils_network.remove_isolated"]], "request_biodbnet() (in module nordic.utils.utils_data)": [[0, "NORDic.UTILS.utils_data.request_biodbnet"]], "retrieve_drug_signature() (in module nordic.nordic_ds.get_drug_signatures)": [[0, "NORDic.NORDic_DS.get_drug_signatures.retrieve_drug_signature"]], "retrieve_drug_targets() (in module nordic.nordic_ds.get_drug_targets)": [[0, "NORDic.NORDic_DS.get_drug_targets.retrieve_drug_targets"]], "reward() (nordic.nordic_dr.functions.testing_problem method)": [[0, "NORDic.NORDic_DR.functions.testing_problem.reward"]], "run() (nordic.nordic_dr.bandits.misspecified method)": [[0, "NORDic.NORDic_DR.bandits.Misspecified.run"]], "run_experiments() (in module nordic.nordic_pmr.functions)": [[0, "NORDic.NORDic_PMR.functions.run_experiments"]], "sample() (nordic.nordic_dr.bandits.misspecified method)": [[0, "NORDic.NORDic_DR.bandits.Misspecified.sample"]], "save_grn() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.save_grn"]], "save_solutions() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.save_solutions"]], "select_best_sig() (in module nordic.utils.lincs_utils)": [[0, "NORDic.UTILS.LINCS_utils.select_best_sig"]], "select_optimal_model() (in module nordic.nordic_ni.functions)": [[0, "NORDic.NORDic_NI.functions.select_optimal_model"]], "sherman_morrison() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.sherman_morrison"]], "simulate() (in module nordic.nordic_ds.functions)": [[0, "NORDic.NORDic_DS.functions.simulate"]], "simulate_treatment() (in module nordic.nordic_ds.functions)": [[0, "NORDic.NORDic_DS.functions.simulate_treatment"]], "solution2cytoscape() (in module nordic.nordic_ni.functions)": [[0, "NORDic.NORDic_NI.functions.solution2cytoscape"]], "solution2influences() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.solution2influences"]], "solution_generation() (in module nordic.nordic_ni.functions)": [[0, "NORDic.NORDic_NI.functions.solution_generation"]], "solve_alternative_quadprog() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.solve_alternative_quadprog"]], "spread() (in module nordic.nordic_pmr.functions)": [[0, "NORDic.NORDic_PMR.functions.spread"]], "spread_multistate() (in module nordic.nordic_pmr.functions)": [[0, "NORDic.NORDic_PMR.functions.spread_multistate"]], "stopping_rule() (nordic.nordic_dr.bandits.lingape method)": [[0, "NORDic.NORDic_DR.bandits.LinGapE.stopping_rule"]], "stopping_rule() (nordic.nordic_dr.bandits.mislid method)": [[0, "NORDic.NORDic_DR.bandits.MisLid.stopping_rule"]], "string_api_url() (in module nordic.utils.string_utils)": [[0, "NORDic.UTILS.STRING_utils.string_api_url"]], "subheuristic() (in module nordic.nordic_dr.bandits)": [[0, "NORDic.NORDic_DR.bandits.subheuristic"]], "test() (in module nordic.utils.utils_sim)": [[0, "NORDic.UTILS.utils_sim.test"]], "testing_problem (class in nordic.nordic_dr.functions)": [[0, "NORDic.NORDic_DR.functions.testing_problem"]], "tracking_rule() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.tracking_rule"]], "up_to_attractors() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.up_to_attractors"]], "update() (nordic.nordic_dr.bandits.lingape method)": [[0, "NORDic.NORDic_DR.bandits.LinGapE.update"]], "update() (nordic.nordic_dr.bandits.mislid method)": [[0, "NORDic.NORDic_DR.bandits.MisLid.update"]], "update_misspecified() (in module nordic.nordic_dr.utils)": [[0, "NORDic.NORDic_DR.utils.update_misspecified"]], "update_network() (nordic.utils.utils_sim.bn_sim method)": [[0, "NORDic.UTILS.utils_sim.BN_SIM.update_network"]], "visualize_models() (in module nordic.nordic_ni.functions)": [[0, "NORDic.NORDic_NI.functions.visualize_models"]], "zip2df() (in module nordic.utils.utils_grn)": [[0, "NORDic.UTILS.utils_grn.zip2df"]]}}) \ No newline at end of file diff --git a/docs/modules.rst b/docs/modules.rst index 9fd5344..30fab21 100644 --- a/docs/modules.rst +++ b/docs/modules.rst @@ -4,4 +4,8 @@ NORDic .. toctree:: :maxdepth: 4 - NORDic \ No newline at end of file + NORDic_NI + NORDic_PMR + NORDic_DS + NORDic_DR + NORDic_UTILS \ No newline at end of file