about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/science/biology
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/science/biology')
-rw-r--r--nixpkgs/pkgs/applications/science/biology/EZminc/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/biology/N3/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/biology/angsd/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/biology/ants/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/science/biology/aragorn/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/science/biology/astral/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bamtools/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bayescan/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bcftools/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bedops/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bedtools/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bftools/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bioawk/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/biology/blast/bin.nix61
-rw-r--r--nixpkgs/pkgs/applications/science/biology/blast/default.nix109
-rw-r--r--nixpkgs/pkgs/applications/science/biology/blast/no_slash_bin.patch178
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bowtie/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bppsuite/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bwa/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/cmtk/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patch25
-rw-r--r--nixpkgs/pkgs/applications/science/biology/deeptools/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/science/biology/delly/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/science/biology/diamond/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/dssp/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/science/biology/emboss/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/biology/exonerate/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/biology/fastp/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/science/biology/febio-studio/febio-studio-cmake.patch38
-rw-r--r--nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/biology/freebayes/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/gatk/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/biology/genmap/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/biology/genmap/gtest.patch30
-rw-r--r--nixpkgs/pkgs/applications/science/biology/hh-suite/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/biology/hisat2/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/biology/hmmer/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/biology/igv/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/biology/inormalize/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch10
-rw-r--r--nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch10
-rw-r--r--nixpkgs/pkgs/applications/science/biology/iqtree/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/biology/itsx/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/iv/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kalign/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kallisto/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kent/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kssd/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/science/biology/last/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/biology/macs2/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/science/biology/macse/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mafft/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/biology/manta/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/megahit/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/biology/migrate/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minia/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minia/no-bundle.patch222
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minimap2/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix112
-rw-r--r--nixpkgs/pkgs/applications/science/biology/muscle/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/biology/nest/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/science/biology/neuron/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/science/biology/neuron/neuron_darwin_rpath.patch11
-rw-r--r--nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/octopus/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/biology/paml/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/platypus/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/biology/poretools/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/biology/prodigal/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/biology/quast/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/science/biology/raxml/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/biology/repseek/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sambamba/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samblaster/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samtools/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch22
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seaview/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seqkit/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seqtk/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/science/biology/snpeff/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch26
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/biology/spades/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sratoolkit/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/science/biology/stacks/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/science/biology/star/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/science/biology/strelka/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/science/biology/subread/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sumatools/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/science/biology/svaba/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/science/biology/tandem-aligner/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/science/biology/tebreak/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/science/biology/treemix/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/biology/trf/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/science/biology/trimal/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/science/biology/truvari/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/science/biology/varscan/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/biology/vcftools/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/biology/whisper/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/biology/xenomapper/default.nix23
126 files changed, 5664 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix b/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix
new file mode 100644
index 000000000000..a4bb8c62f1c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libminc, bicpl, itk, fftwFloat, gsl }:
+
+stdenv.mkDerivation rec {
+  pname = "EZminc";
+  version = "unstable-2019-03-12";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "5e3333ee356f914d34d66d33ea8df809c7f7fa51";
+    sha256 = "0wy8cppf5xpgfqvgb3mqs1cjh81n6qzkk6zxv29wvng8nar9wsy4";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ itk libminc bicpl fftwFloat gsl ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake"
+                 "-DEZMINC_BUILD_TOOLS=TRUE"
+                 "-DEZMINC_BUILD_MRFSEG=TRUE"
+                 "-DEZMINC_BUILD_DD=TRUE" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/BIC-MNI/${pname}";
+    description = "Collection of Perl and shell scripts for processing MINC files";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license = licenses.free;
+    broken = true;  # ITK5 compatibility issue (https://github.com/BIC-MNI/EZminc/issues/15)
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/N3/default.nix b/nixpkgs/pkgs/applications/science/biology/N3/default.nix
new file mode 100644
index 000000000000..e7ae8fb3cea3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/N3/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper,
+  perlPackages,
+  libminc, ebtks }:
+
+stdenv.mkDerivation rec {
+  pname = "N3";
+  version = "unstable-2018-08-09";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "010fc2ac58ce1d67b8e6a863fac0809d3203cb9b";
+    sha256 = "06hci7gzhy8p34ggvx7gah2k9yxpwhgmq1cgw8pcd1r82g4rg6kd";
+  };
+
+  postPatch = ''
+    substituteInPlace src/VolumeHist/DHistogram.cc \
+      --replace "register " ""
+  '';
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ libminc ebtks ];
+  propagatedBuildInputs = with perlPackages; [ perl MNI-Perllib GetoptTabular ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" "-DEBTKS_DIR=${ebtks}/lib/" ];
+
+  postFixup = ''
+    for p in $out/bin/*; do
+      wrapProgram $p --prefix PERL5LIB : $PERL5LIB
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BIC-MNI/N3";
+    description = "MRI non-uniformity correction for MINC files";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license   = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/angsd/default.nix b/nixpkgs/pkgs/applications/science/biology/angsd/default.nix
new file mode 100644
index 000000000000..71366dc0d364
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/angsd/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, htslib
+, zlib
+, bzip2
+, xz
+, curl
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "angsd";
+  version = "0.940";
+
+  src = fetchFromGitHub {
+    owner = "ANGSD";
+    repo = "angsd";
+    sha256 = "sha256-Ppxgy54pAnqJUzNX5c12NHjKTQyEEcPSpCEEVOyZ/LA=";
+    rev = version;
+  };
+
+  patches = [
+    # Pull pending inclusion upstream patch for parallel buil fixes:
+    #   https://github.com/ANGSD/angsd/pull/590
+    (fetchpatch {
+      name = "parallel-make.patch";
+      url = "https://github.com/ANGSD/angsd/commit/89fd1d898078016df390e07e25b8a3eeadcedf43.patch";
+      hash = "sha256-KQgUfr3v8xc+opAm4qcSV2eaupztv4gzJJHyzJBCxqA=";
+    })
+  ];
+
+  buildInputs = [ htslib zlib bzip2 xz curl openssl ];
+
+  enableParallelBuilding = true;
+
+  makeFlags = [ "HTSSRC=systemwide" "prefix=$(out)" ];
+
+  meta = with lib; {
+    description = "Program for analysing NGS data";
+    homepage = "http://www.popgen.dk/angsd";
+    maintainers = [ maintainers.bzizou ];
+    license = licenses.gpl2;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/science/biology/ants/default.nix b/nixpkgs/pkgs/applications/science/biology/ants/default.nix
new file mode 100644
index 000000000000..c7a1391c3007
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/ants/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, makeBinaryWrapper
+, itk
+, vtk
+, Cocoa
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ANTs";
+  version = "2.5.1";
+
+  src = fetchFromGitHub {
+    owner = "ANTsX";
+    repo = "ANTs";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-q252KC6SKUN5JaQWAcsVmDprVkLXDvkYzNhC7yHJNpk=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    makeBinaryWrapper
+  ];
+
+  buildInputs = [
+    itk
+    vtk
+  ] ++ lib.optionals stdenv.isDarwin [
+    Cocoa
+  ];
+
+  cmakeFlags = [
+    "-DANTS_SUPERBUILD=FALSE"
+    "-DUSE_VTK=TRUE"
+  ];
+
+  postInstall = ''
+    for file in $out/bin/*; do
+      wrapProgram $file --set PATH "$out/bin"
+    done
+  '';
+
+  meta = {
+    changelog = "https://github.com/ANTsX/ANTs/releases/tag/v${finalAttrs.version}";
+    description = "Advanced normalization toolkit for medical image registration and other processing";
+    homepage = "https://github.com/ANTsX/ANTs";
+    license = lib.licenses.asl20;
+    mainProgram = "antsRegistration";
+    maintainers = with lib.maintainers; [ bcdarwin ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix b/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
new file mode 100644
index 000000000000..4ee8501e8e13
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+}:
+let
+  man = fetchurl {
+    url = "https://web.archive.org/web/20230608093053if_/http://www.ansikte.se/ARAGORN/Downloads/aragorn.1";
+    hash = "sha256-bjD22dpkQZcGR0TwMxdpaed4VZZO2NUOoAw4o66iyS4=";
+  };
+in
+
+stdenv.mkDerivation (finalAttrs: {
+  version = "1.2.41";
+  pname = "aragorn";
+
+  src = fetchurl {
+    url = "http://www.ansikte.se/ARAGORN/Downloads/aragorn${finalAttrs.version}.c";
+    hash = "sha256-kqMcxcCwrRbU17AZkZibd18H0oFd8TX+bj6riPXpf0o=";
+  };
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    $CC -O3 -ffast-math -finline-functions -o aragorn $src
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin && cp aragorn $out/bin
+    installManPage ${man}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Detects tRNA, mtRNA, and tmRNA genes in nucleotide sequences";
+    homepage = "http://www.ansikte.se/ARAGORN/";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/astral/default.nix b/nixpkgs/pkgs/applications/science/biology/astral/default.nix
new file mode 100644
index 000000000000..6a9513c6b817
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/astral/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, jdk8
+, makeWrapper
+, jre8
+, zip
+}:
+let
+  jdk = jdk8;
+  jre = jre8;
+in
+stdenvNoCC.mkDerivation rec {
+  pname = "astral";
+  version = "5.7.1";
+
+  src = fetchFromGitHub {
+    owner = "smirarab";
+    repo = "ASTRAL";
+    rev = "v${version}";
+    sha256 = "043w2z6gbrisqirdid022f4b8jps1pp5syi344krv2bis1gjq5sn";
+  };
+
+  nativeBuildInputs = [ jdk makeWrapper jre zip ];
+
+  buildPhase = ''
+    patchShebangs ./make.sh
+    ./make.sh
+  '';
+
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+    java -jar astral.${version}.jar -i main/test_data/song_primates.424.gene.tre
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/lib
+    mkdir -p $out/bin
+    mv astral.${version}.jar $out/share/
+    mv lib/*.jar $out/share/lib
+    mv Astral.${version}.zip $out/share/
+    cp -a  main/test_data $out/share/
+    makeWrapper ${jre}/bin/java $out/bin/astral \
+        --add-flags "-jar $out/share/astral.${version}.jar"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/smirarab/ASTRAL";
+    description = "Tool for estimating an unrooted species tree given a set of unrooted gene trees";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode  # source bundles dependencies as jars
+    ];
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bzizou ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bamtools/default.nix b/nixpkgs/pkgs/applications/science/biology/bamtools/default.nix
new file mode 100644
index 000000000000..05373dafd381
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bamtools/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, jsoncpp
+, pkg-config
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bamtools";
+  version = "2.5.2";
+
+  src = fetchFromGitHub {
+    owner = "pezmaster31";
+    repo = "bamtools";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-l2DmA4P1kPneTCL9YVACE6LcQHT0F+mufPyM69VkksE=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    jsoncpp
+    zlib
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "C++ API & command-line toolkit for working with BAM data";
+    homepage = "https://github.com/pezmaster31/bamtools";
+    changelog = "https://github.com/pezmaster31/bamtools/releases/tag/${finalAttrs.src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ natsukium ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/bayescan/default.nix b/nixpkgs/pkgs/applications/science/biology/bayescan/default.nix
new file mode 100644
index 000000000000..e715ff4b45b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bayescan/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchurl, unzip, llvmPackages }:
+
+stdenv.mkDerivation rec {
+  pname = "bayescan";
+  version = "2.1";
+
+  src = fetchurl {
+    url = "http://cmpg.unibe.ch/software/BayeScan/files/BayeScan${version}.zip";
+    sha256 = "0ismima8j8z0zj9yc267rpf7z90w57b2pbqzjnayhc3ab8mcbfy6";
+  };
+
+  nativeBuildInputs = [ unzip ];
+  buildInputs = lib.optional stdenv.cc.isClang llvmPackages.openmp;
+
+  # Disable FORTIFY_SOURCE or the binary fails with "buffer overflow"
+  hardeningDisable = [ "fortify" ];
+
+  sourceRoot = "BayeScan${version}/source";
+
+  postPatch = ''
+    substituteInPlace Makefile --replace "-static" "" \
+                               --replace "g++" "c++"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/doc/bayescan
+    cp bayescan_${version} $out/bin
+    cp -r ../*pdf ../input_examples ../"R functions" $out/share/doc/bayescan
+  '';
+
+  env.NIX_CFLAGS_COMPILE = toString [ "-std=c++14" ];
+
+  meta = with lib; {
+    description = "Detecting natural selection from population-based genetic data";
+    homepage = "http://cmpg.unibe.ch/software/BayeScan";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.bzizou ];
+    mainProgram = "bayescan_${version}";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix b/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
new file mode 100644
index 000000000000..19e5f99fe2f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchurl, htslib, zlib, bzip2, xz, curl, perl, python3, bash }:
+
+stdenv.mkDerivation rec {
+  pname = "bcftools";
+  version = "1.19";
+
+  src = fetchurl {
+    url = "https://github.com/samtools/bcftools/releases/download/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-eCtfG8aQQVGSIx6CITs0k7BH9F5jDcjvbxVNYSarPmg=";
+  };
+
+  nativeBuildInputs = [
+    perl
+    python3
+  ];
+
+  buildInputs = [ htslib zlib bzip2 xz curl ];
+
+  strictDeps = true;
+
+  makeFlags = [
+    "HSTDIR=${htslib}"
+    "prefix=$(out)"
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  preCheck = ''
+    patchShebangs misc/
+    patchShebangs test/
+    sed -ie 's|/bin/bash|${bash}/bin/bash|' test/test.pl
+  '';
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Tools for manipulating BCF2/VCF/gVCF format, SNP and short indel sequence variants";
+    license = licenses.mit;
+    homepage = "http://www.htslib.org/";
+    platforms = platforms.unix;
+    maintainers = [ maintainers.mimame ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bedops/default.nix b/nixpkgs/pkgs/applications/science/biology/bedops/default.nix
new file mode 100644
index 000000000000..d455e98264cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bedops/default.nix
@@ -0,0 +1,63 @@
+{ lib, stdenv, fetchFromGitHub, zlib, bzip2, jansson, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "bedops";
+  version = "2.4.41";
+
+  src = fetchFromGitHub {
+    owner = "bedops";
+    repo = "bedops";
+    rev = "v${version}";
+    sha256 = "sha256-VJBoi1+tHA4oOVOsClUfimB+mOV5ZSQsDcDq3vAZwBA=";
+  };
+
+  buildInputs = [ zlib bzip2 jansson ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  preConfigure = ''
+    # We use nixpkgs versions of these libraries
+    rm -r third-party
+    sed -i '/^LIBS/d' system.mk/*
+    sed -i 's|^LIBRARIES.*$|LIBRARIES = -lbz2 -lz -ljansson|' */*/*/*/Makefile*
+
+    # `make support` installs above libraries
+    substituteInPlace system.mk/* \
+      --replace ": support" ":"
+
+    # Variable name is different in this makefile
+    substituteInPlace applications/bed/sort-bed/src/Makefile.darwin \
+      --replace "DIST_DIR" "BINDIR"
+
+    # `mkdir -p $BINDIR` is missing
+    substituteInPlace applications/bed/sort-bed/src/Makefile.darwin \
+      --replace 'mkdir -p ''${OBJ_DIR}' 'mkdir -p ''${OBJ_DIR} ''${BINDIR}'
+
+    substituteInPlace applications/bed/starch/src/Makefile --replace '$(LIBRARIES)' ""
+
+    # Function name is different in nixpkgs provided libraries
+    for f in interfaces/src/data/starch/starchFileHelpers.c applications/bed/starch/src/starchcat.c ; do
+      substituteInPlace $f --replace deflateInit2cpp deflateInit2
+    done
+
+    # Don't force static
+    for f in */*/*/*/Makefile* ; do
+      substituteInPlace $f --replace '-static' ""
+    done
+  '';
+
+  makeFlags = [ "BINDIR=$(out)/bin" ];
+
+  postFixup = ''
+    for f in $out/bin/* ; do
+      wrapProgram $f --prefix PATH : "$out/bin"
+    done
+  '';
+
+  meta = with lib; {
+    description = "Suite of tools for addressing questions arising in genomics studies";
+    homepage = "https://github.com/bedops/bedops";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix b/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
new file mode 100644
index 000000000000..76780298120e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
@@ -0,0 +1,34 @@
+{lib, stdenv, fetchFromGitHub, zlib, python3, bzip2, xz}:
+
+stdenv.mkDerivation rec {
+  pname = "bedtools";
+  version = "2.31.1";
+
+  src = fetchFromGitHub {
+    owner = "arq5x";
+    repo = "bedtools2";
+    rev = "v${version}";
+    sha256 = "sha256-rrk+FSv1bGL0D1lrIOsQu2AT7cw2T4lkDiCnzil5fpg=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    python3
+  ];
+
+  buildInputs = [ zlib bzip2 xz ];
+
+  cxx = if stdenv.cc.isClang then "clang++" else "g++";
+  cc = if stdenv.cc.isClang then "clang" else "gcc";
+  buildPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} -j $NIX_BUILD_CORES";
+  installPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} install";
+
+  meta = with lib; {
+    description = "A powerful toolset for genome arithmetic";
+    license = licenses.gpl2;
+    homepage = "https://bedtools.readthedocs.io/en/latest/";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bftools/default.nix b/nixpkgs/pkgs/applications/science/biology/bftools/default.nix
new file mode 100644
index 000000000000..a8bb739bbed8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bftools/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, makeWrapper, fetchzip, jre }:
+
+stdenv.mkDerivation rec {
+  pname = "bftools";
+  version = "6.3.0";
+
+  src = fetchzip {
+    url = "http://downloads.openmicroscopy.org/bio-formats/${version}/artifacts/bftools.zip";
+    sha256 = "02nvvmpfglpah1ihd08aw65g1794w588c988cdar1hfl4s80qwhb";
+  };
+
+  installPhase = ''
+    find . -maxdepth 1 -perm -111 -type f -not -name "*.sh" \
+      -exec install -vD {} "$out"/bin/{} \;
+
+    mkdir $out/libexec
+    mkdir -p $out/share/java
+
+    cp ./*.sh $out/libexec
+    cp ./*.jar $out/share/java
+
+    for file in $out/bin/*; do
+      substituteInPlace $file --replace "\$BF_DIR" $out/libexec
+    done
+    substituteInPlace $out/libexec/bf.sh --replace "\$BF_JAR_DIR" $out/share/java
+  '';
+
+  postFixup = ''
+    wrapProgram $out/libexec/bf.sh --prefix PATH : "${lib.makeBinPath [ jre ]}"
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  meta = with lib; {
+    description = "A bundle of scripts for using Bio-Formats on the command line with bioformats_package.jar already included";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    homepage = "https://www.openmicroscopy.org/bio-formats/";
+    maintainers = [ maintainers.tbenst ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bioawk/default.nix b/nixpkgs/pkgs/applications/science/biology/bioawk/default.nix
new file mode 100644
index 000000000000..cfbb1a551fac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bioawk/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+, bison
+, zlib
+}:
+
+stdenv.mkDerivation {
+  pname = "bioawk";
+  version = "unstable-2017-09-11";
+
+  src = fetchFromGitHub {
+    owner = "lh3";
+    repo = "bioawk";
+    rev = "fd40150b7c557da45e781a999d372abbc634cc21";
+    hash = "sha256-WWgz96DPP83J45isWkMbgEvOlibq6WefK//ImV6+AU0=";
+  };
+
+  nativeBuildInputs = [
+    bison
+    installShellFiles
+  ];
+
+  buildInputs = [
+    zlib
+  ];
+
+  buildFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 bioawk -t $out/bin
+    mv awk.1 bioawk.1
+    installManPage bioawk.1
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "BWK awk modified for biological data";
+    homepage = "https://github.com/lh3/bioawk";
+    license = licenses.hpnd;
+    maintainers = with maintainers; [ natsukium ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/blast/bin.nix b/nixpkgs/pkgs/applications/science/biology/blast/bin.nix
new file mode 100644
index 000000000000..48537a568e4b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/blast/bin.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, fetchurl
+, python3
+, perl
+, blast
+, autoPatchelfHook
+, zlib
+, bzip2
+, glib
+, libxml2
+, coreutils
+}:
+let
+  pname = "blast-bin";
+  version = "2.14.1";
+
+  srcs = rec {
+    x86_64-linux = fetchurl {
+      url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${version}/ncbi-blast-${version}+-x64-linux.tar.gz";
+      hash = "sha256-OO8MNOk6k0J9FlAGyCOhP+hirEIT6lL+rIInB8dQWEU=";
+    };
+    aarch64-linux = fetchurl {
+      url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${version}/ncbi-blast-${version}+-aarch64-linux.tar.gz";
+      hash = "sha256-JlOyoxZQBbvUcHIMv5muTuGQgrh2uom3rzDurhHQ+FM=";
+    };
+    x86_64-darwin = fetchurl {
+      url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${version}/ncbi-blast-${version}+-x64-macosx.tar.gz";
+      hash = "sha256-eMfuwMCD6VlDgeshLslDhYBBp0YOpL+6q/zSchR0bAs=";
+    };
+    aarch64-darwin = x86_64-darwin;
+  };
+  src = srcs.${stdenv.hostPlatform.system};
+in
+stdenv.mkDerivation {
+  inherit pname version src;
+
+  nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
+
+  buildInputs = [ python3 perl ] ++ lib.optionals stdenv.isLinux [ zlib bzip2 glib libxml2 ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 bin/* -t $out/bin
+
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    substituteInPlace $out/bin/get_species_taxids.sh \
+      --replace /bin/rm ${coreutils}/bin/rm
+  '';
+
+  meta = with lib; {
+    inherit (blast.meta) description homepage license;
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    maintainers = with maintainers; [ natsukium ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/blast/default.nix b/nixpkgs/pkgs/applications/science/biology/blast/default.nix
new file mode 100644
index 000000000000..407d38970b0f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/blast/default.nix
@@ -0,0 +1,109 @@
+{ lib, stdenv, buildPackages, fetchurl, zlib, bzip2, perl, cpio, gawk, coreutils, ApplicationServices }:
+
+stdenv.mkDerivation rec {
+  pname = "blast";
+  version = "2.14.1";
+
+  src = fetchurl {
+    url = "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${version}/ncbi-blast-${version}+-src.tar.gz";
+    sha256 = "sha256-cSwtvfD7E8wcLU9O9d0c5LBsO1fpbf6o8j5umfWxZQ4=";
+  };
+
+  sourceRoot = "ncbi-blast-${version}+-src/c++";
+
+  configureFlags = [
+    # With flat Makefile we can use all_projects in order not to build extra.
+    # These extra cause clang to hang on Darwin.
+    "--with-flat-makefile"
+    "--without-makefile-auto-update"
+    "--with-dll"  # build dynamic libraries (static are default)
+    ];
+
+  makeFlags = [ "all_projects=app/" ];
+
+  preConfigure = ''
+    export NCBICXX_RECONF_POLICY=warn
+    export PWD=$(pwd)
+    export HOME=$PWD
+
+    # The configure scripts wants to set AR="ar cr" unless it is already set in
+    # the environment. Because stdenv sets AR="ar", the result is a bad call to
+    # the assembler later in the process. Thus, we need to unset AR
+    unset AR
+
+    for awks in scripts/common/impl/is_log_interesting.awk \
+        scripts/common/impl/report_duplicates.awk; do
+
+        substituteInPlace $awks \
+              --replace /usr/bin/awk ${gawk}/bin/awk
+    done
+
+    for mk in src/build-system/Makefile.meta.in \
+        src/build-system/helpers/run_with_lock.c ; do
+
+        substituteInPlace $mk \
+        --replace /bin/rm ${coreutils}/bin/rm
+    done
+
+    for mk in src/build-system/Makefile.meta.gmake=no \
+        src/build-system/Makefile.meta_l \
+        src/build-system/Makefile.meta_r \
+        src/build-system/Makefile.requirements \
+        src/build-system/Makefile.rules_with_autodep.in; do
+
+        substituteInPlace $mk \
+            --replace /bin/echo ${coreutils}/bin/echo
+    done
+    for mk in src/build-system/Makefile.meta_p \
+        src/build-system/Makefile.rules_with_autodep.in \
+        src/build-system/Makefile.protobuf.in ; do
+
+        substituteInPlace $mk \
+            --replace /bin/mv ${coreutils}/bin/mv
+    done
+
+
+    substituteInPlace src/build-system/configure \
+        --replace /bin/pwd ${coreutils}/bin/pwd \
+        --replace /bin/ln ${coreutils}/bin/ln
+
+    substituteInPlace src/build-system/configure.ac \
+        --replace /bin/pwd ${coreutils}/bin/pwd \
+        --replace /bin/ln ${coreutils}/bin/ln
+
+    substituteInPlace src/build-system/Makefile.meta_l \
+        --replace /bin/date ${coreutils}/bin/date
+  '';
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [ perl ];
+
+  # perl is necessary in buildInputs so that installed perl scripts get patched
+  # correctly
+  buildInputs = [ coreutils perl gawk zlib bzip2 cpio ]
+    ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
+  hardeningDisable = [ "format" ];
+
+  postInstall = ''
+    substituteInPlace $out/bin/get_species_taxids.sh \
+        --replace /bin/rm ${coreutils}/bin/rm
+  '';
+  patches = [ ./no_slash_bin.patch ];
+
+  enableParallelBuilding = true;
+
+  # Many tests require either network access or locally available databases
+  doCheck = false;
+
+  meta = with lib; {
+    description = ''Basic Local Alignment Search Tool (BLAST) finds regions of
+    similarity between biological sequences'';
+    homepage = "https://blast.ncbi.nlm.nih.gov/Blast.cgi";
+    license = licenses.publicDomain;
+
+    # Version 2.10.0 fails on Darwin
+    # See https://github.com/NixOS/nixpkgs/pull/61430
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ luispedro ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/blast/no_slash_bin.patch b/nixpkgs/pkgs/applications/science/biology/blast/no_slash_bin.patch
new file mode 100644
index 000000000000..851e37fa905d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/blast/no_slash_bin.patch
@@ -0,0 +1,178 @@
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/collect_outside_libs.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/collect_outside_libs.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/collect_outside_libs.sh	2014-08-01 22:01:17.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/collect_outside_libs.sh	2019-05-15 12:40:44.145239480 +0800
+@@ -1,8 +1,5 @@
+ #!/bin/sh
+ set -e
+-PATH=/bin:/usr/bin
+-export PATH
+-unset CDPATH
+ 
+ base=$1
+ search=`echo ${2-$LD_LIBRARY_PATH} | tr : ' '`
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/create_flat_tuneups.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/create_flat_tuneups.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/create_flat_tuneups.sh	2011-08-17 02:55:10.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/create_flat_tuneups.sh	2019-05-15 12:40:48.449276574 +0800
+@@ -1,9 +1,6 @@
+ #!/bin/sh
+ id='$Id: create_flat_tuneups.sh 331412 2011-08-16 18:55:10Z ucko $'
+ 
+-PATH=/bin:/usr/bin
+-export PATH
+-
+ exec > auto_flat_tuneups.mk
+ 
+ cat <<EOF
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/get_lock.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/get_lock.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/get_lock.sh	2011-08-20 04:12:28.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/get_lock.sh	2019-05-15 12:40:52.901315000 +0800
+@@ -1,7 +1,5 @@
+ #!/bin/sh
+ 
+-PATH=/bin:/usr/bin
+-export PATH
+ 
+ dir=$1.lock
+ 
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/if_diff.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/if_diff.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/if_diff.sh	2014-07-30 22:06:45.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/if_diff.sh	2019-05-15 12:42:57.298410841 +0800
+@@ -4,9 +4,6 @@
+ # Author:  Denis Vakatov (vakatov@ncbi.nlm.nih.gov)
+ #################################
+ 
+-orig_PATH=$PATH
+-PATH=/bin:/usr/bin
+-
+ script_name=`basename $0`
+ script_args="$*"
+ 
+@@ -16,7 +13,7 @@
+ base_action=`basename "$action"`
+ case "$base_action" in
+   cp | cp\ * | ln | ln\ * )
+-      action=/bin/$base_action
++      action=$base_action
+       rm="rm -f"
+       ;;
+   * )
+@@ -58,10 +55,8 @@
+   shift
+   cmd="$* $dest_file"
+   test "$quiet" = yes || echo "$cmd"
+-  PATH=$orig_PATH
+   "$@" "$dest"
+   status=$?
+-  PATH=/bin:/usr/bin
+   return $status
+ }
+ 
+@@ -74,7 +69,7 @@
+   case "$base_action" in
+     ln | ln\ -f )
+       test "$quiet" = yes || echo "failed; trying \"cp -p ...\" instead"
+-      cmd="/bin/cp -p $src_file $dest_file"
++      cmd="cp -p $src_file $dest_file"
+       ExecHelper "$dest_file" /bin/cp -p "$src_file"  ||
+       Usage "\"$cmd\" failed"
+       ;;
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/make_lock_map.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/make_lock_map.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/make_lock_map.sh	2011-11-17 04:43:52.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/make_lock_map.sh	2019-05-15 12:40:56.769348434 +0800
+@@ -1,8 +1,6 @@
+ #!/bin/sh
+ # $Id: make_lock_map.sh 344587 2011-11-16 20:43:52Z ucko $
+ 
+-PATH=/bin:/usr/bin
+-export PATH
+ 
+ act=false
+ cache_dir='.#SRC-cache'
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/run_with_lock.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/run_with_lock.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/run_with_lock.sh	2015-10-29 22:36:05.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/run_with_lock.sh	2019-05-15 12:41:53.401842849 +0800
+@@ -1,10 +1,6 @@
+ #!/bin/sh
+ # $Id: run_with_lock.sh 483249 2015-10-29 14:36:05Z ucko $
+ 
+-orig_PATH=$PATH
+-PATH=/bin:/usr/bin
+-export PATH
+-
+ base=
+ logfile=
+ map=
+@@ -23,7 +19,7 @@
+ : ${base:=`basename "$1"`}
+ 
+ clean_up () {
+-    /bin/rm -rf "$base.lock"
++    rm -rf "$base.lock"
+ }
+ 
+ case $0 in
+@@ -45,7 +41,7 @@
+     trap "clean_up; exit $error_status" 1 2 15
+     if [ -n "$logfile" ]; then
+         status_file=$base.lock/status
+-        (PATH=$orig_PATH; export PATH; "$@"; echo $? > "$status_file") 2>&1 \
++        ("$@"; echo $? > "$status_file") 2>&1 \
+             | tee "$logfile.new"
+         # Emulate egrep -q to avoid having to move from under scripts.
+         if [ ! -f "$logfile" ]  \
+@@ -58,8 +54,6 @@
+             status=1
+         fi
+     else
+-        PATH=$orig_PATH
+-        export PATH
+         "$@"
+         status=$?
+     fi
+diff -u --recursive ncbi-blast-2.9.0+-src/scripts/common/impl/strip_for_install.sh ncbi-blast-2.9.0+-src.patched/scripts/common/impl/strip_for_install.sh
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/strip_for_install.sh	2013-09-24 03:06:51.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/strip_for_install.sh	2019-05-15 12:40:13.272975092 +0800
+@@ -1,8 +1,5 @@
+ #!/bin/sh
+ 
+-PATH=/bin:/usr/bin:/usr/ccs/bin
+-export PATH
+-
+ case "$1" in
+     --dirs )
+         shift
+--- ncbi-blast-2.9.0+-src/scripts/common/impl/update_configurable.sh	2017-07-13 22:53:24.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/scripts/common/impl/update_configurable.sh	2019-05-15 15:03:35.861276083 +0800
+@@ -1,6 +1,4 @@
+ #!/bin/sh
+-PATH=/bin:/usr/bin
+-export PATH
+ 
+ script_name=`basename $0`
+ script_dir=`dirname $0`
+--- ncbi-blast-2.9.0+-src/src/build-system/Makefile.mk.in	2019-01-04 01:38:37.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/src/build-system/Makefile.mk.in	2019-05-15 15:14:41.749416495 +0800
+@@ -50,12 +50,12 @@
+ 
+ ### Auxiliary commands, filters
+ 
+-RM       = /bin/rm -f
+-RMDIR    = /bin/rm -rf
+-COPY     = /bin/cp -p
++RM       = rm -f
++RMDIR    = rm -rf
++COPY     = cp -p
+ BINCOPY  = @BINCOPY@
+ TOUCH    = @TOUCH@
+-MKDIR    = /bin/mkdir
++MKDIR    = mkdir
+ BINTOUCH = $(TOUCH)
+ LN_S     = @LN_S@
+ GREP     = @GREP@
+--- ncbi-blast-2.9.0+-src/src/build-system/configure	2019-03-05 00:49:08.000000000 +0800
++++ ncbi-blast-2.9.0+-src.patched/src/build-system/configure	2019-05-15 16:55:40.711795042 +0800
+@@ -10417,4 +10417,0 @@
+-case "$LN_S" in
+-    /*) ;;
+-    * ) LN_S=/bin/$LN_S ;;
+-esac
diff --git a/nixpkgs/pkgs/applications/science/biology/bowtie/default.nix b/nixpkgs/pkgs/applications/science/biology/bowtie/default.nix
new file mode 100644
index 000000000000..bec263a2d931
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bowtie/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "bowtie";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "BenLangmead";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-mWItmrTMPst/NnzSpxxTHcBztDqHPCza9yOsZPwp7G4=";
+  };
+
+  patches = [
+    # Without this patch, compiling with clang on an M1 Mac fails because
+    # 'cpuid.h' is included. It only works on x86 and throws an error.
+    (fetchpatch {
+      name = "fix_compilation_on_arm64";
+      url = "https://github.com/BenLangmead/bowtie/commit/091d72f4cb69ca0713704d38bd7f9b37e6c4ff2d.patch";
+      sha256 = "sha256-XBvgICUBnE5HKpJ36IHTDiKjJgLFKETsIaJC46uN+2I=";
+    })
+
+    # Without this patch, compilation adds the current source directory to the
+    # include search path, and #include <version> in standard library code can
+    # end up picking the unrelated VERSION source code file on case-insensitive
+    # file systems.
+    (fetchpatch {
+      name = "fix_include_search_path";
+      url = "https://github.com/BenLangmead/bowtie/commit/c208b9db936eab0bc3ffdf0182b4f59a9017a1c4.patch";
+      sha256 = "sha256-772EE+oWFWXssSMabPryb0AfIS1tC10mPTRCBm7RrUs=";
+    })
+  ];
+
+  buildInputs = [ zlib ];
+
+  installFlags = [ "prefix=$(out)" ];
+
+  meta = with lib; {
+    description = "An ultrafast memory-efficient short read aligner";
+    license = licenses.artistic2;
+    homepage = "https://bowtie-bio.sourceforge.net";
+    maintainers = with maintainers; [ prusnak ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix b/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
new file mode 100644
index 000000000000..dbcecb7ac3fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, perl
+, python3
+, tbb
+, zlib
+, runCommand
+, bowtie2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bowtie2";
+  version = "2.5.3";
+
+  src = fetchFromGitHub {
+    owner = "BenLangmead";
+    repo = "bowtie2";
+    rev = "refs/tags/v${finalAttrs.version}";
+    fetchSubmodules = true;
+    hash = "sha256-vjJRA9KFfJChxxg2wxBkwsnDw7fx5SNH3JhRXQw+7XA=";
+  };
+
+  # because of this flag, gcc on aarch64 cannot find the Threads
+  # Could NOT find Threads (missing: Threads_FOUND)
+  # TODO: check with other distros and report upstream
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "-m64" ""
+  '';
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ tbb zlib python3 perl ];
+
+  cmakeFlags = lib.optional (!stdenv.hostPlatform.isx86) ["-DCMAKE_CXX_FLAGS=-I${finalAttrs.src}/third_party"];
+
+  # ctest fails because of missing dependencies between tests
+  doCheck = false;
+
+  passthru.tests = {
+    ctest = runCommand "${finalAttrs.pname}-test" { } ''
+      mkdir $out
+      ${lib.getExe bowtie2} -x ${finalAttrs.src}/example/index/lambda_virus ${finalAttrs.src}/example/reads/longreads.fq -u 10
+      ${bowtie2}/bin/bowtie2-build-s -c GGGCGGCGACCTCGCGGGTTTTCGCTA $out/small
+      ${bowtie2}/bin/bowtie2-inspect-s $out/small
+      ${bowtie2}/bin/bowtie2-build-l -c GGGCGGCGACCTCGCGGGTTTTCGCTA $out/large
+      ${bowtie2}/bin/bowtie2-inspect-l $out/large
+    '';
+  };
+
+  meta = with lib; {
+    description = "An ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences";
+    license = licenses.gpl3Plus;
+    homepage = "http://bowtie-bio.sf.net/bowtie2";
+    changelog = "https://github.com/BenLangmead/bowtie2/releases/tag/${finalAttrs.src.rev}";
+    maintainers = with maintainers; [ rybern ];
+    platforms = platforms.all;
+    mainProgram = "bowtie2";
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/bppsuite/default.nix b/nixpkgs/pkgs/applications/science/biology/bppsuite/default.nix
new file mode 100644
index 000000000000..a465ca04910d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bppsuite/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, cmake, bpp-core, bpp-seq, bpp-phyl, bpp-popgen }:
+
+stdenv.mkDerivation rec {
+  pname = "bppsuite";
+
+  inherit (bpp-core) version;
+
+  src = fetchFromGitHub {
+    owner = "BioPP";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wdwcgczqbc3m116vakvi0129wm3acln3cfc7ivqnalwvi6lrpds";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ bpp-core bpp-seq bpp-phyl bpp-popgen ];
+
+  meta = bpp-core.meta // {
+    homepage = "https://github.com/BioPP/bppsuite";
+    changelog = "https://github.com/BioPP/bppsuite/blob/master/ChangeLog";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix b/nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix
new file mode 100644
index 000000000000..b34b6dc8c90f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bwa-mem2";
+  version = "unstable-2023-03-18";
+
+  src = fetchFromGitHub {
+    owner = "bwa-mem2";
+    repo = "bwa-mem2";
+    rev = "cf4306a47dac35e7e79a9e75398a35f33900cfd0";
+    fetchSubmodules = true;
+    hash = "sha256-1AYSn7nBrDwbX7oSrdEoa1d3t6xzwKnA0S87Y/XeXJg=";
+  };
+
+  buildInputs = [ zlib ];
+
+  # see https://github.com/bwa-mem2/bwa-mem2/issues/93
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    sed -i 's/memset_s/memset8_s/g' ext/safestringlib/include/safe_mem_lib.h
+    sed -i 's/memset_s/memset8_s/g' ext/safestringlib/safeclib/memset16_s.c
+    sed -i 's/memset_s/memset8_s/g' ext/safestringlib/safeclib/memset32_s.c
+    sed -i 's/memset_s/memset8_s/g' ext/safestringlib/safeclib/memset_s.c
+    sed -i 's/memset_s/memset8_s/g' ext/safestringlib/safeclib/wmemset_s.c
+  '';
+
+  buildFlags = [
+    (if stdenv.hostPlatform.sse4_2Support then "arch=sse42"
+    else if stdenv.hostPlatform.avxSupport then "arch=avx"
+    else if stdenv.hostPlatform.avx2Support then "arch=avx2"
+    else if stdenv.hostPlatform.avx512Support then "arch=avx512"
+    else "arch=sse41")
+  ];
+  enableParallelBuilding = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp bwa-mem2* $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Next version of the bwa-mem algorithm in bwa, a software package for mapping low-divergent sequences against a large reference genome";
+    license = licenses.mit;
+    homepage = "https://github.com/bwa-mem2/bwa-mem2/";
+    changelog = "https://github.com/bwa-mem2/bwa-mem2/blob/${finalAttrs.src.rev}/NEWS.md";
+    platforms = platforms.x86_64;
+    maintainers = with maintainers; [ alxsimon ];
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/bwa/default.nix b/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
new file mode 100644
index 000000000000..4786f25beb50
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation {
+  pname = "bwa";
+  version = "unstable-2022-09-23";
+
+  src = fetchFromGitHub {
+    owner = "lh3";
+    repo = "bwa";
+    rev = "139f68fc4c3747813783a488aef2adc86626b01b";
+    hash = "sha256-8u35lTK6gBKeapYoIkG9MuJ/pyy/HFA2OiPn+Ml2C6c=";
+  };
+
+  buildInputs = [ zlib ];
+
+  # Avoid hardcoding gcc to allow environments with a different
+  # C compiler to build
+  preConfigure = ''
+    sed -i '/^CC/d' Makefile
+  '';
+
+  makeFlags = lib.optional stdenv.hostPlatform.isStatic "AR=${stdenv.cc.targetPrefix}ar";
+
+  # it's unclear which headers are intended to be part of the public interface
+  # so we may find ourselves having to add more here over time
+  installPhase = ''
+    runHook preInstall
+
+    install -vD -t $out/bin bwa
+    install -vD -t $out/lib libbwa.a
+    install -vD -t $out/include bntseq.h
+    install -vD -t $out/include bwa.h
+    install -vD -t $out/include bwamem.h
+    install -vD -t $out/include bwt.h
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A software package for mapping low-divergent sequences against a large reference genome, such as the human genome";
+    license     = licenses.gpl3Plus;
+    homepage    = "https://bio-bwa.sourceforge.net/";
+    maintainers = with maintainers; [ luispedro ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix b/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix
new file mode 100644
index 000000000000..474c0f292af4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, makeWrapper, zlib, perl, perlPackages, openmp }:
+
+stdenv.mkDerivation rec {
+  version = "4.8.1";
+  pname = "cd-hit";
+
+  src = fetchFromGitHub {
+    owner = "weizhongli";
+    repo = "cdhit";
+    rev = "V${version}";
+    sha256 = "032nva6iiwmw59gjipm1mv0xlcckhxsf45mc2qbnv19lbis0q22i";
+  };
+
+  propagatedBuildInputs = [ perl perlPackages.TextNSP perlPackages.ImageMagick ];
+
+  nativeBuildInputs = [ zlib makeWrapper ];
+  buildInputs = lib.optional stdenv.cc.isClang openmp;
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}c++" # remove once https://github.com/weizhongli/cdhit/pull/114 is merged
+    "PREFIX=$(out)/bin"
+  ];
+
+  preInstall = "mkdir -p $out/bin";
+
+  postFixup = ''
+    wrapProgram $out/bin/FET.pl --prefix PERL5LIB : $PERL5LIB
+    wrapProgram $out/bin/plot_2d.pl --prefix PERL5LIB : $PERL5LIB
+    wrapProgram $out/bin/clstr_list_sort.pl --prefix PERL5LIB : $PERL5LIB
+  '';
+  meta = with lib; {
+    description = "Clustering and comparing protein or nucleotide sequences";
+    homepage = "http://weizhongli-lab.org/cd-hit/";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix b/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix
new file mode 100644
index 000000000000..6a39a889f55f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, argtable }:
+
+stdenv.mkDerivation rec {
+  version = "1.2.4";
+  pname = "clustal-omega";
+
+  src = fetchurl {
+    url = "http://www.clustal.org/omega/${pname}-${version}.tar.gz";
+    sha256 = "1vm30mzncwdv881vrcwg11vzvrsmwy4wg80j5i0lcfk6dlld50w6";
+  };
+
+  buildInputs = [ argtable ];
+
+  preConfigure = ''
+    for f in configure \
+             src/clustal-omega-config.h \
+             src/clustal-omega-config.h \
+             src/config.h.in \
+             src/mymain.c
+    do
+      sed -i -re 's/argtable2/argtable3/g' $f
+    done
+  '';
+
+  meta = with lib; {
+    description = "General purpose multiple sequence alignment program for protein and DNA/RNA";
+    homepage = "http://www.clustal.org/omega/";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.bzizou ];
+    mainProgram = "clustalo";
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix b/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
new file mode 100644
index 000000000000..a131c6645499
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, bzip2
+, cmake
+, fetchurl
+, fftw
+, llvmPackages
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "cmtk";
+  version = "3.3.2";
+
+  src = fetchurl {
+    name = "cmtk-source.tar.gz";
+    url = "https://www.nitrc.org/frs/download.php/13188/CMTK-${finalAttrs.version}-Source.tar.gz//?i_agree=1&download_now=1";
+    hash = "sha256-iE164NCOSOypZLLZfZy9RTyrS+YnY9ECqfb4QhlsMS4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    bzip2
+    fftw
+    zlib
+  ] ++ lib.optionals stdenv.cc.isClang [
+    llvmPackages.openmp
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString [
+    (lib.optionalString stdenv.cc.isGNU "-std=c++11")
+    (lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing")
+    (lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) "-Dfinite=isfinite")
+  ];
+
+  meta = with lib; {
+    description = "Computational Morphometry Toolkit";
+    longDescription = ''A software toolkit for computational morphometry of
+      biomedical images, CMTK comprises a set of command line tools and a
+      back-end general-purpose library for processing and I/O'';
+    maintainers = with maintainers; [ tbenst ];
+    platforms = platforms.all;
+    license = licenses.gpl3Plus;
+    homepage = "https://www.nitrc.org/projects/cmtk/";
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix b/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
new file mode 100644
index 000000000000..fe1c1f5511d1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, cmake, coreutils, perlPackages, bicpl, libminc, zlib, minc_tools,
+  makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "conglomerate";
+  version = "unstable-2017-09-10";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "7343238bc6215942c7ecc885a224f24433a291b0";
+    sha256 = "1mlqgmy3jc13bv7d01rjwldxq0p4ayqic85xcl222hhifi3w2prr";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ libminc zlib bicpl ];
+  propagatedBuildInputs = [ coreutils minc_tools ] ++ (with perlPackages; [ perl GetoptTabular MNI-Perllib ]);
+
+  cmakeFlags = [
+    "-DLIBMINC_DIR=${libminc}/lib/cmake"
+    "-DBICPL_DIR=${bicpl}/lib"
+  ];
+
+  postFixup = ''
+    for p in $out/bin/*; do
+      wrapProgram $p --prefix PERL5LIB : $PERL5LIB --set PATH "${lib.makeBinPath [ coreutils minc_tools ]}";
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BIC-MNI/conglomerate";
+    description = "More command-line utilities for working with MINC files";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license   = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix b/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
new file mode 100644
index 000000000000..605ecaadf648
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, cmake
+, openjpeg
+, yaml-cpp
+, batchVersion ? false
+, withJpegLs ? true
+, withOpenJpeg ? true
+, withCloudflareZlib ? true
+}:
+
+let
+  cloudflareZlib = fetchFromGitHub {
+    owner = "ningfei";
+    repo = "zlib";
+    # HEAD revision of the gcc.amd64 branch on 2023-03-28. Reminder to update
+    # whenever bumping package version.
+    rev = "f49b13c3380cf9677ae9a93641ebc6f770899def";
+    sha256 = "sha256-8HNFUGx2uuEb8UrGUiqkN+uVDX83YIisT2uO1Z7GCxc=";
+  };
+in
+stdenv.mkDerivation rec {
+  version = "1.0.20230411";
+  pname = "dcm2niix";
+
+  src = fetchFromGitHub {
+    owner = "rordenlab";
+    repo = "dcm2niix";
+    rev = "v${version}";
+    sha256 = "sha256-kOVEoqrk4l6sH8iDVx1QmOYP5tCufxsWnCnn9BibZ08=";
+  };
+
+  patches = lib.optionals withCloudflareZlib [
+    (substituteAll {
+      src = ./dont-fetch-external-libs.patch;
+      inherit cloudflareZlib;
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optionals batchVersion [ yaml-cpp ]
+    ++ lib.optionals withOpenJpeg [ openjpeg openjpeg.dev ];
+
+  cmakeFlags = lib.optionals batchVersion [
+    "-DBATCH_VERSION=ON"
+    "-DYAML-CPP_DIR=${yaml-cpp}/lib/cmake/yaml-cpp"
+  ] ++ lib.optionals withJpegLs [
+    "-DUSE_JPEGLS=ON"
+  ] ++ lib.optionals withOpenJpeg [
+    "-DUSE_OPENJPEG=ON"
+    "-DOpenJPEG_DIR=${openjpeg}/lib/${openjpeg.pname}-${lib.versions.majorMinor openjpeg.version}"
+  ] ++ lib.optionals withCloudflareZlib [
+    "-DZLIB_IMPLEMENTATION=Cloudflare"
+  ];
+
+  meta = with lib; {
+    description = "DICOM to NIfTI converter";
+    longDescription = ''
+      dcm2niix is designed to convert neuroimaging data from the DICOM format to the NIfTI format.
+    '';
+    homepage = "https://www.nitrc.org/projects/dcm2nii";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ashgillman rbreslow ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patch b/nixpkgs/pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patch
new file mode 100644
index 000000000000..a8f97b434fc7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patch
@@ -0,0 +1,25 @@
+diff --git a/SuperBuild/External-CLOUDFLARE-ZLIB.cmake b/SuperBuild/External-CLOUDFLARE-ZLIB.cmake
+index 9f064eb..fe74df5 100644
+--- a/SuperBuild/External-CLOUDFLARE-ZLIB.cmake
++++ b/SuperBuild/External-CLOUDFLARE-ZLIB.cmake
+@@ -1,8 +1,5 @@
+-set(CLOUDFLARE_BRANCH gcc.amd64) # Cloudflare zlib branch
+-
+ ExternalProject_Add(zlib
+-    GIT_REPOSITORY "https://github.com/ningfei/zlib.git"
+-    GIT_TAG "${CLOUDFLARE_BRANCH}"
++    URL file://@cloudflareZlib@
+     SOURCE_DIR cloudflare-zlib
+     BINARY_DIR cloudflare-zlib-build
+     CMAKE_ARGS
+diff --git a/SuperBuild/SuperBuild.cmake b/SuperBuild/SuperBuild.cmake
+index 2a0a956..81354a7 100644
+--- a/SuperBuild/SuperBuild.cmake
++++ b/SuperBuild/SuperBuild.cmake
+@@ -1,6 +1,1 @@
+-# Check if git exists
+-find_package(Git)
+-if(NOT GIT_FOUND)
+-    message(FATAL_ERROR "Cannot find Git. Git is required for Superbuild")
+-endif()
+ 
diff --git a/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix b/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix
new file mode 100644
index 000000000000..a7a1f77dfe90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "deeptools";
+  version = "3.5.4";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "deeptools";
+    repo = "deepTools";
+    rev = version;
+    hash = "sha256-A8YdlMptmJyxWW0EYLjXFIWjIO/mttEC7VYdlCe9MaI=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    numpy
+    numpydoc
+    scipy
+    py2bit
+    pybigwig
+    pysam
+    matplotlib
+    plotly
+    deeptoolsintervals
+    importlib-metadata
+  ];
+
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export PATH="$out/bin:$PATH"
+  '';
+
+  disabledTestPaths = [
+    # tests trip on `len(sys.argv) == 1`
+    "deeptools/test/test_bigwigAverage.py"
+    "deeptools/test/test_bigwigCompare_and_multiBigwigSummary.py"
+    "deeptools/test/test_heatmapper.py"
+    "deeptools/test/test_multiBamSummary.py"
+  ];
+
+  meta = with lib; {
+    homepage = "https://deeptools.readthedocs.io/en/develop";
+    description = "Tools for exploring deep DNA sequencing data";
+    longDescription = ''
+      deepTools contains useful modules to process the mapped reads data for multiple
+      quality checks, creating normalized coverage files in standard bedGraph and bigWig
+      file formats, that allow comparison between different files (for example, treatment and control).
+      Finally, using such normalized and standardized files, deepTools can create many
+      publication-ready visualizations to identify enrichments and for functional
+      annotations of the genome.
+    '';
+    license = with licenses; [ mit bsd3 ];
+    maintainers = with maintainers; [ scalavision ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/delly/default.nix b/nixpkgs/pkgs/applications/science/biology/delly/default.nix
new file mode 100644
index 000000000000..b483b3d57bef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/delly/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, boost
+, bzip2
+, htslib
+, llvmPackages
+, xz
+, zlib
+, delly
+, runCommand
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "delly";
+  version = "1.2.6";
+
+  src = fetchFromGitHub {
+    owner = "dellytools";
+    repo = "delly";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-OO5nnaIcfNAV8pc03Z8YS5kE96bFOrJXA9QTiLi7vPc=";
+  };
+
+  buildInputs = [
+    boost
+    bzip2
+    htslib
+    xz
+    zlib
+  ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp;
+
+  makeFlags = [
+    "EBROOTHTSLIB=${htslib}"
+    "PARALLEL=1"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm555 src/delly $out/bin/delly
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    simple = runCommand "${finalAttrs.pname}-test" { } ''
+      mkdir $out
+      ${lib.getExe delly} call -g ${delly.src}/example/ref.fa ${delly.src}/example/sr.bam > $out/sr.vcf
+      ${lib.getExe delly} lr -g ${delly.src}/example/ref.fa ${delly.src}/example/lr.bam > $out/lr.vcf
+      ${lib.getExe delly} cnv -g ${delly.src}/example/ref.fa -m ${delly.src}/example/map.fa.gz ${delly.src}/example/sr.bam > cnv.vcf
+    '';
+  };
+
+  meta = with lib; {
+    description = "Structural variant caller for mapped DNA sequenced data";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ scalavision ];
+    platforms = platforms.unix;
+    longDescription = ''
+      Delly is an integrated structural variant (SV) prediction method
+      that can discover, genotype and visualize deletions, tandem duplications,
+      inversions and translocations at single-nucleotide resolution in
+      short-read massively parallel sequencing data. It uses paired-ends,
+      split-reads and read-depth to sensitively and accurately delineate
+      genomic rearrangements throughout the genome.
+    '';
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/diamond/default.nix b/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
new file mode 100644
index 000000000000..3349c0392d08
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "diamond";
+  version = "2.1.9";
+
+  src = fetchFromGitHub {
+    owner = "bbuchfink";
+    repo = "diamond";
+    rev = "v${version}";
+    sha256 = "sha256-cTg9TEpz3FSgX2tpfU4y55cCgFY5+mQY86FziHAwd+s=";
+  };
+
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib ];
+
+  meta = with lib; {
+    description = "Accelerated BLAST compatible local sequence aligner";
+    longDescription = ''
+      DIAMOND is a sequence aligner for protein and translated DNA searches, designed for high performance analysis of big sequence data. The key features are:
+      - Pairwise alignment of proteins and translated DNA at 100x-10,000x speed of BLAST.
+      - Frameshift alignments for long read analysis.
+      - Low resource requirements and suitable for running on standard desktops or laptops.
+      - Various output formats, including BLAST pairwise, tabular and XML, as well as taxonomic classification.
+
+      When using the tool in published research, please cite:
+      - Buchfink B, Reuter K, Drost HG, "Sensitive protein alignments at tree-of-life scale using DIAMOND", Nature Methods 18, 366–368 (2021). doi:10.1038/s41592-021-01101-x
+    '';
+    homepage = "https://github.com/bbuchfink/diamond";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ thyol ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/dssp/default.nix b/nixpkgs/pkgs/applications/science/biology/dssp/default.nix
new file mode 100644
index 000000000000..006b46db9974
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/dssp/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, cmake
+, eigen
+, fetchFromGitHub
+, fetchpatch
+, libcifpp
+, libmcfp
+, zlib
+}:
+let
+  libcifpp' = libcifpp.overrideAttrs (oldAttrs: {
+    # dssp 4.4.3 requires specific version "5.2.0" of libcifpp
+    version = "5.2.0";
+    src = fetchFromGitHub {
+      inherit (oldAttrs.src) owner repo rev;
+      hash = "sha256-Sj10j6HxUoUvQ66cd2B8CO7CVBRd7w9CTovxkwPDOvs=";
+    };
+    patches = [
+      (fetchpatch {
+        # https://github.com/PDB-REDO/libcifpp/issues/51
+        name = "fix-build-on-darwin.patch";
+        url = "https://github.com/PDB-REDO/libcifpp/commit/641f06a7e7c0dc54af242b373820f2398f59e7ac.patch";
+        hash = "sha256-eWNfp9nA/+2J6xjZR6Tj+5OM3L5MxdfRi0nBzyaqvS0=";
+      })
+    ];
+  });
+in
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dssp";
+  version = "4.4.5";
+
+  src = fetchFromGitHub {
+    owner = "PDB-REDO";
+    repo = "dssp";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-X0aMWqoMhmQVRHWKVm2S6JAOYiBuBBMzMoivMdpNx0M=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    eigen
+    libcifpp'
+    libmcfp
+    zlib
+  ];
+
+  meta = with lib; {
+    description = "Calculate the most likely secondary structure assignment given the 3D structure of a protein";
+    homepage = "https://github.com/PDB-REDO/dssp";
+    changelog = "https://github.com/PDB-REDO/libcifpp/releases/tag/${finalAttrs.src.rev}";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ natsukium ];
+    platforms = platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix b/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix
new file mode 100644
index 000000000000..c5ab32a68838
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchurl, gcc, zlib, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "ecopcr";
+  version = "1.0.1";
+
+  src = fetchurl {
+    url = "https://git.metabarcoding.org/obitools/ecopcr/-/archive/ecopcr_v${version}/ecopcr-ecopcr_v${version}.tar.gz";
+    hash = "sha256-ssvWpi7HuuRRAkpqqrX3ijLuBqM3QsrmrG+t7/m6fZA=";
+  };
+
+  buildInputs = [ gcc python3 zlib ];
+
+  preConfigure = ''
+    cd src
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -v ecoPCR $out/bin
+    cp -v ecogrep $out/bin
+    cp -v ecofind $out/bin
+    cp -v ../tools/ecoPCRFormat.py $out/bin/ecoPCRFormat
+    chmod a+x $out/bin/ecoPCRFormat
+  '';
+
+  meta = with lib; {
+    description = "Electronic PCR software tool";
+    longDescription = ''
+      ecoPCR is an electronic PCR software developed by the LECA. It
+      helps you estimate Barcode primers quality. In conjunction with
+      OBITools, you can postprocess ecoPCR output to compute barcode
+      coverage and barcode specificity. New barcode primers can be
+      developed using the ecoPrimers software.
+    '';
+    homepage = "https://git.metabarcoding.org/obitools/ecopcr/wikis/home";
+    license = licenses.cecill20;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix b/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix
new file mode 100644
index 000000000000..d7bba930abca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/eggnog-mapper/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, autoPatchelfHook
+, fetchFromGitHub
+, python3Packages
+, wget
+, zlib
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "eggnog-mapper";
+  version = "2.1.12";
+
+  src = fetchFromGitHub {
+    owner = "eggnogdb";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-+luxXQmtGufYrA/9Ak3yKzbotOj2HM3vhIoOxE+Ty1U=";
+  };
+
+  postPatch = ''
+    # Not a great solution...
+    substituteInPlace setup.cfg \
+      --replace "==" ">="
+  '';
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    zlib
+  ];
+
+  propagatedBuildInputs = [
+    wget
+  ] ++ (with python3Packages; [
+    biopython
+    psutil
+    xlsxwriter
+  ]);
+
+  # Tests rely on some of the databases being available, which is not bundled
+  # with this package as (1) in total, they represent >100GB of data, and (2)
+  # the user can download only those that interest them.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Fast genome-wide functional annotation through orthology assignment";
+    license = licenses.gpl2;
+    homepage = "https://github.com/eggnogdb/eggnog-mapper/wiki";
+    maintainers = with maintainers; [ luispedro ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/emboss/default.nix b/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
new file mode 100644
index 000000000000..d590a5da8a67
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, readline, perl, libharu, libX11, libpng, libXt, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "emboss";
+  version = "6.6.0";
+
+  src = fetchurl {
+    url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-${version}.tar.gz";
+    sha256 = "7184a763d39ad96bb598bfd531628a34aa53e474db9e7cac4416c2a40ab10c6e";
+  };
+
+  buildInputs = [ readline perl libharu libpng libX11 libXt zlib ];
+
+  configureFlags = [ "--with-hpdf=${libharu}" "--with-pngdriver=${zlib}" ];
+
+  postConfigure = ''
+    sed -i 's@$(bindir)/embossupdate@true@' Makefile
+  '';
+
+  meta = {
+    description = "The European Molecular Biology Open Software Suite";
+    longDescription = ''EMBOSS is a free Open Source software analysis package
+    specially developed for the needs of the molecular biology (e.g. EMBnet)
+    user community, including libraries. The software automatically copes with
+    data in a variety of formats and even allows transparent retrieval of
+    sequence data from the web.'';
+    license = lib.licenses.gpl2;
+    homepage = "https://emboss.sourceforge.net/";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix b/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
new file mode 100644
index 000000000000..fe4a3e49930c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl, gsl }:
+
+stdenv.mkDerivation rec {
+  pname = "est-sfs";
+  version = "2.03";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/est-usfs/${pname}-release-${version}.tar.gz";
+    sha256 = "1hvamrgagz0xi89w8qafyd9mjrdpyika8zm22drddnjkp4sdj65n";
+  };
+
+  buildInputs = [ gsl ];
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/doc/${pname}
+    cp est-sfs $out/bin
+    cp est-sfs-documentation.pdf $out/share/doc/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "https://sourceforge.net/projects/est-usfs";
+    description = "Estimate the unfolded site frequency spectrum and ancestral states";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/exonerate/default.nix b/nixpkgs/pkgs/applications/science/biology/exonerate/default.nix
new file mode 100644
index 000000000000..f7b6bf6c14ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/exonerate/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchurl, glib, pkg-config }:
+
+stdenv.mkDerivation rec {
+  version = "2.4.0";
+  pname = "exonerate";
+
+  src = fetchurl {
+    url = "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/${pname}-${version}.tar.gz";
+    sha256 = "0hj0m9xygiqsdxvbg79wq579kbrx1mdrabi2bzqz2zn9qwfjcjgq";
+  };
+
+  doCheck = true;
+
+  buildInputs = [ glib ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  meta = with lib; {
+    description = "Generic tool for sequence alignment";
+    homepage = "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.unix ;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/fastp/default.nix b/nixpkgs/pkgs/applications/science/biology/fastp/default.nix
new file mode 100644
index 000000000000..e7fc0d4a35f1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/fastp/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, zlib
+, libdeflate
+, isa-l
+}:
+
+stdenv.mkDerivation rec {
+  pname = "fastp";
+  version = "0.23.4";
+
+  src = fetchFromGitHub {
+    owner = "OpenGene";
+    repo = "fastp";
+    rev = "v${version}";
+    sha256 = "sha256-hkCo8CiZNJuVcL9Eg/R7YzM7/FEcGEnovV325oWa7y8=";
+  };
+
+  buildInputs = [ zlib libdeflate isa-l ];
+
+  installPhase = ''
+    install -D fastp $out/bin/fastp
+  '';
+
+  meta = with lib; {
+    description = "Ultra-fast all-in-one FASTQ preprocessor";
+    license = licenses.mit;
+    homepage = "https://github.com/OpenGene/fastp";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix b/nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix
new file mode 100644
index 000000000000..550d221c74eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchFromGitHub, cmake, zlib, libglvnd, libGLU, wrapQtAppsHook
+, sshSupport ? true, openssl, libssh
+, tetgenSupport ? true, tetgen
+, ffmpegSupport ? true, ffmpeg_4
+, dicomSupport  ? false, dcmtk
+, withModelRepo ? true
+, withCadFeatures ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "febio-studio";
+  version = "1.6.1";
+
+  src = fetchFromGitHub {
+    owner = "febiosoftware";
+    repo = "FEBioStudio";
+    rev = "v${version}";
+    sha256 = "0r6pg49i0q9idp7pjymj7mlxd63qjvmfvg0l7fmx87y1yd2hfw4h";
+  };
+
+  patches = [
+    ./febio-studio-cmake.patch # Fix Errors that appear with certain Cmake flags
+  ];
+
+  cmakeFlags = [
+    "-DQt_Ver=5"
+    "-DNOT_FIRST=On"
+    "-DOpenGL_GL_PREFERENCE=GLVND"
+  ]
+    ++ lib.optional sshSupport "-DUSE_SSH=On"
+    ++ lib.optional tetgenSupport "-DUSE_TETGEN=On"
+    ++ lib.optional ffmpegSupport "-DUSE_FFMPEG=On"
+    ++ lib.optional dicomSupport "-DUSE_DICOM=On"
+    ++ lib.optional withModelRepo "-DMODEL_REPO=On"
+    ++ lib.optional withCadFeatures "-DCAD_FEATURES=On"
+  ;
+
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/
+    cp -R bin $out/
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [ cmake wrapQtAppsHook ];
+  buildInputs = [ zlib libglvnd libGLU openssl libssh ]
+    ++ lib.optional sshSupport openssl
+    ++ lib.optional tetgenSupport tetgen
+    ++ lib.optional ffmpegSupport ffmpeg_4
+    ++ lib.optional dicomSupport dcmtk
+  ;
+
+  meta = with lib; {
+    description = "FEBio Suite Solver";
+    license = with licenses; [ mit ];
+    homepage = "https://febio.org/";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ Scriptkiddi ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/febio-studio/febio-studio-cmake.patch b/nixpkgs/pkgs/applications/science/biology/febio-studio/febio-studio-cmake.patch
new file mode 100644
index 000000000000..e694f6c3b89f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/febio-studio/febio-studio-cmake.patch
@@ -0,0 +1,38 @@
+diff --git a/FEBioStudio/RepositoryPanel.cpp b/FEBioStudio/RepositoryPanel.cpp
+index 382db303..314cdc68 100644
+--- a/FEBioStudio/RepositoryPanel.cpp
++++ b/FEBioStudio/RepositoryPanel.cpp
+@@ -1364,10 +1364,10 @@ void CRepositoryPanel::loadingPageProgress(qint64 bytesSent, qint64 bytesTotal)
+ 

+ #else

+ 

+-CRepositoryPanel::CRepositoryPanel(CMainWindow* pwnd, QWidget* parent){}

++CRepositoryPanel::CRepositoryPanel(CMainWindow* pwnd, QDockWidget* parent){}

+ CRepositoryPanel::~CRepositoryPanel(){}

+ void CRepositoryPanel::OpenLink(const QString& link) {}

+-// void CRepositoryPanel::Raise() {}

++void CRepositoryPanel::Raise() {}

+ void CRepositoryPanel::SetModelList(){}

+ void CRepositoryPanel::ShowMessage(QString message) {}

+ void CRepositoryPanel::ShowWelcomeMessage(QByteArray messages) {}

+@@ -1396,6 +1396,7 @@ void CRepositoryPanel::on_actionSearch_triggered() {}
+ void CRepositoryPanel::on_actionClearSearch_triggered() {}

+ void CRepositoryPanel::on_actionDeleteRemote_triggered() {}

+ void CRepositoryPanel::on_actionModify_triggered() {}

++void CRepositoryPanel::on_actionCopyPermalink_triggered() {}

+ void CRepositoryPanel::on_treeWidget_itemSelectionChanged() {}

+ void CRepositoryPanel::on_treeWidget_customContextMenuRequested(const QPoint &pos) {}

+ void CRepositoryPanel::DownloadItem(CustomTreeWidgetItem *item) {}

+diff --git a/FEBioStudio/WzdUpload.cpp b/FEBioStudio/WzdUpload.cpp
+index 5ce74346..20062e06 100644
+--- a/FEBioStudio/WzdUpload.cpp
++++ b/FEBioStudio/WzdUpload.cpp
+@@ -1183,7 +1183,7 @@ void CWzdUpload::on_saveJson_triggered()
+ 		getProjectJson(&projectInfo);
+ 
+ 		QFile file(filedlg.selectedFiles()[0]);
+-		file.open(QIODeviceBase::WriteOnly);
++		file.open(QIODevice::WriteOnly);
+ 		file.write(projectInfo);
+ 		file.close();
+ 	}
diff --git a/nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix b/nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix
new file mode 100644
index 000000000000..254a3c011d27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchurl
+, unzip
+}:
+
+let
+  inherit (stdenv.hostPlatform) system;
+  throwSystem = throw "Unsupported system: ${system}";
+
+  os = {
+    x86_64-darwin = "darwin";
+    x86_64-linux = "linux";
+  }.${system} or throwSystem;
+
+  sha256 = {
+    x86_64-darwin = "sha256-OIyEu3Hsobui9s5+T9nC10SxMw0MhgmTA4SN9Ridyzo=";
+    x86_64-linux = "sha256-SxBjRd95hoh2zwX6IDnkZnTWVduQafPHvnWw8qTuM78=";
+  }.${system} or throwSystem;
+in
+stdenv.mkDerivation rec {
+  pname = "flywheel-cli";
+  version = "16.2.0";
+
+  src = fetchurl {
+    url = "https://storage.googleapis.com/flywheel-dist/cli/${version}/fw-${os}_amd64-${version}.zip";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  unpackPhase = ''
+    unzip ${src}
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/bin ./${os}_amd64/fw
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Library and command line interface for interacting with a Flywheel site";
+    homepage = "https://gitlab.com/flywheel-io/public/python-cli";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ rbreslow ];
+    platforms = [ "x86_64-darwin" "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix b/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
new file mode 100644
index 000000000000..0ceaab4ab46b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, zlib, bzip2, xz }:
+
+stdenv.mkDerivation rec {
+  pname = "freebayes";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    name = "freebayes-${version}-src";
+    owner  = "ekg";
+    repo   = "freebayes";
+    rev    = "v${version}";
+    sha256 = "035nriknjqq8gvil81vvsmvqwi35v80q8h1cw24vd1gdyn1x7bys";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [ zlib bzip2 xz ];
+
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: foomatic_rip-options.o:/build/foomatic-filters-4.0.17/options.c:49: multiple definition of `cupsfilter';
+  #     foomatic_rip-foomaticrip.o:/build/foomatic-filters-4.0.17/foomaticrip.c:158: first defined here
+  env.NIX_CFLAGS_COMPILE = "-fcommon";
+
+  installPhase = ''
+    install -vD bin/freebayes bin/bamleftalign scripts/* -t $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Bayesian haplotype-based polymorphism discovery and genotyping";
+    license     = licenses.mit;
+    homepage    = "https://github.com/ekg/freebayes";
+    maintainers = with maintainers; [ jdagilliland ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/gatk/default.nix b/nixpkgs/pkgs/applications/science/biology/gatk/default.nix
new file mode 100644
index 000000000000..9884e3a77111
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/gatk/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchzip, jre, makeWrapper, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "gatk";
+  version = "4.5.0.0";
+  src = fetchzip {
+    url = "https://github.com/broadinstitute/gatk/releases/download/${version}/gatk-${version}.zip";
+    sha256 = "sha256-c3YZsSCjZY75jooiqtc8x/xsWTvYm9labUcOydDlSRQ=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python3 ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -m755 -D $src/gatk-package-${version}-local.jar $out/bin/
+    install -m755 -D $src/gatk-package-${version}-spark.jar $out/bin/
+    install -m755 -D $src/gatk $out/bin/
+  '';
+  postFixup = ''
+    wrapProgram $out/bin/gatk --prefix PATH : ${lib.makeBinPath [ jre ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://gatk.broadinstitute.org/hc/en-us";
+    description = "A wide variety of tools with a primary focus on variant discovery and genotyping." ;
+    license = licenses.asl20;
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ] ;
+    maintainers = with maintainers; [ apraga ];
+    longDescription = ''
+      The GATK is the industry standard for identifying SNPs and indels in germline
+      DNA and RNAseq data. Its scope is now expanding to include somatic short variant
+      calling, and to tackle copy number (CNV) and structural variation (SV). In
+      addition to the variant callers themselves, the GATK also includes many
+      utilities to perform related tasks such as processing and quality control of
+      high-throughput sequencing data, and bundles the popular Picard toolkit.
+
+      These tools were primarily designed to process exomes and whole genomes
+      generated with Illumina sequencing technology, but they can be adapted to handle
+      a variety of other technologies and experimental designs. And although it was
+      originally developed for human genetics, the GATK has since evolved to handle
+      genome data from any organism, with any level of ploidy.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/genmap/default.nix b/nixpkgs/pkgs/applications/science/biology/genmap/default.nix
new file mode 100644
index 000000000000..c6f9cf1fb193
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/genmap/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, which
+}:
+
+stdenv.mkDerivation rec {
+  pname = "genmap";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "cpockrandt";
+    repo = "genmap";
+    rev = "genmap-v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-7sIKBRMNzyCrZ/c2nXkknb6a5YsXe6DRE2IFhp6AviY=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  doCheck = true;
+  patches = [ ./gtest.patch ];
+  nativeCheckInputs = [ gtest which ];
+  preCheck = "make genmap_algo_test";
+
+  # disable benchmarks
+  preConfigure = ''
+    echo > benchmarks/CMakeLists.txt
+  '';
+
+  meta = {
+    description = "Ultra-fast computation of genome mappability";
+    license = lib.licenses.bsd3;
+    homepage = "https://github.com/cpockrandt/genmap";
+    maintainers = with lib.maintainers; [ jbedo ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/genmap/gtest.patch b/nixpkgs/pkgs/applications/science/biology/genmap/gtest.patch
new file mode 100644
index 000000000000..f01d0e115eb5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/genmap/gtest.patch
@@ -0,0 +1,30 @@
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 67ec8f9..ed0b2e0 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -2,23 +2,14 @@
+ #  GenMap tests
+ # ===========================================================================
+ 
+-include (ExternalProject)
+-ExternalProject_Add (googletest
+-                     PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest"
+-                     GIT_REPOSITORY "https://github.com/google/googletest.git"
+-                     INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}"
+-                     CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}"
+-                     GIT_TAG release-1.10.0
+-                     UPDATE_DISCONNECTED YES)
+ 
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # TODO: --coverage
+ add_executable (genmap_algo_test tests.cpp)
+-add_dependencies (genmap_algo_test googletest)
+ 
+ include_directories (${CMAKE_CURRENT_BINARY_DIR}/include)
+ target_link_libraries (genmap_algo_test ${SEQAN_LIBRARIES})
+-target_link_libraries (genmap_algo_test ${CMAKE_CURRENT_BINARY_DIR}/lib/libgtest.a)
+-target_link_libraries (genmap_algo_test ${CMAKE_CURRENT_BINARY_DIR}/lib/libgtest_main.a)
++target_link_libraries (genmap_algo_test -lgtest)
++target_link_libraries (genmap_algo_test -lgtest_main)
+ target_link_libraries (genmap_algo_test pthread)
+ 
+ add_test(NAME algo_test COMMAND genmap_algo_test)
diff --git a/nixpkgs/pkgs/applications/science/biology/hh-suite/default.nix b/nixpkgs/pkgs/applications/science/biology/hh-suite/default.nix
new file mode 100644
index 000000000000..76c6544b3430
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/hh-suite/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, xxd
+, enableMpi ? false
+, mpi
+, openmp
+}:
+stdenv.mkDerivation rec {
+  pname = "hh-suite";
+  version = "3.3.0";
+
+  src = fetchFromGitHub {
+    owner = "soedinglab";
+    repo = "hh-suite";
+    rev = "v${version}";
+    hash = "sha256-kjNqJddioCZoh/cZL3YNplweIGopWIGzCYQOnKDqZmw=";
+  };
+
+  patches = [
+    # Should be removable as soon as this upstream PR is merged: https://github.com/soedinglab/hh-suite/pull/357
+    (fetchpatch {
+      name = "fix-gcc13-build-issues.patch";
+      url = "https://github.com/soedinglab/hh-suite/commit/cec47cba5dcd580e668b1ee507c9282fbdc8e7d7.patch";
+      hash = "sha256-Msdmj9l8voPYXK0SSwUA6mEbFLBhTjjE/Kjp0VL4Kf4=";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake xxd ];
+  cmakeFlags = lib.optional stdenv.hostPlatform.isx86 "-DHAVE_SSE2=1"
+    ++ lib.optional stdenv.hostPlatform.isAarch "-DHAVE_ARM8=1"
+    ++ lib.optional stdenv.hostPlatform.avx2Support "-DHAVE_AVX2=1"
+    ++ lib.optional stdenv.hostPlatform.sse4_1Support "-DHAVE_SSE4_1=1";
+
+  buildInputs = lib.optional stdenv.cc.isClang openmp
+    ++ lib.optional enableMpi mpi;
+
+  meta = with lib; {
+    description = "Remote protein homology detection suite";
+    homepage = "https://github.com/soedinglab/hh-suite";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ natsukium ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix b/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
new file mode 100644
index 000000000000..67c39031b773
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
@@ -0,0 +1,46 @@
+{lib, stdenv, fetchFromGitHub, unzip, which, python3, perl}:
+
+stdenv.mkDerivation rec {
+  pname = "hisat2";
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    owner = "DaehwanKimLab";
+    repo = "hisat2";
+    rev = "v${version}";
+    sha256 = "0lmzdhzjkvxw7n5w40pbv5fgzd4cz0f9pxczswn3d4cr0k10k754";
+  };
+
+  nativeBuildInputs = [ unzip which ];
+  buildInputs = [ python3 perl ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp hisat2 \
+       hisat2-inspect-l \
+       hisat2-build-s \
+       hisat2-align-l \
+       hisat2-inspect \
+       hisat2-align-s \
+       hisat2-inspect-s \
+       hisat2-build-l \
+       hisat2-build \
+       extract_exons.py \
+       extract_splice_sites.py \
+       hisat2_extract_exons.py \
+       hisat2_extract_snps_haplotypes_UCSC.py \
+       hisat2_extract_snps_haplotypes_VCF.py \
+       hisat2_extract_splice_sites.py \
+       hisat2_simulate_reads.py \
+       $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Graph based aligner";
+    license = licenses.gpl3Plus;
+    homepage = "https://daehwankimlab.github.io/hisat2/";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix b/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
new file mode 100644
index 000000000000..243e067ddec3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "3.4";
+  pname = "hmmer";
+
+  src = fetchurl {
+    url = "http://eddylab.org/software/hmmer/${pname}-${version}.tar.gz";
+    sha256 = "sha256-ynDZT9DPJxvXBjQjqrsRbULeUzEXNDqbJ6ZcF/8G+/M=";
+  };
+
+  meta = with lib; {
+    description = "Biosequence analysis using profile hidden Markov models";
+    longDescription = ''
+      HMMER is used for searching sequence databases for sequence homologs, and for making sequence alignments. It implements methods using probabilistic models called profile hidden Markov models (profile HMMs).
+      HMMER is often used together with a profile database, such as Pfam or many of the databases that participate in Interpro. But HMMER can also work with query sequences, not just profiles, just like BLAST. For example, you can search a protein query sequence against a database with phmmer, or do an iterative search with jackhmmer.
+      HMMER is designed to detect remote homologs as sensitively as possible, relying on the strength of its underlying probability models. In the past, this strength came at significant computational expense, but as of the new HMMER3 project, HMMER is now essentially as fast as BLAST.
+      HMMER can be downloaded and installed as a command line tool on your own hardware, and now it is also more widely accessible to the scientific community via new search servers at the European Bioinformatics Institute.
+    '';
+    homepage = "http://hmmer.org/";
+    changelog = "https://github.com/EddyRivasLab/hmmer/blob/hmmer-${version}/release-notes/RELEASE-${version}.md";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.iimog ];
+    # at least SSE is *required*
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/igv/default.nix b/nixpkgs/pkgs/applications/science/biology/igv/default.nix
new file mode 100644
index 000000000000..6959a14df250
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/igv/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchzip, jdk17, testers, wrapGAppsHook, igv }:
+
+stdenv.mkDerivation rec {
+  pname = "igv";
+  version = "2.17.2";
+  src = fetchzip {
+    url = "https://data.broadinstitute.org/igv/projects/downloads/${lib.versions.majorMinor version}/IGV_${version}.zip";
+    sha256 = "sha256-KMLy+YxRT5EDZhfqkZRHrPR9BmBg6hFWLSNwJhZ2I+k=";
+  };
+
+  installPhase = ''
+    mkdir -pv $out/{share,bin}
+    cp -Rv * $out/share/
+
+    sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igv.sh
+    sed -i 's#java#${jdk17}/bin/java#g' $out/share/igv.sh
+
+    sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igvtools
+    sed -i 's#java#${jdk17}/bin/java#g' $out/share/igvtools
+
+    ln -s $out/share/igv.sh $out/bin/igv
+    ln -s $out/share/igvtools $out/bin/igvtools
+
+    chmod +x $out/bin/igv
+    chmod +x $out/bin/igvtools
+  '';
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  passthru.tests.version = testers.testVersion {
+    package = igv;
+  };
+
+
+  meta = with lib; {
+    homepage = "https://www.broadinstitute.org/igv/";
+    description = "A visualization tool for interactive exploration of genomic datasets";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.mimame ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix b/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix
new file mode 100644
index 000000000000..bf24f0ce19bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper,
+  perlPackages,
+  libminc, ebtks }:
+
+stdenv.mkDerivation rec {
+  pname = "inormalize";
+  version  = "unstable-2014-10-21";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "79cea9cdfe7b99abfd40afda89ab2253b596ad2f";
+    sha256 = "1ahqv5q0ljvji99a5q8azjkdf6bgp6nr8lwivkqwqs3jm0k5clq7";
+  };
+
+  patches = [ ./lgmask-interp.patch ./nu_correct_norm-interp.patch ];
+
+  postPatch = ''
+    substituteInPlace inormalize.cc \
+      --replace "clamp" "::clamp"
+  '';
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ libminc ebtks ];
+  propagatedBuildInputs = with perlPackages; [ perl GetoptTabular MNI-Perllib ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" "-DEBTKS_DIR=${ebtks}/lib/" ];
+
+  postFixup = ''
+    for p in $out/bin/*; do
+      wrapProgram $p --prefix PERL5LIB : $PERL5LIB
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BIC-MNI/${pname}";
+    description = "Program to normalize intensity of MINC files";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license   = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch b/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch
new file mode 100644
index 000000000000..953bce9a1848
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch
@@ -0,0 +1,10 @@
+diff --git a/lgmask.in b/lgmask.in
+index 17dbe4d..2195d91 100644
+--- a/lgmask.in
++++ b/lgmask.in
+@@ -1,4 +1,4 @@
+-#! @PERL@
++#! /usr/bin/env perl
+ 
+ #---------------------------------------------------------------------------
+ #@COPYRIGHT :
diff --git a/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch b/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch
new file mode 100644
index 000000000000..75dc46a799ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch
@@ -0,0 +1,10 @@
+diff --git a/nu_correct_norm.in b/nu_correct_norm.in
+index 1dc84ac..1bc6235 100644
+--- a/nu_correct_norm.in
++++ b/nu_correct_norm.in
+@@ -1,4 +1,4 @@
+-#! @PERL@
++#! /usr/bin/perl
+  
+ #---------------------------------------------------------------------------
+ #@COPYRIGHT :
diff --git a/nixpkgs/pkgs/applications/science/biology/iqtree/default.nix b/nixpkgs/pkgs/applications/science/biology/iqtree/default.nix
new file mode 100644
index 000000000000..37a8a58a92e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/iqtree/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, boost
+, eigen
+, zlib
+, llvmPackages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "iqtree";
+  version = "2.2.2.7";
+
+  src = fetchFromGitHub {
+    owner = "iqtree";
+    repo = "iqtree2";
+    rev = "v${version}";
+    hash = "sha256-XyjVo5TYMoB+ZOAGc4ivYqFGnEO1M7mhxXrG45TP44Y=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    boost
+    eigen
+    zlib
+  ] ++ lib.optionals stdenv.isDarwin [
+    llvmPackages.openmp
+  ];
+
+  meta = with lib; {
+    homepage = "http://www.iqtree.org/";
+    description = "Efficient and versatile phylogenomic software by maximum likelihood";
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ bzizou ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/itsx/default.nix b/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
new file mode 100644
index 000000000000..843f0df57924
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, hmmer, perl }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.1";
+  pname = "itsx";
+
+  src = fetchurl {
+    url = "http://microbiology.se/sw/ITSx_${version}.tar.gz";
+    sha256 = "0lrmy2n3ax7f208k0k8l3yz0j5cpz05hv4hx1nnxzn0c51z1pc31";
+  };
+
+  buildInputs = [ hmmer perl ];
+
+  buildPhase = ''
+    sed -e "s,profileDB = .*,profileDB = \"$out/share/ITSx_db/HMMs\";," -i ITSx
+    sed "3 a \$ENV{\'PATH\'}='${hmmer}/bin:'.\"\$ENV{\'PATH\'}\";" -i ITSx
+    mkdir bin
+    mv ITSx bin
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/doc && cp -a bin $out/
+    cp *pdf $out/share/doc
+    cp -r ITSx_db $out/share
+  '';
+
+  meta = with lib; {
+    description = "Improved software detection and extraction of ITS1 and ITS2 from ribosomal ITS sequences of fungi and other eukaryotes for use in environmental sequencing";
+    homepage = "https://microbiology.se/software/itsx/";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/iv/default.nix b/nixpkgs/pkgs/applications/science/biology/iv/default.nix
new file mode 100644
index 000000000000..ba1b91298bb3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/iv/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchurl
+, neuron-version
+, libX11
+, libXext
+, patchelf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "iv";
+  version = "19";
+
+  src = fetchurl {
+    url = "https://www.neuron.yale.edu/ftp/neuron/versions/v${neuron-version}/iv-${version}.tar.gz";
+    sha256 = "07a3g8zzay4h0bls7fh89dd0phn7s34c2g15pij6dsnwpmjg06yx";
+  };
+
+  nativeBuildInputs = [ patchelf ];
+  buildInputs = [ libXext ];
+  propagatedBuildInputs = [ libX11 ];
+
+  hardeningDisable = [ "format" ];
+
+  postInstall = ''
+    for dir in $out/*; do # */
+      if [ -d $dir/lib ]; then
+        mv $dir/* $out # */
+        rmdir $dir
+        break
+      fi
+    done
+  '' + lib.optionalString stdenv.isLinux ''
+    patchelf --add-needed ${libX11}/lib/libX11.so $out/lib/libIVhines.so
+  '';
+
+  meta = with lib; {
+    description = "InterViews graphical library for Neuron";
+    license = licenses.bsd3;
+    homepage = "http://www.neuron.yale.edu/neuron";
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix b/nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix
new file mode 100644
index 000000000000..3ed6a885aa75
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchurl, appimageTools, wrapGAppsHook }:
+
+let
+  pname = "jbrowse";
+  version = "2.5.0";
+
+  src = fetchurl {
+    url = "https://github.com/GMOD/jbrowse-components/releases/download/v${version}/jbrowse-desktop-v${version}-linux.AppImage";
+    sha256 = "sha256-YLsyA+RVoFvjE4MfAtglJYdUgic487SxwdUhvolzBPc=";
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    inherit pname version src;
+  };
+
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+  unshareIpc = false;
+
+  extraInstallCommands = ''
+    mkdir -p $out/bin
+    mv $out/bin/jbrowse-${version} $out/bin/jbrowse-desktop
+
+    install -m 444 -D ${appimageContents}/jbrowse-desktop.desktop $out/share/applications/jbrowse-desktop.desktop
+    install -m 444 -D ${appimageContents}/jbrowse-desktop.png \
+       $out/share/icons/hicolor/512x512/apps/jbrowse-desktop.png
+    substituteInPlace $out/share/applications/jbrowse-desktop.desktop \
+      --replace 'Exec=AppRun --no-sandbox' 'Exec=jbrowse-desktop'
+  '';
+
+  meta = with lib; {
+    description = "The next-generation genome browser";
+    homepage = "https://jbrowse.org/jb2/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ benwbooth ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/kalign/default.nix b/nixpkgs/pkgs/applications/science/biology/kalign/default.nix
new file mode 100644
index 000000000000..3ca83978d969
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/kalign/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, cmake
+, fetchFromGitHub
+, llvmPackages
+, enableSse4_1 ? stdenv.hostPlatform.sse4_1Support
+, enableAvx ? stdenv.hostPlatform.avxSupport
+, enableAvx2 ? stdenv.hostPlatform.avx2Support
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "kalign";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "TimoLassmann";
+    repo = "kalign";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-QcFNaCTqj6CFiOzQ6ezfBL0mu8PDU11hyNdkcsLOPzA=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = lib.optionals stdenv.cc.isClang [
+    llvmPackages.openmp
+  ];
+
+  cmakeFlags =
+    # these flags are ON by default
+    lib.optional (!enableSse4_1) "-DENABLE_SSE=OFF"
+    ++ lib.optional (!enableAvx) "-DENABLE_AVX=OFF"
+    ++ lib.optional (!enableAvx2) "-DENABLE_AVX2=OFF";
+
+  doCheck = true;
+
+  meta = {
+    description = "A fast multiple sequence alignment program";
+    homepage = "https://github.com/TimoLassmann/kalign";
+    changelog = "https://github.com/TimoLassmann/kalign/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix b/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
new file mode 100644
index 000000000000..a193fa59238f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, autoconf, cmake, hdf5, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "kallisto";
+  version = "0.50.1";
+
+  src = fetchFromGitHub {
+    repo = "kallisto";
+    owner = "pachterlab";
+    rev = "v${version}";
+    sha256 = "sha256-JJZJOl4u6FzngrrMuC2AfD5ry2LBOT8tdz2piH+9LFE=";
+  };
+
+  nativeBuildInputs = [ autoconf cmake ];
+
+  buildInputs = [ hdf5 zlib ];
+
+  cmakeFlags = [ "-DUSE_HDF5=ON" ];
+
+  # Parallel build fails in some cases: https://github.com/pachterlab/kallisto/issues/160
+  enableParallelBuilding = false;
+
+  meta = with lib; {
+    description = "Program for quantifying abundances of transcripts from RNA-Seq data";
+    homepage = "https://pachterlab.github.io/kallisto";
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ arcadio ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/kent/default.nix b/nixpkgs/pkgs/applications/science/biology/kent/default.nix
new file mode 100644
index 000000000000..b6e4661ccfd6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/kent/default.nix
@@ -0,0 +1,85 @@
+{ lib, stdenv
+, libpng
+, libuuid
+, zlib
+, bzip2
+, xz
+, openssl
+, curl
+, libmysqlclient
+, bash
+, fetchFromGitHub
+, which
+}:
+stdenv.mkDerivation rec {
+  pname = "kent";
+  version = "446";
+
+  src = fetchFromGitHub {
+    owner = "ucscGenomeBrowser";
+    repo = pname;
+    rev = "v${version}_base";
+    hash = "sha256-d8gcoyMwINdHoD6xaNKt4rCKrKir99+i4KIzJ2YnxRw=";
+  };
+
+  buildInputs = [ libpng libuuid zlib bzip2 xz openssl curl libmysqlclient ];
+
+  postPatch = ''
+    substituteInPlace ./src/checkUmask.sh \
+      --replace "/bin/bash" "${bash}/bin/bash"
+
+    substituteInPlace ./src/hg/sqlEnvTest.sh \
+      --replace "which mysql_config" "${which}/bin/which ${libmysqlclient}/bin/mysql_config"
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    export MACHTYPE=$(uname -m)
+    export CFLAGS="-fPIC"
+    export MYSQLINC=$(mysql_config --include | sed -e 's/^-I//g')
+    export MYSQLLIBS=$(mysql_config --libs)
+    export HOME=$TMPDIR
+    export DESTBINDIR=$HOME/bin
+
+    mkdir -p $HOME/lib $HOME/bin/x86_64
+
+    cd ./src
+    chmod +x ./checkUmask.sh
+    ./checkUmask.sh
+
+    make libs
+    cd jkOwnLib
+    make
+
+    cp ../lib/x86_64/jkOwnLib.a $HOME/lib
+    cp ../lib/x86_64/jkweb.a $HOME/lib
+    cp -r ../inc  $HOME/
+
+    cd ../utils
+    make
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/lib $out/inc
+    cp $HOME/lib/jkOwnLib.a $out/lib
+    cp $HOME/lib/jkweb.a $out/lib
+    cp $HOME/bin/x86_64/* $out/bin
+    cp -r $HOME/inc/* $out/inc/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "UCSC Genome Bioinformatics Group's suite of biological analysis tools, i.e. the kent utilities";
+    homepage = "http://genome.ucsc.edu";
+    changelog = "https://github.com/ucscGenomeBrowser/kent/releases/tag/v${version}_base";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ scalavision ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/kssd/default.nix b/nixpkgs/pkgs/applications/science/biology/kssd/default.nix
new file mode 100644
index 000000000000..8f60b8b991ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/kssd/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, zlib
+, kssd
+, runCommand
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "kssd";
+  version = "2.21";
+
+  src = fetchFromGitHub {
+    owner = "yhg926";
+    repo = "public_kssd";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-D/s1jL2oKE0rSdRMVljskYFsw5UPOv1L95Of+K+e17w=";
+  };
+
+  patches = [
+    # https://github.com/yhg926/public_kssd/pull/11
+    (fetchpatch {
+      name = "allocate-enough-memory.patch";
+      url = "https://github.com/yhg926/public_kssd/commit/b1e66bbcc04687bc3201301cd742a0b26a87cb5d.patch";
+      hash = "sha256-yFyJetpsGKeu+H6Oxrmn5ea4ESVtblb3YJDja4JEAEM=";
+    })
+  ];
+
+  buildInputs = [ zlib ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -vD kssd $out/bin/kssd
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    simple = runCommand "${finalAttrs.pname}-test" { } ''
+      mkdir $out
+      ${lib.getExe kssd} dist -L ${kssd.src}/shuf_file/L3K10.shuf -r ${kssd.src}/test_fna/seqs1 -o $out/reference
+      ${lib.getExe kssd} dist -L ${kssd.src}/shuf_file/L3K10.shuf -o $out/query ${kssd.src}/test_fna/seqs2
+      ${lib.getExe kssd} dist -r $out/reference -o $out/distout $out/query
+    '';
+  };
+
+  meta = with lib; {
+    description = "K-mer substring space decomposition";
+    license     = licenses.asl20;
+    homepage    = "https://github.com/yhg926/public_kssd";
+    maintainers = with maintainers; [ unode ];
+    platforms = platforms.linux;
+    mainProgram = "kssd";
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/last/default.nix b/nixpkgs/pkgs/applications/science/biology/last/default.nix
new file mode 100644
index 000000000000..3bc84e414bb7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/last/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, unzip
+, zlib
+, python3
+, parallel
+}:
+
+stdenv.mkDerivation rec {
+  pname = "last";
+  version = "1542";
+
+  src = fetchFromGitLab {
+    owner = "mcfrith";
+    repo = "last";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ZzvyyecYiBscogfN9/FnDbHg/lqb8y14n9C2KLIqhFA=";
+  };
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  buildInputs = [
+    zlib
+    python3
+  ];
+
+  makeFlags = [
+    "prefix=${placeholder "out"}"
+  ];
+
+  postFixup = ''
+    for f in $out/bin/parallel-* ; do
+      sed -i 's|parallel |${parallel}/bin/parallel |' $f
+    done
+  '';
+
+  meta = with lib; {
+    description = "Genomic sequence aligner";
+    homepage = "https://gitlab.com/mcfrith/last";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/macs2/default.nix b/nixpkgs/pkgs/applications/science/biology/macs2/default.nix
new file mode 100644
index 000000000000..8884d41d9064
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/macs2/default.nix
@@ -0,0 +1,54 @@
+{ lib, python3, fetchpatch, fetchPypi }:
+
+python3.pkgs.buildPythonPackage rec {
+  pname = "macs2";
+  version = "2.2.9.1";
+  format = "pyproject";
+
+  src = fetchPypi {
+    pname = lib.toUpper pname;
+    inherit version;
+    hash = "sha256-jVa8N/uCP8Y4fXgTjOloQFxUoKjNl3ZoJwX9CYMlLRY=";
+  };
+
+  patches = [
+    # https://github.com/macs3-project/MACS/pull/590
+    (fetchpatch {
+      name = "remove-pip-build-dependency.patch";
+      url = "https://github.com/macs3-project/MACS/commit/cf95a930daccf9f16e5b9a9224c5a2670cf67939.patch";
+      hash = "sha256-WB3Ubqk5fKtZt97QYo/sZDU/yya9MUo1NL4VsKXR+Yo=";
+    })
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    cython
+    numpy
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    numpy
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  nativeCheckInputs = with python3.pkgs; [
+    unittestCheckHook
+  ];
+
+  unittestFlagsArray = [
+    "-s"
+    "test"
+  ];
+
+  pythonImportsCheck = [ "MACS2" ];
+
+  meta = with lib; {
+    description = "Model-based Analysis for ChIP-Seq";
+    homepage = "https://github.com/macs3-project/MACS/";
+    changelog = "https://github.com/macs3-project/MACS/releases/tag/v${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ gschwartz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/macse/default.nix b/nixpkgs/pkgs/applications/science/biology/macse/default.nix
new file mode 100644
index 000000000000..2ac09ca21ab6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/macse/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "macse";
+  version = "2.03";
+
+  src = fetchurl {
+    url = "https://bioweb.supagro.inra.fr/${pname}/releases/${pname}_v${version}.jar";
+    sha256 = "0jnjyz4f255glg37rawzdv4m6nfs7wfwc5dny7afvx4dz2sv4ssh";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/java
+    cp -s $src $out/share/java/macse.jar
+    makeWrapper ${jre}/bin/java $out/bin/macse --add-flags "-jar $out/share/java/macse.jar"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Multiple alignment of coding sequences";
+    homepage = "https://bioweb.supagro.inra.fr/macse/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    license = licenses.gpl2;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/mafft/default.nix b/nixpkgs/pkgs/applications/science/biology/mafft/default.nix
new file mode 100644
index 000000000000..e9acd1c88b66
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/mafft/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitLab }:
+
+stdenv.mkDerivation rec {
+  pname = "mafft";
+  version = "7.520";
+
+  src = fetchFromGitLab {
+    owner = "sysimm";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-H+EcKahJWwidAx+IUT4uCZEty+S8hUeMSB8VbTu5SmQ=";
+  };
+
+  preBuild = ''
+    cd ./core
+    make clean
+  '';
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=$(out)" ];
+
+  meta = with lib;
+    {
+      description = "Multiple alignment program for amino acid or nucleotide sequences";
+      homepage = "https://mafft.cbrc.jp/alignment/software/";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ natsukium ];
+      platforms = platforms.unix;
+    };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/manta/default.nix b/nixpkgs/pkgs/applications/science/biology/manta/default.nix
new file mode 100644
index 000000000000..1f46e0141da3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/manta/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, cmake, zlib, python2 }:
+
+stdenv.mkDerivation rec {
+  pname = "manta";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Illumina";
+    repo = "manta";
+    rev = "v${version}";
+    sha256 = "1711xkcw8rpw9xv3bbm7v1aryjz4r341rkq5255192dg38sgq7w2";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib python2 ];
+  postFixup = ''
+    sed -i 's|/usr/bin/env python2|${python2.interpreter}|' $out/lib/python/makeRunScript.py
+    sed -i 's|/usr/bin/env python|${python2.interpreter}|' $out/lib/python/pyflow/pyflow.py
+    sed -i 's|/bin/bash|${stdenv.shell}|' $out/lib/python/pyflow/pyflowTaskWrapper.py
+  '';
+  doInstallCheck = true;
+  installCheckPhase = ''
+    rm $out/lib/python/**/*.pyc
+    PYTHONPATH=$out/lib/python:$PYTHONPATH python -c 'import makeRunScript'
+    PYTHONPATH=$out/lib/python/pyflow:$PYTHONPATH python -c 'import pyflowTaskWrapper; import pyflow'
+  '';
+
+  meta = with lib; {
+    description = "Structural variant caller";
+    license = licenses.gpl3;
+    homepage = "https://github.com/Illumina/manta";
+    maintainers = with maintainers; [ jbedo ];
+    platforms =  platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/megahit/default.nix b/nixpkgs/pkgs/applications/science/biology/megahit/default.nix
new file mode 100644
index 000000000000..5fa9420bc87c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/megahit/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+  pname    = "megahit";
+  version = "1.2.9";
+
+  src = fetchFromGitHub {
+    owner = "voutcn";
+    repo = "megahit";
+    rev = "v${version}";
+    sha256 = "1r5d9nkdmgjsbrpj43q9hy3s8jwsabaz3ji561v18hy47v58923c";
+  };
+
+  patches = [
+    # Fix gcc-13 build failure:
+    #   https://github.com/voutcn/megahit/pull/366
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/voutcn/megahit/commit/4cb2f793503087163bda8592222f105f27e33e66.patch";
+      hash = "sha256-b5mhzif+OPcMjmg+BnaUc5CB6Acn/KTBOJEw+WYEhbs=";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib ];
+
+  cmakeFlags = lib.optionals stdenv.hostPlatform.isStatic [
+    "-DSTATIC_BUILD=ON"
+    ];
+  meta = with lib; {
+    description = "An ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph";
+    license     = licenses.gpl3;
+    homepage    = "https://github.com/voutcn/megahit";
+    maintainers = with maintainers; [ luispedro ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix b/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix
new file mode 100644
index 000000000000..c0f67c314161
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchurl, python3, perl, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "meme-suite";
+  version = "5.1.1";
+
+  src = fetchurl {
+    url = "https://meme-suite.org/meme-software/${version}/meme-${version}.tar.gz";
+    sha256 = "38d73d256d431ad4eb7da2c817ce56ff2b4e26c39387ff0d6ada088938b38eb5";
+  };
+
+  buildInputs = [ zlib ];
+  nativeBuildInputs = [ perl python3 ];
+
+  meta = with lib; {
+    description = "Motif-based sequence analysis tools";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ gschwartz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix b/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix
new file mode 100644
index 000000000000..d4ce4071a274
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/messer-slim/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, cmake, gcc, gcc-unwrapped }:
+
+stdenv.mkDerivation rec {
+  version = "4.1";
+  pname = "messer-slim";
+
+  src = fetchFromGitHub {
+    owner = "MesserLab";
+    repo = "SLiM";
+    rev = "v${version}";
+    sha256 = "sha256-mb6xcu28QYAFm2906lRNY0zciQBKSGcz3q/cvOEh/VE=";
+  };
+
+  nativeBuildInputs = [ cmake gcc gcc-unwrapped ];
+
+  cmakeFlags = [ "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
+                 "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib" ];
+
+  meta = {
+     description = "An evolutionary simulation framework";
+     homepage = "https://messerlab.org/slim/";
+     license = with lib.licenses; [ gpl3 ];
+     maintainers = with lib.maintainers; [ bzizou ];
+     platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/migrate/default.nix b/nixpkgs/pkgs/applications/science/biology/migrate/default.nix
new file mode 100644
index 000000000000..31e4eb2fcb42
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/migrate/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, gccStdenv, fetchurl, zlib, mpi }:
+
+gccStdenv.mkDerivation rec {
+  version = "3.7.2";
+  pname = "migrate";
+
+  src = fetchurl {
+    url = "https://peterbeerli.com/migrate-html5/download_version3/${pname}-${version}.src.tar.gz";
+    sha256 = "1p2364ffjc56i82snzvjpy6pkf6wvqwvlvlqxliscx2c303fxs8v";
+  };
+
+  buildInputs = [ zlib mpi ];
+  setSourceRoot = "sourceRoot=$(echo */src)";
+  buildFlags = [ "thread" "mpis" ];
+  preInstall = "mkdir -p $out/man/man1";
+
+  meta = with lib; {
+    broken = stdenv.isDarwin;
+    description = "Estimates population size, migration, population splitting parameters using genetic/genomic data";
+    homepage = "https://peterbeerli.com/migrate-html5/index.html";
+    license = licenses.mit;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix b/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
new file mode 100644
index 000000000000..3dece25915b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper, flex, bison, perl, TextFormat,
+  libminc, libjpeg, nifticlib, zlib }:
+
+stdenv.mkDerivation rec {
+  pname   = "minc-tools";
+  version = "unstable-2020-07-25";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "fb0a68a07d281e4e099c5d54df29925240de14c1";
+    sha256 = "0zcv2sdj3k6k0xjqdq8j5bxq8smm48dzai90vwsmz8znmbbm6kvw";
+  };
+
+  nativeBuildInputs = [ cmake flex bison makeWrapper ];
+  buildInputs = [ libminc libjpeg nifticlib zlib ];
+  propagatedBuildInputs = [ perl TextFormat ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake"
+                 "-DZNZ_INCLUDE_DIR=${nifticlib}/include/nifti"
+                 "-DNIFTI_INCLUDE_DIR=${nifticlib}/include/nifti" ];
+
+  postFixup = ''
+    for prog in minccomplete minchistory mincpik; do
+      wrapProgram $out/bin/$prog --prefix PERL5LIB : $PERL5LIB
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BIC-MNI/minc-tools";
+    description = "Command-line utilities for working with MINC files";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license   = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix b/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix
new file mode 100644
index 000000000000..42178722b551
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper,
+  perlPackages,
+  libminc, octave, coreutils, minc_tools }:
+
+stdenv.mkDerivation rec {
+  pname = "minc-widgets";
+  version = "unstable-2016-04-20";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "f08b643894c81a1a2e0fbfe595a17a42ba8906db";
+    sha256 = "1b9g6lf37wpp211ikaji4rf74rl9xcmrlyqcw1zq3z12ji9y33bm";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ libminc ];
+  propagatedBuildInputs = (with perlPackages; [ perl GetoptTabular MNI-Perllib ]) ++ [ octave coreutils minc_tools ];
+
+  postFixup = ''
+    for p in $out/bin/*; do
+      wrapProgram $p --prefix PERL5LIB : $PERL5LIB --set PATH "${lib.makeBinPath [ coreutils minc_tools ]}";
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BIC-MNI/${pname}";
+    description = "Collection of Perl and shell scripts for processing MINC files";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/minia/default.nix b/nixpkgs/pkgs/applications/science/biology/minia/default.nix
new file mode 100644
index 000000000000..023a05d7504f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/minia/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, cmake, hdf5, boost }:
+
+stdenv.mkDerivation rec {
+  pname = "minia";
+  version = "3.2.1";
+
+  src = fetchFromGitHub {
+    owner = "GATB";
+    repo = "minia";
+    rev = "v${version}";
+    sha256 = "0bmfrywixaaql898l0ixsfkhxjf2hb08ssnqzlzacfizxdp46siq";
+    fetchSubmodules = true;
+  };
+
+  patches = [ ./no-bundle.patch ];
+
+  env.NIX_CFLAGS_COMPILE = toString [ "-Wformat" ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ hdf5 boost ];
+
+  prePatch = ''
+    rm -rf thirdparty/gatb-core/gatb-core/thirdparty/{hdf5,boost}
+  '';
+
+  meta = with lib; {
+    description = "Short read genome assembler";
+    homepage = "https://github.com/GATB/minia";
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/minia/no-bundle.patch b/nixpkgs/pkgs/applications/science/biology/minia/no-bundle.patch
new file mode 100644
index 000000000000..21d12c7f6f2d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/minia/no-bundle.patch
@@ -0,0 +1,222 @@
+diff --git a/thirdparty/gatb-core/gatb-core/CMakeLists.txt b/thirdparty/gatb-core/gatb-core/CMakeLists.txt
+index f48a70b..0e11ece 100644
+--- a/thirdparty/gatb-core/gatb-core/CMakeLists.txt
++++ b/thirdparty/gatb-core/gatb-core/CMakeLists.txt
+@@ -257,7 +257,6 @@ ADD_SUBDIRECTORY(thirdparty)
+ #  DEPENDENCIES 
+ ################################################################################
+ # we must be sure that hdf5 is built and installed before building gatb-core
+-ADD_DEPENDENCIES (gatbcore-static hdf5 hdf5_postbuild)
+ 
+ ################################################################################
+ #  DOCUMENTATION GENERATION 
+@@ -288,7 +287,6 @@ IF (NOT DEFINED GATB_CORE_INSTALL_EXCLUDE)
+     INSTALL (FILES ${PROJECT_SOURCE_DIR}/doc/misc/README.txt  DESTINATION . OPTIONAL)
+     INSTALL (FILES ${PROJECT_SOURCE_DIR}/LICENCE              DESTINATION . OPTIONAL)
+     INSTALL (FILES ${PROJECT_SOURCE_DIR}/THIRDPARTIES.md      DESTINATION . OPTIONAL)
+-    INSTALL (DIRECTORY ${PROJECT_SOURCE_DIR}/thirdparty/boost DESTINATION ./include)
+ ENDIF()
+ 
+ ################################################################################
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
+index dfeee1c..d5553a2 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/LargeInt.hpp
+@@ -35,7 +35,7 @@
+ #include <stdint.h>
+ #include <algorithm>
+ #include <iostream>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ #include <gatb/system/api/Exception.hpp>
+ #include <gatb/system/api/config.hpp>
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
+index 60be5d5..25ae75e 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt128.hpp
+@@ -33,7 +33,7 @@
+ /********************************************************************************/
+ 
+ #include <iostream>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
+index 6a71bb0..b9205df 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt16.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ /********************************************************************************/
+ namespace gatb  {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
+index c22b892..62e6586 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt32.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ /********************************************************************************/
+ namespace gatb  {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
+index c06aaab..e0befba 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt64.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ extern const unsigned char revcomp_4NT[];
+ extern const unsigned char comp_NT    [];
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
+index 9659874..0c79ff6 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/math/NativeInt8.hpp
+@@ -31,7 +31,7 @@
+ #include <iostream>
+ #include <gatb/system/api/types.hpp>
+ #include <gatb/tools/misc/api/Abundance.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ /********************************************************************************/
+ namespace gatb  {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
+index 3cb84f8..cd5d382 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/Abundance.hpp
+@@ -31,7 +31,7 @@
+ /********************************************************************************/
+ 
+ #include <sys/types.h>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ /********************************************************************************/
+ namespace gatb      {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
+index b8f6c79..a040832 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/misc/api/IHistogram.hpp
+@@ -28,7 +28,7 @@
+ 
+ #include <gatb/system/api/ISmartPointer.hpp>
+ #include <gatb/tools/storage/impl/Storage.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ /********************************************************************************/
+ namespace gatb      {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
+index 2645abd..fad48c0 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5.hpp
+@@ -40,7 +40,7 @@
+ #include <string>
+ #include <vector>
+ #include <stdarg.h>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ /********************************************************************************/
+ namespace gatb      {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
+index a92b729..66d552f 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/CollectionHDF5Patch.hpp
+@@ -40,7 +40,7 @@
+ #include <string>
+ #include <vector>
+ #include <stdarg.h>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ 
+ /********************************************************************************/
+ namespace gatb      {
+diff --git a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
+index 29e0949..0565cc4 100644
+--- a/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
++++ b/thirdparty/gatb-core/gatb-core/src/gatb/tools/storage/impl/StorageHDF5.hpp
+@@ -33,7 +33,7 @@
+ #include <gatb/tools/storage/impl/CollectionHDF5.hpp>
+ #include <gatb/tools/storage/impl/CollectionHDF5Patch.hpp>
+ #include <gatb/system/impl/System.hpp>
+-#include <hdf5/hdf5.h>
++#include <hdf5.h>
+ #include <sstream>
+ 
+ /********************************************************************************/
+diff --git a/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt b/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
+index 6e0b5c4..34aef28 100644
+--- a/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
++++ b/thirdparty/gatb-core/gatb-core/thirdparty/CMakeLists.txt
+@@ -1,54 +1,3 @@
+-################################################################################
+-#  HDF5 GENERATION 
+-################################################################################
+-
+-#SET (HDF5_ENABLE_THREADSAFE       ON)
+-#SET (H5_HAVE_THREADSAFE 1)
+-
+-##########  MOMENTARY DEACTIVATED => CRASH ON MACOS TO BE INVESTIGATED  ##########
+-SET (HDF5_BUILD_TOOLS             ON CACHE BOOL "Build HDF5 Tools")
+-#SET (CMAKE_EXE_LINKER_FLAGS       "-lpthread -lz")
+-
+-SET (HDF5_EXTERNALLY_CONFIGURED     ON)
+-
+-#SET (HDF5_INSTALL_BIN_DIR           ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})
+-#SET (HDF5_INSTALL_LIB_DIR           ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
+-SET (HDF5_INSTALL_BIN_DIR           bin)
+-SET (HDF5_INSTALL_LIB_DIR           lib)
+-
+-SET (HDF5_INSTALL_INCLUDE_DIR       ${PROJECT_BINARY_DIR}/include/${CMAKE_BUILD_TYPE}/hdf5)
+-SET (HDF5_INSTALL_DATA_DIR          ${PROJECT_BINARY_DIR}/share/${CMAKE_BUILD_TYPE})
+-SET (HDF5_INSTALL_CMAKE_DIR         ${PROJECT_BINARY_DIR}/share/${CMAKE_BUILD_TYPE})
+-
+-IF (NOT DEFINED GATB_CORE_INSTALL_EXCLUDE)
+-    SET (HDF5_EXPORTED_TARGETS          "gatb-hdf5")
+-ENDIF()
+-
+-IF (NOT DEFINED GATB_CORE_EXCLUDE_HDF5_ZLIB)
+-	OPTION (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON)
+-ENDIF()
+-
+-# We don't want warnings from HDF5 compilation
+-set (COMPILE_DEFINITIONS  "${COMPILE_DEFINITIONS}  -w")
+-add_definitions (${COMPILE_DEFINITIONS})
+-
+-# add HDF5 generation
+-ADD_SUBDIRECTORY (hdf5)
+-
+-# We add a custom target for copying header files.
+-add_custom_target (hdf5_postbuild ALL)
+-
+-# We build the output directory
+-add_custom_command (TARGET hdf5_postbuild POST_BUILD  COMMAND ${CMAKE_COMMAND} -E make_directory ${HDF5_INSTALL_INCLUDE_DIR})
+-
+-# We define all the header files to be copied
+-file (GLOB headerfiles ${PROJECT_SOURCE_DIR}/thirdparty/hdf5/src/*.h ${PROJECT_BINARY_DIR}/thirdparty/hdf5/H5pubconf.h)
+-
+-# We copy each header file
+-foreach (header ${headerfiles})
+-  add_custom_command (TARGET hdf5_postbuild POST_BUILD  COMMAND ${CMAKE_COMMAND} -E copy_if_different ${header} ${HDF5_INSTALL_INCLUDE_DIR}  )
+-endforeach()
+-
+ # include other smaller libraries (json, Boophf)
+ 
+ add_custom_target (thirdparty_copy ALL)
diff --git a/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix b/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
new file mode 100644
index 000000000000..35c1b076d7eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "minimap2";
+  version = "2.26";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "lh3";
+    rev = "v${version}";
+    sha256 = "sha256-vK8Z/j6Ndu1vMFYPPzViP4evtIhyVVFwsfTqNCYnXpQ=";
+  };
+
+  buildInputs = [ zlib ];
+
+  makeFlags = lib.optionals stdenv.isAarch64 [ "arm_neon=1" "aarch64=1" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp minimap2 $out/bin
+    mkdir -p $out/share/man/man1
+    cp minimap2.1 $out/share/man/man1
+  '';
+
+  meta = with lib; {
+    description = "A versatile pairwise aligner for genomic and spliced nucleotide sequences";
+    homepage = "https://lh3.github.io/minimap2";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = [ maintainers.arcadio ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix b/nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix
new file mode 100644
index 000000000000..3e39fcb2918b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, xxd
+, perl
+, installShellFiles
+, enableAvx2 ? stdenv.hostPlatform.avx2Support
+, enableSse4_1 ? stdenv.hostPlatform.sse4_1Support
+, enableMpi ? false
+, mpi
+, openmp
+, zlib
+, bzip2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mmseqs2";
+  version = "15-6f452";
+
+  src = fetchFromGitHub {
+    owner = "soedinglab";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-L+zOWrGkCLz/wqpBuji8H4/93sDFpcfnDOE8FHq1j84=";
+  };
+
+  nativeBuildInputs = [ cmake xxd perl installShellFiles ];
+  cmakeFlags =
+    lib.optional enableAvx2 "-DHAVE_AVX2=1"
+    ++ lib.optional enableSse4_1 "-DHAVE_SSE4_1=1"
+    ++ lib.optional enableMpi "-DHAVE_MPI=1";
+
+  buildInputs =
+    lib.optionals stdenv.cc.isClang [ openmp zlib bzip2 ]
+    ++ lib.optional enableMpi mpi;
+
+  postInstall = ''
+    installShellCompletion --bash --cmd mmseqs $out/util/bash-completion.sh
+    rm -r $out/util/
+  '';
+
+  meta = with lib; {
+    description = "Ultra fast and sensitive sequence search and clustering suite";
+    homepage = "https://mmseqs.com/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ natsukium ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix b/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix
new file mode 100644
index 000000000000..29ab02ee3139
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper, perlPackages, libminc }:
+
+stdenv.mkDerivation rec {
+  pname = "mni_autoreg";
+  version = "unstable-2022-05-20";
+
+  src = fetchFromGitHub {
+    owner = "BIC-MNI";
+    repo = pname;
+    rev = "be7bd25bf7776974e0f2c1d90b6e7f8ccc0c8874";
+    sha256 = "sGMZbCrdV6yAOgGiqvBFOUr6pGlTCqwy8yNrPxMoKco=";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ libminc ];
+  propagatedBuildInputs = with perlPackages; [ perl GetoptTabular MNI-Perllib ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" ];
+  # testing broken: './minc_wrapper: Permission denied' from Testing/ellipse0.mnc
+
+  postFixup = ''
+    for prog in autocrop mritoself mritotal xfmtool; do
+      echo $out/bin/$prog
+      wrapProgram $out/bin/$prog --prefix PERL5LIB : $PERL5LIB;
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BIC-MNI/mni_autoreg";
+    description = "Tools for automated registration using the MINC image format";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix b/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
new file mode 100644
index 000000000000..e4c2bbe65652
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, readline }:
+
+stdenv.mkDerivation rec {
+  pname = "mrbayes";
+  version = "3.2.7a";
+
+  src = fetchFromGitHub {
+    owner = "NBISweden";
+    repo = "MrBayes";
+    rev = "v${version}";
+    sha256 = "sha256-pkkxZ6YHRn/I1SJpT9A+EK4S5hWGmFdcDBJS0zh5mLA=";
+  };
+
+  meta = with lib; {
+    description = "Bayesian Inference of Phylogeny";
+    longDescription = ''
+      Bayesian inference of phylogeny is based upon a
+      quantity called the posterior probability distribution of trees, which is
+      the probability of a tree conditioned on the observations. The conditioning
+      is accomplished using Bayes's theorem. The posterior probability
+      distribution of trees is impossible to calculate analytically; instead,
+      MrBayes uses a simulation technique called Markov chain Monte Carlo (or
+      MCMC) to approximate the posterior probabilities of trees.
+    '';
+    maintainers = with maintainers; [ ];
+    license = licenses.gpl2Plus;
+    homepage = "https://nbisweden.github.io/MrBayes/";
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix b/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix
new file mode 100644
index 000000000000..64eafa0f6968
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/mrtrix/default.nix
@@ -0,0 +1,112 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, python
+, makeWrapper
+, eigen
+, fftw
+, libtiff
+, libpng
+, zlib
+, ants
+, bc
+, qt5
+, libGL
+, libGLU
+, libX11
+, libXext
+, less
+, withGui ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mrtrix";
+  version = "3.0.4";
+
+  src = fetchFromGitHub {
+    owner = "MRtrix3";
+    repo = "mrtrix3";
+    rev = "refs/tags/${version}";
+    hash = "sha256-87zBAoBLWQPccGS37XyQ8H0GhL01k8GQFgcLL6IwbcM=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ eigen makeWrapper ] ++ lib.optional withGui qt5.wrapQtAppsHook;
+
+  buildInputs = [
+    ants
+    python
+    fftw
+    libtiff
+    libpng
+    zlib
+  ] ++ lib.optionals withGui [
+    libGL
+    libGLU
+    libX11
+    libXext
+    qt5.qtbase
+    qt5.qtsvg
+  ];
+
+  nativeInstallCheckInputs = [ bc ];
+
+  postPatch = ''
+    patchShebangs ./build ./configure ./run_tests ./bin/*
+
+    # patching interpreters before fixup is needed for tests:
+    patchShebangs ./bin/*
+    patchShebangs testing/binaries/data/vectorstats/*py
+
+    substituteInPlace ./run_tests  \
+      --replace 'git submodule update --init $datadir >> $LOGFILE 2>&1' ""
+
+    substituteInPlace ./build  \
+      --replace '"less -RX "' '"${less}/bin/less -RX "'
+  '';
+
+  configurePhase = ''
+    export EIGEN_CFLAGS="-isystem ${eigen}/include/eigen3"
+    unset LD  # similar to https://github.com/MRtrix3/mrtrix3/issues/1519
+    ./configure ${lib.optionalString (!withGui) "-nogui"};
+  '';
+
+  buildPhase = ''
+    ./build
+    (cd testing && ../build)
+  '';
+
+  installCheckPhase = ''
+    ./run_tests units
+    ./run_tests binaries
+
+    # can also `./run_tests scripts`, but this fails due to lack of FSL package
+    # (and there's no convenient way to disable individual tests)
+  '';
+  doInstallCheck = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -ar lib $out/lib
+    cp -ar bin $out/bin
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    for prog in $out/bin/*; do
+      if [[ -x "$prog" ]]; then
+        wrapProgram $prog --prefix PATH : ${lib.makeBinPath [ ants ]}
+      fi
+    done
+  '';
+
+  meta = with lib; {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
+    homepage = "https://github.com/MRtrix3/mrtrix3";
+    description = "Suite of tools for diffusion imaging";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.linux;
+    license   = licenses.mpl20;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/muscle/default.nix b/nixpkgs/pkgs/applications/science/biology/muscle/default.nix
new file mode 100644
index 000000000000..366d0278227d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/muscle/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname   = "muscle";
+  version = "5.1.0";
+
+
+  src = fetchFromGitHub {
+    owner = "rcedgar";
+    repo = pname;
+    rev = version;
+    hash = "sha256-NpnJziZXga/T5OavUt3nQ5np8kJ9CFcSmwyg4m6IJsk=";
+  };
+
+  sourceRoot = "${src.name}/src";
+
+  installPhase = ''
+    install -m755 -D Linux/muscle $out/bin/muscle
+  '';
+
+  meta = with lib; {
+    description = "Multiple sequence alignment with top benchmark scores scalable to thousands of sequences";
+    license     = licenses.gpl3Plus;
+    homepage    = "https://www.drive5.com/muscle/";
+    maintainers = with maintainers; [ unode thyol ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/nest/default.nix b/nixpkgs/pkgs/applications/science/biology/nest/default.nix
new file mode 100644
index 000000000000..5f0ad540f696
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/nest/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, testers
+, cmake
+, gsl
+, libtool
+, findutils
+, llvmPackages
+, mpi
+, nest
+, pkg-config
+, boost
+, python3
+, readline
+, autoPatchelfHook
+, withPython ? false
+, withMpi ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nest";
+  version = "3.6";
+
+  src = fetchFromGitHub {
+    owner = "nest";
+    repo = "nest-simulator";
+    rev = "v${version}";
+    hash = "sha256-sXtF4JmHYoLp0t3o4KF6R2E0qLnKrzSPMXOxVJAm+sU=";
+  };
+
+  postPatch = ''
+    patchShebangs cmake/CheckFiles/check_return_val.sh
+    # fix PyNEST installation path
+    # it expects CMAKE_INSTALL_LIBDIR to be relative
+    substituteInPlace cmake/ProcessOptions.cmake \
+      --replace "\''${CMAKE_INSTALL_LIBDIR}/python" "lib/python"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    findutils
+  ];
+
+  buildInputs = [
+    gsl
+    readline
+    libtool # libltdl
+    boost
+  ] ++ lib.optionals withPython [
+    python3
+    python3.pkgs.cython
+  ] ++ lib.optional withMpi mpi
+    ++ lib.optional stdenv.isDarwin llvmPackages.openmp;
+
+  propagatedBuildInputs = with python3.pkgs; [
+    numpy
+  ];
+
+  cmakeFlags = [
+    "-Dwith-python=${if withPython then "ON" else "OFF"}"
+    "-Dwith-mpi=${if withMpi then "ON" else "OFF"}"
+    "-Dwith-openmp=ON"
+  ];
+
+  postInstall = ''
+    # Alternative to autoPatchElf, moves libraries where
+    # Nest expects them to be
+    find $out/lib/nest -exec ln -s {} $out/lib \;
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = nest;
+    command = "nest --version";
+  };
+
+  meta = with lib; {
+    description = "NEST is a command line tool for simulating neural networks";
+    homepage = "https://www.nest-simulator.org/";
+    changelog = "https://github.com/nest/nest-simulator/releases/tag/v${version}";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ jiegec davidcromp ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/neuron/default.nix b/nixpkgs/pkgs/applications/science/biology/neuron/default.nix
new file mode 100644
index 000000000000..6e5e4feb16fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/neuron/default.nix
@@ -0,0 +1,104 @@
+{ lib
+, stdenv
+, fetchurl
+, readline
+, xorg
+, mpi
+, cmake
+, bison
+, flex
+, git
+, perl
+, gsl
+, xcbuild
+, python3
+, useMpi ? false
+, useIv ? true
+, useCore ? false
+, useRx3d ? false
+}:
+
+
+stdenv.mkDerivation rec {
+  pname = "neuron";
+  version = "8.2.3";
+
+  # format is for pythonModule conversion
+  format = "other";
+
+  nativeBuildInputs = [
+    cmake
+    bison
+    flex
+    git
+  ] ++ lib.optionals useCore [ perl gsl ]
+  ++ lib.optionals stdenv.isDarwin [ xcbuild ];
+
+  buildInputs = lib.optionals useIv [
+    xorg.libX11.dev
+    xorg.libXcomposite.dev
+    xorg.libXext.dev
+  ];
+
+  propagatedBuildInputs = [
+    readline
+    python3
+    python3.pkgs.wheel
+    python3.pkgs.setuptools
+    python3.pkgs.scikit-build
+    python3.pkgs.matplotlib
+  ] ++ lib.optionals useMpi [
+    mpi
+  ] ++ lib.optionals useMpi [
+    python3.pkgs.mpi4py
+  ] ++ lib.optionals useRx3d [
+    python3.pkgs.cython
+    python3.pkgs.numpy
+  ];
+
+  patches = [ ./neuron_darwin_rpath.patch ];
+
+  # Patch build shells for cmake (bin, src, cmake) and submodules (external)
+  postPatch = ''
+    patchShebangs ./bin ./src ./external ./cmake
+    sed -e 's#DESTDIR =#DESTDIR = '"$out"'#' -i external/coreneuron/extra/nrnivmodl_core_makefile.in
+  '';
+
+  cmakeFlags = [
+    "-DNRN_ENABLE_INTERVIEWS=${if useIv then "ON" else "OFF"}"
+    "-DNRN_ENABLE_MPI=${if useMpi then "ON" else "OFF"}"
+    "-DNRN_ENABLE_CORENEURON=${if useCore then "ON" else "OFF"}"
+    "-DNRN_ENABLE_RX3D=${if useRx3d then "ON" else "OFF"}"
+  ];
+
+  postInstall = ''
+    mkdir -p $out/${python3.sitePackages}
+    mv $out/lib/python/* $out/${python3.sitePackages}/
+    rm -rf $out/lib/python build
+    for entry in $out/lib/*.so; do
+      # remove references to build
+      patchelf --set-rpath $(patchelf --print-rpath $entry | tr ':' '\n' | sed '/^\/build/d' | tr '\n' ':') $entry
+    done
+  '';
+
+  src = fetchurl {
+    url = "https://github.com/neuronsimulator/nrn/releases/download/${version}/full-src-package-${version}.tar.gz";
+    sha256 = "sha256-k8+71BRfh+a73sZho6v0QFRxVmrfx6jqrgaqammdtDI=";
+  };
+
+  meta = with lib; {
+    description = "Simulation environment for empirically-based simulations of neurons and networks of neurons";
+    longDescription = ''
+      NEURON is a simulation environment for developing and exercising models of
+      neurons and networks of neurons. It is particularly well-suited to problems where
+      cable properties of cells play an important role, possibly including extracellular
+      potential close to the membrane), and where cell membrane properties are complex,
+      involving many ion-specific channels, ion accumulation, and second messengers
+    '';
+    sourceProvenance = with sourceTypes; [ fromSource ];
+    license = licenses.bsd3;
+    homepage = "http://www.neuron.yale.edu/neuron";
+    maintainers = with maintainers; [ adev davidcromp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/neuron/neuron_darwin_rpath.patch b/nixpkgs/pkgs/applications/science/biology/neuron/neuron_darwin_rpath.patch
new file mode 100644
index 000000000000..1b0fa2670782
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/neuron/neuron_darwin_rpath.patch
@@ -0,0 +1,11 @@
+--- a/src/nrnpython/setup.py.in
++++ b/src/nrnpython/setup.py.in
+@@ -124,7 +124,7 @@ libdirs = [destdir + get_escaped_path("@NRN_LIBDIR@"),
+ rpath_prefix_flag='-Wl,-R'
+ extra_link_args = [@NRN_LINK_FLAGS_COMMA_SEPARATED_STRINGS@]
+ @MAC_DARWIN_FALSE@extra_link_args += [rpath_prefix_flag+lib_path for lib_path in libdirs]
+-@MAC_DARWIN_TRUE@extra_link_args.append("-Wl,-rpath,@loader_path/../../")
++@MAC_DARWIN_TRUE@extra_link_args.append("-Wl,-rpath,@loader_path/../../../")
+ @MAC_DARWIN_TRUE@extra_link_args.append("-Wl,-rpath,%s" % ivlibdir)
+
+ # as neuron module will be built during make, add build/lib
diff --git a/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix b/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix
new file mode 100644
index 000000000000..0be59bcd726a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchurl, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+  pname   = "niftyreg";
+  version = "1.3.9";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/nifty_reg-${version}/nifty_reg-${version}.tar.gz";
+    sha256 = "07v9v9s41lvw72wpb1jgh2nzanyc994779bd35p76vg8mzifmprl";
+  };
+
+  env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=narrowing" ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib ];
+
+  meta = with lib; {
+    homepage = "http://cmictig.cs.ucl.ac.uk/wiki/index.php/NiftyReg";
+    description = "Medical image registration software";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = [ "x86_64-linux" ];
+    license   = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix b/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix
new file mode 100644
index 000000000000..0fd658b0addc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, cmake, eigen, zlib }:
+
+stdenv.mkDerivation rec {
+  pname   = "niftyseg";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "KCL-BMEIS";
+    repo = "NiftySeg";
+    rev = "v${version}";
+    sha256 = "sha256-FDthq1ild9XOw3E3O7Lpfn6hBF1Frhv1NxfEA8500n8=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ eigen zlib ];
+
+  meta = with lib; {
+    homepage = "http://cmictig.cs.ucl.ac.uk/research/software/software-nifty/niftyseg";
+    description = "Software for medical image segmentation, bias field correction, and cortical thickness calculation";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license   = licenses.bsd3;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix b/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
new file mode 100644
index 000000000000..9bf579a80c3b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl, python3Packages, cmake, python3 }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "obitools3";
+  version = "3.0.1b11";
+
+  src = fetchurl {
+    url = "https://git.metabarcoding.org/obitools/${pname}/repository/v${version}/archive.tar.gz";
+    sha256 = "1x7a0nrr9agg1pfgq8i1j8r1p6c0jpyxsv196ylix1dd2iivmas1";
+  };
+
+  nativeBuildInputs = [ python3Packages.cython cmake ];
+
+  postPatch = lib.optionalString stdenv.isAarch64 ''
+      substituteInPlace setup.py \
+      --replace "'-msse2'," ""
+  '';
+
+  preBuild = ''
+    substituteInPlace src/CMakeLists.txt --replace \$'{PYTHONLIB}' "$out/${python3.sitePackages}";
+    export NIX_CFLAGS_COMPILE="-L $out/${python3.sitePackages} $NIX_CFLAGS_COMPILE"
+  '';
+
+  dontConfigure = true;
+
+  doCheck = true;
+
+  meta = with lib ; {
+    description = "Management of analyses and data in DNA metabarcoding";
+    homepage = "https://git.metabarcoding.org/obitools/obitools3";
+    license = licenses.cecill20;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
new file mode 100644
index 000000000000..0090ca82d6c3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
@@ -0,0 +1,46 @@
+{lib, stdenv, fetchurl, fetchFromGitHub, cmake, boost179, gmp, htslib, zlib, xz, pkg-config}:
+
+stdenv.mkDerivation rec {
+  pname = "octopus";
+  version = "0.7.4";
+
+  src = fetchFromGitHub {
+    owner = "luntergroup";
+    repo = "octopus";
+    rev = "v${version}";
+    sha256 = "sha256-FAogksVxUlzMlC0BqRu22Vchj6VX+8yNlHRLyb3g1sE=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ boost179 gmp htslib zlib xz ];
+
+  patches = [ (fetchurl {
+    url = "https://github.com/luntergroup/octopus/commit/17a597d192bcd5192689bf38c5836a98b824867a.patch";
+    sha256 = "sha256-VaUr63v7mzhh4VBghH7a7qrqOYwl6vucmmKzTi9yAjY=";
+  }) ];
+
+  postPatch = ''
+    # Disable -Werror to avoid build failure on fresh toolchains like
+    # gcc-13.
+    substituteInPlace lib/date/CMakeLists.txt --replace-fail ' -Werror ' ' '
+    substituteInPlace lib/ranger/CMakeLists.txt --replace-fail ' -Werror ' ' '
+    substituteInPlace lib/tandem/CMakeLists.txt --replace-fail ' -Werror ' ' '
+    substituteInPlace src/CMakeLists.txt --replace-fail ' -Werror ' ' '
+
+    # Fix gcc-13 build due to missing <cstdint> header.
+    sed -e '1i #include <cstdint>' -i src/core/tools/vargen/utils/assembler.hpp
+  '';
+
+  postInstall = ''
+    mkdir $out/bin
+    mv $out/octopus $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Bayesian haplotype-based mutation calling";
+    license = licenses.mit;
+    homepage = "https://github.com/luntergroup/octopus";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/paml/default.nix b/nixpkgs/pkgs/applications/science/biology/paml/default.nix
new file mode 100644
index 000000000000..c593b5ed3d34
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/paml/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "paml";
+  version = "4.10.7";
+
+  src = fetchFromGitHub {
+    owner = "abacus-gene";
+    repo = "paml";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-P/oHaLxoQzjFuvmHyRdShHv1ayruy6O/I9w8aTyya2s=";
+  };
+
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-D_POSIX_C_SOURCE";
+
+  preBuild = ''
+    cd ./src/
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -pv $out/bin
+    cp -v codeml $out/bin
+    cp -v baseml $out/bin
+    cp -v basemlg $out/bin
+    cp -v chi2 $out/bin
+    cp -v codeml $out/bin
+    cp -v evolver $out/bin
+    cp -v mcmctree $out/bin
+    cp -v pamp $out/bin
+    cp -v yn00 $out/bin
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description     = "Phylogenetic Analysis by Maximum Likelihood (PAML)";
+    longDescription = "PAML is a package of programs for phylogenetic analyses of DNA or protein sequences using maximum likelihood. It is maintained and distributed for academic use free of charge by Ziheng Yang. ANSI C source codes are distributed for UNIX/Linux/Mac OSX, and executables are provided for MS Windows. PAML is not good for tree making. It may be used to estimate parameters and test hypotheses to study the evolutionary process, when you have reconstructed trees using other programs such as PAUP*, PHYLIP, MOLPHY, PhyML, RaxML, etc.";
+    license     = lib.licenses.gpl3Only;
+    homepage    = "http://abacus.gene.ucl.ac.uk/software/paml.html";
+    changelog = "https://github.com/abacus-gene/paml/releases/tag/${finalAttrs.src.rev}";
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix b/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
new file mode 100644
index 000000000000..880ea77e9d24
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
@@ -0,0 +1,33 @@
+{lib, stdenv, fetchurl, jre, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  pname = "picard-tools";
+  version = "3.1.1";
+
+  src = fetchurl {
+    url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
+    sha256 = "sha256-FcefUf0KwAEEn53XubrB2991ncsCMKicf20fJG6LurQ=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/libexec/picard
+    cp $src $out/libexec/picard/picard.jar
+    mkdir -p $out/bin
+    makeWrapper ${jre}/bin/java $out/bin/picard --add-flags "-jar $out/libexec/picard/picard.jar"
+  '';
+
+  meta = with lib; {
+    description = "Tools for high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF";
+    license = licenses.mit;
+    homepage = "https://broadinstitute.github.io/picard/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    maintainers = with maintainers; [ jbedo ];
+    mainProgram = "picard";
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/platypus/default.nix b/nixpkgs/pkgs/applications/science/biology/platypus/default.nix
new file mode 100644
index 000000000000..d602395b8757
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/platypus/default.nix
@@ -0,0 +1,39 @@
+{lib, stdenv, fetchFromGitHub, python27, htslib, zlib, makeWrapper}:
+
+let python = python27.withPackages (ps: with ps; [ cython ]);
+
+in stdenv.mkDerivation {
+  pname = "platypus-unstable";
+  version = "2018-07-22";
+
+  src = fetchFromGitHub {
+    owner = "andyrimmer";
+    repo = "Platypus";
+    rev = "3e72641c69800da0cd4906b090298e654d316ee1";
+    sha256 = "0nah6r54b8xm778gqyb8b7rsd76z8ji4g73sm6rvpw5s96iib1vw";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ htslib python zlib ];
+
+  buildPhase = ''
+    patchShebangs .
+    make
+  '';
+
+  installPhase = ''
+    mkdir -p $out/libexec/platypus
+    cp -r ./* $out/libexec/platypus
+
+    mkdir -p $out/bin
+    makeWrapper ${python}/bin/python $out/bin/platypus --add-flags "$out/libexec/platypus/bin/Platypus.py"
+  '';
+
+  meta = with lib; {
+    description = "The Platypus variant caller";
+    license = licenses.gpl3;
+    homepage = "https://github.com/andyrimmer/Platypus";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix b/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
new file mode 100644
index 000000000000..00fd0ff0083e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitHub, zlib, blas, lapack, darwin}:
+
+stdenv.mkDerivation rec {
+  pname = "plink-ng";
+  version = "1.90b3";
+
+  src = fetchFromGitHub {
+    owner = "chrchang";
+    repo = "plink-ng";
+    rev = "v${version}";
+    sha256 = "1zhffjbwpd50dxywccbnv1rxy9njwz73l4awc5j7i28rgj3davcq";
+  };
+
+  buildInputs = [ zlib ] ++ (if stdenv.isDarwin then [ darwin.apple_sdk.frameworks.Accelerate ] else [ blas lapack ]) ;
+
+  preBuild = ''
+    sed -i 's|zlib-1.2.8/zlib.h|zlib.h|g' *.c *.h
+    ${lib.optionalString stdenv.cc.isClang "sed -i 's|g++|clang++|g' Makefile.std"}
+
+    makeFlagsArray+=(
+      ZLIB=-lz
+      BLASFLAGS="-lblas -lcblas -llapack"
+    );
+  '';
+
+  makefile = "Makefile.std";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp plink $out/bin
+  '';
+
+  meta = {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
+    description = "A comprehensive update to the PLINK association analysis toolset";
+    homepage = "https://www.cog-genomics.org/plink2";
+    license = lib.licenses.gpl3;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/poretools/default.nix b/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
new file mode 100644
index 000000000000..47ffd507efda
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
@@ -0,0 +1,23 @@
+{ lib, python2Packages, fetchFromGitHub }:
+
+python2Packages.buildPythonPackage rec {
+  pname = "poretools";
+  version = "unstable-2016-07-10";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "arq5x";
+    rev = "e426b1f09e86ac259a00c261c79df91510777407";
+    sha256 = "0bglj833wxpp3cq430p1d3xp085ls221js2y90w7ir2x5ay8l7am";
+  };
+
+  propagatedBuildInputs = [ python2Packages.h5py python2Packages.matplotlib python2Packages.seaborn python2Packages.pandas ];
+
+  meta = {
+    description = "a toolkit for working with nanopore sequencing data from Oxford Nanopore";
+    license = lib.licenses.mit;
+    homepage = "https://poretools.readthedocs.io/en/latest/";
+    maintainers = [ lib.maintainers.rybern ];
+    broken = true; # Build error: h5py-3.9.0 not supported for interpreter python2.7
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix b/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
new file mode 100644
index 000000000000..28a21522c6b8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "prodigal";
+  version = "2.6.3";
+
+  src = fetchFromGitHub {
+    repo = "Prodigal";
+    owner = "hyattpd";
+    rev = "v${version}";
+    sha256 = "1fs1hqk83qjbjhrvhw6ni75zakx5ki1ayy3v6wwkn3xvahc9hi5s";
+  };
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "INSTALLDIR=$(out)/bin"
+  ];
+
+  meta = with lib; {
+    description = "Fast, reliable protein-coding gene prediction for prokaryotic genomes";
+    homepage = "https://github.com/hyattpd/Prodigal";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ luispedro ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/quast/default.nix b/nixpkgs/pkgs/applications/science/biology/quast/default.nix
new file mode 100644
index 000000000000..f280f81fae84
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/quast/default.nix
@@ -0,0 +1,60 @@
+{ lib, stdenv, fetchurl, python3Packages, zlib, bash }:
+
+let
+  pythonPackages = python3Packages;
+  inherit (pythonPackages) python;
+in
+
+pythonPackages.buildPythonApplication rec {
+  pname = "quast";
+  version = "5.0.2";
+
+  src = fetchurl {
+    url = "https://github.com/ablab/quast/releases/download/${pname}_${version}/${pname}-${version}.tar.gz";
+    sha256 = "13ml8qywbb4cc7wf2x7z5mz1rjqg51ab8wkizwcg4f6c40zgif6d";
+  };
+
+  pythonPath = with pythonPackages; [ simplejson joblib setuptools matplotlib ];
+
+  buildInputs = [ zlib ] ++ pythonPath;
+
+  dontConfigure = true;
+
+  dontBuild = true;
+
+  installPhase = ''
+    substituteInPlace quast_libs/bedtools/Makefile \
+      --replace "/bin/bash" "${bash}/bin/bash"
+    mkdir -p "$out/${python.sitePackages}"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
+    ${python.pythonOnBuildForHost.interpreter} setup.py install \
+      --install-lib=$out/${python.sitePackages} \
+      --prefix="$out"
+  '';
+
+   postFixup = ''
+   for file in $(find $out -type f -type f -perm /0111); do
+       old_rpath=$(patchelf --print-rpath $file) && \
+       patchelf --set-rpath $old_rpath:${stdenv.cc.cc.lib}/lib $file || true
+   done
+   # Link to the master program
+   ln -s $out/bin/quast.py $out/bin/quast
+  '';
+
+  dontPatchELF = true;
+
+  # Tests need to download data files, so manual run after packaging is needed
+  doCheck = false;
+
+  meta = with lib ; {
+    description = "Evaluates genome assemblies by computing various metrics";
+    homepage = "https://github.com/ablab/quast";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # source bundles binary dependencies
+    ];
+    license = licenses.gpl2;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/raxml/default.nix b/nixpkgs/pkgs/applications/science/biology/raxml/default.nix
new file mode 100644
index 000000000000..0cc20b063503
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/raxml/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv
+, fetchFromGitHub
+, useMpi ? false
+, mpi
+}:
+
+stdenv.mkDerivation rec {
+  pname = "RAxML${lib.optionalString useMpi "-mpi"}";
+  version = "8.2.13";
+
+  src = fetchFromGitHub {
+    owner = "stamatak";
+    repo = "standard-RAxML";
+    rev = "v${version}";
+    sha256 = "sha256-w+Eqi0GhVira1H6ZnMNeZGBMzDjiGT7JSFpQEVXONyk=";
+  };
+
+  buildInputs = lib.optionals useMpi [ mpi ];
+
+  # TODO darwin, AVX and AVX2 makefile targets
+  buildPhase = if useMpi then ''
+      make -f Makefile.MPI.gcc
+    '' else ''
+      make -f Makefile.SSE3.PTHREADS.gcc
+    '';
+
+  installPhase = if useMpi then ''
+    mkdir -p $out/bin && cp raxmlHPC-MPI $out/bin
+  '' else ''
+    mkdir -p $out/bin && cp raxmlHPC-PTHREADS-SSE3 $out/bin
+  '';
+
+  meta = with lib; {
+    description = "A tool for Phylogenetic Analysis and Post-Analysis of Large Phylogenies";
+    license = licenses.gpl3;
+    homepage = "https://sco.h-its.org/exelixis/web/software/raxml/";
+    maintainers = [ maintainers.unode ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/repseek/default.nix b/nixpkgs/pkgs/applications/science/biology/repseek/default.nix
new file mode 100644
index 000000000000..5966c83b7a5f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/repseek/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "repseek";
+  version = "9Sep2014";
+  src = fetchurl {
+    url = "https://bioinfo.mnhn.fr/abi/public/RepSeek/RepSeek.${version}.tgz";
+    sha256 = "1jiknji3ivrv7zmrfbf2mccfpdwhin3lfxfsciaqwf69b3sda8nf";
+  };
+
+  preConfigure = ''
+    mkdir -p $out/bin
+    substituteInPlace Makefile \
+      --replace "INSTALLDIR = \$\$HOME/bin" "INSTALLDIR = $out/bin/" \
+      --replace "CC= gcc" "CC = $CC"
+  '' + lib.optionalString stdenv.isLinux ''
+    substituteInPlace Makefile --replace "MACHINE = MACOSX" "MACHINE = LINUX"
+  '';
+
+  meta = {
+    description = "Tool to retrieve approximate repeats from large DNA sequences";
+    homepage = "https://bioinfo.mnhn.fr/abi/public/RepSeek";
+    maintainers = [ lib.maintainers.bzizou ];
+    license = lib.licenses.lgpl21;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix b/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
new file mode 100644
index 000000000000..e1722a7086d8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, python3
+, which
+, ldc
+, zlib
+, lz4
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sambamba";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "biod";
+    repo = "sambamba";
+    rev = "v${version}";
+    sha256 = "sha256-3O9bHGpMuCgdR2Wm7Dv1VUjMT1QTn8K1hdwgjvwhFDw=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ which python3 ldc ];
+  buildInputs = [ zlib lz4 ];
+
+  buildFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  # Upstream's install target is broken; copy manually
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 bin/sambamba-${version} $out/bin/sambamba
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "SAM/BAM processing tool";
+    homepage = "https://lomereiter.github.io/sambamba/";
+    maintainers = with maintainers; [ jbedo ];
+    license = with licenses; gpl2;
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix b/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
new file mode 100644
index 000000000000..4315dd2767e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "samblaster";
+  version = "0.1.26";
+
+  src = fetchFromGitHub {
+    owner = "GregoryFaust";
+    repo = "samblaster";
+    rev = "v.${version}";
+    sha256 = "0g24fq5hplnfgqkh3xqpg3lgx3wmxwnh9c7m6yw7pbi40lmgl1jv";
+  };
+
+  makeFlags = [ "CPP=${stdenv.cc.targetPrefix}c++" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp samblaster $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Tool for marking duplicates and extracting discordant/split reads from SAM/BAM files";
+    maintainers = with maintainers; [ jbedo ];
+    license = licenses.mit;
+    homepage = "https://github.com/GregoryFaust/samblaster";
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/samtools/default.nix b/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
new file mode 100644
index 000000000000..70f436a088e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchurl, fetchpatch, zlib, htslib, perl, ncurses ? null }:
+
+stdenv.mkDerivation rec {
+  pname = "samtools";
+  version = "1.19.2";
+
+  src = fetchurl {
+    url = "https://github.com/samtools/samtools/releases/download/${version}/${pname}-${version}.tar.bz2";
+    hash = "sha256-cfYEmWaOTAjn10X7/yTBXMigl3q6sazV0rtBm9sGXpY=";
+  };
+
+  # tests require `bgzip` from the htslib package
+  nativeCheckInputs = [ htslib ];
+
+  nativeBuildInputs = [ perl ];
+
+  buildInputs = [ zlib ncurses htslib ];
+
+  preConfigure = lib.optional stdenv.hostPlatform.isStatic ''
+    export LIBS="-lz -lbz2 -llzma"
+  '';
+  makeFlags = lib.optional stdenv.hostPlatform.isStatic "AR=${stdenv.cc.targetPrefix}ar";
+
+  configureFlags = [ "--with-htslib=${htslib}" ]
+    ++ lib.optional (ncurses == null) "--without-curses"
+    ++ lib.optionals stdenv.hostPlatform.isStatic ["--without-curses" ]
+    ;
+
+  preCheck = ''
+    patchShebangs test/
+  '';
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Tools for manipulating SAM/BAM/CRAM format";
+    license = licenses.mit;
+    homepage = "http://www.htslib.org/";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ mimame unode ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch b/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch
new file mode 100644
index 000000000000..a7782a1a0264
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch
@@ -0,0 +1,22 @@
+diff --git a/Makefile b/Makefile
+index 2f51bfc..395d6f1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ CC=			gcc
+ CFLAGS=		-g -Wall -O2
+ #LDFLAGS=		-Wl,-rpath,\$$ORIGIN/../lib
+-DFLAGS=		-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1
++DFLAGS=		-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE # -D_CURSES_LIB=1
+ KNETFILE_O=	knetfile.o
+ LOBJS=		bgzf.o kstring.o bam_aux.o bam.o bam_import.o sam.o bam_index.o	\
+ 			bam_pileup.o bam_lpileup.o bam_md.o razf.o faidx.o bedidx.o \
+@@ -15,7 +15,7 @@ PROG=		samtools
+ INCLUDES=	-I.
+ SUBDIRS=	. bcftools misc
+ LIBPATH=
+-LIBCURSES=	-lcurses # -lXCurses
++LIBCURSES=	# -lcurses # -lXCurses
+ 
+ .SUFFIXES:.c .o
+ .PHONY: all lib
diff --git a/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix b/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
new file mode 100644
index 000000000000..2472e4976cad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "samtools";
+  version = "0.1.19";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/samtools/${pname}-${version}.tar.bz2";
+    sha256 = "d080c9d356e5f0ad334007e4461cbcee3c4ca97b8a7a5a48c44883cf9dee63d4";
+  };
+
+  patches = [
+    ./samtools-0.1.19-no-curses.patch
+  ];
+
+  buildInputs = [ zlib ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/man
+
+    cp samtools $out/bin
+    cp samtools.1 $out/share/man
+  '';
+
+  meta = with lib; {
+    description = "Tools for manipulating SAM/BAM/CRAM format";
+    license = licenses.mit;
+    homepage = "https://samtools.sourceforge.net/";
+    platforms = platforms.unix;
+    maintainers = [ maintainers.unode ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/seaview/default.nix b/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
new file mode 100644
index 000000000000..640d2f5ae416
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl, coreutils, fltk, libjpeg }:
+
+stdenv.mkDerivation rec {
+  version = "5.0.5";
+  pname = "seaview";
+
+  src = fetchurl {
+    url = "ftp://pbil.univ-lyon1.fr/pub/mol_phylogeny/seaview/archive/seaview_${version}.tar.gz";
+    sha256 = "sha256-zo9emLpHiDv6kekbx55NOibxWN2Zg7XngzGkUqSx+PI=";
+  };
+
+  buildInputs = [ fltk libjpeg ];
+
+  patchPhase = "sed -i 's#PATH=/bin:/usr/bin rm#'${coreutils}/bin/rm'#' seaview.cxx";
+  installPhase = "mkdir -p $out/bin; cp seaview $out/bin";
+
+  meta = with lib; {
+    description = "GUI for molecular phylogeny";
+    longDescription = ''
+      SeaView is a multiplatform, graphical user interface for multiple sequence alignment and molecular phylogeny.
+        - SeaView reads and writes various file formats (NEXUS, MSF, CLUSTAL, FASTA, PHYLIP, MASE, Newick) of DNA and protein sequences and of phylogenetic trees.
+        - SeaView drives programs muscle or Clustal Omega for multiple sequence alignment, and also allows to use any external alignment algorithm able to read and write FASTA-formatted files.
+        - Seaview drives the Gblocks program to select blocks of evolutionarily conserved sites.
+        - SeaView computes phylogenetic trees by
+          + parsimony, using PHYLIP's dnapars/protpars algorithm,
+          + distance, with NJ or BioNJ algorithms on a variety of evolutionary distances,
+          + maximum likelihood, driving program PhyML 3.1.
+        - Seaview can use the Transfer Bootstrap Expectation method to compute the bootstrap support of PhyML and distance trees.
+        - SeaView prints and draws phylogenetic trees on screen, SVG, PDF or PostScript files.
+        - SeaView allows to download sequences from EMBL/GenBank/UniProt using the Internet.
+
+      Seaview is published in:
+
+          Gouy M., Guindon S. & Gascuel O. (2010) SeaView version 4 : a multiplatform graphical user interface for sequence alignment and phylogenetic tree building. Molecular Biology and Evolution 27(2):221-224.
+    '';
+    homepage = "https://doua.prabi.fr/software/seaview";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.iimog ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix b/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix
new file mode 100644
index 000000000000..9682265b9342
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+}:
+
+buildGoModule rec {
+  pname = "seqkit";
+  version = "2.7.0";
+
+  src = fetchFromGitHub {
+    owner = "shenwei356";
+    repo = "seqkit";
+    rev = "v${version}";
+    sha256 = "sha256-tnVkFING9BH/iNOdKeCsSk4ln2fLUUpI5ASaQ7CCdrg=";
+  };
+
+  vendorHash = "sha256-o7XGBI05BK7kOBagVV2eteJmkzLTmio41KOm46GdzDU=";
+
+  meta = with lib; {
+    description = "cross-platform and ultrafast toolkit for FASTA/Q file manipulation";
+    homepage = "https://github.com/shenwei356/seqkit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bzizou ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/seqtk/default.nix b/nixpkgs/pkgs/applications/science/biology/seqtk/default.nix
new file mode 100644
index 000000000000..90bd4bb3c65e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/seqtk/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, zlib
+, libdeflate
+, isa-l
+}:
+
+stdenv.mkDerivation rec {
+  pname = "seqtk";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "lh3";
+    repo = "seqtk";
+    rev = "v${version}";
+    hash = "sha256-W6IUn7R9tlnWrKe/qOHJL+43AL4EZB7zj7M5u9l83WE=";
+  };
+
+  buildInputs = [ zlib libdeflate isa-l ];
+
+  makeFlags = [ "CC=cc" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 -t $out/bin seqtk
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Toolkit for processing sequences in FASTA/Q formats";
+    license = licenses.mit;
+    homepage = "https://github.com/lh3/seqtk";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ bwlang ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix b/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
new file mode 100644
index 000000000000..269d6e307f1d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
@@ -0,0 +1,35 @@
+{lib, stdenv, fetchurl, jre, unzip, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  pname = "snpeff";
+  version = "4.3t";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/snpeff/snpEff_v${builtins.replaceStrings [ "." ] [ "_" ] version}_core.zip";
+    sha256 = "0i12mv93bfv8xjwc3rs2x73d6hkvi7kgbbbx3ry984l3ly4p6nnm";
+  };
+
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ jre ];
+
+  sourceRoot = "snpEff";
+
+  installPhase = ''
+    mkdir -p $out/libexec/snpeff
+    cp *.jar *.config $out/libexec/snpeff
+
+    mkdir -p $out/bin
+    makeWrapper ${jre}/bin/java $out/bin/snpeff --add-flags "-jar $out/libexec/snpeff/snpEff.jar"
+    makeWrapper ${jre}/bin/java $out/bin/snpsift --add-flags "-jar $out/libexec/snpeff/SnpSift.jar"
+  '';
+
+  meta = with lib; {
+    description = "Genetic variant annotation and effect prediction toolbox";
+    license = licenses.lgpl3;
+    homepage = "https://snpeff.sourceforge.net/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
new file mode 100644
index 000000000000..034409cfb013
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
@@ -0,0 +1,29 @@
+{lib, stdenv, fetchFromGitHub, cmake, zlib, ncurses}:
+
+stdenv.mkDerivation rec {
+  pname = "somatic-sniper";
+  version = "1.0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "genome";
+    repo = "somatic-sniper";
+    rev = "v${version}";
+    sha256 = "0lk7p9sp6mp50f6w1nppqhr40fcwy1asw06ivw8w8jvvnwaqf987";
+  };
+
+  patches = [ ./somatic-sniper.patch ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib ncurses ];
+
+  enableParallelBuilding = false;
+
+  meta = with lib; {
+    description = "Identify single nucleotide positions that are different between tumor and normal";
+    license = licenses.mit;
+    homepage = "https://github.com/genome/somatic-sniper";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch
new file mode 100644
index 000000000000..9af04c0a0696
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch
@@ -0,0 +1,26 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6d5a180..7254292 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,7 +11,7 @@ set(CMAKE_MODULE_PATH
+     )
+ 
+ include(TestHelper)
+-include(VersionHelper)
++#include(VersionHelper)
+ include(ProjectHelper)
+ 
+ # NOTE: for sniper we want the exe suffix to be like 0.7.4, not just 0.7
+diff --git a/vendor/samtools.patch b/vendor/samtools.patch
+index f173017..654f878 100644
+--- a/vendor/samtools.patch
++++ b/vendor/samtools.patch
+@@ -6,7 +6,7 @@ diff -Nuar a/Makefile b/Makefile
+  
+  samtools:lib $(AOBJS)
+ -		$(CC) $(CFLAGS) -o $@ $(AOBJS) -lm $(LIBPATH) $(LIBCURSES) -lz -L. -lbam
+-+		$(CC) $(CFLAGS) -o $@ $(AOBJS) -lm $(LIBPATH) $(LIBCURSES) -L. -lbam -lz
+++		$(CC) $(CFLAGS) -o $@ $(AOBJS) -lm $(LIBPATH) -lncurses -L. -lbam -lz
+  
+  razip:razip.o razf.o
+  		$(CC) $(CFLAGS) -o $@ razf.o razip.o -lz
diff --git a/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix b/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
new file mode 100644
index 000000000000..bfd6d20f1384
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, cmake, rocksdb, rapidjson, pkg-config, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "sortmerna";
+  version = "4.2.0";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "biocore";
+    rev = "v${version}";
+    sha256 = "0r91viylzr069jm7kpcgb45kagvf8sqcj5zc1af4arl9sgfs1f3j";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ zlib rocksdb rapidjson ];
+
+  cmakeFlags = [
+    "-DPORTABLE=off"
+    "-DRAPIDJSON_HOME=${rapidjson}"
+    "-DROCKSDB_HOME=${rocksdb}"
+    "-DROCKSDB_STATIC=off"
+    "-DZLIB_STATIC=off"
+  ];
+
+  postPatch = ''
+    # Fix formatting string error:
+    # https://github.com/biocore/sortmerna/issues/255
+    substituteInPlace src/sortmerna/indexdb.cpp \
+      --replace 'is_verbose, ss' 'is_verbose, "%s", ss'
+
+    # Fix missing pthread dependency for the main binary.
+    substituteInPlace src/sortmerna/CMakeLists.txt \
+      --replace "target_link_libraries(sortmerna" \
+        "target_link_libraries(sortmerna Threads::Threads"
+
+    # Fix gcc-13 build by adding missing <cstdint> includes:
+    #   https://github.com/sortmerna/sortmerna/issues/412
+    sed -e '1i #include <cstdint>' -i include/kseq_load.hpp
+  '';
+
+  meta = with lib; {
+    description = "Tools for filtering, mapping, and OTU-picking from shotgun genomics data";
+    license = licenses.lgpl3;
+    platforms = platforms.x86_64;
+    homepage = "https://bioinfo.lifl.fr/RNA/sortmerna/";
+    maintainers = with maintainers; [ luispedro ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/spades/default.nix b/nixpkgs/pkgs/applications/science/biology/spades/default.nix
new file mode 100644
index 000000000000..0b0491a71aae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/spades/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl, zlib, bzip2, cmake, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "SPAdes";
+  version = "3.15.5";
+
+  src = fetchurl {
+    url = "http://cab.spbu.ru/files/release${version}/${pname}-${version}.tar.gz";
+    sha256 = "sha256-FVw2QNVx8uexmgUDHR/Q0ZvYLfeF04hw+5O9JBsSu/o=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ zlib bzip2 python3 ];
+
+  doCheck = true;
+
+  sourceRoot = "${pname}-${version}/src";
+
+  env.CXXFLAGS = toString [
+    # GCC 13: error: 'uint32_t' does not name a type
+    "-include cstdint"
+  ];
+
+  meta = with lib; {
+    description = "St. Petersburg genome assembler: assembly toolkit containing various assembly pipelines";
+    license = licenses.gpl2Only;
+    homepage = "http://cab.spbu.ru/software/spades/";
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = [ maintainers.bzizou ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/sratoolkit/default.nix b/nixpkgs/pkgs/applications/science/biology/sratoolkit/default.nix
new file mode 100644
index 000000000000..a36157ed5d16
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/sratoolkit/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, libidn
+, zlib
+, bzip2
+}:
+
+
+let
+  libidn11 = libidn.overrideAttrs (old: {
+    pname = "libidn";
+    version = "1.34";
+    src = fetchurl {
+      url = "mirror://gnu/libidn/libidn-1.34.tar.gz";
+      sha256 = "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p";
+    };
+  });
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "sratoolkit";
+  version = "2.11.3";
+
+  src = fetchurl {
+    url = "https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/${version}/sratoolkit.${version}-ubuntu64.tar.gz";
+    sha256 = "1590lc4cplxr3lhjqci8fjncy67imn2h14qd2l87chmhjh243qvx";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    libidn11
+    zlib
+    bzip2
+    stdenv.cc.cc.lib
+  ];
+
+  sourceRoot = "sratoolkit.${version}-ubuntu64/bin";
+
+  installPhase = ''
+    find -L . -executable -type f -! -name "*remote-fuser*" -exec install -m755 -D {} $out/bin/{} \;
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ncbi/sra-tools";
+    description = "The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ thyol ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/stacks/default.nix b/nixpkgs/pkgs/applications/science/biology/stacks/default.nix
new file mode 100644
index 000000000000..3d385b54d469
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/stacks/default.nix
@@ -0,0 +1,20 @@
+{ lib, stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "stacks";
+  version = "2.66";
+  src = fetchurl {
+    url = "http://catchenlab.life.illinois.edu/stacks/source/${pname}-${version}.tar.gz";
+    sha256 = "sha256-9pHmcLYMdn9xy3vhlOU42Io/4L61auoncfpZNRPUN/I=";
+  };
+
+  buildInputs = [ zlib ];
+
+  meta = {
+    description = "Software pipeline for building loci from short-read sequences";
+    homepage = "http://catchenlab.life.illinois.edu/stacks/";
+    maintainers = [ lib.maintainers.bzizou ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/star/default.nix b/nixpkgs/pkgs/applications/science/biology/star/default.nix
new file mode 100644
index 000000000000..3383a78e1d38
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/star/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "star";
+  version = "2.7.10b";
+
+  src = fetchFromGitHub {
+    repo = "STAR";
+    owner = "alexdobin";
+    rev = version;
+    sha256 = "sha256-58Y4lzqXwBhRlXcionUg2IhAg5znNUuyr/FsuNZd+5Q=";
+  };
+
+  sourceRoot = "${src.name}/source";
+
+  postPatch = ''
+    substituteInPlace Makefile --replace "/bin/rm" "rm"
+  '';
+
+  buildInputs = [ zlib ];
+
+  buildFlags = [ "STAR" "STARlong" ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -D STAR STARlong -t $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Spliced Transcripts Alignment to a Reference";
+    homepage = "https://github.com/alexdobin/STAR";
+    license = licenses.gpl3Plus;
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ maintainers.arcadio ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/strelka/default.nix b/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
new file mode 100644
index 000000000000..ad6c0d9e5a4c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
@@ -0,0 +1,63 @@
+{lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost, zlib, python2}:
+
+stdenv.mkDerivation rec {
+  pname = "strelka";
+  version = "2.9.10";
+
+  src = fetchFromGitHub {
+    owner = "Illumina";
+    repo = "strelka";
+    rev = "v${version}";
+    sha256 = "1nykbmim1124xh22nrhrsn8xgjb3s2y7akrdapn9sl1gdych4ppf";
+  };
+
+  patches = [
+    # Pull pending fix for gcc-12:
+    #   https://github.com/Illumina/strelka/pull/204
+    (fetchpatch {
+      name = "limits.patch";
+      url = "https://github.com/Illumina/strelka/commit/98272cd345c6e4c672e6a5b7721204fcac0502d6.patch";
+      hash = "sha256-psBiuN32nvwZ+QX51JQjIdRhEE3k7PfwbkD10ckqvZk=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace src/cmake/boost.cmake \
+      --replace "1.58.0" "${boost.version}" \
+      --replace "Boost_USE_STATIC_LIBS ON" "Boost_USE_STATIC_LIBS OFF"
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ boost zlib python2 ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_STANDARD=14"
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString [
+    "-Wno-error=maybe-uninitialized"
+    "-Wno-error=pessimizing-move"
+  ];
+
+  preConfigure = ''
+    sed -i 's|/usr/bin/env python|${python2}/bin/python|' src/python/lib/makeRunScript.py
+    patchShebangs .
+  '';
+
+  postFixup = ''
+    pushd $out/lib/python/pyflow
+    sed -i 's|/bin/bash|${stdenv.shell}|' pyflowTaskWrapper.py
+    rm pyflowTaskWrapper.pyc
+    echo "import pyflowTaskWrapper" | python2
+    popd
+  '';
+
+  meta = with lib; {
+    description = "Germline and small variant caller";
+    license = licenses.gpl3;
+    homepage = "https://github.com/Illumina/strelka";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/subread/default.nix b/nixpkgs/pkgs/applications/science/biology/subread/default.nix
new file mode 100644
index 000000000000..62ea61af9192
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/subread/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchurl
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "subread";
+  version = "2.0.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/subread/subread-${version}/subread-${version}-source.tar.gz";
+    sha256 = "sha256-8P3aa5hjTSlGAolIwiAlPhCg8nx/pfJJE7ZbOsbLsEU=";
+  };
+
+  buildInputs = [
+    zlib
+  ];
+
+  configurePhase = ''
+    cd src
+    cp Makefile.${if stdenv.isLinux then "Linux" else "MacOS"} Makefile
+  '';
+
+  makeFlags = [ "CC_EXEC=cc" ];
+
+  installPhase = ''
+    mkdir $out
+    cp -r ../bin $out
+  '';
+
+  meta = with lib; {
+    broken = stdenv.isDarwin;
+    description = "High-performance read alignment, quantification and mutation discovery";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = [ "x86_64-darwin" "x86_64-linux" ];
+    homepage = "https://subread.sourceforge.net/";
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/sumatools/default.nix b/nixpkgs/pkgs/applications/science/biology/sumatools/default.nix
new file mode 100644
index 000000000000..2a30f33172b9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/sumatools/default.nix
@@ -0,0 +1,68 @@
+{ lib, gccStdenv, fetchFromGitLab, zlib }:
+
+let
+  stdenv = gccStdenv;
+  meta = with lib; {
+    description = "Fast and exact comparison and clustering of sequences";
+    homepage = "https://metabarcoding.org/sumatra";
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.unix;
+  };
+
+in rec {
+
+  # Suma library
+  sumalibs = stdenv.mkDerivation rec {
+    version = "1.0.34";
+    pname = "sumalibs";
+    src = fetchFromGitLab {
+      domain = "git.metabarcoding.org";
+      owner = "obitools";
+      repo = pname;
+      rev = "sumalib_v${version}";
+      sha256 = "0hwkrxzfz7m5wdjvmrhkjg8kis378iaqr5n4nhdhkwwhn8x1jn5a";
+    };
+    makeFlags = [ "PREFIX=$(out)" ];
+    inherit meta;
+  };
+
+  # Sumatra
+  sumatra = stdenv.mkDerivation rec {
+    version = "1.0.34";
+    pname = "sumatra";
+    src = fetchFromGitLab {
+      domain = "git.metabarcoding.org";
+      owner = "obitools";
+      repo = pname;
+      rev = "${pname}_v${version}";
+      sha256 = "1bbpbdkshdc3xffqnr1qfy8qk64ldsmdc3s8mrcrlx132rgbi5f6";
+    };
+    buildInputs = [ sumalibs zlib ];
+    makeFlags = [
+      "LIBSUMA=${sumalibs}/lib/libsuma.a"
+      "LIBSUMAPATH=-L${sumalibs}"
+      "PREFIX=$(out)"
+    ];
+    inherit meta;
+  };
+
+  # Sumaclust
+  sumaclust = stdenv.mkDerivation rec {
+    version = "1.0.34";
+    pname = "sumaclust";
+    src = fetchFromGitLab {
+      domain = "git.metabarcoding.org";
+      owner = "obitools";
+      repo = pname;
+      rev = "${pname}_v${version}";
+      sha256 = "0x8yi3k3jxhmv2krp4rcjlj2f9zg0qrk7gx4kpclf9c3yxgsgrds";
+    };
+    buildInputs = [ sumalibs ];
+    makeFlags = [
+      "LIBSUMA=${sumalibs}/lib/libsuma.a"
+      "LIBSUMAPATH=-L${sumalibs}"
+      "PREFIX=$(out)"
+    ];
+    inherit meta;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/svaba/default.nix b/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
new file mode 100644
index 000000000000..d36c4b668ec3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
@@ -0,0 +1,56 @@
+{ lib, stdenv, zlib, bzip2, xz, fetchFromGitHub } :
+
+stdenv.mkDerivation rec {
+  version = "1.1.0";
+  pname = "svaba";
+
+  src = fetchFromGitHub {
+    owner = "walaj";
+    repo = pname;
+    rev = version;
+    sha256 = "1vv5mc9z5d22kgdy7mm27ya5aahnqgkcrskdr2405058ikk9g8kp";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [ zlib bzip2 xz ];
+
+  postPatch = ''
+    # Fix gcc-13 build failure due to missing includes
+    sed -e '1i #include <cstdint>' -i \
+      SeqLib/src/non_api/Histogram.h \
+      src/svaba/Histogram.h
+  '';
+
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: ./libfml.a(rle.o):/build/source/SeqLib/fermi-lite/rle.h:33: multiple definition of
+  #     `rle_auxtab'; ./libfml.a(misc.o):/build/source/SeqLib/fermi-lite/rle.h:33: first defined here
+  env.NIX_CFLAGS_COMPILE = "-fcommon";
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm555 src/svaba/svaba $out/bin/svaba
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
+    description = "Structural variant and INDEL caller for DNA sequencing data, using genome-wide local assembly";
+    license = licenses.gpl3;
+    homepage = "https://github.com/walaj/svaba";
+    maintainers = with maintainers; [ scalavision ];
+    platforms = platforms.linux;
+    longDescription = ''
+      SvABA is a method for detecting structural variants in sequencing data
+      using genome-wide local assembly. Under the hood, SvABA uses a custom
+      implementation of SGA (String Graph Assembler) by Jared Simpson,
+      and BWA-MEM by Heng Li. Contigs are assembled for every 25kb window
+      (with some small overlap) for every region in the genome.
+      The default is to use only clipped, discordant, unmapped and indel reads,
+      although this can be customized to any set of reads at the command line using VariantBam rules.
+      These contigs are then immediately aligned to the reference with BWA-MEM and parsed to identify variants.
+      Sequencing reads are then realigned to the contigs with BWA-MEM, and variants are scored by their read support.
+    '';
+
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/tandem-aligner/default.nix b/nixpkgs/pkgs/applications/science/biology/tandem-aligner/default.nix
new file mode 100644
index 000000000000..0b3f2520d82b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/tandem-aligner/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "TandemAligner";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "seryrzu";
+    repo = "tandem_aligner";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-iMDj1HZ8LzmZckuAM3lbG3eSJSd/5JGVA6SBs7+AgX8=";
+  };
+
+  patches = [
+    (fetchpatch {
+      # https://github.com/seryrzu/tandem_aligner/pull/4
+      url = "https://github.com/seryrzu/tandem_aligner/commit/8b516c94f90aaa9cb84278aa811285d4204b03a9.patch";
+      hash = "sha256-kD46SykXklG/avK0+sc61YKFw9Bes8ZgFAjVXmcpN8k=";
+      stripLen = 1;
+    })
+  ];
+
+  sourceRoot = "${finalAttrs.src.name}/tandem_aligner";
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ zlib ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp src/projects/tandem_aligner/tandem_aligner $out/bin
+    runHook postInstall
+  '';
+
+  doCheck = true;
+
+  # adapted from target test_launch in Makefile
+  checkPhase = ''
+    runHook preCheck
+    mkdir -p $TMPDIR/test_launch
+    src/projects/tandem_aligner/tandem_aligner \
+      --first $src/tandem_aligner/test_dataset/first.fasta \
+      --second $src/tandem_aligner/test_dataset/second.fasta \
+      -o $TMPDIR/test_launch \
+      --debug
+    grep -q "Thank you for using TandemAligner!" $TMPDIR/test_launch/tandem_aligner.log
+    diff $TMPDIR/test_launch/cigar.txt $src/tandem_aligner/test_dataset/true_cigar.txt
+    runHook postCheck
+  '';
+
+  meta = {
+    description = "A parameter-free algorithm for sequence alignment";
+    homepage = "https://github.com/seryrzu/tandem_aligner";
+    changelog = "https://github.com/seryrzu/tandem_aligner/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ amesgen ];
+    platforms = lib.platforms.linux;
+    mainProgram = "tandem_aligner";
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix b/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
new file mode 100644
index 000000000000..a046aee1c6c3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
@@ -0,0 +1,48 @@
+{ lib, fetchFromGitHub, last, exonerate, minia, python3, bwa
+, samtools }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "tebreak";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "adamewing";
+    repo = "tebreak";
+    rev = version;
+    sha256 = "13mgh775d8hkl340923lfwwm4r5ps70girn8d6wgfxzwzxylz8iz";
+  };
+
+  nativeBuildInputs = [ python3.pkgs.cython ];
+  propagatedBuildInputs = with python3.pkgs; [
+    pysam
+    scipy
+    bx-python
+    scikit-bio
+  ];
+
+  preConfigure = ''
+    # patch the paths to all required software
+    for f in $(find . -type f) ; do
+      sed -i "s|'bwa'|'${bwa}/bin/bwa'|" $f
+      sed -i "s|'minia'|'${minia}/bin/minia'|" $f
+      sed -i "s|'exonerate'|'${exonerate}/bin/exonerate'|" $f
+      sed -i "s|'samtools'|'${samtools}/bin/samtools'|" $f
+      sed -i "s|'lastal'|'${last}/bin/lastal'|" $f
+      sed -i "s|'lastdb'|'${last}/bin/lastdb'|" $f
+    done
+  '';
+
+  checkPhase = ''
+    $out/bin/tebreak -b test/data/example.ins.bam  -r test/data/Homo_sapiens_chr4_50000000-60000000_assembly19.fasta -p 4 --pickle test/example.pickle --detail_out test/example.tebreak.detail.out -i lib/teref.human.fa
+    pushd test
+    ${python3.interpreter} checktest.py
+  '';
+
+  meta = with lib; {
+    description = "Find and characterise transposable element insertions";
+    homepage = "https://github.com/adamewing/tebreak";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/treemix/default.nix b/nixpkgs/pkgs/applications/science/biology/treemix/default.nix
new file mode 100644
index 000000000000..7bf966919a67
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/treemix/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, stdenv
+, fetchurl
+, zlib
+, gsl
+, boost
+}:
+
+stdenv.mkDerivation rec {
+  pname = "treemix";
+  version = "1.13";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/nygcresearch/treemix/downloads/${pname}-${version}.tar.gz";
+    sha256 = "1nd3rzsdgk47r8b8k43mdfvaagln533sm08s1jr0dz8km8nlym7y";
+  };
+
+  buildInputs = [ zlib gsl boost ];
+
+  meta = with lib ; {
+    description = "Inference of patterns of population splitting and mixing from genome-wide allele frequency data";
+    homepage = "https://bitbucket.org/nygcresearch/treemix/wiki/Home";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/trf/default.nix b/nixpkgs/pkgs/applications/science/biology/trf/default.nix
new file mode 100644
index 000000000000..f36788eb612c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/trf/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "trf";
+  version = "4.09.1";
+
+  src = fetchFromGitHub {
+    owner = "Benson-Genomics-Lab";
+    repo = "trf";
+    rev = "v${version}";
+    sha256 = "sha256-73LypVqBdlRdDCblf9JNZQmS5Za8xpId4ha5GjTJHDo=";
+  };
+
+  meta = with lib; {
+    description = "Tandem Repeats Finder: a program to analyze DNA sequences";
+    homepage = "https://tandem.bu.edu/trf/trf.html";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ natsukium ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/trimal/default.nix b/nixpkgs/pkgs/applications/science/biology/trimal/default.nix
new file mode 100644
index 000000000000..b27a63a2135a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/trimal/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "trimal";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "scapella";
+    rev = "v${version}";
+    sha256 = "0isc7s3514di4z953xq53ncjkbi650sh4q9yyw5aag1n9hqnh7k0";
+  };
+
+  postUnpack = ''
+    sourceRoot=''${sourceRoot}/source
+    echo Source root reset to ''${sourceRoot}
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -a trimal readal statal $out/bin
+  '';
+
+  meta = with lib; {
+    description = "A tool for the automated removal of spurious sequences or poorly aligned regions from a multiple sequence alignment";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    homepage = "http://trimal.cgenomics.org";
+    maintainers = [ maintainers.bzizou ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix b/nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix
new file mode 100644
index 000000000000..53cff76badce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, ant
+, jdk
+, jre
+, makeWrapper
+, canonicalize-jars-hook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "trimmomatic";
+  version = "0.39";
+
+  src = fetchFromGitHub {
+    owner = "usadellab";
+    repo = "Trimmomatic";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-u+ubmacwPy/vsEi0YQCv0fTnVDesQvqeQDEwCbS8M6I=";
+  };
+
+  # Remove jdk version requirement
+  postPatch = ''
+    substituteInPlace ./build.xml \
+      --replace 'source="1.5" target="1.5"' ""
+  '';
+
+  nativeBuildInputs = [
+    ant
+    jdk
+    makeWrapper
+    canonicalize-jars-hook
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    ant
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 dist/jar/trimmomatic-*.jar -t $out/share/trimmomatic
+    cp -r adapters $out/share/trimmomatic
+
+    makeWrapper ${jre}/bin/java $out/bin/trimmomatic \
+        --add-flags "-jar $out/share/trimmomatic/trimmomatic-*.jar"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/usadellab/Trimmomatic/blob/main/versionHistory.txt";
+    description = "A flexible read trimming tool for Illumina NGS data";
+    longDescription = ''
+      Trimmomatic performs a variety of useful trimming tasks for illumina
+      paired-end and single ended data: adapter trimming, quality trimming,
+      cropping to a specified length, length filtering, quality score
+      conversion.
+    '';
+    homepage = "http://www.usadellab.org/cms/?page=trimmomatic";
+    downloadPage = "https://github.com/usadellab/Trimmomatic/releases";
+    license = lib.licenses.gpl3Only;
+    sourceProvenance = [
+      lib.sourceTypes.fromSource
+      lib.sourceTypes.binaryBytecode # source bundles dependencies as jars
+    ];
+    mainProgram = "trimmomatic";
+    maintainers = [ lib.maintainers.kupac ];
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/truvari/default.nix b/nixpkgs/pkgs/applications/science/biology/truvari/default.nix
new file mode 100644
index 000000000000..946f4be60632
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/truvari/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+, runtimeShell
+, bcftools
+, htslib
+}:
+
+let
+  ssshtest = fetchFromGitHub {
+    owner = "ryanlayer";
+    repo = "ssshtest";
+    rev = "d21f7f928a167fca6e2eb31616673444d15e6fd0";
+    hash = "sha256-zecZHEnfhDtT44VMbHLHOhRtNsIMWeaBASupVXtmrks=";
+  };
+in python3Packages.buildPythonApplication rec {
+  pname = "truvari";
+  version = "4.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "ACEnglish";
+    repo = "truvari";
+    rev = "v${version}";
+    hash = "sha256-HFVAv1TTL/nMjr62tQKhMdwh25P/y4nBGzSbxoJxMmo=";
+  };
+
+  postPatch = ''
+    substituteInPlace truvari/utils.py \
+      --replace "/bin/bash" "${runtimeShell}"
+    patchShebangs repo_utils/test_files
+  '';
+
+  nativeBuildInputs = [
+    python3Packages.setuptools
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pywfa
+    rich
+    edlib
+    pysam
+    intervaltree
+    joblib
+    numpy
+    pytabix
+    bwapy
+    pandas
+  ];
+
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" (lib.makeBinPath [ bcftools htslib ])
+  ];
+
+  pythonImportsCheck = [ "truvari" ];
+
+  nativeCheckInputs = [
+    bcftools
+    htslib
+  ] ++ (with python3Packages; [
+    coverage
+  ]);
+
+  checkPhase = ''
+    runHook preCheck
+
+    ln -s ${ssshtest}/ssshtest .
+    bash repo_utils/truvari_ssshtests.sh
+
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Structural variant comparison tool for VCFs";
+    homepage = "https://github.com/ACEnglish/truvari";
+    changelog = "https://github.com/ACEnglish/truvari/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ natsukium scalavision ];
+    longDescription = ''
+      Truvari is a benchmarking tool for comparison sets of SVs.
+      It can calculate the recall, precision, and f-measure of a
+      vcf from a given structural variant caller. The tool
+      is created by Spiral Genetics.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/varscan/default.nix b/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
new file mode 100644
index 000000000000..bf6d16c3701d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
@@ -0,0 +1,38 @@
+{lib, stdenv, fetchurl, jre, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  pname = "varscan";
+  version = "2.4.6";
+
+  src = fetchurl {
+    url = "https://github.com/dkoboldt/varscan/raw/master/VarScan.v${version}.jar";
+    sha256 = "sha256-6CcjC0epbKsDXFxxeOUImSGh4cjR5INqawL/iOOkwqs=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/libexec/varscan
+    cp $src $out/libexec/varscan/varscan.jar
+    mkdir -p $out/bin
+    makeWrapper ${jre}/bin/java $out/bin/varscan --add-flags "-jar $out/libexec/varscan/varscan.jar"
+  '';
+
+  meta = with lib; {
+    description = "Variant calling and somatic mutation/CNV detection for next-generation sequencing data";
+    # VarScan 2 is free for non-commercial use by academic,
+    # government, and non-profit/not-for-profit institutions. A
+    # commercial version of the software is available, and licensed
+    # through the Office of Technology Management at Washington
+    # University School of Medicine.
+    license = licenses.unfree;
+    homepage = "https://github.com/dkoboldt/varscan";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix b/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix
new file mode 100644
index 000000000000..a4ec84d4d506
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, zlib, autoreconfHook, pkg-config, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "vcftools";
+  version = "0.1.16";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "vcftools";
+    rev = "v${version}";
+    sha256 = "0msb09d2cnm8rlpg8bsc1lhjddvp3kf3i9dsj1qs4qgsdlzhxkyx";
+  };
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  buildInputs = [ zlib perl ];
+
+  meta = with lib; {
+    description = "A set of tools written in Perl and C++ for working with VCF files, such as those generated by the 1000 Genomes Project";
+    license = licenses.lgpl3;
+    platforms = platforms.linux;
+    homepage = "https://vcftools.github.io/index.html";
+    maintainers = [ maintainers.rybern ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix b/nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix
new file mode 100644
index 000000000000..63597a75d494
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, llvmPackages
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "veryfasttree";
+  version = "4.0.3";
+
+  src = fetchFromGitHub {
+    owner = "citiususc";
+    repo = "veryfasttree";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-Sp331VJRaYv/BTwFj3HwUcUsWjYf6YEXWjYdOzDhBBA=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional stdenv.cc.isClang llvmPackages.openmp;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m755 -D VeryFastTree $out/bin/VeryFastTree
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Speeding up the estimation of phylogenetic trees for large alignments through parallelization and vectorization strategies";
+    homepage = "https://github.com/citiususc/veryfasttree";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ thyol ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/whisper/default.nix b/nixpkgs/pkgs/applications/science/biology/whisper/default.nix
new file mode 100644
index 000000000000..4cc211547610
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/whisper/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "whisper";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "refresh-bio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wpx1w1mar2d6zq2v14vy6nn896ds1n3zshxhhrrj5d528504iyw";
+  };
+
+  patches = [
+    # gcc-13 compatibility fixes:
+    #   https://github.com/refresh-bio/Whisper/pull/17
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url = "https://github.com/refresh-bio/Whisper/commit/d67e110dd6899782e4687188f6b432494315b0b4.patch";
+      hash = "sha256-Z8GrkUMIKO/ccEdwulQh+WUox3CEckr6NgoBSzYvfuw=";
+    })
+  ];
+
+  preConfigure = ''
+    cd src
+
+    # disable default static linking
+    sed -i 's/ -static / /' makefile
+  '';
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/bin whisper whisper-index
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    broken = stdenv.isDarwin;
+    description = "Short read sequence mapper";
+    license = licenses.gpl3;
+    homepage = "https://github.com/refresh-bio/whisper";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/xenomapper/default.nix b/nixpkgs/pkgs/applications/science/biology/xenomapper/default.nix
new file mode 100644
index 000000000000..194db966915e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/xenomapper/default.nix
@@ -0,0 +1,23 @@
+{ python3, lib, fetchFromGitHub }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "xenomapper";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "genomematt";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mnmfzlq5mhih6z8dq5bkx95vb8whjycz9mdlqwbmlqjb3gb3zhr";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [ statistics ];
+
+  meta = with lib; {
+    homepage = "https://github.com/genomematt/xenomapper";
+    description = "A utility for post processing mapped reads that have been aligned to a primary genome and a secondary genome and binning reads into species specific, multimapping in each species, unmapped and unassigned bins";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.jbedo ];
+  };
+}