-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsetup.py
More file actions
61 lines (57 loc) · 3 KB
/
setup.py
File metadata and controls
61 lines (57 loc) · 3 KB
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
from setuptools import setup, find_packages
from setuptools.command.install import install
import sysconfig
import os
import laml_libs
import fast_em
from os import walk, listdir
from os.path import join, normpath, isfile
def recursive_list_dir(path):
listing = []
for root, dirs, files in os.walk(path):
for f in files:
full_path = os.path.join(root, f)
rel_path = os.path.relpath(full_path, path)
listing.append(rel_path)
return listing
# Note from GC
# 1. If installing from python setup.py install, please `pip install cvxpy` first.
# 2. SCS requires numpy < 1.2 to be installed: https://github.com/bodono/scs-python/issues/32#issuecomment-802977693
# 3. cvxpy fails to install on python 3.12, requires SCS, ECOS and OSQP: https://github.com/cvxpy/cvxpy/issues/1367
# 4. qdldl (dependency of osqp has no wheel for python 3.12): https://github.com/cvxpy/cvxpy/issues/2269
# 5. osqp < 0.6.2 does not depend on qdldl to install cvxpy
param = {
'name': laml_libs.PROGRAM_NAME,
'version': laml_libs.PROGRAM_VERSION,
'description': laml_libs.PROGRAM_DESCRIPTION,
'author': laml_libs.PROGRAM_AUTHOR,
'license': laml_libs.PROGRAM_LICENSE,
'packages': find_packages(),
'package_data': {'':recursive_list_dir('laml_unit_tests')},
'include_package_data': True,
'scripts': ['run_laml.py', 'laml_tests.py', 'extra_laml_tests.py'],
'zip_safe': True,
'install_requires': ['scipy>=1.3.1', 'cvxpy>=1.4', 'treeswift>=1.1.39', 'Mosek>=10.1.16',
'Biopython>=1.71','matplotlib>=2.2.2','setuptools',"jax>=0.4.30,<0.5",
"loguru>=0.7.3,<1.0", "networkx>=3.2.1,<4.0", "optax>=0.2.4,<1.0", "pandas>=2.2.3,<3.0", 'numpy>=1.21', 'numba>=0.56'],
'extras_require' : {'bio': ['scikit-bio>=0.5.8']},
'keywords': 'Phylogenetics Evolution Computational Maximum-likelihood Lineage Tracing',
'long_description': """LAML is a maximum likelihood algorithm under the Probabilistic Mixed-type Missing (PMM) model. Given a lineage tracing experiment character matrix with heterogeneous per-site alphabets and mutation probabilities, LAML finds a maximum likelihood tree topology and estimates parameters including time-resolved branch lengths, heritable silencing rate and non-heritable dropout probability.""",
'classifiers': [
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License (GPL)",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Topic :: Scientific/Engineering :: Bio-Informatics",
],
'entry_points': {
'console_scripts': [
'run_laml= run_laml:main',
'laml_tests=laml_tests:main',
],
},
}
setup(**param)