Method Article

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

DOI:

10.3791/59108

February 23rd, 2019

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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.

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Aby uzyskać przykładowe wyniki, zaimplementowaliśmy algorytm CaseOLAP w dwóch nagłówkach/deskryptorach tematycznych: "Grupy wiekowe" oraz "Choroby żywieniowe i metaboliczne" jako przypadki użycia.

Grupy wiekowe. Wybraliśmy wszystkie 4 podkategorie "Grupy wiekowe" (niemowlę, dziecko, młodzież i dorosły) jako komórki w kostce tekstowej. Uzyskane metadane i statystyki przedstawiono w tabeli 3A. Porównanie liczby dokumentów między komórkami Text-Cube jest wyświetlane w Rysunek 6A. Dorosły zawiera 172 394 dokumenty, co jest najwyższą liczbą spośród wszystkich komórek. Największą liczbę udostępnionych dokumentów mają podkategorie dorosłych i młodzieży (26 858 dokumentów). Warto zauważyć, że dokumenty te obejmowały tylko jednostkę, która nas interesowała (tj. białka mitochondrialne). Diagram Venna w Rysunek 6B przedstawia liczbę jednostek (tj. białek mitochondrialnych) znajdujących się w każdej komórce i w wielu nakładających się na siebie komórkach. Liczba białek wspólnych dla wszystkich podkategorii wiekowych wynosi 162. Podkategoria dorosłych przedstawia największą liczbę unikalnych białek (151), a następnie dzieci (16), niemowlę (8) i młodzież (1). Obliczyliśmy związek białka z grupą wiekową jako wynik CaseOLAP. 10 najważniejszych białek (na podstawie średniego wyniku CaseOLAP) związanych z podkategoriami niemowląt, dzieci, młodzieży i dorosłych to 26-hydroksylaza steroli, alfa-krystalinowy łańcuch B, alfa-hydroksylaza 25-hydroksywitaminy D-1, serotransferyna, syntaza cytrynianu, L-seryl-tRNA, podjednostka alfa-3 ATPazy transportującej sód/potas, S-transferaza glutationowa omega-1, NADPH: oksydoreduktaza adrenodoksyny i reduktaza sulfotlenku metioniny peptydu mitochondrialnego (pokazana w Rysunek 6C). Podkategoria dla dorosłych wyświetla 10 komórek mapy cieplnej o większej intensywności w porównaniu z komórkami mapy cieplnej podkategorii nastolatków, dzieci i niemowląt, co wskazuje, że 10 pierwszych białek mitochondrialnych wykazuje najsilniejsze powiązania z podkategorią dorosłych. Białko mitochondrialne 26-hydroksylaza sterolu ma wysokie powiązania we wszystkich podkategoriach wiekowych, o czym świadczą komórki mapy cieplnej o wyższej intensywności w porównaniu z komórkami mapy cieplnej pozostałych 9 białek mitochondrialnych. Rozkład statystyczny bezwzględnej różnicy w wyniku między dwiema grupami pokazuje następujący przedział średniej różnicy z 99% przedziałem ufności: (1) średnia różnica między "ADLT" a "INFT" mieści się w zakresie (od 0,029 do 0,042), (2) średnia różnica między "ADLT" a "CHLD" mieści się w przedziale (0,021 do 0,030), 3) średnia różnica między "ADLT" a "ADOL" mieści się w przedziale (od 0,020 do 0,029), 4) średnia różnica między "ADOL" a "INFT" mieści się w przedziale (od 0,015 do 0,022), 5) średnia różnica między "ADOL" a "CHLD" mieści się w przedziale (od 0,007 do 0,010), (6) średnia różnica między "CHLD" a "INFT" mieści się w przedziale (od 0,011 do 0,016).

