معلومة

كيف نفسر مسافة روبنسون-فولد الموزونة بين الأنساب؟


يوفر مقياس Robinson-Foulds (RF) مسافة متماثلة بين نسختين من السلالات كمجموع مجموعات أحادية النسل موجودة في شجرة واحدة ولكن ليس في الأخرى. يتم تحديد مسافة التردد اللاسلكي التي تم ضبطها على أنها $ frac {RF_i} {RF_ {max}} $. لنفكر في مثال:

تتطلب (phangorn) set.seed (123456) tr = rtree (10، rooted = FALSE) tr2 = rtree (10، rooted = FALSE) RF.dist (tr، tr2) # [1] 12 RF.dist (tr، tr2 ، التسوية = TRUE) # [1] 0.8571429

يعني الصف الأخير أن الأشجار تختلف بنسبة 86٪ من أقصى مسافة لها. ولكن كيف يفسر المرء مسافة التردد اللاسلكي إذا كانت موزونة على أطوال الفرع؟

wRF.dist (tr، tr2) # [1] 13.20986 wRF.dist (tr، tr2، normalize = TRUE) # [1] 0.7600115

هل 76٪ من أقصى مسافة للشجرة بالنظر إلى مجموع أطوال الأشجار مقارنة بالأشجار؟


روبنسون فولدز سوبر تريز

تقوم الطرق الثلاثية الفائقة بتجميع مجموعات من أشجار النشوء والتطور الصغيرة ذات الأصناف غير الكاملة المتداخلة في الأشجار الشاملة ، أو الأشجار العملاقة ، والتي تشمل جميع الأصناف الموجودة في أشجار المدخلات. طرق Supertree القائمة على مسافة Robinson-Foulds (RF) الراسخة لديها القدرة على بناء شجرات عملاقة تحتفظ بالكثير من المعلومات من أشجار الإدخال. على وجه التحديد ، تبحث مشكلة التردد اللاسلكي الفائق عن شجرة ثنائية فائقة تقلل من مجموع مسافات التردد اللاسلكي من الشجرة الفائقة إلى الأشجار المدخلة. وبالتالي ، فإن الشبكة الراديوية الفائقة هي عبارة عن شجرة فائقة تتوافق مع أكبر عدد من المجموعات (أو الكتل) من أشجار الإدخال.

نتائج

نحن نقدم أساليب استكشافية فعالة تعتمد على البحث المحلي وتسلق التلال لمشكلة الترددات الراديوية الفائقة الصعبة جوهريًا على الأشجار المتجذرة. تستخدم هذه الأساليب التجريبية خوارزميات جديدة غير تافهة لمشكلات البحث المحلي SPR و TBR والتي تعمل على تحسين التعقيد الزمني لأفضل الحلول المعروفة (الساذجة) بعامل Θ (ن) و Θ (ن 2) على التوالي (أين ن هو عدد الأصناف ، أو الإجازات ، في الشجرة الكبيرة). نحن نستخدم تطبيقًا لخوارزمياتنا الجديدة لفحص أداء طريقة التردد الراديوي الفائق ومقارنتها بتمثيل المصفوفة بالبخل (MRP) وطريقة الثلاثية الفائقة باستخدام أربع مجموعات بيانات فائقة. لم يقتصر الأمر على توفير الكشف عن الترددات الراديوية لدينا لتقديرات سريعة لأشجار التردد الراديوي الفائقة في جميع مجموعات البيانات ، بل احتفظت الأشجار الكبيرة للتردد اللاسلكي أيضًا بمزيد من المعلومات من أشجار الإدخال (استنادًا إلى مسافة التردد اللاسلكي) أكثر من الطرق الأخرى الفائقة.

الاستنتاجات

تتيح استطلاعاتنا لمشكلة الترددات الراديوية الفائقة ، استنادًا إلى خوارزميات البحث المحلية الجديدة لدينا ، إمكانية تقدير الأشجار الكبيرة الكبيرة لأول مرة عن طريق تحسين مسافة التردد اللاسلكي مباشرةً من أشجار الإدخال المتجذرة إلى الأشجار الكبيرة. يوفر هذا طريقة جديدة وسريعة لبناء أشجار عملاقة دقيقة. قد تكون الأشجار العليا للترددات الراديوية مفيدة أيضًا في تقدير الشجر الفائق لقاعدة الأغلبية (-) ، وهو تعميم لأشجار توافق حكم الأغلبية.


التعاريف والتدوين

في بقية المقال ، نفترض أننا قد حصلنا على مجموعة من الأنساب تي1, تي2, …, تين مع مجموعة مشتركة من رؤوس الأوراق إل. إن اشتراط أن تشترك جميع السلالات في نفس مجموعة الأوراق ليس ضروريًا في الواقع ، ولكن يتم الاحتفاظ به لسهولة العرض. بالنظر إلى مجموعة السلالات البديلة تي1, تي2, …, تين ويترك إل، الشجرة الفوقية هي شجرة غير متجذرة بها ن يترك مثل هذا الشكل 1 يظهر مثال بسيط. في جميع أنحاء المقالة ، تُستخدم القبعات المرتفعة للتمييز بين "الكائنات الوصفية" من نظيراتها ، لذلك ، على سبيل المثال ، سيتم الإشارة إلى قمة في نسالة الخامس، في حين أن رأس الشجرة الوصفية سيشار إليها ⁠. سيتم رسم الأشجار الفوقية بأشكال ذات دوائر مجوفة عند العقد.

كل رأس في يرتبط بها شجرة الأنواع مع الأوراق إل، و

رؤوس أوراق الشجر مرتبطة بالأشجار تي1, …, تين .


مناقشة

