Bachelor's Thesis

Services for Crystalographic Database

Final Thesis 3.92 MB

Author of thesis: Bc. Aron Vilímek

Acad. year: 2025/2026

Supervisor: Ing. Zbyněk Křivka, Ph.D.

Reviewer: RNDr. Marek Rychlý, Ph.D.

Abstract:

This bachelor's thesis focuses on the design and implementation of a local database service for crystallographic data derived from CIF files and its integration into a tool for EBSD data workflows. The theoretical part summarizes the basic concepts of crystallography, the properties of the CIF format, existing crystallographic databases, and technological approaches suitable for storing, searching, and exposing such data. It also analyzes inter-system communication methods with an emphasis on remote procedure calls, particularly gRPC. Based on this analysis, a service is designed and implemented to support the import, storage, search, and management of crystallographic records and their organization into groups. The implementation uses Rust, an embedded database, and a gRPC interface for communication with the client application. The resulting solution also includes a graphical client for searching, filtering, and managing records, as well as a visualization layer for displaying the unit cell, Kikuchi sphere, and the projection of reflector bands into the diffraction pattern. The thesis evaluates the achieved results, the benefits of the proposed architecture and possible directions for future development.

Keywords:

crystallography, CIF, EBSD, local database service, gRPC, Rust, crystal structure visualization

Date of defence

18.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C.

Topics for thesis defence

  1. Popis implementace a interakce s databázovou vrstvou v kap. 6.1 je nepřehledný. Popište, jak to funguje, diagramem.
  2. V kap. 6.3.2 popisujete "generování geometrie v Rustu", avšak žádný netriviální Rust kód zde neuvádíte. Vysvětlete, v čem je v tomto generování Rust specifický, např. v porovnání se stejným postupem v jazyce JavaScript či jiném vhodném pro integraci do použité platformy.

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
doc. Ing. Vladimír Janoušek, Ph.D. (místopředseda)
Ing. Radek Hranický, Ph.D. (člen)
Ing. Jiří Matoušek, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)

Supervisor’s report
Ing. Zbyněk Křivka, Ph.D.

Student prokázal značnou míru samostatnosti, ale ne na úkor konzultací s vedoucím. Demonstrovaná výsledná aplikace splňuje požadavky a vypadá prakticky použitelně. Její kvalitu z hlediska UI/UX budou muset posoudit její budoucí odborní uživatelé. Z pohledu vedoucího navrhuji stupeň B.

Evaluation criteria Verbal classification
Informace k zadání

Práce se zabývá technologickou aktualizací proprietární aplikace pro práci s krystalografickými daty. Jednalo se k aktualizaci jak datové, tak prezentační vrstvy společně s přechodem na webové a jiné moderní technologie. Student se tak musel zorientovat v netradiční znalostní doméně, kde se používají neSQL databáze a aplikace má poměrně specifické prvky grafického uživatelského rozhraní.

Práce s literaturou

Student si nad rámec doporučené literatury doplnil řadu relevantních pramenů, ať už o dané doméně, či nových relevantních technologiích.

Aktivita během řešení, konzultace, komunikace

Student nakonec pracoval na tématu 2 roky a aktivita na řešení tím byla částečně ovlivněna, protože značnou část práce měl student již hotovu z minulého roku. Většina letošní práce byla soustředěna do letního semestru, kdy student několikrát konzultoval včetně ilustrace, co již implementoval a dále ohledně struktury textu práce.

Aktivita při dokončování

Student konzultoval několik verzí a průběžně zapracoval všechny připomínky vedoucího.

Publikační činnost, ocenění

Nejsem si vědom publikační činnosti.

Points proposed by supervisor: 80

Grade proposed by supervisor: B

Reviewer’s report
RNDr. Marek Rychlý, Ph.D.

Technická zpráva i výsledné programové řešení vykazují drobné nedostatky a celkově jsou spíše průměrné kvality. Navrhuji hodnotit práci stupněm dobře (C).

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: průměrně obtížné zadání

Jedná se o průměrně obtížné zadání. Řešení stavělo na existujících knihovnách a technologiích a, přestože vyžadovalo pochopení složité problematiky krystalografie, z pohledu informačních technologií nebylo obtížnější.

Prezentační úroveň technické zprávy

Technická zpráva má logickou strukturu, některé kapitoly by však bylo vhodné rozdělit. Např. kap. 6.1 popisuje různé aspekty implementované databázové vrstvy v dlouhém souvislém textu a také další podkapitoly v kap. 6 jsou značně nepřehledné. Text technické zprávy je v českém jazyce, avšak popis uvnitř diagramů a tabulek je anglicky. Tabulka 5.1 na str. 25 prezentuje výsledky výkonnostního testování různých způsobů uložení a načítání dat, avšak tyto způsoby nejsou nikde v práci popsány, resp. neodpovídají zcela způsobům představeným v předchozích kapitolách (zejména kap. 3.3). Celkově je text místy špatně pochopitelný, zejména při popisu vlastního řešení.

75
Formální úprava technické zprávy

Po typografické stránce je technická zpráva v pořádku (s výjimkou chybějící tečky za 1. odst. na str. 22 a příliš malého písma v obr. 5.1/5.2 na str. 23/24). Text obsahuje jazykové nedostatky, např. anglické popisky ve vlastním obr. 5.1 a 5.2 nad str. 23 a 24 (případně chybějící zdroj, pokud je obrázek převzat), nevhodné skloňování cizích slov a názvů (např. "ve Figmě" na str. 27), a celkově neobratný styl, který místy stěžuje porozumění, zejména u málo strukturovaných kapitol (kap. 6).

75
Realizační výstup

Realizačním výstupem je CIF parser a úplná databázová služba pro krystalografická data (obojí v jazyce Rust) a klientská aplikace pro přidávání a vizualizaci dat s uživatelským rozhraním (v React s Rust komponentami přes Wasm). Oceňuji povedené a prakticky zaměřené uživatelské rozhraní v aplikaci pro vizualizaci. Programový kód je dobře členěn, testován v kritických částech (spíše integrační testy), avšak není dostatečně komentován (zejména chybí strukturované komentáře), což může komplikovat jeho další využití.

85
Využitelnost výsledků

Výsledky práce jsou prakticky použitelné, jak prokazuje očekávané nasazení spol. Thermo Fisher Scientific.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Zadání je splněno v celém rozsahu.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Technická zpráva je svým rozsahem v obvyklém rozmezí, od úvodu po závěr obsahuje 49 vysázených stran (76 normostran). Všechny části technické zprávy jsou informačně bohaté a pro práci skutečně nezbytné.

Práce s literaturou

Seznam literatury obsahuje 36 položek, z nichž přibližně polovinu tvoří odborná literatura a zbytek online zdroje. Prameny jsou popsány dle zvyklostí, s výjimkou chybějících dat citací u online zdrojů, a v textu práce je dobře patrný způsob a rozsah jejich použití. V případě pol. 13-14 je nevhodně organizace Oxford Instruments zkrácena jako jméno autora.

75
Topics for thesis defence:
  1. Popis implementace a interakce s databázovou vrstvou v kap. 6.1 je nepřehledný. Popište, jak to funguje, diagramem.
  2. V kap. 6.3.2 popisujete "generování geometrie v Rustu", avšak žádný netriviální Rust kód zde neuvádíte. Vysvětlete, v čem je v tomto generování Rust specifický, např. v porovnání se stejným postupem v jazyce JavaScript či jiném vhodném pro integraci do použité platformy.
Points proposed by reviewer: 79

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová