مدل پنهان مارکف مشخصات
مدل پنهان مارکف مشخصات (یا Profile-HMM) یکی از روش‌های حل مسائل هم‌تراز کردن توالی (Sequence Alignment) است که به کمک مدل پنهان مارکف به حل آن می‌پردازد. یکی از دسته مسئله‌های هم‌تراز کردن توالی که به کمک این روش حل می‌شود هم‌ترازسازی چند توالی (Multiple Sequence Alignment) یا به اختصار MSA است. این مدل به وسیله احتمال پرش، تطابق و عدم تطابق ایجاد می‌شود که این احتمال‌ها را می‌توان از جدول شاخصه رشته‌های توالی یافته (Profile) بدست آورد. در MSA هم ترازی بین چند توالی بیولوژیکی بررسی می‌شود به همین دلیل الگوریتم‌های استفاده شده در آن به مراتب پیچیده‌تر اند. یکی از مزیت‌های استفاده از مدل‌ها در حل این دسته از مسائل نسبت به دیگر الگوریتم‌ها استفاده از فاکتور احتمال است که در دیگر الگوریتم‌ها معمولاً نادیده گرفته می‌شود.
در گراف این مدل هر گره نشان دهنده یک تطبیق، حذف یا درج است همچنین در دو طرف گراف گره‌هایی برای نشان دادن شروع و پایان هم ترازی وجود دارد. تعداد و مقادیر موجود در گره‌ها بر اساس جدول مشخصه بدست می‌آید به اینگونه که برای گره‌های تطبیق در جدول ستون‌هایی که احتمال پرش در آنها از یک مقدار از قبل تعیین شده کمتر باشد در نظر گرفته می‌شوند. به ازای هر گره تطبیق دو گره درج و حذف نیز وجود دارد که گره حذف نشان دهنده این است که در هم ترازی به جای تطبیق حذف انجام شده و گره درج نشان دهنده درج در توالی در عملیات هم ترازی است که این درج‌ها بین دو تطبیق در گراف رخ می‌دهند و ممکن است بین دو تطبیق بیش از یک درج وجود داشته باشد.
در گراف برای گره تطابق انتقال به گره‌های تطبیق و حذف در لایه بعدی یا گره درج در همان لایه انجام می‌شود. در گره درج انتقال به خود گره یا گره تطابق لایه بعدی صورت می‌گیرد. همچنین برای گره‌های حذف انتقال به گره‌های تطبیق و حذف لایه بعدی انجام می‌شود.
برای هم‌تراز کردن یک توالی از گره شروع آغاز می‌کنیم و مسیری با بیشترین امتیاز را تا گره پایان می‌یابیم. برای اینکار به کمک الگوریتم ویتربی این مسیر را میابیم. در این الگوریتم اگر در مرحله formula_1در حالت formula_2باشیم مسیری از گره شروع تا این گره با بیشترین امتیاز از رابطه زیر پیدا می‌شود:formula_3که formula_4امتیاز آن گره می‌باشد و formula_5وزن یال بین گره مربوط به حالت formula_6در مرحله formula_7و گره حالت formula_2در مرحله formula_1است که احتمال انتقال را نشان می‌دهد. با توجه به اینکه مقادیر وزن‌های کمتر از یک است پس اگر اندازه گراف بزرگ باشد مقادیر امتیاز به تدریج کوچک‌تر می‌شود تا جایی که از لحاظ کامپیوتری قادر به انجام محاسبات نیستیم در این صورت به جای خود امتیاز از لگاریتم آن استفاده می‌شود. در صورت استفاده از لگاریتم رابطه به شکل زیر می‌شود:formula_10
پس از ساخت گراف و مدل برای مقدار دهی به وزن یال‌ها و احتمالات از توالی‌های هم‌تراز شده موجود در جدول استفاده می‌کنیم. ابتدا مسیر توالی‌ها در گراف پیدا کردهه و از طریق این مسیرها مقدار احتمال انتقال‌ها را می‌یابیم. برای مثال اگر بخواهیم احتمال انتقال از حالت formula_2به حالت formula_6را بیابیم در هر مسیر تعداد دفعات انتقال از formula_2به formula_6را بر تعداد دفعات انتقال از حالت formula_2 به هر حالت دیگری تقسیم می‌کنیم. به این ترتیب می‌توان وزن یال‌ها را بدست آورد. همچنین مشابه همین روش می‌توان احتمال انتشار را در هر حالت بدست آورد. یک روش دیگر برای مقدار دهی استفاده از یادگیری ویتربی است. در این روش ابتدا پارامترها را به صورت رندم مقدار دهی می‌کنیم و بر اساس آن مسیر یک توالی را بدست می‌آوریم سپس به کمک مسیر بدست آمده و خود توالی مقادیر جدیدی برای پارامترها بدست می‌آوریم و به کمک این مقادیر و توالی دیگر مسیر جدیدی بدست آورده می‌شود. همین روند چندین بار تکرار می‌شود تا زمانی که پارامترها به یک مقدار همگرا شوند.
یکی دیگر از روش های بدست آوردن مقادیر استفاده از الگوریتم باوم-ولچ است. در یادگیری ویتربی چون در این روش از همان الگوریتم ویتربی استفاده می‌شود خروجی نهایی به صورت قطعی است و یک جواب احتمالاتی به ما نمی‌دهد برای بدست آوردن یک درجه‌ای از قطعیت در جواب نهایی می توان از الگوریتم باوم-ولچ استفاده کرد. این الگوریتم در واقع همانند الگوریتم یادگیری ویتربی است اما برای یادگیری از احتمالات بهره می‌برد. در این الگوریتم دو مقدار formula_16و formula_17را به شکل زیر تعریف می‌کنیم:
formula_18formula_19
که formula_16احتمال بودن در حالت formula_2در مرحله formula_1به شرط دانستن توالی است که در اینجا formula_23 همان توالی است و formula_17در واقع همان احتمال انتقال از حالت formula_2 به حالت formula_6است. همانند ویتربی این الگوریتم نیز ابتدا یک مقادیر رندم برای هر کدام از پارامتر ها در نظر می گیرد سپس با استفاده از آنها هر یک از formula_16و formula_17 متناسب با توالی را می یابد. سپس با استفاده از formula_16 و formula_17 بدست آمده پارامتر های جدید بدست آمده و دوباره به کمک آنها formula_16و formula_17جدید بدست می‌آید. این رویه تا زمانی تکرار می‌شود که پارامتر ها به یک مقدار مشخص همگرا شوند.
HMMER یا همر به مجموعه برنامه‌هایی می‌گویند که به وسیله این روش هم ترازی توالی ها را انجام می‌دهد. از برنامه هایی که از این بسته استفاده می‌کنند می توان بهHmmerBuild HmmerCalibrate ،HmmerConvert ،HmmerIndex ،HmmerFetch، HmmerSearch، HmmerPfam، HmmerAlign و HmmerEmit اشاره کرد. برای مثال در HmmerBuild به کمک توالی‌های از پیش تراز شده مدل می‌شود و می‌توان به پایگاه داده آن اضافه کرد.