بلاست

بلاست (به انگلیسی: BLAST) نام یک نرم‌افزار کاربردی در علوم سلولی و مولکولی و ژنتیک است که مخفف واژگان Basic Local Alignment Search Tool یا ابزار پایه‌ای برای جستجوی برهم‌نهی‌های موضعی است. این ابزار قسمتی از مجموعهٔ اطلاعات کیفی مرکز ملی اطلاعات زیست‌فناوری است.
با این نرم‌افزار می‌توان توالی اسیدهای آمینه در پروتئین‌ها یا توالی نوکلئوتیدها را در DNA را با هم مقایسه کرد.
این نرم‌افزار به پژوهشگر اجازه می‌دهد تا یک توالی را با توالی دیگر یا توالی که در بانک اطلاعاتی وجود دارد، مقایسه کند. شناسایی توالی‌های موجود در بانک اطلاعاتی که بیشترین شباهت را با توالی مورد نظر دارد از دیگر قابلیت‌های این نرم‌افزار است. بر حسب نوع توالی انواع مختلفی از بلاست امکان‌پذیر است. مثلاً اگر یک ژن ناشناخته در موش که قبلاً اطلاعاتی از آن در اختیار نبوده، باید بررسی شود، یک پژوهشگر ترجیح می‌دهد این توالی را با ژنوم انسان بلاست کند. این نرم‌افزار در NIH (مؤسسه ملی بهداشت آمریکا) طراحی شد. بلاست یکی از پرکاربردترین نرم‌افزارها در بیوانفورماتیک است که با سرعت مطلوب مقایسه مورد نظر را انجام می‌دهد. سرعت زمانی اهمیت خود را نشان می‌دهد که با ژنوم کامل روبرو باشیم. پیش از طراحی این نرم‌افزار مقایسه توالی‌ها بسیار وقت گیر بود.

ورودی

دنباله‌های ورودی در فرمت FASTA format یا Genbank هستند.

خروجی

خروجی بلاست در فرمتهای مختلفی موجود است: فرمت HTML، متن و XML. در نرم‌افزار موجود در سایت NCBI  فرمت پیشفرض خروجی HTML است. در این نرم‌افزار موفقیتها (مواردی که تطابق رخ داده) به صورت گرافیکی نمایش داده می‌شوند بعلاوهٔ یک جدول که دنبالهٔ تطابقها همراه با امتیاز داده شده به هرکدام را نشان می‌دهد.
همچنین یک نسخهٔ رایگان بلاست قبل اجرا بر روی کامپیوتر شخصی از آدرس BLAST + Exe قبل دانلود است.
پایگاه داده نیز از سایت NCBI و هم چنین از آدرس پایگاه داده بلاست قابل دانلود است.

نحوه پردازش

