لزوم وجود پایپلاین های بیوانفورماتیکی فراخوانی واریانت ها از روی داده های ژنوم و یا اگزوم با دقت و عملکرد بالا جهت ادغام شدن آن ها با کاربردهای تشخیصی کلینیکال ضروری است. یک پایپلاین از گام هایی شامل ، کنترل کیفیت، هم ترازی داده ها با ژنوم مرجع، فراخوانی واریانت ها، تفسیر یا حاشیه نویسی واریانت ها، مصور سازی نتایج و ارائه ی گزارش تشکیل می شود. در حال حاضر تمرکز بیشتر مراکز کلینیکی بر دو نوع واریانت ها شامل SNP ها و حذف و اضافه شدن های قطعات کوتاه یا Indel ها می باشد. ابزارهای زیادی مانند Stelka، Speedseq، Samtools و Varscan2 برای فراخوانی SNP ها و Indel ها در پایپلاین های آنالیز داده های ژنوم توسعه داده شده اند. ولی از میان آن ها همچنان GATK پر کاربرد ترین و مقبول ترین مجموعه الگوریتم ها و ابزارها برای این منظور است. GATK  با استفاده از به روزترین روش های آماری شامل (رگرسیون لگاریتمی، مدل های مارکوف مخفی و روش بیز ساده انگارانه) جهت تشخیص واریانت های واقعی از خطاهای توالی یابی استفاده می کند. این روش های به روز GATK را ابزای دقیق جهت یافتن واریانت های می نماید، ولی از نظر مدیریت حافظه و عملکرد اجرایی GATK بی نقص نمی باشد. برای حل این نقص، شرکت Illumina پلتفرم DRAGEN (Dynamic Read Analysis for GENomics)  را جهت ارائه همزمان سرعت و دقت بالا ارائه کرده است. پلتفرم DRAGEN از سخت افزار FPGA (Field Programmable Gate Array) استفاده می کند که باعث افزایش چشمگیر سرعت محاسباتی در فرایند های زمان بری مانند  نگاشت خوانش ها روی ژنوم مرجع و فراخوانی واریانت ها بدون کم کردن دقت شده است. هم چنین شرکت Verly Life Sciences که قبلا با نام Google Life Sciences فعالیت می کرد، الگوریتم DeepVariant را برای فراخوانی واریانت های کوچک Germline با استفاده از الگوریتم یادگیری عمیق ارائه می نماید. Deepvariant از کتابخانه Tensorflow زبان Python بر روی خوانش های نگاشت شده به ژنوم استفاده می کند. در این روش روابط آماری بین تصاویری از واریانت های خالص و درست نگاشت شده به ژنوم مرجع بر اساس اطلاعات قبلی یاد گرفته می شود و جهت تشخیص واریانت های نمونه مورد نظر استفاده می شود. در سال 2016 این الگوریتم توسط PrecisionFDA Truth challenge  به عنوان دقیق ترین الگوریتم تشخیص SNP ها معرفی شد.

در این مطالعه هدف مقایسه این سه پایپلاین پر کاربرد می باشد. جهت مقایسه دقت و عملکرد، داشتن مجموعه داده های استاندارد و با کیفیت که واریانت های واقعی آن ها مشخص باشد، ضروری می باشد. برای این منظور مجموعه ی GiaB (Genome in the Bottle) مجموعه داده های golden-set مانند نمونه ی NA12878 توسعه داده است و اطلاعات آن و نیز خود نمونه جهت ارزیابی الگوریتم ها و روش های توالی یابی به صورت استاندار مورد استفاده قرار می گیرد. نمونه NA12878 نمونه ی مربوط به یک زن سالم می باشد که توسط چندین روش مختلف و با عمق بالا توالی یابی شده است. شجره نامه ی این فرد در شکل 1 نشان داده شده است.

 

شکل 1: شجره نامه نمونه NA12878  در GiaB
شکل 1: شجره نامه نمونه NA12878  در GiaB

 

نمونه ی استاندارد دیگری که به عنوان benchmark در این مطالعه استفاده شده است، یک نمونه ی Synthetic diploid می باشد.

پیاده سازی پایپلاین ها:

