1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 biopython,
6 docopt,
7 flametree,
8 numpy,
9 proglog,
10 pytestCheckHook,
11 pythonOlder,
12 python-codon-tables,
13 primer3,
14 genome-collector,
15 matplotlib,
16}:
17
18buildPythonPackage rec {
19 pname = "dnachisel";
20 version = "3.2.13";
21 format = "setuptools";
22
23 disabled = pythonOlder "3.7";
24
25 src = fetchFromGitHub {
26 owner = "Edinburgh-Genome-Foundry";
27 repo = "DnaChisel";
28 tag = "v${version}";
29 hash = "sha256-XmaUkmRGD1py5+8gfRe/6WegX1bOQtbTDDUT6RO2rBk=";
30 };
31
32 propagatedBuildInputs = [
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}