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 ?
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
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 !
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
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 .....
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)....
J'imagine que vsearch doit être compiler avec zlib. Tu aurais beau ajouter zlib dans tes dépendances, vsearch vient pré-compiler
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.