refactor(benchmark): consolidate generated artifacts under run/ directory
Release / create-release (push) Successful in 2m34s
Release / build-linux-x86_64 (push) Successful in 8m10s
Release / build-macos-arm64 (push) Failing after 1m19s

Restructure the benchmark pipeline to direct all simulated data, indices, statistics, and query outputs into a unified `run/` directory. Update Makefile targets, shell scripts, and Python utilities to resolve paths relative to this new base. Adjust documentation and dependency tracking to match the revised layout, and remove outdated temporary artifacts.
This commit is contained in:
Eric Coissac
2026-08-29 00:20:31 +02:00
parent 54e4600120
commit 26026288de
1058 changed files with 450 additions and 450 deletions
+25 -21
View File
@@ -13,6 +13,10 @@ STOP_WORDS = {'complete', 'chromosome', 'whole', 'sequence', 'genome',
'endosymbiont', 'of'}
STOP_PREFIXES = ('scaffold', 'contig', 'plasmid')
# All generated paths live under RUN/ (see Makefile) so the whole tree can be
# gitignored with a single entry.
RUN = 'run'
# Specimens used as read sources for the query benchmark (see
# DevDocMD/implementation/benchmark_query_testing.md): one common bacterium,
# one distant lineage (the only archaeon in SPECIES).
@@ -80,7 +84,7 @@ def main():
defn = first_definition(path)
sp, st = parse_organism(defn, gcf_id)
specimen = f'{sp}--{st}'
sim_dir = f'simulated_data/{sp}/{st}'
sim_dir = f'{RUN}/simulated_data/{sp}/{st}'
entries.append((specimen, sp, sim_dir, path))
if sp not in species_seen:
species_seen.append(sp)
@@ -91,13 +95,13 @@ def main():
for specimen, species, sim_dir, genome in entries:
reads = f'{sim_dir}/reads_R1.fastq.gz'
p_done = f'specimen_index_presence/{specimen}/index.done'
p_stats = f'stats/indexing_presence/{specimen}.stats'
c_done = f'specimen_index_count/{specimen}/index.done'
c_stats = f'stats/indexing_count/{specimen}.stats'
ref = f'reference_index/{specimen}.npz'
vp = f'stats/verify_presence/{specimen}.stats'
vc = f'stats/verify_count/{specimen}.stats'
p_done = f'{RUN}/specimen_index_presence/{specimen}/index.done'
p_stats = f'{RUN}/stats/indexing_presence/{specimen}.stats'
c_done = f'{RUN}/specimen_index_count/{specimen}/index.done'
c_stats = f'{RUN}/stats/indexing_count/{specimen}.stats'
ref = f'{RUN}/reference_index/{specimen}.npz'
vp = f'{RUN}/stats/verify_presence/{specimen}.stats'
vc = f'{RUN}/stats/verify_count/{specimen}.stats'
print()
print(f'# {specimen}')
@@ -110,13 +114,13 @@ def main():
print()
for sp in species_seen:
sp_done = f'specific_index_presence/{sp}/index.done'
sp_stats = f'stats/specific_kmer_presence/{sp}.stats'
sc_done = f'specific_index_count/{sp}/index.done'
sc_stats = f'stats/specific_kmer_count/{sp}.stats'
sp_done = f'{RUN}/specific_index_presence/{sp}/index.done'
sp_stats = f'{RUN}/stats/specific_kmer_presence/{sp}.stats'
sc_done = f'{RUN}/specific_index_count/{sp}/index.done'
sc_stats = f'{RUN}/stats/specific_kmer_count/{sp}.stats'
print(f'# {sp}')
print(f'{sp_done} {sp_stats}: global_index_presence/index.done')
print(f'{sc_done} {sc_stats}: global_index_count/index.done')
print(f'{sp_done} {sp_stats}: {RUN}/global_index_presence/index.done')
print(f'{sc_done} {sc_stats}: {RUN}/global_index_count/index.done')
print()
print('QUERY_SPECIMENS :=', ' '.join(QUERY_SPECIMENS))
@@ -126,17 +130,17 @@ def main():
_, species, sim_dir, genome = by_specimen[specimen]
query_dir = sim_dir.replace('simulated_data/', 'query_data/', 1)
reads = f'{query_dir}/reads_R1.fastq.gz'
dense_out = f'query_dense/{specimen}.fasta.gz'
dense_stat = f'stats/query_dense/{specimen}.stats'
sparse_out = f'query_sparse/{specimen}.fasta.gz'
sparse_stat = f'stats/query_sparse/{specimen}.stats'
vq_stat = f'stats/verify_query/{specimen}.stats'
dense_out = f'{RUN}/query_presence_dense/{specimen}.fasta.gz'
dense_stat = f'{RUN}/stats/query_presence_dense/{specimen}.stats'
sparse_out = f'{RUN}/query_presence_sparse/{specimen}.fasta.gz'
sparse_stat = f'{RUN}/stats/query_presence_sparse/{specimen}.stats'
vq_stat = f'{RUN}/stats/verify_query/{specimen}.stats'
print()
print(f'# query: {specimen}')
print(f'{reads}: {genome}')
print(f'{dense_out} {dense_stat}: {reads} global_index_presence/index.done')
print(f'{sparse_out} {sparse_stat}: {reads} global_index_presence_sparse/index.done')
print(f'{dense_out} {dense_stat}: {reads} {RUN}/global_index_presence_dense/index.done')
print(f'{sparse_out} {sparse_stat}: {reads} {RUN}/global_index_presence/index.done')
print(f'{vq_stat}: {dense_out} {sparse_out}')