Warning, /geant4/examples/advanced/dna/moleculardna/README is written in an unsupported language. File is not indexed.
0001 -------------------------------------------------------------------
0002
0003 =========================================================
0004 Geant4 - an Object-Oriented Toolkit for Simulation in HEP
0005 =========================================================
0006
0007 moleculardna
0008 ------------
0009
0010 A Geant4-DNA application for simulating DNA damage.
0011
0012 AUTHORS (alphabetical order)
0013
0014 J.M.C. Brown, K. Chatzipapas, P. Dondero, M. Dordevic, S. Incerti, M. Karamitros,
0015 N. Lampe, D. Sakata, W.G. Shin, R. Stanzani, H. Tran (*), S. Zein
0016
0017 (*) contact: tran@lp2ib.in2p3.fr
0018
0019 Dedicated website:
0020 http://moleculardna.org
0021 or
0022 https://geant4-dna.github.io/molecular-docs/
0023
0024 This example is provided by the Geant4-DNA collaboration.
0025 (http://geant4-dna.org)
0026
0027 These two PhD theses describe the chain:
0028 W.-G. Shin (2020): https://tel.archives-ouvertes.fr/tel-03161030
0029 N. Lampe (2017): http://www.theses.fr/2017CLFAC011
0030
0031 Any report or published results obtained using the Geant4-DNA software
0032 shall cite the following Geant4-DNA collaboration publications:
0033 Med. Phys. (2024) in press (https://doi.org/10.1002/mp.17256)
0034 Med. Phys. 45 (2018) e722-e739
0035 Phys. Med. 31 (2015) 861-874
0036 Med. Phys. 37 (2010) 4692-4708
0037 Int. J. Model. Simul. Sci. Comput. 1 (2010) 157–178
0038
0039 Related publications can be found at:
0040 http://geant4-dna.org
0041
0042 0 - INTRODUCTION
0043
0044 This example shows how to simulate physics, physico-chemistry and
0045 chemistry processes in DNA geometries to predict early damage.
0046
0047 A more detailed description is available at http://moleculardna.org
0048
0049 To build the example:
0050 mkdir build
0051 cd build
0052 cmake ../pathToExamples/moleculardna
0053 make
0054
0055 To run the example:
0056 ./molecular -m cylinders.mac -t 2 -p 2
0057 # -m : macro file
0058 # -t : number of threads to run
0059 # -p : physics list option
0060 # -v : visualization option
0061
0062 Macro files can control every aspect of the simulation, see this introduction:
0063 https://geant4-dna.github.io/molecular-docs/docs/overview/macro-anatomy
0064
0065 The macro commands of this example are listed in:
0066 https://geant4-dna.github.io/molecular-docs/docs/overview/configuration
0067
0068 1 - GEOMETRY DEFINITION
0069
0070 The geometry is built from text files for cylinders (cylinders.mac),
0071 ecoli (ecoli.mac) and human cell (human_cell*.mac) geometries.
0072
0073 - cylinders.mac: to build a 3 μm sphere filled with 200,000 individual 216 bp
0074 long straight DNA segments in a 100×30×30 nm placement volume.
0075 This is a geometry used for parameter (optimization) studies.
0076
0077 - fiber.mac: to visualize a fiber of DNA
0078
0079 - phage.mac: to model the irradiation of a DNA phage containing 141158 bp,
0080 placed in a cylinder with radius 3.5 um and height 7 um.
0081
0082 - plasmid.mac: to model a cube of liquid water (side 4.84 um) containing around
0083 10 000 plasmids (pBR322, 4367 base pairs) randomly oriented in a supercoiled conformation.
0084
0085 - ecoli.mac: to demonstrate a simple model where the bacterial DNA follows a
0086 large scale fractal ‘Hilbert curve’ geometry.
0087
0088 - human_cell.mac, human_cell_HTB177.mac and human_cell_MCF7.mac: to model
0089 three different cell geometries, as detailed in [1]. These mac file may
0090 be used to produce data that serve as input to the repair models.
0091
0092 - human_cell_chromosomes.mac: to model the chromosomal type of cell geometry,
0093 as detailed in [4].
0094
0095 More geometry information can be found in https://geant4-dna.github.io/molecular-docs/docs/examples
0096
0097 To construct other DNA geometries, see http://natl.github.io/fractaldna/
0098
0099 To construct chromosomal or other complex DNA geometries, see https://github.com/konhat88/complexDNA
0100
0101 Macro commands can be used to control the geometry parameters, see for example cylinders.mac:
0102
0103 # Commands for world and cell dimensions
0104 /world/worldSize 10200 nm
0105 /cell/radiusSize 3 3 3 um
0106
0107 # Command to select the chemistry model (only IRT_syn for this example)
0108 /process/chem/TimeStepModel IRT_syn
0109
0110 # End time of chemistry simulation
0111 /scheduler/endTime 1 us
0112
0113 # Set voxel optimisation
0114 /dnageom/setSmartVoxels 1
0115
0116 # Check overlaps in DNA geometry region
0117 /dnageom/checkOverlaps false
0118
0119 # Distance from base pairs at which radicals are killed
0120 /dnageom/radicalKillDistance 9 nm
0121
0122 # Deposited energy accumulation range limit to start recording SBs from direct effects
0123 /dnageom/interactionDirectRange 7 angstrom
0124
0125 # Side length for each placement (x, y, z)
0126 /dnageom/placementSize 30 30 100 nm
0127
0128 # Scaling of XYZ in fractal definition file
0129 /dnageom/fractalScaling 1 1 1 nm
0130
0131 # Path to file that defines placement locations
0132 /dnageom/definitionFile geometries/prisms200k_r3000.txt
0133
0134 # Set a placement volume [format] [name path]
0135 /dnageom/placementVolume prism geometries/straight-216-0.txt
0136
0137 # Take the angles in the voxel placement file as multiples of pi
0138 # E.g. set to true if the angle 0.5 should mean 90 degrees
0139 /dnageom/setVoxelPlacementAnglesAsMultiplesOfPi false # default
0140
0141 # The molecule size columns are optional, as they can either
0142 # fall back onto the default sizes or be set to custom sizes in the macro
0143 # used default moleculeSize (as belows)
0144 /dnageom/useCustomMoleculeSizes false # default
0145 #/dnageom/moleculeSize
0146
0147 # Draw cell/chromosome volumes rather than DNA (makes DNA invisible)
0148 /dnageom/drawCellVolumes false # default
0149
0150 # Activate Histone scavenging function with default radius
0151 /dnageom/activateHistoneScavenging true # default
0152
0153 # DNA geometries are only ever placed in a chromosome
0154 /chromosome/add cylinder sphere 3000 0 0 0 nm
0155
0156 # For the visualisation of DNA geometries, the following line can be used
0157 /control/execute vis.mac
0158 # More specifically, start moleculardna using the command ./molecular -t 1 -v 1
0159 # to open the Qt visualiser. Then use the mac file that you want, e.g.
0160 # /control/execute cylinders.mac
0161 # For the visualization, large amount of RAM is needed. For example
0162 # using cylinders DNA geometries, to visualize 200 cylinders, ~2.5 GB
0163 # are needed. For 2000 cylinders, ~11 GB are needed.
0164
0165 2 - PHYSICS LIST
0166
0167 The physics list can use the recommended G4EmDNAPhysics_option2,
0168 G4EmDNAPhysics_option4 or
0169 G4EmDNAPhysics_option6 constructors.
0170
0171 3 - PRIMARY GENERATOR
0172
0173 The source can be specified via General Particle Source in the provided
0174 macro files.
0175
0176 4 - DNA DAMAGE MODEL
0177
0178 Mechanistic DNA simulations are dependent upon a
0179 DNA damage model to relate energy depositions close to DNA,
0180 and chemical reactions with DNA, to actual DNA damage
0181
0182 The following macro commands can be used to control the damage parameters:
0183
0184 # Direct damage threshold
0185 /dnadamage/directDamageLower 17.5 eV
0186 /dnadamage/directDamageUpper 17.5 eV
0187
0188 # Indirect damage probability to create a SSB for
0189 # OH radical + DNA base
0190 /dnadamage/indirectOHBaseChance 1.0
0191 /dnadamage/indirectOHStrandChance 0.65
0192 /dnadamage/inductionOHChance 0.0
0193
0194 # H radicals + DNA base
0195 /dnadamage/indirectHBaseChance 1.0
0196 /dnadamage/indirectHStrandChance 0.65
0197 /dnadamage/inductionHChance 0.0
0198
0199 # e_aq radicals + base
0200 /dnadamage/indirectEaqBaseChance 1.0
0201 /dnadamage/indirectEaqStrandChance 0.65
0202 /dnadamage/inductionEaqChance 0.0
0203
0204 5 - RESULTS
0205
0206 # Bool to set whether strands ought be saved
0207 /analysisDNA/saveStrands false # default
0208
0209 # Directory to save DNA damage fragments
0210 /analysisDNA/strandDir
0211
0212 # Gap between DNA fragments in base pairs
0213 # Set to zero to score placement volumes independently
0214 /analysisDNA/fragmentGap 0
0215
0216 # To save the position of hits histos only on one chain
0217 /analysisDNA/diagnosticChain
0218
0219 Several ROOT macro files are provided in the analysis directory:
0220 - cylinders.C: to plot damage from cylinders geometry
0221 - ecoli.C: to plot damage from ecoli geometry
0222 - human_cell.C: to plot damage and fragments distribution from human_cell*
0223 geometries. The human_cell_alphas.C macro can be used as shown in [1].
0224 - phage.C: to plot damage and fragments distribution from phage geometry
0225 - plasmid.C: to plot damage and fragments distribution from plasmid geometries
0226 - human_cell_chromosomes.C: to plot damage and fragments distribution
0227 from human_cell_chromosomes geometries.
0228
0229 A python macro file is provided to modify ROOT output in SDD file format [2]:
0230 - createSDD.py: to use it, insert the command "python3 createSDD.py".
0231 If error with ROOT, simply
0232 source /path/to/root/bin/thisroot.(c)sh,
0233 do "pip install pyroot" and try again.
0234
0235 A python macro file is provided to analyse the output of chromosomal geometry simulation [4]:
0236 - human_cell_chromosomes.py: to use it, insert the command "python3 human_cell_chromosomes.py".
0237
0238
0239 A python macro file to calculate repair kinetics is located in the folder
0240 repair_survival_models. This script can be used with the output of the mac
0241 file human_cell (10^5 primaries) to reproduce data published in [3]:
0242 - molecularDNArepair.py: to use it, insert the command "python3 molecularDNArepair.py".
0243 The molecular-dna.root file is also needed to run it, as produced by
0244 the human-cell.mac macro.
0245
0246 A python macro file to calculate the survival probability of cells is located
0247 in the folder repair_survival_models. This script is early released and needs to be optimized
0248 to fit any data.
0249 - molecularDNAsurvival.py: to use it, insert the command "python3 molecularDNAsurvival.py".
0250 The molecular-dna.root file is needed to run it, as produced by
0251 the human-cell.mac macro.
0252
0253 *** Note on ROOT import from python:
0254 If python cannot import ROOT, please configure your ROOT version to include PyROOT.
0255 For further instruction, refer to the documentation of ROOT, paragraph 19.1.4.2:
0256 https://root.cern/root/htmldoc/guides/users-guide/ROOTUsersGuide.html#python-interface
0257
0258 6 - PHASE SPACE READING
0259
0260 The example can read a phase space file as source for the primary generation,
0261 defined in the csv format used by the GRAS Two-Stage Analysis [5].
0262 An example of phase space file and the macro to read it are provided in the
0263 "/phase_space" subdirectory.
0264 This simple phase space file only provides 20 electrons with an energy of
0265 45 keV on a randomly shaped surface based on the cylinders.mac macro file.
0266
0267 7 - REFERENCES
0268
0269 [1] https://doi.org/10.1016/j.ejmp.2023.102613
0270 [2] https://doi.org/10.1667/RR15209.1
0271 [3] https://doi.org/10.1002/pro6.1186
0272 [4] https://doi.org/10.1016/j.ejmp.2024.104839
0273 [5] https://spitfire.estec.esa.int/trac/GRAS/wiki/GRAS/GRAS-05-02/UserGuideTwoStage
0274
0275 An alternative example for DNA damage calculation can be found in /examples/advanced/dna/dsbandrepair