Simulações Interativas Para Biofísico-química com JSPlotly & GSPlotly

  Para ilustrar o potencial de uso do JSPlotly para Bioquímica e áreas correlatas, seguem alguns exemplos de simulações e análise de dados, e cujos gráficos são frequentemente encontrados em livros-texto e conteúdos afins. Para um melhor aproveitamento de cada tema, experimente seguir as sugestões para manipulação paramétrica dos códigos em cada tema.


Instruções

1. Escolha um tema;
2. Clique no gráfico correspondente;
3. Clique em "Add Plot";
4. Use o mouse para interatividade e/ou edite o código. 

Lembrete: o editor usa desfazer/refazer infinitos no código (Ctrl+Z / Shift+Ctrl+Z) !

1 Equilíbrio ácido-básico e sistema tampão

Contexto:

  O exemplo ilustra a adição de base num sistema contendo um ácido fraco e sua base conjugada. A equação de titulação refere-se a um ácido triprótico, o ácido fosfórico do tampão homônimo, mas serviria igualmente para outros tantos, como os presentes no ciclo de Krebs (citrato, isocitrato).

Equação:

\[ fa= \frac{1}{1 + 10^{pKa1 - pH}} + \frac{1}{1 + 10^{pKa2 - pH}} + \frac{1}{1 + 10^{pKa3 - pH}} \] Onde, fa = fração de ácido (grupos protonáveis)


Sugestão:

"A. Convertendo a curva de tampão fosfato (triprótico) para tampão bicarbonato (diprótico)"

1. Altere os valores de pKa para o tampão bicarbonato: pKa1 =      6.1, e pKa2 = 10.3;
2. Coloque um valor muito grande para pKa3 (ex:1e20). 
3. Clique em "add plot".

Explicação: pKa é um termo que representa o logaritmo de uma constante de dissociação (-log[Ka]). Com um valor extremo, o denominador torna-se igualmente imenso, anulando o termo que leva pKa3. Em JavaScript e outras linguagens, "e" representa a notação para potência de 10.

"B. Convertendo a curva de tampão bicarbonato para acetato"

1. Basta repetir o procedimento acima, com pKa1 = 4.75, e eliminando-se pKa2.


2 Rede de carga líquida em peptídios

Contexto:

  O código refere-se à rede de carga líquida presente numa sequência qualquer de resíduos de aminoácidos. Aqui é ilustrada a angiotensina II, importante peptídio para regulação da pressão arterial e equilíbrio eletrolítico, e cuja enzima conversora está associada ao mecanismo de invasibilidade celular por SARS-CoV-2.

Equação:

  Para essa simulação não há uma equação direta, já que o algoritmo precisa decidir a carga em função da natureza básica ou ácido do resíduo em determinado valor de pH (observe o script). Assim:

\[ q = \begin{cases} -\dfrac{1}{1 + 10^{pK_a - pH}} & \text{(grupo ácido)} \\\\ \dfrac{1}{1 + 10^{pH - pK_a}} & \text{(grupo básico)} \end{cases} \]

Onde,

  • pKa = valor do antilogarítmo de base 10 para a constante de equilíbrio de dissociação do ácido, Ka (ou log[Ka]).


Sugestão:

1. Selecione a sequência peptídica abaixo, e observe a distribuição de cargas:
  
"Ala,Lys,Arg,Leu,Phe,Glu,Cys,Asp,His"

2. Simule a condição de pH do estômago ("const pH = 1.5"), e verifique a alteração de cargas no peptídio. 

3. Selecione um peptídio fisiológico (oxitocina, por ex), observe sua carga no sangue (pH 7.5), e reflita sobre seu potencial de interação eletrostática com componentes celulares.

"Cys,Tyr,Ile,Gln,Asn,Cys,Pro,Leu,Gly"  - oxitocina


3 Interação de oxigênio com mioglobina e hemoglobina

Contexto:

  A molécula de oxigênio pode combinar-se ao grupo heme de mioglobina e hemoglobina de forma distinta, em função da cooperatividade exibida nesta última frente à sua estrutura quaternária. O modelo que segue exemplica essa interação, por uso da equação de Hill.

Equação:

\[ Y= \frac{pO_2^{nH}}{p_{50}^{nH} + pO_2^{nH}} \]

Onde

  • Y = grau de saturação de oxigênio na proteína;
  • pO\(_{2}\) = pressão de oxigênio;
  • p\(_{50}\) = pressão de oxigênio a 50% de saturação;
  • nH = coeficiente de Hill para a interação;


Sugestão:

1. Rode o aplicativo ("add plot"). Veja que o valor de "nH" da constante de Hill é "1", ou seja, sem efeito de cooperatividade.

2. Agora substitua o valor de "nH" pelo coeficiente de Hill para a hemoglobina, 2.8, e rode novamente !


4 Efeito de Bohr em hemoglobina (pH)

Contexto:

  Algumas condições fisiológicas ou patológicas podem alterar a afinidade de ligação do oxigênio com a hemoglobina, tais como a temperatura, alguns metabólitos (2,3-BPG), e o teor hidrogeneiônico da solução.

Equação:

\[ Y(pO_2) = \frac{{pO_2^n}}{{P_{50}^n + pO_2^n}}, \quad \text{com } P_{50} = P_{50,\text{ref}} + \alpha (pH_{\text{ref}} - pH) \]
Onde,

  • Y = saturação da hemoglobina,
  • pO\(_{2}\) = pressão parcial de oxigênio (em mmHg),
  • P\(_{50}\) = pressão de O\(_{2}\) na qual a hemoglobina está 50% saturada,
  • P\(_{50,ref}\) = 26 mmHg (valor padrão),
  • \(\alpha\) = 50 (intensidade do efeito de Bohr),
  • pH\(_{ref}\) = 7,4,
  • n = 2,8 = coeficiente de Hill para a hemoglobina.

5 Ponto Isoelétrico em Proteínas

Contexto:

  O script para esta simulação baseia-se na distribuição da rede de cargas para um polieletrólito, e a identificação do valor de pH em que essa rede é nula, ou seja o ponto isoelétrico (ou isoiônico), pI. O exemplo utiliza a sequência primária da lisozima, hidrolase que atua no rompimento da parede microbiana.

Equação:

\[ q_{\text{net}}(pH) = \sum_{i=1}^{N} \left[ n_i \cdot q_{B_i} + \frac{n_i}{1 + 10^{pH - pK_{a_i}}} \right] \]
Onde,

  • qnet = carga líquida total;
  • qB$_{i} = carga da forma básica para o resíduo i (por exemplo, +1 para Lys, 0 para Asp);
  • n\(_{i}\) = número de grupos do resíduo i.

Sugestão:

"Descobrindo o pI para outras proteínas"

1. Pode-se verificar a titulação de qualquer outra proteína ou sequência peptídica por simples substituição da sequência primária contida no código. Uma forma ascertiva de realizar essa substituição envolve:
  a. Procurar a sequência "FASTA" da proteína no NCBI ("https://www.ncbi.nlm.nih.gov/protein/") - ex: "papain";
  b. Clicar em "FASTA" e copiar a sequência 1a. obtida;
  c. Colar a sequência num site para quantificação de resíduos (ex: "https://www.protpi.ch/Calculator/ProteinTool");
4. Substituir a sequência no código. 


6 Catálise e inibição enzimática

Contexto:

  A simulação visa oferecer uma equação geral para estudos de inibição enzimática, que contemple os modelos competitivo, incompetitivo e competitivo (puro ou misto), também permitindo o estudo de catálise enzimática na ausência de inibidor.

Equação:

\[ v=\frac{Vm*S}{Km(1+\frac{I}{Kic})+S(1+\frac{I}{Kiu})} \]
Onde

  • S = teor de substrato para reação;
  • Vm = velocidade limite da reação (nos livros, velocidade máxima);
  • Km = constante de Michaelis-Mentem;
  • Kic = constante de equilíbrio de dissociação de inibidor para modelo competitivo;
  • Kiu = constante de equilíbrio de dissociação de inibidor para modelo incompetitivo


Sugestão:

"A. Catálise enzimática na ausência de inibidor."
1. Basta rodar o aplicativo com a equação geral. Veja que os valores para Kic e Kiu estão elevados (1e20). Dessa forma, com "constantes de dissociação" alta, a interação do inibidor com a enzima é irrelevante, retornando o modelo à equação clássica de Michaelis-Mentem.
2. Experimente alterar os valores de Vm e Km, comparando gráficos.
3. Use o recurso de coordenadas geográficas da barra de ícones ("Toggle Spike Lines"), para consolidar o significado matemático de Km, bem como observar o efeito de valores distintos desse sobre a visualização do gráfico.

"B. Modelo de inibição competitiva."
1. Para observar ou comparar o modelo michaeliano com o de inibição competitiva, basta substituir o valor de Kic para um número consistente (ex: Kic= 3).

"C. Modelo de inibição incompetitiva."
1. A mesma sugestão acima serve para o modelo incompetitivo, desta vez substituindo o valor para Kiu.
 
"D. Modelo de inibição não competitiva pura."
1. Neste modelo, a simulação dá-se por valores iguais para Kic e Kiu.

"E. Modelo de inibição não competitiva mista."
1. Para este modelo, basta alocar valores distintos para Kic e Kiu.


7 Estabilidade termodinâmica de ácidos nucleicos

Contexto:

  Diversos fatores contribuem para a estabilidade termodinâmica de biopolímeros, estabilizantes ou desestabilizantes. Esta simulação trata de uma curva de desnaturação térmica para DNA na presença ou não de alguns desses compostos: trealose (osmólito estabilizante), e cloreto de guanidina (desestabilizante).

Equação:

\[ y(T) = \frac{1}{1 + e^{-\frac{T - T_m}{\beta}}} \]

Onde,

  • y(T): fração de DNA desnaturado a uma dada temperatura T;
  • Tm: temperatura de transição (melting, temperatura para 50% das moléculas em fita dupla, e 50% em fita simples);
  • \(\beta\): parâmetro que ajusta a inclinação da curva (afetado por trehalose e guanidina).

Obs:

  1. Trehalose como estabilizante (reduz \(\beta\));
  2. Guanidina como desnaturante (aumenta \(\beta\));

