Skip to content

ChristopherAMyers/CoSIMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoSIMS

CoSIMS is a Collision Simulator for Ion Mobility Spectrometry. This is a trajectory based method for calculating molecular colision cross-sections for use with IMS-MS experiments. We welcome the submission of bugs, improvements, and suggestions to the code.

If you find this code usefull, we ask that you please cite the following paper:

Christopher A. Myers, Rebecca J. D’Esposito, Daniele Fabris, Srivathsan V. Ranganathan, and Alan A. Chen. CoSIMS: An Optimized Trajectory Based Collision Simulator for Ion Mobility Spectrometry. J. Phys. Chem. B., May 2019, 10.1021/acs.jpcb.9b01018. https://pubs.acs.org/doi/10.1021/acs.jpcb.9b01018

Installation

Obtaining the Code

To obtain the program from the GitHub repository:

git clone https://github.com/ChristopherAMyers/CoSIMS.git

Alternatively, download the .zip file from GitHub and extract the contents manually.

Building

  • Requirements:
    • g++ version 4.8.1 or higher
    • OpenMP library for multi-threading
    • Linux system (Windows not tested)

To build the program:

make

Or compile using multiple cores:

make -j

This creates a statically linked binary at:

/path/to/cosims/install/bin/cosims 

Manual compilation:

g++ src/*.cpp -o cosims -std=c++11 -fopenmp -O3

Running CoSIMS

Basic run command:

./cosims -m moleculeFile.xxx

Where xxx = pdb or mfj.

Additional options:

./cosims -m moleculeFile.xxx -[option] [value]

Molecule File Types

PDB Files

  • Uses ATOM and HETATM entries.
  • Assumes all entries belong to one structure.
  • Columns 78–79 specify element types; if blank, atom name columns 13–16 are used.

Example:

ATOM 1 OH5’ C5 1 3.429 -7.861 3.641 1.00 0.00 H 

MFJ Files

  • Follows MOBCAL syntax with added integer charge support.

Random Seed

Set with -s option:

./cosims -m file.pdb -s 12345

Uses 64-bit Mersenne Twister RNG.
Same seed may yield different results with multiple threads due to dynamic allocation.


Number of Threads

Set with -n option:

./cosims -m file.pdb -n 4
  • Should be ≤ number of physical CPU cores.
  • Identical runs may produce different results due to thread-safe RNG.

Atom Types

Set with -a option to provide custom parameters.
Format:

#name symbol mass sigma epsilon intMass Carbon C 12.010 2.043 0.03090114 12 Hydrogen H 1.008 2.043 0.01498936 1 

Input File

Use -i option for runtime configuration without recompiling.

Example input file:

# CoSIMS input file name myName dt 0.01 temp 298 traj 50 iter 15 threads 1 seed 12345 dispersion cutoff true dispersion radius 40 multipole true multipole order 1 

Available Program Options

Option Description Type Default
name Project name / output file prefix string log charge
dt Verlet integration time step (ps) float 0.01
temp Temperature (K) float 298
traj Trajectories per CCS integral (×10³) int 50
iter Number of CCS integrals to average int 10
print rate Print CCS progress every N trajectories int 20000
print mol Print rotated molecule to XYZ bool false
dir Output directory string Current directory
charge Uniform total charge (e) int 0
threads OpenMP threads (overrides -n) int 1
seed RNG seed (overrides -s) int64 random device()
dispersion cutoff LJ cutoff enabled bool true
dispersion radius LJ cutoff radius (Å) float Based on vdW radii
multipole Enable multipole approximation bool false
multipole radius Radius for multipole approximation (Å) float 20.0
multipole order 0 = monopole, 1 = dipole, 2 = quadrupole int 1
max cluster size Max radial distance for atom clusters float 4.0

References

  1. M. F. Mesleh et al., The Journal of Physical Chemistry, 100(40):16082–16086, 1996.
  2. A. A. Shvartsburg, M. F. Jarrold, Chemical Physics Letters, 261(1):86–91, 1996.