سلام دوستان.
تو این پروژه قصد دارم یه رابط کاربری گرافیکی (GUI) برای برنامه باحال CD-HIT طراحی کنم. خب پروژه پیچیده ای نیست تقریبا همچی مشخص واضح هست. خود برنامه CD-HIT پارمترهای زیادی نداره و بنظر میشه خیلی راحت براش رابط گرافیکی ایجاد کرد.
خب برای این کار از زبان پایتون (Python 3.8) و کتاب خانه PyQT5 استفاده می کنم هر دو چیزای باحالی هستن. برای طراحی رابط کاربری خب اولین چیز شناختن دقیق خود برنامه هست، پس بیایین یه سر بریم به سایت رسمی برنامه.
خب همینطور می تونین تو سایتشون بخونین یه چند سال پیش رفتن رو گیتهاب و اونجا به فعالیتشون ادامه میدن،خوبه که شمام اونجا رو به عنوان مرجع در نظر بگیرن.
اگه بخواییم خیلی ساده برنامه CD-HIT رو معرفی کنیم باید بگیم این برنامه برای کاهش حجم داده های از جنس توالی های آمینواسیدی و نوکلئوتیدی طراحی شده. خب چطوری کار میکنه، خیلی ساده ست، برنامه ازتون میخواد که فایل Fasta رو بهش بدین و با یه پارامتر دیگه میزان درصد تشابه هست به راحتی به حذف توالی های تکراری بپردازین.
خب همینطور که میدونین پارمترهای زیادی نداره و مشخصا کار کردن باهش خیلی دردسر نیست ولی ایده اصلی اینکه یه بیوانفورماتیک کار، به خصوص اونایی که رشته اصلیشون بیولوژی هست، با خیلی از نرم افزارها سرکار دارن و خب مشخصا نمیتونیم همه پارامترها رو به ذهن بسپریم. برای رفع این مشکل بهترین کار طراحی رابطه گرافیکی هست. البته خب حتما تو پایپ لاین درست کردن این رابط های گرافیکی دردسر هستن ولی داستان اینکه همه که قرار نیست با پایپ لاین کار کنن. خیلی ها واقعا نمی تونم یا ترس از استفاده از ترمینال و این دستورات نوشتاری دارن، بخصوص بیولوژیست ها، و منم دلم می خواد همه بتونن از این ابزارهای باحال استفاده کنن بدون اینکه نگران نوشتن کدهای مختلف برای پارمترها و غیره باشن. اصلا یه لحظه با خودتن فرض کنید که می خوایین تو ترمینال از این برنامه ها استفاده کنین و کلی باید بنویسین که برنامه چطور اجرا بشه، حالا چی میشه اگه با چند تا کلیک ساده این کدها رو ایجاد کنید و اگه خواستین حتی تو یه پایپ لاین ازش استفاده کنید. منظورم اینکه یه رابط کاربری لزوما نیاز نیست برنامه رو براتون اجرا کنه، میتونه خیلی راحت کدهای که قرار هست شما تایپ کنید رو تو چند ثاینه بنویسه.
فعلا معرفی پروژه رو همینجا تمام می کنیم و تو قسمت بعد سعی می کنیم مستقیما با CD-HIT کار کنیم تا هم پارامترها رو خوب بشناسیم و هم خود برنامه رو خوب برسی کنیم چقدر میتونه کمک کنه تا حجم پردازش رو پایین بیاره.