Creation de recette conda

Hello hello

Je suis en train de bosser sur la realese 3.2 de FROGS, et franchement je galère pour faire la recette conda.

FROGS fait appel à pas mal de dépendances, donc l'utilisation de conda aide beaucoup pour faciliter l'installation du pipeline.
Par contre pour être référencé sur bioconda il faut que les versions des dépendances soient systématiquement >= X.
ça m'embête beaucoup car certains outils sont mis à jour très fréquemment et vu le nombre de dépendances je ne peux pas suivre le rythme de chacun pour vérifier que les résultats sont toujours les mêmes et si non pourquoi.

Du coup pour la version 3.2 j'aimerais réduire la recette conda au strict minimum (libraries python, PERL, et RDP Classifier qui est un jar à installer dans un endroit précis) et faire appel à un env.yaml ou requirements.txt pour installer les autres dépendances en choisissant de figer les versions.

Sauf que je comprends pas trop la différence entre

  • conda install --file requirements.txt
  • conda create env -f environment.yaml

est ce qu'une façon de faire est mieux que l'autre ? ce n'est pas la même syntaxe de fichier; je ne vais pas faire les deux.
et la recette frogs, est ce qu'elle doit être inclue dans ces fichiers ou est ce que j'ajoute

  • -c bioconda frogs
  • --name FROGS_3.1 frogs=3.1.0

et comment faire si on utilise --file requirements.txt pour préciser les channels ? typiquement pour les paquets R j'aimerais favoriser bioconda puis conda-forge et jamais r.

bref c'est une vraie machine à gaz ce conda/bioconda et à chaque fois que je m'y mets je recule ...

Est ce que quelqu'un serait disposer à me donner un coup de main ?

Si formation conda/bioconda il y a, vous pourriez m'inscrire d'office ?

Bonne journée

Maria

Salut @mariabernard

Tu ne peux pas mettre un range de version >= < ?
Est-ce que tu peux le pointer une discussion (animée) là-dessus ?

C'est ce que fait qiime : install-qiime-2-within-a-conda-environment

Nous avons pour le moment privilégié la syntaxe environment.yaml qui permet en effet de préciser le channel (ce qui accélère énormement la construction de l'env)

Je pense que frogs doit être une ligne dans ton fichier environment.yaml

NON

ping @team.software si vous avez un autre avis

pfff je te connais bien là, aider puis jeter ! :weary:

Merci pour ces conseils, je vais suivre ce que fais qiime. ça m'a l'air d'être un bon exemple.

Je ne manquerais pas de vous dire quand FROGS 3.2 via conda et toolshed seront opérationnels. Et si @gildaslecorguille, t'impatiente trop, et bien tu reviendras peut être pour me filer un coup de main ! :wink:

A+

1 J'aime

Je m'étais occupé du déploiement de qiime2 sur le cluster et c'est effectivement un bon exemple.
Tu peux voir notre fichier yaml ici : https://gitlab.com/ifb-elixirfr/cluster/tools/-/blob/master/tools/qiime2/2019.1.0/env.yml

merci @julien!

et sinon si jamais vous (toute la communauté IFB) aurait un idée sur mon problème de mise à jour de la recette RDP classifier : https://github.com/bioconda/bioconda-recipes/pull/21712

A+

CircleCI

11:18:27 BIOCONDA INFO (OUT) BUILD FAILED
11:18:27 BIOCONDA INFO (OUT) /opt/conda/conda-bld/rdptools_1587640547937/work/classifier/build.xml:50: Can't get http://rdp.cme.msu.edu/download/rdpclassifiertraindata/data.tgz to /opt/conda/conda-bld/rdptools_1587640547937/work/classifier/build/classes/data.tgz

http://rdp.cme.msu.edu/download/rdpclassifiertraindata/data.tgz

Service Temporarily Unavailable

Tu es sûr de ton adresse ?

hello

Je viens de m'y replonger.
J'ai audacieusement ajouter des grep et autre echo pour valider les versions utilisées et cette fois les tests fonctionnent!

Du coup je viens de renettoyer le build et les tests sont en court.

Le serveur devait être vraiment temporairement indisponible, mais comme à chaque fois que je tente de faire une recette bioconda ça se transforme en chemin de croix .....

bref merci pour le support @gildaslecorguille

ce n'est pas terminé, mais là j'abandonne si ça plante!

A+