Skip to main content

FASTGenomics python helper

Project description

pypi-shield travis-shield docs-shield

About

This python module handles all common interfaces of your application to the FASTGenomics runtime:

  • Input/Output of files
  • Parameters

and provides some convenience functions.

Examples

A basic interaction through the fastgenomics module looks looks this

from fastgenomics.process import FGProcess

app_dir = "/app"
data_dir = "/fastgenomics"
fg = FGProcess(app_dir, data_dir)

# access a parameter
fg.parameters["some_parameter"]

# access an input/ouput file
fg.input["some_input_file.txt"].path
fg.output["some_output_file.txt"].path

Consistency checks

The constructor of FGProcess will check if all the necessary files exist and validate if their contents is according to the FASTGenomics standard. For example, if you make a mistake in the manifest.json of the app you will get a relevant error when calling FGProcess.

Reading & Writing AnnData

You can also easily load an AnnData object with

from fastgenomics.external import anndata

# read AnnData
adata = anndata.read_data(
    fg, expr="expression_table", cell_metadata="cell_metadata", gene_metadata="gene_metadata")

# write AnnData
anndata.write_data(
    fg, adata,
    expr="expression_table", cell_metadata="cell_metadata", gene_metadata="gene_metadata")

(in the read_data the cell_metadata and gene_metadata are optional, in the write_data all the output names are optional).

note This functionality is kept in a separate submodule, to keep the dependency on scanpy optional.

Parameter checks

Aside from accessing the parameters you can also use the following function to validate if a parameter fulfills some arbitrary constraints. The code below raises a ValueError when some_parameter is not larger then zero.

fg.parametres.check(
    "some_parameter",
    lambda x: x > 0,
    'Parameter "some_parameter" must be larger then 0.')

Writing the summary with a jinja2 template

FASTGenomics requires an app to output a summary.md file, this file is typically generated using a jinja2 template. This module provides the following utility function for generating a summary file.

fg.summary.template = "path_to_the_tempalte/summary.md.j2"
fg.summary.write(some_value=1, some_other_value=2)

This generates a summary.md file in "[data_dir]/summary/summary.md" based on the template in fg.summary.template passing some_value=1 and some_other_value=2 to the template engine.

Note: The fg.summary.write function appends a ###-level section with the parameter values, with which the app was run.

Internals

The module encapsulates most of its functionality in a single class FGProcess(app_dir, data_dir) that is constructed from two paths: app_dir, where all the necessary app-related files are (most importantly, the manifest.json) and data_dir, which points to the directory structure provided by FASTGenomics. The class FGProcess has the following attributes

  • app: contains the interpreted manifest.json and the locations of app-related files.
  • parameters: facilitates the access to parameters provided by the FASTGenomics runtime.
  • input, output: represents the input and output files provide by the FASTGenomics runtime.
  • summary: handles the summary.md rendering.

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

fastgenomics-2.0.4.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastgenomics-2.0.4-py3-none-any.whl (32.7 kB view details)

Uploaded Python 3

File details

Details for the file fastgenomics-2.0.4.tar.gz.

File metadata

  • Download URL: fastgenomics-2.0.4.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.18.4

File hashes

Hashes for fastgenomics-2.0.4.tar.gz
Algorithm Hash digest
SHA256 40ac4a74d904d6da4da40c19cb9f9a1c096bb2e084cb7fc215ca3f462b8147d9
MD5 0f7094478f7538fd26ba9fd4d0f239e9
BLAKE2b-256 fa08a20d7456345c38e6cda78b785a8e259dc7bf9a744831b94b574c4a6d5c8b

See more details on using hashes here.

File details

Details for the file fastgenomics-2.0.4-py3-none-any.whl.

File metadata

  • Download URL: fastgenomics-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 32.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.18.4

File hashes

Hashes for fastgenomics-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6ef6340d86eba1304e2570442f2fd38464352e0eb4aaa02fb63930594ae65d83
MD5 58467da26f8370e9fc65cd1fc9d7b5af
BLAKE2b-256 5e2dc9a1907c37f84297453f5400500f3b8ba02c5dc18ac8f310c6042f319e84

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page