Sugestão:

1. Experimente testar várias condições envolvidas na simulação, como:
  a) variação de Tm;
  b) variação do parâmetro $\beta$;
  c) variação do teor de trealose;
  d) variação do teor de cloreto de guanidina.

8 Equação de van der Waals para gases ideais

Contexto:

  Uma adaptação que relaciona as quantidades termodinâmicas de pressão, volume e temperatura para gases ideais, é a equação de van der Waals. Nessa são computados coeficientes que estimam a existência de um volume e de interações inter-partículas. Dessa forma, a equação de van der Waals corrije a de gases ideais considerando um termo para compensação de forças intermoleculares (a/V\(^{2}\)) e o volume disponível, esse descontando o volume ocupado pelas próprias moléculas do gás.
  Na simulação é oferecida uma interatividade adicional pela presença de sliders (controles deslizantes) para temperatura, e para os coeficientes de volume finito (b) e interação entre partículas (a).

Equação:

\[ P = \frac{RT}{V - b} - \frac{a}{V^2} \]

  • P = pressão do gás (atm);
  • V = volume molar (L);
  • T = temperatura (K);
  • R = 0,0821 = constante dos gases ideais (L·atm/mol·K);
  • a = constante de atração intermolecular (L\(^{2}\)·atm/mol$^{2})
  • b = constante de volume excluído (L/mol)

Sugestão:

1. Experimente variar os parâmetros da equação por meio do "slider" para temperatura, bem como para os coeficientes "a e b".
2. Discorra sobre qual dos coeficientes possui maior efeito no perfil da curva, e a razão para isso.


9 Equilíbrio de produção de ATP a partir de reagentes, temperatura, e pH

Contexto:

  A produção de ATP intracelular envolve a relação clássica de equilíbrio químico entre reagentes e produtos em função da temperatura de reação, e ajustada para determinado valor de pH. Variando-se um e/ou outro teor de reagente, ou parâmetro físico-químico, é possível quantificar o produto pela reação termodinâmica que segue:

Equação:

