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+

Bonjour à tous

Je me permet de rouvrir ce post.
J'ai réussi à créer ma recette FROGS, puis à écrire un env.yml qui ne génère pas de conflits.
Sauf que maintenant j'ai un problème avec un des outils, vsearch, dont la recette de la version souhaitée ( <2.13) a été mal construite. Elle ne demande pas l'installation de zlib et donc les fichiers compressés ne sont pas pris en charge (avouez que c'est moche).
J'ai ajouté zlib dans ma recette FROGS, mais visiblement vsearch est installé avant la lib zlib et donc ça ne résoud pas le problème.

Est il possible de spécifier des priorités, ou host ou requirements ou je ne sais quoi, qui ferait que zlib soit installé en priorité ?
Sinon j'ajoute vsearch à ma recette FROGS, mais la team bioconda va refuser ma recette puisque je veux figer la version (ou tout du moins la contrôler)....

A+

Maria

J'imagine que vsearch doit être compiler avec zlib. Tu aurais beau ajouter zlib dans tes dépendances, vsearch vient pré-compiler :confused:

Si tu ne peux vraiment pas upgrader vsearch pour trouver une version fonctionnelle. Tu peux créer un autre build de la version 2.12 (<2.13). Dans bioconda, tu peux créer un sous-répertoire avec le numéro de version.
Une fois disponible, tu devras surement le supprimer du repo github.

Coucou,

C'est effectivement ce que j'ai vu en regardant les corrections apportées à la recette vsearch. L'ajout de zlib ne suffit pas.

Merci pour ton retour, je commence a bien comprendre toute la machinerie, mais c'est toujours mieux d'avoir l'avis d'expert!

a+

1 J'aime