generated from populationgenomics/cpg-python-template-repo
-
Notifications
You must be signed in to change notification settings - Fork 4
/
setup.py
90 lines (81 loc) · 3.8 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
"""
setup.py for the talos package
"""
from setuptools import find_packages, setup
with open('README.md', encoding='utf-8') as handle:
readme = handle.read()
def read_reqs(filename: str) -> list[str]:
"""
Read requirements from a file, return as a list
TODO eventually split out the requirements vs. the setup content
Args:
filename (str): the requirements file to parse
Returns:
list[str]: the requirements
"""
with open(filename, encoding='utf-8') as filehandler:
return [line.strip() for line in filehandler if line.strip() and not line.startswith('#')]
setup(
name='talos',
description='Centre for Population Genomics Variant Prioritisation',
long_description=readme,
version='6.1.3',
author='Matthew Welland, CPG',
author_email='[email protected], [email protected]',
package_data={'talos': ['templates/*.jinja', 'example_config.toml']},
url='https://github.com/populationgenomics/talos',
license='MIT',
classifiers=[
'Environment :: Console',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: MIT License',
'Natural Language :: English',
'Operating System :: MacOS :: MacOS X',
'Operating System :: POSIX',
'Operating System :: Unix',
'Programming Language :: Python',
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Bio-Informatics',
],
packages=find_packages('src'),
package_dir={'': 'src'},
include_package_data=True,
install_requires=read_reqs('requirements.txt'),
extras_require={
'test': read_reqs('requirements-dev.txt'),
'cpg': read_reqs('requirements-cpg.txt'),
},
entry_points={
'console_scripts': [
# for use in translating a VEP annotated VCF to a MatrixTable
'VcfToMt = talos.VcfToMt:cli_main',
# CPG internal, scans database for published reports, collects into an index page
'BuildReportIndexPage = talos.CPG.BuildReportIndexPage:main',
# CPG implementation, builds cohort phenopackets
'MakePhenopackets = talos.CPG.MakePhenopackets:cli_main',
# CPG implementation, builds cohort phenopackets from a pedigree with HPO terms
'ConvertPedToPhenopackets = talos.CPG.convert_ePED_to_phenopackets:cli_main',
# use the HPO terms to select panels for this analysis
'GeneratePanelData = talos.GeneratePanelData:cli_main',
# query PanelApp for those selected panels
'QueryPanelapp = talos.QueryPanelapp:cli_main',
# use API queries to find the gene symbol for each gene ID
'FindGeneSymbolMap = talos.FindGeneSymbolMap:cli_main',
# # TODO - this thing just doesn't work in its current form. Does not scale.
# # match participant HPOs to gene HPOs for prioritisation
# # 'MatchGenesToPhenotypes = talos.MatchGenesToPhenotypes:cli_main', # noqa: ERA001
# Filter and label a small-variant MatrixTable
'RunHailFiltering = talos.RunHailFiltering:cli_main',
# Filter and label a SV MatrixTable
'RunHailFilteringSV = talos.RunHailFilteringSV:cli_main',
# Run each of the category-labelled variants through MOI filters
'ValidateMOI = talos.ValidateMOI:cli_main',
# catch variants which have strong phenotypic matches
'HPOFlagging = talos.HPOFlagging:cli_main',
# CPG internal (?), publish those results as an HTML report
'CreateTalosHTML = talos.CreateTalosHTML:cli_main',
# CPG internal (?), generate a file for ingestion by Seqr
'MinimiseOutputForSeqr = talos.MinimiseOutputForSeqr:cli_main',
],
},
)