ChemSharp icon indicating copy to clipboard operation
ChemSharp copied to clipboard

Library for processing of chemistry related files (aiming at spectroscopy and structural files)

ChemSharp

.NET Library for processing of chemistry related files. Powers PorphyStruct!

Maintainability .NET GitHub issues GitHub commit activity GitHub license GitHub tag (latest by date)


NuGet Packages

ChemSharp NuGet Badge
ChemSharp.Molecules NuGet Badge
ChemSharp.Molecules.Blazor NuGet Badge
ChemSharp.Molecules.HelixToolkit NuGet Badge
ChemSharp.Spectroscopy NuGet Badge
ChemSharp.UnitConversion NuGet Badge

CI Releases at: GitHub Packages

Features

  • Open and process Molecular files (see Supported Filetypes)
  • Sum formula operations and elemental analysis calculation
  • Using Elemental Data from https://github.com/JensKrumsieck/periodic-table
  • Blazor view for molecules using three.js
  • Open and process Spectroscopy related files (see Supported Filetypes)
  • Unit Conversion for (Energy, Magnetic Units, Mass)

Basic Usage

Create Molecules

Molecules can be created in a lot of ways. The easiest way is to use MoleculeFactory.Create, which accepts a string path.

//Creates a molecule from cif file
const string path = "files/cif.cif";
var mol = Molecule.FromFile(path);

Create Spectra

Spectra can be created by using the Spectrum.FromFile Method.

//Creates an UV/Vis Spectrum
const string path = "files/uvvis.dsw";
var uvvis = Spectrum.FromFile(path);

Supported Filetypes

  • Molecule

    • Import (XYZ, CIF (crystallographic information file, CCDC), MOL2 (TRIPOS Mol2), PDB (Protein Data Bank file), MOL (MDL MOL, ChemSpider), CDXML (Single Molecule only, 2D))
    • Export (XYZ, MOL2)
  • Spectroscopy

    • Import (Varian/Agilient DSW, Bruker EMX SPC/PAR, Bruker TopSpin (fid, (1r/1i processed spectra), JCAMP-DX ( acqus, procs, ...)), CSV)
    • Export (CSV)

Used Libraries:

Compatibility

  • .NET Standard 2.0, .NET Standard 2.1, .NET 5, .NET 6
  • Blazor (see ChemSharp.Molecules.Blazor)
  • HelixToolkit via ChemSharp.Molecules.HelixToolkit
  • Unity (see https://github.com/JensKrumsieck/ChemSharpUnityExample)

Used by (Highlights):

Stats

Alt