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.3.tar.gz (20.5 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.3-py3-none-any.whl (32.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for fastgenomics-2.0.3.tar.gz
Algorithm Hash digest
SHA256 59e0216a3726210f7d9c833a0b32e6688cbcc15512a21eff4e90b4a3245ef9f2
MD5 1bcdbf9674504d9423bbac0afe782174
BLAKE2b-256 1b3470ed39373ea45d7913ab2026b57489c78065c2aa105e4235453a178bc15d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for fastgenomics-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7aae847d342bf2bbb60d836b5e40fa8c802df232438cfe8996b43868a52fcc2a
MD5 b2aca57b936035b9e065c2040ae48400
BLAKE2b-256 cc0741cb45cf575fef4c057ce171c8a2a6c3a1870af5731b1dc534ef50c11544

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