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.
: o editor usa desfazer/refazer infinitos no código (Ctrl+Z / Shift+Ctrl+Z) ! Lembrete
Simulações Interativas Para Biofísico-química com JSPlotly & GSPlotly
Instruções
1 Equilíbrio ácido-básico e sistema tampão
Contexto:
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".
: 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.
Explicação
"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:
Equação:
\[
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:
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:
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:
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:
"FASTA" da proteína no NCBI ("https://www.ncbi.nlm.nih.gov/protein/") - ex: "papain";
a. Procurar a sequência "FASTA" e copiar a sequência 1a. obtida;
b. Clicar em : "https://www.protpi.ch/Calculator/ProteinTool");
c. Colar a sequência num site para quantificação de resíduos (ex4. Substituir a sequência no código.
6 Catálise e inibição enzimática
Contexto:
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:
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:
- Trehalose como estabilizante (reduz \(\beta\));
- Guanidina como desnaturante (aumenta \(\beta\));
Sugestão:
1. Experimente testar várias condições envolvidas na simulação, como:
) variação de Tm;
a) variação do parâmetro $\beta$;
b) variação do teor de trealose;
c) variação do teor de cloreto de guanidina. d
8 Equação de van der Waals para gases ideais
Contexto:
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:
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:
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:
Equação:
\[ 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;
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:
Equação:
\[ 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
\[ \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.
\[ E = E^0 + \frac{RT}{nF} \ln \left( \frac{[\text{Ox}]}{[\text{Red}]} \right) \]
\[ 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
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
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
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
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;
- 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:
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.
\[ \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| \]
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:
17.1 Equação
\[ 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} \]
\[
\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:
Equação:
\[ 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
\[ \hat{\mathbf{y}} = \mathbf{X} \hat{\boldsymbol{\beta}} \] \[ \mathbf{e} = \mathbf{y} - \hat{\mathbf{y}} \]
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.
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
Sugestão:
1. Experimente variar o número de preditores (xi). Para isso:
o(s) vetor(res) desejados, e corrigir seu quantitativo na linha: "const X = x1.map((_, i)";
a. Sem quiser reduzir, basta retirar "const X = x1.map((_, i)". b. Se quiser aumentar, acrescente um novo vetor na linha correspondente, e atualize o quantitativo no mapeamento de
19 Metodologia de Superfície de Resposta (MSR)
Equação:
\[ 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 \]
\[ \mathbf{y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon} \]
\[
\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
Contexto - Spline cúbica
\[ 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
\[ \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.
Instruções:
- O código possui dois flags true/false, um para “usarGolay” e outro para “usarSpline”;
- Visualize os dados brutos adotando false para ambos os flags;
- Para sobrepor uma spline cúbica mude sua constante para true;
- Para sobrepor o filtro de Savitzky-Golay, mude sua constante para true;
- 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;
22 Ajuste não linear de dados
Contexto:
Equação:
\[ 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.
\[ 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.