Output Layout
Iduna keeps ThorAxe's own output layout untouched and writes package metadata around it. By default, workdir is a directory named after the input ID.
<workdir>/
target.json
result.json
logs/
thoraxe/
sequences/
uniprot/
ensembl_proteins/
thoraxe_input/
Ensembl/
thoraxe/
path_table.csv
s_exon_table.csv
msa/
thoraxe_msa/
seeds/
best_seed.csv
expansion/ # absent when no_expansion=true / --no-expansion
<gene>/<transcript>/
seeds/
dbs/
hmm/
logs/
expanded_msa/
centroid_msa/ # optional, written only with centroids=true / --centroids
validation/
stats.csv
query_vs_uniprot_alignment.txtThe output layout is part of the API. overwrite=true rebuilds package-owned subdirectories, but Iduna does not delete files outside the selected work directory.
After the work directory is created, Iduna always attempts to write result.json. Successful runs keep the returned IdunaResult summary there. Failed runs still throw the original exception, but leave a machine-readable result.json with status: "error", failed_stage, any available partial target metadata, accumulated warnings, and exception details. Timeout failures from logged ThorAxe commands also include the command and stdout/stderr log paths.
When thoraxe_input_dir is supplied, that source bundle is treated as read-only and copied into thoraxe_input/; the copied layout is then preserved like a fresh transcript_query result.
MSA paths are also available from the returned IdunaResult:
result.thoraxe_msa.baseline_stockholm
result.thoraxe_msa.baseline_fasta
result.thoraxe_msa.best_seed.stockholm_path
result.thoraxe_msa.best_seed.fasta_path
# Full expansion runs only:
result.expansion.match_stockholm
result.expansion.a3m_pathresult.workdir is stored as an absolute path. Artifact paths inside workdir are stored relative to it, so use joinpath(result.workdir, path) to open them directly. Paths outside workdir remain unchanged.
When no_expansion=true or --no-expansion is used, Iduna stops after the ThorAxe MSA stage. result.expansion === nothing, result.json contains "expansion": null, and no expansion/ directory is written. Validation still writes seed statistics to validation/stats.csv, with expanded-MSA fields left missing.
expanded_msa/ is the full MMseqs2 cluster-expanded MSA and remains the main Iduna result. When centroids=true or --centroids is used, Iduna also writes centroid_msa/ with the MSA built from centroid/consensus hits before cluster expansion. This side output reuses the same MMseqs2 search result, does not run a second search, and does not change validation or result.json. Its files are <transcript>_centroids_full.sto, <transcript>_centroids_matchonly.sto, <transcript>_centroids.a3m, and <transcript>_centroid_hits_raw.fasta.