編集[2019]:
改善された 1D、2D、および 3D ガンマ決定がpymedphys
ライブラリ内で利用できるようになりました。これは、 https://doi.org/10.1118/1.2721657で説明されている実装に基づいています。使用するには、次の手順を実行します。
pip install numpy scipy pymedphys==0.16.3 pydicom==1.3.0
次に、使用例は次のようになります。
import pydicom
import pymedphys
reference_filepath = pymedphys.data_path("original_dose_beam_4.dcm")
evaluation_filepath = pymedphys.data_path("logfile_dose_beam_4.dcm")
reference = pydicom.read_file(str(reference_filepath), force=True)
evaluation = pydicom.read_file(str(evaluation_filepath), force=True)
axes_reference, dose_reference = pymedphys.dicom.zyx_and_dose_from_dataset(reference)
axes_evaluation, dose_evaluation = pymedphys.dicom.zyx_and_dose_from_dataset(evaluation)
gamma_options = {
'dose_percent_threshold': 1, # This is a bit overkill here at 1%/1mm
'distance_mm_threshold': 1,
'lower_percent_dose_cutoff': 20,
'interp_fraction': 10, # Should be 10 or more, see the paper referenced above
'max_gamma': 2,
'random_subset': None, # Can be used to get quick pass rates
'local_gamma': True, # Change to false for global gamma
'ram_available': 2**29 # 1/2 GB
}
gamma = pymedphys.gamma(
axes_reference, dose_reference,
axes_evaluation, dose_evaluation,
**gamma_options)
古い答え:
図書館がありますnpgamma
。を使用してpypiからダウンロードできますpip install npgamma
。
例については、 readmeを参照してください。
基本的な使用方法は次のとおりです。
from npgamma import calc_gamma
...
gamma = calc_gamma(
coords_reference, dose_reference,
coords_evaluation, dose_evaluation,
distance_threshold, dose_threshold)
ここcoords_reference
で、 とcoords_evalution
は、3D では (y, x, z)、2D では (y, x) として定義されます。
重要なことに、このメソッドは参照ポイント間をユーザー定義のステップ サイズ (デフォルトは距離しきい値の 1/10) まで補間します。