JoVE Logo

Sign In

A subscription to JoVE is required to view this content. Sign in or start your free trial.

In This Article

  • Summary
  • Abstract
  • Introduction
  • Protocol
  • النتائج
  • Discussion
  • Disclosures
  • Acknowledgements
  • Materials
  • References
  • Reprints and Permissions

Summary

تقوم هذه الدراسة بتقييم الأنظمة التنبؤية لمرضى سرطان الخلايا الحلقية في القولون والمستقيم باستخدام نماذج التعلم الآلي وتحليلات المخاطر المتنافسة. يحدد احتمالات العقد الليمفاوية الإيجابية كمؤشر متفوق مقارنة بمرحلة pN ، مما يدل على أداء تنبؤي قوي ويساعد في اتخاذ القرارات السريرية من خلال أدوات التنبؤ بالبقاء على قيد الحياة القوية.

Abstract

حالة العقدة الليمفاوية هي مؤشر تنبؤي حاسم للمرضى. ومع ذلك ، فإن تشخيص سرطان الخلايا الحلقية القولون والمستقيم (SRCC) قد حظي باهتمام محدود. تبحث هذه الدراسة في القدرة التنبؤية التشخيصية لاحتمالات السجل للغدد الليمفاوية الإيجابية (LODDS) ، ونسبة العقدة الليمفاوية (LNR) ، والتدريج pN في مرضى SRCC باستخدام نماذج التعلم الآلي (Random Forest و XGBoost و Neural Network) جنبا إلى جنب مع نماذج المخاطر المتنافسة. تم استخراج البيانات ذات الصلة من قاعدة بيانات الترصد وعلم الأوبئة والنتائج النهائية (SEER). بالنسبة لنماذج التعلم الآلي ، تم تحديد العوامل التنبؤية للبقاء على قيد الحياة النوعي للسرطان (CSS) من خلال تحليلات انحدار كوكس أحادية المتغير ومتعددة المتغيرات ، متبوعة بتطبيق ثلاث طرق للتعلم الآلي - XGBoost و RF و NN - للتأكد من نظام التدريج الأمثل للعقدة الليمفاوية. في نموذج المخاطر المتنافس ، تم استخدام تحليلات المخاطر المتنافسة أحادية المتغير ومتعددة المتغيرات لتحديد العوامل التنبؤية ، وتم إنشاء مخطط للرسم البياني للتنبؤ بتشخيص مرضى SRCC. واستخدمت المنطقة الواقعة أسفل منحنى الخصائص التشغيلية للمستقبل (AUC-ROC) ومنحنيات المعايرة لتقييم أداء النموذج. تم تضمين ما مجموعه 2,409 مريضا من SRCC في هذه الدراسة. للتحقق من فعالية النموذج ، تم تضمين مجموعة إضافية من 15,122 مريضا بسرطان القولون والمستقيم ، باستثناء حالات SRCC ، للتحقق من الصحة الخارجية. أظهر كل من نماذج التعلم الآلي ومخطط المخاطر المتنافس أداء قويا في التنبؤ بنتائج البقاء على قيد الحياة. بالمقارنة مع التدريج pN ، أظهرت أنظمة التدريج LODDS قدرة تنبؤية فائقة. عند التقييم ، حققت نماذج التعلم الآلي ونماذج المخاطر المتنافسة أداء تنبؤيا ممتازا يتميز بالتمييز الجيد والمعايرة وقابلية التفسير. قد تساعد النتائج التي توصلنا إليها في إبلاغ عملية صنع القرار السريري للمرضى.

Introduction

يصنف سرطان القولون والمستقيم (CRC) على أنه ثالث أكثر الأورام الخبيثة انتشارا على مستوى العالم1،2،3. سرطان الخلايا الحلقية الخاتم (SRCC) ، وهو نوع فرعي نادر من سرطان الخلايا الحلقية ، يشتمل على ما يقرب من 1٪ من الحالات ويتميز بكثرة من الميوسين داخل الخلايا الذي يزيح نواة الخلية1،2،4. غالبا ما يرتبط SRCC بالمرضى الأصغر سنا ، وله انتشار أعلى بين الإناث ، ولديه مراحل متقدمة من الورم عند التشخيص. بالمقارنة مع سرطان القولون والمستقيم الغدي ، يظهر SRCC تمايزا أضعف ، وخطرا أعلى للإصابة بالورم الخبيث البعيد ، ومعدل بقاء لمدة 5 سنوات فقط 12٪ -20٪ 5،6. يعد تطوير نموذج تنبؤي دقيق وفعال ل SRCC أمرا بالغ الأهمية لتحسين استراتيجيات العلاج وتحسين النتائج السريرية.

تهدف هذه الدراسة إلى بناء نموذج تنبؤي قوي لمرضى SRCC باستخدام مناهج إحصائية متقدمة ، بما في ذلك التعلم الآلي (ML) ونماذج المخاطر المتنافسة. يمكن لهذه المنهجيات أن تستوعب العلاقات المعقدة في البيانات السريرية ، وتقدم تقييمات فردية للمخاطر وتتجاوز الأساليب التقليدية في الدقة التنبؤية. تتفوق نماذج التعلم الآلي ، مثل Random Forest و XGBoost و Neural Networks ، في معالجة البيانات عالية الأبعاد وتحديد الأنماط المعقدة. أظهرت الدراسات أن نماذج الذكاء الاصطناعي تتنبأ بشكل فعال بنتائج البقاء على قيد الحياة في سرطان القولون والمستقيم ، مع التركيز على إمكانات ML في التطبيقات السريرية7،8. استكمالا للتعلم الآلي ، تعالج نماذج المخاطر المتنافسة أنواعا متعددة من الأحداث ، مثل الوفيات الخاصة بالسرطان مقابل أسباب الوفاة الأخرى ، لتحسين تحليل البقاء على قيد الحياة. على عكس الأساليب التقليدية مثل مقدر كابلان ماير ، تقدر نماذج المخاطر المتنافسة بدقة الاحتمال الهامشي للأحداث في وجود مخاطر متنافسة ، مما يوفر تقييمات أكثر دقة للبقاءعلى قيد الحياة 8. يعزز دمج التعلم الآلي وتحليل المخاطر المتنافسة الأداء التنبؤي ، مما يوفر إطارا قويا لأدوات التشخيص الشخصية في SRCC9،10،11.

