PennLINC / aslprep

Preprocessing of arterial spin labeling (ASL) data
https://aslprep.readthedocs.io
Other
41 stars 15 forks source link

Re-enable multi-PLD PASL support #272

Open tsalo opened 1 year ago

tsalo commented 1 year ago

Summary

This stems from #250. Basically the same as #250, but for PASL schemes.

tsalo commented 1 year ago

We don't expect a lot of multi-PLD PASL data, so I've labeled this as low priority.

dkp commented 11 months ago

We routinely collect multi-PLD PASL sequences and we are very disappointed that this has been labeled low priority ; ( We would love to be able to use ASLprep.

tsalo commented 11 months ago

I am going to start working on #298 soon, after which supporting multi-PLD PASL data should be straightforward. That said, I don't have access to any multi-PLD PASL data to test on, and I don't know of any public datasets with that kind of data. Do you have any data you can share for testing purposes?

dkp commented 11 months ago

Thanks so much: Here's a dataset converted to BIDS with multi-PLD ASL data. I'm happy to share the DICOMS if you need, but this passes bids validation with only a few warnings, so it should be fine.

wget https://osf.io/p743n/download -O basil2_tutorial_data.zip

tsalo commented 11 months ago

Thanks! Switching to the general kinetic model recommended by Woods et al. (preprint) will be my next big project for ASLPrep, so hopefully I'll be able to get it working at the beginning of the new year.

I took a quick look at the data you linked, and there seem to be a few problems:

  1. It doesn't look like the dataset includes aslcontext files for the two ASL scans. Since the M0 scans are separate, I assume they're all either C-T or T-C pairs. Do you know which order they're in?
  2. The field maps don't have IntendedFor or B0* fields. Can I assume they apply to both ASL scans?
  3. I believe BolusCutOffDelayTime should be a list of two values for Q2TIPS scans (the first and last saturation pulses).
  4. Are you able to add the BackgroundSuppressionPulseTime and BackgroundSuppressionNumberPulses metadata fields? This will help me estimate labeling efficiency (and maybe total background suppression inversion efficiency- I'm not sure).
dkp commented 11 months ago

Hi and thank you!

1) I'm attaching the aslcontext file for the single-PLD scan which includes the M0. aslcontext.tsv.zip

Here are brief descriptions of each sequence from the tutorial: https://drive.google.com/drive/folders/1KDlbLvxOeCNM0XT12fQpi5dvRe_Tk0t9.

2 Yes, the field maps could be used for both ASL scans.

The other fields aren't in the protocol, but I'll try to dig them up from the DICOM metadata for you.

dkp commented 11 months ago

DicomInfo.txt.zip Here is the additional info I can get from the Dicom headers for the single and multi-pld runs.
There are results for 4 commands here: two for each sequence. The first command for each sequence gets hidden metadata using the --csa-asl flag. The second command for each file just gets everything. I grepped for relevant terms you requested, but didn't find them ; (. Perhaps the data will help anyhow, so I'm including it. These particular datasets were early experiments done some time ago, so I expect they have been purged from the scanner and no one remembers the details you requested. Sorry. Let me know if you have suggestions for how to retrieve this data. Our scanner software is rather old, unfortunately.