domingo, 13 de setembro de 2020

O equivalente da recursividade que exite na programação para a VIDA (de qualquer célula) é o ribossomo

Eu tenho uma impressão de que a vida começou com determinadas organelas.

Na computação existe uma ideia chamada de recursividade. A recursividade também pode ser exemplificada por códigos fontes em javaScript. Basicamente pode ser descrito como uma sequência de passos com um nome, onde dentro dessa sequência de passos existe um comando para se autoexecutar pela chamada de seu próprio nome. Esse conjundo de comandos pode chamar a sí mesmo infinitamente ou de acordo com o número da poda (Podando os ganhos indesejados) parar a chamada.

No caso do início da vida.

Pecebi que a organela que executa algo equivalente ao que observamos na recursividade é o ribossomo.

Ele é responsável por capturar as proteínas necessárias disponiveis no meio liquido (plasma em que está inserido) e de acordo com a leitura das bases de uma fita de DNA pode produzir outros ribossomos.

A leitura da fita depende:
da energia encontradas do meio circundante ao ribossomo.
das proteinas necessárias encontradas do meio circundante ao ribossomo.
do ribossomo que por suas propriedades e montagens. O ribossomo lê a fita e executa os comandos de montagens de novas proteinas, organelas, etc.

Portanto o ribossomo é capaz de ler trexos de fita que constroem outros ribossomos para a célula. Note que se não existir a informação de construção de ribossomos a célula não poderia se reproduzir e não poderia realizar auto manutenção. Se ribossomos podem com o tempo morrer (desnaturar) de forma natural,  e se a taxa de mortes deles for maior que a de criação então é previsto que a célula morra. A concentração de algum tipo de marcador deve estar no meio que circunda o ribossomo e a fita e esse marcador indica se é ou não a hora do ribossomo ler.

A osmose, fagocitose, respiração e outros processos de transferência de recursos da célula são da competencia de outras organelas. A membrana celular é o envólucro de todas as outras organelas e do citoplasma. Incluindo o ribossomo e a fita de DNA. A responsabilidade de obtenção de recursos do meio para o interior célula estarão sobre a membrana celular. Sobre a superficie dessa membrana celular estão organelas que controlam a entrada e a saida de moléculas. Toda a informação para a construção desses elementos celulares minimos devem estar escritos em uma fita de DNA. Por isso vejo o ribossomo como a organela das mais interessantes, pois ele lê a fita de DNA e monta todas as estruturas necessárias incluindo outros ribossomos (interpretadores de fita).
Os Ribossomos participam diretamente ou indiretamente na produção de montagem de tudo dentro da célula. A existência dessa organela é o que garante a manutenção da célula e dá capacidade de reprodução.

Será possível existir ribossomos diferentes que leem a mesma fita interpretanto uma montagem diferente e até com outras moléculas?

Se escrevermos o seguinte javaScript e salva-lo no bloco de notas com um nome ponto HTML (NOME.HTML) teremos:


<script>
    manterLimites = function(angulo)
    {
        while(angulo>=360)
        {
            angulo=angulo-360;
        }
        while(angulo<0)
        {
            angulo=angulo+360;
        }
        return angulo;
    }
    getSenCos = function(angulo)
    {  
        angulo = manterLimites(angulo);
        seno =  Math.sin(angulo * Math.PI / 180);
        cose =  Math.cos(angulo * Math.PI / 180);
        return [cose, seno];
    }
    galho = function(ctx, x1, y1, tamanho, angulo, poda)
    {
        var senCos= getSenCos(angulo)  
        var tx = x1+tamanho*senCos[0]
        var ty = y1+tamanho*senCos[1]
        ctx.lineWidth = poda*poda;
        ctx.beginPath();
        ctx.strokeStyle="#FF0000";
        ctx.moveTo(x1,y1);
        ctx.lineTo(tx,ty);
        ctx.stroke();
        if( poda>1 )
        {
            galho(ctx, tx, ty, tamanho*0.5, angulo+90,poda-1 )
            galho(ctx, tx, ty, tamanho*0.5, angulo, poda-1 )
            galho(ctx, tx, ty, tamanho*0.5, angulo-90,poda-1 )
        }
    }
    load = function()
    {
        var c = document.getElementById("myCanvas");
        var ctx = c.getContext("2d");
        galho(ctx, 250, 250, 45,   0+45, 4);
        galho(ctx, 250, 250, 45,  90+45, 4);
        galho(ctx, 250, 250, 45, 180+45, 4);
        galho(ctx, 250, 250, 45, 270+45, 4);
    }
</script>
</p>
<body onload="load();">
<canvas height="500" id="myCanvas" style="border: 1px solid #000000;" width="500">
</canvas>
O resultado:

Nenhum comentário: