در گراف گره‌های تطبیق (M)، درج (I) و حذف (D) دیده می‌شود. احتمال انتشار هر نوکلئوتید در گره درج برابر ۰٫۲۵ است.مدل پنهان مارکف مشخصات (یا Profile-HMM) یکی از روش‌های حل مسائل هم‌تراز کردن توالی (Sequence Alignment) است که به کمک مدل پنهان مارکف به حل آن می‌پردازد. یکی از دسته مسئله‌های هم‌تراز کردن توالی که به کمک این روش حل می‌شود هم‌ترازسازی چند توالی (Multiple Sequence Alignment) یا به اختصار MSA است. این مدل به وسیله احتمال پرش، تطابق و عدم تطابق ایجاد می‌شود که این احتمال‌ها را می‌توان از جدول شاخصه رشته‌های توالی یافته (Profile) بدست آورد. در MSA هم ترازی بین چند توالی بیولوژیکی بررسی می‌شود به همین دلیل الگوریتم‌های استفاده شده در آن به مراتب پیچیده‌تر اند. یکی از مزیت‌های استفاده از مدل‌ها در حل این دسته از مسائل نسبت به دیگر الگوریتم‌ها استفاده از فاکتور احتمال است که در دیگر الگوریتم‌ها معمولاً نادیده گرفته می‌شود.

ساختار مدل
----------

در شکل روبرو جدول توالی‌های هم تراز شده از پروتئین‌ها مشاهده می‌شود. با توجه به این توالی‌ها ستون‌هایی که درصد پرش در آنها از یک مقدار مشخصی کمتر باشد به عنوان گره‌های تطبیق در گراف مدل در نظر گرفته می‌شوند که احتمال انتشار هر نوکلئوتید در تطبیق بر اساس ستون متناظر با آن بدست می‌آید.
در گراف این مدل هر گره نشان دهنده یک تطبیق، حذف یا درج است همچنین در دو طرف گراف گره‌هایی برای نشان دادن شروع و پایان هم ترازی وجود دارد. تعداد و مقادیر موجود در گره‌ها بر اساس جدول مشخصه بدست می‌آید به اینگونه که برای گره‌های تطبیق در جدول ستون‌هایی که احتمال پرش در آنها از یک مقدار از قبل تعیین شده کمتر باشد در نظر گرفته می‌شوند. به ازای هر گره تطبیق دو گره درج و حذف نیز وجود دارد که گره حذف نشان دهنده این است که در هم ترازی به جای تطبیق حذف انجام شده و گره درج نشان دهنده درج در توالی در عملیات هم ترازی است که این درج‌ها بین دو تطبیق در گراف رخ می‌دهند و ممکن است بین دو تطبیق بیش از یک درج وجود داشته باشد.

در گراف برای گره تطابق انتقال به گره‌های تطبیق و حذف در لایه بعدی یا گره درج در همان لایه انجام می‌شود. در گره درج انتقال به خود گره یا گره تطابق لایه بعدی صورت می‌گیرد. همچنین برای گره‌های حذف انتقال به گره‌های تطبیق و حذف لایه بعدی انجام می‌شود.

هم‌تراز کردن توالی
------------------

برای هم‌تراز کردن یک توالی از گره شروع آغاز می‌کنیم و مسیری با بیشترین امتیاز را تا گره پایان می‌یابیم. برای اینکار به کمک الگوریتم ویتربی این مسیر را میابیم. در این الگوریتم اگر در مرحله iدر حالت kباشیم مسیری از گره شروع تا این گره با بیشترین امتیاز از رابطه زیر پیدا می‌شود:


s
(
k
,
i
)
=
m
a

x

l

{
s
(
l
,
i
−
1
)
×

w

l
,
k

}

{\displaystyle s(k,i)=max\_{l}\{s(l,i-1)\times w\_{l,k}\}}

{\displaystyle s(k,i)=max_{l}\{s(l,i-1)\times w_{l,k}\}}که {\displaystyle s(k,i)}امتیاز آن گره می‌باشد و {\displaystyle w\_{l,k}}وزن یال بین گره مربوط به حالت lدر مرحله {\displaystyle i-1}و گره حالت kدر مرحله iاست که احتمال انتقال را نشان می‌دهد. با توجه به اینکه مقادیر وزن‌های کمتر از یک است پس اگر اندازه گراف بزرگ باشد مقادیر امتیاز به تدریج کوچک‌تر می‌شود تا جایی که از لحاظ کامپیوتری قادر به انجام محاسبات نیستیم در این صورت به جای خود امتیاز از لگاریتم آن استفاده می‌شود. در صورت استفاده از لگاریتم رابطه به شکل زیر می‌شود:


log
⁡
(
s
(
k
,
i
)
)
=
m
a

x

l

{
log
⁡
(
s
(
l
,
i
−
1
)
)
+
log
⁡
(

w

l
,
k

)
}

{\displaystyle \log(s(k,i))=max\_{l}\{\log(s(l,i-1))+\log(w\_{l,k})\}}

{\displaystyle \log(s(k,i))=max_{l}\{\log(s(l,i-1))+\log(w_{l,k})\}}

مقدار دهی پارامترها
-------------------

