summary refs log tree commit diff
path: root/pkgs/development/python-modules/mdtraj/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/mdtraj/default.nix')
-rw-r--r--pkgs/development/python-modules/mdtraj/default.nix102
1 files changed, 102 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/mdtraj/default.nix b/pkgs/development/python-modules/mdtraj/default.nix
new file mode 100644
index 0000000000000..ad20cdbf06711
--- /dev/null
+++ b/pkgs/development/python-modules/mdtraj/default.nix
@@ -0,0 +1,102 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, llvmPackages
+, zlib
+, cython
+, oldest-supported-numpy
+, setuptools
+, wheel
+, astunparse
+, numpy
+, pyparsing
+, scipy
+, gsd
+, networkx
+, pandas
+, pytest-xdist
+, pytestCheckHook
+, tables
+}:
+
+buildPythonPackage rec {
+  pname = "mdtraj";
+  version = "1.9.9";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "mdtraj";
+    repo = "mdtraj";
+    rev = "refs/tags/${version}";
+    hash = "sha256-2Jg6DyVJlRBLD/6hMtcsrAdxKF5RkpUuhAQm/lqVGeE=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "gsd_3-compatibility.patch";
+      url = "https://github.com/mdtraj/mdtraj/commit/81209d00817ab07cfc4668bf5ec88088d16904c0.patch";
+      hash = "sha256-ttNmij7csxF0Z5wPPwhGumRX055W2IgFjRAe6nI6GNY=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cython
+    oldest-supported-numpy
+    setuptools
+    wheel
+  ];
+
+  buildInputs = [
+    zlib
+  ] ++ lib.optionals stdenv.cc.isClang [
+    llvmPackages.openmp
+  ];
+
+  propagatedBuildInputs = [
+    astunparse
+    numpy
+    pyparsing
+    scipy
+  ];
+
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-incompatible-function-pointer-types";
+
+  nativeCheckInputs = [
+    gsd
+    networkx
+    pandas
+    pytest-xdist
+    pytestCheckHook
+    tables
+  ];
+
+  preCheck = ''
+    cd tests
+    export PATH=$out/bin:$PATH
+  '';
+
+  disabledTests = [
+    # require network access
+    "test_pdb_from_url"
+    "test_1vii_url_and_gz"
+
+    # fail due to data race
+    "test_read_atomindices_1"
+    "test_read_atomindices_2"
+
+    # flaky test
+    "test_distances_t"
+  ];
+
+  pythonImportsCheck = [ "mdtraj" ];
+
+  meta = with lib; {
+    description = "An open library for the analysis of molecular dynamics trajectories";
+    homepage = "https://github.com/mdtraj/mdtraj";
+    changelog = "https://github.com/mdtraj/mdtraj/releases/tag/${src.rev}";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ natsukium ];
+  };
+}