با استفاده از روش Heuristic الگوریتم بلاست دنباله‌های همسان را پیدا می‌کند. در این روش به جای مقایسه کامل دو دنباله، تطابقهای کوتاه با یکدیگر مقایسه می‌شوند. به پروسهٔ پیدا کردن کلمات اولیه برای اجرای الگوریتم بلاست seeding می‌گویند. بعد از پیدا کردن این تطابق‌های اولیه الگوریتم بلاست یک تطابق محلی (local alignment) انجام می‌دهد. هنگام پیدا کردن هومولوگ در دنباله‌ها، مجموعه حروف مشترک که به آنها لغت گفته می‌شود بسیار مهم اند. به عنوان مثال اگر دنباله‌ای شامل حروف GLKFA باشد؛ اگر بلاست با تنظیمات پیشفرض اجرا شود، طول لغت ۳ خواهد بود(word size = 3). در این حالت لغاتی که جستجو خواهند شد لغات روبه رو هستند: GLK, LKF, KFA.
الگوریتم اکتشافی (heuristic) بلاست، حروف سه تایی مشترک را بین دنبالهٔ مورد نظر و دنبالهٔ تطابق یا دنباله‌های پایگاه داده مکان یابی می‌کند. سپس از این نتایج برای ساخت یک تطابق استفاده میشو. بعد از ساخت لغات برای دنبالهٔ مورد نظر، لغات موجود در همسایگی نیز ساخته می‌شوند. این لغات باید در پروسهٔ امتیاز دهی، امتیازشان از یک حد آستانه‌ای بیشتر شده باشد؛ و معمولاً برای این امتیاز دهی از ماتریس BLOSUM62 استفاده می‌شود. بعد از ساخت لغات و برای پیدا کردن تطابق لفات ساخته شده با دنباله‌های موجود در پایگاه داده مقایسه می‌شوند. حد آستانه مشخص می‌کند که لغت مورد نظر در تطابق نهایی باشد یا نباشد.
بعد از انجام پروسهٔ seeding (پیدا کردن تطابق اولیه)، تطابق یافته شدهٔ اولیه که در این مثال طول آن سه بود در دو جهت گسترش می‌یابد و با هر گسترش امتیاز جدیدی به تطابق داده می‌شود و اگر این امتیاز از مقداری از قبل تعیین شده بیشتر بود تطابق پذیرفته می‌شود و در غیر اینصورت از گسترش تطابق خودداری می‌شود.
افزایش مقدار از قبل تعیین شده، فضای جستجو را محدود می‌کند و تعداد لغات همسایگی را کاهش می‌دهد اما سرعت اجرای الگوریتم بلاست را افزایش می‌دهد.

بلاست موازی

نسخه‌های موازی از بلاست با استفاده از MPI و Pthreads پیاده‌سازی شده‌اند و روی پلتفرم‌های مختلف مثل ویندوز، لینوکس، مک و… قابل اجرا هستند.
روشهای مشهور برای موازی سازی بلاست عبارتند از پراکنده یا پخش کردن query، قطعه قطعه سازی جدول hash، موازی سازی محاسباتی و قطعه قطعه سازی پایگاه داده.

نسخه‌های جایگزین

یکی از نسخه‌های بلاست که خیلی سریع تر است اما دقت کمتری دارد BLAT است. نسخهٔ دیگری که برای مقایسهٔ ژنوم‌ها و کروموزوم‌های خیلی بزرگ استفاده می‌شود BLASTZ نام دارد.
CS-BLAST (context-specific BLAST) نیز یک نسخهٔ توسعه یافتهٔ بلاست برای جستجو در پروتئین هاست که دو برابر سریعتر از بلاست است. در این نسخه احتمال جهش بین آمینواسیدها نه تنها به خودشان بلکه به مکان آنها نیز وابسته است.

مقایسهٔ BLAST و Smith-Waterman

اگرچه blast و Smith-Waterman هردو برای یافتن هومولوگ‌ها استفاده می‌شوند اما تفاوتهایی نیز با یکدیگر دارند.
بلاست به خاطر اینکه یک الگوریتم اکتشافی (heuristic) است دقت کم تری دارد و ممکن است بعضی از تطابق‌ها را پیدا نکند و از دست بدهد اما در عوض سرعت خوبی دارد.
در مقابل Smith-Waterman دقت مناسبی دارد اما در مقایسه با بلاست زمانگیرتر است و فضای حافظهٔ بیشتری نیاز دارد؛ اما در عوض برای یافتن همومولوگهای دور مفید است.
خوشبختانه تکنولوژیهایی برای سرعت بخشیدن به Smith-Waterman ارائه شده‌اند که به عنوان مثال می‌توان استفاده از چیپهای FPGA یا پردازشهای SIMDرا نام برد.
برای گرفتن نتایج بهتر از بلاست می‌توان تنظیمات مختلفی که برای این برنامه وجود دارد را تغییر داد، اما روشی وجود ندارد که برای هر دنبالهٔ دلخواه بهترین تنظیمات را ارائه کند. این تنظیمات شامل E-value , gap costs, filters, word size, وsubstitution matrix می‌باشند.