refactor(benchmark): consolidate generated artifacts under run/ directory
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:
+25
-21
@@ -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}')
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user