1{ lib
2, buildPythonPackage
3, fetchPypi
4, click
5, dataclasses
6, jsonschema
7, matplotlib
8, numpy
9, pandas
10, regional
11, semantic-version
12, scikitimage
13, scikitlearn
14, scipy
15, showit
16, slicedimage
17, sympy
18, tqdm
19, trackpy
20, validators
21, xarray
22, ipywidgets
23, pytest
24, pythonOlder
25}:
26
27buildPythonPackage rec {
28 pname = "starfish";
29 version = "0.2.1";
30
31 src = fetchPypi {
32 inherit pname version;
33 sha256 = "d635ef7b412b5781d6f98cd080b45098de6f3c7f7303e929b07c88b49d98ff12";
34 };
35
36 propagatedBuildInputs = [
37 click
38 jsonschema
39 matplotlib
40 numpy
41 pandas
42 regional
43 semantic-version
44 scikitimage
45 scikitlearn
46 scipy
47 showit
48 slicedimage
49 sympy
50 tqdm
51 trackpy
52 validators
53 xarray
54 ipywidgets
55 ] ++ lib.optionals (pythonOlder "3.7") [ dataclasses ];
56
57 checkInputs = [
58 pytest
59 ];
60
61 postConfigure = ''
62 substituteInPlace REQUIREMENTS.txt \
63 --replace "slicedimage==3.1.1" "slicedimage"
64 '';
65
66 checkPhase = ''
67 # a few tests < 5% require
68 rm -rf starfish/test/full_pipelines/*
69 pytest starfish \
70 --ignore starfish/core/config/test/test_config.py \
71 --ignore starfish/core/experiment/builder/test/test_build.py \
72 --ignore starfish/core/experiment/test/test_experiment.py \
73 --ignore starfish/core/image/_filter/test/test_reduce.py \
74 --ignore starfish/core/image/_registration/_apply_transform/test/test_warp.py \
75 --ignore starfish/core/image/_registration/_learn_transform/test/test_translation.py \
76 --ignore starfish/core/image/_registration/test/test_transforms_list.py \
77 --ignore starfish/core/imagestack/test/test_max_proj.py \
78 --ignore starfish/core/recipe/test/test_recipe.py \
79 --ignore starfish/core/recipe/test/test_runnable.py \
80 --ignore starfish/core/test/test_profiler.py
81 '';
82
83 meta = with lib; {
84 description = "Pipelines and pipeline components for the analysis of image-based transcriptomics data";
85 homepage = "https://spacetx-starfish.readthedocs.io/en/latest/";
86 license = licenses.mit;
87 maintainers = [ maintainers.costrouc ];
88 broken = true; # incompatible with latest python-dateutil, scikit-image
89 };
90}