علوم کامپیوتر برای زیست‌شناسی چه دارد؟

مطلب جالبی با عنوان بالا توسط  ARTEM KAZNATCHEEV منتشر شده که دیدن آن خالی از لطف نیست. عمق نگاه نویسنده و نویسنده دیگری که به آن اشاره شده، یعنی آقای دکتر Aronson هم جالب است. در حقیقت آقای دکتر Aronson در مورد علوم انسانی و نیاز آن به علوم کامپیوتر نوشته که ایشان همان موضوع را به زیست‌شناسی تعمیم داده. متن نوشته را در ادامه است:

What can theoretical computer science offer biology?

SEPTEMBER 9, 2013 BY ARTEM KAZNATCHEEV 19 COMMENTS

If there is anything definitive that can be said about biology then it is that biology is messy and complicated. The stereotypical image of a biology major is in the library memorizing volumes of loosely (at best) related facts only to have them overturned in the next semester. Concepts are related only vaguely, to the point that it looks like stamp-collecting to outsiders. The only unifying theme is evolution, and even that is presented with a smorgasbord of verbal and mathematical models, with many lacking predictive power or sometimes even solid empirical foundations. This might seem like the polar opposite of a theoretical computer scientist with her strict hierarchies and logical deductions. Even the complexity zoo seems perfectly tame compared to any biological taxonomy. However, since I’ve been promoting algorithmic theories of biology and even trying my hand at applying cstheory to models of evolution(Kaznatcheev, 2013), I must think that there is some possibility for a productive partnership. So, what can theoretical computer science offer biology? CStheory can provide the abstractions and technical tools to systematize and organize biology’s heuristic models.

One of the best proponents for theoretical computer science as a way of addressing the Big Questions, instead of being confined to serving technology, has been Scott Aaronson. It is unsurprising, that his blog has offered some of the best words for describing the aid that cstheory can offer to biological understanding. In yesterday’s post on the NSA and computational complexity, Aaronson — with attribution to mathematician Greg Kuperberg — provided the following words regarding the applicability of cstheory to cryptography (these words apply directly to biology, too):

[Theoretical computer science offers] what mathematics itself has sought to do for everything since Euclid! That is, when you see an unruly mess of insights, related to each other in some tangled way, systematize and organize it. Turn the tangle into a hierarchical tree (or dag). Isolate the minimal assumptions … on which each conclusion can be based, and spell out all the logical steps needed to get from here to there—even if the steps seem obvious or boring. Any time anyone has tried to do that, it’s been easy for the natives of the unruly wilderness to laugh at the systematizing newcomers: the latter often know the terrain less well, and take ten times as long to reach conclusions that are ten times less interesting. And yet, in case after case, the clarity and rigor of the systematizing approach has eventually won out.

Although the algorithmic approach to biology might be slow at first, and will restate obvious things many times, eventually it will systematize the models. With a clear taxonomy of models, and the powerful tools from analysis of algorithms and computational complexity, biologists will be able to better navigate the assumptions they make as they model the world around them. I expect this to be especially important to models of evolution, and other fields where extensive and detailed empirical measurements are hard to achieve. A rigorous understanding of how model assumptions and conclusions relate, will allow biologists to make minimally restrictive models that agree with what has been measured without making extraneous presuppositions about the physical world (beyond the restrictions imposed by the fact that it is our minds that has to understand these theories).

This unification of fields will not be easy going. As Aaronson answered earlier to my question on the prospects of computational complexity in biology:

The central difficulty is obvious: to whatever extent your model is “real” CS theory, biologists and social scientists will probably deride it as too idealized; conversely, to whatever extent biologists and social scientists like your model, it will probably have too many “arbitrary” aspects for CS theorists to prove anything clean about it.

Let me put it this way: to connect computational complexity (as actually practiced by computational complexity theorists) to physics (as actually practiced by physicists), seems to me like digging a tunnel between England and France. Highly nontrivial, but by 1994 people finally managed to do it!

