.. |br| raw:: html
Welcome to omilayers documentation!
===================================
.. toctree::
:maxdepth: 1
self
installation
basic_usage
configuration
layers_stack
layers
run_query
api
.. image:: images/omilayers_logo.png
:width: 400
:alt: Figure 1
:align: center
``omilayers`` is a Python data management library. It is suitable for multi-omic data analysis, hence the ``omi`` prefix, that involves the handling of diverse datasets usually referred to as omic layers. ``omilayers`` wraps the APIs of ``SQLite`` and ``DuckDB`` and provides a high-level interface for frequent and repetitive tasks that involve fast storage, processing and retrieval of data without the need to constantly write SQL queries.
The rationale behind ``omilayer`` is the following:
* User stores **layers** of omic data (tables in SQL lingo).
* User creates new layers by processing and restructuring existing layers.
* User can group layers using **tags**.
* User can store a brief description for each layer.
.. note::
Although ``omilayers`` was created with multi-omic data in mind, it can be used with any kind of data.
Why omilayers?
==============
Although SQL is a straightfoward language, it can become quite tedious task if it needs to be repeated multiple times. Since data analysis involves highly repetitive procedures, a user would need to create functions as a means to abstract the process of writing SQL queries. The aim of ``omilayers`` is to provide this level of abstaction to facilitate bioinformatic data analysis. The ``omilayers`` API resembles the ``pandas`` API and the user needs to write the following code to parse a column named ``foo`` from a layer called ``omicdata``:
.. code-block:: python
from omilayers import Omilayers
# The following line uses DuckDB which is the default database.
omi = Omilayers("dbname.duckdb")
# The following line uses SQLite.
omi = Omilayers("dbname.sqlite", engine='sqlite')
result = omi.layers['omicdata']['foo']