Last Chemist
Last Chemist
خواندن ۵ دقیقه·۲ سال پیش

ساعت دیجیتالی به نام کدون کلاک (Codon Clock)

صرفا پوستر پست :))
صرفا پوستر پست :))
این پست آپدیت شده : لینک (البته توصیه میکنم این پست رو بخونین و بعد برین سراغ بعدی چونکه الگوریتم محاسبات رو توی همین پست جاری توضیح دادم)

آقا سلام.
یه مدتی بود که داشتم دنبال ساعت هایی با ایده متفاوت میگشتم مثلا ساعت هایی که به جای اعداد معمولی از نماد های ریاضی استفاده شده یا ساعت هایی که با عناصر شیمایی نشان گذاری شدن مثل تصاویر زیر

و امثالهم.
از اونجایی که تازه با ترتیب کدون های mRNA تازه آشنا شده بودم و این ساعت ها رو هم دیدم فکر کردم که چرا من ساعت خودم رو نسازم؟؟؟؟
دست به قلم شدم و بعد از چند روز تلاش بلاخره یه رابطه منطقی که بشه باهاش اعداد رو نشون داد رو پیدا کردم که درنهایت با کمک گرفتن از دانش مقدس برنامه نویسی اقدام به پیاده سازیش کردم.

اگر اصطلاحی رو دیدین که نمیدونین پیشنهاد من مراجعه به فرادرس هست که اونجا راحت توضیح داده اگرم نه لینک های ویکی پدیا رو واسه هر کدوم گذاشتم اونجا میتونین یه مرور سریع داشته باشین

از کجا شروع کردم؟

سفت بچسبین که قراره حسابی فسفر بسوزونیم ??

اول از همه باید رابطه بین جایگشت های نوکلئوتید های mRNA یعنی A,G,C,U (به ترتیب یوراسیل، سیتوزین، گوانین و آدنین) رو کشف می کردم به عبارت دقیق تر هر کدون متنظار با یک عدد طبیعی خواهد شد.
از اونجایی که کدون UUU اول از همه در جدول کدون ها (جدول ۱) ظاهر میشه منم بهش عدد ۱ رو اختصاص دادم و هر بار یک واحد بهش اضافه میشه و به ترتیب کدون های با شماره ۲ تا ۴ UUG ,UUA ,UUC خواهند بود.

اگر کمی دقت به خرج بدین متوجه یک دنباله منطقی که در هر ستون برقراره میشین انگار که واقعا دارین با اعداد ولی با شکل متفاوت سر و کله میزنین این دقیقا جرقه شروع این کار بود.
جدول ۱ : جدول استاندارد کدون های mRNA
جدول ۱ : جدول استاندارد کدون های mRNA


ولی از کجا بدونیم که کدون مثلا GAC متناظر با کدوم عدد هست؟

برای پاسخ دادن به این سوال باید یک جدول ارزش مکانی تنظیم کنیم (همون جدول ارزش مکانی اعداد ریاضی سوم ابتدایی! البته با کمی تغییر).

جدولی که در زیر مشاهده میکنین به روش استقرای ریاضی به دست اومده (البته راستش رو بخوام بگم اصطلاحش رو یادم رفته!).


اگر یادتون باشه (که حتما هست!) جدول ارزش مکانی سه تا ستون داشت یکان، دهگان و صدگان. ما هم میخوایم دقیقا همین جدول رو به کدون ها تعمیم بدیم (هر حرفی یا همون نوکلئوتیدی که در کدون وجود داره ارزش مکانی منحصر به فرد خودشو داره).

توضیح جدول:
این جدول دقیقا ارزش مکانی هر حرف رو مشخص میکنه و بر اساس این جدول میتونیم عدد متناظر با کدون مورد نظر رو پیدا کنیم.

با این جدول میشه تمام اعداد طبیعی رو تولید کرد ولی ما برای کاربرد به عنوان ساعت دیجیتال به حداکثر عدد ۶۴ اکتفا می کنیم.
برای تولید عدد ۰ هم از همون ۰ خودمون استفاده میکنیم‌:)).
حالا خیلی راحت میتونیم عدد متناظر با کدون مثلا همین GAC رو به دست بیاریم فقط کافیه ارزش مکانی هر حرف رو پیدا کنیم و در نهایت اعداد به دست اومده از هر حرف رو با هم جمع می زنیم.
طبق جدول داریم:
حرف G در مکان ۱ قرار داره پس مقدارش ۴۹ هست.
حرف A در مکان ۲ قرار داره پس مقدارش ۷ هست.
حرف C در مکان ۳ قرار داره پس مقدارش ۲ هست.
جمع این سه مقدار عدد ۵۸ هست که عدد متناظر با کدون GAC هست.

