Fix reassemble.nf: use find to discover _parts dirs dynamically
This commit is contained in:
@@ -1,62 +1,49 @@
|
|||||||
#!/usr/bin/env nextflow
|
#!/usr/bin/env nextflow
|
||||||
nextflow.enable.dsl=2
|
nextflow.enable.dsl=2
|
||||||
|
|
||||||
// One-time script to reassemble chunked files on the PVC
|
|
||||||
// Run once, then delete. Not part of the main pipeline.
|
|
||||||
|
|
||||||
params.base_dir = '/omic/eureka/digital-patients'
|
params.base_dir = '/omic/eureka/digital-patients'
|
||||||
params.outdir = '/omic/eureka/digital-patients'
|
|
||||||
|
|
||||||
process REASSEMBLE {
|
process REASSEMBLE {
|
||||||
container 'harbor.cluster.omic.ai/omic/digital-patients/corto:latest'
|
container 'harbor.cluster.omic.ai/omic/digital-patients/corto:latest'
|
||||||
|
memory '8 GB'
|
||||||
|
|
||||||
script:
|
script:
|
||||||
"""
|
"""
|
||||||
echo "=== Reassembling chunked files ==="
|
BASE="${params.base_dir}"
|
||||||
|
|
||||||
# hg38.fa (35 parts)
|
echo "=== Listing _parts directories ==="
|
||||||
if [ -d "${params.base_dir}/supporting-data/genome/hg38.fa_parts" ]; then
|
find \$BASE -name "*_parts" -type d 2>/dev/null
|
||||||
echo "Reassembling hg38.fa..."
|
|
||||||
cat ${params.base_dir}/supporting-data/genome/hg38.fa_parts/part_* > ${params.base_dir}/supporting-data/genome/hg38.fa
|
|
||||||
echo " Done: \$(du -h ${params.base_dir}/supporting-data/genome/hg38.fa | cut -f1)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# gnomad male (12 parts)
|
echo "=== Reassembling all chunked files ==="
|
||||||
if [ -d "${params.base_dir}/healthy/gnomad.genomes.v4.1.sites.male.txt_parts" ]; then
|
for parts_dir in \$(find \$BASE -name "*_parts" -type d 2>/dev/null); do
|
||||||
echo "Reassembling gnomad male..."
|
# Derive the output filename by stripping _parts suffix
|
||||||
cat ${params.base_dir}/healthy/gnomad.genomes.v4.1.sites.male.txt_parts/part_* > ${params.base_dir}/healthy/gnomad.genomes.v4.1.sites.male.txt
|
out_file=\$(echo "\$parts_dir" | sed 's/_parts\$//')
|
||||||
echo " Done: \$(du -h ${params.base_dir}/healthy/gnomad.genomes.v4.1.sites.male.txt | cut -f1)"
|
echo "Reassembling: \$parts_dir -> \$out_file"
|
||||||
fi
|
|
||||||
|
|
||||||
# gnomad female (12 parts)
|
# Count parts
|
||||||
if [ -d "${params.base_dir}/healthy/gnomad.genomes.v4.1.sites.female.txt_parts" ]; then
|
n_parts=\$(ls \$parts_dir/part_* 2>/dev/null | wc -l)
|
||||||
echo "Reassembling gnomad female..."
|
echo " Found \$n_parts parts"
|
||||||
cat ${params.base_dir}/healthy/gnomad.genomes.v4.1.sites.female.txt_parts/part_* > ${params.base_dir}/healthy/gnomad.genomes.v4.1.sites.female.txt
|
|
||||||
echo " Done: \$(du -h ${params.base_dir}/healthy/gnomad.genomes.v4.1.sites.female.txt | cut -f1)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# F5_SCHIZO male (7 parts)
|
if [ "\$n_parts" -gt 0 ]; then
|
||||||
if [ -d "${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.male.tsv.bgz_parts" ]; then
|
cat \$parts_dir/part_* > "\$out_file"
|
||||||
echo "Reassembling F5_SCHIZO male..."
|
out_size=\$(du -h "\$out_file" | cut -f1)
|
||||||
cat ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.male.tsv.bgz_parts/part_* > ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.male.tsv.bgz
|
echo " Created: \$out_file (\$out_size)"
|
||||||
echo " Done: \$(du -h ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.male.tsv.bgz | cut -f1)"
|
else
|
||||||
fi
|
echo " WARNING: No parts found in \$parts_dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# F5_SCHIZO female (7 parts)
|
echo "=== Verification ==="
|
||||||
if [ -d "${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.female.tsv.bgz_parts" ]; then
|
echo "Imputed files:"
|
||||||
echo "Reassembling F5_SCHIZO female..."
|
ls -lh \$BASE/imputed/*.bgz 2>/dev/null || echo " None"
|
||||||
cat ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.female.tsv.bgz_parts/part_* > ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.female.tsv.bgz
|
echo "Healthy files:"
|
||||||
echo " Done: \$(du -h ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.female.tsv.bgz | cut -f1)"
|
ls -lh \$BASE/healthy/*.txt 2>/dev/null || echo " None"
|
||||||
fi
|
echo "Genome files:"
|
||||||
|
ls -lh \$BASE/supporting-data/genome/hg38.* 2>/dev/null || echo " None"
|
||||||
|
echo "Small files:"
|
||||||
|
ls -lh \$BASE/MANE* \$BASE/regulon* \$BASE/LM22* \$BASE/ukbb* 2>/dev/null || echo " None"
|
||||||
|
|
||||||
# F5_SCHIZO both_sexes (7 parts)
|
echo "=== REASSEMBLY COMPLETE ==="
|
||||||
if [ -d "${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.both_sexes.tsv.bgz_parts" ]; then
|
|
||||||
echo "Reassembling F5_SCHIZO both_sexes..."
|
|
||||||
cat ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.both_sexes.tsv.bgz_parts/part_* > ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.both_sexes.tsv.bgz
|
|
||||||
echo " Done: \$(du -h ${params.base_dir}/imputed/F5_SCHIZO.gwas.imputed_v3.both_sexes.tsv.bgz | cut -f1)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "=== All reassembly complete ==="
|
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user