https://gitlab.com/kantundpeterpan/masseltof
Raw File
Tip revision: c45a7e66a8a89c436d41b8431938b35acfa4e53b authored by Heiner Atze on 17 August 2021, 11:38:48 UTC
Update README.md
Tip revision: c45a7e6
IsoDB.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Oct  8 15:23:15 2020

@author: kantundpeterpan
"""

import enum
import pandas as pd
import os
import types
from functools import partial

class GetItem(type):
    def __getitem__(cls, name):
        return getattr(cls, name)

class IsoDB(metaclass = GetItem):
    
    path = os.path.dirname(__file__)
    
    isodf = pd.read_csv(os.path.join(path, 'data', 'IsotopeDef',
                                     'isotopes_atomic_masses_processed.csv'))
    
    mostabundant = isodf.dropna().set_index('isotope').groupby('element_symbol')['isotopic_composition'].idxmax().astype(int)
    
    @classmethod
    def isotopize(cls):
        groups = cls.isodf.set_index('isotope').groupby('element_symbol')[['element_symbol', 'atomic_mass']]
        _mapfunc = lambda x: setattr(cls, x.element_symbol.unique()[0],
                                     x['atomic_mass'].to_dict())
        groups.apply(_mapfunc)
back to top