scout-browser


Namescout-browser JSON
Version 4.82.2 PyPI version JSON
download
home_pagehttps://github.com/Clinical-Genomics/scout
SummaryClinical DNA variant visualizer and browser.
upload_time2024-05-15 13:30:19
maintainerNone
docs_urlNone
authorMåns Magnusson
requires_pythonNone
licenseNone
keywords
VCS
bugtrack_url
requirements werkzeug Flask Flask-Bootstrap Flask-CORS path.py markdown WTForms Flask-WTF Flask-Mail coloredlogs query_phenomizer Flask-Babel livereload tornado python-dateutil pymongo pathlib pdfkit phenopackets xlsxwriter click cryptography defusedxml svglib cairosvg importlib_resources authlib flask_login flask-ldapconn cyvcf2 configobj ped_parser pydantic PyYaml intervaltree anytree python-dateutil tabulate
Travis-CI No Travis.
coveralls test coverage
            
<p align="center">
	<a href="https://Clinical-Genomics.github.io/scout/">
		<img height="165" width="637" src="artwork/logo-display.png">
	</a>
	<h3 align="center">Analyze VCFs and collaborate on solving rare diseases quicker</h3>
</p>

![Build Status - GitHub][actions-build-status]
[![PyPI Version][pypi-img]][pypi-url]
![GitHub Release Date][github-release-date]
[![GitHub commits latest](https://img.shields.io/github/commits-since/Clinical-Genomics/scout/latest)](https://GitHub.com/Clinical-Genomics/scout/commit/)
[![GitHub commit rate](https://img.shields.io/github/commit-activity/w/Clinical-Genomics/scout)](https://GitHub.com/Clinical-Genomics/scout/pulse/)
[![GitHub commits](https://img.shields.io/github/commits-since/Clinical-Genomics/scout/v4.0.0.svg)](https://GitHub.com/Clinical-Genomics/scout/commit/)
[![GitHub issues-closed][closed-issues-img]][closed-issues-url]
[![Average time to resolve an issue][ismaintained-resolve-img]][ismaintained-resolve-url]
[![Percentage of issues still open][ismaintained-open-rate-img]][ismaintained-open-rate-url]
[![Coverage Status][codecov-img]][codecov-url]
[![CodeFactor](https://www.codefactor.io/repository/github/clinical-genomics/scout/badge)](https://www.codefactor.io/repository/github/clinical-genomics/scout)
[![Code style: black][black-image]][black-url]
[![Woke][woke-image]][woke-url]


## What is Scout?

- **Simple** - Analyze variants in a simple to use web interface.
- **Aggregation** - Combine results from multiple analyses and VCFs into a centralized database.
- **Collaboration** - Write comments and share cases between users and institutes.

## Documentation

This README only gives a brief overview of Scout, for a more complete reference, please check out our docs: https://clinical-genomics.github.io/scout .

## Runnable demo image - does not require installing of software and database

A simple demo instance of Scout requires the installation of Docker and can be launched either by using the command:
`docker-compose up -d` or `make up`.

The repository includes a Makefile with common shortcuts to simplify setting up and working with Scout. To see a full list and description of these shortcuts run: `make help`.

This demo is consisting of 3 containers:
- a MongoDB instance, on the default port 27017 in the container, mapped to host port 27013
- scout-cli --> the Scout command line, connected to the database. Populates the database with demo data
- scout-web --> the Scout web app, that serves the app on localhost, port 8000.

Once the server has started you and open the app in the web browser at the following address: http://localhost:8000/

The command to stop the demo are either `docker-compose down` or `make down`.

Instructions on how to run a Scout image connected to your local database or a custom database are present [on this page](docs/admin-guide/containers/container-deploy.md).

## Installation

<!-- You can install the latest release of Scout using `pip`:

```bash
pip install scout-browser

# ... to include optional coverage tools you would use:
pip install scout-browser[coverage]
```

If you would like to install Scout for local development: -->

```bash
git clone https://github.com/Clinical-Genomics/scout
cd scout
pip install --editable .
```

Scout PDF reports are created using [Flask-WeasyPrint](https://pythonhosted.org/Flask-WeasyPrint/). This library requires external dependencies which need be installed separately (namely Cairo and Pango). See platform-specific instructions for Linux, macOS and Windows available on the WeasyPrint installation [pages](https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation).

<b>NB</b>: in order to convert HTML reports into PDF reports, we have recently switched from the WeasyPrint lib to [python-pdfkit](https://github.com/JazzCore/python-pdfkit). For this reason, when upgrading to a Scout version >4.47, you need to install an additional [wkhtmltopdf system library](https://wkhtmltopdf.org/).

You also need to have an instance of MongoDB running. I've found that it's easiest to do using the official Docker image:

```bash
docker run --name mongo -p 27017:27017 mongo
```

## Usage

### Demo - requires pip-installing the app in a container and a running instance of mongodb

Once installed, you can setup Scout by running a few commands using the included command line interface. Given you have a MongoDB server listening on the default port (27017), this is how you would setup a fully working Scout demo:

```bash
scout setup demo
```

This will setup an instance of scout with a database called `scout-demo`. Now run

```bash
scout --demo serve
```
And play around with the interface. A user has been created with email clark.kent@mail.com so use that address to get access

### Initialize scout

To initialize a working instance with all genes, diseases etc run

```bash
scout setup database
```

for more info, run `scout --help`

The previous command initializes the database with a curated collection of gene definitions with links to OMIM along with HPO phenotype terms. Now we will load some example data. Scout expects the analysis to be accomplished using various gene panels so let's load one and then our first analysis case:

```bash
scout load panel scout/demo/panel_1.txt
scout load case scout/demo/643594.config.yaml
```

## Integration with chanjo and chanjo2 for coverage report visualization

Scout may be configured to visualize coverage reports produced by [Chanjo][chanjo] or [chanjo2][chanjo2]. Instructions on
how to enable this feature can be found in the document [chanjo_coverage_integration][chanjo-scout].

## Integration with loqusdb for integrating local variant frequencies

Scout may be configured to visualize local variant frequencies monitored by [Loqusdb][loqusdb].
Instructions on how to enable this feature can be found in the document
[loqusdb integration][loqusdb-scout].

## Integration with Gens for displaying copy number profiles for variants

Scout may be configured to link to a local [Gens][gens] installation.
Instructions on how to enable this feature can be found in the document
[Gens integration][gens-scout].

## Server setup

Scout needs a server config to know which databases to connect to etc. Depending on which
information you provide you activate different parts of the interface automatically,
including user authentication, coverage, and local observations.

This is an example of the config file:

```python
# scoutconfig.py

# list of email addresses to send errors to in production
ADMINS = ['paul.anderson@magnolia.com']

MONGO_HOST = 'localhost'
MONGO_PORT = 27017
MONGO_DBNAME = 'scout'
MONGO_USERNAME = 'testUser'
MONGO_PASSWORD = 'testPass'

# enable user authentication using Google OAuth 2.0
GOOGLE = dict(
   client_id="client_id_string.apps.googleusercontent.com",
   client_secret="client_secret_string",
   discovery_url="https://accounts.google.com/.well-known/openid-configuration"
)

# enable Phenomizer gene predictions from phenotype terms
PHENOMIZER_USERNAME = '???'
PHENOMIZER_PASSWORD = '???'

# enable Chanjo coverage integration
SQLALCHEMY_DATABASE_URI = '???'
REPORT_LANGUAGE = 'en'  # or 'sv'

# other interesting settings
SQLALCHEMY_TRACK_MODIFICATIONS = False  # this is essential in production
TEMPLATES_AUTO_RELOAD = False  			# consider turning off in production
SECRET_KEY = 'secret key'               # override in production!
```

Most of the config settings are optional. A minimal config would consist of SECRET_KEY and MONGO_DBNAME.

Starting the server in now really easy, for the demo and local development we will use the CLI:

```bash
scout --flask-config config.py serve
```

![Scout Interface demo](artwork/scout-variant-demo.png)

### Hosting a production server

When running the server in production you will likely want to use a proper Python server solution
such as Gunicorn.
This is also how we can multiprocess the server and use encrypted HTTPS connections.

```bash
SCOUT_CONFIG=./config.py gunicorn --workers 4 --bind 0.0.0.0:8080 scout.server.auto:app
```

For added security and flexibility, we recommend a reverse proxy solution like NGINX.

### Setting up a user login system
Scout currently supports 3 mutually exclusive types of login:
- Google authentication via OpenID Connect (OAuth 2.0)
- LDAP authentication
- Simple authentication using userid and password

The first 2 solutions are both suitable for a production server. A description on how to set up an advanced login system is available in the [admin guide](docs/admin-guide/login-system.md)


### Integration with Matchmaker Exchange

Starting from release 4.4, Scout offers integration for patient data sharing via Matchmaker
Exchange.
General info about Matchmaker and patient matching could be found in [this paper][matchmaker-pub].
For a technical guideline of our implementation of Matchmaker Exchange at Clinical Genomics and its
integration with Scout check scouts [matchmaker docs][matchmaker-scout].
A user-oriented guide describing how to share case and variant data to Matchmaker using Scout can
be found [here][matchmaker-scout-sharing].


## Development

To keep the code base consistent, formatting with [Black](https://github.com/psf/black) is always applied as part of the PR submission process via GitHub Actions. While not strictly required, to avoid confusion, it is suggested that developers apply Black locally.
Black defaults to 88 characters per line, we use 100.

To format all the files in the project run:

```bash
black --line-length 100 .
```

We recommend using Black with [pre-commit](https://github.com/pre-commit/pre-commit).
In `.pre-commit-config.yaml` you can find the pre-commit configuration.
To enable this configuration run:

```bash
pre-commit install
```

### Test

To run unit tests:

```bash
pytest
```


### Contributing to Scout

If you want to contribute and make Scout better, you help is very appreciated! Bug reports or
feature requests are really helpful and can be submitted via github issues.
Feel free to open a pull request to add a new functionality or fixing a bug, we welcome any help,
regardless of the amount of code provided or your skills as a programmer.
More info on how to contribute to the project and a description of the Scout branching workflow can
be found in [CONTRIBUTING](CONTRIBUTING.md).



[chanjo]: https://github.com/Clinical-Genomics/chanjo
[chanjo2]: https://github.com/Clinical-Genomics/chanjo2
[chanjo-scout]: docs/admin-guide/chanjo_coverage_integration.md
[loqusdb]: https://github.com/moonso/loqusdb
[loqusdb-scout]: docs/admin-guide/loqusdb_integration.md
[gens]: https://github.com/Clinical-Genomics-Lund/gens
[gens-scout]: docs/admin-guide/gens_integration.md
[github-release-date]: https://img.shields.io/github/release-date/Clinical-Genomics/scout
[matchmaker-pub]: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6016856/
[matchmaker-scout]: docs/admin-guide/matchmaker_exchange_integration.md
[matchmaker-scout-sharing]: docs/user-guide/cases.md#matchmaker-exchange-integration
[travis-img]: https://img.shields.io/travis/Clinical-Genomics/scout/develop.svg?style=flat-square
[travis-url]: https://travis-ci.org/Clinical-Genomics/scout
[pypi-img]: https://img.shields.io/pypi/v/scout-browser.svg?style=flat-square
[pypi-url]: https://pypi.python.org/pypi/scout-browser/
[ismaintained-resolve-img]: http://isitmaintained.com/badge/resolution/Clinical-Genomics/scout.svg
[ismaintained-resolve-url]: http://isitmaintained.com/project/Clinical-Genomics/scout
[ismaintained-open-rate-img]: http://isitmaintained.com/badge/open/Clinical-Genomics/scout.svg
[ismaintained-open-rate-url]: http://isitmaintained.com/project/Clinical-Genomics/scout
[closed-issues-img]: https://img.shields.io/github/issues-closed/Clinical-Genomics/scout.svg
[closed-issues-url]: https://GitHub.com/Clinical-Genomics/scout/issues?q=is%3Aissue+is%3Aclosed
[codecov-img]: https://codecov.io/gh/Clinical-Genomics/scout/branch/main/graph/badge.svg?token=BOhMTZ4T3c
[codecov-url]: https://codecov.io/gh/Clinical-Genomics/scout
[actions-build-status]: https://github.com/Clinical-Genomics/scout/actions/workflows/build_and_publish.yml/badge.svg
[black-image]: https://img.shields.io/badge/code%20style-black-000000.svg
[black-url]: https://github.com/psf/black
[woke-image]: https://github.com/Clinical-Genomics/scout/actions/workflows/woke.yml/badge.svg
[woke-url]: https://github.com/Clinical-Genomics/scout/actions/workflows/woke.yml



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Clinical-Genomics/scout",
    "name": "scout-browser",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "M\u00e5ns Magnusson",
    "author_email": "mans.magnusson@scilifelab.se",
    "download_url": "https://files.pythonhosted.org/packages/e4/7b/950b7779afec636c5a9af4acacf05fcf387b6e11bc06e31414a50c9558fb/scout-browser-4.82.2.tar.gz",
    "platform": null,
    "description": "\n<p align=\"center\">\n\t<a href=\"https://Clinical-Genomics.github.io/scout/\">\n\t\t<img height=\"165\" width=\"637\" src=\"artwork/logo-display.png\">\n\t</a>\n\t<h3 align=\"center\">Analyze VCFs and collaborate on solving rare diseases quicker</h3>\n</p>\n\n![Build Status - GitHub][actions-build-status]\n[![PyPI Version][pypi-img]][pypi-url]\n![GitHub Release Date][github-release-date]\n[![GitHub commits latest](https://img.shields.io/github/commits-since/Clinical-Genomics/scout/latest)](https://GitHub.com/Clinical-Genomics/scout/commit/)\n[![GitHub commit rate](https://img.shields.io/github/commit-activity/w/Clinical-Genomics/scout)](https://GitHub.com/Clinical-Genomics/scout/pulse/)\n[![GitHub commits](https://img.shields.io/github/commits-since/Clinical-Genomics/scout/v4.0.0.svg)](https://GitHub.com/Clinical-Genomics/scout/commit/)\n[![GitHub issues-closed][closed-issues-img]][closed-issues-url]\n[![Average time to resolve an issue][ismaintained-resolve-img]][ismaintained-resolve-url]\n[![Percentage of issues still open][ismaintained-open-rate-img]][ismaintained-open-rate-url]\n[![Coverage Status][codecov-img]][codecov-url]\n[![CodeFactor](https://www.codefactor.io/repository/github/clinical-genomics/scout/badge)](https://www.codefactor.io/repository/github/clinical-genomics/scout)\n[![Code style: black][black-image]][black-url]\n[![Woke][woke-image]][woke-url]\n\n\n## What is Scout?\n\n- **Simple** - Analyze variants in a simple to use web interface.\n- **Aggregation** - Combine results from multiple analyses and VCFs into a centralized database.\n- **Collaboration** - Write comments and share cases between users and institutes.\n\n## Documentation\n\nThis README only gives a brief overview of Scout, for a more complete reference, please check out our docs: https://clinical-genomics.github.io/scout .\n\n## Runnable demo image - does not require installing of software and database\n\nA simple demo instance of Scout requires the installation of Docker and can be launched either by using the command:\n`docker-compose up -d` or `make up`.\n\nThe repository includes a Makefile with common shortcuts to simplify setting up and working with Scout. To see a full list and description of these shortcuts run: `make help`.\n\nThis demo is consisting of 3 containers:\n- a MongoDB instance, on the default port 27017 in the container, mapped to host port 27013\n- scout-cli --> the Scout command line, connected to the database. Populates the database with demo data\n- scout-web --> the Scout web app, that serves the app on localhost, port 8000.\n\nOnce the server has started you and open the app in the web browser at the following address: http://localhost:8000/\n\nThe command to stop the demo are either `docker-compose down` or `make down`.\n\nInstructions on how to run a Scout image connected to your local database or a custom database are present [on this page](docs/admin-guide/containers/container-deploy.md).\n\n## Installation\n\n<!-- You can install the latest release of Scout using `pip`:\n\n```bash\npip install scout-browser\n\n# ... to include optional coverage tools you would use:\npip install scout-browser[coverage]\n```\n\nIf you would like to install Scout for local development: -->\n\n```bash\ngit clone https://github.com/Clinical-Genomics/scout\ncd scout\npip install --editable .\n```\n\nScout PDF reports are created using [Flask-WeasyPrint](https://pythonhosted.org/Flask-WeasyPrint/). This library requires external dependencies which need be installed separately (namely Cairo and Pango). See platform-specific instructions for Linux, macOS and Windows available on the WeasyPrint installation [pages](https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation).\n\n<b>NB</b>: in order to convert HTML reports into PDF reports, we have recently switched from the WeasyPrint lib to [python-pdfkit](https://github.com/JazzCore/python-pdfkit). For this reason, when upgrading to a Scout version >4.47, you need to install an additional [wkhtmltopdf system library](https://wkhtmltopdf.org/).\n\nYou also need to have an instance of MongoDB running. I've found that it's easiest to do using the official Docker image:\n\n```bash\ndocker run --name mongo -p 27017:27017 mongo\n```\n\n## Usage\n\n### Demo - requires pip-installing the app in a container and a running instance of mongodb\n\nOnce installed, you can setup Scout by running a few commands using the included command line interface. Given you have a MongoDB server listening on the default port (27017), this is how you would setup a fully working Scout demo:\n\n```bash\nscout setup demo\n```\n\nThis will setup an instance of scout with a database called `scout-demo`. Now run\n\n```bash\nscout --demo serve\n```\nAnd play around with the interface. A user has been created with email clark.kent@mail.com so use that address to get access\n\n### Initialize scout\n\nTo initialize a working instance with all genes, diseases etc run\n\n```bash\nscout setup database\n```\n\nfor more info, run `scout --help`\n\nThe previous command initializes the database with a curated collection of gene definitions with links to OMIM along with HPO phenotype terms. Now we will load some example data. Scout expects the analysis to be accomplished using various gene panels so let's load one and then our first analysis case:\n\n```bash\nscout load panel scout/demo/panel_1.txt\nscout load case scout/demo/643594.config.yaml\n```\n\n## Integration with chanjo and chanjo2 for coverage report visualization\n\nScout may be configured to visualize coverage reports produced by [Chanjo][chanjo] or [chanjo2][chanjo2]. Instructions on\nhow to enable this feature can be found in the document [chanjo_coverage_integration][chanjo-scout].\n\n## Integration with loqusdb for integrating local variant frequencies\n\nScout may be configured to visualize local variant frequencies monitored by [Loqusdb][loqusdb].\nInstructions on how to enable this feature can be found in the document\n[loqusdb integration][loqusdb-scout].\n\n## Integration with Gens for displaying copy number profiles for variants\n\nScout may be configured to link to a local [Gens][gens] installation.\nInstructions on how to enable this feature can be found in the document\n[Gens integration][gens-scout].\n\n## Server setup\n\nScout needs a server config to know which databases to connect to etc. Depending on which\ninformation you provide you activate different parts of the interface automatically,\nincluding user authentication, coverage, and local observations.\n\nThis is an example of the config file:\n\n```python\n# scoutconfig.py\n\n# list of email addresses to send errors to in production\nADMINS = ['paul.anderson@magnolia.com']\n\nMONGO_HOST = 'localhost'\nMONGO_PORT = 27017\nMONGO_DBNAME = 'scout'\nMONGO_USERNAME = 'testUser'\nMONGO_PASSWORD = 'testPass'\n\n# enable user authentication using Google OAuth 2.0\nGOOGLE = dict(\n   client_id=\"client_id_string.apps.googleusercontent.com\",\n   client_secret=\"client_secret_string\",\n   discovery_url=\"https://accounts.google.com/.well-known/openid-configuration\"\n)\n\n# enable Phenomizer gene predictions from phenotype terms\nPHENOMIZER_USERNAME = '???'\nPHENOMIZER_PASSWORD = '???'\n\n# enable Chanjo coverage integration\nSQLALCHEMY_DATABASE_URI = '???'\nREPORT_LANGUAGE = 'en'  # or 'sv'\n\n# other interesting settings\nSQLALCHEMY_TRACK_MODIFICATIONS = False  # this is essential in production\nTEMPLATES_AUTO_RELOAD = False  \t\t\t# consider turning off in production\nSECRET_KEY = 'secret key'               # override in production!\n```\n\nMost of the config settings are optional. A minimal config would consist of SECRET_KEY and MONGO_DBNAME.\n\nStarting the server in now really easy, for the demo and local development we will use the CLI:\n\n```bash\nscout --flask-config config.py serve\n```\n\n![Scout Interface demo](artwork/scout-variant-demo.png)\n\n### Hosting a production server\n\nWhen running the server in production you will likely want to use a proper Python server solution\nsuch as Gunicorn.\nThis is also how we can multiprocess the server and use encrypted HTTPS connections.\n\n```bash\nSCOUT_CONFIG=./config.py gunicorn --workers 4 --bind 0.0.0.0:8080 scout.server.auto:app\n```\n\nFor added security and flexibility, we recommend a reverse proxy solution like NGINX.\n\n### Setting up a user login system\nScout currently supports 3 mutually exclusive types of login:\n- Google authentication via OpenID Connect (OAuth 2.0)\n- LDAP authentication\n- Simple authentication using userid and password\n\nThe first 2 solutions are both suitable for a production server. A description on how to set up an advanced login system is available in the [admin guide](docs/admin-guide/login-system.md)\n\n\n### Integration with Matchmaker Exchange\n\nStarting from release 4.4, Scout offers integration for patient data sharing via Matchmaker\nExchange.\nGeneral info about Matchmaker and patient matching could be found in [this paper][matchmaker-pub].\nFor a technical guideline of our implementation of Matchmaker Exchange at Clinical Genomics and its\nintegration with Scout check scouts [matchmaker docs][matchmaker-scout].\nA user-oriented guide describing how to share case and variant data to Matchmaker using Scout can\nbe found [here][matchmaker-scout-sharing].\n\n\n## Development\n\nTo keep the code base consistent, formatting with [Black](https://github.com/psf/black) is always applied as part of the PR submission process via GitHub Actions. While not strictly required, to avoid confusion, it is suggested that developers apply Black locally.\nBlack defaults to 88 characters per line, we use 100.\n\nTo format all the files in the project run:\n\n```bash\nblack --line-length 100 .\n```\n\nWe recommend using Black with [pre-commit](https://github.com/pre-commit/pre-commit).\nIn `.pre-commit-config.yaml` you can find the pre-commit configuration.\nTo enable this configuration run:\n\n```bash\npre-commit install\n```\n\n### Test\n\nTo run unit tests:\n\n```bash\npytest\n```\n\n\n### Contributing to Scout\n\nIf you want to contribute and make Scout better, you help is very appreciated! Bug reports or\nfeature requests are really helpful and can be submitted via github issues.\nFeel free to open a pull request to add a new functionality or fixing a bug, we welcome any help,\nregardless of the amount of code provided or your skills as a programmer.\nMore info on how to contribute to the project and a description of the Scout branching workflow can\nbe found in [CONTRIBUTING](CONTRIBUTING.md).\n\n\n\n[chanjo]: https://github.com/Clinical-Genomics/chanjo\n[chanjo2]: https://github.com/Clinical-Genomics/chanjo2\n[chanjo-scout]: docs/admin-guide/chanjo_coverage_integration.md\n[loqusdb]: https://github.com/moonso/loqusdb\n[loqusdb-scout]: docs/admin-guide/loqusdb_integration.md\n[gens]: https://github.com/Clinical-Genomics-Lund/gens\n[gens-scout]: docs/admin-guide/gens_integration.md\n[github-release-date]: https://img.shields.io/github/release-date/Clinical-Genomics/scout\n[matchmaker-pub]: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6016856/\n[matchmaker-scout]: docs/admin-guide/matchmaker_exchange_integration.md\n[matchmaker-scout-sharing]: docs/user-guide/cases.md#matchmaker-exchange-integration\n[travis-img]: https://img.shields.io/travis/Clinical-Genomics/scout/develop.svg?style=flat-square\n[travis-url]: https://travis-ci.org/Clinical-Genomics/scout\n[pypi-img]: https://img.shields.io/pypi/v/scout-browser.svg?style=flat-square\n[pypi-url]: https://pypi.python.org/pypi/scout-browser/\n[ismaintained-resolve-img]: http://isitmaintained.com/badge/resolution/Clinical-Genomics/scout.svg\n[ismaintained-resolve-url]: http://isitmaintained.com/project/Clinical-Genomics/scout\n[ismaintained-open-rate-img]: http://isitmaintained.com/badge/open/Clinical-Genomics/scout.svg\n[ismaintained-open-rate-url]: http://isitmaintained.com/project/Clinical-Genomics/scout\n[closed-issues-img]: https://img.shields.io/github/issues-closed/Clinical-Genomics/scout.svg\n[closed-issues-url]: https://GitHub.com/Clinical-Genomics/scout/issues?q=is%3Aissue+is%3Aclosed\n[codecov-img]: https://codecov.io/gh/Clinical-Genomics/scout/branch/main/graph/badge.svg?token=BOhMTZ4T3c\n[codecov-url]: https://codecov.io/gh/Clinical-Genomics/scout\n[actions-build-status]: https://github.com/Clinical-Genomics/scout/actions/workflows/build_and_publish.yml/badge.svg\n[black-image]: https://img.shields.io/badge/code%20style-black-000000.svg\n[black-url]: https://github.com/psf/black\n[woke-image]: https://github.com/Clinical-Genomics/scout/actions/workflows/woke.yml/badge.svg\n[woke-url]: https://github.com/Clinical-Genomics/scout/actions/workflows/woke.yml\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Clinical DNA variant visualizer and browser.",
    "version": "4.82.2",
    "project_urls": {
        "Homepage": "https://github.com/Clinical-Genomics/scout"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "122ab0e45a9a1e9c88d6db9d4e8c6f3edcf5570aad6f82070a4d717b8d5fe870",
                "md5": "c3359193ef92caeb9c3be9e8e828c722",
                "sha256": "0136971487f87cb22c296bfc7755bdecd9678c0014eb42704f5a0a0ed4b33421"
            },
            "downloads": -1,
            "filename": "scout_browser-4.82.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c3359193ef92caeb9c3be9e8e828c722",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 16224411,
            "upload_time": "2024-05-15T13:30:15",
            "upload_time_iso_8601": "2024-05-15T13:30:15.035876Z",
            "url": "https://files.pythonhosted.org/packages/12/2a/b0e45a9a1e9c88d6db9d4e8c6f3edcf5570aad6f82070a4d717b8d5fe870/scout_browser-4.82.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e47b950b7779afec636c5a9af4acacf05fcf387b6e11bc06e31414a50c9558fb",
                "md5": "52fb9d131a4fca7a7b19fcc123770923",
                "sha256": "3562d613daa6372b8d505148f79b282906f4a8bfc48c6b5eb031c20ad42662c5"
            },
            "downloads": -1,
            "filename": "scout-browser-4.82.2.tar.gz",
            "has_sig": false,
            "md5_digest": "52fb9d131a4fca7a7b19fcc123770923",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 16701285,
            "upload_time": "2024-05-15T13:30:19",
            "upload_time_iso_8601": "2024-05-15T13:30:19.350122Z",
            "url": "https://files.pythonhosted.org/packages/e4/7b/950b7779afec636c5a9af4acacf05fcf387b6e11bc06e31414a50c9558fb/scout-browser-4.82.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-15 13:30:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Clinical-Genomics",
    "github_project": "scout",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "werkzeug",
            "specs": [
                [
                    "<",
                    "3"
                ]
            ]
        },
        {
            "name": "Flask",
            "specs": [
                [
                    ">=",
                    "2.0"
                ]
            ]
        },
        {
            "name": "Flask-Bootstrap",
            "specs": []
        },
        {
            "name": "Flask-CORS",
            "specs": []
        },
        {
            "name": "path.py",
            "specs": []
        },
        {
            "name": "markdown",
            "specs": []
        },
        {
            "name": "WTForms",
            "specs": []
        },
        {
            "name": "Flask-WTF",
            "specs": []
        },
        {
            "name": "Flask-Mail",
            "specs": []
        },
        {
            "name": "coloredlogs",
            "specs": []
        },
        {
            "name": "query_phenomizer",
            "specs": []
        },
        {
            "name": "Flask-Babel",
            "specs": [
                [
                    ">=",
                    "3"
                ]
            ]
        },
        {
            "name": "livereload",
            "specs": []
        },
        {
            "name": "tornado",
            "specs": [
                [
                    "<",
                    "6.3"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": []
        },
        {
            "name": "pymongo",
            "specs": []
        },
        {
            "name": "pathlib",
            "specs": []
        },
        {
            "name": "pdfkit",
            "specs": []
        },
        {
            "name": "phenopackets",
            "specs": []
        },
        {
            "name": "xlsxwriter",
            "specs": []
        },
        {
            "name": "click",
            "specs": []
        },
        {
            "name": "cryptography",
            "specs": []
        },
        {
            "name": "defusedxml",
            "specs": []
        },
        {
            "name": "svglib",
            "specs": []
        },
        {
            "name": "cairosvg",
            "specs": []
        },
        {
            "name": "importlib_resources",
            "specs": []
        },
        {
            "name": "authlib",
            "specs": []
        },
        {
            "name": "flask_login",
            "specs": []
        },
        {
            "name": "flask-ldapconn",
            "specs": []
        },
        {
            "name": "cyvcf2",
            "specs": []
        },
        {
            "name": "configobj",
            "specs": []
        },
        {
            "name": "ped_parser",
            "specs": []
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2"
                ]
            ]
        },
        {
            "name": "PyYaml",
            "specs": [
                [
                    ">=",
                    "5.1"
                ]
            ]
        },
        {
            "name": "intervaltree",
            "specs": [
                [
                    "==",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "anytree",
            "specs": []
        },
        {
            "name": "python-dateutil",
            "specs": []
        },
        {
            "name": "tabulate",
            "specs": []
        }
    ],
    "lcname": "scout-browser"
}
        
Elapsed time: 0.27866s