Skip to content
Snippets Groups Projects
Commit c52ee49d authored by Alex Kanitz's avatar Alex Kanitz
Browse files

Merge branch 'labkey_api' into 'master'

Labkey api

See merge request zavolan_group/pipelines/rnaseqpipeline!8
parents 9d7eca2a 9dc59b8e
No related branches found
No related tags found
1 merge request!8Labkey api
Pipeline #10073 passed
> **NOTE**: Include this info in the main doc in the root directory once
> available; add information on how to get credentials for the LabKey server
> (i.e., how to obatain a password for the `.netrc` file)
In order to connect to the LabKey through API, you will first need to create a
file `.netrc` in your home directory:
```bash
touch ${HOME}/.netrc
```
Add the following lines to the file:
```console
machine <remote-instance-of-labkey-server>
login <user-email>
password <user-password>
```
To secure the file, set permissions in a way that only you can see the content
of the file:
```bash
chmod 400 .netrc
```
Install the `labkey` and `pandas` packages, ideally from a virtual environment
(e.g., `virtualenv` or `conda`):
```bash
pip install labkey pandas
```
Run the LabKey API client script:
```bash
python labkey_api.py project_name labkey_table_nane
```
Example:
```bash
python labkey_api.py TEST_ABOERSCH RNA_Seq_data_template
```
Right now the script prints a representation of a `pandas` data frame
containing the requested LabKey table the the screen. For further processing
the current script could be included in another script, or it could be modified
to write out the data in a desired file format (e.g., TSV).
# This script targets the client api version 0.4.0 and later
#
# Check the page: https://github.com/LabKey/labkey-api-python/blob/master/samples/query_examples.py
# for example about filtering in queries.
# A starting point to investigate further is here:
# https://www.labkey.org/download/clientapi_docs/javascript-api/symbols/LABKEY.Query.Filter.html
import labkey
import pandas as pd
import sys
# for convenience, load QueryFilter explicitly (avoids long lines in filter definitions)
from labkey.query import QueryFilter
if __name__ == "__main__":
# These are values of variables for which the script works
# project_name = "TEST_ABOERSCH"
# query_name = "RNA_Seq_data_template"
project_name = sys.argv[1]
query_name = sys.argv[2]
server_context = labkey.utils.create_server_context('labkey.scicore.unibas.ch', '/Zavolan Group/'+project_name, 'labkey', use_ssl=True)
schema_name = "lists"
results = labkey.query.select_rows(server_context,schema_name,query_name)
table_of_data = pd.DataFrame(results["rows"])
print(table_of_data)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment