-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Hi,
I'm trying to use LongiSeg with my dataset containing only 1 modality: T2w for multiples timepoints.
I have 2 questions / issues.
Firstly, does your implementation support non segmented data for context support ? Like, I have 1 timepoint, can I provide the previous timepoint without giving the corresponding previous segmentation ? I saw in a previous issue, you said you were supposed to do it ?
Secondly, here is my dataset structures:
-> dataset.json patientsTr.json
-> imagesTr:
Borgne_ses07_bias_0000.nii.gz Borgne_ses08_bias_0000.nii.gz
-> imagesTs:
-> labelsTr:
Borgne_ses07_bias.nii.gz Borgne_ses08_bias.nii.gz
My dataset.json:
{
"channel_names": {
"0": "T2W"
},
"labels": {
"background": 0,
"CSF": 1,
"WM": 2,
"GM": 3,
"Ventricle": 4
},
"numTraining": 2,
"file_ending": ".nii.gz",
"dataset_name": "Dataset001_Test"
}
And my patientsTr.json:
{
"Borgne": [
"Borgne_ses07_bias_0000.nii.gz",
"Borgne_ses08_bias_0000.nii.gz"
]
}
When I run the command LongiSeg_plan_and_preprocess -d 1 --verify_dataset_integrity, I have the following error:
Fingerprint extraction...
Dataset001_Test
Using <class 'longiseg.imageio.simpleitk_reader_writer.SimpleITKIOWithReorient'> as reader/writer
####################
verify_dataset_integrity Done.
If you didn't see any error messages then your dataset is most likely OK!
####################
Using <class 'longiseg.imageio.simpleitk_reader_writer.SimpleITKIOWithReorient'> as reader/writer
100%|█████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:04<00:00, 4.21s/it]
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/lbaptiste/miniconda3/envs/longiseg/lib/python3.10/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "/home/lbaptiste/miniconda3/envs/longiseg/lib/python3.10/multiprocessing/pool.py", line 51, in starmapstar
return list(itertools.starmap(args[0], args[1]))
File "/scratch/lbaptiste/Babofet_T2w/LongiSeg/longiseg/experiment_planning/dataset_fingerprint/fingerprint_extractor_longi.py", line 30, in analyze_patient
image_files = dataset[s]['images']
KeyError: 'Borgne_ses07_bias_0000.nii.gz'
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/lbaptiste/miniconda3/envs/longiseg/bin/LongiSeg_plan_and_preprocess", line 8, in <module>
sys.exit(plan_and_preprocess_longi_entry())
File "/scratch/lbaptiste/Babofet_T2w/LongiSeg/longiseg/experiment_planning/plan_and_preprocess_longi_entrypoints.py", line 180, in plan_and_preprocess_longi_entry
extract_fingerprints(args.d, args.fpe, args.npfp, args.verify_dataset_integrity, args.clean, args.verbose)
File "/scratch/lbaptiste/Babofet_T2w/LongiSeg/longiseg/experiment_planning/plan_and_preprocess_api.py", line 47, in extract_fingerprints
extract_fingerprint_dataset(d, fingerprint_extractor_class, num_processes, check_dataset_integrity, clean,
File "/scratch/lbaptiste/Babofet_T2w/LongiSeg/longiseg/experiment_planning/plan_and_preprocess_api.py", line 33, in extract_fingerprint_dataset
return fpe.run(overwrite_existing=clean)
File "/scratch/lbaptiste/Babofet_T2w/LongiSeg/longiseg/experiment_planning/dataset_fingerprint/fingerprint_extractor_longi.py", line 125, in run
results = [i.get()[0] for i in r]
File "/scratch/lbaptiste/Babofet_T2w/LongiSeg/longiseg/experiment_planning/dataset_fingerprint/fingerprint_extractor_longi.py", line 125, in <listcomp>
results = [i.get()[0] for i in r]
File "/home/lbaptiste/miniconda3/envs/longiseg/lib/python3.10/multiprocessing/pool.py", line 774, in get
raise self._value
KeyError: 'Borgne_ses07_bias_0000.nii.gz'
I tried with "Borgne_ses07" (and also Borgne_ses08) in the patientsTr.json file, but got the same error.
My dataformat is well working with the basic UNet implementation: same filename as shown here for imagesTr and labelsTr, same dataset.json....
Thank you for your reply :)