Choroby żywieniowe i metaboliczne. Wybraliśmy 2 podkategorie "Choroby żywieniowe i metaboliczne" (tj. choroby metaboliczne i zaburzenia odżywiania), aby stworzyć 2 komórki w kostce tekstowej. Uzyskane metadane i statystyki przedstawiono w tabeli 3B. Porównanie liczby dokumentów między komórkami Text-Cube jest wyświetlane w Rysunek 7A. Podkategoria choroby metaboliczne zawiera 54 762 dokumenty, a następnie 19 181 dokumentów dotyczących zaburzeń odżywiania. Podkategorie choroby metaboliczne i zaburzenia odżywiania mają 7 101 wspólnych dokumentów. Warto zauważyć, że dokumenty te obejmowały tylko jednostkę, która nas interesowała (tj. białka mitochondrialne). Diagram Venna w Rysunek 7B przedstawia liczbę jednostek znajdujących się w każdej komórce i w wielu nakładających się na siebie komórkach. Obliczyliśmy związek białka z "chorobami żywieniowymi i metabolicznymi" jako wynik CaseOLAP. 10 najważniejszych białek (na podstawie ich średniego wyniku CaseOLAP) związanych z tym przypadkiem użycia to 26-hydroksylaza sterolu, alfa-krystalinowy łańcuch B, L-seryl-tRNA, syntaza cytrynianu, syntaza pseudourydyny tRNA A, alfa-hydroksylaza 25-hydroksywitaminy D-1, S-transferaza glutationowa omega-1, NADPH: oksydoreduktaza adrenodoksyny, reduktaza sulfotlenku metioniny peptydu mitochondrialnego, inhibitor aktywatora plazminogenu 1 (pokazany w Rysunek 7C). Ponad połowa (54%) wszystkich białek dzieli się na podkategorie: choroby metaboliczne i zaburzenia odżywiania (397 białek). Co ciekawe, prawie połowa (43%) wszystkich powiązanych białek w podkategorii chorób metabolicznych jest unikalna (300 białek), podczas gdy zaburzenia odżywiania wykazują tylko kilka unikalnych białek (35). Łańcuch alfa-krystaliny B wykazuje najsilniejszy związek z podkategorią chorób metabolicznych. 26-hydroksylaza sterolowa, mitochondrialna wykazuje najsilniejszy związek w podkategorii zaburzeń odżywiania, co wskazuje, że to białko mitochondrialne jest bardzo istotne w badaniach opisujących zaburzenia odżywiania. Rozkład statystyczny bezwzględnej różnicy w wyniku między dwiema grupami "MBD" i "NTD" pokazuje zakres (od 0,046 do 0,061) dla średniej różnicy jako 99% przedział ufności.

