2 pontos por GN⁺ 2024-01-11 | 1 comentários | Compartilhar no WhatsApp
  • É difícil ver o DNA como um código de programa executado sequencialmente, mas a expressão gênica e as vias de sinalização celular têm mecanismos regulatórios comparáveis a uma lógica do tipo IF/WHILE
  • Ativadores de transcrição e repressores de transcrição correspondem de forma aproximada a IF e WHILE, respectivamente, no sentido de que ligam ou bloqueiam a transcrição gênica conforme as condições
  • É difícil estabelecer na célula blocos independentes de entrada e saída como em chamadas de função, porque reações que acontecem no mesmo espaço podem interferir umas nas outras
  • Casos parecidos com GOTO podem ser encontrados em conexões condicionais de rede, feedforward loop e vias ramificadas, mas há a grande limitação de que o DNA não é executado de forma sequencial
  • Como os sistemas biológicos são, em geral, paralelos e analógicos, mesmo com exemplos de portas lógicas em biologia sintética, a metáfora com código de computador deve ser usada com cautela

Limites da analogia entre DNA e linguagem de programação

  • O DNA não é executado sequencialmente como código de computador, e muitas transcrições ocorrem ao mesmo tempo em paralelo
  • Uma linha de código de computador tem um significado rígido e consistente, mas o DNA codificante é traduzido em aminoácidos, e a função das proteínas surge de interações químicas complexas entre esses aminoácidos
  • É difícil entender de forma independente um trecho de DNA codificante fora do contexto da proteína que ele produz
  • Existem vias em sistemas biológicos que funcionam de modo parecido com computadores, mas essa comparação deve ser tratada com ainda mais cuidado no nível das proteínas do que no nível do DNA

Regulação gênica próxima de IF e WHILE

  • Ativadores de transcrição podem ser vistos como um exemplo semelhante a IF, pois fazem com que certos genes sejam transcritos quando estão presentes
    • Porém, o evento não termina antes que o sinal desapareça, e como o programa continua enquanto a célula estiver viva, o IF sempre funciona como parte de um loop
  • Repressores de transcrição são comparados a WHILE no sentido de que o gene é transcrito enquanto o repressor não estiver presente
  • Interferência transcricional também pode ser interpretada como algo próximo de IF ou WHILE
    • Exemplo: if(x transcribed){not y transcribed}
    • Essa interferência não é necessariamente binária e, com mais frequência, aparece como uma resposta gradual
  • Também ocorre interferência transcricional na etapa de RNA usando antisense RNA, muitas vezes fornecendo um loop de feedback negativo
    • Nesse caso, a interferência não é um análogo de IF que aconteça diretamente na etapa do DNA

Chamadas de função e vias modulares

  • É difícil encontrar uma estrutura que corresponda exatamente a uma chamada de função
    • Os eventos dentro da célula acontecem no mesmo espaço e sempre podem interferir entre si
    • As organelas podem ter características parecidas com funções por atuarem como compartimentos, mas são estruturas muito complexas, não simples dispositivos de entrada e saída
  • Algumas vias modulares podem ser comparadas de forma aproximada a chamadas de função
    • Exemplo: em apoptosis signaling, um trecho em que uma determinada entrada leva a um efeito quase constante pode ser tratado como um bloco de código
    • Se o processo entre a ativação de caspase e o vazamento de cytochrome for considerado um bloco, vários mecanismos podem ser explicados de forma mais curta
  • O processo de marcar proteínas com ubiquitin pode ser interpretado como uma chamada de função para degradação
  • O nuclear receptor, quando ativado por um ligante, desloca-se do citoplasma para o núcleo e desencadeia repressão ou ativação gênica e processos subsequentes, podendo ser visto como um exemplo de chamada de função
  • Em proteínas complexas montadas por várias subunidades, o processo de substituir uma única subunidade é comparado ao conceito de chamada de função ou composição

GOTO e vias ramificadas

  • GOTO faz sentido principalmente em código de execução sequencial, e como o DNA não é executado dessa maneira, é difícil fazer uma correspondência direta
  • Em conexões condicionais de rede, é possível encontrar estruturas parecidas com GOTO
    • Exemplo: se existe uma via A→B→C e uma conexão separada D→C, quando D é ativado ele afeta C diretamente sem passar por A e B
  • Feedforward loop e vias ramificadas podem parecer um desvio de etapas intermediárias sob certas condições
  • Houve também uma interpretação em tom de comentário de que o splicing de introns poderia ser visto como algo semelhante a um GOTO em que o ponteiro do ribossomo pula valores diferentes, mas o ponto central é que o DNA não tem uma estrutura de execução sequencial

