Skip to content

Instantly share code, notes, and snippets.

@natl
Last active October 10, 2016 17:03
Show Gist options
  • Select an option

  • Save natl/97de820b5733aa0af6cf179986b74222 to your computer and use it in GitHub Desktop.

Select an option

Save natl/97de820b5733aa0af6cf179986b74222 to your computer and use it in GitHub Desktop.
Updated G4BioChemicalMaterials() Method for G4NistMaterialBuilder class
/*
A note on sources: Prior to October 2016, the biomolecules in G4 had
inconsistently set density and ionisation values. While NIST provides
density and mean excitation energy values for Adenine and Guanine,
these are not well-cited and of dubious reliability. In Oct. 2016,
the materials were updated. Mean excitation energy is based of
Sauer et al. (2011) Mean Excitation Energies for Biomolecules:
Glycine to DNA, (Advances in Quantum Chemistry, vol 62)
DOI: 10.1016/B978-0-12-386477-2.00011-5
The mean excitation energies used are
Phosphate: 95.88 eV
Cytosine: 69.60 eV
Uracil: 73.13 eV
Thymine: 70.00 eV
Adenine: 69.06 eV
Guanine: 71.58 eV
For deoxyribose, a mean excitation energy of 70 eV is used,
consistent with the mean excitation energy of the 5 nucleosides
(ie. nucleobases bonded to ribose sugar).
For density, we biomaterials use the predicted densities generated
by the ACD/Labs Percepta Platform - PhysChem Module, accessed through
ChemSpider, a tool provided by the Royal Society for Chemistry.
The densities adopted are:
Phosphate: 2.2 g/cm^3 (Phosphoric Acid, H3PO4)
Deoxyribose: 1.5 g/cm^3
Cytosine: 1.6 g/cm^3
Uracil: 1.5 g/cm^3
Thymine: 1.4 g/cm^3
Adenine: 1.9 g/cm^3
Guanine: 2.2 g/cm^3
*/
/**
Build biochemical materials used in G4DNA Applications.
Materials are defined in bonded and unbonded forms according to the
following schema:
G4_MATERIAL: Molecule in its free state
G4_DNA_MATERIAL: Molecule, considering atoms lost in bonding
*/
void G4NistMaterialBuilder::BioChemicalMaterials()
{
// BEGIN MATERIALS IN THEIR UNBONDED FORM
// G4_ADENINE, G4_GUANINE are defined in
// G4NistMaterialBuilder::NistCompoundMaterials()
AddMaterial("G4_CYTOSINE", 1.6, 0, 69.6, 4);
AddElementByAtomCount("H", 5);
AddElementByAtomCount("C", 4);
AddElementByAtomCount("N", 3);
AddElementByAtomCount("O", 1);
AddMaterial("G4_THYMINE", 1.4, 0, 70., 4);
AddElementByAtomCount("H", 6);
AddElementByAtomCount("C", 5);
AddElementByAtomCount("N", 2);
AddElementByAtomCount("O", 2);
AddMaterial("G4_URACIL", 1.5, 0, 73.13, 4);
AddElementByAtomCount("H", 4);
AddElementByAtomCount("C", 4);
AddElementByAtomCount("N", 2);
AddElementByAtomCount("O", 2);
AddMaterial("G4_DEOXYRIBOSE", 1.5, 0, 70, 3);
AddElementByAtomCount("H", 10);
AddElementByAtomCount("C", 5);
AddElementByAtomCount("O", 3);
// END UNBONDED MATERIALS / BEGIN BONDED MATERIALS
// Deoxyribose loses 3 OH groups in bonding to bond with PO4 and a base pair
AddMaterial("G4_DNA_DEOXYRIBOSE", 1.5, 0, 70., 3);
AddElementByAtomCount("H", 7);
AddElementByAtomCount("C", 5);
AddElementByAtomCount("O", 1);
// Typically there are no H atoms considered in the Phosphate group
AddMaterial("G4_DNA_PHOSPHATE", 2.2, 0, 95.88, 2);
AddElementByAtomCount("P", 1);
AddElementByAtomCount("O", 4);
// GATCU bases bonded to a deoxyribose (they drop one H)
AddMaterial("G4_DNA_ADENINE", 1.9, 0, 69.06, 3);
AddElementByAtomCount("H",4 );
AddElementByAtomCount("C",5 );
AddElementByAtomCount("N",5 );
AddMaterial("G4_DNA_GUANINE", 2.2, 0, 71.58, 4);
AddElementByAtomCount("H",4 );
AddElementByAtomCount("C",5 );
AddElementByAtomCount("N",5 );
AddElementByAtomCount("O",1 );
AddMaterial("G4_DNA_CYTOSINE", 1.6, 0, 69.6, 4);
AddElementByAtomCount("H", 4);
AddElementByAtomCount("C", 4);
AddElementByAtomCount("N", 3);
AddElementByAtomCount("O", 1);
AddMaterial("G4_DNA_THYMINE", 1.4, 0, 70., 4);
AddElementByAtomCount("H", 5);
AddElementByAtomCount("C", 5);
AddElementByAtomCount("N", 2);
AddElementByAtomCount("O", 2);
AddMaterial("G4_DNA_URACIL", 1.5, 0, 73.13, 4);
AddElementByAtomCount("H", 3);
AddElementByAtomCount("C", 4);
AddElementByAtomCount("N", 2);
AddElementByAtomCount("O", 2);
// END BONDED MATERIALS
/*
// Complete 70 kg body of adult men from en.wikipedia.org/ see References there
AddMaterial("G4_BODY", 1.8, 0, 78, 12);
AddElementByWeightFraction( 8, 0.650);
AddElementByWeightFraction( 6, 0.180);
AddElementByWeightFraction( 1, 0.100);
AddElementByWeightFraction( 7, 0.030);
AddElementByWeightFraction(20, 0.015);
AddElementByWeightFraction(15, 0.010);
AddElementByWeightFraction(19, 0.0025);
AddElementByWeightFraction(16, 0.0025);
AddElementByWeightFraction(11, 0.0015);
AddElementByWeightFraction(17, 0.0015);
AddElementByWeightFraction(12, 0.0005);
AddElementByWeightFraction(26, 0.00006);
*/
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment