From 24d173920a366f17f4b69f8f72ec45095cebadc3 Mon Sep 17 00:00:00 2001
From: Yangyang Li <yangyang.li@northwestern.edu>
Date: Mon, 28 Oct 2024 21:46:29 -0500
Subject: [PATCH] Add: deepchopper (#51460)

* Create meta.yaml of deepchopper

* Update meta.yaml of deepchopper

* Create build.sh of deepchopper

* Update build.sh

* Update meta.yaml

* Update build.sh

* Update meta.yaml

* Update meta.yaml

* Update build.sh

* clean up recipe

* add aarch64/arm64 builds

* Update meta.yaml

* Update build.sh

* Update build.sh

* Update build.sh

* Update meta.yaml

* Update meta.yaml

* Update meta.yaml (evaluate do not have latest one)

* Update meta.yaml

* Update meta.yaml

* Update meta.yaml

* Update build.sh

---------

Co-authored-by: mencian <joshua.zhuang@yahoo.com>
Co-authored-by: Martin Grigorov <martin-g@users.noreply.github.com>
Co-authored-by: Joshua Zhuang <71105179+mencian@users.noreply.github.com>
---
 recipes/deepchopper/build.sh  | 20 ++++++++++
 recipes/deepchopper/meta.yaml | 74 +++++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+)
 create mode 100644 recipes/deepchopper/build.sh
 create mode 100644 recipes/deepchopper/meta.yaml

diff --git a/recipes/deepchopper/build.sh b/recipes/deepchopper/build.sh
new file mode 100644
index 0000000000000..ba2ee9778318d
--- /dev/null
+++ b/recipes/deepchopper/build.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# -e = exit on first error
+# -x = print every executed command
+set -ex
+
+# if [ `uname` == Darwin ]; then
+#   export HOME=`mktemp -d`
+# fi
+
+curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly --profile=minimal -y
+
+export PATH="$HOME/.cargo/bin:$PATH"
+# export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER="$CC"
+# export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER="$CC"
+
+
+maturin build --interpreter python --release
+
+$PYTHON -m pip install target/wheels/*.whl --no-deps --ignore-installed -vv
diff --git a/recipes/deepchopper/meta.yaml b/recipes/deepchopper/meta.yaml
new file mode 100644
index 0000000000000..2e06be86b7c97
--- /dev/null
+++ b/recipes/deepchopper/meta.yaml
@@ -0,0 +1,74 @@
+{% set name = "deepchopper" %}
+{% set version = "1.2.4" %}
+{% set sha256 = "e7f0bfed8c34e011e924bc12e30dec9c58777f1879962b9a2036da29009461e4" %}
+
+package:
+  name: {{ name|lower }}
+  version: {{ version }}
+
+source:
+  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
+  sha256: {{ sha256 }}
+
+build:
+  number: 0
+  skip: True  # [py < 310]
+  run_exports:
+    - {{ pin_subpackage("deepchopper", max_pin="x") }}
+  entry_points:
+    - deepchopper = deepchopper.cli:app
+    
+requirements:
+  build:
+    - {{ compiler('rust') }}
+    - {{ compiler('c') }}
+    - make
+    - cmake
+  host:
+    - python
+    - pip
+    - maturin >=1.2.1,<2
+    - setuptools-rust
+    - setuptools
+  run:
+    - python
+    - pytorch >=2.1.0
+    - lightning >=2.1.2
+    - torchmetrics >=1.2.0
+    - rich >=13.7.0
+    - transformers >=4.37.2
+    - safetensors >=0.4.2
+    - datasets ==2.14.2
+    - evaluate >=0.4.1
+    - typer >=0.12.0
+    - gradio ==5.0.1
+    - fastapi ==0.112.2
+    - scikit-learn >=1.5.2
+    - hydra-core >=1.3.2
+    - omegaconf >=2.3.0
+    - python-multipart ==0.0.12
+
+test:
+  imports:
+    - deepchopper
+  commands:
+    - deepchopper --help
+
+about:
+  home: https://github.com/ylab-hi/DeepChopper
+  license: Apache-2.0
+  license_family: Apache
+  license_file: LICENSE
+  summary: 'A Genomic Language Model for Chimera Artifact Detection in Nanopore Direct RNA Sequencing.'
+  description: |
+    DeepChopper is a genomic language model designed to identify artificial sequences.
+    It provides functionality for encoding FASTQ files, making predictions, and chopping sequences.
+  doc_url: https://github.com/ylab-hi/DeepChopper
+  dev_url: https://github.com/ylab-hi/DeepChopper
+
+extra:
+  additional-platforms:
+    - linux-aarch64
+    - osx-arm64
+  recipe-maintainers:
+    - yangyangli