$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
1. إعداد ملفات الإدخال
ملاحظة: البروتوكول متاح هنا - https://github.com/jcgneto/jove_bacterial_population_genomics/tree/main/code. يفترض البروتوكول أن الباحث قد استخدم ProkEvo على وجه التحديد (أو خط أنابيب مماثل) للحصول على المخرجات الضرورية المتاحة في مستودع Figshare هذا (https://figshare.com/account/projects/116625/articles/15097503 - بيانات اعتماد تسجيل الدخول مطلوبة - يجب على المستخدم إنشاء حساب مجاني للوصول إلى الملف!). تجدر الإشارة إلى أن ProkEvo يقوم تلقائيا بتنزيل التسلسلات الجينومية من مستودع NCBI-SRA ولا يتطلب سوى ملف .txt يحتوي على قائمة بتعريفات الجينوم كمدخلات20 ، والملف المستخدم لهذا العمل على S. يتم توفير عزلات نيوبورت الولايات المتحدة الأمريكية هنا (https://figshare.com/account/projects/116625/articles/15097503?file=29025729). تتوفر معلومات مفصلة حول كيفية تثبيت واستخدام منصة الجينوم البكتيرية هذه هنا (https://github.com/npavlovikj/ProkEvo/wiki/2.-Quick-start)20
- قم بإنشاء علم سلالات الجينوم الأساسي باستخدام FastTree23 كما هو موضح سابقا 20 ، وهو ليس جزءا من منصة المعلوماتية الحيوية20. يتطلب FastTree محاذاة الجينوم الأساسي Roary24 كملف إدخال. يسمى ملف phylogeny newport_phylogeny.tree (https://figshare.com/account/projects/116625/articles/15097503?file=29025690).
- قم بإنشاء مخرجات SISTR25 التي تحتوي على المعلومات المتعلقة بتصنيفات السيروفارات لبيانات استدعاء متغير السالمونيلا و cgMLST (sistr_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025699).
- قم بإنشاء ملف BAPS بواسطة fastbaps26,27 الذي يحتوي على تصنيف BAPS للمستويات 1-6 للجينومات إلى مجموعات فرعية أو أنماط فردية (fastbaps_partition_baps_prior_l6.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025684).
- إنشاء تصنيف قائم على MLST للجينومات إلى STs باستخدام برنامج MLST (https://github.com/tseemann/mlst)28 (salmonellast_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025696).
- إنشاء مخرجات ABRicate (https://github.com/tseemann/abricate)29 كملف .csv يحتوي على مواقع مقاومة مضادات الميكروبات التي تم تعيينها لكل جينوم (sabricate_resfinder_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025693).
ملاحظة: يمكن للمستخدم إيقاف تشغيل أجزاء معينة من خط أنابيب المعلوماتية الحيوية ProkEvo (تحقق هنا لمزيد من المعلومات - https://github.com/npavlovikj/ProkEvo/wiki/4.2.-Remove-existing-bioinformatics-tool-from-ProkEvo). يوفر النهج التحليلي المعروض هنا مبادئ توجيهية لكيفية إجراء تحليل قائم على السكان بعد تشغيل خط أنابيب المعلوماتية الحيوية.
2. تحميل وتثبيت البرنامج الإحصائي وتطبيق بيئة التنمية المتكاملة (IDE)
- قم بتنزيل أحدث إصدار متاح مجانا من برنامج R لنظام التشغيل Linux أو Mac أو الكمبيوتر الشخصي30. اتبع خطوات التثبيت الافتراضية.
- قم بتنزيل أحدث إصدار متاح مجانا من RStudio desktop IDE هنا31. اتبع الخطوات الافتراضية للتثبيت.
ملاحظة: يتم تضمين الخطوات التالية في البرنامج النصي المتاح، بما في ذلك معلومات مفصلة عن استخدام التعليمات البرمجية، ويجب تشغيلها بالتتابع لإنشاء المخرجات والأرقام المعروضة في هذا العمل (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd). قد يقرر المستخدم استخدام لغة برمجة أخرى لإجراء هذا التحليل التحليلي / الإحصائي مثل بايثون. في هذه الحالة ، استخدم الخطوات الموجودة في البرامج النصية كإطار لإجراء التحليل.
3. تثبيت وتفعيل مكتبات علوم البيانات
- قم بتثبيت جميع مكتبات علوم البيانات في وقت واحد كخطوة أولى في التحليل. تجنب تثبيت المكتبات في كل مرة يحتاج فيها البرنامج النصي إلى إعادة تشغيله. استخدم الدالة install.packages() لتثبيت المكتبة. بدلا من ذلك ، يمكن للمستخدم النقر فوق علامة التبويب الحزم داخل IDE وتثبيت الحزم تلقائيا. يتم عرض الرمز المستخدم لتثبيت جميع المكتبات المطلوبة هنا:
# تثبيت Tidyverse
install.packages ("tidyverse")
# تثبيت skimr
install.packages ("skimr")
# تثبيت نباتي
install.packages ("نباتي")
# تثبيت forcats
install.packages ("forcats")
# تثبيت نانيار
install.packages("naniar")
# تثبيت ggpubr
install.packages("ggpubr")
# تثبيت ggrepel
install.packages ("ggrepel")
# تثبيت إعادة تشكيل2
install.packages("reshape2")
# تثبيت RColorBrewer
install.packages("RColorBrewer")
# تثبيت ggtree
إذا (!تتطلب مساحة الاسم ("BiocManager" ، بهدوء = TRUE))
install.packages ("BiocManager")
BiocManager::install("ggtree")
# سيؤدي تثبيت ggtree إلى طرح سؤال حول التثبيت - الإجابة هي "a" لتثبيت / تحديث جميع التبعيات
- قم بتنشيط كافة المكتبات أو الحزم باستخدام وظيفة library() في بداية البرنامج النصي، مباشرة بعد التثبيت. فيما يلي عرض توضيحي حول كيفية تفعيل جميع الحزم الضرورية:
# تفعيل المكتبات والباقات
المكتبة (مرتبة)
المكتبة (skimr)
مكتبة (نباتي)
المكتبة (المعاونات)
مكتبة (نانيار)
المكتبة (ggtree)
المكتبة (ggpubr)
المكتبة (الغريبة)
المكتبة(إعادة تشكيل2)
المكتبة (RColorBrewer)
- منع إخراج التعليمات البرمجية المستخدمة لتثبيت المكتبة والحزمة وتنشيطها باستخدام {r, include = FALSE} في ظرف التعليمات البرمجية، كما يلي:
''' {r, include = FALSE}
# تثبيت Tidyverse
install.packages ("tidyverse")
```
ملاحظة: هذه الخطوة اختيارية ولكنها تتجنب عرض أجزاء من التعليمات البرمجية غير الضرورية في تقرير html أو doc أو pdf النهائي.
- للحصول على وصف موجز للوظائف المحددة لجميع المكتبات إلى جانب بعض الروابط المفيدة لجمع مزيد من المعلومات، راجع الخطوات 3.4.1-3.4.11.
- Tidyverse - استخدم هذه المجموعة من الحزم المستخدمة في علوم البيانات ، بما في ذلك إدخال البيانات والتصور والتحليل والتجميع والنمذجة الإحصائية. عادة ما تكون ggplot2 (تصور البيانات) و dplyr (مشاحنات البيانات والنمذجة) حزمتين عمليتين موجودتين في هذه المكتبة32.
- skimr - استخدم هذه الحزمة لإنشاء إحصاءات موجزة لإطارات البيانات، بما في ذلك تحديد القيم المفقودة33.
- نباتي - استخدم هذه الحزمة للتحليلات الإحصائية للبيئة المجتمعية ، مثل حساب الإحصاءات القائمة على التنوع (على سبيل المثال ، ألفا وبيتا التنوع)34.
- forcats - استخدم هذه الحزمة للعمل مع المتغيرات الفئوية مثل إعادة ترتيب التصنيفات. هذه الحزمة هي جزء من مكتبة Tidyverse32.
- naniar - استخدم هذه الحزمة لتصور توزيع القيم المفقودة عبر المتغيرات في إطار بيانات، باستخدام الدالة viss_miss()35.
- ggtree - استخدم هذه الحزمة لتصور الأشجار الجينية36.
- ggpubr - استخدم هذه الحزمة لتحسين جودة التصورات المستندة إلى ggplot237.
- ggrepel - استخدم هذه الحزمة لوضع العلامات النصية داخل الرسوم البيانية38.
- reshape2 - استخدم الدالة melt() من هذه الحزمة لتحويل إطارات البيانات من تنسيق واسع إلى تنسيق طويل39.
- RColorBrewer - استخدم هذه الحزمة لإدارة الألوان في المرئيات المستندة إلى ggplot240.
- استخدم الوظائف الأساسية التالية لتحليل البيانات الاستكشافية: head() للتحقق من الملاحظات الأولى في إطار بيانات ، tail() للتحقق من الملاحظات الأخيرة لإطار بيانات ، is.na() لحساب عدد الصفوف ذات القيم المفقودة عبر إطار بيانات ، dim() للتحقق من عدد الصفوف والأعمدة في مجموعة بيانات ، الجدول () لحساب الملاحظات عبر متغير ، و sum() لحساب العدد الإجمالي للملاحظات أو المثيلات.
4. إدخال البيانات وتحليلها
ملاحظة: يمكن العثور على معلومات مفصلة حول كل خطوة من خطوات هذا التحليل في البرنامج النصي المتاح (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd). ومع ذلك ، إليك بعض النقاط المهمة التي يجب مراعاتها:
- قم بإدخال جميع البيانات الجينومية ، بما في ذلك جميع تصنيفات النمط الجيني (serovar و BAPS و ST و cgMLST) باستخدام وظيفة read_csv ().
- إعادة تسمية وإنشاء متغيرات جديدة وتحديد أعمدة ذات أهمية من كل مجموعة بيانات قبل تجميع مجموعات البيانات المتعددة.
- لا تقم بإزالة القيم المفقودة من أي مجموعة بيانات مستقلة. انتظر حتى يتم تجميع جميع مجموعات البيانات لتعديل القيم المفقودة أو استبعادها. إذا تم إنشاء متغيرات جديدة لكل مجموعة بيانات، تصنيف القيم المفقودة افتراضيا في أحد التصنيفات التي تم إنشاؤها حديثا.
- تحقق من وجود أحرف خاطئة مثل الواصلات أو علامات الاستجواب واستبدلها ب NA (غير قابل للتطبيق). افعل الشيء نفسه بالنسبة للقيم المفقودة.
- تجميع البيانات استنادا إلى الترتيب الهرمي للأنماط الجينية (serovar -> BAPS1 -> ST -> cgMLST) ، وعن طريق التجميع بناء على تعريفات الجينوم الفردية.
- تحقق من وجود قيم مفقودة باستخدام استراتيجيات متعددة وتعامل مع هذه التناقضات صراحة. قم بإزالة الجينوم أو اعزل البيانات فقط إذا كان التصنيف غير موثوق. خلاف ذلك ، فكر في التحليل الجاري وإزالة NAs على أساس كل حالة على حدة.
ملاحظة: يوصى بشدة بوضع استراتيجية للتعامل مع هذه القيم بداهة. تجنب إزالة جميع الجينومات أو العزلات ذات القيم المفقودة عبر أي متغيرات. على سبيل المثال ، قد يكون للجينوم تصنيف ST دون وجود رقم متغير cgMLST. في هذه الحالة ، لا يزال من الممكن استخدام الجينوم للتحليل القائم على ST.
- بمجرد تجميع جميع مجموعات البيانات، قم بتعيينها إلى اسم إطار بيانات أو كائن يمكن استخدامه في مواقع متعددة في تحليل المتابعة، لتجنب الاضطرار إلى إنشاء نفس ملف البيانات الوصفية لكل شكل في الورقة.
5. إجراء التحليلات وتوليد التصورات
ملاحظة: يمكن العثور على وصف مفصل لكل خطوة مطلوبة لإنتاج جميع التحليلات والتصورات في ملف تخفيض الأسعار لهذه الورقة (https://github.com/jcgneto/jove_bacterial_population_genomics/tree/main/code). يتم فصل التعليمات البرمجية لكل شكل إلى أجزاء ويجب تشغيل البرنامج النصي بأكمله بالتتابع. بالإضافة إلى ذلك، يتم توفير الرمز الخاص بكل رقم رئيسي وتكميلي كملف منفصل (انظر الملف التكميلي 1 والملف التكميلي 2). فيما يلي بعض النقاط الأساسية (مع مقتطفات من التعليمات البرمجية) التي يجب مراعاتها أثناء إنشاء كل الأرقام الرئيسية والتكميلية.
- استخدم ggtree لرسم شجرة التكاثر جنبا إلى جنب مع معلومات النمط الوراثي (الشكل 1).
- قم بتحسين حجم شكل ggtree ، بما في ذلك قطر وعرض الحلقات ، عن طريق تغيير القيم العددية داخل الدالتين xlim() و gheatmap (width = ) ، على التوالي (انظر مثال التعليمات البرمجية أدناه).
tree_plot <- ggtree (شجرة ، تخطيط = "دائري") + xlim (-250 ، NA)
figure_1 <- gheatmap(tree_plot، d4، إزاحة =.0، عرض = 20، colnames = FALSE)
ملاحظة: للحصول على مقارنة أكثر تفصيلا للبرامج التي يمكن استخدامها للتخطيط الجيني ، تحقق من هذا العمل20. وسلط العمل الضوء على محاولة بذلت لتحديد استراتيجيات لتحسين التصورات القائمة على شجرة الشجرة مثل تقليل حجم مجموعة البيانات، ولكن أطوال الفروع وطوبولوجيا الأشجار لم تكن تمييزية بشكل واضح مقارنة بفاندانغو41.
- قم بتجميع جميع البيانات الوصفية في أقل عدد ممكن من الفئات لتسهيل اختيار لوحة التلوين عند رسم طبقات متعددة من البيانات باستخدام شجرة التكاثر (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_1.Rmd). إجراء تجميع البيانات بناء على مسألة الاهتمام ومعرفة المجال.
- استخدم مخططا شريطيا لتقييم الترددات النسبية (الشكل 2).
- تجميع البيانات لكل من سلالات ST ومتغيرات cgMLST لتسهيل التصورات. اختر عتبة تجريبية أو إحصائية تستخدم لتجميع البيانات، مع مراعاة السؤال المطروح.
- للحصول على مثال على التعليمات البرمجية التي يمكن استخدامها لفحص التوزيع الترددي لسلالات ST لتحديد الحد الأدنى ، انظر أدناه:
st_dist <- d2 ٪>٪ group_by(ST) ٪>٪ # المجموعة حسب عمود ST
count() ٪>٪ # عد عدد الملاحظات
ترتيب (desc(n)) # ترتيب الأعداد بترتيب متناقص
- للحصول على مثال على التعليمات البرمجية التي توضح كيف يمكن تجميع STs الثانوية (منخفضة التردد) ، راجع أدناه. وكما هو مبين أدناه، فإن الطوائف المنبوذة التي لا يبلغ عددها 5 أو 31 أو 45 أو 46 أو 118 أو 132 أو 350 تجمع معا بوصفها "STs أخرى". استخدم تعليمة برمجية مشابهة لمتغيرات cgMLST (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_2.Rmd).
d2$st <- ifelse(d2$ST == 5, "ST5", # إنشاء عمود ST جديد يتم تجميع S Ts الثانوية له كغيره
ifelse(d2$ST == 31, "ST31",
ifelse(d2$ST == 45, "ST45",
ifelse(d2$ST == 46, "ST46",
ifelse(d2$ST == 118, "ST118",
ifelse(d2$ST == 132, "ST132", ifelse(d2$ST == 350, "ST350", "STs أخرى"))))))))
- استخدم نهجا متداخلا لحساب نسبة كل سلالة ST داخل كل مجموعة فرعية BAPS1 لتحديد STs المرتبطة بالأسلاف (تنتمي إلى نفس المجموعة الفرعية BAPS1) (الشكل 3). يوضح الرمز أدناه كيفية حساب النسبة المستندة إلى ST عبر المجموعات الفرعية BAPS1 (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_3.Rmd):
baps <- d2b ٪>٪ filter(serovar == "Newport") ٪>٪ # filter Newport serovars
حدد (baps_1، ST) ٪>٪ # حدد أعمدة baps_1 وST
mutate(ST = as.numeric(ST)) ٪>٪ # تغيير عمود ST إلى رقمي
drop_na (baps_1 ، ST) ٪>٪ # انخفاض NAs
group_by (baps_1 ، ST) ٪ > ٪ # المجموعة حسب baps_1 و ST
تلخيص (n = n()) ٪>٪ # ملاحظات العد
تحور (دعامة = ن / مجموع (ن) * 100) # حساب النسب
- ارسم توزيع مواقع مقاومة مضادات الميكروبات عبر سلالات ST باستخدام نتائج التعليقات التوضيحية الجينية المستندة إلى Resfinder (الشكل 4).
ملاحظة: تم استخدام Resfinder على نطاق واسع في الدراسات البيئية والوبائية42. يمكن أن يختلف التعليق التوضيحي لجينات ترميز البروتين اعتمادا على عدد المرات التي يتم فيها تنظيم قواعد البيانات وتحديثها. إذا كان الباحث يستخدم خط أنابيب المعلوماتية الحيوية المقترح ، فيمكنه مقارنة تصنيفات المواقع القائمة على AMR عبر قواعد بيانات مختلفة20. تأكد من التحقق من قواعد البيانات التي يتم تحديثها باستمرار. لا تستخدم قواعد بيانات قديمة أو سيئة التنسيق، لتجنب المكالمات الخاطئة.
- استخدم عتبة تجريبية أو إحصائية لتصفية أهم مواقع مقاومة مضادات الميكروبات لتسهيل التصور. قم بتوفير ملف .csv أولي يحتوي على النسب المحسوبة لجميع مواقع AMR عبر جميع سلالات ST ، كما هو موضح هنا (https://figshare.com/account/projects/116625/articles/15097503?file=29025687).
- حساب نسبة AMR لكل ST باستخدام التعليمة البرمجية التالية (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_4.Rmd):
# حسابات ST45
d2c <- data6 ٪>٪ filter(st == "ST45") # تصفية بيانات ST45 أولا
# بالنسبة للمعيار ST45، احسب نسبة مواقع مقاومة مضادات الميكروبات واحتفظ فقط بنسبة أكبر من 10٪
d3c <- d2c ٪>٪ select(id, gene) ٪>٪ # حدد الأعمدة
group_by (معرف ، جين) ٪ > ٪ # مجموعة حسب الهوية والجين
تلخيص (عد = n()) ٪>٪ # ملاحظات العد
mutate (count = replace(count, count == 2, 1)) ٪>٪ # استبدال الأعداد التي تساوي 2 مع 1 للنظر في نسخة واحدة فقط من كل جين (قد لا تكون الازدواجية موثوقة)، ولكن يمكن للباحث أن يقرر استبعادها أو الاحتفاظ بها. إذا أراد الباحث استبعادها ، فاستخدم وظيفة المرشح (العد != 2) أو اتركها كما هي
filter (عدد < = 1) # عدد الفلاتر أقل أو يساوي 1
d4c <- d3c ٪>٪ group_by(جين) ٪>٪ # مجموعة حسب الجين
تلخيص (القيمة = n()) ٪>٪ # ملاحظات العد
mutate (total = table(data1$st)[6]) ٪>٪ # احصل على إجمالي عدد المتحورات (الدعامة = (القيمة/الإجمالي)*100) # حساب النسب
d5c <- d4c ٪>٪ متحور (st = "ST45") # إنشاء عمود st وإضافة معلومات ST
- بعد إجراء العمليات الحسابية لجميع STs ، قم بدمج مجموعات البيانات كإطار بيانات واحد ، باستخدام التعليمة البرمجية التالية:
# الجمع بين مجموعات البيانات
d6 <- rbind (d5a ، d5b ، d5c ، d5d ، d5e ، d5f ، d5g ، d5h) # صف ربط مجموعات البيانات
- لتصدير ملف .csv الذي يحتوي على النسب المحسوبة، استخدم التعليمة البرمجية:
# جدول بيانات التصدير الذي يحتوي على معلومات مواقع ST و AMR
abx_newport_st <- d6 الكتابة.csv(abx_newport_st، "abx_newport_st.csv"، row.names = FALSE)
- قبل رسم التوزيع القائم على مقاومة مضادات الميكروبات عبر سلالات ST ، قم بتصفية البيانات بناء على عتبة لتسهيل التصورات ، كما هو موضح أدناه:
# تصفية AMR المواقع مع نسبة أعلى من أو تساوي 10٪
d7 <- d6 ٪>٪ مرشح (الدعامة >= 10) # تحديد العتبة تجريبيا أو إحصائيا
- ارسم علم الوراثة الجينوم الأساسي جنبا إلى جنب مع تصنيفات النمط الوراثي الهرمي وبيانات مقاومة مضادات الميكروبات في مخطط واحد باستخدام ggtree (الشكل 5).
- قم بتحسين حجم الشكل داخل ggtree باستخدام المعلمات المذكورة أعلاه (انظر الخطوة 5.1.1).
- تحسين التصورات عن طريق تجميع المتغيرات، أو استخدام التصنيف الثنائي مثل وجود الجينات أو غيابها. كلما تمت إضافة المزيد من الميزات إلى المؤامرة ، كلما أصبحت عملية اختيار التلوين أصعب (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_5.Rmd).
ملاحظة: أرقام تكميلية - يمكن العثور على وصف مفصل للرمز بأكمله هنا (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd).
- استخدم مخططا مبعثرا في ggplot2 ، دون تجميع البيانات ، لعرض توزيع سلالات ST أو متغيرات cgMLST مع تسليط الضوء على الأنماط الجينية الأكثر شيوعا (الشكل التكميلي 1) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s1.Rmd).
- قم بإجراء تحليل متداخل لتقييم تكوين سلالات ST من خلال نسبة متغيرات cgMLST من أجل الحصول على لمحة عن التنوع الجيني القائم على ST ، مع تحديد المتغيرات الأكثر شيوعا وعلاقاتها الجينية (أي متغيرات cgMLST التي تنتمي إلى نفس ST تشترك في سلف في الآونة الأخيرة أكثر من تلك التي تنتمي إلى STs متميزة) (الشكل التكميلي 2 ) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s2.Rmd).
- استخدم مقياس البيئة المجتمعية ، أي مؤشر سيمبسون D للتنوع ، لقياس درجة النسيلة أو التنوع الجيني لكل من سلالات ST الرئيسية43 (الشكل التكميلي 3).
- حساب مؤشر التنوع عبر سلالات ST على مستويات مختلفة من دقة النمط الجيني بما في ذلك BAPS المستوى 1 إلى 6 و cgMLST. فيما يلي مثال التعليمات البرمجية حول كيفية إجراء هذا الحساب في المستوى 1 من BAPS (BAPS1) من دقة النمط الوراثي:
# BAPS المستوى 1 (BAPS1)
# إسقاط STs و BAPS1 مع NAs ، مجموعة حسب ST و BAPS1 ثم حساب مؤشر سيمبسون
baps1 <- بيانات6 ٪>٪
حدد (st, BAPS1) ٪>٪ # حدد الأعمدة
drop_na (ش ، BAPS1) ٪ > ٪ # انخفاض NAs
group_by(st, BAPS1) ٪>٪ # المجموعة حسب الأعمدة
تلخيص (n = n()) ٪>٪ # ملاحظات العد
mutate(simpson = diversity(n, "simpson")) ٪>٪ # حساب التنوع
group_by(st) ٪>٪ # المجموعة حسب العمود
تلخيص (سيمبسون = الوسط (سيمبسون)) ٪>٪ # حساب متوسط المؤشر
melt(id.vars=c("st"), measure.vars="simpson",
variable.name="index", value.name="value") ٪>٪ # سرية في شكل طويل
mutate(strat = "BAPS1") # إنشاء عمود طبقة
ملاحظة: لدى السكان الأكثر تنوعا وراثيا (أي المزيد من المتغيرات في طبقات مختلفة من دقة النمط الوراثي) مؤشر أعلى على مستوى cgMLST وينتج قيما متزايدة قائمة على المؤشر تنتقل من مستوى BAPS 2 إلى 6 (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s3.Rmd).
- دراسة درجة التنوع الجيني لسلالات ST عن طريق رسم التردد النسبي للمجموعات الفرعية BAPS على جميع مستويات الاستبانة (BAPS1-6) (الشكل التكميلي 4). كلما كان السكان أكثر تنوعا ، كلما أصبح توزيع المجموعات الفرعية BAPS (الأنماط الفردية) أكثر انخفاضا من BAPS1 (مستوى أقل من الدقة) إلى BAPS6 (مستوى أعلى من الدقة) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s4.Rmd).