Back to home page

EIC code displayed by LXR

 
 

    


Warning, /geant4/examples/extended/medical/dna/dnadamage2/README.md is written in an unsupported language. File is not indexed.

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