Artykuł metodologiczny

Eksploracja fraz w chmurze i analiza zdefiniowanych przez użytkownika powiązań frazo-kategoria w publikacjach biomedycznych

10.9K wyświetleń

DOI:

10.3791/59108

23 lutego 2019

* These authors contributed equally

W tym artykule

Podsumowanie

Prezentujemy protokół i związany z nim kod programistyczny, a także próbki metadanych, aby wspierać opartą na chmurze automatyczną identyfikację skojarzenia fraz i kategorii reprezentujących unikalne koncepcje w wybranej przez użytkownika dziedzinie wiedzy w literaturze biomedycznej. Powiązanie frazy-kategorii określone ilościowo przez ten protokół może ułatwić dogłębną analizę w wybranej dziedzinie wiedzy.

Streszczenie

Szybkie gromadzenie danych tekstowych biomedycznych znacznie przekroczyło ludzkie możliwości manualnego zarządzania i analizy, co wymagało nowych narzędzi do eksploracji tekstu w celu wydobycia biologicznych spostrzeżeń z dużych ilości raportów naukowych. Opracowany w 2016 r. potok Context-aware Semantic Online Analytical Processing (CaseOLAP) z powodzeniem kwantyfikuje zdefiniowane przez użytkownika relacje fraza-kategoria poprzez analizę danych tekstowych. CaseOLAP ma wiele zastosowań biomedycznych.

Opracowaliśmy protokół dla środowiska opartego na chmurze, obsługującego platformę end-to-end do eksploracji fraz i analiz. Nasz protokół obejmuje wstępne przetwarzanie danych (np. pobieranie, wyodrębnianie i analizowanie dokumentów tekstowych), indeksowanie i wyszukiwanie za pomocą Elasticsearch, tworzenie funkcjonalnej struktury dokumentu o nazwie Text-Cube oraz kwantyfikację relacji fraza-kategoria przy użyciu podstawowego algorytmu CaseOLAP.

Nasze wstępne przetwarzanie danych generuje mapowania klucz-wartość dla wszystkich zaangażowanych dokumentów. Wstępnie przetworzone dane są indeksowane w celu przeprowadzenia wyszukiwania dokumentów, w tym encji, co dodatkowo ułatwia tworzenie Text-Cube i obliczanie punktacji CaseOLAP. Uzyskane surowe wyniki CaseOLAP są interpretowane przy użyciu serii analiz integracyjnych, w tym redukcji wymiarowości, grupowania, analiz czasowych i geograficznych. Dodatkowo wyniki CaseOLAP są wykorzystywane do tworzenia graficznej bazy danych, która umożliwia mapowanie semantyczne dokumentów.

CaseOLAP definiuje relacje fraza-kategoria w sposób dokładny (identyfikuje relacje), spójny (wysoce powtarzalny) i wydajny (przetwarza 100 000 słów na sekundę). Korzystając z tego protokołu, użytkownicy mogą uzyskać dostęp do środowiska przetwarzania w chmurze w celu obsługi własnych konfiguracji i aplikacji CaseOLAP. Platforma ta oferuje zwiększoną dostępność i umożliwia społeczności biomedycznej narzędzia do wyszukiwania fraz dla szeroko rozpowszechnionych zastosowań badań biomedycznych.

Wprowadzenie

Ręczna ocena milionów plików tekstowych do badania asocjacji fraza-kategoria (np. Związek grupy wiekowej z białkiem) jest nieporównywalna z wydajnością zapewnianą przez zautomatyzowaną metodę obliczeniową. Chcemy wprowadzić opartą na chmurze platformę Context-aware Semantic Online Analytical Processing (CaseOLAP) jako metodę eksploracji fraz do automatycznego obliczania powiązań fraz z kategoriami w kontekście biomedycznym.

Platforma CaseOLAP, która została po raz pierwszy zdefiniowana w 2016 roku1, jest bardzo wydajna w porównaniu z tradycyjnymi metodami zarządzania danymi i obliczeniami ze względu na funkcjonalne zarządzanie dokumentami o nazwie Text-Cube2,3,4, która dystrybuuje dokumenty przy zachowaniu podstawowej hierarchii i sąsiedztwa. Został on zastosowany w badaniach biomedycznych5 do badania związku między jednostką a kategorią. Platforma CaseOLAP składa się z sześciu głównych kroków, w tym pobierania i wyodrębniania danych, analizowania, indeksowania, tworzenia Text-Cube, liczenia encji i obliczania wyniku CaseOLAP; który jest głównym celem protokołu (rys. 1, rys. 2, tabela 1).

Aby zaimplementować algorytm CaseOLAP, użytkownik ustawia kategorie zainteresowań (np. choroba, oznaki i objawy, grupy wiekowe, diagnoza) oraz jednostki zainteresowania (np. białka, leki). Jednym z przykładów kategorii uwzględnionej w tym artykule są "Grupy wiekowe", które mają podkategorie "niemowlę", "dziecko", "młodzież" i "dorosły" jako komórki modułu tekstowego oraz nazwy białek (synonimy) i skróty jako jednostki. Hasła Tematyki Medycznej (MeSH) są implementowane w celu wyszukiwania publikacji odpowiadających zdefiniowanym kategoriom (Tabela 2). Deskryptory MeSH są zorganizowane w hierarchiczną strukturę drzewa, aby umożliwić wyszukiwanie publikacji o różnych poziomach szczegółowości (przykład pokazany na rysunku 3). Platforma CaseOLAP wykorzystuje funkcję indeksowania i wyszukiwania danych do selekcji dokumentów powiązanych z jednostką, co dodatkowo ułatwia mapowanie liczby dokumentów do encji i obliczanie punktacji CaseOLAP.

Szczegóły obliczenia wyniku CaseOLAP są dostępne w poprzednich publikacjach1,5. Ten wynik jest obliczany przy użyciu określonych kryteriów klasyfikacji opartych na podstawowej strukturze dokumentu Text-Cube. Ostateczny wynik jest iloczynem uczciwości, popularności i odrębności. Integralność opisuje, czy jednostka reprezentująca jest integralną jednostką semantyczną, która zbiorczo odnosi się do znaczącego pojęcia. Przyjmuje się, że integralność frazy zdefiniowanej przez użytkownika wynosi 1,0, ponieważ jest to standardowa fraza w literaturze. Odróżnialność reprezentuje względne znaczenie frazy w jednym podzbiorze dokumentów w porównaniu z pozostałymi komórkami. Najpierw oblicza znaczenie jednostki dla określonej komórki, porównując występowanie nazwy białka w docelowym zestawie danych i zapewnia znormalizowany wynik odrębności. Popularność oznacza fakt, że fraza o wyższym wyniku popularności pojawia się częściej w jednym podzbiorze dokumentów. Rzadkie nazwy białek w komórce są klasyfikowane nisko, podczas gdy wzrost częstotliwości ich wspominania ma malejący zwrot ze względu na implementację logarytmicznej funkcji częstotliwości. Ilościowe mierzenie tych trzech pojęć zależy od (1) częstotliwości trwania encji w komórce i między komórkami oraz (2) liczby dokumentów mających tę jednostkę (częstotliwość dokumentów) w komórce i między komórkami.

