t-neumann / slamdunk

Streamlining SLAM-seq analysis with ultra-high sensitivity
GNU Affero General Public License v3.0
38 stars 23 forks source link

samplesheet #158

Closed mmaslon closed 4 months ago

mmaslon commented 4 months ago

Hi there,

I am trying to execute slamdunk with samplesheet, and I am running into a problem - the reads are not used correctly as an input.

If I run the pipeline with the name of the file it works fine:

slamdunk all -r $reference -b $bed -o $output_dir -5 12 -n 100 -m -mv 0.2 -rl 85 --skip-sam /bla/slurm_jobdir/slamseq_data/trimmed_reads/Unknown_A1BMK240408-BY775-ZX01-010001-01_good_1_trimmed.fq.gz

however if I try to use the samplesheet instead:

slamdunk all -r $reference -b $bed -o $output_dir -5 12 -n 100 -m -mv 0.2 -rl 85 --skip-sam $files

where

$files="/bla/files_test.txt"

gdzie files_test.txt, to:

/net/ascratch/people/plgmmaslon/slurm_jobdir/slamseq_data/trimmed_reads/Unknown_A1BMK240408-BY775-ZX01-010001-01_good_1_trimmed.fq.gz,rep1,LKO,0

I get the following error:

miniconda3/23.5.2-0 unloaded. Now please run command: eval "$(conda shell.bash hook)" to set conda env miniconda3/23.5.2-0 loaded. slamdunk all Running slamDunk map for 1 files (1 threads) Traceback (most recent call last): File "/bla/.conda/envs/slamdunk/bin/slamdunk", line 10, in sys.exit(run()) ^^^^^ File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/slamdunk.py", line 520, in run runAll(args) File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/slamdunk.py", line 245, in runAll runMap(tid, bam, referenceFile, n, args.trim5, args.maxPolyA, args.quantseq, args.endtoend, args.topn, sampleInfo, dunkPath, args.skipSAM) File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/slamdunk.py", line 149, in runMap mapper.Map(inputBAM, referenceFile, outputSAM, getLogFile(outputLOG), quantseqMapping, endtoendMapping, threads=threads, trim5p=trim5p, maxPolyA=maxPolyA, topn=topn, sampleId=tid, sampleName=sampleName, sampleType=sampleType, sampleTime=sampleTime, printOnly=printOnly, verbose=verbos$ File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/dunks/mapper.py", line 107, in Map run("ngm -b -r " + inputReference + " -q " + inputBAM + " -t " + str(threads) + " " + parameter + " -o " + outputSAM, log, verbose=verbose, dry=printOnly) File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/utils/misc.py", line 196, in run raise RuntimeError("Error while executing command: \"" + cmd + "\"") RuntimeError: Error while executing command: "ngm -b -r /blas/genome/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz -q /bla/slamseq_data/files_test.txt -t 1 --no-progress --slam-seq 2 -5 12 --max-polya 4 -l --rg-id 0 --rg-$

Can I please ask what the issue might be?

t-neumann commented 4 months ago

Could you try creating a tab-separated file and naming it with *.tsv suffix and rerun it instead of the files_test.txt file?

mmaslon commented 4 months ago

I am still getting an error, though a different one:

the command is:

files="/bla/files_test.tsv" slamdunk all -r $reference -b $bed -o $output_dir -5 12 -n 100 -m -mv 0.2 -rl 85 --skip-sam $files

the files_test.tsv is:

/bla/slurm_jobdir/slamseq_data/trimmed_reads/Unknown_A1BMK240408-BY775-ZX01-010001-01_good_1_trimmed.fq.gz rep1 LKO 0

slamdunk all Running slamDunk map for 1 files (1 threads) . Running slamDunk filter for 1 files (1 threads) Traceback (most recent call last): File "/bla.conda/envs/slamdunk/bin/slamdunk", line 10, in sys.exit(run()) ^^^^^ File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/slamdunk.py", line 520, in run runAll(args) File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/slamdunk.py", line 274, in runAll results = Parallel(n_jobs=n, verbose=verbose)(delayed(runFilter)(tid, dunkbufferIn[tid], bed, args.mq, args.identity, args.nm, dunkPath) for tid in range(0, len(samples))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/joblib/parallel.py", line 1918, in call return output if self.return_generator else list(output) ^^^^^^^^^^^^ File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/joblib/parallel.py", line 1847, in _get_sequential_output res = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/slamdunk.py", line 170, in runFilter filter.Filter(bam, outputBAM, getLogFile(outputLOG), bed, mq, minIdentity, maxNM, printOnly, verbose) File "/bla/.conda/envs/slamdunk/lib/python3.12/site-packages/slamdunk/dunks/filter.py", line 225, in Filter infile = pysam.AlignmentFile(inputBAM, "rb") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "pysam/libcalignmentfile.pyx", line 751, in pysam.libcalignmentfile.AlignmentFile.cinit File "pysam/libcalignmentfile.pyx", line 961, in pysam.libcalignmentfile.AlignmentFile._open File "pysam/libchtslib.pyx", line 361, in pysam.libchtslib.HTSFile.check_truncation OSError: no BGZF EOF marker; file may be truncated

t-neumann commented 4 months ago

Are you sure you have enough memory / storage space? That reads somehow like the files is corrupt and writing to it was prematurely aborted

mmaslon commented 4 months ago

Thank you for your quick response. I tested the script one by one (i.e. map, snp etc.), and it turns out that counting step does not "like" fa.gz as a reference - needs to be gzipped or bgzipped. This sorted my issue.

Thank you for your help.

Magda