1{
2 lib,
3 biopython,
4 buildPythonPackage,
5 docopt,
6 fetchFromGitHub,
7 flametree,
8 genome-collector,
9 matplotlib,
10 numpy,
11 primer3,
12 proglog,
13 pytestCheckHook,
14 python-codon-tables,
15 setuptools,
16}:
17
18buildPythonPackage rec {
19 pname = "dnachisel";
20 version = "3.2.16";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "Edinburgh-Genome-Foundry";
25 repo = "DnaChisel";
26 tag = "v${version}";
27 hash = "sha256-F+G7dwehUCHYKSGsLQR4OZg2NQ4677XMlN6jOcmz8No=";
28 };
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 biopython
34 docopt
35 flametree
36 numpy
37 proglog
38 python-codon-tables
39 ];
40
41 nativeCheckInputs = [
42 primer3
43 genome-collector
44 matplotlib
45 pytestCheckHook
46 ];
47
48 # Disable tests which requires network access
49 disabledTests = [
50 "test_circular_sequence_optimize_with_report"
51 "test_constraints_reports"
52 "test_optimize_with_report"
53 "test_optimize_with_report_no_solution"
54 "test_avoid_blast_matches_with_list"
55 "test_avoid_phage_blast_matches"
56 "test_avoid_matches_with_list"
57 "test_avoid_matches_with_phage"
58 ];
59
60 pythonImportsCheck = [ "dnachisel" ];
61
62 meta = with lib; {
63 homepage = "https://github.com/Edinburgh-Genome-Foundry/DnaChisel";
64 description = "Optimize DNA sequences under constraints";
65 changelog = "https://github.com/Edinburgh-Genome-Foundry/DnaChisel/releases/tag/${src.tag}";
66 license = licenses.mit;
67 maintainers = with maintainers; [ prusnak ];
68 };
69}