;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Deu Tilt #4: Crispr curará doenças e aumentará pênis, mas há dilema ético

De Tilt, em São Paulo

28/03/2020 04h00Atualizada em 27/08/2020 12h31

No quarto episódio do nosso podcast de ciência e tecnologia, o "Deu Tilt" (ouça no arquivo acima o programa), o colunista Ricardo Cavallini, o Cava, conversou com Martín Bonamino, pesquisador do grupo de imunologia tumoral do INCA (Instituto Nacional do Câncer) e especialista da Fiocruz. No papo, ele explica o que é a ferramenta de edição genética Crispr e como ela vai mudar os rumos da medicina e dos tratamentos das doenças.

A edição genética em seres vivos é tão poderosa que levantam uma série que questões éticas. "A gente já teve os primeiros exemplos de crianças editadas geneticamente na China", ressalta Bonamino.

Cava pergunta se "é como brincar de Deus", porque pode levar a práticas absurdas, eugenistas, racistas ou especistas, desde escolher a cor do olho do filho a usar animais como escravos. "Exatamente, justamente por isso se pediu uma pausa para discutir as implicações e os limites éticos. Depois, se retomou. E a verdade é que hoje a gente já faz isso muito bem em laboratório há algumas décadas. Mas o que essas tecnologias fazem agora é fazer isso, ar o genoma e cortá-lo, dentro do ser vivo." (a partir de 8:20)

Por outro lado, ao responder uma pergunta enviada pelo médico Dráuzio Varella, o especialista explica como podemos combater o câncer e outras doenças graves que hoje parecem longe de uma solução eficaz. "Um vertente trabalha testando como desligar um ou outro gene afeta no crescimento do tumor. Numa segunda vertente, a gente trabalha modificando o sistema imune para fazê-lo reconhecer, da melhor maneira possível, um tumor e eliminá-lo, usando Crispr para desligar alguns genes que atrapalham o reconhecimento", detalhou. "Isso vai ajudar a gente no combate ao câncer. Essa vertente já foi testada em humanos." (a partir de 19:43)

"Poderemos até aumentar o pênis de um adulto?", pergunta Cava, em referência a uma pergunta enviada ao programa. "É bem possível, você pode mexer em genes específicos", diz o pesquisador. (a partir de 13:59)

O lance é que modificações feitas em embriões am para os filhos desse embrião. "Essa é uma das delimitações éticas que se discute hoje em dia. Seria aceitável você editar o seu gene, que vai beneficiar você e o risco é seu. Não seria aceitável você editar os seus tecidos que a gente chama de germinativos, os espermatozoides e os óvulos, que depois geram um indivíduo que carrega essa característica genética nova. Menos ainda se não houver um benefício claro comprovado", ressalta Bonamino. (a partir de 15:23)

.

Podcasts são programas de áudio que podem ser ouvidos a qualquer hora e lugar —no computador, smartphone ou em outro aparelho com conexão à internet. Os podcasts do UOL estão disponíveis em uol.com.br/podcasts e em todas as plataformas de distribuição. Você pode ouvir Deu Tilt, por exemplo, no Spotify, na Apple Podcasts, no Deezer e no YouTube.

.

Referências citadas

  • Dráuzio Varella
  • Filme: Gattaca, uma Experiência Genética (1997)
  • Livro: O Gene, de Siddhartha Mukherjee e Laura Teixeira Motta