Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GenEra Conda Recipes Submission #51721

Merged
merged 52 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
d945bd5
Committer: Anupam Gautam <[email protected]>
Oct 24, 2024
6fdfb3b
Merge branch 'bioconda:master' into update_my_recipe
AnupamGautam Oct 25, 2024
4ab01ae
Update recipes/tipp/build.sh
AnupamGautam Oct 25, 2024
63b05b4
Update recipes/tipp/build.sh
AnupamGautam Oct 25, 2024
ec0b3c9
Update recipes/tipp/build.sh
AnupamGautam Oct 25, 2024
61cdfda
Update recipes/tipp/build.sh
AnupamGautam Oct 25, 2024
9ed0cdd
Update recipes/tipp/build.sh
AnupamGautam Oct 25, 2024
2c0a077
Update recipes/tipp/meta.yaml
AnupamGautam Oct 25, 2024
c9d79ab
Merge branch 'bioconda:master' into update_my_recipe
AnupamGautam Oct 25, 2024
01a006d
Committer: Anupam Gautam <[email protected]>
Oct 25, 2024
c93d20d
Merge branch 'bioconda:master' into update_my_recipe
AnupamGautam Oct 25, 2024
8f24e82
Merge branch 'master' into update_my_recipe
AnupamGautam Oct 25, 2024
726f73b
Committer: Anupam Gautam <[email protected]>
Oct 25, 2024
6ca983f
Merge branch 'master' into update_my_recipe
AnupamGautam Oct 25, 2024
4fea052
Merge branch 'bioconda:master' into update_my_recipe
AnupamGautam Oct 28, 2024
455eaf3
GenEra conda recipes
Oct 28, 2024
7d21180
removed genera files
Oct 28, 2024
2e331f5
GenEra conda recipe
Oct 28, 2024
1c55c53
cleaning
Oct 28, 2024
8554955
Merge branch 'master' into update_my_recipe2
AnupamGautam Oct 28, 2024
7a4152e
Merge branch 'master' into update_my_recipe2
AnupamGautam Oct 28, 2024
103ce91
Merge branch 'bioconda:master' into update_my_recipe2
AnupamGautam Oct 28, 2024
579c149
update
Oct 28, 2024
759c679
Merge branch 'master' into update_my_recipe2
aliciaaevans Oct 29, 2024
5569775
Merge branch 'bioconda:master' into update_my_recipe2
AnupamGautam Oct 29, 2024
0305a7c
python updated
Oct 29, 2024
81192f3
changes added
Nov 1, 2024
448443e
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 1, 2024
88db21b
added test and abSENSE release
Nov 4, 2024
13ba689
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 4, 2024
449f892
added test and abSENSE release
Nov 4, 2024
bea8361
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 5, 2024
cb2bf56
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 7, 2024
463df26
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 11, 2024
7e87ce3
update
Nov 15, 2024
131d9d3
Merge branch 'master' into update_my_recipe2
richard-burhans Nov 15, 2024
64308f9
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 16, 2024
43ab6b9
update
Nov 16, 2024
0203536
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 16, 2024
c34e66e
Update recipes/genera/meta.yaml
AnupamGautam Nov 18, 2024
50c9c61
Update recipes/genera/meta.yaml
AnupamGautam Nov 18, 2024
4a1412a
Update meta.yaml
AnupamGautam Nov 18, 2024
f183729
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 18, 2024
f4babdd
Solved abSENSE License issue
AnupamGautam Nov 18, 2024
519c139
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 18, 2024
c6fccef
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 24, 2024
77bdfd1
Merge branch 'bioconda:master' into update_my_recipe2
AnupamGautam Nov 25, 2024
9c70df5
Merge branch 'bioconda:master' into update_my_recipe2
AnupamGautam Nov 25, 2024
e6c4d9c
resolved absense issue
Nov 25, 2024
c0d78b0
Update recipes/genera/meta.yaml
AnupamGautam Nov 25, 2024
3182656
Update meta.yaml
AnupamGautam Nov 25, 2024
dda7108
Merge branch 'master' into update_my_recipe2
AnupamGautam Nov 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions recipes/genera/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash

# Exit on any error
set -ex

# Ensure all main scripts are executable
chmod +x genEra Erassignment hmmEra tree2ncbitax FASTSTEP3R test_installation.sh
bgruening marked this conversation as resolved.
Show resolved Hide resolved

