;(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

Para nosso bem, edição genética poderá combater resistência a antibióticos

Gregor Fischer/Getty Images
Imagem: Gregor Fischer/Getty Images

Daniel Dieb

Colaboração para Tilt

16/12/2019 21h05

O Crispr é uma ferramenta de edição genética que trouxe avanços poderosos para a medicina. Com ele, tornou-se mais rápido, fácil e preciso desativar, corrigir ou substituir genes. Agora pesquisadores da Universidade da Califórnia (UC) em San Diego querem usá-lo para combater uma das maiores ameaças à saúde humana: a resistência a antibióticos.

Antibióticos são usados tanto para o tratamento de humanos quanto para a produção de comida animal. Essas aplicações levaram a um crescimento de bactérias resistentes a antibióticos no meio ambiente. Como um ciclo, as bactérias são transmitidas a humanos, o que aumenta o número de pessoas em que o organismo é resistente a determinados tipos de antibióticos.

A OMS (Organização Mundial da Saúde) afirma que pelo menos 700 mil pessoas morrem devido à resistência antibiótica. Mantido a média atual, estima-se que o número de mortes pode chegar a 10 milhões por ano até 2050.

Tendo em vista o desafio, a equipe de pesquisadores, liderados por Andrés Valderrama, da Escola de Medicina, e por Surashree Kulkarni, do departamento de Ciências Biológicas, desenvolveu um sistema que aumenta drasticamente a eficiência em desativar bactérias que produzem genes resistentes a antibióticos. Em artigo publicado em dezembro na revista "Nature Communications", eles detalham como funciona o sistema desenvolvido, chamado de Pro-AG.

Trabalhando com a E.coli, bactéria presente no intestino humano e que pode causar intoxicação alimentar, eles testaram o sistema, chamado de Pro-AG — algo como "genética pró-ativa", em tradução livre —, para quebrar o gene que gera resistência a antibióticos.

A eficiência do novo método foi demonstrada pelos pesquisadores em experimentos com um alto número de plasmídeos com genes resistentes à ampicilina, um tipo de antibiótico usado em casos de infecção por E.coli.

Os plasmídeos são formas circulares de DNA que se replicam independentemente do genoma bacterial. Não só contêm genes resistentes a antibióticos, como podem transferir a resistência para outras bactérias. É desafio, portanto, impedir que esses genes se espalhem.

Os métodos usados atualmente funcionam na base do corta e destrói. O problema é que se alguns dos plasmídeos permanecerem intactos, os genes resistentes a antibióticos também estarão intactos.

Já o Pro-AG funciona na base do "corta e insere". Isto é, ele quebra a atividade dos genes resistentes e insere um mecanismo de auto-amplificação. Ou seja, ele funciona como um loop. À medida que ele quebra um gene de um plasmídeo, outros serão quebrados em outros plasmídeos.

Eventuais aplicações em humanos incluem tratamentos em pacientes que sofrem de infecções bacterianas crônicas. Cientistas afirmam que a tecnologia pode também ser eficiente em remover linhagens de resistentes a antibióticos em ambientes com esgoto e viveiros de peixes. Isso porque o Pro-AG edita seus alvos, e não os destrói, o que permite uma série de outras aplicações em biotecnologia e biomedicina.

"A alta eficiência e a natureza precisa do Pro-AG devem permitir uma variedade da aplicações práticas, incluindo a disseminação desse sistema por meio de populações de bactérias usando um dos vários sistemas para reduzir a prevalência de resistência antibiótica no ambiente", disse à revista Ethan Bier, diretor de ciências do Instituto Tata para Genética e Sociedade (TIGS) da UC San Diego.