figure-results-1
Rysunek 1. Dynamiczny widok przepływu pracy CaseOLAP. Na rysunku przedstawiono 5 głównych kroków w przepływie pracy CaseOLAP. W kroku 1 przepływ pracy rozpoczyna się od pobrania i wyodrębnienia dokumentów tekstowych (np. z PubMed). W kroku 2 wyodrębnione dane są analizowane w celu utworzenia słownika danych dla każdego dokumentu, a także mapowania MeSH na PMID. W kroku 3 przeprowadzane jest indeksowanie danych w celu ułatwienia szybkiego i wydajnego wyszukiwania encji. W kroku 4 przeprowadzana jest implementacja informacji o kategorii dostarczonych przez użytkownika (np. root MeSH dla każdej komórki) w celu skonstruowania Text-Cube. W kroku 5 operacja zliczania jednostek jest implementowana na danych indeksu w celu obliczenia wyników CaseOLAP. Kroki te są powtarzane w sposób iteracyjny w celu zaktualizowania systemu o najnowsze informacje dostępne w publicznej bazie danych (np. PubMed). Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-2
Rysunek 2. Architektura techniczna przepływu pracy CaseOLAP. Na rysunku przedstawiono szczegóły techniczne przepływu pracy CaseOLAP. Dane z repozytorium PubMed pozyskiwane są z serwera FTP PubMed. Użytkownik łączy się z serwerem w chmurze (np. łącznością AWS) za pośrednictwem swojego urządzenia i tworzy potok pobierania, który pobiera i wyodrębnia dane do lokalnego repozytorium w chmurze. Wyodrębnione dane są strukturyzowane, weryfikowane i doprowadzane do odpowiedniego formatu za pomocą potoku analizowania danych. Jednocześnie, podczas kroku parsowania, tworzona jest tabela mapowania MeSH do PMID, która jest używana do budowy Text-Cube. Przeanalizowane dane są przechowywane w formacie JSON, takim jak słownik klucz-wartość z metadanymi dokumentu (np. PMID, MeSH, rok publikacji). Krok indeksowania dodatkowo ulepsza dane, implementując Elasticsearch do obsługi danych zbiorczych. Następnie tworzony jest Text-Cube z kategoriami zdefiniowanymi przez użytkownika, implementując mapowanie MeSH do PMID. Po zakończeniu kroków tworzenia i indeksowania modułu Text-Cube przeprowadzana jest inwentaryzacja jednostek. Dane dotyczące liczby jednostek są implementowane do metadanych Text-Cube. Na koniec wynik CaseOLAP jest obliczany na podstawie podstawowej struktury Text-Cube. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-3
Rysunek 3. Próbka przeanalizowanego dokumentu. Próbka przeanalizowanych danych jest przedstawiona na tym rysunku. Przeanalizowane dane są rozmieszczone jako para klucz-wartość, która jest zgodna z indeksowaniem i tworzeniem metadanych dokumentu. Na tym rysunku identyfikator PMID (np. "25896987") służy jako klucz, a zbiór powiązanych informacji (np. tytuł, czasopismo, data publikacji, streszczenie, MeSH, substancje, dział i lokalizacja) są jako wartość. Pierwszym zastosowaniem takich metadanych dokumentu jest konstrukcja mapowania MeSH do PMID (Rysunek 5 i Tabela 2), która jest później implementowana do tworzenia Text-Cube i obliczania wyniku CaseOLAP z jednostkami i kategoriami dostarczonymi przez użytkownika. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-4
Rysunek 4. Próbka drzewa MeSH. Drzewo MeSH "Grupy wiekowe" jest zaadaptowane ze struktury danych drzewa dostępnej w bazie danych NIH (MeSH Tree 2018, ). Deskryptory MeSH są implementowane wraz z ich identyfikatorami węzłów (np. Osoby [M01], Grupy wiekowe [M01.060], Młodzież [M01.060.057], Dorosły [M01.060.116], Dziecko [M01.060.406], Niemowlę [M01.060.703]) w celu zebrania dokumentów istotnych dla określonego deskryptora MeSH (Tabela 3A). Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-5
Rysunek 5. Mapowanie MeSH do PMID w grupach wiekowych. Na rysunku przedstawiono liczbę dokumentów tekstowych (z których każdy jest powiązany identyfikatorem PMID) zebranych pod deskryptorami MeSH w sekcji "Grupy wiekowe" w postaci wykresu bąbelkowego. Mapowanie MeSH do PMID jest generowane w celu zapewnienia dokładnej liczby dokumentów zebranych w ramach deskryptorów MeSH. Łączną liczbę 3 062 143 unikatowych dokumentów zebrano pod 18 potomnymi deskryptorami MeSH (zob. tabela 2). Im większa liczba identyfikatorów PMID wybranych w ramach określonego deskryptora MeSH, tym większy promień bąbelka reprezentującego deskryptor MeSH. Na przykład największą liczbę dokumentów zgromadzono w ramach deskryptora MeSH "Dorośli" (1 786 371 dokumentów), natomiast najmniej dokumentów tekstowych zgromadzono w ramach deskryptora MeSH "Niemowlęta, osoby podojrzałe" (62 dokumenty).
Dodatkowy przykład mapowania MeSH do PMID podano dla "Chorób żywieniowych i metabolicznych" (https://caseolap.github.io/mesh2pmid-mapping/bubble/meta.html). Łącznie zebrano 422 039 unikalnych dokumentów pod 361 potomnymi deskryptorami MeSH w "Chorobach żywieniowych i metabolicznych". Najwięcej dokumentów zgromadzono pod deskryptorem MeSH "Otyłość" (77 881 dokumentów), następnie "Cukrzyca typu 2" (61 901 dokumentów), natomiast najmniej dokumentów "Choroba spichrzeniowa glikogenu typu VIII" (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ć większą wersję tego rysunku.

figure-results-6
Rysunek 6. "Grupy wiekowe" jako przypadek użycia. Na rysunku przedstawiono wyniki z przypadku użycia platformy CaseOLAP. W tym przypadku nazwy białek i ich skróty (patrz próbka w tabeli 4) są implementowane jako jednostki, a "grupy wiekowe" obejmujące komórki: niemowlę (INFT), dziecko (CHLD), młodzież (ADOL) i dorosły (ADLT) są implementowane jako podkategorie (patrz tabela 3A). oraz Liczba dokumentów w "Grupach wiekowych": Ta mapa cieplna pokazuje liczbę dokumentów rozmieszczonych w komórkach "Grup wiekowych" (szczegółowe informacje na temat tworzenia modułu Text-Cube znajdują się w Protokole 4 i Tabeli 3A). Większa liczba dokumentów jest prezentowana z ciemniejszą intensywnością komórki mapy cieplnej (patrz skala). Pojedynczy dokument może znajdować się w więcej niż jednej komórce. Mapa cieplna przedstawia liczbę dokumentów w komórce wzdłuż przekątnej (np. ADLT zawiera 172 394 dokumenty, co jest najwyższą liczbą spośród wszystkich komórek). Pozycja po przekątnej reprezentuje liczbę dokumentów mieszczących się w dwóch komórkach (np. ADLT i ADOL mają 26 858 udostępnionych dokumentów). oraz. Liczba jednostek w "Grupach wiekowych": Diagram Venna reprezentuje liczbę białek znajdujących się 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 charakteryzuje się największą liczbą unikalnych białek (151), a następnie CHLD (16), INFT (8) i ADOL (1). oraz Prezentacja punktacji CaseOLAP w "Grupach wiekowych": 10 pierwszych białek z najwyższymi średnimi wynikami CaseOLAP w każdej grupie przedstawiono na mapie cieplnej. Wyższy wynik CaseOLAP jest prezentowany z ciemniejszą intensywnością komórki mapy cieplnej (patrz skala). Nazwy białek są wyświetlane w lewej kolumnie, a komórki (INFT, CHLD, ADOL, ADLT) są wyświetlane wzdłuż osi x. Niektóre białka wykazują silny związek z określoną grupą wiekową (np. 26-hydroksylaza sterolu, alfa-krystalinowy łańcuch B i L-seryl-tRNA mają silne powiązania z ADLT, podczas gdy podjednostka alfa-3 ATPazy transportującej sód/potas ma silny związek z INFT). Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-7
Rysunek 7. "Choroby żywieniowe i metaboliczne" jako przypadek użycia: Na rysunku przedstawiono wyniki innego przypadku użycia platformy CaseOLAP. W tym przypadku nazwy białek i ich skróty (patrz próbka w tabeli 4) są implementowane jako jednostki, a "Odżywianie i choroba metaboliczna" obejmująca dwie komórki: chorobę metaboliczną (MBD) i zaburzenia odżywiania (NTD) są implementowane jako podkategorie (patrz tabela 3B). (A). Liczba dokumentów w "Chorobach żywieniowych i metabolicznych": Ta mapa cieplna przedstawia liczbę dokumentów tekstowych w komórkach "Choroby żywieniowe i metaboliczne" (szczegółowe informacje na temat tworzenia Text-Cube znajdują się w Protokole 4 i Tabeli 3B). Większa liczba dokumentów jest prezentowana z ciemniejszą intensywnością komórki mapy cieplnej (patrz skala). Pojedynczy dokument może znajdować się w więcej niż jednej komórce. Mapa cieplna przedstawia łączną liczbę dokumentów w komórce wzdłuż przekątnej (np. MBD zawiera 54 762 dokumenty, co jest najwyższą liczbą w dwóch komórkach). Pozycja po przekątnej reprezentuje liczbę dokumentów współużytkowanych przez dwie komórki (np. MBD i NTD mają 7 101 udostępnionych dokumentów). (B). Liczba jednostek w "Chorobach żywieniowych i metabolicznych": Diagram Venna przedstawia liczbę białek znajdujących się w dwóch komórkach reprezentujących "choroby żywieniowe i metaboliczne" (MBD i NTD). Liczba białek wspólnych w obu komórkach wynosi 397. Komórka MBD przedstawia 300 unikalnych białek, a komórka NTD przedstawia 35 unikalnych białek. (C). Prezentacja punktacji CaseOLAP w "Chorobach żywieniowych i metabolicznych": 10 najlepszych białek z najwyższymi średnimi wynikami CaseOLAP w kategorii "Choroby żywieniowe i metaboliczne" przedstawiono na mapie cieplnej. Wyższy wynik CaseOLAP jest prezentowany z ciemniejszą intensywnością komórki mapy cieplnej (patrz skala). Nazwy białek są wyświetlane w lewej kolumnie, a komórki (MBD i NTD) są wyświetlane wzdłuż osi x. Niektóre białka wykazują silny związek z określoną kategorią chorób (np. alfa-krystalinowy łańcuch B ma wysoki związek z chorobą metaboliczną, a 26-hydroksylaza sterolu ma wysoki związek z zaburzeniami odżywiania). Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

.
Czas spędzony (procent całkowitego czasu)Kroki na platformie CaseOLAPAlgorytm i struktura danych platformy CaseOLAPZłożoność algorytmu i struktury danychSzczegóły kroków
40 procPobieranie i
Analizowania
Algorytmy iteracji i analizowania drzewaIteracja z zagnieżdżoną pętlą i ciągłym mnożeniem: O(n^2), O(log n). Gdzie 'n' oznacza brak iteracji.Potok pobierania iteruje każdą procedurę na wielu plikach. Analizowanie pojedynczego dokumentu uruchamia każdą procedurę na strukturze drzewa nieprzetworzonych danych XML.
30%Indeksowanie, wyszukiwanie i tworzenie kostek tekstowychIteracja, algorytmy wyszukiwania według Elasticsearch (sortowanie, indeks Lucene, kolejki priorytetowe, maszyny skończone, hacki z kręceniem bitów, zapytania regularne)Złożoność związana z Elasticsearch (https://www.elastic.co/)Dokumenty są indeksowane przez zaimplementowanie procesu iteracji w słowniku danych. Tworzenie Text-Cube implementuje metadane dokumentu i informacje o kategorii dostarczone przez użytkownika.
30%Zliczanie jednostek i obliczanie CaseOLAPIteracja w obliczaniu integralności, popularności, odrębnościO(1), O(n^2), wiele złożoności związanych z obliczaniem wyniku caseOLAP na podstawie typów iteracji.Operacja zliczania jednostek wyświetla listę dokumentów i wykonuje operację zliczania na liście. Dane dotyczące liczby jednostek są używane do obliczania wyniku CaseOLAP.

Tabela 1. Algorytmy i zawiłości. Poniższa tabela przedstawia informacje na temat czasu poświęconego (procent całkowitego czasu poświęconego) na procedury (np. pobieranie, parsowanie), strukturę danych oraz szczegóły dotyczące algorytmów zaimplementowanych na platformie CaseOLAP. CaseOLAP implementuje profesjonalną aplikację do indeksowania i wyszukiwania o nazwie Elasticsearch. Dodatkowe informacje na temat zawiłości związanych z Elasticsearch i wewnętrznymi algorytmami można znaleźć na stronie (https://www.elastic.co).

osób TGL TGL osób osób osób osób osób TGL TGL osób osób TGL osób osób osób TGL TGLI
Deskryptory MeSHLiczba zebranych identyfikatorów PMID
dorosły1 786 371
Średni wiek1 661 882
sędziwy1 198 778
nastolatek706 429
Młody dorosły486 259
dziecko480 218
Wiek, 80 lat i więcej453 348
Dziecko, Przedszkole285 183
niemowlę218 242
Niemowlę, Noworodek160 702
Niemowlę, Wcześniak17 701
Niemowlę, niska masa urodzeniowa5 707
Wątłe osoby w podeszłym wieku4 811
Niemowlę, bardzo niska masa urodzeniowa4 458
Niemowlę, małe jak na wiek ciążowy3 168
Niemowlę, skrajny wcześniak1 171
Niemowlę, skrajnie niska masa urodzeniowa1 003
Niemowlę, wcześniak62

Tabela 2. Statystyki mapowania MeSH do PMID. Poniższa tabela przedstawia wszystkie potomne deskryptory MeSH z "Grup wiekowych" oraz liczbę zebranych przez nie identyfikatorów PMID (dokumentów tekstowych). Wizualizację tych statystyk przedstawiono na rysunku 5.

osób osób osób TGL jedn. osób szt.
ZANiemowlę (INFT)Dziecko (CHLD)Młodzież (ADOL)Dorosły (ADLT)
Identyfikator główny MeSHM01.060.703Silnik M01.060.406M01.060.057M01.060.116
Liczba deskryptorów potomnych MeSH9cyfra arabska16
Liczba wybranych identyfikatorów PMID16 46626 90735 158172 394
Liczba znalezionych jednostekRozdział 233Rozdział 297Rozdział 257Z numerem 443
WChoroby metaboliczne (MBD)Zaburzenia odżywiania (NTD)
Identyfikator główny MeSHZobacz materiał C18.452Zobacz materiał C18.654
Liczba potomków MeSH
Deskryptory
Rozdział 30853 Rozdział 53
Liczba zebranych identyfikatorów PMID54 76219 181
Liczba znalezionych jednostek697Z numerem 432

Tabela 3. Metadane modułu tekstowego. Przedstawiono tabelaryczne przedstawienie metadanych modułu Text-Cube. Tabele zawierają informacje o kategoriach oraz korzeniach i potomkach deskryptora MeSH, które są implementowane w celu zbierania dokumentów w każdej komórce. W tabeli znajdują się również statystyki gromadzonych dokumentów i podmiotów. oraz "Grupy wiekowe": Jest to tabelaryczne przedstawienie "grup wiekowych", w tym niemowląt (INFT), dzieci (CHLD), młodzieży (ADOL) i dorosłych (ADLT) oraz ich identyfikatorów głównych MeSH, liczby deskryptorów MeSH potomków, liczby wybranych identyfikatorów PMID i liczby znalezionych jednostek. oraz "Choroby żywieniowe i metaboliczne": Jest to tabelaryczne przedstawienie "Chorób żywieniowych i metabolicznych", w tym chorób metabolicznych (MBD) i zaburzeń odżywiania (NTD) wraz z ich identyfikatorami głównymi MeSH, liczbą deskryptorów potomnych MeSH, liczbą wybranych identyfikatorów PMID i liczbą znalezionych jednostek.

Nazwy białek i synonimySkróty
Syntaza N-acetyloglutaminianu, mitochondrialna, acetylotransferaza aminokwasowa, syntaza N-acetyloglutamianu w długiej formie; Syntaza N-acetyloglutamianu w postaci krótkiej; Konserwatywna forma domeny syntazy N-acetyloglutaminianu](EC 2.3.1.1)
Deglikaza białkowa/kwasów nukleinowych DJ-1 (deglikaza Maillarda) (Onkogen DJ1) (białko 7 choroby Parkinsona) (Deglikaza związana z parkinsonizmem) (Białko DJ-1)(WE 3.1.2.-) (EC 3.5.1.-) (WE 3.5.1.124)(DJ-1)
Karboksylaza pirogronianowa, mitochondrialna (karboksylaza pirogronowa)(WE 6.4.1.1)(PCB)
Bcl-2-wiążący składnik 3 (modulator apoptozy regulowany w górę p53)(JFY-1)
Agonista śmierci domeny oddziałującej z BH3 [agonista śmierci domeny oddziałującej z BH3 p15 (p15 BID); Agonista śmierci domeny oddziałującej z BH3 p13 ; Agonista śmierci domeny oddziałującej z BH3 p11 ](p22 BID) (BID) (p13 BID)(p11 BID)
Podjednostka alfa syntazy ATP, mitochondrialna (podjednostka alfa syntazy ATP F1)
Cytochrom P450 11B2, mitochondrialny (syntaza aldosteronu) (enzym syntetyzujący aldosteron) (CYPXIB2) (cytochrom P-450Aldo) (cytochrom P-450C18) (steroidowa 18-hydroksylaza)(ALDOS) (WE 1.14.15.4) (WE 1.14.15.5)
60 kDa białko szoku cieplnego, mitochondria (60 kDa chaperonina) (Chaperonina 60) (CPN60) (Białko szoku cieplnego 60) (Białko macierzy mitochondrialnej P1) (białko limfocytów P60)(HSP-60) (HSP60) (HuCHA60)(EC 3.6.4.9)
Kaspaza-4 (ICE i homolog 2 Ced-3) (Proteaza TX) [Rozszczepiony na: podjednostkę kaspazy-4 1; Kaspaza-4 podjednostka 2](CASP-4) (EC 3.4.22.57)(ICH-2) (ICE(rel)-II) (Mih1)

Tabela 4. Przykładowa tabela encji. Poniższa tabela przedstawia próbkę jednostek wdrożonych w naszych dwóch przypadkach użycia: "Grupy wiekowe" oraz "Choroby żywieniowe i metaboliczne" (Rysunek 6 i Rysunek 7, Tabela 3A,B). Jednostki obejmują nazwy białek, synonimy i skróty. Każda jednostka (wraz z jej synonimami i skrótami) jest wybierana pojedynczo i przechodzi przez operację wyszukiwania encji na zindeksowanych danych (patrz protokół 3 i 5). Wyszukiwanie generuje listę dokumentów, które dodatkowo ułatwiają operację zliczania jednostek.

IlościZdefiniowane przez użytkownikaObliczanaRównanie wielkościZnaczenie ilości
prawośćtakNieIntegralność jednostek zdefiniowanych przez użytkownika uznawanych za 1.0.Reprezentuje znaczącą frazę. Wartość liczbowa wynosi 1,0, gdy jest to już ustalona fraza.
popularnośćNietakRównanie popularności na rysunku 1 (Przepływ pracy i algorytm) z odnośnika 5, sekcja "Materiały i metody".Na podstawie częstotliwości wyrażania frazy w komórce. Znormalizowane przez całkowitą częstotliwość czasową komórki. Wzrost częstotliwości terminów ma coraz mniejszy skutek.
OdrębnościNietakRównanie odrębności na rysunku 1 (Przebieg pracy i algorytm) z odnośnika 5, sekcja "Materiały i metody".Na podstawie częstotliwości terminów i częstotliwości dokumentów w komórce i w sąsiednich komórkach. Znormalizowane przez łączną częstotliwość terminów i częstotliwość dokumentów. Ilościowo jest to prawdopodobieństwo, że fraza jest unikatowa w określonej komórce.
Wynik CaseOLAPNietakRównanie punktacji CaseOLAP na rysunku 1 (Przepływ pracy i algorytm) z odnośnika 5, sekcja "Materiały i metody".Oparte na uczciwości, popularności i odrębności. Wartość liczbowa zawsze mieści się w zakresie od 0 do 1. Ilościowo wynik CaseOLAP reprezentuje skojarzenie fraza-kategoria

Tabela 5. Równania CaseOLAP: Algorytm CaseOLAP został opracowany przez Fangbo Tao i Jiawei Han et al. w 2016 roku1. W skrócie w tej tabeli przedstawiono obliczenie wyniku CaseOLAP składające się z trzech elementów: integralności, popularności i odrębności oraz związanego z nimi znaczenia matematycznego. W naszych przypadkach użycia wynik integralności dla białek wynosi 1,0 (maksymalny wynik), ponieważ są to ustalone nazwy jednostek. Wyniki CaseOLAP w naszych przypadkach użycia można zobaczyć na rysunkach 6C i 7C.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Autorzy nie mają nic do ujawnienia.

Acknowledgements

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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).

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Phrase-Based Summarization in Text Cubes. IEEE Data Engineering Bulletin. , 74-84 (2016).">Tao, F., Zhuang, H., et al. Phrase-Based Summarization in Text Cubes. IEEE Data Engineering Bulletin. , 74-84 (2016).
  2. TopCells: Keyword-based search of top-k aggregated documents in text cube. IEEE 26th International Conference on Data Engineering (ICDE). , 381-384 (2010).">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. Efficient Keyword-Based Search for Top-K Cells in Text Cube. IEEE Transactions on Knowledge and Data Engineering. 23 (12), 1795-1810 (2011).">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. 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).">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. Phrase Mining of Textual Data to analyze extracellular matrix protein patterns across cardiovascular disease. American Journal of Physiology-Heart and Circulatory. , (2018).">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. Automated Phrase Mining from Massive Text Corpora. IEEE Transactions on Knowledge and Data Engineering. 30 (10), 1825-1837 (2018).">Shang, J., et al. Automated Phrase Mining from Massive Text Corpora. IEEE Transactions on Knowledge and Data Engineering. 30 (10), 1825-1837 (2018).
  7. Mining Quality Phrases from Massive Text Corpora. Proceedings ACM-Sigmod International Conference on Management of Data. , 1729-1744 (2015).">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. 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).">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. Text Cube: Computing IR Measures for Multidimensional Text Database Analysis. IEEE Data Mining. , 905-910 (2008).">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. Accelerating Topic Exploration of Multi-Dimensional Documents Parallel and Distributed Processing Symposium Workshops (IPDPSW). IEEE International. , 1520-1527 (2017).">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. An overview of data warehousing and OLAP technology. SIGMOD Record. 26 (1), 65-74 (1997).">Chaudhuri, S., Dayal, U. An overview of data warehousing and OLAP technology. SIGMOD Record. 26 (1), 65-74 (1997).
  12. Olap aggregation function for textual data warehouse. ICEIS - 9th International Conference on Enterprise Information Systems, Proceedings. , 151-156 (2007).">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. Range Queries in OLAP Data Cubes. SIGMOD Conference. , (1997).">Ho, C. T., Agrawal, R., Megiddo, N., Srikant, R. Range Queries in OLAP Data Cubes. SIGMOD Conference. , (1997).
  14. Olap Cube Representation for Object- Oriented Database. International Journal of Software Engineering & Applications. 3 (2), (2012).">Saxena, V., Pratap, A. Olap Cube Representation for Object- Oriented Database. International Journal of Software Engineering & Applications. 3 (2), (2012).
  15. Advanced visualization for OLAP. DOLAP. , (2003).">Maniatis, A. S., Vassiliadis, P., Skiadopoulos, S., Vassiliou, Y. Advanced visualization for OLAP. DOLAP. , (2003).
  16. Benchmarking Transaction and Analytical Processing Systems: The Creation of a Mixed Workload Benchmark and its Application. , Springer Science & Business Media. 7-13 (2013).">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. Hybrid Transactional/Analytical Processing: A Survey. In Proceedings of the ACM International Conference on Management of Data (SIGMOD). , 1771-1775 (2017).">Ö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. An Efficient Implementation for MOLAP Basic Data Structure and Its Evaluation. International Conference on Database Systems for Advanced Applications. , 288-299 (2007).">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. Advances in Databases: Concepts, Systems and Applications. DASFAA 2007. Lecture Notes in Computer Science. 4443, (2007).">Nantajeewarawat, E. Advances in Databases: Concepts, Systems and Applications. DASFAA 2007. Lecture Notes in Computer Science. 4443, (2007).
  20. A storage scheme for multidimensional data alleviating dimension dependency. Third International Conference on Digital Information Management. , 662-668 (2007).">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).

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Cloud Based Phrase MiningCaseOLAP AlgorithmText Cube CreationEntity Count OperationMetadata Update ProcessElasticsearch IndexingMesh Tree ProcessingPhrase Category AssociationBiomedical Text AnalysisSemantic Online Analytical Processing

Related Articles