Skip to content

Commit

Permalink
not quite there
Browse files Browse the repository at this point in the history
  • Loading branch information
bendhouseart committed Dec 6, 2023
1 parent 2244181 commit 8beba94
Show file tree
Hide file tree
Showing 2 changed files with 209 additions and 17 deletions.
140 changes: 124 additions & 16 deletions scripts/matlab_conversions.m
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
% note that usually we use the *parameter.txt file facilitating the metadata
% information but here it is done fully for completeness
%
% cyril pernet - may 2022
% cyril pernet - Nov 2023

%% set paths where the repo is
%source = 'D:\BIDS\ONP\OpenNeuroPET-Phantoms\sourcedata\';
%destination = 'D:\BIDS\ONP\OpenNeuroPET-Phantoms\';
%% set paths where the repo is to bypass the path/env parts below
% source = 'D:\BIDS\ONP\OpenNeuroPET-Phantoms\sourcedata\';
% destination = 'D:\BIDS\ONP\OpenNeuroPET-Phantoms\';

%% get the path to this script
matlab_conversions_script_path = mfilename('fullpath');
Expand All @@ -20,7 +20,9 @@
source = strjoin({phantoms_folder_path, 'sourcedata'}, filesep);
destination = strjoin({phantoms_folder_path, 'matlab'}, filesep);

mkdir(destination)
if ~exist(destination,'dir')
mkdir(destination)
end
copyfile(strjoin({phantoms_folder_path, 'dataset_description.json'}, filesep), strjoin({destination, 'dataset_description.json'}, filesep))

%% sets the environment variable so that matlab can reach dcm2niix on posix
Expand Down Expand Up @@ -211,10 +213,9 @@
meta.ReconFilterType = "none";
meta.ReconFilterSize = 1;

%dcm2niix4pet(fullfile(source,['PhilipsGeminiPETMR-Unimedizin' filesep 'reqCTAC']),meta,...
% 'o',fullfile(destination,['sub-PhilipsGeminiUnimedizinMainz' filesep 'pet']));


dcm2niix4pet(fullfile(source,['PhilipsGeminiPETMR-Unimedizin' filesep 'reqCTAC']),meta,...
'o',fullfile(destination,['sub-PhilipsGeminiUnimedizinMainz' filesep 'pet']));

% meta.AttenuationCorrection = 'NONE';
% meta.ScatterCorrectionMethod = 'NONE';%GEG
% meta.ReconstructionMethod = '3D-RAMLA';%GEG
Expand Down Expand Up @@ -436,13 +437,14 @@
end

try
meta.AttenuationCorrection = 'measured' ; % some how the field is not there
meta.ReconMethodParameterLabels = ["none", "none"];
meta.ReconMethodParameterUnits = ["none", "none"];
meta.ReconMethodParameterValues = [0, 0];
meta.FrameDuration = 98000
dcm2niix4pet(fullfile(source,['GeneralElectricAdvance-NIMH' filesep ...
'long_trans']),meta,'o',fullfile(destination,['sub-GeneralElectricAdvanceLongNIMH' filesep 'pet']));
meta.AttenuationCorrection = 'measured' ; % some how the field is not there
meta.ReconMethodParameterLabels = ["none", "none"];
meta.ReconMethodParameterUnits = ["none", "none"];
meta.ReconMethodParameterValues = [0, 0];
meta.FrameDuration = 98000;

dcm2niix4pet(fullfile(source,['GeneralElectricAdvance-NIMH' filesep ...
'long_trans']),meta,'o',fullfile(destination,['sub-GeneralElectricAdvanceLongNIMH' filesep 'pet']));
catch
disp(message);
end
Expand All @@ -453,3 +455,109 @@
% dcm2niix4pet(fullfile(source,'CPSInnovationsHRRT-NIMH'),meta,...
% 'o',fullfile(destination,['sub-CPSInnovationsHRRT-NIMH' filesep 'pet']));


%% Johns Hopkins University
% ----------------------------------------------

