Mapa powiązań TRACE-CT z materiałem edukacyjnym
TRACE-CT (lokalnie
../trace-ct, gdy repozytorium jest pobrane; w ForgejoBioMedical-IT/trace-ct— bieżący stan znajduje się w gałęzidevelop) 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
MEASUREDodIMPLEMENTED / 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.