يؤثر ورم خبيث العقدة الليمفاوية بشكل كبير على التشخيص والتكرار لدى مرضى سرطان القولون. في حين أن تقييم المرحلة N في تصنيف TNM أمر بالغ الأهمية ، إلا أن فحص العقدة الليمفاوية غير الكافي - الذي تم الإبلاغ عنه في 48٪ -63٪ من الحالات - يمكن أن يؤدي إلى التقليل من تقدير المرض. لمعالجة هذا الأمر ، تم تقديم مناهج بديلة مثل نسبة العقدة الليمفاوية (LNR) واحتمالات العقد الليمفاوية الإيجابية (LODDS). LNR ، نسبة الغدد الليمفاوية الإيجابية (PLNs) إلى إجمالي الغدد الليمفاوية (TLNs) ، أقل تأثرا بعدد TLN وتعمل كعامل تنبؤي في CRC. أظهرت LODDS ، النسبة اللوغاريتمية ل PLNs إلى الغدد الليمفاوية السالبة (NLNs) ، قدرة تنبؤية فائقة في كل من SRCC المعدة وسرطان القولون والمستقيم10،11. تم تطبيق التعلم الآلي بشكل متزايد في علم الأورام ، حيث تعمل النماذج على تحسين التقسيم الطبقي للمخاطر والتنبؤات التنبؤية عبر أنواع مختلفة من السرطان ، بما في ذلك سرطان الثدي والبروستاتا والرئة12،13،14. ومع ذلك ، فإن تطبيقه في SRCC للقولون والمستقيم لا يزال محدودا.

تسعى هذه الدراسة إلى سد هذه الفجوة من خلال دمج LODDS مع التعلم الآلي ونماذج المخاطر المتنافسة لإنشاء أداة تنبؤية شاملة. من خلال تقييم القيمة التنبؤية ل LODDS والاستفادة من التقنيات التنبؤية المتقدمة ، يهدف هذا البحث إلى تعزيز اتخاذ القرار السريري وتحسين النتائج لمرضى SRCC.

Access restricted. Please log in or start a trial to view this content.

Protocol

لا تشير هذه الدراسة إلى الموافقة الأخلاقية والموافقة على المشاركة. تم الحصول على البيانات المستخدمة في هذه الدراسة من قواعد البيانات. قمنا بتضمين المرضى الذين تم تشخيص إصابتهم بسرطان الخلايا الحلقية في القولون والمستقيم من عام 2004 إلى عام 2015 ، بالإضافة إلى أنواع أخرى من سرطان القولون والمستقيم. وشملت معايير الاستبعاد المرضى الذين تقل مدة بقائهم على قيد الحياة عن شهر واحد، وأولئك الذين لديهم معلومات سريرية مرضية غير مكتملة، والحالات التي كان فيها سبب الوفاة غير واضح أو غير محدد.

