Warning, /geant4/examples/extended/medical/dna/dnadamage2/README.txt is written in an unsupported language. File is not indexed.
0001 $Id: $
0002 -------------------------------------------------------------------
0003
0004 =========================================================
0005 Geant4 - dnadamage2 example
0006 =========================================================
0007
0008 DNADAMAGE2
0009 ----------
0010
0011 CORRESPONDING AUTHORS
0012 J. Naoki D. Kondo
0013 J. Ramos-Mendez
0014 B. Faddegon
0015 (a) JorgeNaoki _ DominguezKondo _ ucsf _ edu
0016 (b) Jose _ RamosMendez _ ucsf _ edu
0017 (c) Bruce _ Faddegon _ ucsf _ edu
0018
0019 CONTACT EMAIL
0020 JorgeNaoki.DominguezKondo@ucsf.edu
0021
0022 This example is provided by the Geant4-DNA collaboration.
0023 (http://geant4-dna.org)
0024
0025 Any report or published results obtained using this example shall
0026 cite the following publications:
0027
0028 [1] J.N. D-Kondo, et al., (2021) DNA damage modeled with Geant4-DNA: effects of
0029 plasmid DNA conformation and experimental conditions.
0030 Physics in Medicine and Biology, 66 (24). https://doi.org/10.1088/1361-6560/ac3a22
0031
0032 [2] J. Ramos-Méndez, et al., (2020). Independent reaction times method in Geant4-DNA:
0033 Implementation and performance.Medical Physics, 47(11), 5919–5930.
0034 https://doi.org/10.1002/mp.14490
0035
0036 In addition, cite the main Geant4-DNA collaboration publications:
0037
0038 [3] J. Appl. Phys. 125 (2019) 104301
0039 [4] Med. Phys. 45 (2018) e722-e739
0040 [5] Phys. Med. 31 (2015) 861-874
0041 [6] Med. Phys. 37 (2010) 4692-4708
0042 [7] Int. J. Model. Simul. Sci . Comput. 1 (2010) 157-178
0043
0044 0 - INTRODUCTION
0045 This examples provides scoring of plasmid DNA strand breaks using
0046 the IRT method [2]. The DNADAMAGE2 example extends the chem6 example
0047 by adding DNA molecule information and the scoring of Strand Breaks.
0048 Experimental conditions are considered such as oxygen and DMSO molar
0049 concentrations.
0050
0051 The details are described in the following papers [1][2] for both
0052 the IRT method and this example's validation.
0053
0054 1 - GEOMETRY DEFINITION
0055
0056 The geometry is composed of three main components:
0057 - The world: A 2 um water cube which hostess the rest of the components.
0058 - The Plasmid Envelope: A water sphere of 1 um in diameter by default.
0059 This envelope can be resized using the "/det/setSize"
0060 command. So users can modify their DNA concentration
0061 without increasing the number of plasmids, but by lowering
0062 the amount of water.
0063 - The Plasmids: Plasmids must be supplied to the geometry. The plasmid file must
0064 be in ASCII format. Three columns which represent the X, Y and
0065 Z position of the plasmid vertices (bps). To control the
0066 parameters to setup the plasmid geomtery, the following commands
0067 shall be used:
0068 + /det/NbOfPlasmids :Set the number of plasmid copies. G4Box Volumes
0069 are used to enclose the plasmid.
0070 + /det/OffSetFile : The file format is ASCII. It contains three columns
0071 indicating the X, Y and Z position of the center of
0072 the plasmid envelopes (G4Box volumes enclosing the plasmid)
0073 + /det/PlasmidFile : Set the ASCII file name containing the plasmid
0074 information.
0075 + /det/UseDNAVolumes : Boolean to activate/deactivate the solid
0076 volumes defining the DNA nucleotides. If set to false,
0077 virtual molecules are created from the DNA nucleotides
0078 position for simulating indirect strand breaks. See
0079 reference [2].
0080
0081 The definition of the sensitive volumes is also made in the Geometry Definition.
0082 Inside the method ConstructSDandField() (see section 5).
0083
0084 2 - PHYSICS AND CHEMISTRY LISTS
0085
0086 By default, if no Physics list is assigned using the "/physics/SetPhysics" the simulation
0087 will run using:
0088
0089 + G4EmDNAPhysics_option4 constructor
0090
0091 The full list of physics lists available for the user are:
0092 + G4EmDNAPhysics_option1
0093 + G4EmDNAPhysics_option2
0094 + G4EmDNAPhysics_option3
0095 + G4EmDNAPhysics_option4
0096 + G4EmDNAPhysics_option5
0097 + G4EmDNAPhysics_option6
0098 + G4EmDNAPhysics_option7
0099 + G4EmDNAPhysics_option8
0100
0101 By default, if no chemistry list is assigned using the "/physics/SetChemistry"
0102 the simulation will run using:
0103
0104 + G4EmDNAChemistry_ForPlasmids
0105 - Custom chemistry constructor based on the G4EmDNAChemistry_option3
0106 constructor.
0107 - It includes DNA reactions as well as DMSO and oxygen background reactions.
0108 - The chemistry constructor is based on the pre-chemical stage of PARTRAC
0109 and chemical parameters of RITRACKS.
0110 - This chemistry constructor uses the Independent Reaction Times method.
0111
0112 By using this Chemistry List, users can set oxygen and DMSO concentration
0113 with the following commands "/chem/scavenger/DMSO" and "/chem/scavenger/Oxygen".
0114 The concentrations unit must be given as molar concentaration M (mol/dm3).
0115
0116 *Of note, while other chemistry modules are also available, only the
0117 G4EmDNAChemistry_ForPlasmids is capable of scoring DNA strand breaks.
0118
0119 3 - ACTION INITALIZATION
0120
0121 The class ActionInitialization instantiates and registers
0122 to Geant4 kernel all user action classes.
0123
0124 While in sequential mode the action classes are instantiated just once,
0125 via invoking the method:
0126 ActionInitialization::Build()
0127 In multi-threading mode the same method is invoked for each thread worker
0128 and so all user action classes are defined thread-local.
0129
0130 A run action class is instantiated both thread-local
0131 and global that's why its instance is created also in the method:
0132 ActionInitialization::BuildForMaster()
0133 which is invoked only in multi-threading mode.
0134
0135 The following actions are initialized in this example:
0136 + PrimaryGenerationAction: The primary particle gun.
0137 + RunAction: Defines the actions conducted at the start and end of each
0138 Geant4 Run. It contains the call to the output functions of
0139 the scorers.
0140 + StackingAction: Needed in order to start the chemistry (See section 7)
0141 + TimeStepAction: Defines actions conducted at each Step-By-Step (SBS)
0142 Chemistry algorithm step (see section 6).
0143
0144 4 - AN EVENT: THE PRIMARY GENERATOR
0145
0146 The primary kinematic consists of N electrons with random position and
0147 momentum in the water sphere. The kinetic energy of the electrons are
0148 sampled from an energy spectrum suplied by the user using the "/fpGun/SourceFile"
0149 command. The user can set the number of primary electrons per event in order
0150 to accumulate a certain dose before running the chemistry.
0151
0152 This example provides the specrum of the kinetic energy of secondary electrons
0153 at the time they were produced by cobalt-60/cesium-137 gamma rays (see section 11
0154 and [1] for more information).
0155
0156 The chemistry module is triggered in the StackingAction class when all
0157 physical tracks have been processed (see section 7).
0158
0159 5 - DETECTOR RESPONSE: Scorers
0160
0161 5.1 - Species scorer
0162
0163 This scorer computes the energy deposition and the number of species along
0164 time in order to extract the radiochemical yields as in chem6 or chem4 examples.
0165
0166 Run::RecordEvent(), called at end of event, collects informations
0167 event per event from the hits collections, and accumulates statistics for
0168 RunAction::EndOfRunAction().
0169
0170 In multi-threading mode the statistics accumulated per worker is merged
0171 to the master in Run::Merge().
0172
0173 The following macro commands can be used to control the scoring time:
0174
0175 /scheduler/endTime : IRT chemistry time end, must be acompanied by time units.
0176
0177 /scorer/species/addTimeToRecord : Adds a specific time point to report.
0178
0179 /scorer/species/nOfTimeBins : Sets the number of time bins separated
0180 logaritmically even from 1 ps to the endTime
0181 specified.
0182
0183 The information about all the molecular species is scored and can be saved
0184 in a ASCII, ROOT or BINARY file, as specified by the user. The specific name
0185 of the file can also be specified by the user by using the following commands:
0186 -/scorer/species/OutputFile
0187 -/scorer/species/OutputFormat
0188
0189 ASCII results are given in a 5 column file which are:
0190 - Time
0191 - GValues per 100 eV
0192 - GValues Error
0193 - GValues number of molecules
0194 - Molecule name
0195
0196 ROOT or BINARY use the Geant4 Analysis Manager with the following columns:
0197 - Species ID
0198 - Number
0199 - Number of Event
0200 - Species Name
0201 - Time
0202 - Sum of G Value
0203 - Sum of G2 Value
0204
0205 5.2. - LET scorer
0206
0207 An restricted, dose-averaged LET scorer is provided with this example,
0208 it is the same scorer from the chem6 example. For more details visit the
0209 chem6 example
0210
0211 A macro command can be used to control the energy cut of the scorer:
0212 /scorer/LET/cutoff
0213
0214 5.4. - DNA Strand Break Scorer
0215
0216 The DNA Strand Breaks are obtained by this class, both direct and indirect.
0217 This class needs access to the DetectorConstruction class in order to obtain
0218 the DNA position information.
0219
0220 Contained within this scorer is a "MoleculeGun" as a mean to insert the DNA
0221 molecules and keep track of them in order to know where a strand break occurs.
0222 This helps to calculate SSBs, DSBs and other more complex DNA Strand Breaks.
0223 The user is responsible for the Strand Break classification since this example
0224 doesn't include any analysis tool.
0225
0226 Users can change the output type and output file name in the same way of the
0227 "ScoreSpecies" scorer, with the commands:
0228 -/scorer/StrandBreak/OutputFile
0229 -/scorer/StrandBreak/OutputFormat
0230
0231 The output formats available are the same as with the ScoreSpecies scorer:
0232 ASCII, ROOT and BINARY.
0233
0234 The number of direct Strand Breaks are scored when a certain energy
0235 threshold is reached for a certain deoxyribose + phosphate geometry. Users can
0236 change the direct energy treshold by using the following command:
0237 -/scorer/StrandBreak/BreakEnergy
0238
0239 Of note, the following parameter must be set to true to score the breaks produced
0240 by direct effect
0241 -/det/UseDNAVolumes true
0242
0243 The BreakEnergy is set to 17.5 eV by default.
0244
0245 The "ScoreStrandBreak" class takes the LET value at the end of the simulation from
0246 5.2 and saves it into the file of the ASCII output, so that users may get the number
0247 of Strand Breaks as a function of LET if so they desire.
0248 The current example only allows the use of electron sources, but the user is free to
0249 use different electron energies.
0250
0251 6 - IRT specific details
0252
0253 The IRT is run after the few step-by-step (SBS) steps following the water dissociation
0254 (pre-chemical) stage have finished (between 2 to 3 SBS steps), see UserPreTimeStepAction()
0255 and UserPostTimeStepAction(). At that point,
0256 SBS is stopped and the position of molecules and DNA molecules are passed to the IRT
0257 method. No DNA radiolysis is considered, so every specie created inside the DNA
0258 nucleotide territory is exclude by using the UserPreTimeStepAction as a filters, see
0259 justification in [1]
0260
0261 In sumary:
0262 The following two method are called before and after every SBS time step to pass molecules
0263 to the IRT method:
0264 + TimeStepAction::UserPreTimeStepAction()
0265 + TimeStepAction::UserPostTimeStepAction()
0266
0267 7 - STACKING ACTION
0268
0269 StackingAction::NewStage is called when a stack of tracks has been processed
0270 (for more details, look at the Geant4 documentation).
0271 A verification on whether physical tracks remain to be processed is done.
0272 If no tracks remain to be processed, the chemical module is then triggered.
0273
0274 8 - OUTPUT
0275
0276 The same output specifications from the chem6 example applies here, with the
0277 following remarkable differences:
0278 + Both the ScoreSpecies and the ScoreStrandBreaks scorers have their own
0279 output methods. Both call OutputAndClear(), which writes the output
0280 files and cleans all the information currently stored in the scorers,
0281 in preparation for the next run.
0282 + The OutputAndClear() method is called in the RunAction::EndOfRunAction()
0283 method.
0284
0285 9 - RELEVANT MACRO FILES
0286
0287 Two user macro files can be used:
0288
0289 - RunExample.in
0290 + Single Run example.
0291 + 100 repetitions of 880 electrons (~5 Gys) in a 1 um diameter volume
0292 containing 1 plasmids.
0293 + Caesium source.
0294
0295 - RunDoseDependance.in
0296 + This macro will repproduce results from S2 [1] (SBs Dose dependance).
0297 + DMSO conentration is set to 2.28E-4 M.
0298 + Oxygen Concentration is set to 0.27E-3 M.
0299 + Absorbed dose will be between ~1 - ~100 Gy.
0300 + 5 plasmids (28.1 ug/ml DNA concentration).
0301 + To reduce simulation time, the number of repetitions was lowered to 10.
0302 + Currently, only 1 Thread is used. Users are advised to increase the number
0303 of threads.
0304 + Simulation time can take up to a couple of days depending on the specific PC.
0305
0306 - init_vis.in
0307 + Default macro file to be used if user doesn't specify any macro file at run.
0308 + It calls the vis.in macro which will draw the OpenGL visualizer.
0309
0310 - vis.in
0311 + Visualization parameters for the default macro file. 1 plasmid will be draw at the center.
0312
0313 10 - PLOT
0314
0315 - No PLOT/Analysis files are prodived due to the default ASCII output.
0316 - ASCII files can be handled by most of the plot tools.
0317
0318 11 - EXTRA FILES
0319
0320 - CaesiumSource.src
0321 + Sample electron spectrum for the simulation.
0322 + Secondary electrons generated by a Caesium Gamma Source [1].
0323
0324 - CobaltSource.src
0325 + Sample electron spectrum for the simulation.
0326 + Secondary electrons generated by a Cobalt Gamma Source [1].
0327
0328 - pUC19.xyz
0329 + A sample pUC19 (2686 base pairs) plasmid with -0.03 super helix density generated at 20 C.
0330 The plasmid file has the position of each individual base pair. Values are given in nm
0331
0332 - PlasmidOffsets.txt
0333 + A sample plasmid centroid file. Users can change this values manually as long
0334 as they do not fall outside of the water sphere. In this way is possible to move
0335 the plasmids generated in the simulation. Values are given in nm.
0336