To form an equally-compelling link between computational complexity and biological evolution feels to me like digging a tunnel between England and the US. A worthy aspiration, but orders of magnitude more ambitious!

Progress will require convincing from both sides. In computer science we will need to consider more heuristic approaches, and the biologists will have to put up with our initially slow (and sometimes tangential) progress. However, if we start digging the tunnel from both ends then we can meet somewhere at the mid-Atlantic ridge.

In a broader context, we can be see this organization of thought as the application of algorithmic philosophy, extending past simple logical analysis to a serious consideration of the laws of computation. Scott Aaronson (2011) explains why philosophers should be interested in joining this approach. Hopefully with computer science, philosophy, and biology working together, we can untangle and understand the messy living world.

Aaronson, Scott (2011). Why Philosophers Should Care About Computational Complexity. arXiv arXiv: 1108.1791v3

Kaznatcheev, Artem (2013). Complexity of evolutionary equilibria in static fitness landscapes. arXivarXiv: 1308.5094v1

دروس کوتاه سرطان: تبارشناسی تومور

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

خلاصه:

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

منبع اصلی ارائه:

Alon, Noga, et al. “Approximate maximum parsimony and ancestral maximum likelihood.” IEEE/ACM transactions on computational biology and bioinformatics 7.1 (2010): 183-187.

ولی خداوکیلی خیلی کار سختی است آماده کردن این ارائه!

ساختار سه‌بعدی ژنوم در هسته و رابطه‌اش با سرطان

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

اما مقاله‌هایی نیز در این زمینه تولید شده که نشان می‌دهند در سرطان نحوه تاخوردگی ژنوم در هسته تغییر می‌کند. شواهد بسیار گنگ هستند و بیشتر به نظریه‌پردازی شبیه هستند. در این زمینه دانشجویی در جلسه دفاعش ادعایی کرد و بعدا مقاله‌ای در این زمینه را ارسال کرد. دیدن مقاله در این زمینه خالی از لطف نیست.

Corces MR, Corces VG. The three-dimensional cancer genomeCurr Opin Genet Dev. 2016;36:1-7.

به هر حال به نظر می‌آید در یک سلول کوچک اطلاعات فراوانی وجود دارد که بسیار از آن‌ها به سادگی ژنوم نیستند. مثلا همین قرار گرفتن اجزاء قطعات مختلف ژنوم در کنار هم در فضا اطلاعات مهمی از سلول است که در رفتار سلول موثر است تا این حد که در سرطان‌ها، برای رشدشان نیازمند تغییر قرارگیری ژنوم در فضا هستند. این‌ها از طرفی نشان می‌دهد که چقدر دانش ما نسبت به سلول کم است و از طرفی نشان می‌دهد که چقدر جای رشد برای علم زیست‌شناسی وجود دارد.

سخنرانی دکتر Monteil با موضوع محاسبات نوری

دکتر Monteil که از فرانسه آمده‌اند و هنوز تهران هستند، یک سخنرانی در دانشگاه تهران دارند. 

سخنرانی‌شان در مورد sage در دانشگاه شریف که خیلی خوب بود. خیلی مشتری داشت و اساتید هم خیلی تشویق کردند. خودشان هم فردی بسیار علاقه‌مند و با حوصله بودند. تا ۲-۳ ساعت بعد ارائه هم بودند که پاسخ دانشجویان را بدهند. کلا سخنرانی خوب بود.

امیدوارو این سخنرانی‌شان هم خوب بشود.

آموزندگی درس بهینه‌سازی برخط

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

یکی از مطالب درس، یادگیری برخط بود. در یادگیری برخط می‌خواهیم الگوریتمی برای یادگیری تولید کنیم با این فرض که از همان ابتدا باید پاسخگو باشد. به عبارت دیگر، از همان ابتدا به الگوریتم نمونه‌هایی داده می‌شود، پاسخ از او پرسیده می‌شود و به ازای پاسخ نادرست جریمه می‌شود. بدین صورت الگوریتم از ابتدا باید پاسخ بدهد. 

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

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