لقد قمنا ببناء أول شبكات عصبية عميقة متبقية لمهمة استنتاج الأنساب الرباعية من محاذاة تسلسل الأحماض الأمينية. قمنا بتدريب هذه الشبكات المتبقية على بيانات التسلسل المحاكاة وأظهرنا أن المتنبئين المدربين يؤدون أداءً جيدًا في اختبار البيانات التي تمت محاكاتها بالمثل. لقد وجدنا أن متنبئات الشبكة المتبقية لدينا تقارن بشكل إيجابي مع أحدث أساليب التطور في ظل مجموعة متنوعة من مخططات تطور التسلسل المختلفة ونطاقات معلمات الشجرة. على وجه التحديد ، يتفوق المتنبئون لدينا في الأداء على جميع الأساليب الحالية التي تم فحصها على أشجار LBA الرباعية الصعبة التي تنطوي على تغايرات واسعة في الموقع والوقت في التطور. يتحقق التحقق من الصحة باستخدام مجموعات بيانات النشوء والتطور الحقيقية من صحة المتنبئين لدينا ولا يكشف عن أي علامة على التكييف الزائد لخطط التدريب. يمكن استخدام أشجار الرباعية التي تم استدلالها من خلال متنبئات الشبكة العصبية المتبقية لدينا من خلال لغز الرباعي لتجميع الأشجار الكبيرة ، والتي تبدو موثوقة مثل أو حتى أكثر موثوقية من الأشجار الكبيرة المبنية بالطرق الحالية. وبالتالي ، فإن تدريب الشبكات العصبية المتبقية على بيانات النشوء والتطور غير المتجانسة الناتجة عن محاكاة الكمبيوتر يثبت أنه حل واعد للصعوبة الحالية في هذا المجال. على أساس الأداء في جميع التحليلات ، قمنا بصياغة DNN3 في برنامج استدلال نسبي جاهز للاستخدام يسمى PhyDL (https://gitlab.com/ztzou/phydl تم الوصول إليه آخر مرة في 3 يناير 2020).

توفر عملية التدريب معلومات مثيرة للاهتمام حول كيفية تعلم الشبكات المتبقية تدريجيًا لاستخراج إشارات النشوء والتطور من محاذاة التسلسل. في عملية تدريب dnn1 ، بينما تم اكتساب القدرة على استنتاج الأشجار الرباعية العادية بسرعة في 10 فترات ، تم اكتساب القدرة على حل أشجار LBA بشكل أبطأ بكثير (الشكل 1 ب). على سبيل المثال ، لم تكن قدرة dnn1 على حل أشجار LBA أكبر من قدرة طريقة MP (1078 شجرة صحيحة لكل 2000 شجرة تم اختبارها) قبل 100 عصر. حدث التحسن الملحوظ في قدرة حل LBA لـ dnn1 بين 100 و 200 حقبة (الشكل 1 ب). في عملية تدريب dnn3 ، ظلت الدقة في حل أشجار LBA حول مستوى MP (867 شجرة صحيحة لكل 2000 شجرة تم اختبارها) لمدة 700 حقبة قبل زيادتها السريعة وتجاوزها في نهاية المطاف أعلى مستوى بين جميع الطرق الحالية ، 1230 شجرة صحيحة من بين 2000 اختبار بواسطة PhyML (الشكل 1 ب). تشير أنماط التعلم التدريجي هذه إلى إمكانية قيام الشبكات المتبقية أولاً بالتقاط إشارات النشوء والتطور المباشرة التي يمكن أيضًا التقاطها بطرق بسيطة مثل MP ، ثم تعلمت بعد ذلك استخراج إشارات العمليات التطورية المعقدة لماركوفيان.

على الرغم من معايير التحسين البسيطة لـ MP و NJ ، بالنسبة لمعظم مجموعات بيانات الشجرة العادية لهذه الدراسة ، فإن هاتين الطريقتين تتفوقان على ML و BI حتى عندما تكون العملية التطورية معقدة نسبيًا. ربما يرجع ذلك إلى أن المحاذاة مع أربعة أصناف لا توفر معلومات كافية لتقدير دقيق لمعايير النماذج التطورية المعقدة ، والتي يمكن أن تحدث في الواقع. وبهذا المعنى ، فإن تنبؤات الشبكة المتبقية مفيدة من حيث أنها لا تعتمد على البيانات البؤرية لتحديد معلمات النموذج. علاوة على ذلك ، لا تراعي برامج ML و BI الشائعة الاستخدام عدم التجانس الزمني في تطور التسلسل ، وبالتالي قد يكون أداءها ضعيفًا بشدة بسبب خطأ في تحديد النموذج أو قصوره في مواجهة التباين الواسع. في المقابل ، يسمح التعلم العميق للمتنبئ باكتساب القدرة على استنتاج الأشجار حتى عندما يكون تطور التسلسل غير متجانس إلى حد كبير. والأهم من ذلك ، أن متنبئات الشبكة المتبقية لا تتطلب مواصفات مسبقة لنماذج تطور التسلسل الميكانيكي أثناء التدريب ، مما يخفف من خطر الخطأ في تحديد النموذج.

بصرف النظر عن دقة الاستدلال ، فإن الشبكات العصبية العميقة التي تعمل على وحدات معالجة الرسومات (GPU) هي أيضًا فعالة من حيث الوقت عند استنتاج الأشجار. لقياس سرعة التنبؤ ، استنتجنا طوبولوجيا 100 شجرة رباعية محاكية بطول تسلسل 2000 من الأحماض الأمينية وجميع أطوال الفروع تساوي 1 (testtime_01 في الجدول التكميلي S2 ، المواد التكميلية عبر الإنترنت). على وحدة المعالجة المركزية Intel Xeon W-2133 (3.6 جيجاهرتز) ، قضت خوارزميات NJ و MP المطبقة في MEGA 0.077 ثانية و 0.127 ثانية على التوالي لشجرة متوسطة ، بينما قضت RAxML و PhyML و MrBayes 2.81 ق ، 7.82 ثانية ، و 41.7 ثانية ، على التوالي. على نفس قلب وحدة المعالجة المركزية ، تستخدم تنبؤات الشبكة المتبقية في المتوسط ​​0.146 - 0.154 ثانية لكل شجرة ، أبطأ من NJ و MP ولكن أسرع من ML و BI. ومع ذلك ، باستخدام نواة وحدة المعالجة المركزية جنبًا إلى جنب مع بطاقة رسومية Nvidia Titan Xp ، قضى المتنبئون الثلاثة 0.053 - 0.055 ثانية لكل شجرة ، أسرع من أي طريقة موجودة مقارنة هنا. تراوحت التكلفة الإجمالية للوقت لـ 100 شجرة من 9.7 ثانية إلى 9.9 ثانية للمتنبئين لدينا ، بما في ذلك الوقت المتقطع لتحميل المتنبئين على وحدة معالجة الرسومات. يمكن أن يؤدي استخدام الحساب المسرع بواسطة GPU بواسطة الشبكات العصبية العميقة إلى تحقيق كفاءة عالية في مهام الاستدلال النشئي الضخمة ، بغض النظر عن استخدام الخوادم العامة أو أجهزة الكمبيوتر الشخصية التي تم تكوينها بشكل صحيح.

على الرغم من الدقة العالية عمومًا ، تفشل متنبئات الشبكة المتبقية لدينا في تجاوز أداء أفضل الطرق الحالية في ظل بعض الظروف. ومع ذلك ، من الناحية العملية ، من غير المعروف الطريقة الحالية التي تحقق أفضل أداء لمجموعة بيانات معينة لأن الشجرة الحقيقية الأساسية غير معروفة. في تحليلاتنا ، على سبيل المثال ، يحقق NJ و MP أداءً جيدًا على الأشجار العادية ، لكنهما يظهران دقة أقل على أشجار LBA ، في حين أن العكس هو الصحيح بالنسبة لـ ML. تشير حقيقة أن متنبئات الشبكة المتبقية لدينا إلى أداء متفوق بشكل عام إلى أنه يمكن تطبيقها على مهام استدلال شجرية متنوعة عند استخدامها بمفردها أو دمجها مع الألغاز الرباعية.

شهدت السنوات الأخيرة العديد من تطبيقات التعلم العميق في علم الوراثة السكانية والتطورية (Sheehan and Song 2016 Kern and Schrider 2018). عندما كنا نعد هذه المخطوطة ، أبلغ سوفوروف وزملاؤه عن تنفيذ وتدريب شبكة CNN عميقة لاستنتاج الأشجار الرباعية من تسلسل الحمض النووي (Suvorov et al. 2019). نظرًا لأن المتنبئ الخاص بنا قد تم تدريبه على تسلسل البروتين بينما تم تدريبه على تسلسل الحمض النووي ، فلا يمكن مقارنة أداء المتنبئين بشكل مباشر. ومع ذلك ، هناك العديد من الاختلافات الواضحة. أولاً ، استخدمنا الشبكات العصبية المتبقية ، والتي ، بالمقارنة مع شبكات CNN التقليدية المستخدمة من قبل Suvorov et al. ، تسمح ببنى شبكات أعمق دون المعاناة من تأثير "التدرجات المتلاشية" ، وبالتالي يمكن أن تحقق تعلمًا أفضل لعمليات التطور المعقدة (He et al. 2016). في الواقع ، تحتوي شبكاتنا على 16 طبقة التفاف ، بينما تحتوي شبكات سوفوروف وآخرون على ثماني طبقات. ثانيًا ، سوفوروف وآخرون. المحاذاة المحاكية للفجوات وغير المغطاة وأظهرت أن ميزة توقعها على الطرق الحالية تكمن أساسًا في التعامل مع الفجوات. لقد قمنا بمحاكاة المحاذاة غير المقيدة فقط ووجدنا أن المتنبئ الخاص بنا يتفوق على الأساليب الحالية حتى في حالة عدم وجود فجوات. ثالثًا ، والأهم من ذلك ، أن المتنبئ يعمل بشكل جيد ليس فقط على بيانات المحاكاة ولكن أيضًا على بيانات النشوء والتطور الحقيقية المتنوعة ، في حين أن متنبئ سوفوروف وآخرون لم يتم تقييمه بعد على بيانات حقيقية. هذا الاختلاف مهم بشكل خاص لأن البيانات الحقيقية لها اختلافات في الموقع والوقت بالإضافة إلى اختلافات طول التسلسل ، والتي تم تضمينها في بيانات التدريب الخاصة بنا ولكن ليس Suvorov et al. لاحظ أن تنفيذ الشبكات العصبية المتبقية لحل الأشجار الرباعية قابل للتطبيق بسهولة على بيانات تسلسل النيوكليوتيدات ، وسيكون من المهم تطوير تنبؤات الشبكة المتبقية لتسلسل النيوكليوتيدات في المستقبل القريب.

أشجار الرباعية هي أصغر الأشجار الممكنة ، وهنا تعاملنا مع استدلال الشجرة الرباعية كمهمة تصنيف لأن هناك ثلاثة طوبولوجيا شجرية ممكنة لأربعة أصناف. ومع ذلك ، مع عدد تعسفي من ن الأصناف ، يمكن أن يكون عدد الهياكل الممكنة فلكيًا. وبالتالي ، على الرغم من أننا أظهرنا قابلية تطبيق تنبؤات الشبكة العصبية المتبقية على استدلال الشجرة الكبيرة عند دمجها مع الحيرة الرباعية ، فإن بنية الشبكة نفسها تقتصر بطبيعتها على حل الأشجار ذات الأعداد الصغيرة الثابتة من الأصناف. لتطوير متنبئ التعلم العميق مع التعميم الفطري ل ن-استدلال شجرة تاكسون ، سنحتاج على الأرجح إلى منهجية تنبؤ بالهيكل ، الأمر الذي يتطلب تركيبات شبكة أكثر تعقيدًا (Joachims et al. 2009) واستراتيجيات تعلم أكثر تقدمًا. نظرًا لنجاح التعلم العميق لاستدلال الشجرة الرباعية الموضحة هنا ، فإننا متفائلون بحذر بأن التعلم الآلي سيحسن إعادة بناء النشوء والتطور بشكل عام ، وبالتالي ندعو إلى مزيد من الدراسات في هذا المجال الواعد.


مناقشة

لقد قدمنا ​​نهجًا يعتمد على طيف الرسم البياني Laplacian لتقليل أشجار النشوء والتطور غير المسماة إلى خصائصها المكونة. لقد أوضحنا كيفية حساب ملامح الكثافة الطيفية للتطور ، وكيفية استخدام هذه الملامح لتوصيف الأشجار ومقارنتها وتكتلها ، وكذلك للعثور على أنماط تقسيم متميزة داخلها. يوفر هذا إطارًا شاملاً لـ (1) تلخيص المعلومات الواردة في الأنساب ، (2) تحديد أوجه التشابه والاختلاف بين الأشجار ، و (3) انتقاء أنماط متفرعة مميزة داخل الأشجار الفردية ، دون إجراء أي بداهة افتراضات حول السلوك الأساسي. قدرة هذا النهج على تحليل الأشجار غير المتناهية الصغر ، على وجه الخصوص ، تملأ فجوة فارغة إلى حد كبير في مجال ديناميكيات التنويع.

مناهج لتلخيص معلومات النشوء والتطور مطلوبة عبر مجالات متعددة لعلوم الحياة. إنها ضرورية لدراسة التنوع الوراثي في ​​كل من العالمين الكلي والميكروبي (Faith 1992 Lozupone and Knight 2008) ، لقياس مدى ارتباط الأنواع ارتباطًا وثيقًا بالتجمعات المجتمعية (Webb et al.2.2002) ، لفهم كيفية اختلاف التنوع بمرور الوقت و عبر الأنساب (Morlon 2014) ، ولتتبع تنوع الأنساب للأمراض المعدية عبر الزمن (Vijaykrishna et al. 2014). هذه الأساليب مفيدة أيضًا بشكل خاص في نمذجة النشوء والتطور حيث تسمح لنا بتقييم مدى قرب إعادة إنتاج نموذج بيئي أو وبائي أو تطوري كبير للأشجار التجريبية. تتيح لنا القدرة التي توفرها المقاربات التي تلخص معلومات النشوء والتطور لتحديد المسافة بين الأشجار قياس المسافة بين الأشجار التي تمت محاكاتها وفقًا لنموذج معين والأشجار التجريبية ، وهو أمر بالغ الأهمية لمناهج ملائمة مثل حساب Bayesian التقريبي (Janzen et al. 2015) أو عمليات المحاكاة التنبؤية اللاحقة (لويس وآخرون ، 2014).

نظرًا لأهمية تلخيص المعلومات الواردة في أشجار النشوء والتطور ، فإن دراستنا ليست المحاولة الأولى للقيام بذلك. ومع ذلك ، فإن نهجنا غير مسبوق بقدر ما تمثل الكثافات الطيفية مجمل البنية النشوء والتطور تقريبًا: بالنسبة للأشجار ذات الحجم المتوسط ​​، لا تُفقد أي معلومات (أو الحد الأدنى) على شكل الشجرة عند التعبير عن نسالة باعتبارها كثافتها الطيفية. لذلك فهو يتفوق على الإحصائيات الموجزة المقترحة سابقًا والتي تقتصر على خصائص معينة للشجرة تلخصها إحصائية واحدة. عند اختزاله إلى خصائصه المكونة (أي الأساسي λ ⁠ والانحراف والتفرطح) ، لا يزال ملف تعريف الكثافة الطيفية قادرًا على تحديد أنواع التنويع بين الأشجار بشكل أفضل من مجموعة من الإحصائيات الموجزة التقليدية الأكثر استخدامًا. هناك ميزة إضافية لملفات تعريف الكثافة الطيفية مقارنة بالعديد من إحصاءات الملخص التقليدية وهي أنه يمكن حسابها بغض النظر عما إذا كانت الشجرة مؤرخة أو متناهية الصغر أو تم حلها بالكامل.

هناك العديد من التطبيقات المحتملة لنهجنا. على سبيل المثال ، بافتراض أن التطور المشترك والتنويع يؤديان إلى أوجه تشابه في الأنماط المتفرعة ، يمكن تحديد التشابهات التي تخضع للتنويع بناءً على أوجه التشابه في ملفات تعريف الكثافة الطيفية الخاصة بها دون أي بداهة معلومات حول تفاعلهم. قد يكون هذا مفيدًا بشكل خاص في حالة الميكروبات والفيروسات ، حيث لا يمكن ملاحظة التفاعلات والتطور المشترك بشكل مباشر في الطبيعة. في الفيروسات ، على وجه الخصوص ، يمكن استخدام أوجه التشابه في ملامح الكثافة الطيفية لتحديد التقارب عبر الأنساب ، حيث يمكن أن يكون التنويع مدفوعًا ، على سبيل المثال ، بمعامل بيئي ، أو تكيف السمات ، أو حتى استبدال خاص بالموقع. في هذا الصدد ، فإن تحليلاتنا لأنماط التنويع المختلفة في سلالات الأنفلونزا أ - على الرغم من أنها مخصصة هنا فقط لأغراض توضيحية ويجب أخذها بحذر - هي بعض الاهتمام.

وجدنا تأثيرات تفاضلية لشريحة البروتين والمضيف وبلد المنشأ على تنويع الأنفلونزا أ. بالنسبة لمعظم شرائح الفيروس ، أنماط التنويع متشابهة ، على الرغم من وجود اختلافات ملحوظة بين كل من HA و NA والقطاعات الأخرى. يُظهر هذان المقطعان قيمًا أعلى بكثير لمتوسط ​​الارتفاع الرئيسي λ والذروة ، مما يدل على التنويع غير المتوازن والمتوسع للغاية ، والذي يدعم الملاحظات السابقة لمعدلات الاستبدال المرتفعة بشكل خاص في هذه البروتينات (Bhatt et al. 2011). على عكس العمل السابق ، ومع ذلك ، لا نجد أوجه تشابه في ملامح الكثافة الطيفية لـ HA و M1 ، والتي تم اقتراح أن يكون لها تاريخ نسج مماثل بسبب تفاعلها أثناء التجميع الفيروسي (Rambaut et al. 2008). على الرغم من أن هذه القطاعات قد تكون مترابطة ميكانيكيًا ، فإن الاختلاف الكبير بين أنماط التنويع الخاصة بها يشير إلى أن استراتيجيات التطور المشترك ، على الرغم من توافقها ، ليست متكافئة. أخيرًا ، الاختلافات الاستثنائية بين HA و PB2 ، على وجه الخصوص ، حيث يمثل الأول بشكل غير متناسب أشجارًا أكثر توسعية وغير متوازنة وجذعية من تلك التي تم إنشاؤها باستخدام الأخير ، مما يدل على مسارات تطورية مميزة لبروتينين في فيروس واحد ، فضلاً عن قيود قوية على تلك المسارات عبر مضيفات النشوء والتطور البعيدة. علاوة على ذلك ، نرى تأثيرًا كبيرًا لبلد المنشأ على أنماط التنويع داخل كل مضيف ، حيث تتنوع السلالات من نفس البلد بشكل مشابه أكثر مما هو متوقع بالصدفة. ومع ذلك ، بالنسبة لكل من ملامح الكثافة الطيفية القياسية والموحدة ، فإن أقوى تأثير منفرد على شكل تنويع الفيروس هو المضيف الحيواني. توضح هذه النتائج فائدة نهجنا في التعامل مع الأشجار غير المترية واستكشاف سلوك التنويع للعديد من الكائنات الحية التي لم تكن متاحة سابقًا لفرضيات التطور الكلي.

إيجاد تحولات في عمليات التنويع هو مصلحة رئيسية في التطور الكلي. طرق تحديد تحولات المعدل في الأشجار (على سبيل المثال ، Alfaro et al. 2009 Shah et al. 2013 Rabosky 2014) كانت لا تقدر بثمن في إنشاء ، على سبيل المثال ، الإشعاعات التكيفية في الكتل الكبيرة (Alfaro et al. 2009 Shi and Rabosky 2015). نقدم طريقة eigengap الاستكشافية ، وهي طريقة لإيجاد طرق مختلفة للتنويع داخل شجرة واحدة. يُظهر نهجنا نجاحًا كبيرًا - وإن كان غير كامل - في استعادة تحولات المعدل في الأشجار المحاكاة ، والتي يمكن مقارنتها (أو تفوقها) بالطرق الأكثر استخدامًا. لكن من المهم التأكيد على أن الاختلاف التحليلي في هذا النهج يشير إلى اختلاف مفاهيمي أيضًا: لا يحدد دليل eigengap بدقة تحولات المعدل في الشجرة ، ولكنه يحدد فروع عمليات التنويع المماثلة. لذلك ليس من المستغرب أن يكون أداؤه دون المستوى ، ولو بشكل طفيف ، مقابل طريقة موجودة في تحديد التحولات في معدل التنويع ، ولكنه يتفوق على نفس الطريقة في تحديد التحولات في نمط التنويع. وبالتالي ، فإن الاستدلال eigengap يميز نفسه من خلال قدرته على التعرف على أنماط أنماط التنويع الموجودة في الشجرة. يوضح توضيحنا لهذا النهج مع شجرة أثرية كيف يمكن استخدام الاستدلال eigengap لتحديد المجموعات المتغيرة بشكل متفاوت من الأنواع الميكروبية في بيئة واحدة (في هذه الحالة ، بحيرة Dagow). على وجه التحديد ، فإنه يكشف عن مجموعات فرعية ذات أنماط تنويع مختلفة إلى حد كبير ، والتي لا تختلف باختلاف الصلة بالتطور.

ركزت معظم الأعمال النظرية السابقة للرسم البياني في علم الوراثة على تطوير طرق لتقدير "مساحة الشجرة" التي تشغلها الفرضيات المختلفة لنفس شجرة النشوء والتطور (Hillis et al. 2005 Huang and Li 2013 Whidden and Matsen 2015). لقد كانت هذه الطرق ناجحة للغاية ونعتقد أنه من خلال تقييم تطابق الكثافات الطيفية للأشجار المختلفة القائمة على الجينات لنفس شجرة النوع ، قد يكون نهجنا مفيدًا أيضًا لتقدير فترات الثقة للأشجار. وبالمثل ، قد يكون من الممكن التحقيق في التطور المشترك للسمات (والجينات) على أساس (عدم) التشابه بين ملامح الكثافة الطيفية لأشجار السمات (وأشجار الجينات) المأخوذة من نفس النوع. بشكل عام ، تعتبر مقارنة سمات الكثافة الطيفية للعديد من الأنماط ، سواء تم أخذ عينات منها من نفس شجرة الأنواع أم لا ، مفيدة لتحديد الأنماط المميزة للتنويع وكذلك الحدود الطبيعية لتلك الأنماط.

هناك أيضًا العديد من الاختلافات المحتملة في نهجنا. لقد أوضحنا النهج المتبع في تشعب الأشجار ، ومع ذلك يمكن أن تأخذ مصفوفة الدرجات أي شكل ، مثل تلك الأشجار الشبكية (أي شبكات التطور الوراثي) أيضًا يمكن تحليلها. كانت الأشجار الشبكية حتى الآن غير قابلة للتجول إلى حد كبير من خلال تقنيات النشوء والتطور التقليدية ، ونتيجة لذلك ، افترضت دراسات الأنساب الجرثومية أن الأشجار متشعبة (Martin et al. 2004) ، والتي غالبًا ما تكون غير دقيقة نظرًا لمستوى نقل الجينات الجانبي في عالم الميكروبات. بالنظر إلى أن الميكروبات تشكل غالبية التنوع البيولوجي على هذا الكوكب ، فمن الأهمية بمكان تطوير مثل هذه الأساليب.

أخيرًا ، هناك العديد من الامتدادات المحتملة لنهجنا. على سبيل المثال ، يتم استخدام الرسم البياني Laplacians في ديناميكيات المزامنة (McGraw و Menzinger 2008) لتحليل ما إذا كان جزء معين من الشبكة يؤثر على ديناميكيات أجزاء أخرى من تلك الشبكة وكيف. عند تطبيقه على الأنساب ، يمكن أن يسمح ذلك بتحليل تأثيرات التفاعل لبعض التكوينات على البعض الآخر. هناك أيضًا تقنيات من الهندسة التفاضلية ، بناءً على ما يسمى بصيغة التتبع (Horton et al. 2006) ، والتي يمكن استخدامها لتحليل سلوك مجموعات الكثافات الطيفية ، مثل الكثافات الطيفية المقاسة لشجرة في أوقات مختلفة من أصله. يمكن أن تخبرنا مثل هذه التحليلات عن تطور كليد. يتمثل الامتداد المحتمل الثالث في استخدام الرسوم البيانية الموقعة ، حيث تقوم مصفوفة موقعة بتعيين البيانات على حواف الرسم البياني لابلاسيان (Shames وآخرون. 2014) لتحليل كيفية عدم تشفير معلومات معينة في السلالات الجزيئية (على سبيل المثال ، المسافة الجغرافية أو النمط الظاهري) يؤثر على الهياكل المحلية في الشجرة.

لقد طورنا نهجًا ، تم تنفيذه في برنامج سهل الاستخدام ، والذي يتيح للباحثين الوصول إلى الأسئلة التي تنقصها تقنيات علم الوراثة الحالية.


كيف نفسر مسافة روبنسون-فولد الموزونة بين الأنساب؟ - مادة الاحياء

التحليلات التلقائية للتطور النشئي المحلية ، أو ALPHA ، هي تطبيق قائم على Python يوفر واجهة مستخدم بديهية لتحليلات النشوء والتطور وتصور البيانات. يحتوي على أربعة أوضاع مميزة مفيدة لأنواع مختلفة من تحليل النشوء والتطور: RAxML ، ومحول الملفات ، ومقارنة MS ، وإحصاء D.

يمنح وضع RAxML المستخدمين واجهة أمامية للتفاعل مع RAxML (STAMATAKIS 2014a) للحصول على أقصى استدلال قائم على الاحتمالية لأشجار النشوء والتطور الكبيرة. يسمح وضع RAxML في ALPHA للمرء باستخدام RAxML لإجراء تحليل النافذة المنزلقة تلقائيًا عبر محاذاة مُدخلة. يمكن للمستخدمين الاختيار من بين مجموعة كبيرة من الخيارات في إجراء تحليلهم ، بما في ذلك: حجم النافذة ، وإزاحة النافذة ، وعدد الإقلاع. في هذا الوضع ، يمكن للمستخدمين إنتاج مجموعة متنوعة من الرسوم البيانية للمساعدة في فهم محاذاة الجينوم وتفسير الأشجار الناتجة عن RAxML. تتضمن خيارات الرسم البياني هذه: تصورًا شجريًا للطبولوجيا ، ومخطط مبعثر للنوافذ إلى طوبولوجياتها ، وتكرار الطبولوجيا ، ورسم بياني خطي للنوافذ بالنسبة المئوية للمواقع الإعلامية ، وخريطة حرارية للمواقع الإعلامية. يوفر وضع RAxML أيضًا دعمًا لحساب إحصائيين استنادًا إلى الأشجار المنتجة داخل كل نافذة مقارنة بشجرة الأنواع الإجمالية: مسافة Robinson-Foulds واحتمال وجود شجرة جينية مع إعطاء شجرة الأنواع.

يوفر محول الملفات في ALPHA واجهة مستخدم لوظيفة محول ملفات Biopython AlignIO. يسمح للمستخدمين بالتحويل بين اثني عشر نوعًا من أنواع ملفات محاذاة الجينوم الشائعة. لا يقبل وضع RAxML سوى تنسيق phylip التسلسلي. يتيح وضع المقارنة MS للمستخدمين إجراء مقارنة دقة بين "ملف الحقيقة" وملف واحد أو أكثر بتنسيق MS أو نتائج وضع RAxML. باستخدام وضع D-statistic ، يمكن للمستخدمين حساب إحصاء D لـ Patterson لتحديد التقديم في محاذاة أربعة تصنيفات. ينتج وضع D-statistic مخطط تبعثر لقيمة D-statistic عبر النوافذ المنزلقة بالإضافة إلى قيمة D-statistic عبر المحاذاة بأكملها.

يعمل ALPHA حاليًا على أنظمة تشغيل Mac و Windows ويختار نظام التشغيل المناسب تلقائيًا. مطلوب Python 2.7.13 و Java من أجل واجهة المستخدم الرسومية هذه ، إلى جانب المكتبات الإضافية: BioPython و DendroPy و ETE و Matplotlib و natsort و PIL و PyQt4 و ReportLab و SciPy و Statistics و SVGUtils. مطلوب أيضًا RAxML لإجراء التحليل في وضع RAxML.

تجنب الأحرف الخاصة ، مثل علامات التشكيل والمسافات وعلامات الترقيم بخلاف النقاط (".") والشرطات السفلية ("_") في أسماء مجلد ALPHA وجميع ملفات الإدخال.

في وضع RAxML ، يوجد قسمان للتحليل يحتويان على تفضيلات لضبط الإحصائيات. في قسم تشغيل RAxML ، يختار المستخدم ملفًا بتنسيق phylip-Sequential ويعدل الخيارات ضمن إعدادات RAxML القياسية أو المتقدمة لتلائم تفضيلاته.

في الوضع القياسي ، يمكن إدخال حجم النافذة وإزاحة النافذة وعدد الهياكل المراد تحليلها يدويًا كأعداد صحيحة أكبر من واحد. يمكن اختيار نوع النموذج من ستة أنواع شائعة. يمكن أيضًا تحديد Bootstrapping إذا كان كذلك ، يمكن للمستخدم إدخال مستوى الثقة وعدد عمليات التمهيد التي يتعين تنفيذها. يمكن للمستخدم أيضًا اختيار عمل روت للشجرة في مجموعة خارجية معينة في ملف الإدخال.

في الوضع المتقدم ، يمكن للمستخدم إدخال أمر RAxML مخصص يتم فيه التعامل مع العلامتين -s و -n داخليًا. يمكن أيضًا إنشاء شجرة أنواع متجذرة أو غير متجذرة في هذا الوضع باستخدام أمر RAxML مخصص أو ببساطة عن طريق النقر فوق إنشاء ، والذي يقوم بتشغيل RAxML على المحاذاة بأكملها.

لمزيد من المعلومات حول RAxML وأوامره ، انظر دليل RAxML.

بعد تشغيل RAxML ، يمكن للمستخدم الدخول إلى قسم إنشاء الأشكال وتحديد أي مما يلي: التصور الشجري لأهم الطبولوجيا ، مخطط مبعثر الطبولوجيا من Windows إلى الطوبولوجيا ، مخطط الدائرة الدائري لتردد الطبولوجيا ، الرسم البياني الخطي للمواقع الإعلامية ، خريطة الحرارة للمواقع الإخبارية ، مخطط تبعثر مسافة روبنسون-فولد الموزون و / أو غير الموزون ، واحتمالية شجرة الجينات وفقًا لمخطط تبعثر شجرة الأنواع. يمكن للمستخدم أيضًا تحديد عدد المخططات العلوية التي يرغبون في تحليلها وإدخال ملف أو سلسلة شجرة الأنواع في خيارات الرسم البياني.

يُنشئ تصور شجرة الطبولوجيا صورة تحتوي على أكثر أنواع السلالات المحلية التي تحدث بشكل متكرر والتي تم إنشاؤها عن طريق تشغيل RAxML على نوافذ بالحجم المحدد مسبقًا. يتضمن التمثيل المرئي أيضًا عدد مرات حدوث كل طوبولوجيا.

يعرض مخطط مبعثر Windows to Topologies Scatter Plot النوافذ التي يحدث فيها كل نسالة محلية ويصور المحور السيني كرقم النافذة والمحور الصادي كطوبولوجيا.

مخطط الدائرة الدائري الأعلى لتردد الطبولوجيا هو رسم بياني يوضح عدد مرات حدوث كل طوبولوجيا يتم تجميع الطوبولوجيا التي تختلف عن الهياكل معًا وتصنيفها على أنها "أخرى".

قم بإنشاء تصور شجرة الطبولوجيا و Windows إلى مخطط مبعثر الطبولوجيا و مخطط دائري لتردد الطوبولوجيا في نفس الوقت للتأكد من أن ألوان الهياكل تتوافق مع الألوان المستخدمة داخل المخططات.

يوضح الرسم البياني الخطي لـ Windows to Informative Sites كيف تختلف النسبة المئوية للمواقع الإعلامية عبر كل نافذة. يوجد Windows على المحور السيني ، والنسبة المئوية للمواقع الإعلامية على المحور ص.

تصور الخريطة الحرارية للمواقع الإعلامية مدى المعلوماتية لكل موقع في البيانات. إذا كان الموقع مفيدًا ، فهناك خط أسود. كلما كان الموقع أكثر إفادة ، زاد سمك الخط في خريطة الحرارة.

تصور مؤامرة Robinson-Foulds Distance Scatter Plot مسافة Robinson-Foulds بين السلالة المحلية وشجرة الأنواع. يمكن للمستخدم أن يختار إنشاء مخطط مبعثر المسافات الموزون لروبنسون-فولدز ، والذي يأخذ أطوال الفروع في الاعتبار ، أو يمكنه إنشاء كل من المخططات الموزونة وغير الموزونة من خلال عدم تحديد الخيار الموزون.

يُظهر احتمال وجود شجرة جينية بالنظر إلى مخطط تبعثر شجرة الأنواع احتمالية تطور السلالات المحلية في نافذة تحدث بالفعل بالنظر إلى شجرة الأنواع المُدخلة.

يسمح وضع محول الملفات للمستخدم بتحديد ملف يحتوي على محاذاة الحمض النووي في واحد من اثني عشر تنسيقًا شائعًا وتحويلها إلى تنسيق ملف مختلف. بعد تحديد ملف الإدخال وتنسيقه ، يجب على المستخدم تحديد اسم ملف الإخراج وموقعه مع التنسيق المطلوب.

لمزيد من المعلومات حول أنواع الملفات ، راجع BioPython AlignIO.

في وضع المقارنة MS ، يمكن للمستخدم تحديد ملف حقيقة MS ودليل RAxML و / أو ملفات MS أخرى لمقارنتها. يحتوي هذا الوضع على خيارات لإنشاء أرقام لمسافة Robinson-Foulds من MS Truth Bar Plot ، ونسبة مطابقة النسبة المئوية لشريط المواقع ، والرسم البياني الخطي TMRCA.

عند المقارنة بدليل RAxML ، يكون لدى المستخدم خيار إدخال الدليل الذي يحتوي على ملفات RAxML واختيار حجم النافذة والإزاحة. من المفترض استخدام هذه الوظيفة بعد إجراء تحليل النافذة المنزلقة في وضع RAxML في ALPHA.

عند مقارنة ملف الحقيقة بملفات MS الأخرى ، يمكن للمستخدم إدخال ملفات MS متعددة للمقارنة.

تصور مسافة Robinson-Foulds من MS Truth Bar Plot الفرق الكلي بين الأشجار في ملف الحقيقة والملفات الأخرى التي تم اختيارها للمقارنة.

يعرض مخطط شريط مواقع المطابقة المئوية النسبة المئوية للمواقع في ملف (ملفات) المقارنة التي تحتوي على أشجار تطابق ملف الحقيقة لكل من التحليلات الموزونة وغير الموزونة. يتم استخدام مسافة Robinson-Foulds لتحديد ما إذا كانت الشجرة تعتبر مطابقة أم لا.

يوضح الرسم البياني الخطي TMRCA ارتفاع الشجرة فوق كل موقع عند مقارنة ملفات الحقيقة والملفات الأخرى. يهدف هذا الرقم إلى توضيح الاختلافات في الوقت بالنسبة لآخر سلف مشترك (TMRCA) بين كل ملف.

يسمح وضع D-statistic للمستخدم بإدخال ملف محاذاة في تنسيق phylip-sequential ، واختيار حجم النافذة والإزاحة ، وتحديد موقع كل مجموعة خارجية في شجرة المرئية. يقوم هذا الوضع بعد ذلك بإنشاء إحصائية D الإجمالية ومخطط مبعثر يكون فيه المحور x هو رقم النافذة ، والمحور y هو القيمة الإحصائية D المحسوبة لتلك النافذة.

لمزيد من القراءة حول إحصاء D واستخداماته ، انظر:
جرين وآخرون. (2010) ، Durand et al. (2011) ، مارتن وآخرون. (2014)

لقد اجتازت D GEN الخوارزمية وواجهة المستخدم الرسومية عملية تجاوز رئيسية. THESE INSTRUCTIONS WILL BE UPDATED VERY SOON ALONGSIDE AN ACCOMPANYING PAPER DETAILING THE NEW ALGORITHM. THANK YOU FOR YOUR PATIENCE.

ALPHA’s generalized D statistic has many different inputs to cover a range of user preferences. This section will go over each input and its usage in both the user interface and command line script.

To run the command line version of the generalized D statistic cd into the CommandLineFiles directory and use the following command with one’s desired parameters. All possible parameters are listed below along with their default values for the command line script. Note: not all of these parameters can not be called at the same time.

python -c "from CalculateGeneralizedDStatistic import * calculate_generalized(alignments, species_tree=None, reticulations=None, outgroup=None, window_size=100000000000, window_offset=100000000000, verbose=False, alpha=0.01, use_inv=False, useDir=False, directory="", statistic=False, save=False, f="DGenStatistic_", plot=False, meta=False)"

Below we go through a description of each parameter and its usage in both the command line and GUI version of ALPHA:

Alignments: command line - a list of phylip alignment files, example: [‘C:/Users/example/ALPHA/exampleFiles/6TaxaExample’, ‘C:/Users/example/ALPHA/exampleFiles/6TaxaExample2’] GUI - click the three dots next to the “Alignment” box and select a phylip file, if multiple files are desired click the plus sign below “Alignment” and select another file

Species_tree: Command line - a newick string with leaf names matching the taxa in the alignment file, example: ‘((((P1,P2),(P3,P4)),P5),O)’ users can also input the location of a file containing a newick string GUI - use either the “species tree file” or “species tree newick” option. The “species tree file” option allows a user to input a file containing a newick string. The “species tree newick” option allows a user to type their newick string directly into the user interface

Reticulations: Command line - a list of reticulations to use where each reticulation represents the direction of possible gene flow, example: [(‘P2’,’P3’),(‘P4’,’P5’)] a statistic generated by this list of reticulations would determine which site patterns would have an increased probability using a species network with gene flow from P2 to P3 and P4 to P5. GUI - after inputting an alignment file users can select taxa using the drop down menu in the “Reticulations” section. Taxa on the left represent the source of gene flow while the right taxa are the sink. To add more reticulations to the desired statistic click the plus sign and repeat the steps above.

Window size: Command line - an integer denoting the window size to be used when calculating the generalized D statistic with sliding windows GUI - input the desired window size as an integer in the textbox next to “Window Size:”. Note that a plot of the windows to their generalized D statistic can be generated easily using the checkbox next to “Generate Plot” under “Options”

Window offset: Command line - an integer denoting the offset to be used for performing sliding window analysis, note that using a window offset equal to the window size results in consecutive windows GUI - input the desired window offset as an integer in the textbox next to “Window offset:”. Note that a plot of the windows to their generalized D statistic can be generated easily using the checkbox next to “Generate Plot” under “Options

Verbose: Command line - a boolean True or False corresponding to using or not using the verbose output, respectively. Verbose mode includes further information like: the counts for each site pattern, the chi-squared statistic used for determining significance and the probability of each site pattern GUI - after completing a run of the statistic users can toggle between the verbose and the standard output by clicking “View Verbose Output” in the bottom right corner of the interface

Alpha: Command line - a decimal value less than 1 corresponding to the significance level used for hypothesis testing, note that this value is defaulted to 0.01 (1% significance level) GUI - users can specify their significance level using the textbox next to “Alpha:”

Use_inv: Command line - a boolean True or False corresponding to using or not using the inverse site patterns in a statistic, note that at higher taxa using site patterns is not recommended GUI - users can choose to use inverse site patterns using the checkbox next to “Use Inverse”

Use_dir: Command line - a boolean True or False corresponding to using an entire directory of fasta or phylip alignments for performing calculating the generalized D statistic. These files are concatenated in order based on the file name. Note that when True this MUST be used with the directory command explained below GUI - to use an entire directory click the “Use Directory” checkbox then click the three dots next to the “Alignment Directory:” textbox and select the desired directory

Directory: Command line - a string containing the location of the desired directory for more information see use_dir GUI - see use_dir

Statistic: Command line - a string with the file location of a previously saved statistic, meant to be used in conjunction with the save and f commands from a previous run GUI - click the “Load Previously Generated Statistic” checkbox then choose the desired statistic file using the three dots next to the “Statistic:” textbox. Note: using a previously saved statistic allows users to not input a species tree, outgroup and reticulations

Save: Command line - a boolean True or False corresponding to creating a save file for future runs (see statistic), can be used with the “f” parameter GUI - users can specify a save file name and location using the “Statistic Save Location:” textbox. Users can input a file name directly into the textbox to save their statistic in the ALPHA directory or can click the 3 dots and select a folder then add a slash and the desired name of their file. Example: to ‘C:/Users/example/Desktop’ one would add ’/DGenStatistic’ so that the entry in the textbox would be ‘C:/Users/example/Desktop/DGenStatistic’

f: Command line - a string corresponding to the desired filename for a saved statistic, must be used with “save” parameter. Note: if “f” is not used with “save” the statistic is saved as “DGenStatistic.txt” GUI - see “save” parameter

Plot: Command line - a boolean True or False corresponding to creating a matrix formatted output file with columns for the window number, generalized D value and True or False based on its significance. This parameter is meant make it easy for users to parse and plot the results using their preferred software (R, Excel, etc.) GUI - in order to automatically generate a windows to generalized D value plot click the checkbox next to “Generate Plot”

Meta: Command line - a string corresponding to any metadata that a user may wish to include in their plot formatted output (see “plot”). This parameter must be used with plot GUI - this feature is not available in the ALPHA GUI.

Finally, if you have already generated and saved a DGEN statistic, simply launch the dgen tool and select an alignment you wish to analyze. Then select the "Load Previously Generated Statistic" checkbox along with selecting the statistic file itself at the location it has been saved on your computer. Then set the window size and offset and optionally change the alpha significance cutoff parameter. To see a graphical output of a plot of the generalized D value versus the windows along the alignment, simply check the "generate plot" checkbox.

The Smooth Winds page has been created with an accompanying command line script. This documentation will be soon updated alongside a companion publication. Thank you for your patience in the mean time.

All output files are automatically saved in various folders in ALPHA. Windows that are created by RAxML are outputted into the “windows” folder, and are saved as “window0.phylip”, “window1.phylip”, etc. Files outputted by running RAxML are found in the “RAxML_Files” directory. When bootstrap analysis is chosen these files are saved under “RAxML_bestTree”, “RAxML_bipartitions”, “RAxML_bipartitionsBranchLabels”, “RAxML_bootstrap”, and “RAxML_info”. When bootstrapping is not chosen these files are named “RAxML_bestTree”, “RAxML_randomTree”, “RAxML_result”, “RAxML_log”, and “RAxML_info”. Each of these files has “.0”, “.1”, “.2”, etc. extensension corresponding to the index of the window that RAxML was run on. All graphs and images are automatically saved into the plots folder under the name of the image.

For more information regarding the RAxML output files see the RAxML manual.

Download the RAxML source code in a zip folder.

Open a terminal window and 'cd' into the RAxML directory.

If the second and last commands show the version, proceed. Otherwise, check the Common Installation Errors below.

If the command returns "Python 2.7.13" skip to step 3. Otherwise proceed.

Rerun the above command. If it still shows an older version after downloading and installing the new version, fully close and reopen your terminal. See Common Installation Errors if problems persist.

If any errors occur, see the Common Installation Errors section.

Alternate method: Download the SIP source files, unzip and cd into the repo then run (with the virtual environment activated)

Install and create a virtual environment wrapper.

NOTE: Make sure that your virtual environment is activated anytime you use the pip command or run the project (with the python command).

Install remaining dependencies with PIP.

In terminal (with the virtual env activated) run:

Download the source code of this repo as a zip.

To open ALPHA, run the following command in terminal:

See Common Installation Errors for fixes to any issues.

  • Run the setup installer in the section 'Current Cygwin DLL Version.'
  • In the 'Choose a Download Site' section of the installer, select the first download site in the list. This is listed as http://cygwin.mirror.constant.com.
  • Run the setup installer in the section 'Graphical User Interface Installer.'
  • In the MinGW Installation Manager that opens after installation, select the 'mingw32-base' and 'msys-base' packages and click 'Mark for Installation.'
  • Select the 'Installation' tab and click 'Apply Changes.'

Download the RAxML source code in a zip folder.

Open Cygwin and 'cd' into the directory.

In the Cygwin terminal run:

Open Command Prompt and run:

If both the Cygwin and Command Prompt commands show the version, proceed. Otherwise, check the Common Installation Errors section.

If the command returns "Python 2.7.13" skip to step 3. Otherwise proceed.

Rerun the above command. If it still shows an older version after downloading and installing the new version, fully close and reopen your terminal. See Common Installation Errors if problems persist.

Download the get-pip.py file.

Open a Command Prompt window and 'cd' into the directory containing the file.

Open a Command Prompt window and 'cd' into the directory containing the wheel file.

Run the following for Windows 64-bit:

Run the following for Windows 32-bit:

Install remaining dependencies with PIP.

Download the source code of this repo as a zip.

To open ALPHA, run the following command in terminal:

See Common Installation Errors for fixes to any issues.

Common Installation Errors

If prompted, install the latest verson of Xcode.

If you get an error with the last command when installing RAxML, run the following in place of the original 'cp' command:

Permissions Errors on Homebrew for Mac

If you have trouble installing Homebrew due to permissions errors, running the following command in Terminal in place of the original command fixes this issue:

Error: Command Not Recognized

IF you receive an error saying that a command (i.e. raxmlHPC, make, python, etc.) "is not recognized as an internal or external command, operable program or batch file," do the following:

The commands should work correctly after adding their program directories (ex. C:Python27) to your path.

Go to Control Panel > System > Advanced System Settings > Environment Variables.

Select 'Path' under the 'User variables for user' section and click 'Edit.' Add the directory destinations (ex. C:Python27Scripts) below.

Once you add the path(s) to your Environment Variables list and click 'OK,' close and reopen Command Prompt. The commands should now work correctly.

If you are having issues with Java not being recognized as a command, install the newest version of Java and use the above instructions to add it to your path if it is not automatically added.

'No module named SIP' or 'No module named PyQt4'

If you receive this error, run the following in terminal:

Download the SIP and PyQt4 source packages.

'cd' into the SIP directory, and run the following:

'cd' into the PyQt4 directory, and run the following:

After installing and opening ALPHA, you can use the drop down menu on the main page to select the mode you'd like to use.

Once you enter any of these modes, you can use the "Mode" drop down menu in the upper left corner to enter a different one.

Here, we use the provided example files (see the folder "exampleFiles" in the ALPHA directory) to show how to use the software.

  • If you select the Bootstrap option, input the desired confidence level and number of bootstraps to be run.
  • To root the tree, select the Rooted option. Use the drop down menu to select the desired outgroup.

  • If you select the Custom RAxML Command option, input your desired command without the -s and -n flags.
  • To generate a species tree:
    • If you select the Custom RAxML Command option, use the same parameters as above to input your command.
    • To root your species tree, select the Rooted option and select your desired outgroup with the drop down menu on the right.
    • Click the Generate button to create your species tree file.

    In this example, we generate a species tree by running RAxML over the entire alignment, which does not require additional inputs.

    After modifying these options to your preferences, click the Run RAxML button. The Generate Figures options will be available after you run RAxML.

    Select any number of the eight figures to generate. Aside from the informative sites heatmap RAxML must be run before generating these figures. Some of the figures require inputs in the Graph Options and Species Tree sections, so their necessary parameters are defined below:

    For Top Topologies Tree Visualization, Windows to Top Topologies Scatter Plot, and Top Topologies Frequency Donut Plot:

    • To ensure that the color coding for these visuals is correct, generate the three figures together.
    • Input the number of most frequently occurring topologies that you want to generate figures for in the Number of Top Topologies section under Graph Options.

    For Robinson-Foulds Distance Scatter Plot:

    • Input the species tree by selecting a file or inputting a newick string under the Species Tree section. You can generate a species tree for this by following the steps in the Advanced mode of Run RAxML. It is not necessary that the species tree is rooted.
    • If you select the Weighted option, ALPHA will generate the weighted Robinson-Foulds Distance Scatter Plot. Otherwise, it will generate both the weighted and unweighted graphs.
    • Input the Input the species tree by selecting a file or inputting a newick string under the Species Tree section. You can generate a species tree for this by following the steps in the Advanced mode of Run RAxML. The tree must be rooted to generate this plot.

    The informative sites heatmap provides a visualization of informative sites across an inputted alignment. Users can reduce the total number of sites that are used for the heatmap in order to speed up runs on extremely large files.

    Once you have selected the desired figures to be generated, click the Generate Figures button.

    To resize and manipulate the figures:

    • All figures generated in ALPHA use a Matplotlib output interface, allowing users to customize figures to their liking. Hovering one’s cursor over the icons at the bottom of each figure’s output window provides a short description of each icon’s usage. The following describes each button from left to right.

    • The home button reformats the plot to the default view.
    • The left arrow button changes the plot to its previous view.
    • The right arrow button changes the plot back to its former view if the previous view is selected.
    • The arrow cross button allows users to change the view of the figure by panning across the plot.
    • The magnifying glass button allows users to zoom to a rectangle on the plot.
    • The sliders button allows users adjust the spacing and borders of their plots.
    • The tight layout button gets rid of the border around the plot.
    • The plot button allows users to customize the axes and curves of the figure.
      • The axes tab allows users to change the min, max and scale of the axes, along with the title and axes labels. This tab also allows users to automatically generate a legend.
      • The curves tab allows users to select each curve on the plot and alter its label, line style and color. Both the sliders button and plots button can be accessed by the “Configure Plot” menu at the top of the window they can be found under “Configure Subplots” and “Configure Axis and Curves” respectively.

      To save figures as images:

      • The save button allows users to save and export the figure window to a specified location. This functionality can also be accessed under “Save As…” in the “File” menu at the top of the output window.
      • All images can be exported to a desired save location, renamed and saved as one of the following file types: pdf, png, jpeg, tiff, svg, eps, rgba, pgf, and ps.

      Walkthrough with Example File

      Click the three dots on the line for alignment. This will bring up a file explorer in the ALPHA directory. From here choose the "exampleFiles" folder. In here you will find several files that are useful for learning about the usages of ALPHA. In this case select the "4TaxaExample.phylip" file. Before running RAxML you can generate a heatmap of the alignment's informative sites by clicking the checkbox next to "Informative Sites Heat Map" then clicking "Generate Figure". To run RAxML go to the "Run RAxML" tab here input a window size and offset. For this file we recommend 10000 and 10000. Click "Run RAxML" then go to the "Generate Figures" tab. Here you can select as many figures as you want then click "Generate Figures".

      For more information on RAxML Mode and the figures it can generate, see the RAxML section above.

      To use the file converter, first select the input file and its format. Then, specify the desired filename, location, and format of the output file. Click the convert button to create your new file.

      For more information on the File Converter and its formats, see the File Converter section above.

      First, select the MS Truth File that you want to analyze. Then, select either the Compare Against RAxML Directory option or the Compare Against MS File(s) option.

      Compare Against RAxML Directory

      To compare against a RAxML directory:

      To select more than one MS file to compare against, simply click the + button to add the number of files you want to compare. Then, select one MS file per box. To remove a file, click the - button on the left side of the file input box. In the "exampleFiles" folder there are two files, "ExampleMS" and "ExampleMS2". New users can use these files to get a better understanding of the MS Comparison functionality.

      Select any number of the three graphs to generate them. Click the Compare button to run MS Comparison and generate the desired figures.

      For more information on MS Comparison and the graphs it generates, see the MS Comparison section above.

      To compute the D-statistic, first input the desired alignment in phylip-sequential format.

      Then, input the preferred window size and offset.

      Using the provided four taxa tree, select your desired topology. Click the Run button to generate the D Statistic and the Windows to D-statistic Scatter Plot.

      Users can subset from an alignment of more than 4 taxa. To get a better understanding of this use "6TaxaExample.txt" from the "exampleFiles" folder.

      For more information on the D-statistic and what it outputs, see the D-statistic section above.

      For users looking to modify ALPHA source code we recommend using the PyCharm IDE with a Python 2.7.13 interpreter.

      The user interface is created using PyQt4. More information on it can be found here: PyQt4. Individuals looking to alter the GUI must use the Qt Designer interface for the file "gui_layout.ui" located in the "module" folder. Alterations to the .ui file must be saved in the Qt Designer then pushed to the "gui_layout.py" file using the following command prompt command while in the "module" folder. If the command is not run then any changes made in the Qt Designer will not be updated properly.

      All functions are executed within the "module" folder. Each of these files roughly corresponds to a different analysis function of ALPHA.

      Plot outputs are each given their own window file where plot formatting and other aesthetics are dealt with. These files can be found in the "raxmlOutputWindows" folder and can be altered accordingly.

      Add a New Page Walkthrough

      1. Open Qt Designer this should have been installed along with PyQt and sip. A nice tutorial on the basics of Qt Designer as well as an alternative installation route via anaconda can be found at http://pythonforengineers.com/your-first-gui-app-with-python-and-pyqt/
      2. Click the file tab in the top left corner, click open and select the gui_layout.ui file in the Module folder of ALPHA
      3. On the right in the object inspector the fourth tab is "stackedWidget" right click and click "insert page" choose the if you want the page to be before or after the current page Note: you can change the current page being edited using the left and right arrows on the top right corner of the ALPHA gui page
      4. Scroll to the top of the widget box on the left side click and drag Vertical Layout onto the UI. Reposition and rescale as desired.
      5. Scroll to the bottom of the widget box and find Label. Click and drag this into the box created by your vertical layout.
      6. Double click TextLabel then type in "Hello World". To change the alignment of the text in the Property Editor section in the bottom right scroll down to QLabel. Click the arrow next to alignment next to Horizontal click AlignLeft then use the drop down menu to select the desired alignment type.
      7. Click the Mode tab on the ALPHA interface then click Type Here and enter “Hello World”
      8. While still selecting the text from step 8 got to the Property Editor in the bottom right corner and click the checkbox next to "checkable"
      9. Use the arrows in the top right to ALPHA's home page. Double click the drop down menu. Then click the down arrow until the bottom selection is highlighted. Click the plus button and type in "Hello World". Save the ui file using the file tab.

      Next we will alter ALPHA's python code to allow us to access the Hello World page using ALPHA's navigation bar.

      1. Open command line, cd into the module folder in ALPHA. Then enter the command below. This pushes the changes from our PyQt ui file to the python file that main.py interacts with.
      1. Open main.py in a text editor or IDE (we recommend using PyCharm for this). Find the section of code that says "ADD NEW PAGE INFORMATION BELOW" (at the time of writing this was line 83).
      2. Update the six dictionaries in this section of code by adding a comma then using the following code in order:
      1. Finally find the section of code with the header "CHANGE MODE" (at the time of writing this was line 141). Add the following line of code:

      Run main.py to and select Hello World from the menu to view your new page.

      Tip: It is recommended developers rename widgets and page that they add in order to make variable names more informative. This can be done using the Object Inspector section in the top right corner of the page. Currently selected widgets will be highlighted in blue. Right click the desired widget then select Change Object Name.

      Tip: If you add a widget at any point and it is initially too small to rescale using the cursor use the property editor in the bottom right corner of the screen.

      أسئلة مكررة

      Q: Any click in a text box in the main window of the software leads to the following comment in the terminal: 2018-01-04 10:53:15.808 Python[89398:f07] unlockFocus called too many time. Is this an error?

      A: No. This is currently a known issue with the PyQt GUI software. It is a harmless message without any effect on ALPHA and can safely be ignored.

      Cock PJA, Antao T, Chang JT, et al. Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics. 200925(11):1422-1423. doi:10.1093/bioinformatics/btp163.

      Durand EY, Patterson N, Reich D, Slatkin M. Testing for Ancient Admixture between Closely Related Populations. Molecular Biology and Evolution. 201128(8):2239-2252. doi:10.1093/molbev/msr048.

      ETE 3: Reconstruction, analysis and visualization of phylogenomic data. Jaime Huerta-Cepas, Francois Serra and Peer Bork. Mol Biol Evol 2016 doi: 10.1093/molbev/msw046

      Green RE, Krause J, Briggs AW, et al. A Draft Sequence of the Neandertal Genome. Science (New York, NY). 2010328(5979):710-722. doi:10.1126/science.1188021.

      Richard R. Hudson Generating samples under a Wright–Fisher neutral model of genetic variation. Bioinformatics 2002 18 (2): 337-338. doi: 10.1093/bioinformatics/18.2.337

      Hunter, John D. "Matplotlib: A 2D Graphics Environment." Computing in Science & Engineering 9.3 (2007): 90-95. 10.1109/MCSE.2007.55

      Martin SH, Davey JW, Jiggins CD. Evaluating the Use of ABBA–BABA Statistics to Locate Introgressed Loci. Molecular Biology and Evolution. 201532(1):244-257. doi:10.1093/molbev/msu269.

      Stamatakis A. 2014a. RAxML version 8: a tool for phylogenetic analysis and post-analysis of large phylogenies. Bioinformatics 30, 1312–1313. DOI: 10.1093/bioinformatics/btu033.

      Stamatakis A. 2014b. The RAxML v8.0.X Manual

      Sukumaran, J. and Mark T. Holder. 2010. DendroPy: A Python library for phylogenetic computing. Bioinformatics 26: 1569-1571.

      Than C, Ruths D, Nakhleh L (2008) PhyloNet: a software package for analyzing and reconstructing reticulate evolutionary relationships. BMC Bioinformatics 9: 322


      4. مناقشة

      treespace provides a simple framework for exploring landscapes of phylogenetic trees and investigating phylogenetic incongruence using tree–tree distances. Of the various methods for measuring distances between trees, some may be better than others at capturing meaningful topological differences, as is the case when testing phylogenetic signal (Jombart, Pavoine, Devillard, & Pontier, 2010 Münkemüller et al., 2012 Pavoine et al., 2008 ). There are currently no theoretical descriptions that can determine a priori which tree comparison method will be most revealing for which kind of data. Recognizing this, we have incorporated considerable flexibility into treespace in terms of how trees are compared, by providing a framework which can incorporate any tree-to-tree distance, and implementing seven different ones by default. This feature distinguishes treespace from other similar software, like the R package RWTY which re-implements mesquite 's treesetviz module (Robinson–Foulds metric) as part of an excellent toolkit for assessing mixing in Bayesian phylogenetics (Warren, Geneva, & Lanfear, 2017 ), or treescaper , which puts stronger emphasis on reduced space optimization methods and community detection algorithms (Huang et al., 2016 Wilgenbusch et al., 2017 ).

      Lastly, one of the key advantages of developing treespace within the R software (R Core Team 2016 ) is the resulting interoperability with other tools. Indeed, R is becoming a standard for phylogenetic analyses (Jombart et al., 2010 , 2017 Kembel et al., 2010 Paradis et al., 2004 Revell, 2012 Schliep, 2011 Warren et al., 2017 ) and therefore represents an ideal environment for treespace to become a useful tool for the exploration of phylogenetic results. Its development within an open-source, community-based platform together with its availability as user-friendly web interface will hopefully facilitate its adoption by a wide range of scientists and encourage further methodological developments.


      شكر وتقدير

      This work was supported in part by the Government of Canada, through Genome Canada and the Ontario Genomics Institute (OGI-131), and by grants from the Canadian Institutes of Health Research (PJT-155990, PJT-156178) and the Natural Sciences and Engineering Research Council of Canada (RGPIN-2018-05516). We also thank Eric Wong and Vidhu Joshi for their assistance in searching the literature for cophylogeny studies and collecting published data sets Faisal Abu-Sardanah for assistance with debugging and David W. Dick for help interpreting mathematical models. Lastly we are grateful to Dr. Michelle Kendall and anonymous reviewers for helpful feedback.


      Generalizations of the RF distance for labeled trees on different label sets

      Let us consider labeled trees of different sizes or whose label sets are not the same. The RF distance between any pair of such trees is simply equal to the total number of edges in the trees and thus fails to capture their dis-similarity. Here, we generalize the RF distance in order to measure the dis-similarity of such pairs of trees better.

      Bourque distances

      For a labeled tree س, we use (<>>(S)) to denote the label set of س. Since each node of الخامس(س) is labeled with a non-empty subset of (<>>(S)) , each edge (e=(u, v)) induces the two-part partition (P(e)=) , where (L(u)=cup _ ell (x)) and (L(v)=cup _ ell (y)) .

      يترك تي be another labeled tree such that (<>>(S)cap <>>(T) e emptyset .) We define (C=(S)cap <>>(T)) .

      For (e'in E(S)) , we assume that the two-part partition induced by (e') is (P(e')=>>(S)setminus X>) , where (Xsubset <>>(S)) . (P(e')) is said to be similar to a two-part partition (P=(C', C'')) of ج if the following condition is satisfied:

      We use (sim) to denote the similarity relationship.

      Remarks

      (1) The similarity relation is a many-to-many relation in the product space of edge-induced partitions (<>(S)> imes <>>(T)) . (2) If (<>>(S)= <>>(T)) , the similarity becomes the equal relation.

      Definition 2

      يترك س و تي be two labeled trees and let (<>>= <: emptyset e C'subset C, C' e C >) . The Bourque metric ب(س, تي) between س و تي يعرف ب:

      The rationale behind the Bourque distance is that we “correct” the RF distance by those partitions, that would be shared between both trees when labels unique to either of the two trees were ignored. For example, in Fig. 3B, the labels (<7, 9>) that appear in the left tree are not found in the right tree, whereas the labels (<6, 8>) that appear in the right tree are not found in the left tree. Therefore, none of the seven edge-induced partitions in either tree is found in the other. This implies that the RF distance between the two trees is 14. Since the labels appearing in both trees are (<0, 1, 2, 3, 4, 5>) , the edge (4, 9) (purple) of the left tree induces the same partition, (<<1, 2, 3, 4>, <0, 5>>) of (<0, 1, 2, 3, 4, 5>) as the edges (4, 6) and (6, 0) (purple) of the right tree. Furthermore, the edge (1, 2) (resp. (2, 3) and (2, 4)) induces the same partition of (<0, 1, 2, 3, 4, 5>) in both trees and the edge (9, 5) of the left tree induces the same partition of (<1, 2, 3, 4, 5>) as the edge (0, 5) of the right tree. Therefore, the Bourque distance between both trees is (14-5=9) .

      Proposition 4

      يترك س و تي be two labeled trees with س و ر edges, respectively.

      Proof

      يترك س و تي be two labeled trees. (i) Without loss of generality, we assume (sge t) . If (<>>(S)=<>>(T)) , the first and second term of Eqn.(2) equals (s+t-|(S)cap <>>(T)|) and (-|<>>(S)cap <>>(T)|) , respectively. Thus, ((S, T)= mathrm(S, T)= s+t-2 |<>>(S) cap <>>(T)| ge s+t-2t=s-t) .

      (ii) If (<>>(S)cap <>>(T)=emptyset) , then, the first term and second term of Eqn.(2) equals (s+t) and 0, respectively, as (|<>>(S)cap <>>(T)|=emptyset) .

      Additionally, we also have the following fact, which is proved in Additional file 1.

      Proposition 5

      The Bourque metric is a distance metric in the space of labeled trees in other words, it satisfies the non-negativity, symmetry and triangle inequality conditions.

      Proposition 6

      The Bourque distance between two labeled trees س و تي can be computed in linear time (O(|<>>(S)|+<>>(T)|) .

      Proof

      The proof is an adaption of the proof by Day for computing the Robinson–Foulds distance of rooted leaf-labelled trees in linear time [38]. We assume node labels are integers (otherwise, we apply hashing to convert the labels into integers). By indexing labels with integers and filling a hash table, we can determine the set ج of node labels that are in both trees. لو ج is empty, we have (B(S,T) = s+t) . Otherwise, we remove all labels that are not in ج from the two trees س و تي. This may create some nodes الخامس with no labels, i. ه. (ell (v) = emptyset) . We remove leafs with no labels from س and the corresponding edges as they do not induce any non-trivial partitions. We then select an arbitrary node ص that is labeled with at least one label, root س في ص and map the labels to ([ 1, 2, cdots , |C|]) based on a pre-order depth-first traversal of س. Since node labels occur only once per tree, this mapping is well-defined, and we obtain a new node labelling (ell ') for which the elements of each (ell '(v)) are consecutive integers and smaller than the elements of (ell '(w)) for every ث accessed after الخامس in the pre-order depth-first traversal of س. In particular, 1 is a label of the root for every subtree of the rooted س, the union of node labels of all nodes in the subtree is now a consecutive interval. Using efficient data structures, the above tree manipulations amortise to linear time with regard to (|<>>(S)|) . Using a post-order depth-first traversal of the rooted tree س, we can obtain all consecutive intervals in linear time with regard to (|<>>(S)|) . Due to nodes with no labels, the same interval can occur multiple times. Therefore we track the counts of the intervals. This can be done efficiently with a hash table.

      Now, we relabel the nodes of تي using the mapping obtained from the pre-order traversal of س and root تي at the node containing the label 1. We perform a post-order depth-first traversal of تي and obtain the intervals defined by the smallest and largest label of each subtree. In addition we also keep track of the total number of labels in the subtree. If the length of the interval matches this number, the interval is consecutive and thereby the incoming edge to the subtree defines a partition that is also induced by an edge in س. The necessary operations amortise to linear time with regard to (|<>>(S)| + |<>>(T)|) . Since the label 1 is located at the root in both س و تي, the obtained intervals for س و تي are always the part of the partition that does not contain the label 1. Therefore it is sufficient to consider these intervals to compare partitions. Let (Z_S) be the multi-set of intervals obtained from س and (Z_T) be the multi-set of (consecutive) intervals obtained from تي, then we obtain the second part of Eq. (2) by summing over the smaller prevalence of each interval in either تي أو س. This can be accomplished in linear time using two hash tables to track the prevalence of the intervals in each tree. The first part of Eq. (2) is just the number of edges in س و تي in the case (<>>(S) e <>>(T)) . Pseudocode of the algorithm is given in Section 4 of Additional file 1. In case (<>>(S) = <>>(T)) , ب(س, تي) is simply the size of the intersection of (Z_S) and (Z_T) . This concludes that the Bourque distance can be computed in linear time.

      High-order Bourque distances for labelled trees

      Like the RF distance, the Bourque distance has the tendency to overpenalize certain labeling differences and can saturate quickly (see our validation tests on random trees presented later). In this subsection, we will use the Bourque distances between local subtrees and a matching algorithm ([15, 17, 18]) to define new distance metrics. The new metrics will take more values than the basic version.

      يترك تي be a labeled tree and (uin V(T)) . For an integer (k>0) , the ك-star subtree (C_k(u)) centered at ش is defined as the subtree induced by the vertex set () in تي. For any pair of labeled trees س و تي من ن and (n') nodes, respectively, such that (n le n') , define (mathrm _k(S, T)) to be the complete weighted bipartite graph with two node parts (>cup V(S)) and الخامس(تي), where each (emptyset _i) is just a copy of the empty graph the Bourque distance (B(C_k(x), C_k(y))) is assigned to the edge (x, ذ) as a weight for every (xin V(S)) and (yin V(T)) and a weight of (|E(C_(y))|) is assigned to the edge ((emptyset _i, y)) for any (emptyset _i) and (yin V(T)) . Although (C_k(x)) can be identical for different nodes x, (mathrm _k(S, T)) always has (2n') nodes.

      Definition 3

      يترك س و تي be two labeled trees and (k ge 1) . ال ك-Bourque distance (B_k(S, T)) is defined to be the minimum weight of a perfect matching in (mathrm _k(S, T)) .

      Proposition 7

      ال ك-Bourque distances have the following properties:

      For any 1-labeled trees س و تي such that (|V(S)|= |V(T)|=n) , (B_k(S, T)=n cdot (S, T)) for any (kge max (mathrm(S), mathrm (T))) , where (mathrm(X)) is the diameter of X for (X=S, T) .

      (B_k(S, T)) satisfies the non-negativity, symmetry and triangle inequality conditions for each (kge 1) .

      Proof

      The full proof appears in the Additional file 1.

      Remark

      The run time of computing the ك-Bourque distance for two labeled trees س و تي مع ن and (n') nodes, respectively, is (O(max (n', n)^3)) , as computing the Bourque distances between the ك-star trees centered at tree nodes takes (O(max (n', n))) in the worst case and computing the minimum weight perfect matching in (mathrm_(S, T)) takes (O(max (n', n)^3)) time.


      شكر وتقدير

      First of all, I have to thank Mareike Fischer for introducing me to the world of phylogenetic distances. She helped also a lot for getting a clear notation. Second, I’m very grateful to Jürgen Eichhorn who unconsciously draw my attention to metrics between metric spaces. Third, I’d like to thank Michelle Kendall for her inspiring talk at the Portobello conference 2015 and additional discussion later. Fourth, I thank Mike Steel for many interesting discussions, useful hints, his kind hospitality during my stay in Christchurch 2010, and for the organisation of the amazing 2015 workshop in Kaikoura with an inspiring and open atmosphere. Further, Miroslav Bačak, Andrew Francis, Alexander Gavryushkin, Stefan Grünewald, Marc Hellmuth and Giulio dalla Riva gave useful hints and inspiration in many discussions. The questions and hints of five anonymous referees regarding previous versions of this manuscript helped to improve it substantially.


      شاهد الفيديو: 1- الاكتساب في معرفة الأنساب - الخيضري - علم لإحياء التراث (كانون الثاني 2022).