done, there is now a separate link in the git repro. It holds the qsiprep output, and also the freesurfer output. I did not include the qsiprep work directory…let me know if you need that too…
Thanks again!
I am currently running QSIRecon:unstable on your QSIPrep derivatives. The anatomical data collection is working, though I did discover a bug I introduced in a recent PR that affects a later step. I can’t seem to replicate your issue.
Interesting! Can you perhaps send me the exact cmds you’re running? Perhaps I’m missing something in my setup/call.
Thanks again for all of your help!
Certainly. Here is the script I submitted to SLURM:
#!/bin/sh
apptainer run --no-mount hostfs --cleanenv --containall \
-B /cbica/home/salot \
-B /cbica/home/salot/qsirecon-debug/qsirecon/qsirecon:/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon \
/cbica/home/salot/apptainer/qsirecon_unstable.sif \
/cbica/home/salot/qsirecon-debug/derivatives/qsiprep \
/cbica/home/salot/qsirecon-debug/derivatives/qsirecon \
participant \
--fs-license-file /cbica/home/salot/tokens/freesurfer_license.txt \
--nprocs 2 \
--participant-label sub-RM \
-w /cbica/home/salot/qsirecon-debug/work \
--recon-spec hbcd_scalar_maps \
--fs-subjects-dir /cbica/home/salot/qsirecon-debug/derivatives/freesurfer \
--output-resolution 1.7 \
--debug all \
-vvv
By the way, the ODF plotting step fails with that command, so I’d recommend adding --writable-tmpfs
to the apptainer/Singularity call.
Ok – I’ve tried it with your exact call, which is essentially the same as what I’ve done before. No change in behavior. In one test, I accidentally forgot to have the FreeSurfer output in the right place, and that did give me a very different and logical error (that it could not find the freesurfer outputs). So, I do get different errors depending on how I run. I guess this points to either a.) my apptainer env is not set correctly or b.) I somehow have set up my apptainer image wrong?
Here is the exact code I’m running (also via slurm):
bidsDir=/gpfs/nvme1/0/genr/GenR_MRI/bids.upgrade
fsLicense=${bidsDir}/code/license.txt
work=/gpfs/nvme1/0/genr/software/qsiprep/work
subjdir=/gpfs/nvme1/0/genr/software/qsiprep/freesurfer
export TEMPLATEFLOW_HOME=/gpfs/nvme1/0/genr/software/qsiprep/template_flow
apptainer run --no-mount hostfs --cleanenv --containall --writable-tmpfs \
-B ${bidsDir},${work},${subjdir} \
-B ${TEMPLATEFLOW_HOME}:${TEMPLATEFLOW_HOME} \
—env "TEMPLATEFLOW_HOME=$TEMPLATEFLOW_HOME" qsirecon-1.1.0-unstable.sif \
${bidsDir}/derivatives/dwi/qsiprep ${bidsDir}/derivatives/dwi/qsirecon participant \
—fs-license-file ${fsLicense} --nprocs 190 --participant-label sub-RM -w ${work} \
—recon-spec hbcd_scalar_maps --fs-subjects-dir ${subjdir} --output-resolution 1.7 \
—input-type qsiprep --notrack --debug all -vvv --session-id ses-F17UPOS
This is the command I ran to create the image:
apptainer build --disable-cache qsirecon-1.1.0-unstable.sif docker://pennlinc/qsirecon:unstable
When I run a shell in the image, I see this:
>>> qsirecon._version.version
'1.1.1.dev7+g7e2d198.d20250714'
>>>
My apologies, I must be missing something really simple here. Thanks so much for your time and help, I REALLY appreciate it. Do let me know if you can think of any other tests I should try.
OK – it is working now. I tested on your test data, and that worked. I’m not entirely sure if this is the issue, but it seems I needed to have my qsiprep output and freesurfer output in the same derivatives location (for testing and logistical reasons, I had them in different locations)… When I made sure derivatives/qsiprep and derivatives/freesurfer were present, things worked…
So sorry for all of the fuss here, I had the idea I could keep derivatives in different, non-standard locations.