مدل پنهان مارکف مشخصات (یا Profile-HMM) یکی از روشهای حل مسائل همتراز کردن توالی (Sequence Alignment) است که به کمک مدل پنهان مارکف به حل آن میپردازد. یکی از دسته مسئلههای همتراز کردن توالی که به کمک این روش حل میشود همترازسازی چند توالی (Multiple Sequence Alignment) یا به اختصار MSA است.[۱] این مدل به وسیله احتمال پرش، تطابق و عدم تطابق ایجاد میشود که این احتمالها را میتوان از جدول شاخصه رشتههای توالی یافته (Profile) بدست آورد. در MSA هم ترازی بین چند توالی بیولوژیکی بررسی میشود به همین دلیل الگوریتمهای استفاده شده در آن به مراتب پیچیدهتر اند. یکی از مزیتهای استفاده از مدلها در حل این دسته از مسائل نسبت به دیگر الگوریتمها استفاده از فاکتور احتمال است که در دیگر الگوریتمها معمولاً نادیده گرفته میشود.
ساختار مدل
در گراف این مدل هر گره نشان دهنده یک تطبیق، حذف یا درج است همچنین در دو طرف گراف گرههایی برای نشان دادن شروع و پایان هم ترازی وجود دارد. تعداد و مقادیر موجود در گرهها بر اساس جدول مشخصه بدست میآید به اینگونه که برای گرههای تطبیق در جدول ستونهایی که احتمال پرش در آنها از یک مقدار از قبل تعیین شده کمتر باشد در نظر گرفته میشوند. به ازای هر گره تطبیق دو گره درج و حذف نیز وجود دارد که گره حذف نشان دهنده این است که در هم ترازی به جای تطبیق حذف انجام شده و گره درج نشان دهنده درج در توالی در عملیات هم ترازی است که این درجها بین دو تطبیق در گراف رخ میدهند و ممکن است بین دو تطبیق بیش از یک درج وجود داشته باشد.
در گراف برای گره تطابق انتقال به گرههای تطبیق و حذف در لایه بعدی یا گره درج در همان لایه انجام میشود. در گره درج انتقال به خود گره یا گره تطابق لایه بعدی صورت میگیرد. همچنین برای گرههای حذف انتقال به گرههای تطبیق و حذف لایه بعدی انجام میشود.[۲]
همتراز کردن توالی
برای همتراز کردن یک توالی از گره شروع آغاز میکنیم و مسیری با بیشترین امتیاز را تا گره پایان مییابیم. برای اینکار به کمک الگوریتم ویتربی این مسیر را میابیم. در این الگوریتم اگر در مرحله در حالت باشیم مسیری از گره شروع تا این گره با بیشترین امتیاز از رابطه زیر پیدا میشود:که امتیاز آن گره میباشد و وزن یال بین گره مربوط به حالت در مرحله و گره حالت در مرحله است که احتمال انتقال را نشان میدهد. با توجه به اینکه مقادیر وزنهای کمتر از یک است پس اگر اندازه گراف بزرگ باشد مقادیر امتیاز به تدریج کوچکتر میشود تا جایی که از لحاظ کامپیوتری قادر به انجام محاسبات نیستیم در این صورت به جای خود امتیاز از لگاریتم آن استفاده میشود. در صورت استفاده از لگاریتم رابطه به شکل زیر میشود:[۳]
مقدار دهی پارامترها
پس از ساخت گراف و مدل برای مقدار دهی به وزن یالها و احتمالات از توالیهای همتراز شده موجود در جدول استفاده میکنیم. ابتدا مسیر توالیها در گراف پیدا کردهه و از طریق این مسیرها مقدار احتمال انتقالها را مییابیم. برای مثال اگر بخواهیم احتمال انتقال از حالت به حالت را بیابیم در هر مسیر تعداد دفعات انتقال از به را بر تعداد دفعات انتقال از حالت به هر حالت دیگری تقسیم میکنیم. به این ترتیب میتوان وزن یالها را بدست آورد. همچنین مشابه همین روش میتوان احتمال انتشار را در هر حالت بدست آورد.[۴] یک روش دیگر برای مقدار دهی استفاده از یادگیری ویتربی است. در این روش ابتدا پارامترها را به صورت رندم مقدار دهی میکنیم و بر اساس آن مسیر یک توالی را بدست میآوریم سپس به کمک مسیر بدست آمده و خود توالی مقادیر جدیدی برای پارامترها بدست میآوریم و به کمک این مقادیر و توالی دیگر مسیر جدیدی بدست آورده میشود. همین روند چندین بار تکرار میشود تا زمانی که پارامترها به یک مقدار همگرا شوند.[۵]
الگوریتم باوم-ولچ
یکی دیگر از روش های بدست آوردن مقادیر استفاده از الگوریتم باوم-ولچ است. در یادگیری ویتربی چون در این روش از همان الگوریتم ویتربی استفاده میشود خروجی نهایی به صورت قطعی است و یک جواب احتمالاتی به ما نمیدهد برای بدست آوردن یک درجهای از قطعیت در جواب نهایی می توان از الگوریتم باوم-ولچ استفاده کرد. این الگوریتم در واقع همانند الگوریتم یادگیری ویتربی است اما برای یادگیری از احتمالات بهره میبرد. در این الگوریتم دو مقدار و را به شکل زیر تعریف میکنیم:
که احتمال بودن در حالت در مرحله به شرط دانستن توالی است که در اینجا همان توالی است و در واقع همان احتمال انتقال از حالت به حالت است. همانند ویتربی این الگوریتم نیز ابتدا یک مقادیر رندم برای هر کدام از پارامتر ها در نظر می گیرد سپس با استفاده از آنها هر یک از و متناسب با توالی را می یابد. سپس با استفاده از و بدست آمده پارامتر های جدید بدست آمده و دوباره به کمک آنها و جدید بدست میآید. این رویه تا زمانی تکرار میشود که پارامتر ها به یک مقدار مشخص همگرا شوند[۶].
برنامهها
HMMER یا همر به مجموعه برنامههایی میگویند که به وسیله این روش هم ترازی توالی ها را انجام میدهد. از برنامه هایی که از این بسته استفاده میکنند می توان بهHmmerBuild HmmerCalibrate ،HmmerConvert ،HmmerIndex ،HmmerFetch، HmmerSearch، HmmerPfam، HmmerAlign و HmmerEmit اشاره کرد. برای مثال در HmmerBuild به کمک توالیهای از پیش تراز شده مدل میشود و میتوان به پایگاه داده آن اضافه کرد[۷].