#Move the main Run_abSENSE.py script

mv abSENSE/Run_abSENSE.py .
chmod +x Run_abSENSE.py

# Define the Conda binary path
CONDABIN="${PREFIX}/bin"

# Ensure the directory exists
mkdir -p "$CONDABIN"


# Move executables to the Conda binary directory
mv genEra "$CONDABIN"
mv Erassignment "$CONDABIN"
mv Run_abSENSE.py "$CONDABIN"
mv hmmEra "$CONDABIN"
mv tree2ncbitax "$CONDABIN"
mv FASTSTEP3R "$CONDABIN"
mv test_installation.sh "$CONDABIN"

echo "Installation complete. Executables have been moved to ${CONDABIN}."
47 changes: 47 additions & 0 deletions recipes/genera/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{% set version = '1.4.2' %}

package:
name: genera
version: {{ version|replace('-', '_') }}

source:
- url: https://github.com/josuebarrera/GenEra/archive/refs/tags/v{{ version }}.tar.gz
sha256: acc49698b68151550b825c73f1f03dd268da2c73ecc7ac4c55eccb8bec5b1a54
- url: https://github.com/caraweisman/abSENSE/archive/refs/tags/v1.0.0.tar.gz
sha256: a99090c10a66afae1fbad38d79d228199e9fbdae5173e71ad5d84b4c958dda54
folder: abSENSE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason this is not a separate recipe?

Copy link
Contributor Author

@AnupamGautam AnupamGautam Nov 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dear @mfansler,

I have implemented your suggestions and added a new test as well. Regarding the tool abSENSE, I have reached out to the author to confirm their interest in having a Conda package. If they express interest, I can create a PR for the package.

For now, we can proceed like this, and if author want I can create a PR later ,and update this package also. Could you please approve the workflow so that it can start? Thank you so much for your help!

Best regards,
Anupam

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I see, abSENSE has no licensing declared, which is prohibitive to bundling it for Bioconda. Please ask the author to declare a license and include that in a release.

Once there is a license it should be moved to a separate package here. Note that the author does not have to be a maintainer here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dear @mfansler,

I had reached out to the authors a few weeks ago regarding the LICENSE, release, and a potential Conda package. Since then, they have created a release for us, but I assume a Conda package may not be something they are prioritizing.

This code is part of a published open-access paper, and I believe it is included in the supplementary materials. In this case, would a license still be required for the Conda package?

Here’s the relevant issue for reference: abSENSE Issue #3.

Here's the paper: https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.3000862

They also mention in paper:"An implementation of our method, with all raw data and results presented here, is freely available as source code at github.com/caraweisman/abSENSE and as a web server at eddylab.org/abSENSE."
Thank you for your guidance!

Best regards,
Anupam

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the additional information!

While the article itself is CC-BY-4.0, a copy of the code does not appear deposited with the article and thus it is not covered. If they want to extend exactly the same license, they could put a copy of the CC-BY-4.0 text in the repository somewhere.

Otherwise, unfortunately "open-source" doesn't translate to permission to redistribute.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @mfansler,

I have reached out to the author again for clarification. Once they respond, I will proceed as suggested. However, if they decide against having a Conda package but provide a license, I can move forward using the current approach?

Thank you for your support!

Additionally, could you please help me start the workflow for my other recipe? It doesn’t seem to start automatically. Your assistance would be greatly appreciated.: TIPP_plastid conda recipe.

Best regards,
Anupam

Copy link
Contributor Author

@AnupamGautam AnupamGautam Nov 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dear @mfansler,

The authors have added a license file to their repository and released a new version. I’ve updated the meta.yaml file to include this latest release. While they may still need time to decide whether they want an official Conda package, I can create one for them later if requested and make the necessary updates.

For now, we can proceed with the current setup. Could you help initiate the workflow and assist in merging this?

Thank you for your continued support!

Best regards,
Anupam

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's great!

As a Conda Forge reviewer, I have the perspective that vendoring other package code directly into bin is a no-go. The reason is that, should the other package ever be moved to its own recipe, then they would clobber each other. There are post hoc ways around this (e.g., run_constrained), but it's preferable to avoid this. There are two ways one can do so, either:

  1. Package the code separately. While it is courteous to contact upstream developers about wanting to distribute as a Conda package, this is not required. There is no requirement to get personal approval, rather the license itself is the approval.

  2. Refactor so that the vendored code is within a "namespace" unique to your package. This is much clearer how to do it when one has a proper package (i.e., Python, R packages). For scripts such as being delivered here, it is less clear what the best practice is for namespacing.

