IsotopicCalc
Science Score: 28.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 2 committers (50.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.2%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: slowbrain
- License: mit
- Language: Julia
- Default Branch: master
- Size: 63.5 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 1
Metadata Files
README.md
IsotopicCalc
Installation
To install run one of the following commands:
julia
]add IsotopicCalc
or
julia
using Pkg; Pkg.add("IsotopicCalc.jl")
Isotopic pattern distribution
Package uses isotopic abundances of elements from NIST online database (Atomic Weights and Isotopic Compositions with Relative Atomic Masses, see refenrence below).
Input formula
Acceptable sum formula formats are shown below (case for acetone):
julia
C3H6O
CH3COCH3
(CH3)2CO
OH3(CH)3
There is also an option to specify concrete isotope using square bracket notation.
julia
[13C]H3COCH3 # acetone with one ¹³C isotope
C3[2H]6O # fully deuterated acetone
C3D6O # another notation for fully deuterated acetone
Examples
Main pupose of this package is to give isotopic pattern distribution for any chemical formula in following fashion: ```julia julia> isotopicPattern("CH3CHOCH3");
Formula: C3H6O
Mass [amu] Abundance [%]
58.0419 100.0000
59.0452 3.2447
59.0461 0.0381
59.0481 0.0690
60.0461 0.2055
60.0486 0.0351
60.0494 0.0012
61.0495 0.0067
Found 8 isotopic masses for 1.0e-5 abundance limit.
Actual output of the function is a `Vector{Tuple{Float64,Float64}}` that contains molecular mass and its abundance relative to most abundant isotope. In this particular case for acetone output looks as follow:
julia
8-element Vector{Tuple{Float64, Float64}}:
(58.0419, 1.0)
(59.0452, 0.0324471848781967)
(59.0461, 0.0003809256493278667)
(59.0481, 0.0006900793591262995)
(60.0461, 0.002054993634531913)
(60.0486, 0.0003509399355066257)
(60.0494, 1.2359964968588418e-5)
(61.0495, 6.667875838317436e-5)
```
The function has several keyword arguments used to customize the output. By default it has cut-off abundance set for 1e-5 as is always shown on function printout. The other keyword arguments include resolution (default value 10000) and possible adduct to the molecule (default set to "").
julia
isotopicPattern(formula::String;
abundance_cutoff=1e-5,
R=4000,
adduct::String="",
print=true
)
It's rather self explaining in following examples:
```julia
julia> isotopicPattern("CH3COCH3"; adduct = "Na+");
Formula: C3H6O.Na+
Mass [amu] Abundance [%]
81.0311 100.0000 82.0344 3.2447 82.0353 0.0381 82.0374 0.0690 83.0353 0.2055 83.0378 0.0351 83.0387 0.0012 84.0387 0.0067 Found 8 isotopic masses for 1.0e-5 abundance limit.
julia> isotopicPattern("CH3COCH3"; abundance_cutoff = 1e-8);
Formula: C3H6O
Mass [amu] Abundance [%]
58.0419 100.0000000 59.0452 3.2447185 59.0461 0.0380926 59.0481 0.0690079 60.0461 0.2054994 60.0486 0.0350940 60.0494 0.0012360 60.0515 0.0022391 60.0524 0.0000263 60.0544 0.0000198 61.0495 0.0066679 61.0519 0.0001265 61.0524 0.0001418 61.0528 0.0000134 61.0549 0.0000242 62.0528 0.0000721 62.0557 0.0000046 Found 17 isotopic masses for 1.0e-8 abundance limit.
julia> isotopicPattern("CH3COCH3"; R=4000);
Formula: C3H6O
Mass [amu] Abundance [%]
58.042 100.0000
59.045 3.2447
59.046 0.0381
59.048 0.0690
60.046 0.2055
60.049 0.0363
61.049 0.0067
Found 7 isotopic masses for 1.0e-5 abundance limit.
``
There are one special case implemented. AdductH⁺is called inherently byisotopicPatternProtonated`.
Monotisotopic mass calculation
For calculation of mono-istopic mass there is also monoisotopicMass and monoisotopicMassProtonated.
julia
julia> monoisotopicMass("CH3COCH3")
58.0419
Finding formulas
Rudimentary determination of compound sum formula from monoisotopic mass is implemented too.
julia
julia> find_formula(58.0419);
Matching formulas:
C3H6O m/z: 58.041865 ppm: 0.61
The function has several keyword arguments used to customize the output.
julia
find_formula(mz_input::Float64;
atom_pool::Dict{String, Int}=Dict("C"=>20, "H"=>100, "O"=>10, "N"=>10),
tolerance_ppm::Number=100,
adduct::String="",
charge::Int=0
)
By default algoritm searches withing a interval of 100 ppm around monoisotopic mass and takes into consideration C, H, O, N to be possible buiding atoms. The associated numbers mean maximum amount of respective atoms to be considered.
So far adducts can be one of following M+H, M+Na, M+K, M-H and charge is to be expresed separately as in example.
```julia julia> findformula(46.000; toleranceppm=2000, charge=1); Matching formulas: CH2O2+ m/z: 46.004931 ppm: -107.18 NO2+ m/z: 45.992355 ppm: 166.23 N2H2O+ m/z: 46.016164 ppm: -351.27 CNH4O+ m/z: 46.02874 ppm: -624.4 N3H4+ m/z: 46.039974 ppm: -868.24 C2H6O+ m/z: 46.041316 ppm: -897.37 CN2H6+ m/z: 46.05255 ppm: -1141.08 C2NH8+ m/z: 46.065126 ppm: -1413.78 C3H10+ m/z: 46.077702 ppm: -1686.32
julia> find_formula(59.0491; adduct="M+H", charge=1); Matching formulas: C3H6O [M+H]+ m/z: 59.049141 ppm: -0.7 CN3H4 [M+H]+ m/z: 59.047799 ppm: 22.04 ```
Citing
See CITATION.bib for the relevant reference(s).
References
Coursey, J.S., Schwab, D.J., Tsai, J.J., and Dragoset, R.A. (2015), Atomic Weights and Isotopic Compositions (version 4.1). [Online] Available: http://physics.nist.gov/Comp [2023, 08, 22]. National Institute of Standards and Technology, Gaithersburg, MD.
Citation (CITATION.bib)
@misc{IsotopicCalc.jl,
author = {Tomas Mikoviny <tomasmi@uio.no> and contributors},
title = {IsotopicCalc.jl},
url = {https://github.com/slowbrainIsotopicCalc.jl},
version = {v0.2.0},
year = {2023},
month = {1}
}
GitHub Events
Total
Last Year
Committers
Last synced: over 3 years ago
All Time
- Total Commits: 7
- Total Committers: 2
- Avg Commits per committer: 3.5
- Development Distribution Score (DDS): 0.429
Top Committers
| Name | Commits | |
|---|---|---|
| Tomas Mikoviny | t****y@g****m | 4 |
| Tomas Mikoviny | t****i@u****o | 3 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 2
- Total pull requests: 1
- Average time to close issues: 10 days
- Average time to close pull requests: less than a minute
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 5.0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- slowbrain (2)
Pull Request Authors
- slowbrain (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 1 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 3
juliahub.com: IsotopicCalc
- Documentation: https://docs.juliahub.com/General/IsotopicCalc/stable/
- License: MIT
-
Latest release: 0.2.1
published almost 3 years ago