diff --git a/workflow/config/main.yaml b/workflow/config/main.yaml index 5c23bad..e9cb950 100644 --- a/workflow/config/main.yaml +++ b/workflow/config/main.yaml @@ -16,6 +16,8 @@ fast_min_q: 8 # empty string or 0 to disable pod5_dataset: "nomiss_96BC_P2I_SUP_2026" pod5_dataset_size : 293 pod5_stride : 12 # Use 1 in x pod5 files from the ONT NO-MISS dataset to reduce dataset size / compute requirements +trap_dataset_size: 1717 +trap_pod5_stride: 72 trap_read_limit : '-n 500000' # custom ML diff --git a/workflow/rules/baseline_pipeline.smk b/workflow/rules/baseline_pipeline.smk index 1e59f4b..b095776 100644 --- a/workflow/rules/baseline_pipeline.smk +++ b/workflow/rules/baseline_pipeline.smk @@ -32,33 +32,50 @@ def get_batch_range(wildcards): if wildcards.dataset == 'nomiss': return range(1,config['pod5_dataset_size']+1,config['pod5_stride']) if wildcards.dataset == 'trap': - return [0] + return [f'batch{x}' for x in range(1,config['trap_dataset_size']+1,config['trap_pod5_stride'])] def get_read_limit(wildcards): if wildcards.dataset == 'trap': return config["trap_read_limit"] return '' +wildcard_constraints: + batch=r"(batch)?\d+", + model=r'hac|fast' + rule download_nomiss_pod5: output: '../data/raw_pod5/nomiss/PBK98658_853a956f_57f83f46_{batch}.pod5' threads: 4 - wildcard_constraints: - batch=r"\d+" + shell: """ aws s3 cp --no-sign-request s3://ont-open-data/nomiss_96BC_P2I_SUP_2026/raw/pod5/PBK98658_853a956f_57f83f46_{wildcards.batch}.pod5 {output} """ -rule download_trap_pod5: +rule download_trap_tar: output: - '../data/raw_pod5/trap/ATCC_25922_202309_0.pod5' + temp(directory('../data/raw_pod5/trap/all')) threads: 32 - wildcard_constraints: - batch=r'\d+' + params: + tmp='/tmp/trap_all.tar' shell: """ - curl -L --http1.1 -A "Mozilla/5.0" "https://api.figshare.com/v2/file/download/45408628" -o {output} + curl -L --http1.1 -A "Mozilla/5.0" "https://api.figshare.com/v2/file/download/45408628" -o {params.tmp} + tar xf --wildcards -C {output} {params.tmp} + rm {params.tmp} + """ +rule extract_trap_pod5: + input: + '../data/raw_pod5/trap/all' + output: + '../data/raw_pod5/trap/ATCC_25922_202309_{batch}.pod5' + threads: 1 + params: + input_pod5='{input[0]}/ATCC_25922__202309/ATCC_25922__202309_{batch}.pod5' + shell: + """ + mv {params.input_pod5} {output} """ rule basecall_pod5: input: @@ -75,9 +92,6 @@ rule basecall_pod5: min_qscore=get_qscore, dorado_model=get_model_name, n_reads=get_read_limit - wildcard_constraints: - batch=r"\d+", - model="hac|fast" shell: """ dorado basecaller --models-directory {config[dorado_model_dir]} {params.n_reads} --emit-fastq {params.benchmarking} {params.min_qscore} {params.dorado_model} {input.pod5} > {output}