Improve binning stategy
Regarder les stratégies de binning d'ATLAS, de mag et d'autres stratégies existantes (metawrap ; squeezemeta) et s'en inspirer.
Vincent Darbot a utilisé un mock pour trouver la meilleure stratégie de binning sur ces données, de plus en parallèle Jean Mainguy a également fait des tests sur les assemblages longues lectures.
Suite à ces tests, il s'avère que la stratégie à implémenter est la suivante :
Partir des contigs renommés après la brique 4_annotation structurelle. Pour chacun des assemblages mis en entrée ou construits par le workflow après annotation structurelle par prokka.
- Mapper tous les autres échantillons dessus.
- Lancer en parallèle les trois binners suivants en donnant l'ensemble des bams (soit pour chaque assemblage, un bam par échantillon donc il doit y avoir autant de bam que d'échantillons):
- concoct
- maxbin2
- metabat2
- Raffiner les bins pour chaque assemblage la brique bin_refinment module de metawrap (voir le schéma : https://camo.githubusercontent.com/ebf5e8fdc003b081bed72f17e77bab586b4ddab2ced9ccf3af752217a3914fa2/68747470733a2f2f692e696d6775722e636f6d2f484455506558432e706e67).
- d'abord en utilisant binning_refiner.py de metawrap.
- puis en utilisant checkM
- puis summarize_checkM.py
- puis consolidate_two_sets_of_bins.py de metawrap
- puis dereplicate_contigs_in_bins.py de letawrap et à nouveau checkM.
- Voir si on utilise aussi leur plot_binning_results.py ou si le multiQC suffit.
- Ne pas oublier de tenir compte de cette nouvelle étape dans le multiQC.
- Attention : les contigs est été renommés lors des étapes précédentes : générer une table des correspondances pour mettre à jour le gff des annotations structurales avec les nouveaux noms.
- Lancer GTdb-tk pour affilier taxonomiquement les bins. Voir si multiQC peut en faire un rapport html
- Générer la table d'abondance en utilisant la table des correspondance des noms de contigs et les bam générés dans l'étape 1, puis compter les lectures mappées, faire aussi un calcul de la profondeur moyenne du bin comme on fait pour la table d'abondance des contigs. Si c'est techniquement impossible de réutiliser l'information des bam, investiguer le pseudo-mapping par Salmon avec un mock et utiliser ça si c'est ok. Rajouter l'information taxo issue de gtdb-tk dans cette matrice.
Attention à CheckM, vérifier qu'on puisse le mettre dans une image singularity car à MAG ils n'ont pas réussi. Cette première stratégie de binning sera commune aux short et aux longues reads.
Modules metaWRAP : convertir les scripts python essentiels (exemple metawrap_scripts/binning_refiner.py ) du module bin_refinement (metawrap_modules/bin_refinement.sh ) de python2 à python3 (script python2_to_python3)
Lignes de commandes binning : command_lines_binning.txt
Dans un second temps: Comparer Checkm1 et Checkm2 (vs résultats de complétude et Contamination de AMBER par exemple). Si Checkm2 meilleur --> adapter les scripts de métaWRAP pour remplacer Checkm1 par Checkm2
--> Gérer les erreurs quand un outil ne sort aucun bin (exemple Maxbin)
--> CO-BINNING: L'approche de co-binner implique un nombre importants d'alignements contre les assemblages ( chaque reads de chaque échantillon est aligné contre l'ensemble des assemblages des échantillons, pour 20 échantillons on a 400 alignements). Réfléchir à une stratégie pour limiter ce nombre d'alignements quand on dépasse un certain nombre d'échantillons