Code
try:
import fysisk_biokemi
print("Already installed")
except ImportError:
%pip install -q "fysisk_biokemi[colab] @ git+https://github.com/au-mbg/fysisk-biokemi.git"
På dansk skriver vi et decimaltal som “3,14”, derfor også navnet et kommatal, men på engelsk bruges der punktum til at decimal seperator så “3.14”. Forskellige programmer udnytter kommaer på forskellige måder, f.eks:
3,14
vil Python forstå som en tuple
(som er en slags beholder) med to elementer 3
og 14
.csv
-fil bruges kommaer på en lignende facon til at separere indgange, så i en csv
-fil med 3,14
på en række vil give to søjler.Prøv følgende i celle nednefor
3,14 + 6
3.14 + 6
Vi vil bruge “.” (punktum) som decimalseperator fremover.
Widgetten nedenfor kan konvertere mellem enheder med forskellige prefix, som værdien af er givet i tabellen
Enhed | Navn | Faktor |
---|---|---|
M | 1 | |
mM | Milli | \(10^{-3}\) |
µM | Micro | \(10^{-6}\) |
nM | Nano | \(10^{-9}\) |
pM | Pico | \(10^{-12}\) |
fM | Femto | \(10^{-15}\) |
Ofte er det nødvendigt at regne koncentrationen baseret på massen af stoffet og volumen af opløsningen, f.eks. hvis vi forbedrer et eksperiment vil vi tit starte fra den vinkel.
For at regne molar koncentrationen skal vi så regne
\[ c = \frac{m}{M_W \cdot V} \xrightarrow[]{\text{Enheder}} \frac{\text{g}}{\frac{\text{g}}{\text{mol}} \cdot \text{L}} = \frac{\text{g}\cdot \text{mol}}{\text{g}\cdot L} = \frac{\text{mol}}{\text{L}} \] Hvor \(m\) er massen i gram, \(M_W\) er molekyle vægten i \(\frac{g}{mol}\) og V er volumen i liter Her er det vigtigt at konveretere til de rigtige enheder, altså ikke f.eks. at bruge \(m\) i at \(\text{mg}\). Widgtten nedenfor tager en masse, et volumen og en molekylærvægt og konveretere til molar koncentration, du kan vælge hvad enheden af masse og volumen er.
Denne widget regne massen der skal til for at lave en opløsning med en given koncentration og volumen.
Molekylærvægten er en sum af atomarvægte
\[ M_W = \sum_i^Z n_i m_Z \] Hvor \(n_i\) er antaller af atomer af type \(i\) og \(m_Z\) er vægten pr. mol af det atom. Widgetten nedenfor kan regne molekylærvægten af stoffer med de første 83 elementer fra den periodiske table.
Denne widget kan regne hvordan en stock opløsning skal fortyndens for at opnå en ønsket koncentration.
Denne widget kan regne ligevægtskonstanten af reaktioner, f.eks.
\[ aA + bB ... = xX + yY ... \] Hvor ligevægtskonstanten er givet ved
\[ K_{eq} = \frac{[X]^x \times [Y]^y \times ...}{[A]^a \times [B]^b \times ...} \]
Her er det igen vigtigt at koncentrationerne er givet i \(mol/L\) for at der regnes rigtigt, men heldigvis kan widgetten konvertere dem for dig.
For at bruge widgetten skal du skrive en reaktions ligningen på formen
a A + b B = c C
Hvor der er mellemrum mellem ordren og stoffet, du kan så angive koncentrationen og ligevægtskonstanten bliver regnet.
Denne widget kan læse en .csv
-fil hvilket er en comma seperated values, det vil sige at forskellige data er splittet om i kolonner, se f.eks. eksemplet her
time (s),A (mM),B (µM),X (nM),Y (µM)
0,1.00,500.0,100.0,50.0
10,0.95,480.0,150.0,70.0
20,0.92,460.0,200.0,90.0
30,0.90,445.0,240.0,110.0
40,0.88,430.0,270.0,130.0
50,0.87,420.0,300.0,150.0
60,0.86,410.0,330.0,170.0
70,0.85,400.0,360.0,190.0
80,0.84,390.0,390.0,210.0
90,0.83,380.0,420.0,230.0
100,0.82,370.0,450.0,250.0
Her er der 5 søjler, som beskriver 5 forskellige størrelser.
At bruge widgten kræver fire trin
Henderson-Hasselbalch ligningen (‘bufferligningen’) er givet ved
\[ pH = pK_a + \log_{10}\left( \frac{[\text{base}]}{[\text{acid}]}\right) \]
Denne widget beregener forholdet mellem og koncentrationen af syre og base givet \(pH\), \(pKa\) samt total koncentrationen.
Denne widget visualisere bufferligningen (Henderson–Hasselbalch). Du kan styre \(pKa\), total koncentratioenn og området for \(pH\). Plottet viser koncentrationen af syre og base som funktionen af pH.
---
title: Week 43
engine: jupyter
categories: ['units', 'widgets', 'commas', ]
format-links:
- text: "Open in Google Colab"
href: "https://colab.research.google.com/github/au-mbg/fysisk-biokemi/blob/built-notebooks/built_notebooks/student/week_43.ipynb"
icon: box-arrow-up-right
---
{{< include tidbits/_install_import.qmd >}}
```{python}
import fysisk_biokemi.widgets as fsb_widgets
from fysisk_biokemi.widgets.utils import disable_custom_widget_colab, enable_custom_widget_colab
```
## Kommaer, punktumer, commas og dots.
På dansk skriver vi et decimaltal som "3,14", derfor også navnet et kommatal, men på engelsk bruges
der punktum til at decimal seperator så "3.14". Forskellige programmer udnytter kommaer på forskellige måder, f.eks:
- I Python bruges komma til at seperare elementer, så `3,14` vil Python forstå som en `tuple` (som er en slags beholder) med to elementer `3` og `14`.
- I en `csv`-fil bruges kommaer på en lignende facon til at separere indgange, så i en `csv`-fil med `3,14` på en række vil give to søjler.
Prøv følgende i celle nednefor
- `3,14 + 6`
- `3.14 + 6`
```{python}
#| eval: false
# Prøv beregningerne her!
...
```
Vi vil bruge "." (punktum) som decimalseperator fremover.
---
## Koncentrations enheder
Widgetten nedenfor kan konvertere mellem enheder med forskellige prefix, som værdien
af er givet i tabellen
| Enhed | Navn | Faktor |
| -------- | ------- | ---------- |
| M | | 1 |
| mM | Milli | $10^{-3}$ |
| µM | Micro | $10^{-6}$ |
| nM | Nano | $10^{-9}$ |
| pM | Pico | $10^{-12}$ |
| fM | Femto | $10^{-15}$ |
: Metric prefixes commonly used for molar concentrations
```{python}
#| eval: false
fsb_widgets.concentration_unit()
```
## Koncentration fra masse og volumen
Ofte er det nødvendigt at regne koncentrationen baseret på massen af stoffet og volumen
af opløsningen, f.eks. hvis vi forbedrer et eksperiment vil vi tit starte fra den vinkel.
For at regne molar koncentrationen skal vi så regne
$$
c = \frac{m}{M_W \cdot V} \xrightarrow[]{\text{Enheder}} \frac{\text{g}}{\frac{\text{g}}{\text{mol}} \cdot \text{L}} = \frac{\text{g}\cdot \text{mol}}{\text{g}\cdot L} = \frac{\text{mol}}{\text{L}}
$$
Hvor $m$ er massen i **gram**, $M_W$ er molekyle vægten i $\frac{g}{mol}$ og V er volumen i liter
Her er det vigtigt at konveretere til de rigtige enheder, altså ikke f.eks. at bruge $m$ i at $\text{mg}$.
Widgtten nedenfor tager en masse, et volumen og en molekylærvægt og konveretere til molar koncentration,
du kan vælge hvad enheden af masse og volumen er.
```{python}
#| eval: false
fsb_widgets.concentration_mass_volume()
```
## Masse fra koncentration og volumen
Denne widget regne massen der skal til for at lave en opløsning med en given koncentration og volumen.
```{python}
#| eval: false
fsb_widgets.mass_concentration_volume()
```
## Molekylærvægt
Molekylærvægten er en sum af atomarvægte
$$
M_W = \sum_i^Z n_i m_Z
$$
Hvor $n_i$ er antaller af atomer af type $i$ og $m_Z$ er vægten pr. mol af det atom.
Widgetten nedenfor kan regne molekylærvægten af stoffer med de første 83 elementer fra
den periodiske table.
```{python}
#| eval: false
fsb_widgets.molecular_weight()
```
## Fortynding
Denne widget kan regne hvordan en stock opløsning skal fortyndens for at opnå en
ønsket koncentration.
```{python}
#| eval: false
fsb_widgets.dilution_helper()
```
## Ligevægts reaktions
Denne widget kan regne ligevægtskonstanten af reaktioner, f.eks.
$$
aA + bB ... = xX + yY ...
$$
Hvor ligevægtskonstanten er givet ved
$$
K_{eq} = \frac{[X]^x \times [Y]^y \times ...}{[A]^a \times [B]^b \times ...}
$$
Her er det igen vigtigt at koncentrationerne er givet i $mol/L$ for at der regnes rigtigt,
men heldigvis kan widgetten konvertere dem for dig.
For at bruge widgetten skal du skrive en reaktions ligningen på formen
```
a A + b B = c C
```
Hvor der er mellemrum mellem ordren og stoffet, du kan så angive koncentrationen og
ligevægtskonstanten bliver regnet.
```{python}
#| eval: false
fsb_widgets.reaction_equation()
```
## Reaktions data analyse
Denne widget kan læse en `.csv`-fil hvilket er en **c**omma **s**eperated **v**alues, det
vil sige at forskellige data er splittet om i kolonner, se f.eks. eksemplet her
```{csv}
time (s),A (mM),B (µM),X (nM),Y (µM)
0,1.00,500.0,100.0,50.0
10,0.95,480.0,150.0,70.0
20,0.92,460.0,200.0,90.0
30,0.90,445.0,240.0,110.0
40,0.88,430.0,270.0,130.0
50,0.87,420.0,300.0,150.0
60,0.86,410.0,330.0,170.0
70,0.85,400.0,360.0,190.0
80,0.84,390.0,390.0,210.0
90,0.83,380.0,420.0,230.0
100,0.82,370.0,450.0,250.0
```
Her er der 5 søjler, som beskriver 5 forskellige størrelser.
At bruge widgten kræver fire trin
- Kilk på "Upload CSV" og vælg en fil.
- Sikre at reaktionsligning er den du er interesseret i.
- Sikre at hvert led af reaktionsligningen er tilknyttet den rigtige kolonne i datasættet og enheden er korrekt.
- Klik "Beregn og plot" for at beregne ligevægtskonstanten.
```{python}
#| eval: false
fsb_widgets.reaction_data_analysis()
```
## Bufferligningen
Henderson-Hasselbalch ligningen ('bufferligningen') er givet ved
$$
pH = pK_a + \log_{10}\left( \frac{[\text{base}]}{[\text{acid}]}\right)
$$
Denne widget beregener forholdet mellem og koncentrationen af syre og base givet $pH$, $pKa$ samt total koncentrationen.
```{python}
#| eval: false
fsb_widgets.buffer_equation()
```
## Bufferligning visualisering
Denne widget visualisere bufferligningen (Henderson–Hasselbalch). Du kan styre
$pKa$, total koncentratioenn og området for $pH$. Plottet viser koncentrationen
af syre og base som funktionen af pH.
```{python}
#| eval: true
enable_custom_widget_colab() # Gør ingenting udenfor Google Colab, men nødvendigt i Colab.
fsb_widgets.buffer_visualization()
```