Python library for retention index calculation.
Project description
RIAssigner
Overview
RIAssigner is a python tool for retention index (RI) computation for GC-MS data developed at RECETOX and hosted on Galaxy.
The retention index is a mapping of retention time, making the retention data of compounds comparable, i.e. two compounds might have different retention times in different experiments, but a very similar retention index. To compute this index, a set of reference compounds - often an inert alkane series - is analyzed as part of the batch (on the same column). The retention index of the alkanes are fixed (carbon number x 100) and any query compounds can be assigned a retention index depending on its retention time. This can be done via piece wise linear interpolation or other mathematical methods.
Installation
(1) From source by cloning the repository and then installing the package with pip
.
git clone https://github.com/RECETOX/RIAssigner.git
cd RIAssigner
python -m pip install -e .
(2) Install via bioconda in your existing evironment.
conda install -c bioconda riassigner
(3) Install via pip in your existing evironment.
pip install riassigner
Usage
RIAssigner can be used to read data from .msp
, .csv
and .tsv
files using matchms and pandas and to compute the retention indices for the data.
A reference list of retention indexed compounds (traditionally an Alkane series) with retention times is used to compute the RI for a query dataset of retention time values using the van Den Dool and Kratz method or by using cubic spline-based interpolation.
Example
from RIAssigner.compute import Kovats
from RIAssigner.data import MatchMSData, PandasData
# Load reference & query data
query = PandasData("../tests/data/csv/aplcms_aligned_peaks.csv", "csv", rt_unit="seconds")
reference = MatchMSData("../tests/data/msp/Alkanes_20210325.msp", "msp", rt_unit="min")
# Compute RI and write it back to file
query.retention_indices = Kovats().compute(query, reference)
query.write("peaks_with_rt.csv")
For more details check out this notebook.
Developer Documentation
Setup
Create your development conda environment using the provided file to install all required dependencies, including linter and testing frameworks.
conda env create -f conda/environment-dev.yml
Contributing
We appreciate contributions - feel free to open an issue on our repository, create your own fork, work on the problem and pose a PR. Make sure to add your contributions to the changelog and to adhere to the versioning. For more information see here.
Architecture
Mermaid markup
classDiagram
class MatchMSData{
-List ~Spectra~ data
}
class PandasData {
-DataFrame data
}
Data <|-- MatchMSData
Data <|-- PandasData
class Data{
<<abstract>>
+read(string filename)
+write(string filename)
+retention_times() List~float~
+retention_indices() List~float~
}
class ComputationMethod{
<<interface>>
+compute(Data query, Data reference) List~float~
}
class Kovats {
}
class CubicSpline {
}
ComputationMethod <|-- Kovats
ComputationMethod <|-- CubicSpline
Testing
All functionality is tested with the pytest framework. Make sure to run your IDE in the riassigner-dev
conda environment (or make sure to use the respective python interpreter when developing) to follow formatting guidelines and to be able to execute the tests.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for RIAssigner-0.3.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae05d0f3d7b5d508f5f565f70ae5fba91c4c13d05edc8f2a81d9a461a38c89f3 |
|
MD5 | 8c84838764c8f3948bb33fcb90c770d3 |
|
BLAKE2b-256 | dd5793b86f4b67817e16512e1a4f55561fbf0ca60810398d0ad0ceb3be1ecd1b |