$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
1. Téléchargement des données
- Téléchargez les données de l’adhésion PRJNA386367 à la base de données NCBI. À partir des données de l’accession PRJNA386367, sélectionnez les données sur le microbiome de la rhizosphère, du rhizoplan et de l’endosphère des plants de riz cultivés pendant 14 semaines dans une rizière submergée à Arbuckle, en Californie, en 2014.
REMARQUE: Les données sur le microbiome de la rhizosphère, du rhizoplan et de l’endosphère ont été présentées par le tableau des OTU dans l’accession PRJNA386367.
2. Détermination optimale de la valeur de puissance
Remarque : Le package WGCNA contient tous les paramètres fonctionnels suivants. WGCNA est un package R pour l’analyse de réseau de corrélation pondérée. Les lignes de commande clés se réfèrent au Supplément S1.
- Dans l’environnement linguistique R, ouvrez le logiciel Rstudio et installez le package WGCNA.
- Chargez les données et utilisez la fonction goodSamplesGenes pour vérifier l’exactitude des données. Exécutez les lignes de commande :
« gsg = goodSamplesGenes(datExpr0, verbeux = 3)
gsg$allOK »
Cliquez sur Exécuter.
- Vérifiez les valeurs aberrantes et stockez les échantillons qui répondent aux exigences. Lorsque le résultat de la vérification est TRUE, passez à l’étape suivante. Enregistrez le résultat.
- Utilisez la fonction PickSoftThreshold pour calculer l’indice sans échelle R2 des deux groupes de données sous des valeurs de puissance différentes. Exécutez la ligne de commande :
« sft = pickSoftThreshold(datExpr0, powerVector = puissances, verbe = 5) »
Cliquez sur Exécuter.
- Visualisez les résultats (Figure 1). Exécutez la ligne de commande :
« plot(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2],
xlab="Soft Threshold (power) »,ylab="Scale Free Topology Model Fit,signé R^2 »,type="n »,
main = paste(« indépendance ES_Scale »));
text(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2],
labels=powers,cex=cex1,col="rouge »);
abline(h=0,9,col="rouge »)
plot(sft$fitIndices[,1], sft$fitIndices[,5],
xlab="Soft Threshold (power) »,ylab="Mean Connectivity », type="n »,
main = paste(« connectivité ES_Mean »))
text(sft$fitIndices[,1], sft$fitIndices[,5], labels=powers, cex=cex1,col="red ») »
Cliquez sur Exécuter.
REMARQUE: La prémisse de l’algorithme de réseau de corrélation pondérée est que la structure de réseau de co-expression établie est conforme aux normes du critère de topologie sans échelle, ce qui augmente sa robustesse. Un index sans échelle plus proche de 1 indique une structure de réseau plus proche du réseau sans échelle.
- Sélectionnez la valeur de puissance lorsque l’indice sans échelle R2 est supérieur à 0,9 et passez à l’étape suivante de l’analyse.
REMARQUE : Lorsque l’index sans échelle est proche de 1, la structure du réseau est plus proche du réseau sans échelle. Lors de l’analyse de deux ou plusieurs réseaux, il est nécessaire de choisir de rendre chaque réseau proche de la valeur de puissance du réseau sans échelle pour satisfaire la comparabilité entre les réseaux co-exprimés.
3. Construction d’un réseau de co-expression et identification de module
REMARQUE: Sur la base de la valeur de puissance calculée ci-dessus, le réseau de cooccurrence est construit. Les lignes de commande clés se réfèrent au Supplément S2.
- Utilisez la fonction d’adjacence dans le package WGCNA pour ajouter des paramètres signés pour la construction d’un réseau de cooccurrence symbolique. Exécutez la ligne de commande :
« adjacency = adjacency(datExpr0, power = softPower) »
Cliquez sur Exécuter.
- Appliquer la fonction de similitude TOM pour développer un réseau topologique qui se chevauche et calculer le réseau de dissimilarité. Exécutez la ligne de commande :
« TOM = TOMsimilarité (contiguïté);
dissTOM = 1-TOM »
Cliquez sur Exécuter.
Remarque : Le paramètre signé a été ajouté pour définir le type de réseau de chevauchement de topologie.
- Utilisez la fonction hclust pour sélectionner la méthode de clustering hiérarchique de liaison moyenne pour le clustering hiérarchique. Exécutez la ligne de commande :
« geneTree = hclust(as.dist(dissTOM), méthode = « moyenne »); »
Cliquez sur Exécuter.
- Utilisez la fonction cutreeDynamic pour effectuer une découpe dynamique des branches et définissez le paramètre minClusterSize sur 30. Obtenez le résultat de la reconnaissance du module. Exécutez la ligne de commande :
« dynamicMods = cutreeDynamic(dendro = geneTree, distM = dissTOM, deepSplit = 2, pamRespectsDendro = FALSE, minClusterSize = minModuleSize); »
Cliquez sur Exécuter.
REMARQUE : La taille minimale du module ne peut pas être inférieure à 30.
- Calculez l’eigen de module de chaque module OTUs par la fonction moduleEigengenes. Exécutez la ligne de commande :
« MEList = moduleEigengenes(datExpr0, colors = dynamicColors)
ME = MEList$eigengenes »
Cliquez sur Exécuter.
REMARQUE : Le module eigen représentait le niveau d’expression OTU global dans le module. Il ne s’agissait pas d’un OTU spécifique, mais de la première composante principale de chaque cluster obtenue par décomposition de valeur de réseau singulière.
- Exécuter la fonction de cluster en fonction du coefficient de corrélation du module eigen. Utilisez la fonction mergeCloseModules pour fusionner les modules dont la valeur est inférieure à 0,25. Exécutez la ligne de commande :
« merge = mergeCloseModules(datExpr0, dynamicColors, cutHeight = MEDissThres, verbose = 3) »
Cliquez sur Exécuter.
- Enfin, utilisez la fonction plotDendroAndColors pour la visualisation afin d’obtenir le diagramme d’affichage de l’affectation de module de chaque réseau de co-expression (Figure 2). Utilisez la fonction table pour extraire l’attribution de module correspondant à chaque OTin de la table d’affectation de module. Exécutez la ligne de commande :
« plotDendroAndColors(geneTree, mergedColors, « Merged dynamic »,dendroLabels = FALSE,
hang = 0.03,addGuide = TRUE, guideHang = 0.05,
main = « ES_Gene dendrogramme et couleurs de module ») »
Cliquez sur Exécuter.
REMARQUE : Dans le diagramme d’affectation de module du réseau de co-expression, différentes couleurs représentent différents modules et le gris représente les OTU qui ne peuvent être classés dans aucun module. Un plus grand nombre d’OTU dans le module gris indique que la qualité de prétraitement précoce de la matrice d’expression est médiocre.
4. Comparaison des modules
REMARQUE: Cette méthode peut être utilisée pour comparer les modules de réseau de deux communautés microbiennes écologiques. Dans cet article, comparez les différences de modules de réseau microbien entre l’endosphère et le rhizoplan, l’endosphère et la rhizosphère, la rhizosphère et le rhizoplan.
- Test de conservation
- Chargez les paramètres et les résultats des deux ensembles de données enregistrés dans les étapes précédentes.
- Définissez le résultat de l’affectation du module réseau d’un groupe de données microbiennes comme groupe de référence, tandis que l’autre groupe est le groupe de test.
- Utilisez la fonction modulePreservation pour calculer les valeurs des paramètres statistiques de conservateur Z_summary et medianRank. Exécutez la ligne de commande :
« system.time({mp=modulePreservation(multiExpr,
multiColor,referenceNetworks=1,
nPermutation=100, randomSeed=1,quickCor=0,verbose=3)}) »
Cliquez sur Exécuter.
REMARQUE: Ce résultat peut quantifier la conservateurité entre les modules. Z_summary>10 indique que deux modules sont hautement conservés, tandis que Z_summary<2 désigne des modules non conservés. medianRank exprime la préservation relative du module évalué par classement. Des valeurs medianRank plus élevées indiquent des modules non conservés. (Les lignes de commande clés se réfèrent au Supplément S3.)
- Utilisez la fonction de tracé pour visualiser les résultats (Figure 3). Obtenez les paramètres Z_summary et medianRank (Tableau 1).
REMARQUE: Les modules de réseau qui satisfont à la fois à la valeur Z_summary inférieure à 2 et à la valeur médiane Rank en haut, est le module le plus non préservé dans les deux communautés microbiennes écologiques.
- Basé sur les résultats des deux paramètres statistiques susmentionnés pour identifier le module avec le module le plus hautement non conservé des deux réseaux.
- Analyse de corrélation de l’appartenance au module
- Définir les résultats d’affectation de module des deux réseaux ont été définis comme référence et comme groupe de test, respectivement.
REMARQUE: Les paramètres doivent être les mêmes que le test de préservation.
- Utilisez la fonction corPvalueStudent pour extraire la valeur kME (appartenance au module) de chaque OTU dans plusieurs modules candidats.
Exécutez la ligne de commande :
« Pvalue = as.data.frame(corPvalueStudent(as.matrix
(ModuleAdhésion), Échantillons)) »
Cliquez sur Exécuter.
REMARQUE: kME signifie le degré d’appartenance au module. ME signifie module eigen, qui représente le niveau global d’expression OTU dans le module. kME est le coefficient de corrélation entre chaque OTU et le ME. Quantifier l’importance de l’OTU dans le réseau par la valeur kME de l’OTU. (Les lignes de commande clés se réfèrent au supplément S4.)
- Ensuite, utilisez la fonction verboseScatterplot pour calculer le coefficient de corrélation de la valeur kME des OTU correspondants dans les deux réseaux et dessinez le diagramme d’analyse de corrélation (Figure 4).
Exécutez la ligne de commande :
« verboseScatterplot(abs(TModuleMembership
[TmoduleGenes, Tcolumn]),
abs(NModuleMembership[NmoduleGenes, Ncolumn]),
xlab = paste(« kME in », « ES »),
ylab = paste(« kME in », « RP »),
main = paste(« lightyellow »),
cex.main = 1.7, cex.lab = 1.6, cex.axis = 1.6, col = modulecolor) »
Cliquez sur Exécuter.
- Sélectionnez le module avec le plus petit coefficient de corrélation de la valeur kME de l’OTU des deux réseaux. Considérez ce module comme ayant la plus grande différence des deux réseaux.
5. Analyse du module de réseau différentiel microbien
- Obtenir des données sur le phyla de la bactérie dominante grâce à l’analyse statistique de l’ensemble de séquences OTU du module avec la plus grande différence.
REMARQUE: L’ensemble de séquences OTU du module présentant la plus grande différence est additionné par la taxonomie des phyla. La bactérie dominante phyla représentait plus de 10%.
- Ensuite, utilisez la fonction exportNetworkToCytoscape pour obtenir le fichier contenant les informations de relation d’interaction de l’OTU dans le plus grand module différentiel.
Exécutez la ligne de commande :
« cyt = exportNetworkToCytoscape(modTOM,
edgeFile = paste(« NEW-ES_CytoscapeInput-edges-« , modules , « .txt », sep=" »),
nodeFile = paste(« NEW-ES_CytoscapeInput-nodes-« , modules, « .txt », sep=" »),
pondéré = TRUE,threshold = 0.5, nodeNames = modProbes,
altNodeNames = modGenes, nodeAttr = moduleColors[inModule]) »
Cliquez sur Exécuter.
- Importez le fichier dans Cytoscape. Définissez le seuil sur 0,5 et ajustez d’autres paramètres si nécessaire.
- Construire un réseau de cooccurrence de micro-organismes différentiels (Figure 5).
- Obtention des informations sur le genre central qui a le rôle régulateur le plus important dans le réseau.
REMARQUE: Selon la valeur kME de OUT, le genre de base peut être défini.
- Enfin, les fonctions du genre central ont été évaluées et son influence sur l’ensemble du réseau de différences a été analysée.