% Siemens HRRT
% ------------
try
clear meta
meta.TimeZero = 'ScanStart';
meta.Manufacturer = 'Siemens';
meta.ManufacturersModelName = 'HRRT';
meta.InstitutionName = 'Johns Hopkins University, USA';
meta.BodyPart = 'Phantom';
meta.Units = 'Bq/mL';
meta.TracerName = 'FDG';
meta.TracerRadionuclide = 'F18';
meta.InjectedRadioactivity = 81.24; % Mbq
meta.SpecificRadioactivity = 1.3019e+04; % ~ 81240000 Bq/ 6240 g
meta.ModeOfAdministration = 'infusion';
meta.AcquisitionMode = 'list mode';
meta.ImageDecayCorrected = true; % when passing this as string it fails validation
meta.ImageDecayCorrectionTime = 0;
meta.ReconFilterType = 'none';
meta.ReconFilterSize = 0;
meta.AttenuationCorrection = 'transmission scan with a 137Cs point source';
% meta.FrameDuration = 1200; % not needed, encoded in ecat even for 4D images
% meta.FrameTimesStart = 0;

out = ecat2nii(fullfile(source,['SiemensHRRT-JHU' filesep 'Hoffman.v']),...
meta,'gz',true,'FileListOut',fullfile(destination,['sub-SiemensHRRTJHU' filesep 'pet' filesep 'sub-SiemensHRRTJHU.nii']));

catch
disp(message);
end


% General Electric Medical Systems Advance
% -----------------------------------------
try
clear meta
meta.TimeZero = 'ScanStart';
meta.Manufacturer = 'GE MEDICAL SYSTEMS';
meta.ManufacturersModelName = 'GE Advance';
meta.InstitutionName = 'Johns Hopkins University, USA';
meta.BodyPart = 'Phantom';
meta.Units = 'Bq/mL';
meta.TracerName = 'FDG';
meta.TracerRadionuclide = 'F18';
meta.InjectedRadioactivity = 75.8500; % Mbq
meta.SpecificRadioactivity = 418713.8; % ~ 75850000 Bq/ 6240 g
meta.ModeOfAdministration = 'infusion';
meta.FrameTimesStart = 0;
meta.AcquisitionMode = 'list mode';
meta.ImageDecayCorrected = 'true';
meta.ImageDecayCorrectionTime = 0;
meta.ScatterCorrectionMethod = 'Gaussian Fit';
meta.FrameDuration = 98000;
meta.FrameTimesStart = 0;
meta.ReconMethodName = 'filtered backprojection with ramp filter';
meta.ReconMethodParameterLabels = ["none"];
meta.ReconParameterUnits = ["none"];
meta.ReconMethodParameterValues = [0];
meta.ReconFilterType = "none";
meta.ReconFilterSize = 1;
meta.AttenuationCorrection = '2D-acquired transmission scan with a 68Ge rod source';

dcm2niix4pet(fullfile(source,'GeneralElectricAdvance-JHU'),...
meta,'o',fullfile(destination,['sub-GeneralElectricAdvanceJHU' filesep 'pet']));

catch
disp(message);
end

%% Chesapeake Medical Imaging
% ----------------------------------------------

% Canon Cartesion Prime PET-CT
% ----------------------

try
clear meta
meta.TimeZero = 'ScanStart';
meta.Manufacturer = 'Canon Medical Systems';
meta.ManufacturersModelName = 'Cartesion Prime';
meta.InstitutionName = 'Chesapeake Medical Imaging, USA';
meta.BodyPart = 'Phantom';
meta.Units = 'Bq/mL';
meta.TracerName = 'FDG';
meta.TracerRadionuclide = 'F18';
meta.InjectedRadioactivity = 32.19; % Mbq
meta.SpecificRadioactivity = 32190000/6240;
meta.ModeOfAdministration = 'infusion';
meta.FrameTimesStart = 0;
meta.AcquisitionMode = 'list mode';
meta.ImageDecayCorrected = 'true';
meta.ImageDecayCorrectionTime = 0;
meta.ReconMethodParameterValues = [24 5];
meta.ReconFilterType = "Gaussian";
meta.ReconFilterSize = 2;

dcm2niix4pet(fullfile(source,'CanonCartesionPrimePETCT-NIA'),...
meta,'o',fullfile(destination,['sub-CanonCartesionPrimeNIA' filesep 'pet']));