\[ \Delta G = \Delta G^{\circ'} + RT \ln\left(\frac{[\text{ADP}] \cdot [\text{P}_i]}{[\text{ATP}]}\right) + 2{,}303 \cdot RT \cdot n_H \cdot \text{pH} \]

Onde,

  • \(\Delta\)G = energia de Gibbs da reação (positivo para síntese espontaneamente desfavorável, kJ/mol);
  • \(\Delta\)G\(^{o'}\) = 30,5 kJ/mol energia de Gibbs padrão biológica para a síntese de ATP;
  • R = 8,314 J/mol/K (constante geral dos gases);
  • T=310 K (temperatura fisiológica);
  • nH\(^{+}\) = 1 (número de prótons envolvidos na reação);
  • [ADP], [Pi], [ATP] = concentrações molares de reagentes e produto

Sugestão:

1. Altere as quantidades envolvidas na expressão, e compare com visualizações precedentes. Exemplificando, temperatura, pH, e teores de ADP e Pi.

10 Variação da energia de Gibbs com a temperatura

Contexto:

  A relação de Gibbs-Helmholtz prevê que a energia de Gibbs varia de modo não linear com a temperatura, nas reações que envolvem mudança na capacidade calorífica do sistema (\(\Delta\)Cp). Essa forma expandida da equação de Gibbs para capacidade calorífica variável é apresentada em diversos fenômenos bioquímicos, tais como na transição de fases da estrutura de biomembranas submetidas à um desafio de compostos, ou na mudança conformacional que acompanha a estrutura proteica sob aquecimento. \

Equação:

\[ \Delta G(T) = \Delta H^\circ - T\,\Delta S^\circ + \Delta C_p \left(T - T_0 - T \ln\left(\frac{T}{T_0}\right)\right) \]

Onde,

  • \(\Delta\)G(T) = energia de Gibbs da reação em cada valor de temperatura, kJ/mol);
  • \(\Delta\)H\(^{o}\) = entalpia padrão da reação a T\(_{0}\), normalmente 298 K (J/mol);
  • \(\Delta\)S\(^{o}\) = entropia padrão da reação a T\(_{0}\);
  • \(\Delta\)Cp = variação da capacidade calorífica da reação (J/mol·K), assumida constante com a temperatura;
  • T = temperatura de interesse (K);
  • T\(_{0}\) = temperatura de referência, geralmente 298 K.
  • R = 8,314 J/mol/K (constante geral dos gases);

Sugestão:

1. Experimente variar um ou mais parâmetros da expressão;
2. Teste o comportamento da curva de Gibbs em uma temperatura de referência elevada (simulação para organismo extremófilo);
3. Simule a situação onde a variação da capacidade calorífica é nula

11 Espectroscopia de impedância eletroquímica (EIS)

Contexto:

      A espectroscopia de impedância eletroquímica (EIS) é uma técnica analítica que mede a resposta de um sistema eletroquímico a uma perturbação senoidal de pequena amplitude (ex: 5-10 mV), aplicada em uma ampla faixa de frequências (ex: 100 kHz-1mHz). A EIS permite obter-se informações sobre processos interfaciais, como transferência de carga, difusão de íons e formação de filmes passivos, por meio da análise da impedância complexa do sistema. Trata-se de uma técnica não destrutiva, amplamente utilizada em áreas como corrosão, baterias, células a combustível, biossensores e revestimentos protetores.

Equação:

      Um modelo eletroquímico de impedância (EIS) com componentes típicos de circuitos equivalentes constitui o de Randles modificado: resistor série Rs, um resistor Rp em paralelo com um CPE (Elemento de Fase Constante), e um elemento Warburg. Uma representação comum para EIS é o gráfico de Nyquist, em que o eixo real representa resistência (Zre) e o eixo imaginário a reatância negativa (−Zim). O formalismo envolvido está na equação abaixo:

\[ Z_{\text{total}}(\omega) = R_s + \left[ \left( \frac{1}{R_p} + Q (j\omega)^n \right)^{-1} \right] + \frac{\sigma}{\sqrt{\omega}} (1 - j) \]

Onde:

  • Z\(_{total}\) = impedância total em determinada frequência ;
  • \(\omega\) = Frequência angular (rad/s), \(\omega\)=2πf ou \(\omega\)=2πf;
  • R\(_{p}\) = Resistência ôhmica (resistência da solução eletrolítica, fios, contatos etc.) ;
  • R\(_{p}\) = Resistência de polarização (associada a processos de transferência de carga, como reações eletroquímicas);
  • Q = Constante associada ao elemento de fase constante (CPE), substitui um capacitor ideal para representar comportamentos não ideais ;
  • n = Expoente do CPE, entre 0 e 1; define o grau de idealidade do comportamento capacitivo (n = 1: capacitor ideal; n < 1: dispersão);
  • \(\sigma\) = Coeficiente de Warburg, associado à difusão de íons no sistema eletroquímico ;
  • j = Unidade imaginária, j\(^{2}\) = −1;
      Um modelo eletroquímico de impedância (EIS) com componentes típicos de circuitos equivalentes constitui o de Randles modificado: resistor série Rs, um resistor Rp em paralelo com um CPE (Elemento de Fase Constante), e um elemento Warburg. Uma representação comum para EIS é o gráfico de Nyquist, em que o eixo real representa resistência (Zre) e o eixo imaginário a reatância negativa (−Zim).

Sugestão

1. Verifique o efeito de Rs no gráfico, anulando o seu valor (resistência da solução);
2. Observe a deformação do semicírculo variando os valores do elemento de fase constante (ex: Q = 1e-3; n = 0.6 - dispersão do comportamento capacitivo); 
2.  Experimente combinar outros valores dos parâmetros do cabeçalho do código, para evidenciar situações correntes em eletroanálise: Rs, Rp, Q, n, e sigma;
3. Reduza o modelo de Warburg com elemento de fase constante a um modelo de Randles simples, e formado apenas por 2 resistores em série, o segundo em paralelo com um capacitor ideal, e sem difusão de Warburg (sigma = 0; n = 1).

12 Voltametria cíclica

Contexto:

  A voltametria cíclica (VC) é uma técnica eletroanalítica para caracterização de processos redox interfaciais (eletrodo-solução). Quando utilizado um analito padrão em equilíbrio quantitativo entre as formas oxidada e reduzida, o gráfico resultante adquire um perfil incomum, e denominado duck shape, ou forma de pato. Isso decorre do formato peculiar frente a uma varredura potenciométrica bidirecional sobre um conjunto de eletrodos por um potenciostato, e resultando em ciclos de oxidação e posterior redução (aplicação de potenciais positivos seguido de negativos). A forma, o valor e a distância entre os picos resultantes permitem identificar e caracterizar o analito, bem como seus processos redox envolvidos no experimento.

Equação:

  Embora o formalismo para voltametria cíclica seja complexo e envolva a solução de equações diferenciais ordinárias (bem como as técnicas eletroanalíticas, de modo geral), estando distante do objetivo deste material, pode-se resumir o fluxo de corrente resultante pela equação de Buttler-Volmer que segue:

\[ j = j_0 \left[ \exp\left(\frac{\alpha n F (E - E^0)}{RT}\right) - \exp\left(\frac{-(1 - \alpha) n F (E - E^0)}{RT}\right) \right] \] Onde:

  • j = densidade de corrente;
  • j\(_{0}\) = corrente de troca;
  • \(\alpha\) = coeficiente de transferência de carga;
  • E = potencial aplicado ao eletrodo;
  • E\(^{0}\) = potencial padrão do eletrodo;
  • n = número de elétrons;
  • F = constante de Faraday (96485 C·mol⁻¹)
  • R = constante geral dos gases (8.314 J·mol⁻¹·K⁻¹);
  • T = temperatura
  Para um modelo de difusão de eletroanalito e acúmulo na superfície eletródica, a equação geral para a condição de contorno onde a taxa de conversão redox é proporcional à corrente de difusão, pode ser representada pela equação da 2a. Lei de Fick para transporte de massa:

\[ \frac{\partial C(x,t)}{\partial t} = D \frac{\partial^2 C(x,t)}{\partial x^2} \]

Onde:

  • C(x,t) = concentração da espécie eletroanalítica (mol/cm³), em função da posição x e do tempo t;
  • D = coeficiente de difusão da espécie (cm²/s);
  • t = tempo (s);
  • x = distância da superfície do eletrodo (cm);
  • \(\delta\) = notação para derivada parcial.
   O equilíbrio químico da reação redox é dado pela razão entre as concentrações da forma oxidada e reduzida na interface eletrodo/solução quando o sistema está em equilíbrio (ou quase-equilíbrio), conforme a equação de Nernst:

\[ E = E^0 + \frac{RT}{nF} \ln \left( \frac{[\text{Ox}]}{[\text{Red}]} \right) \]

  A corrente resultante é obtida pela Lei de Faraday:

\[ i(t) = n F A D \left. \frac{\partial C(x,t)}{\partial x} \right|_{x=0} \] Onde:

  • A = área de superfície eletródica (cm²);
  • i(t) = corrente no tempo t (A, Àmpere).

Simulador de Voltametria Cíclica

  Para ilustrar o potencial da plataforma JSPlotly/GSPlotly para o desenvolvimento de experimentos virtuais complexos, segue um simulador de voltametria cíclica resultante dos procedimentos acima (bem como de algumas horas de engenharia de prompt!!).
  O exemplo ilustra um comportamento típico em voltametria cíclica (e o curioso duck shape), e contempla uma modelagem de difusão e acúmulo de espécies eletroativas próximo à superfície do eletrodo. O código utiliza uma solução numérica para obter a densidade de corrente ao longo do tempo, considerando os efeitos da varredura cíclica do potencial aplicado, o transporte de massa, e a cinética da reação.
  Em suma, resolve numericamente a equação de Fick com condição de contorno dinâmica, aplica a equação de Nernst na fronteira (superfície do eletrodo) para determinar a conversão entre espécies, usa o método das diferenças finitas ou esquema explícito para avançar no tempo, e obtém a corrente aplicando a Lei de Faraday, pela derivada do fluxo na interface.
  Achou complexo ? Então que tal: o código une Fick (transporte) e Nernst (equilíbrio redox local) para modelar com precisão a forma do voltamograma, obtendo-se uma simulação física com realismo significativo para voltametria cíclica.


Sugestão:

1. Observe o quantidade de valores ao início do código, tangíveis a uma "manipulação paramétrica". Procure saber o que representam, e busque variar seus valores de modo consciente, objetivando agregar valor ao aprendizado da simulação. Essa é a alma da "manipulação paramétrica" que envolve o "ensino reprodutível" !!

13 Diagramas e fluxogramas

Contexto: Diagrama

      Pela natureza da biblioteca Plotly.js, também é possível a geração de códigos no JSPlotly sem o envolvimento de uma equação, tal como para representação de diagramas e fluxogramas, entre outros. O exemplo abaixo ilustra uma representação do ciclo de Krebs, e o seguinte um fluxograma experimental.

Sugestão:

1. Experimente reposicionar melhor enzimas e metabólitos, apenas clicando e arrastando os termos;
2. Experimente substituir os nomes que estão no código para a produção de outro ciclo metabólico, como o ciclo da ureia.

Contexto: Fluxograma

Sugestão:

1. Reposicione termos e conectores com arraste de mouse;
2. Para um fluxograma diferente no conteúdo, modifique os termos no código;
2. Para um fluxograma diferente no formato, altere as características de fonte e conectores na constante "annotations".


<>

Análise de Dados

14 Inserção de dados do usuário

Contexto

  Por vezes é interessante trabalhar-se com os próprios dados discretos, buscando-se uma relação de tendência, matemática ou simplesmente visual, para a relação de variáveis. Segue um exemplo de gráfico interativo com dados do usuário.


Sugestão:

1. Experimente alterar os dados inseridos, sobrepondo ou não o gráfico;
2. Experimente alterar a representação de dados em "mode" e "type", para pontos, linhas, pontos+linhas, barras.


15 Carregamento de arquivo para análise

Contexto - Arquivo CSV

  Por vezes, há necessidade de se analisar resultados referentes a um conjunto de dados presente numa planilha. Para essa situação, o exemplo a seguir ilustra o carregamento de dois vetores de dados a partir de um arquivo CSV (comma separated value), formato comumente utilizado em exportação/importação em planilhas eletrônicas, e seu gráfico resultante.

Instruções:

  • 1 Clique em add plot e selecione um arquivo CSV no botão browse superior que é apresentado. Nota: variável X na 1a. coluna do arquivo, e variável Y na 2a. coluna;
    1. Clique em add plot novamente para a visualização do gráfico resultante.
1. Experimente outros arquivos CSV;
2. Varie os aspectos do gráfico, como tipo, cor, tamanho do marcador, etc.

16 Ajuste linear de dados

Contexto:

  Em diversas situações da pesquisa experimental, faz-se necessário correlacionar os dados de uma variável dependente com uma variável preditora frente à equação que segue.

Equação:

\[ y = \alpha x + \beta + \varepsilon \] Onde:

  • y = variável dependente;
  • x = variável independente;
  • \(\alpha\) = inclinação da reta ajustada (slope);
  • \(\beta\) = intercepto da reta ajustada;
  • \(\epsilon\) = erro da medida.
  Pode-se obter os parâmetros de inclinação e intercepto por alguns procedimentos, como mínimos quadrados, álgebra matricial, ou por somatórias simples. Nesse último caso, o cálculo de parâmetros e de erro pode ser computado como segue:

\[ \alpha = \frac{n \sum x_i y_i - \sum x_i \sum y_i}{n \sum x_i^2 - \left( \sum x_i \right)^2} \]

\[ \beta = \frac{\sum y_i - \alpha \sum x_i}{n} \]

\[ \hat{y}_i = \alpha x_i + \beta \]

\[ \varepsilon_i = \left| y_i - \hat{y}_i \right| \]

  Uma representação para ajuste linear com dados arbitrários é fornecida abaixo:


Sugestão:

1. Apresente os pontos sobrepostos ou não à reta do ajuste. Para a sobreposição, escolha "mostrarPontos = true" e "mostrarReta = true";
2. Altere os dados e realize novo ajuste, para obtenção de outros parâmetros da reta.

17 Regressão polinomial

Contexto:

  Em algumas situações, o ajuste linear não confere uma tendência adequada para modelagem de dados experimentais, o que suscita o emprego de outros modelos, tais como exponencial, hiperbólico, logarítmico, de potência, e polinomial. Tendências polinomiais são comuns em fenômenos naturais, com o tratamento matemático dos dados ocorrendo por diferentes métodos, como somatórias simples, mínimos quadrados, ou álgebra linear. Segue um exemplo de regressão polinomial com graus ajustáveis no código.

17.1 Equação

  A minimização de erros para a curva polinomial é obtida por uma regressão por mínimos quadrados generalizada, e aplicação de matriz de Vandermonde, como segue.
  Seja os vetores x=[x\(_{1}\),x\(_{2}\),…,x\(_{n}\)] e y=[y\(_{1}\),y\(_{2}\),…,y\({_n}\)], deseja-se ajustar o polinômio:

\[ y = \beta_0 + \beta_1 x + \beta_2 x^2 + \cdots + \beta_g x^g \] | Dessa forma, elabora-se a matriz de Vandermonde como:

\[ X = \begin{bmatrix} 1 & x_1 & x_1^2 & \cdots & x_1^g \\\\ 1 & x_2 & x_2^2 & \cdots & x_2^g \\\\ \vdots & \vdots & \vdots & & \vdots \\\\ 1 & x_n & x_n^2 & \cdots & x_n^g \end{bmatrix} \]

  Para encontrar os coeficientes \(\beta\) que minimizem o erro quadrático, soluciona-se o sistema linear em sequência:

\[ \boldsymbol{\beta} = (X^T X)^{-1} X^T \mathbf{y} \]

Onde:

  • T representa a matriz transposta

Sugestão:

1. Experimente o grau 1 para o polinômio, ou seja, uma redução do tratamento ao ajuste linear;
2. Altere a formatação de rótulos, cores, tamanhos, etc, no código;
3. Sobreponha alguns ajustes, edite e reposicione a legenda;
4. Teste o código com outro vetor de dados.

18 Regressão multilinear

Contexto:

  Ajuste linear múltiplo é de grande utilidade quando se deseja prever um comportamento em função de duas ou mais variáveis preditoras. O procedimento envolve uma matriz de projeto (ou operador de projeção) similar à matriz de Vandermonde.

Equação:

  A solução analítica para a matriz de projetos envolve resolver uma matriz de coeficientes \(\beta\) para um conjunto de valores preditores do vetor de resposta y, como segue:

\[ y_i = \beta_0 + \beta_1 x_{1i} + \beta_2 x_{2i} + \cdots + \beta_p x_{pi} + \varepsilon_i \]

\[ \mathbf{y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon} \]

\[ \hat{\boldsymbol{\beta}} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{y} \]

Onde: - \(\beta\) = vetor de coeficientes; - y = vetor de respostas; - X = matriz de projeto; - \(\epsilon\) = ruído aleatório

  Dessa forma, valores preditos e erro associado são obtidos por:

\[ \hat{\mathbf{y}} = \mathbf{X} \hat{\boldsymbol{\beta}} \] \[ \mathbf{e} = \mathbf{y} - \hat{\mathbf{y}} \]

  Por óbvio, a representação gráfica para um ajuste multilinear está limitada a duas variáveis independentes, x1 e x2, além da variável resposta (gráfico 3D), embora o cálculo matricial permita diversas variáveis preditoras (espaço hiperdimensional). Tangente à primeira situação, segue um exemplo.

Instruções - 1. Observer que há um flag booleano (mostrarAjuste) ao início do código: false para dados somente, e true para o ajuste. - 2. Pode-se clicar em add plot para visualizar os dados com o flag em false, seguido de outro add plot com o flag em true.


  Rotacione o gráfico e observe a superfície em torno dos pontos. Diferente de um ajuste linear, os pontos estão distribuídos de forma não contínua no espaço.

Sugestão:

1. Resultados de QSAR ("Quantitative Structure-Activity Relationship") utilizam análise por ajuste multilinear para identificar a força das variáveis preditoras. Experimente na internet um conjunto de dados que possua 2 variáveis (ex: concentração, pH, composto A, B, etc.)
2. Para mais variáveis preditoras, veja o código que segue !!

18.1 Contexto: Ajuste linear múltiplo com 3 ou mais variáveis preditoras

  Embora o JSPlotly tenha sido concebido para a produção de gráficos e mapas interativos com uso da biblioteca Plotly.js sobre os ombros da linguagem JavaScript, essa extende as possibilidades de aplicação além das representações gráficas. Um exemplo disso permeia o código que segue, para um ajuste multilinear para uma situação com 4 variáveis preditoras.

Sugestão:

1. Experimente variar o número de preditores (xi). Para isso:
  a. Sem quiser reduzir, basta retirar o(s) vetor(res) desejados, e corrigir seu quantitativo na linha: "const X = x1.map((_, i)";
  b. Se quiser aumentar, acrescente um novo vetor na linha correspondente, e atualize o quantitativo no mapeamento de "const X = x1.map((_, i)".

19 Metodologia de Superfície de Resposta (MSR)

  Uma variação de ajuste multilinear envolve a metodologia de superfície de resposta, comumente linear (plano) ou quadrática (curvilinear), aplicada em modelagem e otimização de processos experimentais com múltiplas variáveis independentes. Seu objetivo é ajustar uma equação matemática que represente a relação entre os fatores experimentais e a variável resposta, permitindo prever comportamentos e identificar condições ótimas.
  Para experimentos com dois fatores, utiliza-se comumente um modelo quadrático de segunda ordem, o qual permite representar superfícies com curvatura. A ideia central do experimento é selecionar valores e seus códigos (-1,0,1), representando, respectivamente, uma quantidade abaixo, uma quantidade média, e uma acima, para determinada variável preditora.

Equação:

  O modelo geral quadrático para 2 fatores é representado por:

\[ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_{11} x_1^2 + \beta_{22} x_2^2 + \beta_{12} x_1 x_2 + \varepsilon \]

  Com a forma matricial do modelo representada por:

\[ \mathbf{y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon} \]

  E a estimativa dos coeficientes \(\beta\) por mínimos quadrados, de modo similar ao ajuste multilinear, por:

\[ \hat{\boldsymbol{\beta}} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{y} \]

Sugestão:

1. Como sugerido anteriormente, experimente utilizar dados da literatura ou de outra fonte cujas respostas já são conhecidas, substituindo os respectivos vetores ao início do código. Isso permite comparar a eficácia de uso da ferramenta apresentada.

20 Suavização de dados - Spline e filtro de Savitzky-Golay

      Em pesquisa experimental a detecção de sinais ocasionalmente ocorre na presença de níveis significativos de ruído, tal como ocorre em varredura contínua espectral sob variação de comprimento de onda, ou na detecção de sinais elétricos no tempo. Nesse caso, não há uma equação analítica que descreva o comportamento do sinal, embora algumas ferramentas de processamento digital possam confiar uma curva de tendência no tratamento de dados, reduzindo significativamente o nível de ruído, tais como por curva de spline e filtro de Savitzky-Golay.

Contexto - Spline cúbica

      Uma técnica de interpolação bastante comum refere-se ao uso de spline cúbica por polinômios de grau 3 interconectando janelas de dados. O tratamento consiste em aplicar as funções polinomiais em subintervalos dos pontos, promovendo uma suavização entre as janelas de dados. Matematicamente, a spline é aplicada de tal forma que:

\[ S_i(x) = a_i + b_i(x - x_i) + c_i(x - x_i)^2 + d_i(x - x_i)^3 \]

Onde:

  • S\(_{i}\)(x) = função spline cúbica no intervalo [xi,xi+1];
  • a\(_{i, b\){i}\(, c\){i}\(, d\)_{i}$ = coeficientes específicos para o segmento i;
  • x\(_{i}\) = ponto inicial do intervalo;
  • x = variável independente.

20.1 Contexto - filtro de Savitzky-Golay

       Já a técnica de suavização por filtro de Savitzky-Golay aplica uma regressão polinomial local a uma janela móvel, por mínimos quadrados e grau pré-determinado, preservando sinais de picos, vales e bandas. Distinto da spline cúbica, o filtro produz uma curva contínua global, e não um conjunto de curvas interconectadas. Matematicamente:

\[ \tilde{y}_i = \sum_{j=-m}^{m} c_j \cdot y_{i+j} \]

Onde:

  • y\(_{i}\) = valor suavizado na posição i;
  • y\(_{i+j}\) = valores reais da série dentro da janela;
  • c\(_{i}\) = coeficientes do filtro derivados de uma regressão polinomial;
  • m = número de pontos de cada lado da janela central.
  Segue um exemplo de código para o JSplotly e que ilustra o uso dos dois métodos de interpolação.


Instruções:

    1. O código possui dois flags true/false, um para “usarGolay” e outro para “usarSpline”;
    1. Visualize os dados brutos adotando false para ambos os flags;
    1. Para sobrepor uma spline cúbica mude sua constante para true;
    1. Para sobrepor o filtro de Savitzky-Golay, mude sua constante para true;
    1. Para ajustar o filtro, modifique seus parâmetros nas constantes janela (janela móvel) e/ou grau (grau do polinômio).

Sugestão:

1. Compare os efeitos de suavização pelos dois tratamentos de interpolação polinomial;
2. Aplique apenas o filtro, ajustando parâmetros de janela móvel e grau polinomial;
3.  Experimente a interpolação com outros dados brutos no código, substituindo as constantes "x_values" e "y_raw" por vetores numéricos;

21 ANAVA e teste de Tukey-HSD

Contexto:

  Em pesquisa é comum proceder a análise de um conjunto de dados comparando-se a variância entre grupos com a obtida dentro de cada grupo, ou Análise de Variância (ANAVA). Uma vez obtida a informação estatística de que há diferença entre os grupos superior à interna, procede-se um teste pos-hoc para comparação de médias, como o teste de Tukey-HSD (Honest Significant Difference).

Equação:

  A equação que caracteriza um teste de Tukeu-HSD é fornecida abaixo (correção para grupos desbalanceados):

\[ \text{HSD}_{ij} = q_{\alpha} \cdot \sqrt{\frac{\text{MS}_{\text{within}}}{2} \left( \frac{1}{n_i} + \frac{1}{n_j} \right)} \]

Onde:

  • HSD = valor mínimo da diferença entre duas médias para que ela seja considerada significativa;
  • q\(_{\alpha}\) = valor crítico da distribuição studentizada q (distribuição de Tukey), dependendo do número de grupos e do nível de significância \(\alpha\);
  • MS\(_{within}\) = quadrado médio dentro dos grupos (erro) obtido da ANAVA;
  • n: número de observações por grupo (i e j se houver grupos de tamanhos diferentes).

Sugestão:

1. Você pode clicar e arrastar os marcadores de mínima diferença (a,b,etc) acima do gráfico, para melhor ajuste visual, bem como a tabela de ANAVA e o resultado do teste estatístico;
2. Altere os valores dos vetores, refaça a análise e o gráfico simultâneos, e perceba a diferença nos valores obtidos. Observe que, como informado na borda inferior, é necessário atualizar a página do site para anular dados anteriores retidos em memória cache;
3. Insira outros dados nos vetores respectivos, seus ou de outra fonte;
4. Insira novos vetores de dados, ou delete algum, para um cálculo e gráfico personalizado.

22 Ajuste não linear de dados

Contexto:

  Modelagem é uma área de emprego comum nas ciências naturais, quando se deseja previsão ou correlação matemática de dados experimentais. Modelos podem constituir-se lineares ou não. Quando não lineares, podem ser aplicados de forma empírica para os dados (ex: funções quadráticas, logarítmicas, exponenciais ou de potência), ou a partir de uma função matemática explanatória do modelo.
  Nesse caso são empregadas técnicas para ajuste não linear dos dados ao modelo, como Simplex, Gauss, Newton-Raphson, Levenberg-Marquadt, ou mínimos quadrados por exemplo. Seja qual for o método, o ajuste não linear difere-se do linear em pressupostos e tratamento dos dados (veja uma rápida explicação aqui.
  O exemplo a seguir ilustra a aplicação de um ajuste não linear de dados de interação molecular por modelo de Langmuir, e tratamento por minimização do erro quadrático por varredura manual. Nesse tratamento, calcula-se a soma dos erros quadráticos (RMSE) para combinações de a e b, selecionando-se o par com menor erro calculado. Nesse caso, por simplificação, apesar do JSPlotly trabalhar com bibliotecas mais específicas, a regressão não linear dá-se por mínimos quadrados, mas realizada por grid search, e não por métodos iterativos clássicos. Assim, um conjunto de valores é testado para o par (a, b) em uma malha definida previamente (tabela de combinações), permitindo a identificação dos parâmetros que melhor descrevem os dados experimentais segundo o critério de erro mínimo.


Equação:

  A equação de Langmuir é representada abaixo:

\[ Y = \frac{aX}{K_d + X} \] Onde:

  • Y = fração de sítios ocupados;
  • X = concentração do ligante livre;
  • a = valor de saturação (sítios de mesma afinidade completamente ocupados);
  • Kd = constante de equilíbrio de dissociação do complexo.
  Nesse caso, a função de mínimos quadrados não linear fica:

\[ SSR(a, K_d) = \sum_{i=1}^n \left( y_i - \frac{a x_i}{K_d + x_i} \right)^2 \]

Onde:

SSR = soma dos quadrados dos resíduos (inversamente propocional à qualidade do ajuste)

Sugestão:

1. Como no exemplo anterior, apresente alternativamente os pontos e a curva de ajuste pela operação "booleana" ("mostrarPontos = true/false"; "mostrarCurva = true/false");
2. Altere os dados e realize novo ajuste, para obtenção de outros parâmetros da equação (Kd, SSR, R², R² ajustado). Obs: R² adj corresponde ao valor de R² corrigido para o número de parâmetros do modelo (no caso, "2"), incidindo diretamente nos "graus de liberdade" para o ajuste.
De volta ao topo