Splicing e estruturas de baixo nível semelhantes a programação

  • Splicing alternativo é comparado a IF no sentido de que certos exons, que são trechos específicos de DNA, podem ser incluídos ou removidos do transcrito que codifica a proteína final
  • Essas comparações de baixo nível mostram semelhanças entre conceitos de programação e regulação biológica, mas é difícil tratá-las como equivalentes exatos
  • Para explicar o fluxo de informação dentro da célula, é preciso olhar não só para o DNA, mas também para o transcrito, as proteínas e as redes regulatórias

Circuitos lógicos na biologia sintética

  • Na biologia sintética, há casos de construção de portas lógicas com circuitos biológicos
  • Como revisão relacionada, é apresentada a review sobre circuitos de biologia sintética na Nature Reviews Genetics
  • Siuti et al. 2013 é apresentado como um exemplo de uso de bactérias para armazenar informação e montá-la em circuitos biológicos para processar funções lógicas
  • O programa biobricks.org é apresentado como uma tentativa de definir componentes modulares como sensores, funções lógicas e efetores

Células mais próximas de feedback analógico do que de código digital

  • As células, como muitos sistemas físicos, têm um caráter analógico, e na maioria das situações as variáveis não se dividem em valores binários 0/1
  • Na expressão gênica, quando um ativador de transcrição está presente, o gene é transcrito, mas se a concentração do ativador aumenta, o nível de expressão também aumenta até chegar a um ponto de saturação
  • Sistemas biológicos também podem apresentar comportamento de comutação
    • Certas estruturas de rede regulatória podem criar essa dinâmica
    • Cooperatividade (co-operativity), com ou sem feedback positivo, é um dos mecanismos que implementam comportamento de comutação
  • Como conceitos relacionados, são apresentados a ultrasensitivity e uma pergunta no Biology Stack Exchange sobre “é possível transformar variáveis contínuas em variáveis booleanas”

