$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
1. Pobieranie danych
- Pobierz dane PRJNA386367 akcesyjnego z bazy NCBI. Z danych PRJNA386367 akcesyjnego wybierz dane dotyczące mikrobiomu ryzosfery, ryzopłaszczyzny i endosfery z roślin ryżu uprawianych przez 14 tygodni na zanurzonym polu ryżowym w Arbuckle w Kalifornii w 2014 r.
UWAGA: Dane dotyczące mikrobiomu ryzosfery, ryzopłaszczyzny i endosfery zostały przedstawione w tabeli OTU w PRJNA386367 akcesyjnym.
2. Wyznaczanie optymalnej wartości mocy
UWAGA: Pakiet WGCNA zawiera wszystkie następujące parametry funkcjonalne. WGCNA to pakiet R do ważonej analizy sieci korelacji. Kluczowe wiersze poleceń odnoszą się do suplementu S1.
- W środowisku języka R otwórz oprogramowanie Rstudio i zainstaluj pakiet WGCNA.
- Załaduj dane i użyj funkcji goodSamplesGenes, aby sprawdzić poprawność danych. Wykonaj wiersze poleceń:
"gsg = goodSamplesGenes(datExpr0, verbose = 3)
gsg$allOK "
Kliknij przycisk Uruchom.
- Sprawdź, czy nie ma wartości odstających i przechowuj próbki, które spełniają wymagania. Gdy wynik sprawdzenia jest PRAWDZIWY, przejdź do następnego kroku. Zapisz wynik.
- Funkcja PickSoftThreshold służy do obliczania indeksu bez skalowania R2 dwóch grup danych o różnych wartościach mocy. Wykonaj wiersz poleceń:
"sft = pickSoftThreshold(datExpr0, powerVector = potęgi, pełne = 5)"
Kliknij przycisk Uruchom.
- Wizualizacja wyników (Rysunek 1). Wykonaj wiersz poleceń:
"plot(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2],
xlab="Miękki próg (moc)",ylab="Dopasowanie modelu topologii bez skalowania,podpisane R^2",type="n",
main = paste("ES_Scale niezależność"));
text(sft$fitIndeksy[,1], -sign(sft$fitIndeksy[,3])*sft$fitIndeksy[,2],
labels=moce,cex=cex1,col="czerwony");
abline(h=0.9,col="czerwony")
plot(sft$fitIndeksy[,1], sft$fitIndeksy[,5];
xlab="Miękki próg (moc)",ylab="Średnia łączność", type="n",
main = paste("ES_Mean łączność"))
text(sft$fitIndices[,1], sft$fitIndices[,5], labels=powers, cex=cex1,col="red")"
Kliknij Uruchom.
UWAGA: Założeniem algorytmu sieci korelacji ważonej jest to, że ustalona struktura sieci współwyrażeń jest zgodna ze standardami kryterium topologii bezskalowej, co zwiększa jej niezawodność. Indeks bez skalowania bliższy 1 wskazuje strukturę sieci, która jest bliższa sieci bez skalowania.
- Wybierz wartość mocy, gdy wskaźnik bezskalowy R2 do kwadratu jest większy niż 0,9 i przejdź do następnego kroku analizy.
UWAGA: Gdy indeks bez skalowania jest bliski 1, struktura sieci jest bliższa sieci bez skalowania. Analizując dwie lub więcej sieci, konieczne jest podjęcie decyzji, aby każda sieć była zbliżona do wartości mocy sieci bezskalowej, aby zapewnić porównywalność między sieciami o współwyrażanej wartości.
3. Budowa sieci współekspresji i identyfikacja modułu
UWAGA: Na podstawie powyższej obliczonej wartości mocy, budowana jest sieć współwystępowania. Kluczowe wiersze poleceń odnoszą się do suplementu S2.
- Użyj funkcji sąsiedztwa w pakiecie WGCNA, aby dodać podpisane parametry do budowy symbolicznej sieci współwystępowania. Wykonaj wiersz poleceń:
"sąsiedztwo = sąsiedztwo(datExpr0, moc = miękkaMoc)"
Kliknij przycisk Uruchom.
- Zastosuj funkcję podobieństwa TOM, aby opracować topologiczną sieć nakładającą się i obliczyć sieć odmienności. Wykonaj wiersz poleceń:
"TOM = TOMpodobieństwo(sąsiedztwo);
dissTOM = 1-TOM"
Kliknij Uruchom.
UWAGA: Parametr signed został dodany w celu ustawienia typu sieci nakładającej się topologii.
- Użyj funkcji hclust, aby wybrać metodę grupowania hierarchicznego średniego powiązania dla grupowania hierarchicznego. Wykonaj wiersz poleceń:
"geneTree = hclust(as.dist(dissTOM), metoda = "średnia"); "
Kliknij przycisk Uruchom.
- Użyj funkcji cutreeDynamic, aby wykonać dynamiczne wycinanie gałęzi i ustaw parametr minClusterSize na wartość 30. Uzyskaj wynik rozpoznawania modułu. Wykonaj wiersz poleceń:
"dynamicMods = cutreeDynamic(dendro = geneTree, distM = dissTOM, deepSplit = 2, pamRespectsDendro = FALSE, minClusterSize = minModuleSize); "
Kliknij Uruchom.
UWAGA: Minimalny rozmiar modułu nie może być mniejszy niż 30.
- Oblicz wartość własną każdego modułu OTU za pomocą funkcji modułuEigengenes. Wykonaj wiersz poleceń:
"MEList = moduleEigengenes(datExpr0, colors = dynamicColors)
MEs = MEList$eigengenes"
Kliknij Uruchom.
UWAGA: Eigen modułu reprezentował ogólny poziom ekspresji OTU w module. Nie była to konkretna OTU, ale pierwszy główny składnik każdego klastra uzyskany w wyniku pojedynczej dekompozycji wartości sieciowej.
- Wykonaj funkcję klastra na podstawie współczynnika korelacji modułu własnego. Użyj funkcji mergeCloseModules, aby scalić moduły o wartości mniejszej niż 0,25. Wykonaj wiersz poleceń:
"merge = mergeCloseModules(datExpr0, dynamicColors, cutHeight = MEDissThres, verbose = 3)"
Kliknij przycisk Uruchom.
- Na koniec użyj funkcji plotDendroAndColors do wizualizacji, aby uzyskać diagram wyświetlania przypisania modułów dla każdej sieci współwyrażeń (Rysunek 2). Użyj funkcji tabeli, aby wyodrębnić atrybucję modułu odpowiadającą każdemu OT w tabeli przypisania modułu. Wykonaj wiersz poleceń:
"plotDendroAndColors(geneTree, mergedColors, "Scalony dynamiczny",dendroLabels = FALSE,
hang = 0,03,addGuide = TRUE, guideHang = 0,05,
main = "ES_Gene kolory dendrogramu i modułów")"
Kliknij Uruchom.
UWAGA: Na diagramie przypisania modułów sieci współwyrażającej różne kolory reprezentują różne moduły, a szary reprezentuje OTU, których nie można zaklasyfikować do żadnego modułu. Większa liczba OTU w szarym module wskazuje, że jakość wstępnego przetwarzania matrycy wyrażeń na wczesnym etapie jest niska.
4. Porównanie modułów
UWAGA: Ta metoda może być użyta do porównania modułów sieciowych dwóch ekologicznych społeczności mikroorganizmów. W tym artykule porównano różnice modułów sieci mikrobiologicznej między endosferą a ryzopłaszczyzną, endosferą a ryzosferą, ryzosferą i ryzopłaszczyzną.
- Test konserwujący
- Załaduj parametry i wyniki dwóch zestawów danych zapisanych w poprzednich krokach.
- Ustaw wynik przypisania modułu sieciowego grupy danych mikrobiologicznych jako grupę odniesienia, a drugą grupę jako grupę testową.
- Funkcja modulePreservation służy do obliczania wartości parametrów statystycznych konserwatywności Z_summary i medianRank. Wykonaj wiersz poleceń:
"system.time({mp=modulePreservation(multiExpr,
multiColor,referenceNetworks=1,
nPermutation=100, randomSeed=1,quickCor=0,verbose=3)})"
Kliknij Uruchom.
UWAGA: Ten wynik może określić ilościowo konserwatywność między modułami. Z_summary>10 oznacza, że dwa moduły są wysoce zachowane, podczas gdy Z_summary<2 oznacza moduły niezachowane. medianRank wyraża względne zachowanie modułu ocenianego przez klasyfikację. Wyższe wartości medianRank oznaczają niezachowane moduły. (Kluczowe wiersze poleceń odnoszą się do Suplementu S3.)
- Użyj funkcji wykresu, aby zwizualizować wyniki (Rysunek 3). Pobierz parametry Z_summary i medianRank (tabela 1).
UWAGA: Moduły sieciowe, które spełniają zarówno wartość Z_summary mniejszą niż 2, jak i medianę wartości rangi na górze, są najbardziej niezachowanymi modułami w dwóch ekologicznych zbiorowiskach mikroorganizmów.
- Na podstawie wyników wyżej wymienionych dwóch parametrów statystycznych w celu zidentyfikowania modułu z najbardziej niezachowanym modułem z dwóch sieci.
- Analiza korelacji członkostwa w module
- Ustaw wyniki przypisania modułów dwóch sieci, które zostały ustawione odpowiednio jako odniesienie i grupa testowa.
UWAGA: Ustawienia muszą być takie same jak w teście konserwacji.
- Użyj funkcji corPvalueStudent, aby wyodrębnić wartość kME (członkostwo w module) dla każdego OTU w kilku modułach kandydujących.
Wykonaj wiersz poleceń:
"Pvalue = as.data.frame(corPvalueStudent(as.matrix
(ModuleMembership), próbki))"
Kliknij Uruchom.
UWAGA: kME oznacza stopień członkostwa w module. ME oznacza moduł eigen, który reprezentuje ogólny poziom ekspresji OTU w module. kME jest współczynnikiem korelacji między każdą OTU a ME. Określ ilościowo znaczenie OTU w sieci na podstawie wartości kME OTU. (Kluczowe wiersze poleceń odnoszą się do Suplementu S4.)
- Następnie użyj funkcji verboseScatterplot, aby obliczyć współczynnik korelacji wartości kME odpowiednich OTU w dwóch sieciach i narysuj diagram analizy korelacji (Rysunek 4).
Wykonaj wiersz poleceń:
"verboseScatterplot(abs(TModuleMembership
[TmoduleGenes, Tcolumn]),
abs(NModuleMembership[NmoduleGenes, Ncolumn]),
xlab = paste("kME in", "ES"),
ylab = paste("kME in", "RP"),
main = paste("jasnożółty"),
cex.main = 1.7, cex.lab = 1.6, cex.axis = 1.6, col = modulecolor)"
Kliknij przycisk Uruchom.
- Wybierz moduł o najmniejszym współczynniku korelacji wartości kME OTU obu sieci. Weź pod uwagę, że ten moduł ma największą różnicę z tych dwóch sieci.
5. Analiza modułu mikrobiologicznej sieci różnicowej
- Uzyskaj dane dotyczące dominującej gromady bakterii poprzez analizę statystyczną zestawu sekwencji OTU modułu o największej różnicy.
UWAGA: Zestaw sekwencji OTU modułu z największą różnicą jest sumowany przez taksonomię gromady. Dominująca gromada bakterii stanowiła ponad 10%.
- Następnie należy użyć funkcji exportNetworkToCytoscape, aby uzyskać plik zawierający informacje o relacji interakcji OTU w największym module różnicowym.
Wykonaj wiersz poleceń:
"cyt = exportNetworkToCytoscape(modTOM,
edgeFile = paste("NOWY-ES_CytoscapeInput-krawędzie-", moduły , ".txt", sep=""),
nodeFile = paste("NOWY-ES_CytoscapeInput-węzły-", moduły, ".txt", sep=""),
weighted = TRUE, threshold = 0.5, nodeNames = modProbes,
altNodeNames = modGenes, nodeAttr = moduleColors[wModule])"
Kliknij przycisk Uruchom.
- Zaimportuj plik do Cytoscape. Ustaw próg na 0,5 i dostosuj inne parametry zgodnie z potrzebami.
- Skonstruuj sieć współwystępowania mikroorganizmów różnicowych (Rysunek 5).
- Uzyskano informacje o podstawowym rodzaju, który pełni najważniejszą rolę regulacyjną w sieci.
UWAGA: Zgodnie z wartością kME OUT można zdefiniować rdzeń rodzaju.
- Na koniec oceniono funkcje rodzaju rdzeniowego i przeanalizowano jego wpływ na całą sieć różnic.