1. الحصول على البيانات

  1. قم بتنزيل SEER. احصل على برنامج الإحصائيات 8.4.3 من موقع قاعدة بيانات SEER (http://seer.cancer.gov/about/overview.html). بعد تسجيل الدخول إلى البرنامج ، انقر فوق جلسة قائمة الحالات > البيانات وحدد قاعدة بيانات Incident SEER Research Plus ، 17 تسجيلا ، نوفمبر 2021 الفرعية (2000-2019).
  2. انقر فوق التحديد > تحرير واختر {العرق ، الجنس ، السنة Dx. سنة التشخيص} = "2004" ، "2005" ، "2006" ، "2007" ، "2008" ، "2009" ، "2010" ، "2011" ، "2012" ، "2013" ، "2014" ، "2015" و {الموقع والتشكل. إعادة ترميز الموقع ICD-O-3/WHO 2008} = '8490/3'.
  3. ثم انقر فوق الجدول ، وفي واجهة المتغيرات المتاحة ، حدد إعادة ترميز العمر مع الأعمار الفردية و 100+ ، الجنس ، الزواج ، إعادة ترميز الموقع ICD-O-3 / WHO 2008 ، حجم ورم CS ، nodes_examined الإقليمي (1988+) ، nodes_positive الإقليمي (1988+) ، مجموعة المرحلة المشتقة من AJCC ، الطبعة السادسة (2004-2015) ، AJCC T المشتقة ، 6th ed (2004-2015) ، Derived AJCC N ، 6th ed (2004-2015) ، Derived AJCC M ، 6 إد (2004-2015) ، CEA ، إعادة ترميز الإشعاع ، إعادة ترميز العلاج الكيميائي (نعم ، لا / غير ذلك) ، تصنيف الوفاة الخاصة بالسبب SEER ، إعادة ترميز الحالة الحيوية (قطع الدراسة المستخدمة) ، أشهر البقاء على قيد الحياة ، سنة التشخيص.
  4. أخيرا ، انقر فوق الإخراج ، وقم بتسمية البيانات ، وانقر فوق تنفيذ لإخراج البيانات وحفظها. يتم عرض عملية التضمين التفصيلية في الشكل 1.
  5. قم بتنزيل البيانات من مرضى سرطان القولون والمستقيم ، باستثناء حالات SRCC ، للتحقق الخارجي اللاحق. انقر فوق التحديد > تحرير واختر {العرق ، الجنس ، السنة Dx. سنة التشخيص} = '2004' ، '2005' ، '2006' ، '2007' ، '2008' ، '2009' ، '2010' ، '2011' ، '2012' ، '2013' ، '2014' ، '2015' و {الموقع الأساسي - المسمى} = 'C18-C20'. كرر الخطوتين 1.3 و 1.4 للحصول على المعلومات المرضية السريرية واستبعاد العينات التي تحتوي على {الموقع والمورفولوجيا. إعادة ترميز الموقع ICD-O-3/WHO 2008} = '8490/3' من الملف الذي تم تنزيله.
  6. لأغراض المقارنة ، قم بمعالجة العديد من المتغيرات. تصنيف حالة العقدة الليمفاوية باستخدام كل من نسبة العقدة الليمفاوية (LNR) ولوغاريتم احتمالات الغدد الليمفاوية الإيجابية (LODDS).
    1. تعريف LNR على أنه نسبة الغدد الليمفاوية الإيجابية (PLNs) إلى إجمالي الغدد الليمفاوية (TLNs). احسب قيمة LODDS باستخدام الصيغة:
      loge(عدد PLNs + 0.5) / (عدد الغدد الليمفاوية السالبة (NLNs) + 0.5)
      حيث تمت إضافة 0.5 لمنع نتيجة لا نهائية. تم تحديد القيم الفاصلة ل LNR و LODDS وحجم الورم باستخدام برنامج X-tile (الإصدار 3.6.1) بناء على طريقة الحد الأدنى من قيمة P.
  7. افتح برنامج X-tile ، وانقر فوق ملف > فتح ، وحدد ملف البيانات لاستيراده إلى البرنامج. بمجرد تحميل البيانات ، قم بتعيين المتغيرات: يتوافق الرقيب مع حالة البقاء على قيد الحياة ، ويتوافق وقت البقاء على قيد الحياة مع وقت البقاء على قيد الحياة ، والعلامة 1 هي المتغير المراد تحليله ، مما يضمن تطابق البيانات بشكل صحيح.
  8. ثم انقر فوق Do > Kaplan-Meier > Marker1 لإجراء تحليل بقاء كابلان ماير وإنشاء منحنى البقاء على قيد الحياة. بناء على فصل منحنيات بقاء كابلان ماير ، والدلالة الإحصائية (على سبيل المثال ، القيمة الاحتمالية) ، والأهمية السريرية ، تحدد قيمة القطع المثلى ، وأخيرا قم بتسجيل أو تصدير نتائج التحليل.
    1. قسم LNR إلى ثلاث مجموعات: LNR 1 (≤0.16) و LNR 2 (0.16 - 0.78) و LNR 3 (≥ 0.78). صنف المرضى إلى ثلاث مجموعات بناء على LODDS: LODDS 1 (≤ -1.44) ، LODDS 2 (-1.44 - 0.86) ، و LODDS 3 (≥ 0.86).
    2. يصنف حجم الورم إلى ثلاث فئات: ≤ 3.5 سم ، 3.5 - 5.5 سم ، ≥ 5.5 سم. تحويل العمر من متغير مستمر إلى متغير فئوي. تصنيف أعمار المرضى في وقت التشخيص الأولي على أنها ≥60 عاما و <60 عاما. تصنيف موقع الورم بناء على توزيع أورام سرطان الخلايا الحلقية (SRCC) على أنها القولون الأيمن والقولون الأيسر والمستقيم. يشمل القولون الأيمن الأعور ، والقولون الصاعد ، والانثناء الكبدي ، والقولون المستعرض ، بينما يشمل القولون الأيسر الانثناء الطحال ، والقولون الهابط ، والقولون السيني ، والتقاطع المستقيم السيني.
  9. بالنسبة لهذه الدراسة ، قم بتعيين ما مجموعه 2409 من بيانات المرضى المؤهلين بشكل عشوائي مع SRCC إلى مجموعة تدريب (N = 1686) ومجموعة التحقق من الصحة (N = 723) بنسبة 7: 3. استخدم الكود التالي للتقسيم العشوائي ، ومصدر data.csv من قاعدة بيانات SEER. سيتم استخدام الملفات التي تم إنشاؤها بعد التقسيم العشوائي لمزيد من التحليل.
    المكتبة (قحام)
    البيانات <- read.csv ("data.csv")
    مجموعة.بذرة(123)
    train_indices <- createDataPartition (data$variable ، p = 0.7 ، list = FALSE)
    train_data <- البيانات[train_indices ، ]
    test_data <- البيانات[-train_indices ، ]
    write.csv(train_data ، "traindata.csv" ، row.names = FALSE)
    write.csv(test_data، "testdata.csv"، row.names = FALSE)

2. تطوير نماذج ML والتحقق منها

  1. قم بتنزيل برنامج RStudio (2024.04.2+764) و R (4.4.1). افتح RStudio لتشغيل برنامج R. انقر فوق ملف جديد وحدد R Script لإنشاء واجهة برمجة R جديدة. أدخل الكود ذي الصلة في محرر التعليمات البرمجية وانقر فوق تشغيل لتنفيذ الكود.
  2. استخدم التعليمات البرمجية التالية لفحص المتغيرات المضمنة في نماذج التعلم الآلي بواسطة تحليل انحدار كوكس. بالإضافة إلى ذلك ، استكشف تأثير التدريج LODDS و LNR و pN على البقاء على قيد الحياة الخاص بالسرطان (CSS) لدى مرضى SRCC. traindata.csv هي البيانات التي تم الحصول عليها من قاعدة بيانات SEER.
    المكتبة("البقاء على قيد الحياة")
    المكتبة("Survminer")
    المكتبة("RMS")
    المكتبة("DPLYR")
    البيانات <- read.csv ("traindata.csv")
    data$time=as.numeric(data$time)
    data$status=as.numeric(data$status)
    المتغيرات <- ج ("الجنس" ، "العمر" ، "العرق" ، "الزوجي" ، "المرحلة" ، "T" ، "N" ، "M" ، "Tumor_size" ، "LNR" ، "LODDS" ، "CEA" ، "الإشعاع" ، "العلاج الكيميائي" ، "الموقع")
    < البيانات- البيانات ٪>٪
    تحور (عبر (all_of (المتغيرات) ، كعامل ))
    cox = coxph (Surv (الوقت ، الحالة) ~ البيانات $ T ، البيانات = البيانات)
    معاملات cox $
    pval = anova (كوكس) $Pr [2]
    clean_data = البيانات [، ج (1:12 ، 14:18)]
    get_coxVariable=الوظيفة (your_data ، الفهرس) {cox_list = c () k = 1
    ل (i في 1: index) {mod = coxph (Surv (الوقت ، الحالة) ~ your_data[، i] ، البيانات = your_data) pval = anova (mod) $Pr [2] print (pval) print (colnames (your_data) [i]) if (pval <0.05) {cox_list[k] = colnames (your_data) [i] k = k + 1}}return (cox_list)}
    variable_select=get_coxVariable(clean_data،15)
    من أجل (أنا في 1:15) {طباعة (variable_select[i])}
    ل (var في variable_select) {formula <- as.formula(paste("Surv(time, status) ~", var))cox_model <- coxph(formula, data = data) print(ملخص(cox_model))
    GGFOREST(كوكس)
    المتغيرات <- ج ("الجنس" ، "العمر" ، "العرق" ، "الزوجي" ، "المرحلة" ، "T" ، "N" ، "M" ، "Tumor_size" ، "LNR" ، "LODDS" ، "العلاج الكيميائي")
    < البيانات- البيانات ٪>٪
    تحور (عبر (all_of (المتغيرات) ، كعامل ))
    كوكس = كوكسف (Surv (الوقت ، الحالة) ~ الجنس + العمر + العرق + الزوجي + T + N + M + Tumor_size + LNR +
    LODDS + العلاج الكيميائي ، البيانات = البيانات)
    ggforest(كوكس، البيانات = البيانات)
    ggplot_forest <- ggforest(كوكس، البيانات = البيانات)
  3. استخدم التعليمات البرمجية التالية لمقارنة قدرات التنبؤ التنبؤي لثلاثة أنظمة LN (LODDS و LNR و pN) عبر مجموعات التدريب والتحقق من الصحة والتحقق الخارجية.
    المكتبة (RMS)
    المكتبة (البقاء على قيد الحياة)
    المكتبة (Survminer)
    المكتبة (riskRegression)
    المكتبة(GT)
    train_data <- read.csv("train_data123.csv")
    validation_data <- read.csv("test_data123.csv")
    DD <- Datadist (train_data)
    الخيارات (datadist = "dd")
    model_LNR <- cph (Surv (الوقت ، الحالة) ~ LNR ، البيانات = train_data ، x = TRUE ، y = TRUE)
    model_LODDS <- cph (Surv (الوقت ، الحالة) ~ LODDS ، البيانات = train_data ، x = TRUE ، y = TRUE)
    model_pN <- cph (Surv (الوقت ، الحالة) ~ N ، البيانات = train_data ، x = TRUE ، y = TRUE)
    calculate_performance <- الوظيفة (النموذج ، البيانات) {pred <- التنبؤ (النموذج ، البيانات الجديدة = البيانات) c_index_result <- التوافق (Surv (البيانات $ الوقت ، البيانات $ الحالة) ~ pred) c_index <- c_index_result $ concordance aic <- AIC (نموذج) bic <- BIC (نموذج) عائد (c (C_index = جولة (c_index ، 3) ، AIC = جولة (aic ، 2) ، BIC = جولة (bic ، 2))}
    calculate_performance <- الوظيفة (النموذج ، البيانات) {pred <- التنبؤ (النموذج ، البيانات الجديدة = البيانات ، النوع = "lp") concordance_result <- concordancefit (Surv (data $ time ، data $ status) ، x = pred) c_index <- concordance_result $ concordance ci_lower <- c_index - 1.96 * sqrt (concordance_result $ var) ci_upper <- c_index + 1.96 * sqrt (concordance_result $ var) aic <- AIC (نموذج) bic <- BIC (نموذج) إرجاع (c (C_Index = دائري (c_index ، 3) ، CI_Lower = جولة (ci_lower ، 3) ، CI_Upper = جولة (ci_upper ، 3) ، AIC = جولة (aic ، 2) ، BIC = جولة (bic ، 2)))}
    train_LNR <- calculate_performance(model_LNR ، train_data)
    train_LODDS <- calculate_performance(model_LODDS ، train_data)
    train_pN <- calculate_performance(model_pN ، train_data)
    model_LNR_val <- cph (Surv (الوقت ، الحالة) ~ LNR ، البيانات = validation_data ، x = TRUE ، y = TRUE)
    model_LODDS_val <- cph (Surv (الوقت ، الحالة) ~ LODDS ، البيانات = validation_data ، x = TRUE ، y = TRUE)
    model_pN_val <- cph (Surv (الوقت ، الحالة) ~ N ، البيانات = validation_data ، x = TRUE ، y = TRUE)
    val_LNR <- calculate_performance (model_LNR_val ، validation_data)
    val_LODDS <- calculate_performance (model_LODDS_val ، validation_data)
    val_pN <- calculate_performance (model_pN_val ، validation_data)
    النتائج <- data.frame(المتغير = c ("LNR" ، "LODDS" ، "pN") ، Training_C_Index = c (paste (train_LNR ["C_Index") ، "("، train_LNR["CI_Lower"] ، "، "، "، train_LNR["CI_Upper"] ، ")" ، sep = "") ، لصق (train_LODDS["C_Index"] ، "("، train_LODDS["CI_Lower"] ، "، "، "، train_LODDS["CI_Upper"] ، ")" ، sep = "") ، لصق (train_pN ["C_Index"] ، "("، train_pN["CI_Lower"] ، "، "، "، train_pN["CI_Upper"] ، ")" ، سبتمبر = "")) ، Training_AIC = c (train_LNR ["AIC"] ، train_LODDS["AIC"], train_pN["AIC"]), Training_BIC = c(train_LNR["BIC"], train_LODDS["BIC"], train_pN["BIC"]), Validation_C_Index = c(paste(val_LNR["C_Index"], "(", val_LNR["CI_Lower"], ", ", ", val_LNR["CI_Upper"], ")", sep = """), paste(val_LODDS["C_Index"], "(", val_LODDS["CI_Lower"], ", ", ", val_LODDS["CI_Upper"], ")", sep = """), paste(val_pN["C_Index"], "(", val_pN["CI_Lower"], "، "، val_pN["CI_Upper"]، ")"، SEP = ""))، Validation_AIC = c(val_LNR["AIC"] ، val_LODDS["AIC"] ، val_pN["AIC"]) ، Validation_BIC = c (val_LNR["BIC"] ، val_LODDS["BIC"] ، val_pN["BIC"]))
    results_table <- gt (النتائج) ٪>٪
    tab_header(العنوان = "أداء التنبؤ بأنظمة التدريج العقدية الليمفاوية الثلاثة") ٪ >٪
    cols_label(المتغير = "المتغير"، Training_C_Index = "مؤشر C (95٪ CI) (التدريب)"، Training_AIC = "AIC (التدريب)"، Training_BIC = "BIC (التدريب)"، Validation_C_Index = "مؤشر C (95٪ CI) (التحقق من الصحة)"، Validation_AIC = "AIC (التحقق)"، Validation_BIC = "BIC (التحقق)")
    write.csv(النتائج، "prediction_performance.csv"، row.names = FALSE)
  4. استخدم الكود التالي لبناء نموذج XGBoost وإنشاء رسوم بيانية شريطية للأهمية النسبية للمتغيرات ، وبالتالي ، لمقارنة أهمية أنظمة LN الثلاثة. وبالمثل ، قم بإنشاء منحنيات ROC ومنحنيات المعايرة. يتم الحصول على البيانات من قاعدة بيانات SEER.
    المكتبة (XGBOOST)
    المكتبة (قحام)
    المكتبة(pROC)
    train_data <- read.csv("train_data.csv")
    test_data <- read.csv("test_data.csv")
    train_matrix <- XGB. DMatrix (البيانات = as.matrix (train_data [، c ('العمر' ، 'T' ، 'N' ، 'M' ، 'LODDS' ، 'العلاج الكيميائي')]) ، التسمية = train_data$status)
    test_matrix <- XGB. DMatrix (البيانات = as.matrix (test_data [، c ('العمر' ، 'T' ، 'N' ، 'M' ، 'lodds' ، 'العلاج الكيميائي')]) ، التسمية = test_data$status)
    المعلمات <- القائمة (الداعم = "GBtree" ، الهدف = "ثنائي: لوجستي" ، eval_metric = "AUC" ، ETA = 0.1 ، max_depth = 6 ، عينة فرعية = 0.8 ، colsample_bytree = 0.8)
    xgb_model <- xgb.train (المعلمات = المعلمات ، البيانات = train_matrix ، nrounds = 100 ، قائمة المراقبة = القائمة (القطار = train_matrix) ، الإسطول = 1)
    pred_probs <- التنبؤ (xgb_model ، newdata = test_matrix)
    pred_labels <- ifelse(pred_probs > 0.5 ، 1 ، 0)
    conf_matrix <- مصفوفة الارتباك (كعامل (pred_labels) ، كعامل (test_data $ حالة))
    roc_curve <- ROC (test_data $ الحالة ، pred_probs)
    auc_value <- AUC(roc_curve)
    ci_auc <- ci.auc(roc_curve)
    الحساسية <- conf_matrix $ byClass ["الحساسية"]
    الخصوصية <- conf_matrix $ byClass["الخصوصية"]
    الدقة <- conf_matrix دولار بشكل عام["الدقة"]
    ppv <- conf_matrix $ byClass["قيمة Pos Pred Value"]
    npv <- conf_matrix$byClass["قيمة Neg Pred"]
    result_table <- data.frame(النموذج = "XGBoost", AUC = sprintf("٪.3f (٪.3f-٪.3f)", auc_value, ci_auc[1], ci_auc[3]), الحساسية = sprintf("٪.3f", الحساسية), الخصوصية = sprintf("٪.3f", الخصوصية), الدقة = sprintf("٪.3f", الدقة), PPV = sprintf("٪.3f", ppv), NPV = sprintf("٪.3f", npv))
    write.csv(result_table ، "xgboost_model_performance.csv" ، row.names = FALSE)
    roc_df <- data.frame(FPR = 1 - roc_curve $ specificities ، TPR = roc_curve $ حساسيات)
    roc_plot <- ggplot (roc_df ، aes (x = FPR ، y = TPR)) + geom_line (اللون = "steelblue" ، الحجم = 1.2) + geom_abline (الاعتراض = 0 ، المنحدر = 1 ، linetype = "متقطع" ، اللون = "الرمادي") + تعليق توضيحي ("نص" ، x = 0.9 ، y = 0.2 ، تسمية = لصق ("AUC =" ، دائري (auc_value ، 3)) ، الحجم = 5 ، اللون = "أسود") + labs (العنوان = "منحنى ROC لنموذج XGBoost" ، x = "معدل إيجابي خاطئ" ، y = "معدل إيجابي حقيقي") + theme_minimal () + سمة (panel.border = element_rect (اللون = "أسود" ، ملء = NA ، الحجم = 1))
    calibration_data <- data.frame(الحالة = as.factor(test_data$status) ، pred_probs = pred_probs)
    calib_model <- المعايرة (الحالة ~ pred_probs ، البيانات = calibration_data ، الفئة = "1" ، التخفيضات = 5)
    ggplot (calib_model $ data ، aes (x = نقطة المنتصف ، y = النسبة المئوية)) + geom_line (اللون = "steelblue" ، الحجم = 1) + geom_point (اللون = "الأحمر" ، الحجم = 2) + geom_abline (الاعتراض = 0 ، المنحدر = 1 ، linetype = "متقطع" ، اللون = "أسود") + labs (العنوان = "منحنى المعايرة لنموذج XGBoost" ، x = "الاحتمال المتوقع" ، y = "النسبة المرصودة") + theme_minimal () + سمة (panel.border = element_rect (اللون = "أسود" ، تعبئة = NA ، الحجم = 0.5))
  5. استخدم الكود التالي لبناء نموذج RF وإنشاء رسوم بيانية شريطية للأهمية النسبية للمتغيرات ، وبالتالي مقارنة أهمية أنظمة LN الثلاثة. وبالمثل ، قم بإنشاء منحنيات ROC ومنحنيات المعايرة. يتم الحصول على البيانات من قاعدة بيانات SEER.library (randomForest)
    المكتبة (DPLYR)
    المكتبة (ggplot2)
    المكتبة(pROC)
    المكتبة (قحام)
    المكتبة (RMS)
    مجموعة القطارات <- read.csv ("train_data.csv")
    تم اختباره <- read.csv ("test_data.csv")
    trainset$status=factor(trainset$status)
    المتغيرات 1 <- ج ("العمر" ، "T" ، "N" ، "M" ، "Lodds" ، "العلاج الكيميائي")
    مجموعة القطارات <- مجموعة القطار٪>٪
    تحور (عبر (all_of (المتغيرات 1) ، على النحو الرقمي))
    اختبارات$status=عامل(اختبار$حالة)
    تم اختباره < - تم اختباره ٪ >٪
    تحور (عبر (all_of (المتغيرات 1) ، على النحو الرقمي))
    RF = randomForest (مجموعة القطارات = الحالة ~ العمر + T + N + M + LODDS + العلاج الكيميائي ، البيانات = مجموعة القطارات ، ntree = 100 ، الأهمية = TRUE ، القرب = TRUE)
    imp = أهمية (RF)
    varImpPlot (RF)
    impvar = أسماء الصفوف (عفريت) [الترتيب (عفريت [، 4] ، متناقص = صحيح)]
    importance_df <- as.data.frame (عفريت عفرية)
    importance_df $ المتغيرات < - أسماء الصفوف (importance_df)
    importance_plot <- ggplot (importance_df ، aes (x = إعادة الترتيب (المتغيرات ، MeanDecreaseAccuracy) ، y = MeanDecreaseAccuracy)) + geom_bar (stat = "identity" ، fill = "steelblue") + coord_flip () + labs (title = "الأهمية المتغيرة" ، x = "المتغيرات" ، y = "متوسط دقة الانخفاض") + theme_minimal ()
    pred_probs <- التنبؤ (الترددات اللاسلكية ، مجموعة الاختبار ، النوع = "prob") [، 2]
    roc_obj <- ROC (testset$status, pred_probs)
    auc_value <- AUC(roc_obj)
    roc_plot <- ggplot() + geom_line (AES (x = 1 - roc_obj $ الخصائص ، y = roc_obj $ حساسيات) ، اللون = "steelblue" ، الحجم = 1.2) + geom_abline (الاعتراض = 0 ، المنحدر = 1 ، linetype = "متقطع" ، اللون = "الرمادي") + التعليق التوضيحي ("النص" ، x = 0.8 ، y = 0.2 ، التسمية = لصق ("AUC =" ، دائري (auc_value ، 3)) ، اللون = "أسود" ، الحجم = 5 ، hjust = 0) + labs (title = "منحنى ROC لنموذج الغابة العشوائية" ، x = "المعدل الإيجابي الخاطئ" ، y = "المعدل الإيجابي الحقيقي") + theme_minimal () + السمة (panel.border = element_rect(اللون = "أسود" ، التعبئة = NA ، الحجم = 1))
    calibration_data <- data.frame(pred_probs = pred_probs، الحالة = tested$status)
    calib_model <- المعايرة(الحالة ~ pred_probs ، البيانات = calibration_data ، الفئة = "1" ، التخفيضات = 5)
    calib_df <- as.data.frame(calib_model[["data"]])
    calib_df دولار منتصف < - calib_df دولار منتصف
    calib_df دولار في المائة < - calib_df دولار في المائة
    calibration_plot <- ggplot (calib_df ، aes (x = mid ، y = Percent)) + geom_line (اللون = "steelblue" ، الحجم = 1.2) + geom_point (اللون = "steelblue" ، الحجم = 3) + geom_abline (التقاطع = 0 ، المنحدر = 1 ، linetype = "متقطع" ، اللون = "أسود" ، الحجم = 0.8) + labs (title = "منحنى المعايرة للغابة العشوائية" ، x = "الاحتمال المتوقع" ، y = "الاحتمال الفعلي") + theme_minimal () + سمة (panel.border = element_rect (اللون = "أسود" ، ملء = NA ، الحجم = 1) ، plot.title = element_text (hjust = -0.05 ، vjust = -1.5 ، الوجه = "غامق" ، الحجم = 12) )
    rf_probs <- التنبؤ (RF ، newdata = اختبارها ، النوع = "prob") [، 2]
    rf_auc <- ROC (تم اختباره $الحالة ، rf_probs)
    auc_value <- AUC(rf_auc)
    ci_auc <- ci.auc(rf_auc)
    rf_predictions <- التنبؤ (RF ، newdata = اختبار)
    conf_matrix <- confusionMatrix (rf_predictions ، تم اختباره $status)
    الحساسية <- conf_matrix $ byClass ["الحساسية"]
    الخصوصية <- conf_matrix $ byClass["الخصوصية"]
    الدقة <- conf_matrix دولار بشكل عام["الدقة"]
    ppv <- conf_matrix $ byClass["قيمة Pos Pred Value"]
    npv <- conf_matrix$byClass["قيمة Neg Pred"]
    result_table <- data.frame(النموذج = "RF" ، AUC = sprintf ("٪ .3f (٪ .3f-٪ .3f)" ، auc_value ، ci_auc [1] ، ci_auc [3]) ، الحساسية = sprintf ("٪ .3f" ، الحساسية) ، الخصوصية = sprintf ("٪ .3f" ، الخصوصية) ، الدقة = sprintf ("٪ .3f" ، الدقة) ، PPV = sprintf ("٪ .3f" ، ppv) ، NPV = sprintf ("٪ .3f" ، npv))
    write.csv(result_table، "RF_model_performance.csv"، row.names = FALSE)
  6. استخدم الكود التالي لبناء نموذج NN وإنشاء رسوم بيانية شريطية للأهمية النسبية للمتغيرات ، وبالتالي مقارنة أهمية أنظمة LN الثلاثة. وبالمثل ، قم بإنشاء منحنيات ROC ومنحنيات المعايرة. يتم الحصول على البيانات من قاعدة بيانات SEER.library (nnet)
    المكتبة (قحام)
    المكتبة(pROC)
    المكتبة (ggplot2)
    train_data <- read.csv("train_data.csv")
    test_data <- read.csv("test_data.csv")
    train_data $ الحالة <- as.factor (train_data $ status)
    test_data $ الحالة < - as.factor (test_data$status)
    الميزات <- C ("العمر" ، "T" ، "N" ، "M" ، "Lodds" ، "العلاج الكيميائي")
    x_train <- train_data[، الميزات]
    y_train <- train_data$status
    x_test <- test_data[، الميزات]
    y_test <- حالة test_data$
    nn_model <- nnet (الحالة ~ العمر + T + N + M + LODDS + العلاج الكيميائي ، البيانات = train_data ، الحجم = 5 ، الاضمحلال = 0.01 ، الحد الأقصى = 200)
    pred_probs <- التنبؤ (nn_model ، newdata = x_test ، اكتب = "خام")
    pred_labels <- ifelse(pred_probs > 0.5 ، 1 ، 0)
    roc_curve <- روك (ك.رقمي (y_test) ، pred_probs)
    auc_value <- AUC(roc_curve)
    auc_ci <- ci.auc(roc_curve)
    auc_text <- paste0 (دائري (auc_value ، 3) ، " ("، دائري (auc_ci [1] ، 3) ، "-" ، دائري (auc_ci[3] ، 3 ، ")")
    conf_matrix <- مصفوفة الارتباك (كعامل (pred_labels) ، y_test)
    الدقة <- conf_matrix دولار بشكل عام["الدقة"]
    الحساسية <- conf_matrix $ byClass ["الحساسية"]
    الخصوصية <- conf_matrix $ byClass["الخصوصية"]
    ppv <- conf_matrix $ byClass["قيمة Pos Pred Value"]
    npv <- conf_matrix$byClass["قيمة Neg Pred"]
    performance_table <- data.frame(متري = c ("AUC (95٪ CI)" ، "الدقة" ، "الحساسية" ، "الخصوصية" ، "PPV" ، "NPV") ، القيمة = c (auc_text ، جولة (دقة ، 3) ، جولة (حساسية ، 3) ، جولة (خصوصية ، 3) ، جولة (PPV ، 3) ، جولة (NPV ، 3)))
    write.csv(performance_table ، "NN_performance_table.csv" ، row.names = FALSE)
    roc_curve <- روك (y_test ، pred_probs)
    auc_value <- AUC(roc_curve)
    roc_plot <- ggplot () + geom_line (AES (x = 1 - roc_curve $ الخصائص ، y = roc_curve $ sensitivities) ، اللون = "steelblue" ، الحجم = 1.2) + geom_abline (الاعتراض = 0 ، المنحدر = 1 ، linetype = "متقطع" ، اللون = "الرمادي") + التعليق التوضيحي ("النص" ، x = 0.8 ، y = 0.2 ، التسمية = لصق ("AUC =" ، دائري (auc_value ، 3)) ، اللون = "أسود" ، الحجم = 5 ، hjust = 0) + labs (title = "منحنى ROC لنموذج الشبكة العصبية" ، x = "معدل إيجابي خاطئ" ، y = "معدل إيجابي حقيقي") + theme_minimal() + سمة (panel.border = element_rect (اللون = "أسود" ، تعبئة = NA ، الحجم = 1))
    calibration_data <- data.frame(pred_probs = pred_probs ، الحالة = as.numeric(y_test) - 1)
    calibration_data pred_probs < دولارا - كرقم (calibration_data دولارا pred_probs)
    calibration_data calibration_bin < دولارات - قطع (calibration_data دولار pred_probs ، فواصل = تسلسل (0 ، 1 ، بواسطة = 0.2) ، include.lowest = صحيح)
    calibration_summary <- التجميع (الحالة ~ calibration_bin ، البيانات = calibration_data ، المرح = المتوسط)
    calibration_summary دولارا pred_mean <- التجميع (pred_probs ~ calibration_bin ، البيانات = calibration_data ، المرح = المتوسط) $pred_probs
    calibration_plot <- ggplot (calibration_summary ، AES (x = pred_mean ، y = الحالة)) + geom_line (اللون = "steelblue" ، الحجم = 1.2) + geom_point (اللون = "الأحمر" ، الحجم = 3) + geom_abline (التقاطع = 0 ، المنحدر = 1 ، linetype = "متقطع" ، اللون = "الأسود" ، الحجم = 0.8) + labs (title = "منحنى المعايرة للشبكة العصبية" ، x = "الاحتمال المتوقع" ، y = "الاحتمال الفعلي") + theme_minimal () + سمة (panel.border = element_rect (اللون = "أسود" ، ملء = NA ، الحجم = 1))
    nn_var_importance <- varImp (nn_model)
    importance_df <- data.frame(الميزة = أسماء الصفوف (nn_var_importance) ، الأهمية = nn_var_importance $ بشكل عام )
    importance_plot <- ggplot (importance_df ، aes (x = إعادة ترتيب (ميزة ، أهمية) ، y = أهمية)) + geom_bar (stat = "هوية" ، fill = "steelblue") + coord_flip () + labs (title = "الأهمية المتغيرة للشبكة العصبية" ، x = "الميزات" ، y = "الأهمية") + theme_minimal ()

3. تطوير نموذج المخاطر المتنافس والتحقق منه

  1. استخدم الكود التالي لإجراء تحليل أحادي المتغير ورسم منحنى دالة الوقوع التراكمي (CIF). data.csv هي البيانات التي تم الحصول عليها من قاعدة بيانات SEER. ستكون طريقة حفظ الصور اللاحقة هي نفسها كما في هذه الخطوة. استبدل الموقع في الكود واحدا تلو الآخر بعوامل أخرى لإجراء تحليل أحادي المتغير لجميع العوامل.
    المكتبة (TidyCMPRSK)
    المكتبة (GTملخص)
    المكتبة (ggplot2)
    المكتبة (ggsurvfit)
    المكتبة (GGPRISM)
    AA <- read.csv ("data.csv")
    cif2 <- tidycmprsk:: cuminc (Surv (الوقت ، الحالة 1) ~ الموقع ، البيانات = aa)
    مرتبة (cif2 ، مرات = ج (12،24،36،48،60))
    tbl_cuminc(cif2 ، مرات = ج (12،24،36،48،60) ، النتائج = c ("CSS" ، "OSS") ، estimate_fun = NULL ، label_header = "** {الوقت / 12} سنة cuminc **") ٪ >٪
    add_p () ٪ >٪
    add_n(الموقع = "المستوى")
    cuminc_plot <- ggcuminc (cif2 ، النتيجة = c ("CSS" ، "OSS") ، الحجم = 1.5) + المختبرات (x = "الوقت") + add_quantile (y_value = 0.20 ، الحجم = 1) + scale_x_continuous (فواصل = التسلسل (0 ، 84 ، بواسطة = 12) ، الحدود = c (0 ، 84)) + scale_y_continuous (التسمية = المقاييس: :p ercent ، فواصل = seq (0 ، 1 ، بواسطة = 0.2) ، حدود = c (0 ، 1)) + theme_prism () + سمة (legend.position = c (0.2 ، 0.8) ، panel.grid = element_blank() ، panel.grid.major.y = element_line(اللون = "grey80")) + سمة (legend.spacing.x = وحدة (0.1 ، "سم") ، legend.spacing.y = وحدة (0.01 ، "سم") + سمة (axis.ticks.length.x = وحدة (-0.2 ، "سم") ، axis.ticks.x = element_line (اللون = "أسود" ، الحجم = 1 ، الخط الأقصى = 1)) + سمة (axis.ticks.length.y = وحدة (-0.2 ، "سم") ، axis.ticks.y = element_line (اللون = "أسود" ، الحجم = 1 ، lineend = 1))
  2. استخدم التعليمات البرمجية التالية لإجراء تحليل وتصور متعدد المتغيرات. يأتي data1.csv من نتائج الكود السابق. بعد تشغيل الكود ، انقر فوق تصدير ، ثم انقر فوق حفظ كملف PDF ، وأخيرا انقر فوق حفظ لحفظ الصورة.
    المكتبة (TidyCMPRSK)
    المكتبة (GTملخص)
    AA <-read.csv('data1.csv')
    ل (i في الأسماء (aa) [c (1:16 ، 19)]) {aa [، i] <- as.factor (aa [، i])}
    mul1الجدول 2 <- mul1 ٪>٪
    gtsummary::tbl_regression(الأس = TRUE) ٪>٪
    add_n(الموقع = "المستوى")؛ الجدول 2
    table_df <- as_tibble (الجدول 2)
    علامة التبويب <- الجدول2$table_body
    علامة التبويب 1 <- علامة التبويب [، ج (12،19،20،22: 29)]
  3. استخدم الكود التالي لرسم الرسم التخطيطي ومنحنى ROC ومنحنى المعايرة. بعد تدريب النموذج باستخدام بيانات من مجموعة التدريب، استخدم بيانات مجموعات التحقق من الصحة والتحقق الخارجية للتحقق من صحة model.library(QHScrnomo). تتكون بيانات الأترابية الخارجية من عينات من سرطان القولون والمستقيم بخلاف سرطان الخلايا الحلقية ، والتي تم اختيارها في الخطوة 1.4.
    المكتبة (RMS)
    المكتبة (timeROC)
    المكتبة (البقاء على قيد الحياة)
    AA <-read.csv('data3.csv')
    ل (i في الأسماء (aa) [c (1:16 ، 19)]) {aa [، i] <- as.factor (aa [، i])}
    DD <- datadist (AA)
    الخيارات (datadist = "dd")
    mul <- cph (Surv (الوقت ، الحالة 1 == 1) ~ T + N + M + LODDS + الموقع ، البيانات = aa ، x = TRUE ، y = TRUE ، surv = TRUE)
    M3 <- crr.fit (mul ، Failcode = 1 ، cencode = 0)
    nomo <-Newlabels(fit = m3 ، labels = c (T = "T" ، N = "N" ، M = "M" ، LODDS = "LODDS" ، Site = "Site"))
    nomoc("N0","N1","N2"),M=c("M0","M1"),LODDS=c
    ("LODDS1","LODDS2","LODDS3"),Site=
    ج ("RSC" ، "LSC" ، "المستقيم")
    nomogram.crr (fit = nomo ، lp = F ، xfrac = 0.3 ، fun.at = seq (من = 0 ، إلى = 1 ، بواسطة = 0.1) ، وقت الفشل = c (12،36،60) ، funlabel = c ("الحدوث التراكمي لمدة 1 سنة" ، "الحدوث التراكمي ل CSS لمدة 3 سنوات" ، "الحدوث التراكمي ل CSS لمدة 5 سنوات"))
    time_points <- ج (12 ، 36 ، 60)
    pred_risks_list <- lapply(time_points, function(time_point) {predict(m3, newdata = aa, type = "risk", time = time_point)})
    pred_risks_df <- data.frame(do.call(cbind، pred_risks_list))
    colnames(pred_risks_df) <- لصق ("risk_at" ، time_points ، "أشهر" ، سبتمبر = "_")
    roc_1year <- timeROC (T = aa $ time ، delta = ifelse (aa $ Status1 == "CSS" ، 1 ، 0) ، علامة = pred_risks_df $ risk_at_12_months ، السبب = 1 ، مرات = 12 ، iid = TRUE)
    roc_3year <- timeROC (T = aa $ time ، delta = ifelse (aa $ Status1 == "CSS" ، 1 ، 0) ، علامة = pred_risks_df $ risk_at_36_months ، السبب = 1 ، مرات = 36 ، iid = TRUE)
    roc_5year <- timeROC (T = aa $ time ، delta = ifelse (aa $ Status1 == "CSS" ، 1 ، 0) ، علامة = pred_risks_df $ risk_at_60_months ، السبب = 1 ، مرات = 60 ، iid = TRUE)
    legend ("bottomright" ، legend = c ("1 سنة CSS" ، "3 سنوات CSS" ، "5 سنوات CSS") ، col = c ("#BF1D2D" ، "# 262626" ، "#397FC7") ، lwd = 2)
    sas.cmprsk (م 3 ، الوقت = 36)
    مجموعة.بذرة(123)
    AA $ Pro <- Tenf.CRR (م 3 ، الوقت = 36)
    cindex (prob = aa $ pro ، fstatus = aa $ Status1 ، ftime = aa $ time ، النوع = "crr" ، رمز الفشل = 1 ، cencode = 0 ، tol = 1e-20)
    groupci (x = aa $ pro ، ftime = aa $ time ، fstatus = aa $ Status1 ، Failcode = 1 ، cencode = 0 ، ci = TRUE ، g = 5 ، m = 1000 ، u = 36 ، xlab = "الاحتمال المتوقع" ، ylab = "الاحتمال الفعلي" ، lty = 1 ، lwd = 2 ، col = "# 262626" ، xlim = c (0،1.0) ، ylim = c (0،1.0) ، أضف = TRUE)

Access restricted. Please log in or start a trial to view this content.

النتائج

خصائص المرضى
ركزت هذه الدراسة على المرضى الذين تم تشخيص إصابتهم بسرطان القولون والمستقيم SRCC ، باستخدام بيانات من قاعدة بيانات SEER الممتدة من 2004 إلى 2015. وشملت معايير الاستبعاد المرضى الذين تقل مدة بقائهم على قيد الحياة عن شهر واحد، وأولئك الذين لديهم معلومات سر...

Access restricted. Please log in or start a trial to view this content.

Discussion

سرطان القولون والمستقيم (CRC) SRCC هو نوع فرعي نادر وخاص من سرطان القولون والمستقيم مع تشخيص ضعيف. لذلك ، يجب إيلاء اهتمام أكبر لتشخيص مرضى SRCC. يعد التنبؤ الدقيق بالبقاء على قيد الحياة لمرضى SRCC أمرا بالغ الأهمية لتحديد توقعات سير المرض واتخاذ قرارات العلاج الفردية. في هذه الد...

Access restricted. Please log in or start a trial to view this content.

Disclosures

ليس لدى المؤلفين أي تضارب في المصالح المالية للإفصاح عنهم.

Acknowledgements

اي

Access restricted. Please log in or start a trial to view this content.

Materials

NameCompanyCatalog NumberComments
SEER databaseNational Cancer institiute at NIH
X-tile softwareYale school of medicine
R-studioPosit

References

  1. Siegel, R. L., Giaquinto, A. N., Jemal, A. Cancer statistics, 2024. CA Cancer J Clin. 74 (1), 12-49 (2024).
  2. Korphaisarn, K., et al. Signet ring cell colorectal cancer: Genomic insights into a rare subpopulation of colorectal adenocarcinoma. Br J Cancer. 121 (6), 505-510 (2019).
  3. Willauer, A. N., et al. Clinical and molecular characterization of early-onset colorectal cancer. Cancer. 125 (12), 2002-2010 (2019).
  4. Watanabe, A., et al. A case of primary colonic signet ring cell carcinoma in a young man which preoperatively mimicked Phlebosclerotic colitis. Acta Med Okayama. 73 (4), 361-365 (2019).
  5. Kim, H., Kim, B. H., Lee, D., Shin, E. Genomic alterations in signet ring and mucinous patterned colorectal carcinoma. Pathol Res Pract. 215 (10), 152566(2019).
  6. Deng, X., et al. Neoadjuvant radiotherapy versus surgery alone for stage II/III mid-low rectal cancer with or without high-risk factors: A prospective multicenter stratified randomized trial. Ann Surg. 272 (6), 1060-1069 (2020).
  7. Buk Cardoso, L., et al. Machine learning for predicting survival of colorectal cancer patients. Sci Rep. 13 (1), 8874(2023).
  8. Monterrubio-Gómez, K., Constantine-Cooke, N., Vallejos, C. A. A review on statistical and machine learning competing risks methods. Biom J. 66 (2), e2300060(2024).
  9. Kim, H. J., Choi, G. S. Clinical implications of lymph node metastasis in colorectal cancer: Current status and future perspectives. Ann Coloproctol. 35 (3), 109-117 (2019).
  10. Xu, T., et al. Log odds of positive lymph nodes is an excellent prognostic factor for patients with rectal cancer after neoadjuvant chemoradiotherapy. Ann Transl Med. 9 (8), 637(2021).
  11. Chen, Y. R., et al. Prognostic performance of different lymph node classification systems in young gastric cancer. J Gastrointest Oncol. 12 (4), 285-1300 (2021).
  12. Bouvier, A. M., et al. How many nodes must be examined to accurately stage gastric carcinomas? Results from a population based study. Cancer. 94 (11), 2862-2866 (2002).
  13. Coburn, N. G., Swallow, C. J., Kiss, A., Law, C. Significant regional variation in adequacy of lymph node assessment and survival in gastric cancer. Cancer. 107 (9), 2143-2151 (2006).
  14. Li Destri, G., Di Carlo, I., Scilletta, R., Scilletta, B., Puleo, S. Colorectal cancer and lymph nodes: the obsession with the number 12. World J Gastroenterol. 20 (8), 1951-1960 (2014).
  15. Dinaux, A. M., et al. Outcomes of persistent lymph node involvement after neoadjuvant therapy for stage III rectal cancer. Surgery. 163 (4), 784-788 (2018).
  16. Sun, Y., Zhang, Y., Huang, Z., Chi, P. Prognostic implication of negative lymph node count in ypN+ rectal cancer after neoadjuvant chemoradiotherapy and construction of a prediction nomogram. J Gastrointest Surg. 23 (5), 1006-1014 (2019).
  17. Xu, Z., Jing, J., Ma, G. Development and validation of prognostic nomogram based on log odds of positive lymph nodes for patients with gastric signet ring cell carcinoma. Chin J Cancer Res. 32 (6), 778-793 (2020).
  18. Scarinci, A., et al. The impact of log odds of positive lymph nodes (LODDS) in colon and rectal cancer patient stratification: a single-center analysis of 323 patients. Updates Surg. 70 (1), 23-31 (2018).
  19. Nitsche, U., et al. Prognosis of mucinous and signet-ring cell colorectal cancer in a population-based cohort. J Cancer Res Clin Oncol. 142 (11), 2357-2366 (2016).
  20. Kang, H., O'Connell, J. B., Maggard, M. A., Sack, J., Ko, C. Y. A 10-year outcomes evaluation of mucinous and signet-ring cell carcinoma of the colon and rectum. Dis Colon Rectum. 48 (6), 1161-1168 (2005).
  21. Sung, C. O., et al. Clinical significance of signet ring cells in colorectal mucinous adenocarcinoma. Mod Pathol. 21 (12), 1533-1541 (2008).
  22. Alvi, M. A., et al. Molecular profiling of signet ring cell colorectal cancer provides a strong rationale for genomic targeted and immune checkpoint inhibitor therapies. Br J Cancer. 117 (2), 203-209 (2017).
  23. Brownlee, S., et al. Evidence for overuse of medical services around the world. Lancet. 390 (10090), 156-168 (2017).

Access restricted. Please log in or start a trial to view this content.

Reprints and Permissions

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

Request Permission

Explore More Articles

218

This article has been published

Video Coming Soon

JoVE Logo

Privacy

Terms of Use

Policies

Research

Education

ABOUT JoVE

Copyright © 2025 MyJoVE Corporation. All rights reserved