1 comentários

 
GN⁺ 2024-01-11
Opiniões no Hacker News
  • O DNA pode até não ter estruturas de programação, mas há aspectos em que ele funciona como uma rede neural. Basta olhar para “redes regulatórias gênicas” (Gene regulatory network).
    Algumas proteínas servem apenas para ativar outros genes, e esses fatores de transcrição são o núcleo das redes regulatórias ou das reações em cadeia. Eles se ligam às regiões promotoras no início de outros genes, ativando-os e dando início à produção de outras proteínas. Alguns fatores de transcrição também atuam como repressores.
    Essas redes se parecem com redes neurais no sentido de que processam informações por meio de nós interconectados — genes e proteínas — e alteram a atividade uns dos outros. Quando um fator de transcrição ativa ou reprime um gene, isso pode desencadear uma cadeia de eventos, algo parecido com a forma como neurônios ativam uns aos outros.
    https://en.m.wikipedia.org/wiki/Gene_regulatory_network

    • Como biólogo sintético, acho uma boa resposta. Dito isso, olhar para programas genéticos feitos por humanos dá uma perspectiva mais simplificada.
      Houve bastante progresso em criar, por engenharia, programas que fazem células T humanas matarem células cancerígenas-alvo condicionalmente, de acordo com a expressão de marcadores de superfície. Isso contrasta com as células CAR-T existentes que já estão no mercado (Kymriah etc.). Circuitos simples de células T com porta AND estão atualmente sendo testados em humanos.
      Hoje há várias estratégias para escrever programas de tomada de decisão celular com circuitos sintéticos. Estamos entrando em uma era em que escrevemos programas de DNA e os colocamos no corpo humano e, agora que estamos saindo de provas de conceito em bactérias para ensaios clínicos reais em humanos, fico me perguntando como fazer o pessoal de ciência da computação se interessar mais por “biologia sintética como programação”.
      https://pubmed.ncbi.nlm.nih.gov/33243890/
      https://arsenalbio.com/2023/05/16/arsenalbio-announces-prese...
    • Acho que é porque o DNA é uma estrutura de dados, não uma força física.
      Alegações do tipo “se uma certa sequência de DNA interagir com campos eletromagnéticos, gravidade, força forte/fraca com características xyz, então ocorrerão mutações ao longo do caminho abc” devem ser descartadas se não forem apoiadas por análises estatísticas reproduzíveis.
      Acho que a obsessão do setor de TI por modelos de dados empurrou as pessoas para uma pseudociência que ignora a entropia e o efeito Lindy. Estruturas podem mudar, forças físicas não. Estruturas de dados não são forças físicas; por causa da entropia e do efeito Lindy, elas são mais como modelos mentais vazados, dos quais a biologia faz coleta de lixo.
      É o pensamento de um engenheiro eletricista que acha a obsessão por desenvolvimento de software estranha e cheia de miragens estatísticas e conquistas alucinadas.
    • Em livros-texto de biologia de sistemas, essas redes normalmente são descritas como mais próximas de portas lógicas do que de redes neurais. Claro, há semelhanças.
      Redes regulatórias gênicas são um pouco mais dinâmicas do que um liga/desliga rígido, mas, por terem vários tipos de interação, como intensificadores e repressores, parecem modelar portas lógicas melhor do que uma rede neural comum.
    • Isso soa como uma arquitetura orientada a eventos. Ela emite eventos em reação a outros eventos, e quem envia eventos também é “regulado” por outros eventos.
    • Antes de saltar para uma conclusão excessivamente obscura, é bem possível que isso aconteça porque redes neurais são muito gerais.
      Por “gerais” aqui, quero dizer que elas conseguem aproximar ou modelar muitos sistemas dinâmicos capazes de composição operacional.
  • Dou uma disciplina de criatividade e inovação na universidade. Mostro aos alunos muitos exemplos de invenções que partiram da observação da natureza; por exemplo, o Velcro surgiu ao observar frutos de carrapicho grudados no pelo do cachorro do inventor.
    Tenho a intuição de que, ao observar a natureza, especialmente a forma como a mente humana funciona, ainda há descobertas a fazer sobre computação. Imagino que o resultado seria algo fundamental, que mudaria a própria maneira como entendemos a computação.

    • A forma como entendemos computação hoje também se baseia em grande parte na observação da natureza. É uma consequência natural do estudo da lógica, e essa investigação remonta à Antiguidade, quando a sofística estava se institucionalizando. Na época, quase não havia métodos sistemáticos para decidir o que era verdadeiro, e um grande critério era se algo soava plausível.
    • Existe todo um campo de otimização inspirada na natureza.
      https://arxiv.org/pdf/1307.4186.pdf
    • Penso em redes neurais convolucionais.
    • Recomendo com frequência este livro: 'Cats’ Paws and Catapults: Mechanical Worlds of Nature and People' (https://www.goodreads.com/book/show/223609.Cats_Paws_and_Cat...) mostra bem como a biologia inspira o design humano.
      Uma ideia importante é que muitos casos são mais inspiração do que cópia direta do projeto. A biologia opera sob restrições muito diferentes das máquinas humanas, então, se engenheiros ou designers tentarem ser fiéis demais ao original biológico, isso pode não dar muito certo.
  • Sempre penso no DNA como programação ao longo de milhões de anos. Uma sequência de trechos de código hacky que mal funcionam, sem comentários nem documentação.
    Por que determinado trecho de código tomou aquela forma se perdeu completamente no tempo. Tudo o que sabemos é que mudar algo geralmente é ruim, que certos blocos de código levam a certos comportamentos e que, quanto mais olhamos, mais parece código espaguete.

  • O gene KMT2D é um exemplo de gene que regula a expressão de outros genes. Quando há defeitos nesse gene, é comum ocorrer a síndrome de Kabuki
    Se minha memória estiver correta, a palestra de Bert Hubert “DNA: The Code of Life (SHA2017)” mostra um exemplo de comportamento semelhante a IF
    https://en.wikipedia.org/wiki/KMT2D
    https://en.wikipedia.org/wiki/Kabuki_syndrome
    https://www.youtube.com/watch?v=EcGM_cNzQmE

  • Em relação à primeira resposta, Tim Blais, do YouTube, criou uma música de entretenimento educativo viciante sobre máquinas moleculares, baseada na pesquisa de A. Leigh
    A animação também é ótima e mostra como “chaves” eletroquímicas podem codificar estados binários. Em princípio, isso poderia ser usado para construir portas lógicas
    https://www.youtube.com/watch?v=ObvxPSQNMGc
    https://pubs.acs.org/doi/10.1021/acs.chemrev.5b00146

    • Há um artigo de 2021 que criou uma proteína de porta lógica OR
      https://www.nature.com/articles/s41467-021-26937-x
      Algumas empresas querem usar essa abordagem no desenho de medicamentos. Por exemplo, uma condição como “ative isto apenas quando os dois anticorpos estiverem ligados”
  • Pergunta interessante. A codificação e a expressão genética são fundamentalmente probabilísticas. Isso porque a evolução precisa ser possível
    Por outro lado, se as operações básicas de uma CPU tivessem uma taxa de erro em nível parecido, seria péssimo. Achei interessante o comentário acima sobre construir portas lógicas com circuitos biológicos e, inversamente, também fico curioso se há exemplos de linguagens de programação probabilísticas que façam computação com um nível de ruído semelhante ao de células

    • A razão de existir probabilidade é que a “computação” biológica consiste em reações eletroquímicas e ciclos de retroalimentação, o que não combina muito bem com o conceito de “execução de código” em linguagens de programação
      Uma analogia mais próxima talvez seja uma linguagem de descrição de hardware que sintetiza circuitos analógicos para computação. Esses circuitos se parecem com computadores analógicos afetados pelo ruído da radiação eletromagnética do ambiente
      Nesse sentido, isso já foi feito de forma muito básica na era da computação pré-digital
    • Comparando com a taxa de erro das operações básicas de uma CPU, a evolução diz respeito a mutações quando um executável é copiado
    • Considerando o quanto a evolução é lenta e quantas vezes o DNA é copiado ou transcrito dentro de um indivíduo, a taxa de erro do processo genético deve ser, na prática, extremamente baixa
  • Se houver lactose no ambiente extracelular e não houver glicose no ambiente extracelular, o óperon lac é ativado e entra em um loop while, transcrevendo os genes de absorção e metabolismo da lactose
    Enquanto houver lactose, ele continua transcrevendo esses genes
    Mas isso não é algo que o DNA faz sozinho; acontece como um componente do sistema celular. Nesse caso, a E. coli sempre produz uma quantidade mínima de transportadores de lactose e de outros açúcares, que atuam como sensores na membrana celular e disparam ciclos de retroalimentação. Caso contrário, como a célula saberia que há lactose
    Quando há glicose, a E. coli a usa preferencialmente e reduz a regulação dos genes de absorção e metabolismo de outros açúcares. Tudo isso é bem mais analógico do que digital, de modo que até genes “desligados” ainda podem ser transcritos em níveis muito baixos
    O DNA se parece mais com RAM, e a CPU talvez se pareça mais com o transcriptoma (DNA → mRNA) e os ribossomos (mRNA → proteína). Como um todo, a célula roda algo parecido com um ciclo de buscar-decodificar-executar de múltiplos processos em paralelo

  • Sempre tive curiosidade sobre o DNA do ponto de vista de linguagens de programação, mas passei a achar que ele é mais uma estrutura de dados do que uma linguagem

    • Sempre achei que Lisp era a aproximação mais próxima do DNA
  • Fiquei por um tempo interessado em biologia sintética e li este livro introdutório: https://www.amazon.ca/Introduction-Systems-Biology-Principle...
    Se você estudou osciladores e sistemas de controle de alto nível em várias áreas da engenharia em aulas do tipo “engenharia de sistemas” ou “sistemas de controle”, este livro é uma boa introdução para entender como esses sistemas são “implementados” e funcionam dentro das células. Em vez de loops “IF” e “WHILE”, é mais algo como “como circuitos lógicos, como o algoritmo de busca de caminhos da E. coli, são implementados em RNA”

  • Se você se interessa por biologia computacional, as aulas de George Church são excelentes
    Segundo a descrição do curso, ele aborda o relacionamento entre sequência, estrutura e função em redes biológicas complexas, além de avanços na modelagem realista de análises quantitativas e abrangentes de genômica funcional. As tarefas incluem algoritmos, estatística, bancos de dados e abordagens de simulação, bem como aplicações em medicina, biotecnologia, descoberta de fármacos e engenharia genética
    https://ocw.mit.edu/courses/hst-508-genomics-and-computation...