Przejdź do głównej zawartości

Mapa powiązań TRACE-CT z materiałem edukacyjnym

TRACE-CT (lokalnie ../trace-ct, gdy repozytorium jest pobrane; w Forgejo BioMedical-IT/trace-ct — bieżący stan znajduje się w gałęzi develop) jest głównym laboratorium praktycznym. Ta mapa łączy jego rzeczywistą pracę z rozdziałami edukacyjnymi, dzięki czemu ścieżka nigdy nie pozostaje abstrakcyjna. Wszystkie poniższe ścieżki są odniesieniami tylko do odczytu — kod TRACE-CT nie jest kopiowany do tego repozytorium (D-001).

Słownik statusów: MEASURED = wykonano i zapisano w repozytorium dowody w formacie przeznaczonym do odczytu maszynowego. IMPLEMENTED / FROZEN DESIGN = istnieją kod, konfiguracja i metody statystyczne oraz zostały one zamrożone, lecz nie ma jeszcze wyniku dla całej kohorty. Nigdy nie przedstawiaj zamrożonego projektu jako zmierzonego wyniku.

Prace w TRACE-CT → rozdziały edukacyjne

Podstawy (MEASURED, bez zmian)

Praca w TRACE-CT Poznawane pojęcie Rozdział Dlaczego ma to znaczenie
Inwentaryzacja i kontrola wstępna RIDER — scripts/rider_preflight.py (skanowanie, klasyfikowanie CT/SEG, grupowanie akwizycji, wybieranie rekonstrukcji, parowanie powtórzeń, rozstrzyganie odwołań SEG, ocena geometrii i przydatności danych) Klasyfikacja obiektów DICOM; grupowanie Study/Series; wybór rekonstrukcji; parowanie test–retest 1, 2 Praca na rzeczywistych danych na poziomie pacjenta; granice danych w praktyce
Kontrola metadanych DICOM — rider_preflight.py (identyfikatory UID Series/Study/FoR, kernel, kVp, SliceThickness, ImageType, PixelSpacing, IOP/IPP) Hierarchia i identyfikatory DICOM; kernel i grubość jako zmienne 1 Kontrakt (metadane), który trzeba odczytać przed właściwą zawartością (pikselami)
Powiązanie CT/SEG — build_seg_meta() / resolve_seg_references(); seg_decode_resample.py decode_seg_file() / build_source_mask_on_ct_grid() Odwołania do obrazów źródłowych; grupy funkcyjne poszczególnych ramek; tożsamość segmentu 2 Jak SEG wskazuje źródłowe CT i dlaczego dopasowanie odbywa się na podstawie SOP UID
Walidacja geometrii — compute_slice_normal(), build_affine(), project_position(), orientations_equivalent(), spacings_equivalent(), positions_equivalent(); load_ct_volume_explicit() Cosinusy kierunkowe; normalna do warstwy; porządkowanie geometryczne; EXACT_GRID a RESAMPLED 2 Całe części A/B rozdziału 2, zaimplementowane i przetestowane
Konwersja na HU — load_ct_volume_explicit() (pixel*slope+intercept); clip_intensities() (przycięcie do [-1000,+400] po zmianie próbkowania) RescaleSlope/Intercept; praca w fizycznych jednostkach HU; kolejność: najpierw zmiana próbkowania, potem przycięcie 1, 2, 3 Nigdy nie traktuj zapisanych wartości pikseli jako HU; kolejność operacji stanowi część definicji pomiaru
Przenoszenie masek i zmiana próbkowania — resample_mask_inverse_nn(), classify_transfer_pair(), verify_determinism(); resample_image_isotropic() (B-spline → 1 mm), resample_mask_nn(), affine_to_sitk_geometry() Interpolacja liniowa a metoda najbliższego sąsiada; odwrotne NN; determinizm; pomost do SimpleITK; przekroczenie zakresu przy interpolacji B-spline i późniejsze przycięcie 2 Zmianę próbkowania masek wykonuje się inaczej niż obrazów; taki sam kształt ≠ ta sama przestrzeń
Wizualna kontrola jakości w 3D Slicer — tools/slicer/open_qc_bundle.py; scripts/visual_qc/*; schemas/visual-qc-bundle-v1.schema.json; aggregate_qc_reviews.py (zbiorczy materiał dowodowy z ocen, z zachowaniem prywatności) Wizualna kontrola jakości jako rzeczywista, audytowalna weryfikacja geometrii i nakładania się danych 2, 3 Zobacz pojęcia dotyczące geometrii w przeglądarce obrazów; zapisz werdykt, który można obronić
Determinizm / porównanie między niezależnymi procesami — check_determinism=True (1e-6); compare_radiomics_runs.py Odtwarzalność wartości liczbowych przed zastosowaniem jakiejkolwiek statystyki 3, 4 Zgodność w granicach zadeklarowanej tolerancji numerycznej nie oznacza identyczności bit po bicie; dokładna identyczność wymaga osobnej kontroli

Kontrola wstępna (rider_preflight.py check_geometry()) sprawdza kompletność metadanych przestrzennych wybranych serii i powiązanie SEG oraz przypisuje stan geometrii na poziomie podmiotu przy użyciu EXACT_GRID, RESAMPLING_REQUIRED_UNVALIDATED, INCOMPATIBLE lub UNRESOLVED. Macierz kwalifikacji dodatkowo rozróżnia zwalidowaną zmianę próbkowania i przypadki braku danych (RESAMPLING_REQUIRED_VALIDATED, MISSING). Niezależnie od tego funkcje pomocnicze geometrii w seg_decode_resample.py porównują orientację, odstępy i położenia w granicach skonfigurowanych tolerancji, a classify_transfer_pair() podsumowuje parę transferu źródło–cel jako exact_grid lub resampled. Sam stan kontroli wstępnej nie jest dowodem zgodności siatek w przestrzeni fizycznej. Etykiety EXACT_GRID/RESAMPLING_REQUIRED/INCOMPATIBLE w książce są etykietami dydaktycznymi rozdziału, a nie wartościami wewnętrznego typu wyliczeniowego projektu.

M1-07 — braki danych klinicznych i imputacja (MEASURED)

Artefakt TRACE-CT (tylko do odczytu) Poznawane pojęcie Rozdział
configs/m1-07-plan-b.json + results/metrics/m1-07-plan-b-split-mask-provenance.json Jeden zamrożony podział na poziomie uczestnika (101/22/21, ze stratyfikacją według zdarzenia×płci, skrót SHA-256 przynależności do podzbiorów); maski z zamrożonym ziarnem 4 (lekcja 9)
scripts/m1_07_experiment.py; results/metrics/m1-07-plan-b-imputation-metrics.json Punkt odniesienia oparty na medianie/modzie; przybliżenie z rodziny MICE (IterativeImputer+BayesianRidge — nie pełna imputacja wielokrotna); osobny CatBoost dla każdej zmiennej docelowej; sztuczne maskowanie (MCAR 10/20/30% + zależne od płci); dopasowanie wyłącznie na zbiorze treningowym; zmienne wynikowe i identyfikatory strukturalnie wykluczone 4 (lekcja 9)
results/metrics/nsclc-radiogenomics-m1-07-clinical-profile.json Braki danych jako zmierzona zmienna; kliniczny punkt odniesienia, który musi przewyższyć obrazowanie 4
Status pomiaru 60/60 uruchomień, zero niepowodzeń; odtwarzanie odłożonych wartości oraz metryki zależności obliczane wyłącznie na zbiorze treningowym w każdym uruchomieniu — odtwarzalne porównanie metod, nie twierdzenie o trafności klinicznej 4

M1-08 — ograniczony eksperyment generatywny (MEASURED)

Artefakt TRACE-CT (tylko do odczytu) Poznawane pojęcie Rozdział
configs/m1-08-plan-b.json Zamrożony schemat generowanych danych (9 pól), N=94 kompletnych przypadków jako dane odniesienia dla generatora, deficyt 51 wierszy Female, ziarna 1729/2718/3141, jedna ograniczona korekta na model 4 (lekcja 10)
scripts/m1_08_generative_experiment.py Warunkowe generowanie CTGAN a bezwarunkowy TabDDPM + wybór kolejności generowania (nigdy „conditional TabDDPM”); bez filtrowania według jakości; bez zmniejszania liczby rzeczywistych wierszy 4 (lekcja 10)
results/metrics/m1-08-plan-b-generative-metrics.json + results/figures/m1-08/ Wierność poszczególnych pól (KS/częstość występowania), zachowanie zależności (Pearson/Spearman · Cramér’s V · η), wskaźniki ryzyka zapamiętywania oparte na odległości Gowera, kryteria dopuszczalności raportowania podgrup 4 (lekcja 10)
Dalsza ocena modelem Coxa C-index punktu odniesienia opartego wyłącznie na danych klinicznych 0.789 wobec 0.743–0.817 po rozszerzeniu danych za pomocą TabDDPM (przedziały ufności nakładają się — nie wykazano korzyści); kalibracja/IBS tylko przy ≥ 10 zdarzeniach; zachowane wyniki negatywne (nie wykazano warunkowego odwzorowania CTGAN; brak spełnionych KPI1-C; podwyższone sygnały zapamiętywania przez TabDDPM dla 2/3 ziaren) 4 (lekcje 7, 10)
docs/model-card-m1-08.md Rzetelne raportowanie ograniczonego eksperymentu generatywnego, z uwzględnieniem wyników negatywnych 4, 7

M1-09 — odporność radiomiki RIDER (M1-09A: IMPLEMENTED / FROZEN DESIGN; M1-09B: MEASURED — kwalifikacja; M1-09C: MEASURED — pierwotna powtarzalność test–retest; M1-09D/E: oczekujące/prace uzupełniające)

Zamrożenie M1-09A (D-023, scalone 19 sierpnia 2026 r.; zgłoszenia #49/#48) jest najbogatszym pojedynczym artefaktem edukacyjnym w TRACE-CT: całe badanie odporności określono zanim pojawił się jakikolwiek wynik dla całej kohorty. M1-09B zawiera już zmierzone dowody z kwalifikacji całej kohorty (TRACE-CT CL-025, rider-m1-09b-qualification.json), a zamrożona pierwotna analiza test–retest M1-09C została zmierzona zgodnie z zamrożonym kontraktem. Wyniki te stanowią dowód dotyczący tej kohorty i tego protokołu, a nie uniwersalne twierdzenie o rodzinach cech ani przydatności klinicznej; M1-09D/E pozostają do wykonania jako prace uzupełniające.

Zamrożony artefakt (tylko do odczytu) Poznawane pojęcie Rozdział
Protokół: docs/experiment-protocol.md § M1-09 + DECISIONS.md D-023 Wstępna specyfikacja / zapobieganie dostrajaniu: zamrożenie kohorty, przetwarzania wstępnego, metod statystycznych i progów przed uzyskaniem wyników; zastosowanie zasad przeciwdziałania odchodzeniu od zakresu do własnego protokołu 3 (lekcja 13), 7
Projekt obejmujący sześć ustawień (classify_source_role() przypisuje etykiety lung_1_25mm i standard_5_0mm): 1.25L/1.25S/2.5L/2.5S/5L/5S; analiza pierwotna = test–retest 1.25L; analiza wtórna = wszystkie 15 par ustawień Rekonstrukcja jako macierz, a nie pojedynczy przykład; powtarzalność i zgodność między rekonstrukcjami jako odrębne analizy 1 (lekcja 3), 3 (lekcja 6)
Kontrakt przetwarzania wstępnego — scripts/rider_radiomics_extraction.py: CT → dekodowanie SEG → zewnętrzna zmiana próbkowania do 1 mm metodami B-spline/NN → przycięcie do [-1000,+400] → PyRadiomics; reguła zakazująca podwójnej zmiany próbkowania Kolejność operacji jako część definicji pomiaru; przycinanie ≠ resegmentacja 2 (lekcja 7), 3 (lekcja 10)
configs/rider-m1-09-feature-manifest.json (107 cech Original 3D, SHA-256 d236c898…c5c1) + configs/pyradiomics_params.yaml Rodziny cech; projekt bazowy obejmujący wyłącznie cechy Original; manifest opatrzony skrótem; nazwy kanoniczne 3 (lekcje 2, 10; dodatek 91)
scripts/rider_feature_manifest.py --verify Tekst konfiguracji a konfiguracja faktycznie stosowana przez ekstraktor o przypiętej wersji; przypinanie wersji (3.1.1.dev111+g8ed579383, commit 8ed579383…7522ab) 3 (lekcja 10)
scripts/repeatability_stats.py + tests/unit/test_repeatability_stats.py Lin CCC (estymator oparty na momentach populacyjnych, linia identyczności, przypadki zdegenerowane); bootstrap na poziomie uczestników z zachowaniem par pomiarów (10 000, ziarno 1729, percentylowy CI, ≥ 0.95 poprawnych wyników, RUN/NOT_RUN); walidacja względem wektorów analitycznych 3 (lekcje 11, 12)
Reguły dopuszczalności raportowania (REPORTABLE wymaga ≥ 25 prawidłowych par test–retest o skończonych wartościach oraz matematycznie zdefiniowanego CCC; przyczyny NOT_REPORTABLE: insufficient_valid_pairs_below_25, ccc_undefined_too_few_finite_pairs, ccc_undefined_degenerate_denominator, insufficient_valid_bootstrap_fraction_below_0.95, bootstrap_not_run_point_ccc_not_reportable) + CCC ≥ 0.90 jako opisowy punkt odniesienia Progi jako konwencje; opisowy ≠ zaliczenie/niezaliczenie ≠ wybór cech; semantyka liczebności kwalifikującej się próby (niepowodzenia zmniejszają liczbę par o skończonych wartościach, nigdy liczbę przypadków kwalifikujących się do analizy) 3 (lekcje 6, 11)
Ograniczenia zabezpieczające: bez ComBat/harmonizacji/falek/odszumiania/wyboru/modelowania w M1-09 Warstwa pomiarowa; dlaczego należy zmierzyć stan bazowy przed interwencją; jeden eksperyment, jedno pytanie 3 (lekcje 9, 13)

Sekwencja wykonania (bieżący status): M1-09B ma status MEASURED: dowody z kwalifikacji całej kohorty (CL-025 / rider-m1-09b-qualification.json) → M1-09C ma status MEASURED: pierwotna powtarzalność test–retest dla 1.25L → M1-09D/E pozostają oczekującymi dalszymi pracami nad porównaniem ustawień rekonstrukcji i pakietem dowodowym. M1-09C nie odpowiada na pytanie o odporność na zmianę rekonstrukcji, nie ustanawia uniwersalnego rankingu rodzin cech ani nie wykazuje trafności klinicznej.

Przyszłe możliwości edukacyjne (jeszcze nieaktywne)

Możliwość Pojęcie Rozdział Warunek uruchomienia / ograniczenie
Zmierzone wyniki M1-09D/E Odczytywanie dowodów najpierw z zamrożonego projektu, a następnie z pomiarów w miarę ich napływania 3, 4 Wykonanie M1-09D–E
Harmonizacja CT (ComBat) Korekta efektu partii zależnego od skanera/ośrodka i jej założenia — po określeniu bazowej odporności, jako osobno zamrożony eksperyment 3, 4 M1-09 ma status MEASURED; spełnione założenia ComBat
Synteza obrazu brakującej akwizycji Warunkowa synteza obrazu; ocena wykraczająca poza realizm pikseli 6, notatka TRACE-CT uruchomi syntezę (D-011); obecny eksperyment poprzedzający Spark pozostaje ograniczony

Jak korzystać z tej mapy

  • Gdy w rozdziale pojawia się „powiązanie z TRACE-CT”, tutaj znajdziesz konkretną ścieżkę.
  • Otwórz plik TRACE-CT obok rozdziału; przeczytaj go, aby zobaczyć implementację pojęcia, ale nigdy nie kopiuj go tutaj.
  • We wszystkim, co piszesz, odróżniaj MEASURED od IMPLEMENTED / FROZEN DESIGN — kolumna statusu na mapie stanowi część lekcji.
  • Przyszłe możliwości nie są zobowiązaniami — stają się aktywne dopiero po wystąpieniu warunku uruchamiającego w projekcie (zgodnie z zasadami przeciwdziałania odchodzeniu od zakresu) i nigdy nie rozszerzają obecnego, ograniczonego eksperymentu.

© 2026 Adrian Tkacz · BioMedical-IT
Oryginalne teksty i ilustracje są udostępniane na licencji Creative Commons Uznanie autorstwa–Użycie niekomercyjne 4.0 Międzynarodowe (CC BY-NC 4.0), o ile nie zaznaczono inaczej. Przy ponownym wykorzystaniu proszę podać Adrian Tkacz / BioMedical-IT jako autora i zamieścić odnośnik do oryginalnego źródła. Materiały osób trzecich zachowują własne prawa i warunki licencyjne.