catch
disp(message);
end
86 changes: 85 additions & 1 deletion scripts/python_conversions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -389,10 +389,94 @@ ImageDecayCorrected='false' \
AttenuationCorrection='measured' \
AcquisitionMode='list mode' \
ImageDecayCorrectionTime="0" \
FrameDuration=[98000] \
FrameDuration="[98000]"\
ScatterCorrectionMethod="Gaussian Fit" \
ScanStart="0" \
ReconMethodParameterLabels="[none, none]" \
ReconMethodParameterUnits="[none, none]" \
ReconMethodParameterValues="[0, 0]"

# John Hopkins University
# -----------------------

# Siemens HRRT
# ------------
echo "${SOURCE_FOLDER}/SiemensHRRT-JHU"
ecatpet2bids $SOURCE_FOLDER/SiemensHRRT-JHU/Hoffman.v \
--nifti $DESTINATION/sub-SiemensHRRTJHU/pet/sub-SiemensHRRTJHU_pet.nii.gz \
--convert \
--kwargs \
#TimeZero='ScanStart' \
Manufacturer='Siemens' \
ManufacturersModelName='HRRT' \
InstitutionName='Johns Hopkins University, USA' \
BodyPart='Phantom' \
Units='Bq/mL' \
TracerName='FDG' \
TracerRadionuclide='F18' \
InjectedRadioactivity=81.24 \
SpecificRadioactivity=1.3019e+04 \
ModeOfAdministration='infusion' \
AcquisitionMode='list mode' \
ImageDecayCorrected=true \
ImageDecayCorrectionTime=0 \
ReconFilterType='none' \
ReconFilterSize=0 \
AttenuationCorrection='transmission scan with a 137Cs point source' \

# General Electric Medical Systems Advance
# -----------------------------------------
dcm2niix4pet $SOURCE_FOLDER/GeneralElectricAdvance-JHU/ --destination-path $DESTINATION/sub-GeneralElectricAdvanceJHU/pet --kwargs \
#TimeZero='ScanStart' \
Manufacturer='GE MEDICAL SYSTEMS' \
ManufacturersModelName='GE Advance' \
InstitutionName='Johns Hopkins University, USA' \
BodyPart='Phantom' \
Units='Bq/mL' \
TracerName='FDG' \
TracerRadionuclide='F18' \
InjectedRadioactivity=75.8500 \
SpecificRadioactivity=418713.8 \
ModeOfAdministration='infusion' \
FrameTimesStart=0 \
AcquisitionMode='list mode' \
ImageDecayCorrected='true' \
ImageDecayCorrectionTime=0 \
ScatterCorrectionMethod='Gaussian Fit' \
FrameDuration=98000 \
FrameTimesStart=0 \
ReconMethodName='filtered backprojection with ramp filter' \
ReconMethodParameterLabels=["none"] \
ReconParameterUnits=["none"] \
ReconMethodParameterValues="[0]" \
ReconFilterType="none" \
ReconFilterSize=1 \
AttenuationCorrection='2D-acquired transmission scan with a 68Ge rod source'



# Chesapeake Medical Imaging
# --------------------------


# Canon Cartesion Prime PET-CT
# ----------------------------
dcm2niix4pet $SOURCE_FOLDER/CanonCartesionPrimePETCT-NIA --destination-path $DESTINATION/sub-CanonCartesionPrimeNIA/pet --kwargs \
#TimeZero='ScanStart' \
Manufacturer='Canon Medical Systems' \
ManufacturersModelName='Cartesion Prime' \
InstitutionName='Chesapeake Medical Imaging, USA' \
BodyPart='Phantom' \
Units='Bq/mL' \
TracerName='FDG' \
TracerRadionuclide='F18' \
InjectedRadioactivity=32.19 \
SpecificRadioactivity=32190000 \
ModeOfAdministration='infusion' \
FrameTimesStart=0 \
AcquisitionMode='list mode' \
ImageDecayCorrected='true' \
ImageDecayCorrectionTime=0 \
ReconMethodParameterValues="[24, 5]" \
ReconFilterType="Gaussian" \
ReconFilterSize=2 \

0 comments on commit 8beba94

Please sign in to comment.