1. Przygotowanie
- Zainstaluj program R, jeśli nie jest jeszcze zainstalowany.
UWAGA: Program PAST został napisany w języku R, w związku z czym wymaga zainstalowania R u użytkownika. W momencie sporządzania tego tekstu instalacja PAST bezpośrednio z Bioconductor wymaga wersji R4.0. Starsze wersje PAST można zainstalować z Bioconductor dla R3.6, a użytkownicy posiadający R3.5 mogą zainstalować PAST z serwisu Github. Instrukcje instalacji R można pobrać z następującego linku: https://www.r-project.org/.
- Zainstaluj najnowszą wersję RStudio Desktop lub zaktualizuj RStudio (opcjonalnie).
UWAGA: RStudio jest pomocnym środowiskiem do pracy z językiem R. Jego instalacja jest zalecana, zwłaszcza osobom, które decydują się na uruchamianie PAST w wierszu poleceń zamiast poprzez aplikację z interfejsem graficznym Shiny GUI. RStudio oraz instrukcje jego instalacji znajdują się pod następującym linkiem: https://rstudio.com/products/rstudio/.
- Zainstaluj PAST z Bioconductor11, postępując zgodnie z instrukcjami zamieszczonymi w Bioconductor.
UWAGA: Instalacja za pośrednictwem Bioconductor powinna automatycznie obsłużyć instalację zależności programu PAST. Dodatkowo PAST można zainstalować z Github12, jednak instalacja z Github nie zainstaluje automatycznie zależności.
- Zainstaluj PAST Shiny (opcjonalnie). Pobierz plik „app.R” ze strony Releases repozytorium Github: https://github.com/IGBB/PAST/releases/ i zapamiętaj lokalizację pobranego pliku.
UWAGA: Z PAST można korzystać, wywołując jego metody bezpośrednio w R, jednak użytkownicy mniej zaznajomieni z tym językiem mogą uruchomić aplikację PAST Shiny, która zapewnia prowadzony interfejs użytkownika. PAST Shiny to skrypt R dostępny w gałęzi shiny_app repozytorium PAST na Githubie. PAST Shiny spróbuje zainstalować swoje zależności podczas pierwszego uruchomienia.
- Rozpocznij analizę, uruchamiając aplikację w jeden z trzech opisanych poniżej sposobów.
- PAST Shiny z RStudio
- Używając RStudio, utwórz nowy projekt w folderze, w którym znajduje się plik app.R. Kliknij File | New Project i wybierz ten folder.
- Po utworzeniu nowego projektu otwórz wcześniej pobrany plik app.R. RStudio rozpozna, że app.R jest aplikacją Shiny i utworzy przycisk Run App na pasku nad wyświetlanym kodem źródłowym. Kliknij Run App. RStudio uruchomi wówczas okno wyświetlające aplikację PAST Shiny.
- PAST Shiny z konsolą R
- Uruchom R i wykonaj następujący kod, aby uruchomić aplikację PAST Shiny: shiny::runApp('ścieżka/do/foldera/z/shiny/app.R'. Zastąp tekst w cudzysłowie ścieżką do folderu, do którego pobrano plik app.R, zachowując cudzysłowy.
- PAST bez R Shiny
- Uruchom library(PAST) w konsoli R, aby załadować PAST.
2. Dostosowanie analizy w Shiny (opcjonalnie)
- Zmień tytuł analizy z „New Analysis” na taki, który lepiej odzwierciedla przeprowadzany rodzaj analizy, co ułatwia monitorowanie wielu analiz (patrz Rycina 1).

Rycina 1. Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.
- Zmodyfikuj liczbę rdzeni oraz tryb. Ustaw liczbę rdzeni na dowolną wartość od 1 do całkowitej liczby rdzeni w maszynie, jednak pamiętaj, że przeznaczenie większej liczby zasobów dla PAST może spowolnić inne operacje na maszynie. Ustaw tryb zgodnie z opisem w sekcji 6.
3. Wczytywanie danych GWAS
UWAGA: Należy zweryfikować, czy dane GWAS są rozdzielone tabulatorami. Upewnij się, że plik asocjacji zawiera następujące kolumny: cecha, nazwa markera, locus lub chromosom, pozycja na chromosomie, wartość p oraz wartość R2 dla markera. Upewnij się, że plik efektów zawiera następujące kolumny: cecha, nazwa markera, locus lub chromosom, pozycja na chromosomie oraz efekt. Kolejność tych kolumn nie jest istotna, ponieważ użytkownik może określić nazwy kolumn podczas ładowania danych. Wszelkie dodatkowe kolumny są ignorowane. Do wygenerowania tych plików można użyć programu TASSEL13.
- Wczytaj dane GWAS za pomocą PAST Shiny.
- Wybierz plik asocjacji oraz plik efektów, korzystając z pól wyboru Association File oraz Effects File. Zmień nazwy kolumn w polach wprowadzania Association Column Name oraz Effects Columns Name znajdujących się poniżej pól wyboru plików, aby odpowiadały nazwom kolumn w danych.

Rysunek 2. Kliknij tutaj, aby wyświetlić powiększoną wersję tego rysunku.
- Wczytaj dane GWAS za pomocą PAST w konsoli R.
- Zmodyfikuj i uruchom następujący kod:
gwas_data = load_GWAS_data("path/to/association_file.tsv", "path/to/effects_file.tsv", association_columns = c("Trait", "Marker", "Locus", "Site", "p", "marker_R2"), effects_columns = c("Trait", "Marker", "Locus", "Site", "Effect")
- UWAGA: Zmień ścieżki na faktyczne lokalizacje plików GWAS. Wartości podane dla association_columns i effects_columns są wartościami domyślnymi. Jeśli nazwy nie zgadzają się z wartościami domyślnymi, należy określić nazwy kolumn. W przeciwnym razie można je pominąć.
4. Wczytywanie danych o nierównowadze sprzężeń (LD)
UWAGA: Należy zweryfikować, czy dane dotyczące nierównowagi sprzężeń (LD) są rozdzielone tabulatorami i zawierają następujące typy danych: Locus, Position1, Site1, Position2, Site2, odległość w parach zasad między Position1 a Position2 oraz wartość R2.
- Wczytaj dane LD za pomocą PAST Shiny.
- Wybierz plik zawierający dane LD. W razie potrzeby zmień nazwy kolumn w polach wprowadzania LD Column Names poniżej pola wyboru pliku, aby odpowiadały one nazwom kolumn w danych LD.

Rysunek 3. Kliknij tutaj, aby wyświetlić powiększoną wersję tego rysunku.
- Wczytaj dane LD za pomocą PAST w konsoli R.
- Zmodyfikuj i uruchom poniższy kod, aby wczytać dane LD:
LD = load_LD("path/to/LD.tsv", LD_columns = c("Locus1", "Position1", "Site1", "Position2", "Site2", "Dist_bp", "R.2")
UWAGA: Zmień ścieżkę na faktyczną lokalizację pliku LD. Wartości podane dla LD_columns są wartościami domyślnymi. Jeśli nazwy nie zgadzają się z tymi domyślnymi, określ poprawne nazwy kolumn; w przeciwnym razie można je pominąć.
5. Przypisanie SNP do genów
UWAGA: Pobierz lub w inny sposób zlokalizuj adnotacje w formacie GFF. Adnotacje te często można znaleźć w bazach danych online dla konkretnych organizmów. Należy zachować ostrożność w przypadku adnotacji niskiej jakości, ponieważ jakość danych adnotacyjnych wpłynie na jakość analizy szlaków. Upewnij się, że pierwsza kolumna tych adnotacji (chromosom) odpowiada formatowi locus/chromosomu w danych dotyczących asocjacji, efektów i LD. Na przykład adnotacje nie powinny określać pierwszego chromosomu jako "chr1", jeśli pliki danych GWAS i LD określają pierwszy chromosom jako "1".
- Przypisz SNP do genów za pomocą PAST Shiny.
UWAGA: Więcej informacji na temat określania odpowiedniego progu R2 można znaleźć w pracy Tang et al.6, w sekcji zatytułowanej "SNP to gene algorithm for the pathway analysis".
- Wybierz plik zawierający adnotacje GFF. Rozważ, jaka wielkość okna oraz próg R2 są najodpowiedniejsze dla analizowanego gatunku i zmodyfikuj je, jeśli wartości domyślne nie są odpowiednie dla przesłanych danych.
UWAGA: Wartości domyślne w PAST odzwierciedlają przede wszystkim wartości odpowiednie dla kukurydzy. Liczba rdzeni ustawiona na początku analizy w PAST Shiny (Krok 2.2) jest wykorzystywana w tym etapie.

Rycina 4. Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.
- Przypisz SNP do genów za pomocą PAST w konsoli R.
- Zmodyfikuj i uruchom poniższy kod, aby przypisać SNP do genów:
genes = assign_SNPs_to_genes(gwas_data, LD, "path/to/annotations.gff", c("gene"), 1000, 0.8, 2)
UWAGA: W tym przykładowym kodzie podano kilka domyślnych sugerowanych wartości: 1000 to rozmiar okna wokół SNP w którym wyszukiwane są geny; 0.8 to wartość odcięcia dla R2; 2 to liczba rdzeni wykorzystanych do przetwarzania równoległego. Ścieżkę do adnotacji należy również zmienić na faktyczną lokalizację pliku z adnotacjami.
6. Identyfikacja istotnych szlaków
UWAGA: Należy zweryfikować, czy plik ze ścieżkami zawiera następujące dane w formacie rozdzielanym tabulatorami, z jedną linią dla każdego genu w każdej ścieżce: ID ścieżki – identyfikator taki jak „PWY-6475-1”; opis ścieżki – bardziej szczegółowy opis funkcji ścieżki, np. „biosynteza trans-likopenu”; gen – gen w obrębie ścieżki, który powinien odpowiadać nazwom podanym w adnotacjach. Informacje o ścieżkach można prawdopodobnie znaleźć w bazach danych online dla konkretnych organizmów, takich jak MaizeGDB. Drugą opcją określaną przez użytkownika jest tryb. „Increasing” (rosnący) odnosi się do fenotypów, w których pożądana jest wyższa wartość mierzonej cechy, np. plon, natomiast „decreasing” (malejący) odnosi się do cechy, w której korzystny jest spadek wartości mierzonych, np. oceny uszkodzeń spowodowanych przez owady. Istotność ścieżek jest testowana przy użyciu wcześniej opisanych metod4,6,14.
- Odkryj istotne szlaki za pomocą PAST Shiny.
- Wybierz plik zawierający dane o szlakach i upewnij się, że w opcjach analizy wybrany jest odpowiedni tryb. W razie potrzeby zmień liczbę genów, które muszą znajdować się w szlaku, aby został on zachowany do analizy, oraz liczbę permutacji wykorzystanych do utworzenia rozkładu zerowego w celu przetestowania istotności efektu.

Rycina 5. Kliknij tutaj, aby wyświetlić większą wersję tej ryciny.
UWAGA: W tym kroku wykorzystywana jest liczba rdzeni oraz tryb ustawione na początku analizy PAST Shiny (krok 2.2). Domyślna liczba genów jest obecnie ustawiona na 5 genów, zatem szlaki zawierające mniej znanych genów zostaną usunięte. Użytkownik może obniżyć tę wartość do 4 lub 3, aby uwzględnić krótsze szlaki, jednak wiąże się to z ryzykiem uzyskania wyników fałszywie dodatnich. Zwiększenie tej wartości może zwiększyć moc analizy, ale spowoduje usunięcie większej liczby szlaków z analizy. Zmiana liczby użytych permutacji zwiększa lub zmniejsza moc testu.
- Wykryj istotne ścieżki za pomocą PAST w konsoli R.
- Zmodyfikuj i uruchom poniższy kod, aby wykryć istotne ścieżki:
rugplots_data <- find_pathway_significance(genes, "path/to/pathways.tsv", 5, "increasing", 1000, 2)
UWAGA: W tym przykładowym kodzie podano kilka sugerowanych wartości domyślnych. 5 to minimalna liczba genów, które muszą znajdować się w ścieżce, aby została ona utrzymana w analizie; „increasing” odnosi się do zwiększającej się wartości mierzonej cechy (zaleca się, aby użytkownik uruchomił analizę zarówno dla „increasing”, jak i „decreasing”, niezależnie od cechy; interpretacja danych będzie się jednak różnić dla obu wariantów); 1000 to liczba próbkowania efektów w celu wyznaczenia rozkładu zerowego, a 2 to liczba rdzeni wykorzystywanych do przetwarzania równoległego. Zmień ścieżkę na rzeczywistą lokalizację pliku ze ścieżkami.
7. Wyświetlanie wykresów dywanowych (Rugplots)
- Wyświetlanie wykresów Rugplots w PAST Shiny.
- Po przesłaniu wszystkich danych wejściowych i ich ustawieniu kliknij Begin Analysis. Pojawi się pasek postępu wskazujący ostatni ukończony etap analizy. Po zakończeniu analizy PAST Shiny przełączy się na zakładkę Results. Tabela wyników zostanie wyświetlona w lewej kolumnie (oznaczonej jako "pathways"), a wykresy Rugplots zostaną wyświetlone w prawej kolumnie (oznaczonej jako "plots").
- Użyj suwaka do kontrolowania parametrów filtrowania. Gdy poziom filtrowania będzie satysfakcjonujący, kliknij przycisk Download Results w lewym dolnym rogu, aby pobrać wszystkie obrazy i tabele pojedynczo do pliku ZIP nazwanego tytułem analizy. Ten plik ZIP zawiera tabelę przefiltrowaną, tabelę nieprzefiltrowaną oraz jeden obraz dla każdej ścieżki z tabeli przefiltrowanej.

Rycina 6. Kliknij tutaj, aby wyświetlić większą wersję tej ryciny.

Rycina 7. Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.
- Wyświetlanie wykresów rugplot za pomocą PAST w konsoli R
- Zmodyfikuj i uruchom poniższy kod, aby zapisać wyniki:
plot_pathways(rugplots_data, "pvalue", 0.02, "increasing", "output_folder")
UWAGA: W tym przykładowym kodzie podano kilka sugerowanych wartości domyślnych. pvalue dostarcza dane, które mogą zostać wykorzystane do filtrowania nieistotnych szlaków po wybraniu przez użytkownika progu istotności; 0.02 to domyślna wartość stosowana w filtrowaniu, a increasing odnosi się do zwiększającej się wartości mierzonej cechy (zaleca się, aby użytkownik uruchomił analizę zarówno dla wartości rosnących, jak i malejących, niezależnie od cechy; jednak interpretacja danych będzie się dla nich różnić); output_folder to folder, w którym zostaną zapisane obrazy i tabele (folder ten musi istnieć przed uruchomieniem funkcji). Do tego folderu zapisywana jest tabela przefiltrowanych wyników, wyniki nieprzefiltrowane oraz pojedyncze obrazy dla każdego szlaku z wyników przefiltrowanych.