Metadata-Version: 2.1
Name: SCRIdb
Version: 1.1.9
Summary: A platform to handle sequencing data submission and initiation of projects, and to interact with the lab's database - insert meta data, and interactively pull reports and views.
Home-page: https://github.com/dpeerlab/SCRI_db.git
Author: Awni Mousa
Author-email: awnimousa@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: bs4
Requires-Dist: mysql-connector-python
Requires-Dist: pandas
Requires-Dist: ipywidgets
Requires-Dist: lxml
Requires-Dist: IPython
Requires-Dist: regex
Requires-Dist: python-dateutil
Requires-Dist: PyYAML
Requires-Dist: tabulate
Requires-Dist: boto3
Requires-Dist: numpy

# SCRI_db

* ## Description

SCRI_db is a python based application to handle, store, and access data on projects, and associated samples, stored on AWS. Read the [***documentation***](https://awnimo.github.io/SCRI_db/). The application is split into two parts:

1. A *reporting interface*.
2. *Command line tools* to process and update the database registry.

* #### The Reporting Interface

This is a web based interactive R-shiny user friendly interface, to pull reports and summaries, on projects and samples, stored in our database. Once installed, the user can use the package associated notebook, to establish a connection to the database. Through the interface, the user can use the different selectors and filters, to view the desired results. It also allows downloading a `.csv` formatted image of the resulting table.

* #### The Command Line Tools

The ***Command Line Tools*** module has methods to parse ***iLabs*** `HTML` project initiation forms, and sample submission forms. It also has built in methods to collect meta data from these forms, and construct a `MySQL INSERT` statements to push the data to our database on AWS.

* ## System Requirements

1. Python >= 3.6
2. R 3.0.1+. If you don't already have R, download it <a href=http://cran.rstudio.com/>here</a>.
3. mysql-connector-python Version: 8.0.13, install 

        $> pip3 install mysql-connector-python

4. Jupyter and ipywidgets:

        $> pip3 install -U jupyter
        $> pip3 install ipywidgets
        $> jupyter nbextension enable --py widgetsnbextension

* ## Installation

If you are an authorized user with access privileges to update and write to the database, install the *Command Line Tools* from `PyPI`:

    $> pip install SCRIdb
    $> scridb -v

To install the `RShiny` package for the `The Reporting Interface`:

    $> git clone https://github.com/dpeerlab/SCRI_db.git
    $> cd SCRI_db
    $> python3 setup.py RShiny

If you are a front-end user that only needs access to the database to view reports, you can skip the previous step. The `RShiny` setup command assumes `R` platform is installed and exists in `$PATH`. For a customized path to `R`, provide the command line with `--R-path=<path/to/R>` (`python3 setup.py RShiny -h`).

Contact a database `admin` for a `username` and `password` before start using the new platform.

* ## Usage

* ### The Reporting Interface

Activate the notebook:

    $> cd notebook
    $> jupyter notebook samples_db.ipynb

From the main menu choose ***Run All*** from ***Cell***. A dual tab box will appear.

* #### Configuration File Setup

It is optional to setup a configuration file to easily connect to the database. Choose the ***configure*** tab if this is the first time you connect to the database. Check ***Create New Configuration***, and enter your ***New Username*** and ***New Password*** (the same ones provided by the database `admin`), then click ***Submit***. This action will create and store a configuration file for future connections to the databae.

If successful, uncheck the ***Create New Configuration***, and switch back to the ***connect*** tab and click the ***Connect to DB!*** button (no need to provide a ***username*** and ***password***).

* #### Establish Connection Without Configuration Setup

Use a ***username*** and ***password*** in the designated fields in the ***connect*** tab, if you want to skip creating a configuration file, to connect to the database.

Start using the web interface and pull your favotite reports.

* ***Important note:*** it is imperative to close the `Samples Dashbord` page by clicking `Close window` on the left side panel, to properly terminate `RShiny`, and prevent kernel hanging.

* ### The Command Line Tools

Detailed information on usage is on [Wiki](https://github.com/dpeerlab/Dana-Pe-er-Wiki/wiki/Command-Line-Tools).

Intended for users with privileged access to the database (with read/write/update access).

    $> scridb -h
     scridb [-h] [-c [CONFIG]] [-f [FILE]] [-o [RESULTS_OUTPUT]] [-j [JOBS]]
              [-e [EMAIL]] [-p [PEM]] [-dS [DOCKERIZEDSEQC]] [-sc [SCATA]]
              {data_submission,process,upload_stats,data_transfer,run} ...

The following will actually build an `HTML` overall report on projects to monitor ongoing projects and their status:

    $> projectsHTML_index

A new feature added to update metadata on samples submitted to *IGO* for sequencing:

    $> update_IGOdates -h
    update_IGOdates [-h] [-s [SEQUENCING_DATE]] [filename]

* ## Release Notes

  ### Version 1.1.4

  Added `Tags` to newly created AWS users, with keys `Name` and `email`.

  A minor fix to `upload_stats`.

  ### Version 1.1.3

  The `CLI` can be installed now from [`PyPI`](https://pypi.org/project/SCRIdb/), no need to clone or sync local repository with remote one.




