- DNA को क्रमवार चलने वाले program code की तरह देखना कठिन है, लेकिन gene expression और cellular signaling pathways में IF/WHILE जैसी logic से तुलना किए जा सकने वाले regulatory mechanisms मौजूद हैं
- transcription activator और transcription repressor शर्तों के अनुसार gene transcription को चालू या बंद करते हैं, इसलिए इन्हें ढीले तौर पर क्रमशः IF और WHILE से जोड़ा जा सकता है
- function call की तरह स्वतंत्र input-output blocks को cell के भीतर स्थापित करना कठिन है, क्योंकि एक ही स्थान में होने वाली प्रतिक्रियाएँ एक-दूसरे में हस्तक्षेप कर सकती हैं
- GOTO जैसे उदाहरण conditional network connections, feedforward loop, और branching pathways में मिल सकते हैं, लेकिन DNA के क्रमवार execute न होने की सीमा बहुत बड़ी है
- जैविक systems सामान्यतः parallel और analog होते हैं, इसलिए synthetic biology में logic gate के उदाहरण होने पर भी computer code वाला रूपक सावधानी से इस्तेमाल करना चाहिए
DNA और programming language रूपक की सीमाएँ
- DNA, computer code की तरह क्रमवार execute नहीं होता, और कई transcriptions एक साथ parallel रूप से होती हैं
- computer code की एक line का अर्थ सख्त और स्थिर होता है, लेकिन coding DNA amino acids में translate होता है और protein function amino acids के बीच जटिल रासायनिक interactions से उभरता है
- coding DNA का कोई खंड, उसके द्वारा बने protein context के बाहर स्वतंत्र रूप से समझना कठिन है
- biological systems में computer जैसी तरह काम करने वाले pathways होते हैं, लेकिन ऐसी तुलना DNA स्तर की बजाय protein स्तर पर अधिक सावधानी से करनी चाहिए
IF और WHILE के करीब gene regulation
- transcription activator की उपस्थिति में कोई विशेष gene transcribe होता है, इसलिए इसे IF जैसा उदाहरण माना जा सकता है
- हालांकि signal गायब होने तक घटना समाप्त नहीं होती, और cell के जीवित रहने तक program चलता रहता है, इसलिए IF हमेशा किसी loop के हिस्से जैसा काम करता है
- transcription repressor की तुलना WHILE से की जाती है, क्योंकि जब तक repressor मौजूद नहीं होता, gene transcribe होता रहता है
- transcription interference को भी IF या WHILE के करीब एक रूप में समझा जा सकता है
- उदाहरण:
if(x transcribed){not y transcribed} - यह interference अनिवार्य रूप से binary नहीं होता, बल्कि अधिकतर चरणबद्ध response के रूप में दिखता है
- उदाहरण:
- RNA चरण पर भी antisense RNA का उपयोग करके transcription interference होता है, और यह अक्सर negative feedback loop देता है
- इस स्थिति में यह DNA स्तर पर सीधे होने वाला IF statement जैसा समकक्ष नहीं है
function call और modular pathways
- function call से बिल्कुल मेल खाने वाली संरचना ढूँढना कठिन है
- cell के भीतर घटनाएँ एक ही स्थान में होती हैं और हमेशा हस्तक्षेप की संभावना रहती है
- cell organelles compartments के रूप में function जैसी विशेषता रख सकते हैं, लेकिन वे साधारण input-output devices नहीं बल्कि बहुत जटिल संरचनाएँ हैं
- कुछ modular pathways की तुलना ढीले तौर पर function call से की जा सकती है
- उदाहरण: apoptosis signaling में ऐसे हिस्से जहाँ कोई विशेष input लगभग स्थिर प्रभाव तक ले जाता है, उन्हें एक code block की तरह संभाला जा सकता है
- caspase activation और cytochrome leakage के बीच की प्रक्रिया को एक block मान लेने पर कई mechanisms को अधिक संक्षेप में समझाया जा सकता है
- ubiquitin के द्वारा protein को mark करने की प्रक्रिया को degradation के लिए function call की तरह समझा जा सकता है
- nuclear receptor ligand से activate होने पर cytoplasm से nucleus में जाता है और gene repression/activation तथा बाद की प्रक्रियाएँ शुरू करता है, इसलिए इसे function call का उदाहरण माना जा सकता है
- कई subunits से assembled complex proteins में किसी एक subunit को बदलने की प्रक्रिया की तुलना function call या composition की अवधारणा से की जाती है
GOTO और branching pathways
- GOTO मुख्यतः क्रमवार चलने वाले code में अर्थपूर्ण होता है, और DNA उस तरह execute नहीं होता, इसलिए इसका सीधा समकक्ष ढूँढना कठिन है
- conditional network connections में GOTO जैसी संरचना मिल सकती है
- उदाहरण: यदि A→B→C pathway हो और अलग connection D→C हो, तो D के activate होने पर A और B से गुजरे बिना C पर सीधा प्रभाव पड़ सकता है
- feedforward loop और branching pathways कुछ शर्तों में मध्यवर्ती चरणों को bypass करते हुए दिखाई दे सकते हैं
- intron splicing को ribosome के pointer द्वारा अलग मानों को skip करने वाले GOTO जैसा मानने वाली टिप्पणी-शैली की व्याख्या भी थी, लेकिन मुख्य बात यही है कि DNA में क्रमवार execution संरचना नहीं होती
splicing और निचले स्तर की programming जैसी संरचनाएँ
- alternative splicing की तुलना IF से की जाती है, क्योंकि अंतिम protein को encode करने वाले transcript में कुछ DNA खंड यानी exons शामिल भी हो सकते हैं और हट भी सकते हैं
- इस तरह की निचले-स्तर की तुलना programming concepts और biological regulation के बीच समानता दिखाती है, लेकिन इन्हें सटीक समकक्ष मानना कठिन है
- cell के भीतर information flow को समझने के लिए केवल DNA नहीं, बल्कि transcriptome, proteins, और regulatory networks को भी साथ में देखना पड़ता है
synthetic biology के logic circuits
- synthetic biology में biological circuits से logic gates बनाए जाने के उदाहरण मौजूद हैं
- संबंधित review के रूप में Nature Reviews Genetics का synthetic biology circuit review प्रस्तुत किया गया है
- Siuti et al. 2013 बैक्टीरिया का उपयोग करके जानकारी store करने और biological circuits को assemble कर logic functions process करने का एक उदाहरण है
- biobricks.org program को sensor, logic function, और effector जैसे modular parts को परिभाषित करने के प्रयास के रूप में पेश किया गया है
digital code की बजाय analog feedback के अधिक करीब cells
- cells, कई physical systems की तरह, analog प्रकृति रखते हैं, और अधिकांश स्थितियों में variables 0/1 binary values में विभाजित नहीं होते
- gene expression में transcription activator मौजूद होने पर gene transcribe होता है, लेकिन activator की concentration बढ़ने पर expression level saturation point तक बढ़ता जाता है
- biological systems में switching behavior भी संभव है
- कुछ regulatory network structures ऐसी dynamics बना सकते हैं
- positive feedback की उपस्थिति या अनुपस्थिति के साथ cooperativity switching behavior को लागू करने वाले mechanisms में से एक है
- संबंधित अवधारणाओं के रूप में ultrasensitivity और “क्या continuous variables को Boolean variables में बदला जा सकता है” पर आधारित Biology Stack Exchange प्रश्न भी साथ में प्रस्तुत किया गया है
1 टिप्पणियां
Hacker News की राय
DNA में शायद programming structure न हो, लेकिन यह कुछ हद तक neural network की तरह काम करता है। “Gene regulatory network” को देखिए
कुछ proteins सिर्फ दूसरे genes को activate करने का काम करते हैं, और ऐसे transcription factors regulatory networks या chain reactions के केंद्र में होते हैं। वे दूसरे genes की शुरुआत में मौजूद promoter region से जुड़कर gene को on करते हैं और दूसरे proteins का production शुरू कराते हैं। कुछ transcription factors repression का काम भी करते हैं
ऐसे networks genes और proteins जैसे आपस में जुड़े nodes के ज़रिए information process करते हैं और एक-दूसरे की activity बदलते हैं, इसलिए ये neural networks जैसे लगते हैं। जब कोई transcription factor किसी gene को activate या repress करता है, तो घटनाओं की एक श्रृंखला शुरू हो सकती है, जो कुछ हद तक neurons के एक-दूसरे को activate करने के तरीके जैसी है
https://en.m.wikipedia.org/wiki/Gene_regulatory_network
ऐसे programs को engineer करने में काफ़ी प्रगति हुई है जो human T-cells को surface marker expression के आधार पर target cancer cells को conditional तरीके से मारने देते हैं। यह पहले से बाज़ार में मौजूद CAR-T cells (Kymriah आदि) से अलग है। साधारण AND-gate T-cell circuits इस समय इंसानों पर trial में हैं
अब synthetic circuits के ज़रिए cellular decision-making programs लिखने की कई strategies मौजूद हैं। हम उस दौर में प्रवेश कर रहे हैं जहाँ DNA programs लिखकर उन्हें मानव शरीर में डाला जा रहा है, और अब जब हम bacterial proof-of-concept से वास्तविक human clinical stage तक पहुँच रहे हैं, तो सोचता हूँ कि computer science के लोगों को “programming as synthetic biology” में ज़्यादा दिलचस्पी कैसे दिलाई जाए
https://pubmed.ncbi.nlm.nih.gov/33243890/
https://arsenalbio.com/2023/05/16/arsenalbio-announces-prese...
अगर कोई यह दावा करे कि किसी DNA sequence का xyz गुणों वाले electromagnetic field, gravity, strong/weak force के साथ interaction होने पर abc pathway के अनुसार mutation होगा, तो उसे reproducible statistical analysis के बिना ख़ारिज कर देना चाहिए
मुझे लगता है IT industry का data models के प्रति obsession लोगों को ऐसी pseudoscience की ओर धकेल चुका है जो entropy और Lindy effect को नज़रअंदाज़ करती है। Structure बदल सकता है, लेकिन physical forces नहीं। Data structure कोई physical force नहीं, बल्कि entropy और Lindy effect की वजह से biology जिस तरह garbage collection करती है, उसे समझने के लिए एक ढीला-ढाला mental model जैसा है
software development के प्रति यह obsession अजीब लगता है, और एक electrical engineer के नज़रिए से यह statistical mirage और imagined achievement से भरा दिखता है
gene regulatory networks सख़्त on/off से थोड़ा ज़्यादा dynamic होते हैं, लेकिन enhancer और repressor जैसे कई interaction types होने की वजह से ये सामान्य neural network की तुलना में logic gates से बेहतर model किए जा सकते हैं
यहाँ general से मतलब है कि वे बहुत से dynamic systems को approximate या model कर सकते हैं, जहाँ operator composition संभव होती है
मैं विश्वविद्यालय में creativity और innovation की classes पढ़ाता हूँ। मैं छात्रों को ऐसे inventions के बहुत उदाहरण दिखाता हूँ जो प्रकृति के अवलोकन से शुरू हुए, जैसे Velcro का विचार तब आया जब आविष्कारक ने देखा कि cocklebur के बीज उसके कुत्ते के बालों से चिपक जाते हैं
मुझे सहज रूप से लगता है कि प्रकृति, ख़ासकर मानव मस्तिष्क के काम करने के तरीके को देखकर, computing के बारे में अभी और खोजें बाकी हैं। मैं कल्पना करता हूँ कि उनका नतीजा कुछ इतना बुनियादी हो सकता है कि computing को समझने का हमारा तरीका ही बदल जाए
https://arxiv.org/pdf/1307.4186.pdf
एक महत्वपूर्ण विचार यह है कि कई मामलों में यह design की सीधी नकल नहीं बल्कि प्रेरणा होती है। Biology मानव मशीनों की तुलना में बहुत अलग constraints के तहत काम करती है, इसलिए अगर engineer या designer biological original के बहुत ज़्यादा faithful रहने की कोशिश करे, तो बात अक्सर ठीक से नहीं बनती
मैं हमेशा DNA को लाखों वर्षों में हुई programming की तरह सोचता हूँ। बस जैसे मुश्किल से चलने वाले hacky code के टुकड़े, जो बिना comments और documentation के एक-दूसरे पर चढ़ते गए हों
कोई code fragment ऐसा क्यों बन गया, इसका कारण समय के साथ पूरी तरह खो चुका है। हमें बस इतना पता है कि उसे बदलने पर आमतौर पर बुरा होता है, code के कुछ खास हिस्से कुछ खास behavior से जुड़े होते हैं, और जितना गहराई से देखते हैं, उतना ही यह spaghetti code जैसा लगता है
KMT2D gene उन genes के उदाहरणों में से एक है जो दूसरे genes की expression को regulate करते हैं। इस gene में defect होने पर अक्सर Kabuki syndrome होता है
अगर मुझे सही याद है, तो Bert Hubert की talk 'DNA: The Code of Life (SHA2017)' में IF-जैसे behavior का एक उदाहरण दिखाया गया है
https://en.wikipedia.org/wiki/KMT2D
https://en.wikipedia.org/wiki/Kabuki_syndrome
https://www.youtube.com/watch?v=EcGM_cNzQmE
पहले जवाब के संदर्भ में, YouTube के Tim Blais ने A. Leigh के research पर आधारित molecular machines के बारे में एक लत लगाने वाला educational entertainment song बनाया था
animation भी शानदार है, और यह दिखाता है कि electrochemical “switches” कैसे binary states को encode कर सकते हैं। सिद्धांततः, इससे logic gates भी बनाए जा सकते हैं
https://www.youtube.com/watch?v=ObvxPSQNMGc
https://pubs.acs.org/doi/10.1021/acs.chemrev.5b00146
https://www.nature.com/articles/s41467-021-26937-x
कुछ कंपनियां drug design में इस तरह के approach का उपयोग करना चाहती हैं। उदाहरण के लिए, “इसे तभी activate करो जब दोनों antibodies bind कर चुकी हों” जैसी condition
दिलचस्प सवाल है। genetic encoding और expression मूल रूप से probabilistic हैं। ऐसा होना ज़रूरी है, तभी evolution संभव है
दूसरी ओर, अगर CPU के basic operations में इसी स्तर की error rate हो, तो वह बहुत खराब होगा। biological circuits से logic gates बनाने वाली ऊपर की comment रोचक थी, और उल्टा यह भी जानने की उत्सुकता हुई कि क्या किसी ने ऐसी probabilistic programming language बनाई है जो cells जैसी noise level पर computation करती हो
इससे अधिक नज़दीकी उपमा शायद ऐसी hardware description language होगी जो computation के लिए analog circuits को synthesize करती हो। ऐसे circuits कुछ-कुछ analog computers जैसे होंगे, जो environment की electromagnetic radiation noise से प्रभावित होते हैं
उस अर्थ में देखें तो digital से पहले के computing era में यह बहुत बुनियादी रूप में पहले ही किया जा चुका था
अगर cell के बाहर के environment में lactose है, और cell के बाहर के environment में glucose नहीं है, तो lac operon activate होता है और lactose uptake व metabolism genes को transcribe करके while loop में प्रवेश करता है
जब तक lactose मौजूद रहता है, तब तक वह उन genes को transcribe करता रहता है
लेकिन यह DNA अकेले नहीं करता, बल्कि cell system के एक component के रूप में होता है। इस मामले में E. coli हमेशा थोड़ी मात्रा में lactose और अन्य sugar transporters बनाता है, और ये cell membrane पर sensors की तरह काम करके feedback loop trigger करते हैं। वरना cell को lactose की मौजूदगी का पता कैसे चलेगा
अगर glucose मौजूद हो, तो E. coli उसे प्राथमिकता से इस्तेमाल करता है और दूसरी sugar uptake तथा metabolism genes को downregulate कर देता है। यह सब digital की तुलना में काफी analog है, इसलिए “off” gene भी बहुत निम्न स्तर पर फिर भी transcribe हो सकता है
DNA, RAM के ज़्यादा करीब है, और CPU शायद transcriptome (DNA → mRNA) और ribosome (mRNA → protein) के ज़्यादा समान है। कुल मिलाकर, cell कुछ ऐसा चलाता है जो parallel multi-process fetch-decode-execute cycle जैसा है
programming language के नज़रिए से मैं DNA के बारे में हमेशा सोचता रहा हूँ, लेकिन मुझे यह किसी language से ज़्यादा data structure के करीब लगा है
मैं कुछ समय के लिए synthetic biology में डूब गया था और यह introductory textbook पढ़ी थी: https://www.amazon.ca/Introduction-Systems-Biology-Principle...
अगर आपने “systems engineering” या “control systems” जैसे courses में oscillators और कई engineering disciplines में आने वाले high-level control systems पढ़े हैं, तो यह किताब यह समझने के लिए अच्छी शुरुआती पुस्तक है कि ऐसे systems cells के भीतर कैसे “implement” होते हैं और काम करते हैं। यह “IF” और “WHILE” loops से कम, और “E. coli के pathfinding algorithm जैसे logic circuits RNA में कैसे implement होते हैं” से ज़्यादा संबंधित है
अगर आपकी रुचि computational biology में है, तो George Church के lectures बेहतरीन हैं
course description के अनुसार, यह course complex biological networks में sequence, structure और function के बीच संबंधों तथा quantitative और comprehensive functional genomic analysis की realistic modeling में प्रगति को कवर करता है। assignments में algorithms, statistics, databases, simulation approaches, और medicine, biotechnology, drug development, तथा genetic engineering में applications शामिल हैं
https://ocw.mit.edu/courses/hst-508-genomics-and-computation...