I recommend option 1, moving it to a separate package. Maybe others who work Bioconda recipes more regularly can weigh in (CC @aliciaaevans @martin-g). It could be that Bioconda is less strict about this and I'm unnecessarily bothering you with Conda Forge standards (if so, apologies!).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dear @mfansler,

Thank you so much for your help—I really appreciate it. Let's wait and see what others have to say. If needed, I can also include this script in our package or create a dedicated Conda package for it.

Best regards,
Anupam


build:
number: 0
mfansler marked this conversation as resolved.
Show resolved Hide resolved
noarch: generic
run_exports:
- {{ pin_subpackage('genera', max_pin="x.x") }}
mfansler marked this conversation as resolved.
Show resolved Hide resolved
mfansler marked this conversation as resolved.
Show resolved Hide resolved

requirements:
host:
- python >=3.8,<3.9
run:
- python >=3.8,<3.9
- diamond >=2.1.10
- mmseqs2 =14.7e284
- foldseek =3.915ef7d
- scipy =1.7.3
- r-seqinr =4.2_16
- r-optparse =1.7.3
- r-bio3d =2.4_3
- r-tidyverse =1.3.2
- r-phytools >=0.6_99
- orthofinder =2.5.5
- ncbitax2lin =2.3.2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Revise dependency specifications.

Several adjustments needed to align with Conda best practices:

  1. Remove upper bound on Python version
  2. Add missing build dependencies
  3. Use minimum version constraints (>=) instead of exact pins where possible
 requirements:
   host:
-    - python >=3.8,<3.9
+    - python >=3.8
+    - pip
+    - setuptools
   run:
-    - python >=3.8,<3.9
+    - python >=3.8
     - diamond >=2.1.10
-    - mmseqs2 =14.7e284
+    - mmseqs2 >=14.7e284
-    - foldseek =3.915ef7d
+    - foldseek >=3.915ef7d
-    - scipy =1.7.3
+    - scipy >=1.7.3
-    - r-seqinr =4.2_16
+    - r-seqinr >=4.2_16
-    - r-optparse =1.7.3
+    - r-optparse >=1.7.3
-    - r-bio3d =2.4_3
+    - r-bio3d >=2.4_3
-    - r-tidyverse =1.3.2
+    - r-tidyverse >=1.3.2
     - r-phytools >=0.6_99
-    - orthofinder =2.5.5
+    - orthofinder >=2.5.5
-    - ncbitax2lin =2.3.2
+    - ncbitax2lin >=2.3.2
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
host:
- python >=3.8,<3.9
run:
- python >=3.8,<3.9
- diamond >=2.1.10
- mmseqs2 =14.7e284
- foldseek =3.915ef7d
- scipy =1.7.3
- r-seqinr =4.2_16
- r-optparse =1.7.3
- r-bio3d =2.4_3
- r-tidyverse =1.3.2
- r-phytools >=0.6_99
- orthofinder =2.5.5
- ncbitax2lin =2.3.2
host:
- python >=3.8
- pip
- setuptools
run:
- python >=3.8
- diamond >=2.1.10
- mmseqs2 >=14.7e284
- foldseek >=3.915ef7d
- scipy >=1.7.3
- r-seqinr >=4.2_16
- r-optparse >=1.7.3
- r-bio3d >=2.4_3
- r-tidyverse >=1.3.2
- r-phytools >=0.6_99
- orthofinder >=2.5.5
- ncbitax2lin >=2.3.2

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the bot here. Are the exact specifications really necessary?

The run_exports of other Bioconda packages will add upper bounds that help constrain co-installation with too new versions in the future.

Also, Python 3.8 has reached EOL, so Python 3.9 would make more sense as a minimum.

The pip and setuptools suggested by the bot can be ignored - they aren't relevant since this only copies scripts.


test:
commands:
- genEra -h
- hmmEra -h
- test_installation.sh -h

about:
home: https://github.com/josuebarrera/GenEra
license: "GPL-3.0-or-later"
license_family: GPL3
summary: "Uncovering gene-family founder events during major evolutionary transitions in animals, plants and fungi using GenEra"
Loading