Reference
Data & Inputs
Check that GET can represent your network, then convert external identifiers into the integer node indices the engine uses.
Is GET Suitable for This Network?
| GET currently represents | Implication |
|---|---|
| A fixed number of nodes | Evolution changes edges, not the node set. |
| Undirected edges | A regulatory edge A → B cannot retain its direction. |
| Integer edge multiplicities | Continuous weights, signs, and confidence scores need an explicit conversion. |
| No node or edge attributes | Gene type, pathway, condition, and other metadata must live in your objective or a side table. |
| Dense graph storage | Memory grows quadratically with node count; benchmark a representative small run before committing to a large network. |
Edge-file Format
Each file is comma-separated, contains one integer start,end,weight edge per line,
and includes exactly one node-count header. Lines beginning with # are comments.
# nodes = 5
# source IDs are recorded in node_ids.csv
1,2,1
2,4,1
4,5,1
- Pass
min_node_index=1for this 1-based example; use 0 for 0-based data. - Self-loops, non-integers, out-of-range nodes, negative weights, and weights above the configured cap are errors.
- Undirected duplicates such as
2,4and4,2collapse; the last weight wins with a warning. - A zero-weight row adds no edge and produces a warning.
- The header is required because isolated nodes cannot be inferred from edge rows.
evolver.set_base_graph_from_file("base_graph.csv", min_node_index=1)
Choose How the Base Graph Is Loaded
For the usual TOML route, put the path directly under an edge-edit genome. Relative paths resolve from the TOML file's directory, not from the shell's working directory:
[genome]
type = "edge_edit"
gene_length = 256
base_graph = "base_graph.csv"
This config key reads 0-indexed nodes and requires the file's # nodes = N value to
equal network_size. Use set_base_graph_from_file instead for a 1-indexed
file, a dynamically chosen file, or a configuration assembled as Python objects. Use one loader
per evolver; do not apply both to the same run.
Preserve Biological Identifiers
GET returns the numbering supplied to the first graph loader, but it does not store gene or protein labels. Create and archive a one-to-one mapping before the run:
node_id,biological_id
1,TP53
2,MDM2
3,CDKN1A
4,ATM
5,BAX
- Normalize identifiers to one namespace and record the source/database version.
- Assign each retained identifier one integer; keep isolated nodes in the mapping and node count.
- Build the edge file using those integers and archive both files together.
- Map
result.best_edgesback through the same table; never infer labels from row order later.
Reference Graph Folders
The struct_match objective reads every usable reference graph from
reference_folder. Each graph uses the same edge-file format and its own
# nodes = N header. The folder must exist and contain at least one usable graph. Archive
the exact folder contents and identifier conventions; the TOML path alone does not preserve them.
Provenance Checklist
- GET tag and resolved commit, plus dependency/environment details
- Run code and complete configuration
- Master seed, replicate index, and any custom-objective seed
- Base graph, reference folder, identifier map, source/version, and licenses
- Custom objective code and scientific reporting/validation method
Continue to Configuration Reference for parameter details, Python with TOML for the normal config-file route, or Python config objects for explicit loaders.