پایپلاین GATK v4.1 ، DRAGEN v3.3.11 و DeepVariant v0.7.2 طبق شکل 2 در این مطالعه پیاده سازی شده اند. برای پایپلاین GATK از پایپلاین Best practice آن با آدرس (https://software.broadinstitute.org/gatk/best-practices/(  استفاده شده است. برای این منظور داده های Fastq به ژنوم مرجع GRCH37 توسط الگوریتم BWA-mem نگاشت می شوند. سپس خوانش های مپ شده به فرمت BAM تبدیل شده و حذف توالی های duplicate با ابزار Picard انجام گشته و در نهایت بر اساس موقعیت ژنوم مرتب می شوند. در گام بعدی، فایل BAM توسط ابزار Base Quality Score Recalibration (BQSR) با پارامترهای پیش فرض بهبود داده می شود. در ادامه فراخوانی واریانت های SNP و Indel توسط ابزار HaplotypeCaller انجام می شود. جهت تسریع این کار ژنوم به 14 قسمت تقسیم شده است و به صورت موازی این فرآیند انجام می گیرد و در ادامه فایل های VCF با هم ترکیب می شوند تا به فایل VCF  نهایی برسیم. همچنین جهت فیلتر کردن واریانت ها از ابزار Variant Quality Score Recalibration  (VQSR) بر اساس پیشنهاد GATK  با پارامتر های Hapmap3.3، dbSNP 138، 1000 Genome، Mills- and 1000 Genome I  برای فیلتر کردن SNP ها و Indel ها استفاده شده است.

پایپلاین DRAGEN (https://www.illumina.com/products/by-type/informatics-products/dragen-bio-it-platform.html) مطابق همان پایپلاین GATK عمل می نماید و تفاوت اصلی آن پیاده سازی آن با FPGA می باشد. برای پایپلاین DeepVariant  هم که بر مبنای فریمورک Singularity پیاده سازی می شود طبق دستور العمل آن در (https://github.com/google/deepvariant) استفاده شده است. توجه کنید که ورودی DeepVariant فایل BAM خروجی از DRAGEN یا GATK می باشد.

شکل 2: شکل شماتیک پایپلاین های مختلف
شکل 2: شکل شماتیک پایپلاین های مختلف

 

 

در نتیجه برای هر مجموعه داده 6 فایل VCF ایجاد شده است. (DV-gatk4 به معنی تولید فایل BAM با gatk و فراخوانی واریانت ها با Deepvariant، DV-dragen3 به معنی تولید BAM با DRAGEN و فراخوانی واریانت با DeepVariant ، GATK4-raw، GATK4-vqsr، Dragen3-raw، Dragen3-vqsr ) و همچنین یک فایل VCF از اشتراک حداقل دو تا از پایپلاین های DV-gatk4، DV-Dragen3، GATK4-raw  و Dragen3-raw نیز با استفاده از bcftools تشکیل شده است.

برای ارزیابی فایل های VCF نتایج آن ها با فایل VCF که اصطلاحا Gold-standard هست، و دارای اطمینان بالا می باشد و در پروژه NA12878 توسط GiaB انجام شده است، مقایسه شده اند. برای این منظور فایل VCF و فایل .bed مربوط و توالی یابی از آدرس  (https://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/release/NA12878_HG001/NISTv3.3.2/GRCh38/( دانلود شده است و توسط hap.py با آدرس (https://github.com/Illumina/hap.py) مقایسه شده اند.

هر چند مقایسه برای سه مجموعه داده صورت گرفته است، ولی در این گزارش ما بر روی نتایج مربوط به نمونه NA12878 که نمونه ی واقعی انسانی است، تمرکز داریم. لذا علاقه مندان برای مطالعه در مورد نتایج دو نمونه دیگر به متن اصلی مقاله به آدرس (https://www.nature.com/articles/s41598-020-77218-4) مراجعه نمایند.

 

شکل 3: مقایسه عملکرد پایپلاین های مختلف در فراخوانی واریانت های از نوع SNP
شکل 3: مقایسه عملکرد پایپلاین های مختلف در فراخوانی واریانت های از نوع SNP

 

طبق شکل 3، برای SNP ها تمام روش های پیاده سازی شده دارای Precision بالای 0.99  و Recall بالای 0.95 بوده اند. همچنین معیار F1 نیز بالای 0.97 بوده است. لذا تمامی روش ها از قابلیت بسیار خوبی در تشخیص SNP ها بوده اند. همچنین برای کاهش اثر منفی های کاذب نتایج با هم ترکیب شده اند و در ستون اخر در صورتی که حداقل 2 روش از 4 روش ذکر شده دارای آن واریانت بودند، در آن آمده است.

 

شکل 4: مقایسه عملکرد پایپلاین های مختلف در فراخوانی واریانت های از نوع Indel
شکل 4: مقایسه عملکرد پایپلاین های مختلف در فراخوانی واریانت های از نوع Indel

 

طبق شکل 4 در تشخیص واریانت های مربوط به Indel نیز مشاهده می شود که همه آن ها از معیار F1 بالای 0.96 برخوردار هستند. همچنین افزودن فیلتر vqsr هرچند باعث اندک precision شده است ولی Recall را کاهش داده است و در مجموع باعث کمتر شدن معیار F1  شده است. نیز ترکیب DV با الگوریتم های DRAGEN یا GATK باعث بهبود دقت و صحت روش شده است.

 

شکل 5: دیاگرام ون جهت مقایسه اشتراکات و اختلافات پایپلاین ها
شکل 5: دیاگرام ون جهت مقایسه اشتراکات و اختلافات پایپلاین ها

 

طبق شکل 5 ، بین 91 تا 99 درصد از واریانت ها توسط تمامی الگوریتم ها شناسایی می شوند. همچنین در صورتی که از هم افزایی حداقل 2 روش استفاده کنیم حداقل 95 درصد از واریانت ها شناسایی خواهد شد. نیز تعداد واریانت های منحصر به فرد شناسایی شده توسط هر الگوریتم بین حدود 0.002 درصد تا 2 درصد می باشد.

 

شکل 6: مقایسه زمان اجرای پایپلاین های مختلف و قسمت آنالیز upstream  و downstream
شکل 6: مقایسه زمان اجرای پایپلاین های مختلف و قسمت آنالیز upstream  و downstream

طبق شکل 6، استفاده از FPGA توسط پایپلاین DRAGEN باعث افزایش چشمگیر سرعت از مرتبه ی حدود 10 تا 30 برابری در زمان اجرا شده است.

جمع بندی:

هر سه پایپلاین از دقت و صحبت بالایی برخوردار هستند و پایپلاین های DeepVariant و نیز DRAGEN نیز می توانند به جای GATK که روش استاندارد و غالب در آنالیز های کلینیکی فراخوانی واریانت ها است استفاده شود. در واقع این دو روش می توانند باعث بهبود اندکی در دقت و عملکرد نیز شوند. همچنین DRAGEN باعث افزایش چشمگیر سرعت می شود.