حالا چطوری برعکس عمل کنیم؟

خیلی راحت! با همون ۵۸ ادامه میدیم.
اول از همه باید ببینیم که بزرگ ترین عددی که تو مکان ۱ هست و از عدد ۵۸ کوچیک تره چنده؟
جواب میشه عدد ۴۹. حالا عدد ۴۹ رو از عدد ۵۸ کم میکنیم که حاصل میشه ۹ و حرفی رو که پیدا کردیم که اینجا G هست رو یادداشت میکنیم.
به همین ترتیب میریم جلو. عدد بعدی ۷ هست که از عدد ۹ که قبلا به دستش آوردیم کم میکنیم که حاصل میشه ۲ و دوباره حرف بدست اومده که اینجا A هست رو یادداشت می کنیم.
در نهایت عدد آخر ۲ هست که اگر از ۲ کم کنیم صفر میشه و حرفی رو که پیدا کردیم رو یادداشت میکنیم که اینجا C هست.
سه حرفی که به دست آوردیم رو به ترتیب کنار هم میذاریم و بووووووم! تبریک میگم شما به GAC رسیدین!

دقت داشته باشین که حتما حتما حتما در آخر به صفر برسین وگرنه یه جای کار رو اشتباه انجام دادین.

حالا رو نمایی از ساعت دیجیتال!

من دو تا برنامه یکی به زبان پایتون (کنسول) و اون یکی به زبان سی شارپ (گرافیکی) نوشتم که در عمل از این
الگوریتم استفاده میکنه.

در برنامه سی شارپ آمینو اسید های متناظر با هر کدون رو هم لحاظ کردم (سطر وسط) (کدون Stop هیچ آمینو اسیدی رو کد‌ (رمز)‌ نمیکنه!)

کد پایتون به عنوان پروتوتایپ نوشته شده و از این بابت گیف یکم کوچیکه :))



آپدیت 1403/02/23 :

بالاخره بعد از مدت ها کد رو از دم ریفکتور کردم، کامنت های بهتری نوشتم کلا اوووفف! قابل استفاده برای چیزایی غیر از ساعت هست (کلاس بندی کردم یکی ساعت یکی هم ابزار ها و ...)

و گیت هاب پروژه!

https://github.com/LastChemist/CodonClock


پی نوشت:
از اونجایی که کد ها مربوط به تقریبا یکسال پیش هستن و نیاز به ریفکتور و بازبینی دارن پس از کمی آرایش کردن کد ها اونا رو تو این گیت هاب برای دسترسی عمومی قرار میدم ?.
جان داداش اسکی نرین که دلخور میشم ?

خب حرفی دیگه نمیمونه نظری پیشنهادی این شکلی داشتین خوشحال میشم منم بشنومشون.
ارادتمند ali shimist OUT

دیگر پست ها:

https://virgool.io/@alishimist/%D9%85%D8%B3%D8%A6%D9%84%D9%87-%D9%86%D8%A7%D9%86%D9%88%D8%A7-y2vmdqokqmmu
https://virgool.io/@alishimist/%DB%8C%DA%A9-%D9%84%DB%8C%D9%88%D8%A7%D9%86-%D9%82%D9%87%D9%88%D9%87-%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C-%D8%A8%D8%A7-%D8%AE%D8%A7%D9%85%D9%87-%D8%B4%DB%8C%D9%85%DB%8C-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%D9%84%D8%B7%D9%81%D8%A7-vquqtmzminck
https://virgool.io/@alishimist/chemical-free-sk5sjxy4a18k
https://virgool.io/Sakkoo/%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%D8%B7%D8%A7%D9%84%D8%A8%D8%A7%D9%86-%D8%B3%D8%B1%D8%AE-k7y14b8sglsv



زیست شناسیبرنامه نویسیپایتونسی شارپ
It is an unpopular opinion, but I am surrounded by the idiots. کانال تلگرام : MyDifferentNameChannel
شاید از این پست‌ها خوشتان بیاید