Przeanalizowaliśmy dwa reprezentatywne scenariusze, korzystając z zestawu danych PubMed i naszego algorytmu. Interesuje nas, w jaki sposób białka mitochondrialne są powiązane z dwiema unikalnymi kategoriami deskryptorów MeSH; "Grupy wiekowe" oraz "Choroby żywieniowe i metaboliczne". W szczególności pobraliśmy 15 728 250 publikacji z 20 lat publikacji zebranych przez PubMed (1998 do 2018), wśród nich 8 123 458 unikalnych abstraktów miało pełne deskryptory MeSH. W związku z tym systematycznie bada się 1842 nazwy ludzkich białek mitochondrialnych (w tym skróty i synonimy), uzyskane z UniProt (uniprot.org), a także z MitoCarta2.0 (http://mitominer.mrc-mbu.cam.ac.uk/release-4.0/begin.do>). Ich powiązania z tymi 8 899 019 publikacjami i podmiotami zostały zbadane przy użyciu naszego protokołu; skonstruowaliśmy Text-Cube i obliczyliśmy odpowiednie wyniki CaseOLAP.

Protokół

UWAGA: Opracowaliśmy ten protokół w oparciu o język programowania Python. Aby uruchomić ten program, należy mieć wstępnie zainstalowane programy Anaconda Python i Git na urządzeniu. Polecenia zawarte w tym protokole są oparte na środowisku Unix. Protokół ten zawiera szczegółowe informacje na temat pobierania danych z bazy danych PubMed (MEDLINE), analizowania danych i konfigurowania platformy przetwarzania w chmurze do wyszukiwania fraz i kwantyfikacji zdefiniowanego przez użytkownika powiązania jednostki z kategorią.

1.Konfiguracja kodu i środowiska Python

  1. Pobierz lub sklonuj repozytorium kodu z Github (https://github.com/CaseOLAP/caseolap) lub wpisując "git clone https://github.com/CaseOLAP/caseolap.git" w oknie terminala.
  2. Przejdź do katalogu 'caseolap'. Jest to katalog główny projektu. W tym katalogu katalog "data" będzie wypełniany wieloma zestawami danych w miarę przechodzenia przez te kroki w protokole. Katalog 'input' jest przeznaczony dla danych dostarczonych przez użytkownika. Katalog 'log' zawiera pliki dziennika do rozwiązywania problemów. Katalog "wynik" to miejsce, w którym będą przechowywane końcowe wyniki.
  3. Korzystając z okna terminala, przejdź do katalogu, w którym sklonowałeś nasze repozytorium GitHub. Utwórz środowisko CaseOLAP przy użyciu pliku "environment.yml", wpisując "conda env create -f environment.yaml" w terminalu. Następnie aktywuj środowisko, wpisując w terminalu "source activate caseolap".

2. Pobieranie dokumentów

  1. Upewnij się, że adres FTP w "ftp_configuration.json" w katalogu konfiguracyjnym jest taki sam, jak adres linku do rocznego planu bazowego lub dziennej aktualizacji, znajdujący się w linku (https://www.nlm.nih.gov/databases/download/pubmed_medline.html).
  2. Aby pobrać tylko wersję bazową lub tylko pliki aktualizacji, ustaw wartość "true" w pliku "download_config.json" w katalogu "config". Domyślnie pobiera i wyodrębnia zarówno pliki bazowe, jak i pliki aktualizacji. Próbkę wyodrębnionych danych XML można wyświetlić pod adresem (https://github.com/CaseOLAP/caseolap-pipelines/blob/master/data/extracted-data-sample.xml)
  3. Wpisz "python run_download.py" w oknie terminala, aby pobrać abstrakty z bazy danych Pubmed. Spowoduje to utworzenie katalogu o nazwie "ftp.ncbi.nlm.nih.gov" w bieżącym katalogu. Ten proces sprawdza integralność pobranych danych i wyodrębnia je do katalogu docelowego.
  4. Przejdź do katalogu "log", aby przeczytać komunikaty dziennika w "download_log.txt" na wypadek, gdyby proces pobierania się nie powiódł. Jeśli proces zostanie zakończony pomyślnie, komunikaty debugowania procesu pobierania zostaną wydrukowane w tym pliku dziennika.
  5. Po zakończeniu pobierania przejdź przez "ftp.ncbi.nlm.nih.gov", aby upewnić się, że w "download_config.json" znajdują się "updatefiles" lub "basefiles" lub oba katalogi w oparciu o konfigurację pobierania. Statystyki pliku stają się dostępne pod adresem 'filestat.txt' w katalogu 'data'.

3. Analizowanie dokumentów

  1. Upewnij się, że pobrane i wyodrębnione dane są dostępne w katalogu "ftp.ncbi.nlm.nih.gov" z kroku 2. Ten katalog jest katalogiem danych wejściowych w tym kroku.
  2. Aby zmodyfikować schemat parsowania danych, wybierz parametry w pliku "parsing_config.json" w katalogu "config", ustawiając ich wartość na "true". Domyślnie analizuje identyfikator PMID, autorów, streszczenie, MeSH, lokalizację, czasopismo, datę publikacji.
  3. Wpisz "python run_parsing.py" w terminalu, aby przeanalizować dokumenty z pobranych (lub wyodrębnionych) plików. Ten krok analizuje wszystkie pobrane pliki XML i tworzy słownik Pythona dla każdego dokumentu z kluczami (np. PMID, authors, abstract, MeSH pliku na podstawie konfiguracji schematu parsowania w kroku 3.2).
  4. Po zakończeniu analizowania danych upewnij się, że przeanalizowane dane są zapisane w pliku o nazwie "pubmed.json" w katalogu danych. Próbka przeanalizowanych danych jest dostępna pod adresem Rysunek 3.
  5. Przejdź do katalogu "log", aby przeczytać komunikaty dziennika w "parsing_log.txt" na wypadek, gdyby proces parsowania się nie powiódł. Jeśli proces zostanie zakończony pomyślnie, komunikaty debugowania zostaną wydrukowane w pliku dziennika.

4. Mapowanie siatki do PMID

  1. Upewnij się, że przeanalizowane dane ("pubmed.json") są dostępne w katalogu "data".
  2. Wpisz "python run_mesh2pmid.py" w terminalu, aby wykonać mapowanie MeSH na PMID. Spowoduje to utworzenie tabeli mapowania, w której każdy z MeSH zbiera skojarzone identyfikatory PMID. Pojedynczy identyfikator PMID może należeć do wielu terminów MeSH.
  3. Po zakończeniu mapowania upewnij się, że w katalogu danych znajduje się "mesh2pmid.json". Próbka 20 najlepszych statystyk mapowania jest dostępna w Tabeli 2, Rysunki 4 i 5.
  4. Przejdź do katalogu "log", aby przeczytać komunikaty zmian w "mesh2pmid_mapping_log.txt" na wypadek, gdyby ten proces się nie powiódł. Jeśli proces zostanie zakończony pomyślnie, komunikaty debugowania mapowania zostaną wydrukowane w tym pliku dziennika.

5. Indeksowanie dokumentów

  1. Pobierz aplikację Elasticsearch ze strony https://www.elastic.co. Obecnie plik do pobrania jest dostępny pod adresem (https://www.elastic.co/downloads/elasticsearch). Aby pobrać oprogramowanie w zdalnej chmurze, wpisz "wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-x.x.x.tar.gz" w terminalu. Upewnij się, że "x.x.x" w powyższym poleceniu jest zastąpiony odpowiednim numerem wersji.
  2. Upewnij się, że pobrany plik "elasticsearch-x.x.x.tar.gz" pojawia się w katalogu głównym, a następnie rozpakuj pliki, wpisując "tar xvzf elasticsearch-x.x.x.tar.gz" w oknie terminala.
  3. Otwórz nowy terminal i przejdź do katalogu bin ElasticSearch, wpisując "cd Elasticsearch/bin" w terminalu z katalogu głównego.
  4. Uruchom serwer Elasticsearch, wpisując "./Elasticsearch" w oknie terminala. Upewnij się, że serwer został uruchomiony bez komunikatów o błędach. W przypadku błędu podczas uruchamiania serwera Elasticsearch postępuj zgodnie z instrukcjami pod adresem (https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html).
  5. Zmodyfikuj zawartość katalogu "index_init_config.json" w "config", aby ustawić inicjację indeksu. Domyślnie wybierze wszystkie obecne elementy.
  6. Wpisz "python run_index_init.py" w terminalu, aby zainicjować bazę danych indeksu na serwerze Elasticsearch. Spowoduje to zainicjowanie indeksu przy użyciu zestawu kryteriów znanych jako informacje o indeksie (np. nazwa indeksu, nazwa typu, liczba fragmentów, liczba replik). Zobaczysz, że wiadomość z informacją o indeksie została pomyślnie utworzona.
  7. Wybierz elementy w katalogu "index_populate_config.json" w katalogu "config", ustawiając ich wartość na "true". Domyślnie wybierze wszystkie obecne elementy.
  8. Upewnij się, że przeanalizowane dane ("pubmed.json") znajdują się w katalogu "data".
  9. Wpisz "python run_index_populate.py" w terminalu, aby wypełnić indeks, tworząc dane zbiorcze z dwoma składnikami. Pierwszym składnikiem jest słownik z informacjami o metadanych dotyczących nazwy indeksu, nazwy typu i identyfikatora zbiorczego (np. "PMID"). Drugim komponentem jest słownik danych zawierający wszystkie informacje o znacznikach (np. 'title', 'abstract', 'MeSH').
  10. Przejdź do katalogu 'log', aby przeczytać opisy zmian w 'indexing_log.txt' na wypadek, gdyby ten proces się nie powiódł. Jeśli proces zostanie zakończony pomyślnie, komunikaty debugowania indeksowania zostaną wydrukowane w pliku dziennika.

6. Tworzenie kostki tekstowej

  1. Pobierz najnowszą wersję MeSH Tree dostępną pod adresem (https://www.nlm.nih.gov/mesh/filelist.html). Bieżąca wersja kodu używa MeSH Tree 2018 jako "meshtree2018.bin" w katalogu wejściowym.
  2. Zdefiniuj kategorie zainteresowań (np. nazwy chorób, grupy wiekowe, płeć). Kategoria może zawierać jeden lub więcej deskryptorów MeSH (https://meshb-prev.nlm.nih.gov/treeView). Zbieranie identyfikatorów MeSH dla kategorii. Zapisz nazwy kategorii w pliku "textcube_config.json" w katalogu konfiguracyjnym (zobacz przykładową kategorię w "Grupie wiekowej" w pobranej wersji pliku "textcube_config.json").
  3. Umieść zebrane kategorie identyfikatorów MeSH w linii oddzielonej spacją. Zapisz plik kategorii jako "categories.txt" w katalogu "input" (zobacz przykładowe identyfikatory MeSH "Age Group" w pobranej wersji pliku "categories.txt"). Ten algorytm automatycznie wybiera wszystkie potomne deskryptory MeSH. Przykład węzłów głównych i potomków przedstawiono w Rysunek 4.
  4. Upewnij się, że "mesh2pmid.json" znajduje się w katalogu "data". Jeśli drzewo MeSH zostało zaktualizowane o inną nazwę (np. 'meashtree2019.bin') w katalogu 'input', upewnij się, że jest ona poprawnie reprezentowana w ścieżce danych wejściowych w pliku 'run_textube.py'.
  5. Wpisz "python run_textcube.py" w terminalu, aby utworzyć strukturę danych dokumentu o nazwie Text-Cube. Spowoduje to utworzenie kolekcji dokumentów (PMID) dla każdej kategorii. Pojedynczy dokument (PMID) może należeć do wielu kategorii (zob. tabela 3A, tabela 3B, rysunek 6A i rysunek 7A).
  6. Po zakończeniu kroku tworzenia Text-Cube upewnij się, że następujące pliki danych są zapisane w katalogu 'data': (1) komórka do tabeli PMID jako "textcube_cell2pmid.json", (2) PMID do tabeli mapowania komórek jako "textcube_pmid2cell.json", (3) zbiór wszystkich potomnych terminów MeSH dla komórki jako "meshterms_per_cat.json" (4) statystyki danych Text-Cube jako "textcube_stat.txt".
  7. Przejdź do katalogu "log", aby przeczytać komunikaty zmian w "textcube_log.txt" na wypadek, gdyby ten proces się nie powiódł. Jeśli proces zakończy się pomyślnie, komunikaty debugowania dotyczące tworzenia Text-Cube zostaną wydrukowane w pliku dziennika.

7. Liczba jednostek

  1. Tworzenie jednostek zdefiniowanych przez użytkownika (np. nazwy białek, genów, substancji chemicznych). Umieść jedną jednostkę i jej skróty w jednym wierszu oddzielonym znakiem "|". Zapisz plik encji jako "entities.txt" w katalogu "input". Przykładowe podmioty znajdują się w tabeli 4.
  2. Upewnij się, że serwer Elasticsearch jest uruchomiony. W przeciwnym razie przejdź do kroków 5.2 i 5.3, aby ponownie uruchomić serwer Elasticsearch. Oczekuje się, że będzie miał zindeksowaną bazę danych o nazwie "pubmed" na serwerze Elasticsearch, który został utworzony w kroku 5.
  3. Upewnij się, że "textcube_pmid2cell.json" znajduje się w katalogu "data".
  4. Wpisz "python run_entitycount.py" w terminalu, aby wykonać operację Entity Count. Spowoduje to przeszukanie dokumentów z indeksowanej bazy danych i zliczenie jednostki w każdym dokumencie, a także zebranie identyfikatorów PMID, w których znaleziono jednostki.
  5. Po zakończeniu liczenia jednostek upewnij się, że końcowe wyniki są zapisane jako "entitycount.txt" i "entityfound_pmid2cell.json" w katalogu "data".
  6. Przejdź do katalogu "log", aby przeczytać komunikaty zmian w "entitycount_log.txt" na wypadek, gdyby ten proces się nie powiódł. Jeśli proces zostanie zakończony pomyślnie, komunikaty debugowania liczby jednostek zostaną wydrukowane w pliku dziennika.

8. Aktualizacja metadanych

  1. Upewnij się, że wszystkie dane wejściowe ("entitycount.txt", "textcube_pmid2cell.json", "entityfound_pmid2cell.txt") znajdują się w katalogu "data". Są to dane wejściowe do aktualizacji metadanych.
  2. Wpisz "python run_metadata_update.py" w terminalu, aby zaktualizować metadane. Spowoduje to przygotowanie kolekcji metadanych (np. nazwa komórki, skojarzony MeSH, identyfikatory PMID) reprezentujących każdy dokument tekstowy w komórce. Przykładowe metadane Text-Cube przedstawiono w tabelach 3A i 3B.
  3. Po zakończeniu aktualizacji metadanych upewnij się, że pliki "metadata_pmid2pcount.json" i "metadata_cell2pmid.json" są zapisane w katalogu "data".
  4. Przejdź do katalogu 'log', aby przeczytać komunikaty zmian w 'metadata_update_log.txt' na wypadek, gdyby ten proces się nie powiódł. Jeśli proces zostanie zakończony pomyślnie, komunikaty debugowania aktualizacji metadanych zostaną wydrukowane w pliku dziennika.

9. Obliczanie wyniku CaseOLAP

  1. Upewnij się, że pliki "metadata_pmid2pcount.json" i "metadata_cell2pmid.json" znajdują się w katalogu "data". Są to dane wejściowe do obliczenia wyniku.
  2. Wpisz "python run_caseolap_score.py" w terminalu, aby wykonać obliczenia wyniku CaseOLAP. Spowoduje to obliczenie wyniku CaseOLAP encji na podstawie kategorii zdefiniowanych przez użytkownika. Wynik CaseOLAP jest iloczynem uczciwości, popularności i odrębności.
  3. Po zakończeniu obliczania punktacji upewnij się, że zapisuje to wyniki w wielu plikach (np. popularność jako "pop.csv", odrębność jako "dist.csv", wynik CaseOLAP jako "caseolap.csv") w katalogu "wynik". Podsumowanie obliczeń punktacji CaseOLAP przedstawiono również w tabeli 5.
  4. Przejdź do katalogu "log", aby przeczytać komunikaty zmian w "caseolap_score_log.txt" na wypadek, gdyby ten proces się nie powiódł. Jeśli proces zakończy się pomyślnie, komunikaty debugowania dotyczące obliczania wyniku CaseOLAP zostaną wydrukowane w pliku dziennika.

Wyniki

Aby uzyskać przykładowe wyniki, zaimplementowaliśmy algorytm CaseOLAP w dwóch nagłówkach przedmiotowych/deskryptorach: „Age Groups” oraz „Nutritional and Metabolic Diseases” jako przypadki użycia.

Grupy wiekowe. Wybrano wszystkie 4 podkategorie „Grup wiekowych” (niemowlęta, dzieci, młodzież i dorośli) jako komórki w Text-Cube. Uzyskane metadane i statystyki przedstawiono w Tabeli 3A. Porównanie liczby dokumentów pomiędzy komórkami Text-Cube wyświetlono na Ryc. 6A. Grupa dorosłych obejmuje 172 394 dokumenty, co jest najwyższą liczbą spośród wszystkich komórek. Podkategorie dorosłych i młodzieży mają największą liczbę wspólnych dokumentów (26 858 dokumentów). Co istotne, dokumenty te zawierały wyłącznie interesujący nas podmiot (tzn. białka mitochondrialne). Diagram Venna na Ryc. 6B przedstawia liczbę podmiotów (tzn. białek mitochondrialnych) znalezionych w każdej komórce oraz w obszarach ich wspólnego występowania. Liczba białek wspólnych dla wszystkich podkategorii grup wiekowych wynosi 162. Podkategoria dorosłych wykazuje najwyższą liczbę unikalnych białek (151), a następnie dzieci (16), niemowląt (8) i młodzieży (1). Powiązanie białko-grupa wiekowa obliczono jako wynik CaseOLAP. 10 najważniejszych białek (na podstawie ich średniego wyniku CaseOLAP) powiązanych z podkategoriami niemowląt, dzieci, młodzieży i dorosłych to: sterol 26-hydroksylaza, łańcuch B alfa-krystaliny, 25-hydroksywitaminy D-1 alfa-hydroksylaza, serotransferyna, syntaza cytrynianowa, L-serylo-tRNA, podjednostka alfa-3 ATP-azy sodowo-potasowej, reduktaza S-transferazy glutationowej omega-1, reduktaza NADPH:adrenodoksyny oraz mitochondrialna reduktaza sulfotlenku metioniny w peptydach (pokazane na Ryc. 6C). Podkategoria dorosłych wykazuje 10 komórek mapy ciepła o wyższej intensywności w porównaniu do komórek mapy ciepła podkategorii młodzieży, dzieci i niemowląt, co wskazuje, że 10 najważniejszych białek mitochondrialnych wykazuje najsilniejsze powiązania z podkategorią dorosłych. Białko mitochondrialne sterol 26-hydroksylaza wykazuje silne powiązania we wszystkich podkategoriach wiekowych, co obrazują komórki mapy ciepła o wyższych intensywnościach w porównaniu do komórek mapy ciepła pozostałych 9 białek mitochondrialnych. Statystyczny rozkład bezwzględnej różnicy wyników między dwiema grupami wykazuje następujące zakresy średniej różnicy z 99% przedziałem ufności: (1) średnia różnica między „ADLT” a „INFT” mieści się w zakresie (0,029 do 0,042), (2) średnia różnica między „ADLT” a „CHLD” mieści się w zakresie (0,021 do 0,030), (3) średnia różnica między „ADLT” a „ADOL” mieści się w zakresie (0,020 do 0,029), (4) średnia różnica między „ADOL” a „INFT” mieści się w zakresie (0,015 do 0,022), (5) średnia różnica między „ADOL” a „CHLD” mieści się w zakresie (0,007 do 0,010), (6) średnia różnica między „CHLD” a „INFT” mieści się w zakresie (0,011 do 0,016).

Choroby żywieniowe i metaboliczne. Wybrano 2 podkategorie z grupy „Choroby żywieniowe i metaboliczne” (tj. choroby metaboliczne i zaburzenia żywieniowe), aby utworzyć 2 komórki w Text-Cube. Uzyskane metadane i statystyki przedstawiono w Tabeli 3B. Porównanie liczby dokumentów pomiędzy komórkami Text-Cube wyświetlono na Rysunku 7A. Podkategoria choroby metaboliczne zawiera 54 762 dokumenty, a podkategoria zaburzenia żywieniowe 19 181 dokumentów. Podkategorie choroby metaboliczne i zaburzenia żywieniowe mają 7 101 wspólnych dokumentów. Co istotne, dokumenty te zawierały wyłącznie interesującą nas jednostkę (tj. białka mitochondrialne). Diagram Venna na Rysunku 7B przedstawia liczbę jednostek znalezionych w każdej komórce oraz w wielu obszarach nakładania się komórek. Powiązanie białek z „Chorobami żywieniowymi i metabolicznymi” obliczono jako wynik CaseOLAP. 10 białek (na podstawie ich średniego wyniku CaseOLAP) najsilniej powiązanych z tym przypadkiem użycia to: Sterol 26-hydroxylase, Alpha-crystallin B chain, L-seryl-tRNA, Citrate synthase, tRNA pseudouridine synthase A, 25-hydroxyvitamin D-1 alpha-hydroxylase, Glutathione S-transferase omega-1, NADPH: adrenodoxin oxidoreductase, Mitochondrial peptide methionine sulfoxide reductase oraz Plasminogen activator inhibitor 1 (pokazane na Rysunku 7C). Ponad połowa (54%) wszystkich białek jest wspólna dla podkategorii choroby metaboliczne i zaburzenia żywieniowe (397 białek). Co ciekawe, prawie połowa (43%) wszystkich powiązanych białek w podkategorii choroby metaboliczne jest unikalna (300 białek), podczas gdy w zaburzeniach żywieniowych występuje tylko kilka unikalnych białek (35). Alpha-crystallin B chain wykazuje najsilniejsze powiązanie z podkategorią choroby metaboliczne. Sterol 26-hydroxylase, mitochondrial wykazuje najsilniejsze powiązanie w podkategorii zaburzenia żywieniowe, co wskazuje, że to białko mitochondrialne jest wysoce istotne w badaniach opisujących zaburzenia żywieniowe. Statystyczny rozkład bezwzględnej różnicy w wynikach pomiędzy dwiema grupami „MBD” i „NTD” wykazuje zakres (od 0,046 do 0,061) dla różnicy średnich jako 99% przedział ufności.

Schemat przepływu pracy CaseOLAP; ekstrakcja tekstu, analiza składniowa, indeksowanie w celu efektywnej analizy encji.
Rysunek 1. Dynamiczny widok przepływu pracy CaseOLAP. Rysunek ten przedstawia 5 głównych etapów procesu CaseOLAP. W etapie 1 proces rozpoczyna się od pobierania i ekstrahowania dokumentów tekstowych (np. z PubMed). W etapie 2 wyekstrahowane dane są analizowane w celu utworzenia słownika danych dla każdego dokumentu, a także mapowania MeSH do PMID. W etapie 3 przeprowadzane jest indeksowanie danych w celu umożliwienia szybkiego i wydajnego wyszukiwania encji. W etapie 4 następuje implementacja dostarczonych przez użytkownika informacji o kategoriach (np.., główny termin MeSH dla każdej komórki) jest przeprowadzany w celu skonstruowania kostki tekstowej (Text-Cube). W kroku 5 nad danymi indeksowymi implementowana jest operacja zliczania encji w celu obliczenia wyników CaseOLAP. Kroki te są powtarzane w sposób iteracyjny, aby aktualizować system o najnowsze informacje dostępne w publicznej bazie danych (np. PubMed). Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.

Schemat przepływu przetwarzania danych; mapowanie MeSH na PMID, indeksowanie, konstrukcja kostki tekstowej (text-cube).
Rysunek 2. Architektura techniczna przepływu pracy CaseOLAP.Ten rysunek przedstawia szczegóły techniczne przepływu pracy CaseOLAP. Dane z repozytorium PubMed są pobierane z serwera FTP PubMed. Użytkownik łączy się z serwerem w chmurze (np. łączność AWS) za pomocą swojego urządzenia i tworzy potok pobierania (Download Pipeline), który pobiera i wypakowuje dane do lokalnego repozytorium w chmurze. Wypakowane dane są strukturyzowane, weryfikowane i sprowadzane do odpowiedniego formatu za pomocą potoku parsowania danych (Data Parsing Pipeline). Jednocześnie podczas etapu parsowania tworzona jest tabela mapowania MeSH na PMID, która służy do konstrukcji kostki tekstowej (Text-Cube). Sparsowane dane są przechowywane w formacie słownika klucz-wartość typu JSON wraz z metadanymi dokumentu (np. PMID, MeSH, rok publikacji). Etap indeksowania dodatkowo usprawnia dane poprzez wdrożenie Elasticsearch do obsługi danych masowych. Następnie, poprzez implementację mapowania MeSH na PMID, tworzona jest kostka tekstowa z kategoriami zdefiniowanymi przez użytkownika. Po zakończeniu etapów formowania kostki tekstowej i indeksowania przeprowadzane jest zliczanie encji. Dane z zliczania encji są implementowane do metadanych kostki tekstowej. Na koniec, na podstawie struktury kostki tekstowej, obliczany jest wynik CaseOLAP. Kliknij tutaj, aby wyświetlić powiększoną wersję tego rysunku.

Dane JSON przedstawiające metadane badawcze, w tym tytuł, czasopismo i szczegóły streszczenia.
Rycina 3. Przykład przeanalizowanego dokumentu. Na niniejszej rycinie przedstawiono przykład przeanalizowanych danych. Przeanalizowane dane są zorganizowane w pary klucz-wartość, co jest zgodne z indeksowaniem i tworzeniem metadanych dokumentu. Na tej rycinie numer PMID (np. „25896987”) służy jako klucz, a zbiór powiązanych informacji (np. Tytuł, Czasopismo, Data publikacji, Streszczenie, MeSH, Substancje, Wydział i Lokalizacja) jako wartość. Pierwszym zastosowaniem takich metadanych dokumentu jest konstrukcja mapowania MeSH na PMID (Rycina 5 i Tabela 2), co jest później wykorzystywane do utworzenia Text-Cube oraz obliczenia wyniku CaseOLAP z wykorzystaniem dostarczonych przez użytkownika encji i kategorii. Kliknij tutaj, aby wyświetlić większą wersję tej ryciny.

Schemat klasyfikacji grup wiekowych; hierarchia osób od stadium niemowlęcego do osób starszych.
Rysunek 4. Przykład drzewa MeSH. Drzewo MeSH dla 'Age Groups' zostało zaadaptowane z danych o strukturze drzewa dostępnych w bazie danych NIH (MeSH Tree 2018, ). Deskryptory MeSH są implementowane wraz z identyfikatorami węzłów (np. Persons [M01], Age Groups [M01.060], Adolescent [M01.060.057], Adult [M01.060.116], Child [M01.060.406], Infant [M01.060.703]) w celu gromadzenia dokumentów istotnych dla konkretnego deskryptora MeSH (Tabela 3A). Kliknij tutaj, aby wyświetlić większą wersję tego rysunku.

Schemat etapów cyklu życia; pokazuje różne grupy wiekowe i kategorie, takie jak niemowlęta i młodzież.
Rysunek 5. Mapowanie MeSH na PMID w grupach wiekowych (Age Groups). Ten rysunek przedstawia w formie wykresu bąbelkowego liczbę dokumentów tekstowych (każdy powiązany z PMID) zgromadzonych pod deskryptorami MeSH w kategorii „Age Groups”. Mapowanie MeSH na PMID zostało wygenerowane, aby podać dokładną liczbę dokumentów zgromadzonych pod deskryptorami MeSH. Łącznie zgromadzono 3 062 143 unikalne dokumenty pod 18 pochodnych deskryptorów MeSH (patrz Tabela 2). Im wyższa liczba PMID wybranych dla konkretnego deskryptora MeSH, tym większy promień bąbelka reprezentującego ten deskryptor. Na przykład największa liczba dokumentów została zgromadzona pod deskryptorem MeSH „Adult” (1 786 371 dokumentów), natomiast najmniejsza liczba dokumentów tekstowych została zgromadzona pod deskryptorem MeSH „Infant, Postmature” (62 dokumenty).
Dodatkowy przykład mapowania MeSH na PMID podano dla kategorii „Nutritional and Metabolic Diseases” (https://caseolap.github.io/mesh2pmid-mapping/bubble/meta.html). Łącznie zgromadzono 422 039 unikalnych dokumentów pod 361 pochodnymi deskryptorami MeSH w kategorii „Nutritional and Metabolic Diseases”. Największa liczba dokumentów została zgromadzona pod deskryptorem MeSH „Obesity” (77 881 dokumentów), a następnie „Diabetes Mellitus, Type 2” (61 901 dokumentów), podczas gdy „Glycogen Storage Disease, Type VIII” wykazał najmniejszą liczbę dokumentów (1 dokument). Powiązana tabela jest również dostępna online pod adresem (https://github.com/CaseOLAP/mesh2pmid-mapping/blob/master/data/diseaseall.csv). Kliknij tutaj, aby zobaczyć powiększoną wersję tego rysunku.

Analiza ekspresji białek; diagram Venna, mapa ciepła, wykres nakładania; porównanie zbiorów danych biologicznych.
Rycina 6. „Grupy wiekowe” jako przypadek użycia. Rycina ta przedstawia wyniki z przypadku użycia platformy CaseOLAP. W tym przykładzie nazwy białek i ich skróty (patrz próbka w Tabeli 4) są zaimplementowane jako encje, a „Grupy wiekowe”, w tym komórki: niemowlę (INFT), dziecko (CHLD), adolescent (ADOL) i dorosły (ADLT), są zaimplementowane jako podkategorie (patrz Tabela 3A). (A) Liczba dokumentów w „Grupach wiekowych”: Ta mapa ciepła pokazuje liczbę dokumentów rozłożonych w komórkach „Grup wiekowych” (szczegóły dotyczące tworzenia Text-Cube znajdują się w Protokole 4 i Tabeli 3A). Wyższa liczba dokumentów jest reprezentowana przez ciemniejszą intensywność komórki mapy ciepła (patrz skala). Pojedynczy dokument może być przypisany do więcej niż jednej komórki. Mapa ciepła przedstawia liczbę dokumentów w danej komórce wzdłuż pozycji przekątnej (np. ADLT zawiera 172 394 dokumenty, co jest najwyższą liczbą spośród wszystkich komórek). Pozycje poza przekątną reprezentują liczbę dokumentów przypisanych do dwóch komórek (np. ADLT i ADOL mają 26 858 wspólnych dokumentów). (B). Liczba encji w „Grupach wiekowych”: Diagram Venna przedstawia liczbę białek znalezionych w czterech komórkach reprezentujących „Grupy wiekowe” (INFT, CHLD, ADOL i ADLT). Liczba białek wspólnych dla wszystkich komórek wynosi 162. Grupa wiekowa ADLT wykazuje najwyższą liczbę unikalnych białek (151), a następnie CHLD (16), INFT (8) i ADOL (1). (C) Prezentacja wyników CaseOLAP w „Grupach wiekowych”: Top 10 białek z najwyższymi średnimi wynikami CaseOLAP w każdej grupie jest przedstawionych na mapie ciepła. Wyższy wynik CaseOLAP jest reprezentowany przez ciemniejszą intensywność komórki mapy ciepła (patrz skala). Nazwy białek są wyświetlane w lewej kolumnie, a komórki (INFT, CHLD, ADOL, ADLT) wzdłuż osi x. Niektóre białka wykazują silny związek ze szczególną grupą wiekową (np. Sterol 26-hydroxylase, alpha-crystallin B chain oraz L-seryl-tRNA mają silne powiązania z ADLT, natomiast Sodium/potassium-transporting ATPase subunit alpha-3 ma silny związek z INFT). Kliknij tutaj, aby zobaczyć powiększoną wersję tej ryciny.

Analiza ekspresji białek; wykres słupkowy, diagram Venna, mapa ciepła; badanie porównawcze, szlaki metaboliczne.
Rycina 7. Przypadek użycia „Choroby żywieniowe i metaboliczne”: Rycina ta przedstawia wyniki innego przypadku użycia platformy CaseOLAP. W tym przypadku nazwy białek i ich skróty (patrz przykład w Tabeli 4) są zaimplementowane jako encje, a „Choroby żywieniowe i metaboliczne”, obejmujące dwie komórki: choroby metaboliczne (MBD) oraz zaburzenia żywieniowe (NTD), są zaimplementowane jako podkategorie (patrz Tabela 3B). (A). Liczba dokumentów w kategorii „Choroby żywieniowe i metaboliczne”: Ta mapa ciepła przedstawia liczbę dokumentów tekstowych w komórkach kategorii „Choroby żywieniowe i metaboliczne” (szczegóły dotyczące tworzenia Text-Cube znajdują się w Protokole 4 i Tabeli 3B). Wyższa liczba dokumentów jest przedstawiona za pomocą ciemniejszej intensywności komórki mapy ciepła (patrz skala). Pojedynczy dokument może być przypisany do więcej niż jednej komórki. Mapa ciepła prezentuje całkowitą liczbę dokumentów w danej komórce wzdłuż przekątnej (np. MBD zawiera 54 762 dokumenty, co jest najwyższą liczbą spośród obu komórek). Pozycja poza przekątną reprezentuje liczbę dokumentów wspólnych dla dwóch komórek (np. MBD i NTD mają 7 101 wspólnych dokumentów). (B). Liczba encji w kategorii „Choroby żywieniowe i metaboliczne”: Diagram Venna przedstawia liczbę białek znalezionych w dwóch komórkach reprezentujących „Choroby żywieniowe i metaboliczne” (MBD i NTD). Liczba białek wspólnych dla obu komórek wynosi 397. Komórka MBD przedstawia 300 unikalnych białek, a komórka NTD przedstawia 35 unikalnych białek. (C). Prezentacja wyników CaseOLAP w kategorii „Choroby żywieniowe i metaboliczne”: 10 białek z najwyższymi średnimi wynikami CaseOLAP w kategorii „Choroby żywieniowe i metaboliczne” przedstawiono na mapie ciepła. Wyższy wynik CaseOLAP jest reprezentowany przez ciemniejszą intensywność komórki mapy ciepła (patrz skala). Nazwy białek są wyświetlane w lewej kolumnie, a komórki (MBD i NTD) znajdują się wzdłuż osi x. Niektóre białka wykazują silny związek z konkretną kategorią choroby (np. łańcuch B alfa-krystaliny wykazuje silny związek z chorobami metabolicznymi, a sterol 26-hydroksylaza wykazuje silny związek z zaburzeniami żywieniowymi). Aby wyświetlić powiększoną wersję tej ryciny, kliknij tutaj.

Czas spędzony (procent całkowitego czasu)Etapy w platformie CaseOLAPAlgorytm i struktura danych platformy CaseOLAPZłożoność algorytmów i struktur danychSzczegóły poszczególnych kroków
40%Pobieranie i
Analiza składniowa
Algorytmy iteracji i analizy drzewiastejIteracja z zagnieżdżoną pętlą i mnożeniem przez stałą: O(n^2), O(log n). Gdzie „n” oznacza liczbę iteracji.Potok pobierania iteruje każdą procedurę w obrębie wielu plików. Parsowanie pojedynczego dokumentu wykonuje każdą procedurę na strukturze drzewiastej surowych danych XML.
30%Indeksowanie, wyszukiwanie i tworzenie kostek tekstowychIteracja, algorytmy wyszukiwania w Elasticsearch (sortowanie, indeks Lucene, kolejki priorytetowe, skończone automaty, triki bitowe, zapytania regex)Złożoność związana z Elasticsearch (https://www.elastic.co/)Dokumenty są indeksowane poprzez implementację procesu iteracji nad słownikiem danych. Tworzenie Text-Cube implementuje metadane dokumentów oraz dostarczone przez użytkownika informacje o kategoriach.
30%Liczenie obiektów i obliczanie CaseOLAPIteracja w obliczeniach integralności, popularności i odrębnościO(1), O(n^2), wiele złożoności związanych z obliczaniem wyniku caseOLAP w zależności od typów iteracji.Operacja zliczania encji wyświetla listę dokumentów i wykonuje operację zliczania na tej liście. Dane zliczania encji są wykorzystywane do obliczenia wyniku CaseOLAP.

Tabela 1. Algorytmy i złożoność. Tabela ta przedstawia informacje o czasie poświęconym (procent całkowitego czasu) na poszczególne procedury (np. pobieranie, parsowanie), strukturę danych oraz szczegóły dotyczące algorytmów zaimplementowanych w platformie CaseOLAP. CaseOLAP wykorzystuje profesjonalną aplikację do indeksowania i wyszukiwania o nazwie Elasticsearch. Dodatkowe informacje o złożoności związane z Elasticsearch oraz algorytmy wewnętrzne można znaleźć pod adresem (https://www.elastic.co).

Deskryptory MeSHLiczba zebranych PMID
Dorosły1,786,371
Wiek średni1,661,882
Osoba starsza1,198,778
Nastolatek706,429
Młody dorosły486,259
Dziecko480,218
Osoba starsza, 80 lat i więcej453,348
Dziecko w wieku przedszkolnym285,183
Niemowlę218,242
Noworodek160,702
Wcześniak17,701
Niemowlę o niskiej masie urodzeniowej5,707
Słaba osoba starsza4,811
Niemowlę o bardzo niskiej masie urodzeniowej4,458
Niemowlę małe dla wieku pociążowego3,168
Niemowlę skrajnie przedwczesne1,171
Niemowlę o skrajnie niskiej masie urodzeniowej1,003
Niemowlę przeniesione62

Tabela 2. Statystyki mapowania MeSH na PMID. Tabela ta przedstawia wszystkie deskryptory MeSH będące pochodnymi kategorii „Age Groups” oraz liczbę zgromadzonych dla nich PMID (dokumentów tekstowych). Wizualizacja tych statystyk została przedstawiona na Rysunku 5.

ANiemowlę (INFT)Dziecko (CHLD)Nastolatek (ADOL)Dorosły (ADLT)
Root ID MeSHM01.060.703M01.060.406M01.060.057M01.060.116
Liczba pochodnych deskryptorów MeSH9216
Liczba wybranych PMID16 46626 90735 158172 394
Liczba znalezionych encji233297257443
BChoroby metaboliczne (MBD)Zaburzenia żywieniowe (NTD)
Root ID MeSHC18.452C18.654
Liczba pochodnych
deskryptorów MeSH
30853
Liczba zebranych PMID54 76219 181
Liczba znalezionych encji697432

Tabela 3. Metadane Text-Cube. Przedstawiono tabelaryczny widok metadanych Text-Cube. Tabele zawierają informacje o kategoriach oraz rdzeniach i potomkach deskryptorów MeSH, które zostały zaimplementowane w celu zgromadzenia dokumentów w każdej komórce. Tabela zawiera również statystyki zgromadzonych dokumentów i encji. (A) „Grupy wiekowe” (Age Groups): jest to zestawienie tabelaryczne „Grup wiekowych”, obejmujące niemowlęta (INFT), dzieci (CHLD), młodzież (ADOL) i dorosłych (ADLT) wraz z ich identyfikatorami rdzeni MeSH, liczbą potomnych deskryptorów MeSH, liczbą wybranych PMID oraz liczbą znalezionych encji. (B) „Choroby żywieniowe i metaboliczne” (Nutritional and Metabolic Diseases): jest to zestawienie tabelaryczne „Chorób żywieniowych i metabolicznych”, obejmujące choroby metaboliczne (MBD) i zaburzenia żywieniowe (NTD) wraz z ich identyfikatorami rdzeni MeSH, liczbą potomnych deskryptorów MeSH, liczbą wybranych PMID oraz liczbą znalezionych encji.

Nazwy białek i synonimySkróty
Syntaza N-acetylglutaminianu, mitochondrialna, acetylotransferaza aminokwasowa, syntaza N-acetylglutaminianu postać długa; syntaza N-acetylglutaminianu postać krótka; syntaza N-acetylglutaminianu postać domeny konserwatywnej(EC 2.3.1.1)
Deglikaza białek/kwasów nukleinowych DJ-1 (deglikaza Maillarda) (Onkogen DJ1) (Białko choroby Parkinsona 7) (Deglikaza powiązana z parkinsonizmem) (Białko DJ-1)(EC 3.1.2.-) (EC 3.5.1.-) (EC 3.5.1.124)(DJ-1)
Karboksylaza pirogronianowa, mitochondrialna (Karboksylaza pirogronianowa)(EC 6.4.1.1)(PCB)
Bcl-2-binding component 3 (p53 up-regulated modulator of apoptosis)(JFY-1)
agonista śmierci z domeną oddziałującą z BH3 [agonista śmierci z domeną oddziałującą z BH3 p15 (p15 BID); agonista śmierci z domeną oddziałującą z BH3 p13; agonista śmierci z domeną oddziałującą z BH3 p11](p22 BID) (BID) (p13 BID) (p11 BID)
Podjednostka alfa syntazy ATP, mitochondrialna (podjednostka alfa F1 syntazy ATP)
Cytochrom P450 11B2, mitochondrialny (Syntaza aldosteronu) (Enzym syntetyzujący aldosteron) (CYPXIB2) (Cytochrom P-450Aldo) (Cytochrom P-450C18) (Steroidowa 18-hydroksylaza)(ALDOS) (EC 1.14.15.4) (EC 1.14.15.5)
białko szoku termicznego 60 kDa, mitochondrialne (chaperonina 60 kDa) (Chaperonina 60) (CPN60) (Białko szoku termicznego 60) (Białko macierzy mitochondrialnej P1) (Białko limfocytów P60)(HSP-60) (Hsp60) (HuCHA60) (EC 3.6.4.9) 
Kaspaza-4 (homolog ICE i Ced-3 2) (Proteaza TX) [Rozszczepiana na: podjednostkę 1 kaspazy-4; podjednostkę 2 kaspazy-4](CASP-4) (EC 3.4.22.57)(ICH-2) (ICE(rel)-II) (Mih1)

Tabela 4. Przykładowa tabela encji. Tabela ta przedstawia próbkę encji zaimplementowanych w dwóch naszych przypadkach użycia: „Grupy wiekowe” oraz „Choroby żywieniowe i metaboliczne” (Rysunek 6 i Rysunek 7, Tabela 3A,B). Encje obejmują nazwy białek, synonimy oraz skróty. Każda encja (wraz z jej synonimami i skrótami) jest wybierana pojedynczo i przekazywana do operacji wyszukiwania encji w zindeksowanych danych (patrz protokoły 3 i 5). Wyszukiwanie generuje listę dokumentów, które następnie ułatwiają operację zliczania encji.

IlościZdefiniowane przez użytkownikaObliczoneRównanie wielkościZnaczenie wielkości
IntegralnośćTakNieIntegralność jednostek zdefiniowanych przez użytkownika uznana za 1,0.Reprezentuje znaczącą frazę. Wartość liczbowa wynosi 1,0, gdy jest to już utrwalona fraza.
PopularnośćNieTakRównanie popularności na Rysunku 1 (Przebieg procesu i algorytm) z referencji 5, sekcja „Materiały i metody”.Na podstawie częstotliwości występowania frazy w obrębie komórki. Znormalizowane przez całkowitą częstotliwość wyrazów w komórce. Wzrost częstotliwości występowania wyrazu daje malejący wynik.
WyróżnialnośćNieTakRównanie wyróżnialności na Rysunku 1 (Przepływ pracy i algorytm) z referencji 5, sekcja „Materiały i metody”.Na podstawie częstotliwości występowania terminu i częstości dokumentów w obrębie jednej komórki oraz w komórkach sąsiadujących. Znormalizowane przez całkowitą częstotliwość występowania terminu i częstość dokumentów. Ilościowo jest to prawdopodobieństwo, że fraza jest unikalna w konkretnej komórce.
wynik CaseOLAPNieTakRównanie oceny CaseOLAP na Rysunku 1 (Przebieg i algorytm) z odniesienia 5, sekcja „Materiały i metody”.W oparciu o integralność, popularność i dystynktywność. Wartość numeryczna zawsze mieści się w przedziale od 0 do 1. Ilościowo wynik CaseOLAP reprezentuje powiązanie frazy z kategorią.

Tabela 5. Równania CaseOLAP: Algorytm CaseOLAP został opracowany przez Fangbo Tao i Jiawei Han et al. w 2016 roku1. W skrócie, tabela ta przedstawia obliczanie wyniku CaseOLAP składające się z trzech komponentów: integralności, popularności i odrębności, oraz ich powiązane znaczenie matematyczne. W naszych przypadkach użycia wynik integralności dla białek wynosi 1,0 (wynik maksymalny), ponieważ stanowią one ustalone nazwy encji. Wyniki CaseOLAP w naszych przypadkach użycia można zobaczyć na Rysunku 6C oraz Rysunku 7C.

Dyskusja

Wykazaliśmy, że algorytm CaseOLAP może tworzyć ilościowe powiązanie oparte na frazach z kategorią opartą na wiedzy na dużych ilościach danych tekstowych w celu wydobycia istotnych spostrzeżeń. Postępując zgodnie z naszym protokołem, można zbudować framework CaseOLAP, aby utworzyć pożądany Text-Cube i określić ilościowo powiązania encji-kategorii poprzez obliczanie wyniku CaseOLAP. Uzyskane surowe wyniki CaseOLAP mogą być wykorzystane do analiz integracyjnych, w tym redukcji wymiarowości, grupowania, analizy czasowej i geograficznej, a także do stworzenia graficznej bazy danych, która umożliwia mapowanie semantyczne dokumentów.

Możliwość zastosowania algorytmu. Przykładami jednostek zdefiniowanych przez użytkownika, innych niż białka, może być lista nazw genów, leków, określonych objawów i objawów, w tym ich skróty i synonimy. Ponadto istnieje wiele możliwości wyboru kategorii, aby ułatwić określone analizy biomedyczne zdefiniowane przez użytkownika (np. Anatomia [A], Dyscyplina i zawód [H], Zjawiska i procesy [G]). W naszych dwóch przypadkach wszystkie publikacje naukowe i ich dane tekstowe są pobierane z bazy danych MEDLINE za pomocą PubMed jako wyszukiwarki, obie zarządzane przez National Library of Medicine. Platforma CaseOLAP może być jednak stosowana do innych interesujących baz danych zawierających dokumenty biomedyczne z danymi tekstowymi, takich jak System Zgłaszania Zdarzeń Niepożądanych FDA (FAERS). Jest to otwarta baza danych zawierająca informacje o medycznych zdarzeniach niepożądanych i raportach o błędach związanych z lekami przesyłanych do FDA. W przeciwieństwie do MEDLINE i FAERS, bazy danych w szpitalach zawierające elektroniczną dokumentację medyczną pacjentów nie są publicznie dostępne i są ograniczone przez ustawę o przenośności i odpowiedzialności w ubezpieczeniach zdrowotnych, znaną jako HIPAA.

Algorytm CaseOLAP został z powodzeniem zastosowany do różnych typów danych (np. artykułów prasowych)1. Implementacja tego algorytmu w dokumentach biomedycznych została dokonana w 2018 roku5. Wymogiem zastosowania algorytmu CaseOLAP jest to, że do każdego z dokumentów powinny być przypisane słowa kluczowe związane z pojęciami (np. deskryptory MeSH w publikacjach biomedycznych, słowa kluczowe w artykułach prasowych). Jeśli słowa kluczowe nie zostaną znalezione, można zastosować Autophrase 6,7, aby zebrać najbardziej reprezentatywne frazy i zbudować listę encji przed wdrożeniem naszego protokołu. Nasz protokół nie zapewnia kroku umożliwiającego wykonanie autofrazy.

Porównanie z innymi algorytmami. Koncepcja korzystania z Data-Cube 8,9,10 i Text-Cube 2,3,4 ewoluuje od 2005 roku wraz z nowymi osiągnięciami, które mają na celu zwiększenie możliwości eksploracji danych. Koncepcja przetwarzania analitycznego online (OLAP)11,12,13,14,15 w eksploracji danych i analizie biznesowej sięga 1993 roku. Ogólnie rzecz biorąc, OLAP agreguje informacje z wielu systemów i przechowuje je w formacie wielowymiarowym. W eksploracji danych zaimplementowano różne rodzaje systemów OLAP. Na przykład (1) Hybrydowe przetwarzanie transakcyjne/analityczne (HTAP)16,17, (2) Wielowymiarowe OLAP (MOLAP)18,19-Cube, i (3) Relacyjne OLAP (ROLAP)20.

W szczególności algorytm CaseOLAP został porównany z wieloma istniejącymi algorytmami, w szczególności z ich ulepszeniami segmentacji fraz, w tym TF-IDF+Seg, MCX+Seg, MCX i SegPhrase. Co więcej, RepPhrase (RP, znany również jako SegPhrase+) został porównany z własnymi wariantami ablacji, w tym (1) RP bez włączonej miary integralności (RP No INT), (2) RP bez włączonej miary popularności (RP No POP) i (3) RP bez włączonej miary odróżniającej (RP No DIS). Wyniki testów porównawczych przedstawiono w badaniu przeprowadzonym przez Fangbo Tao i wsp.1.

Nadal istnieją wyzwania związane z eksploracją danych, które mogą dodać dodatkowe funkcje w porównaniu z zapisywaniem i pobieraniem danych z bazy danych. Kontekstowe semantyczne przetwarzanie analityczne (CaseOLAP) systematycznie implementuje Elasticsearch w celu zbudowania indeksującej bazy danych milionów dokumentów (Protokół 5). Text-Cube to struktura dokumentu zbudowana na podstawie indeksowanych danych z kategoriami dostarczonymi przez użytkownika (Protokół 6). Zwiększa to funkcjonalność dokumentów w komórce Text-Cube i w poprzek niej i pozwala nam obliczać częstotliwość kadencji encji w dokumencie i częstotliwość dokumentu w określonej komórce (Protokół 8). Ostateczny wynik CaseOLAP wykorzystuje te obliczenia częstotliwości do uzyskania końcowego wyniku (Protokół 9). W 2018 roku wdrożyliśmy ten algorytm do badania białek ECM i sześciu chorób serca w celu analizy powiązań białko-choroba. Szczegóły tego badania można znaleźć w badaniu przeprowadzonym przez Liema, D.A. i wsp.5. wskazując, że CaseOLAP może być szeroko stosowany w społeczności biomedycznej badającej różne choroby i mechanizmy.

Ograniczenia algorytmu. Eksploracja fraz sama w sobie jest techniką zarządzania i pobierania ważnych pojęć z danych tekstowych. Odkrywając asocjację encji-kategorii jako wielkość matematyczną (wektor), technika ta nie jest w stanie określić biegunowości (np. dodatniego lub ujemnego nachylenia) asocjacji. Można zbudować ilościowe podsumowanie danych za pomocą struktury dokumentu Text-Cude z przypisanymi jednostkami i kategoriami, ale nie można osiągnąć koncepcji jakościowej z mikroskopijnymi szczegółowościami. Niektóre koncepcje stale ewoluują od przeszłości do teraz. Podsumowanie przedstawione dla konkretnego związku podmiotu-kategorii obejmuje wszystkie przypadki występowania w całej literaturze. Może to nie mieć tempowego rozprzestrzeniania się innowacji. W przyszłości planujemy zająć się tymi ograniczeniami.

Przyszłe aplikacje. Około 90% zgromadzonych danych na świecie znajduje się w nieustrukturyzowanych danych tekstowych. Znalezienie reprezentatywnej frazy i relacji do podmiotów osadzonych w tekście jest bardzo ważnym zadaniem dla implementacji nowych technologii (np. Machine Learning, Information Extraction, Artificial Intelligence). Aby dane tekstowe były czytelne maszynowo, dane muszą być uporządkowane w bazie danych, na której można zaimplementować kolejną warstwę narzędzi. W przyszłości algorytm ten może być kluczowym krokiem w kierunku uczynienia eksploracji danych bardziej funkcjonalną w celu wyszukiwania informacji i kwantyfikacji powiązań między jednostkami a kategoriami.

Oświadczenia

Autorzy nie mają nic do ujawnienia.

Podziękowania

Ta praca była częściowo wspierana przez National Heart, Lung, and Blood Institute: R35 HL135772 (do P. Pinga); Narodowy Instytut Ogólnych Nauk Medycznych: U54 GM114833 (do P. Pinga, K. Watsona i W. Wanga); U54 GM114838 (do J. Hana); dar od Fundacji Hellen & Larry Hoag i Dr. S. Setty; oraz fundacja T.C. Laubischa na UCLA (do P. Pinga).

Bibliografia

  1. Tao, F., Zhuang, H., et al. Phrase-Based Summarization in Text Cubes. IEEE Data Engineering Bulletin. , 74-84 (2016).
  2. Ding, B., Zhao, B., Lin, C. X., Han, J., Zhai, C. TopCells: Keyword-based search of top-k aggregated documents in text cube. IEEE 26th International Conference on Data Engineering (ICDE). , 381-384 (2010).
  3. Ding, B., et al. Efficient Keyword-Based Search for Top-K Cells in Text Cube. IEEE Transactions on Knowledge and Data Engineering. 23 (12), 1795-1810 (2011).
  4. Liu, X., et al. A Text Cube Approach to Human, Social and Cultural Behavior in the Twitter Stream.Social Computing, Behavioral-Cultural Modeling and Prediction. Lecture Notes in Computer Science. 7812, (2013).
  5. Liem, D. A., et al. Phrase Mining of Textual Data to analyze extracellular matrix protein patterns across cardiovascular disease. American Journal of Physiology-Heart and Circulatory. , (2018).
  6. Shang, J., et al. Automated Phrase Mining from Massive Text Corpora. IEEE Transactions on Knowledge and Data Engineering. 30 (10), 1825-1837 (2018).
  7. Liu, J., Shang, J., Wang, C., Ren, X., Han, J. Mining Quality Phrases from Massive Text Corpora. Proceedings ACM-Sigmod International Conference on Management of Data. , 1729-1744 (2015).
  8. Lee, S., Kim, N., Kim, J. A Multi-dimensional Analysis and Data Cube for Unstructured Text and Social Media. IEEE Fourth International Conference on Big Data and Cloud Computing. , 761-764 (2014).
  9. Lin, C. X., Ding, B., Han, J., Zhu, F., Zhao, B. Text Cube: Computing IR Measures for Multidimensional Text Database Analysis. IEEE Data Mining. , 905-910 (2008).
  10. Hsu, W. J., Lu, Y., Lee, Z. Q. Accelerating Topic Exploration of Multi-Dimensional Documents Parallel and Distributed Processing Symposium Workshops (IPDPSW). IEEE International. , 1520-1527 (2017).
  11. Chaudhuri, S., Dayal, U. An overview of data warehousing and OLAP technology. SIGMOD Record. 26 (1), 65-74 (1997).
  12. Ravat, F., Teste, O., Tournier, R. Olap aggregation function for textual data warehouse. ICEIS - 9th International Conference on Enterprise Information Systems, Proceedings. , 151-156 (2007).
  13. Ho, C. T., Agrawal, R., Megiddo, N., Srikant, R. Range Queries in OLAP Data Cubes. SIGMOD Conference. , (1997).
  14. Saxena, V., Pratap, A. Olap Cube Representation for Object- Oriented Database. International Journal of Software Engineering & Applications. 3 (2), (2012).
  15. Maniatis, A. S., Vassiliadis, P., Skiadopoulos, S., Vassiliou, Y. Advanced visualization for OLAP. DOLAP. , (2003).
  16. Bog, A. Benchmarking Transaction and Analytical Processing Systems: The Creation of a Mixed Workload Benchmark and its Application. , Springer Science & Business Media. 7-13 (2013).
  17. Özcan, F., Tian, Y., Tözün, P. Hybrid Transactional/Analytical Processing: A Survey. In Proceedings of the ACM International Conference on Management of Data (SIGMOD). , 1771-1775 (2017).
  18. Hasan, K. M. A., Tsuji, T., Higuchi, K. An Efficient Implementation for MOLAP Basic Data Structure and Its Evaluation. International Conference on Database Systems for Advanced Applications. , 288-299 (2007).
  19. Nantajeewarawat, E. Advances in Databases: Concepts, Systems and Applications. DASFAA 2007. Lecture Notes in Computer Science. 4443, (2007).
  20. Shimada, T., Tsuji, T., Higuchi, K. A storage scheme for multidimensional data alleviating dimension dependency. Third International Conference on Digital Information Management. , 662-668 (2007).

Przedruki i uprawnienia

Tagi

Algorytm CaseOLAPtworzenie kostki tekstowejoperacja zliczania encjiproces aktualizacji metadanychindeksowanie Elasticsearchprzetwarzanie drzewa Meshanaliza tekst w biomedycznychsemantyczne przetwarzanie analityczne online