پس از ساخت گراف و مدل برای مقدار دهی به وزن یال‌ها و احتمالات از توالی‌های هم‌تراز شده موجود در جدول استفاده می‌کنیم. ابتدا مسیر توالی‌ها در گراف پیدا کردهه و از طریق این مسیرها مقدار احتمال انتقال‌ها را می‌یابیم. برای مثال اگر بخواهیم احتمال انتقال از حالت kبه حالت lرا بیابیم در هر مسیر تعداد دفعات انتقال از kبه lرا بر تعداد دفعات انتقال از حالت k به هر حالت دیگری تقسیم می‌کنیم. به این ترتیب می‌توان وزن یال‌ها را بدست آورد. همچنین مشابه همین روش می‌توان احتمال انتشار را در هر حالت بدست آورد. یک روش دیگر برای مقدار دهی استفاده از یادگیری ویتربی است. در این روش ابتدا پارامترها را به صورت رندم مقدار دهی می‌کنیم و بر اساس آن مسیر یک توالی را بدست می‌آوریم سپس به کمک مسیر بدست آمده و خود توالی مقادیر جدیدی برای پارامترها بدست می‌آوریم و به کمک این مقادیر و توالی دیگر مسیر جدیدی بدست آورده می‌شود. همین روند چندین بار تکرار می‌شود تا زمانی که پارامترها به یک مقدار همگرا شوند.

### الگوریتم باوم-ولچ

یکی دیگر از روش های بدست آوردن مقادیر استفاده از الگوریتم باوم-ولچ است. در یادگیری ویتربی چون در این روش از همان الگوریتم ویتربی استفاده می‌شود خروجی نهایی به صورت قطعی است و یک جواب احتمالاتی به ما نمی‌دهد برای بدست آوردن یک درجه‌ای از قطعیت در جواب نهایی می توان از الگوریتم باوم-ولچ استفاده کرد. این الگوریتم در واقع همانند الگوریتم یادگیری ویتربی است اما برای یادگیری از احتمالات بهره می‌برد. در این الگوریتم دو مقدار {\displaystyle \Pi ^{\*}}و {\displaystyle \Pi ^{\*\*}}را به شکل زیر تعریف می‌کنیم:


Π

k
,
i

∗

=
P
r
(

π

i

=
k

|

x
)

{\displaystyle \Pi \_{k,i}^{\*}=Pr(\pi \_{i}=k|x)}

{\displaystyle \Pi _{k,i}^{*}=Pr(\pi _{i}=k|x)}

Π

l
,
k
,
i

∗
∗

=
P
r
(

π

i
−
1

=
l
,

π

i

=
k

|

x
)

{\displaystyle \Pi \_{l,k,i}^{\*\*}=Pr(\pi \_{i-1}=l,\pi \_{i}=k|x)}

{\displaystyle \Pi _{l,k,i}^{**}=Pr(\pi _{i-1}=l,\pi _{i}=k|x)}
که {\displaystyle \Pi ^{\*}}احتمال بودن در حالت kدر مرحله iبه شرط دانستن توالی است که در اینجا x همان توالی است و {\displaystyle \Pi ^{\*\*}}در واقع همان احتمال انتقال از حالت k به حالت lاست. همانند ویتربی این الگوریتم نیز ابتدا یک مقادیر رندم برای هر کدام از پارامتر ها در نظر می گیرد سپس با استفاده از آنها هر یک از {\displaystyle \Pi ^{\*}}و {\displaystyle \Pi ^{\*\*}} متناسب با توالی را می یابد. سپس با استفاده از {\displaystyle \Pi ^{\*}} و {\displaystyle \Pi ^{\*\*}} بدست آمده پارامتر های جدید بدست آمده و دوباره به کمک آنها {\displaystyle \Pi ^{\*}}و {\displaystyle \Pi ^{\*\*}}جدید بدست می‌آید. این رویه تا زمانی تکرار می‌شود که پارامتر ها به یک مقدار مشخص همگرا شوند.

برنامه‌ها
---------

HMMER یا همر به مجموعه برنامه‌هایی می‌گویند که به وسیله این روش هم ترازی توالی ها را انجام می‌دهد. از برنامه هایی که از این بسته استفاده می‌کنند می توان بهHmmerBuild HmmerCalibrate ،HmmerConvert **،**HmmerIndex ،HmmerFetch، HmmerSearch، HmmerPfam، HmmerAlign و HmmerEmit اشاره کرد. برای مثال در HmmerBuild به کمک توالی‌های از پیش تراز شده مدل می‌شود و می‌توان به پایگاه داده آن اضافه کرد**.**

منابع
-----

1. ↑  Sudipta Mulia, DebahutiMishr, Tanushree Jena. «Profile HMM based Multiple Sequence Alignment for DNA Sequences».نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (رده)
2. ↑  Byung-Jun Yoon. «Hidden Markov Models and their Applications in Biological Sequence Analysis».
3. ↑  Johannes Söding. «Protein homology detection by HMM–HMM comparison».
4. ↑  «Topics in Computational Molecular Biology» (PDF).
5. ↑  Tin Y Lam and Irmtraud M Meyer. «Efficient algorithms for training the parameters of hidden Markov models using stochastic expectation maximization (EM) training and Viterbi training».
6. ↑  Xiaolin Li , Marc Parizeau , Réjean Plamondon. «Training Hidden Markov Models with Multiple Observations – A Combinatorial Method».نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (رده)
7. ↑  «Profile Hidden Markov Model Analysis». بایگانی‌شده از اصلی در ۲۴ ژوئیه ۲۰۱۹. دریافت‌شده در ۲۶ ژوئیه ۲۰۱۹.