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
Last synced: 11 months ago · JSON representation ·

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
Created over 4 years ago · Last pushed almost 3 years ago
Metadata Files
Readme License Citation

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 Email Commits
Tomas Mikoviny t****y@g****m 4
Tomas Mikoviny t****i@u****o 3
Committer Domains (Top 20 + Academic)
uio.no: 1

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
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Dependent repos count: 9.9%
Dependent packages count: 38.9%
Average: 43.9%
Forks count: 53.5%
Stargazers count: 73.2%
Last synced: 11 months ago