1
0

vault backup: 2025-12-07 12:39:26
All checks were successful
Deploy Quartz site to GitHub Pages / build (push) Successful in 1m21s

This commit is contained in:
2025-12-07 12:39:26 +01:00
parent 713dae01cc
commit fc5133b214
7 changed files with 374 additions and 694 deletions

73
wip/script.js Normal file
View File

@@ -0,0 +1,73 @@
MathJax.Hub.Config({
config: ["MMLorHTML.js"],
jax: ["input/TeX", "output/HTML-CSS", "output/NativeMML"],
extensions: ["MathMenu.js", "MathZoom.js"]
});
let indexData = null;
async function loadIndex() {
if (indexData) return indexData;
const res = await fetch("/index.json");
indexData = await res.json();
return indexData;
}
const templates = {
folder: i => `<li><details><summary>${i.key}</summary>${i.inner}</details></li>`,
file: i => `<li><a href="${i.href}">${i.title}</a></li>`
};
function renderTree(data) {
const items = Object.entries(data).map(([key, note]) => {
if (key === "children") return null;
if (note.children) return { type: "folder", key, inner: renderTree(note.children) };
if (note.folder && note.filename) {
const title = note.title || note.filename.replace(/\.md$/, "");
let href = title + ".html";
if (note.folder !== ".") href = `${note.folder}/${href}`;
href = "/" + href;
return { type: "file", href, title };
}
return null;
}).filter((i) => i !== null);
// Sort: folders first (alphabetically), then files (alphabetically)
// Use natural sorting for numbers (1, 2, 10 instead of 1, 10, 2)
items.sort((a, b) => {
if (a.type !== b.type) return a.type === "folder" ? -1 : 1;
const nameA = (a.type === "folder" ? a.key : a.title);
const nameB = (b.type === "folder" ? b.key : b.title);
return nameA.localeCompare(nameB, undefined, { numeric: true, sensitivity: "base" });
});
return `<ul>${items.map(i => templates[i.type](i)).join("")}</ul>`;
}
loadIndex().then(data => {
const sidebar = document.querySelector(".sidebar");
if (sidebar) {
sidebar.innerHTML = renderTree(data);
// Find and highlight the current page link
const currentPath = window.location.pathname;
const links = sidebar.querySelectorAll("a");
for (const link of links) {
const linkPath = new URL(link.href, window.location.origin).pathname;
if (linkPath === currentPath) {
link.classList.add("active");
// Expand all parent <details> elements
let parent = link.parentElement;
while (parent && parent !== sidebar) {
if (parent.tagName === "DETAILS") {
parent.open = true;
}
parent = parent.parentElement;
}
break;
}
}
}
});

View File

@@ -1,16 +1,27 @@
import argparse
import http.server
import json
import os
import pathlib
import re
import shutil
import jinja2
from markdown.core import Markdown
from markdown.extensions import Extension
from markdown.preprocessors import Preprocessor
from obsidian_parser import Vault
from obsidian_parser import Note, Vault
def out_content(self):
content = self.content
if content.startswith("---\n"):
content = content.split("---\n", 2)[2]
return content
Note.our_content = property(out_content)
root_dir = pathlib.Path(__file__).parent
vault = Vault(root_dir.parent / "content")
note = vault.get_note("Biokemi/Cellulära processer/Transport över cellmembran/Anteckningar.md")
loader = jinja2.FileSystemLoader(root_dir / "templates")
env = jinja2.Environment(loader=loader)
@@ -23,9 +34,9 @@ class ObsidianImage(Preprocessor):
if m:
if "|" in m.group(1):
img, width = m.group(1).split("|")
new_lines.append("<img src='../content/attachments/" + img + "' style='width:" + width + ";'/>")
new_lines.append(f"<img src='attachments/{img}' style='width:{width};'/>")
else:
new_lines.append("<img src='../content/attachments/" + m.group(1) + "'/>")
new_lines.append(f"<img src='attachments/{m.group(1)}'/>")
else:
new_lines.append(line)
return new_lines
@@ -35,35 +46,145 @@ class ObsidianImageExtension(Extension):
def extendMarkdown(self, md):
md.preprocessors.register(ObsidianImage(md), 'obsidianimage', 175)
m = Markdown(
extensions=[
"mdx_math",
"nl2br",
ObsidianImageExtension(),
],
extension_configs={
"mdx_math": {
"enable_dollar_delimiter": True
}
},
tab_length=2,
)
env.filters["markdown"] = m.convert
def make_markdown():
return Markdown(
extensions=[
"fenced_code",
"mdx_math",
"nl2br",
"tables",
ObsidianImageExtension(),
],
extension_configs={
"mdx_math": {
"enable_dollar_delimiter": True
}
},
tab_length=2,
)
def markdown_filter(text):
md = make_markdown()
return md.convert(text)
env.filters["markdown"] = markdown_filter
output = root_dir / "test.html"
template = env.get_template("base.html")
output_dir = root_dir / "output"
def out_content(self):
content = note.content
if content.startswith("---\n"):
content = content.split("---\n", 2)[2]
return content
note.__class__.our_content = property(out_content)
with output.open("w", encoding="utf-8") as f:
data = template.render(note=note, vault=vault)
f.write(data)
def build_tree(vault: Vault):
root = vault.path
tree = {}
for folder, dirnames, filenames in root.walk():
for dirname in dirnames[:]:
if dirname.startswith(".") or dirname == "attachments":
dirnames.remove(dirname)
cur = tree
for part in folder.relative_to(root).parts:
cur = cur.setdefault(part, {"children": {}})["children"]
import webbrowser
webbrowser.open(output.as_uri())
print(f"Written to {output}")
for filename in filenames:
# .DS_Store etc
if filename.startswith("."):
continue
item = {
"filename": filename,
"folder": str(folder.relative_to(root)),
}
note = vault.get_note((folder / filename).relative_to(root))
if note:
item["title"] = note.title
# TODO: for search add tags, modified time, content etc
cur[filename] = item
return tree
def write_note(item, tree_json):
if "children" in item:
for child in item["children"].values():
write_note(child, tree_json)
else:
path = pathlib.Path(item["folder"]) / item["filename"]
note = vault.get_note(path)
if note:
out_path = output_dir / item["folder"] / (item["title"] + ".html")
out_path.parent.mkdir(parents=True, exist_ok=True)
# Calculate relative base_path based on folder depth
folder = item["folder"]
if folder == ".":
base_path = ""
else:
depth = len(pathlib.Path(folder).parts)
base_path = "../" * depth
with out_path.open("w", encoding="utf-8") as f:
data = template.render(note=note, vault=vault, base_path=base_path, index_json=tree_json)
f.write(data)
else:
print(f"Note not found for {path}")
def build():
"""Build the static site."""
print("Building...")
# 1. Create output dir
shutil.rmtree(output_dir, ignore_errors=True)
output_dir.mkdir(exist_ok=True)
# 1b. Symlink CSS/JS to output root
(output_dir / "style.css").symlink_to(root_dir / "style.css")
(output_dir / "script.js").symlink_to(root_dir / "script.js")
# 1c. Symlink attachments directory
attachments_src = root_dir.parent / "content" / "attachments"
attachments_dst = output_dir / "attachments"
attachments_dst.symlink_to(attachments_src)
# 2. Build tree and write index json
tree = build_tree(vault)
tree_json = json.dumps(tree)
with (output_dir / "index.json").open("w") as f:
f.write(tree_json)
# 3. Write out each note as html
write_note({"children": tree}, tree_json)
print(f"Built to {output_dir}")
def serve(port):
"""Build and serve the site."""
build()
os.chdir(output_dir)
print(f"Serving at http://localhost:{port}")
server = http.server.HTTPServer(("", port), http.server.SimpleHTTPRequestHandler)
try:
server.serve_forever()
except KeyboardInterrupt:
print("\nStopped.")
def main():
parser = argparse.ArgumentParser(description="Static site generator for medical notes")
subparsers = parser.add_subparsers(dest="command", required=True)
subparsers.add_parser("build", help="Build the static site")
serve_parser = subparsers.add_parser("serve", help="Build and serve the site")
serve_parser.add_argument("-p", "--port", type=int, default=8000, help="Port to serve on")
args = parser.parse_args()
if args.command == "build":
build()
elif args.command == "serve":
serve(args.port)
if __name__ == "__main__":
main()

139
wip/style.css Normal file
View File

@@ -0,0 +1,139 @@
:root {
color-scheme: light dark;
--font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--font-mono: ui-monospace, "SF Mono", Menlo, monospace;
--max-width: 70ch;
--line-height: 1.15;
--space: 1.25rem;
--radius: 6px;
--sidebar-width: 250px;
}
body {
margin: 0;
display: flex;
font-family: var(--font-sans-serif);
line-height: var(--line-height);
font-size: 1rem;
}
.sidebar {
width: var(--sidebar-width);
height: 100vh;
position: sticky;
top: 0;
overflow-y: auto;
padding: var(--space);
box-sizing: border-box;
}
.sidebar ul { list-style: none; padding: 0; margin: 0; }
.sidebar details ul { padding-left: 1rem; }
.sidebar li { margin: 0.2rem 0; }
.sidebar a { text-decoration: none; }
.sidebar a.active { font-weight: 600; }
.sidebar details { margin: 0.2rem 0; }
.sidebar summary { cursor: pointer; }
.content {
flex: 1;
max-width: var(--max-width);
padding: calc(var(--space) * 1.2);
}
@media (prefers-color-scheme: light) {
body { background: #fafafa; color: #222; }
.sidebar { background: #f0f0f0; }
a { color: #0645ad; }
code, pre { background: #f0f0f0; }
hr { border-color: #ddd; }
}
@media (prefers-color-scheme: dark) {
body { background: #111; color: #ddd; }
.sidebar { background: #1a1a1a; }
a { color: #7bbaff; }
code, pre { background: #222; }
hr { border-color: #333; }
}
p, ul, ol, blockquote, pre, table {
margin: var(--space) 0;
}
h1, h2, h3, h4, h5, h6 {
line-height: 1.25;
margin: calc(var(--space) * 1.6) 0 var(--space);
font-weight: 600;
}
h1 {
font-size: 1.8rem;
}
h2 {
font-size: 1.45rem;
}
h3 {
font-size: 1.25rem;
}
h4 {
font-size: 1.1rem;
}
h5, h6 {
font-size: 1rem;
}
ul, ol {
padding-inline-start: 1.4rem;
margin-block-start: var(--space);
}
li {
margin: 0.3rem 0;
}
code, pre {
font-family: var(--font-mono) monospace;
font-size: 0.9rem;
border-radius: var(--radius);
}
pre {
padding: 0.75rem 1rem;
overflow-x: auto;
}
table {
width: 100%;
border-collapse: collapse;
font-size: 0.95rem;
}
th, td {
padding: 0.5rem 0.75rem;
border: 1px solid currentcolor;
}
th {
font-weight: 600;
}
blockquote {
padding: 0.75rem 1rem;
border-inline-start: 4px solid currentcolor;
opacity: 0.9;
}
img, video {
max-width: 100%;
height: auto;
display: block;
border-radius: var(--radius);
margin: var(--space) 0;
}
hr {
margin: calc(var(--space) * 2) 0;
border: none;
border-bottom: 1px solid;
opacity: 0.2;
}

View File

@@ -1,175 +1,14 @@
<html lang="en">
<head>
<meta charset="utf-8">
<style>
/* Root scales + light/dark system colors */
:root {
color-scheme: light dark;
--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--font-mono: ui-monospace, "SF Mono", Menlo, monospace;
--max-width: 70ch;
--line-height: 1.15;
--space: 1.25rem;
--radius: 6px;
}
body {
margin: 0 auto;
max-width: var(--max-width);
padding: calc(var(--space) * 1.2);
font-family: var(--font-body);
line-height: var(--line-height);
font-size: 1rem;
word-wrap: break-word;
text-rendering: optimizeLegibility;
}
/* Color auto-adjusts with system theme */
@media (prefers-color-scheme: light) {
body {
background: #fafafa;
color: #222;
}
a {
color: #0645ad;
}
code, pre {
background: #f0f0f0;
}
hr {
border-color: #ddd;
}
}
@media (prefers-color-scheme: dark) {
body {
background: #111;
color: #ddd;
}
a {
color: #7bbaff;
}
code, pre {
background: #222;
}
hr {
border-color: #333;
}
}
p, ul, ol, blockquote, pre, table {
margin: var(--space) 0;
}
/* Headings: predictable rhythm, not oversized */
h1, h2, h3, h4, h5, h6 {
line-height: 1.25;
margin: calc(var(--space) * 1.6) 0 var(--space);
font-weight: 600;
}
h1 {
font-size: 1.8rem;
}
h2 {
font-size: 1.45rem;
}
h3 {
font-size: 1.25rem;
}
h4 {
font-size: 1.1rem;
}
h5, h6 {
font-size: 1rem;
}
/* Lists */
ul, ol {
padding-inline-start: 1.4rem;
margin-block-start: var(--space);
}
li {
margin: 0.3rem 0;
}
/* Code */
code, pre {
font-family: var(--font-mono);
font-size: 0.9rem;
border-radius: var(--radius);
}
pre {
padding: 0.75rem 1rem;
overflow-x: auto;
}
/* Tables */
table {
width: 100%;
border-collapse: collapse;
font-size: 0.95rem;
}
th, td {
padding: 0.5rem 0.75rem;
border: 1px solid currentcolor;
border-opacity: 0.2;
}
th {
font-weight: 600;
}
/* Blockquotes */
blockquote {
padding: 0.75rem 1rem;
border-inline-start: 4px solid currentcolor;
border-opacity: 0.4;
opacity: 0.9;
}
/* Images & media */
img, video {
max-width: 100%;
height: auto;
display: block;
border-radius: var(--radius);
margin: var(--space) 0;
}
/* Horizontal rule */
hr {
margin: calc(var(--space) * 2) 0;
border: none;
border-bottom: 1px solid;
opacity: 0.2;
}
</style>
<base href="{{base_path}}">
<link rel="stylesheet" href="style.css">
<title>{{note.title}}</title>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js">
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
config: ["MMLorHTML.js"],
jax: ["input/TeX", "output/HTML-CSS", "output/NativeMML"],
extensions: ["MathMenu.js", "MathZoom.js"]
});
</script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
</head>
<body>
<div class="sidebar"></div>
<div class="content">
<h1>{{note.title}}</h1>
<ul>
{% for key, value in note.frontmatter.items() %}
@@ -186,5 +25,7 @@
{% endfor %}
</ul>
{{note.our_content | markdown}}
</div>
<script src="script.js"></script>
</body>
</html>

View File

@@ -1,495 +0,0 @@
<html lang="en">
<head>
<meta charset="utf-8">
<style>
/* Root scales + light/dark system colors */
:root {
color-scheme: light dark;
--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--font-mono: ui-monospace, "SF Mono", Menlo, monospace;
--max-width: 70ch;
--line-height: 1.15;
--space: 1.25rem;
--radius: 6px;
}
body {
margin: 0 auto;
max-width: var(--max-width);
padding: calc(var(--space) * 1.2);
font-family: var(--font-body);
line-height: var(--line-height);
font-size: 1rem;
word-wrap: break-word;
text-rendering: optimizeLegibility;
}
/* Color auto-adjusts with system theme */
@media (prefers-color-scheme: light) {
body {
background: #fafafa;
color: #222;
}
a {
color: #0645ad;
}
code, pre {
background: #f0f0f0;
}
hr {
border-color: #ddd;
}
}
@media (prefers-color-scheme: dark) {
body {
background: #111;
color: #ddd;
}
a {
color: #7bbaff;
}
code, pre {
background: #222;
}
hr {
border-color: #333;
}
}
p, ul, ol, blockquote, pre, table {
margin: var(--space) 0;
}
/* Headings: predictable rhythm, not oversized */
h1, h2, h3, h4, h5, h6 {
line-height: 1.25;
margin: calc(var(--space) * 1.6) 0 var(--space);
font-weight: 600;
}
h1 {
font-size: 1.8rem;
}
h2 {
font-size: 1.45rem;
}
h3 {
font-size: 1.25rem;
}
h4 {
font-size: 1.1rem;
}
h5, h6 {
font-size: 1rem;
}
/* Lists */
ul, ol {
padding-inline-start: 1.4rem;
margin-block-start: var(--space);
}
li {
margin: 0.3rem 0;
}
/* Code */
code, pre {
font-family: var(--font-mono);
font-size: 0.9rem;
border-radius: var(--radius);
}
pre {
padding: 0.75rem 1rem;
overflow-x: auto;
}
/* Tables */
table {
width: 100%;
border-collapse: collapse;
font-size: 0.95rem;
}
th, td {
padding: 0.5rem 0.75rem;
border: 1px solid currentcolor;
border-opacity: 0.2;
}
th {
font-weight: 600;
}
/* Blockquotes */
blockquote {
padding: 0.75rem 1rem;
border-inline-start: 4px solid currentcolor;
border-opacity: 0.4;
opacity: 0.9;
}
/* Images & media */
img, video {
max-width: 100%;
height: auto;
display: block;
border-radius: var(--radius);
margin: var(--space) 0;
}
/* Horizontal rule */
hr {
margin: calc(var(--space) * 2) 0;
border: none;
border-bottom: 1px solid;
opacity: 0.2;
}
</style>
<title>Anteckningar</title>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js">
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
config: ["MMLorHTML.js"],
jax: ["input/TeX", "output/HTML-CSS", "output/NativeMML"],
extensions: ["MathMenu.js", "MathZoom.js"]
});
</script>
</head>
<body>
<h1>Anteckningar</h1>
<ul>
<li>
<strong>föreläsare</strong>
Ingela Parmryd
</li>
<li>
<strong>tags</strong>
#biokemi
#anteckningar
#transport-över-cellmembran
</li>
<li>
<strong>date</strong>
2025-11-25
</li>
</ul>
<p>Diffusion är något INTE behöver hjälp<br />
Passiv vs Aktiv transport<br />
Faciliterad diffusion</p>
<p>plasmamembransystem</p>
<ul>
<li>tar in och tar</li>
<li>när det går ut, börjar det i <ul>
<li>ER → Golgi → sekretoriska vesiklar → PM eller </li>
<li>ER → golgi → PM</li>
<li>heter sekretoriska vägen</li>
<li></li>
</ul>
</li>
<li>när det går ut<ul>
<li>tidigt endosom → sen endosom → lysosom</li>
</ul>
</li>
<li>Vad påverkar utgången?<ul>
<li>tjocklek</li>
<li>kolesterol i membranet</li>
<li>mättade fettsyror/acylgrupper</li>
<li>tätare packning</li>
</ul>
</li>
<li>Vad påverkar ingången?<ul>
<li>permeabilitet (hur genomsläppligt)</li>
</ul>
</li>
</ul>
<hr />
<h2>Diffusion över membran</h2>
<p>Vad är lättast att diffunder?</p>
<ul>
<li>lättast → svårast<ul>
<li>(små) hydrofoba, <script type="math/tex">O_2</script> (stora kommer här också)</li>
<li>små polära <script type="math/tex">H_2O</script> (osmos)</li>
<li>stora polära, glykos (kolhydrater) </li>
<li>joner, laddade har det svårast (aminosyrer, nukleotider)</li>
</ul>
</li>
</ul>
<hr />
<p>Glukostransportörer faciliterar diffusion<br />
<img src='../content/attachments/Pasted image 20251125132516.png'/><br />
Även kallade bärarproteiner </p>
<h1>Passiv transport</h1>
<p>med gradienten - Man behöver inte tillföra energi, använder energin som tillför gradienten </p>
<h3>Transportörer/Bärarproteiner</h3>
<ul>
<li>transport av polära moleklyer</li>
<li>
<script type="math/tex">k_m</script> uppnår mättnad är när alla transportörer är upptagna</li>
</ul>
<p>GLUT1-5 har olika affinitet för glukos<br />
Varje transportör kan ta ungefär ~1000 molekyler per sekund<br />
Högre i blodet och ECM, transport av glukos sker oftast inåt i cellen<br />
Hastigheten beror på<br />
- antal transportprotein<br />
- hur hög koncentration</p>
<p>
<script type="math/tex">\Delta G = RTln(C_2/C_1)</script>
<br />
C1 = till<br />
C2 = från</p>
<p>Q: Behöver vi kunna formeln. Svaret är att vi inte behöver en miniräknare på tentan.</p>
<h3>Diffusion av <script type="math/tex">H_2O</script>
</h3>
<p>Fysiologiskt salt ~150mM = isotonisk<br />
- Det är så mkt joner vi har i miljön runt om och i våra celler<br />
- Har man exakt händer ingenting<br />
- Har man mer eller mindre så händer osmos<br />
- hypertonisk, högre saltkoncentration<br />
- då kommer vatten gå ut ur cellen för att xxx koncentrationsgradienten<br />
- Då får vi en cell som krymper<br />
- hypotonisk, lägre saltkoncentration<br />
- då försöker vattnet att ta sig in<br />
- då sväller cellen<br />
- när det kommer in för mycket vatten så går den sönder, då säger den lysering<br />
- man kan använda saltlösning för att få ut innehållet i en cell<br />
- sen centrifugerar man så man får ut sina mitokondrier<br />
- osmos = strävar mot utjämning av koncentrationsgradienten</p>
<hr />
<h3>Diffusion av vatten faciliteras av aquaporiner</h3>
<h3>Aquaporiner</h3>
<ul>
<li>Ett ökat vattenflöde ibland, t.ex. i njurarna</li>
<li>Utsöndring av svett och tårar</li>
<li>Passiv transport</li>
<li>Epitel - njurar</li>
<li>Det här går mkt snabbare <script type="math/tex">10^6</script> /s 𝛼-poriner</li>
<li>Faciliterad diffusion</li>
</ul>
<h3>Jonkanalerna</h3>
<ul>
<li>Faciliterar diffusion pendlar mellan att vara öppna eller stängda</li>
<li>Faciliterad diffusion</li>
<li>
<script type="math/tex">10^6</script> /s per kanal<ul>
<li>men bara öppna någon millisekund</li>
</ul>
</li>
<li>Pendlar mellan öppen och stängd</li>
<li>Aktiveras betyder att den öppnas<ul>
<li>ligandbindning - kommer någonting utanför cellen, får en konformationsändring och öppnar sig<ul>
<li>i sliden nämns att det kan t.ex. vara acetylkolin</li>
<li>elektriskt rocka, har 20k per kvmm, det gör att det kan komma upp i höga spänningar</li>
</ul>
</li>
<li>ändring av spänning<ul>
<li>membranpotential, skillnad mellan joner över ett membran</li>
</ul>
</li>
<li>mekaniskt</li>
</ul>
</li>
</ul>
<hr />
<h3>Transporthastigheten genom jonkanaler styrs av skillnader i koncentrations- och elektriska gradienter</h3>
<p>Beroende av andra joner<br />
<script type="math/tex">\Delta G = RT ln(C_2/C_1) + ZF\Delta V</script>
</p>
<p><strong>R:</strong> gaskonstanten = 8.314 J·mol⁻¹·K⁻¹<br />
<strong>T:</strong> absoluta temperaturen i Kelvin (t.ex. 310 K för 37°C)<br />
<strong>C₂:</strong> koncentration <em>utanför</em> cellen<br />
<strong>C₁:</strong> koncentration <em>innanför</em> cellen<br />
<strong>Z:</strong> jonens laddning (t.ex. Na⁺ = +1, Ca²⁺ = +2, Cl⁻ = 1)<br />
<strong>F:</strong> Faradays konstant (≈ 96 485 C/mol), laddning per mol elektroner<br />
<strong>ΔV:</strong> skillnaden i membranpotential (V₂ V₁), mäts i volt</p>
<hr />
<h3>Hur skulle en jonkanal vara uppbyggd?</h3>
<ul>
<li>amfipatiska hydrofila mot kanalen, hydrofoba mot insidan av cellmembranet</li>
<li>8 helixar ovanför</li>
<li>slicad i mitten av hydrofob/fil</li>
</ul>
<hr />
<h3>Uppbyggnaden av katjonkanaler är konserverad</h3>
<p><img src='../content/attachments/Pasted image 20251125135429.png'/><br />
- central por av helix S5 och S6<br />
- S1-4 bildar paddel utanför por</p>
<p>S4 positivt laddad, känner av ändring i membranpotential<br />
padel fälls upp vid aktivering</p>
<hr />
<h3>
<script type="math/tex">K^+</script>-kanalen passar <script type="math/tex">K^+</script> perfekt om dehydratisering sker</h3>
<p>Selektivitetsfilter K+-kanalen<br />
Det känner igen storlek, konkurrerar mot Na och Ka.<br />
<script type="math/tex">NA^+</script> 0.95 Å <br />
<script type="math/tex">K^+</script> 1.33 Å</p>
<p>För att passa den här kanalen som är 3 Å, <br />
Dehydratiseras, bort med vatten<br />
Binder till röda grupper som är karbonylgrupper<br />
Dehydratisering av <script type="math/tex">K^+</script> ger lika många bindingar i filtret som till <script type="math/tex">H_2O</script>
<br />
1000 gr höre selektivitet för <script type="math/tex">K^+</script> än <script type="math/tex">Na^+</script>
</p>
<p>Kostar energi att föra igenom Na+, då blir det inte effektivt<br />
Transport via repulsion i fyra bindingsställning (skjutsa vidare)</p>
<p>Na⁺ är mindre → har mycket högre laddningstäthet → binder vatten hårdare. Att ta bort vatten kostar därför mer energi för Na⁺ än för K⁺.</p>
<p><strong>Varför kan K⁺ passera utan kostnad?</strong><br />
Selektivitetsfiltret är byggt exakt för K⁺-storlek: karbonylgrupperna sitter så att de ersätter <em>precis</em> de vattenbindningar K⁺ förlorar. Energin blir nästan neutral.</p>
<hr />
<h3>Jonkanal stängs snabbt efter att ha öppnats</h3>
<p>Bolldomän i cytoplasman med en länk med ett bindningsställe i den aktiverade, öppna kanalen den kan binda in till<br />
- I öppen kanal blir <em>bindningen</em>→inaktiverad<br />
- States<br />
- Closed hänger och slänger<br />
- Open precis utanför<br />
- Inactivated inne i hållet</p>
<p>Kanalen stängs efter ms efter aktivering</p>
<p>Acetylkolinreceptorn är en receptor för ormgift<br />
Alkaliner, cuarve, hämar transport av jonkanaler</p>
<p>kanaler och transportförer har olika mekanismer för att öppna och stänga</p>
<hr />
<h3>Kanalfogar</h3>
<p>(gap junctions)</p>
<p>Möliggör snabb transport mellan celler<br />
Förbinder cytoplasman<br />
Uppbyggda av konnexinringar<br />
Fri passage för <em>små</em> hydrofila molekyler/joner &lt; kDa</p>
<p>Näringsöverföring: lins &amp; ben<br />
Synkronisering: <br />
- finns mkt i hjärtat så allt drar åt sig samtidigt<br />
- livmoder för forlossning, för sammandrarning<br />
- stängs av <script type="math/tex">[Ca^{2+}]</script> går upp eller <script type="math/tex">[H^+]</script>
</p>
<hr />
<h1>Aktiv transport</h1>
<p>mot gradient<br />
kräver energitillsförsel</p>
<p>Det finns jongradienter i däggdjursceller<br />
- Na+ lågt i högt utanför<br />
- K högt inne, lågt utanför<br />
- Cl lågt inne, högt utanför</p>
<h4>Na+K+ ATPaset, en jonpump</h4>
<p>1/3 av all energi i alla celler används till det här<br />
(mer i vissa celler än andra)</p>
<ul>
<li>Nervsignalering</li>
<li>för att få in aminosyror/andra byggstenar</li>
<li>Pendlar mellan två konformationer (öppna åt olika håll, in/ut, ut/in)<ul>
<li>de fosfyliseras, tar upp en P från ATP från Aspartat</li>
</ul>
</li>
<li>6 steg<ul>
<li>1: 3 Na+ binder på cyt-sidan</li>
<li>2: Fosforylering</li>
<li>3: Eversion (vänder sig), frisläppning av Na+ extra cellulärt</li>
<li>4: 2 Ka+ binder in på ECM-sidan</li>
<li>5: Defosfylering</li>
<li>6: Eversion, K+ frisläpps i cytoplasman</li>
<li>Alltid Na+ cytoplasma→ECM och Ka+ ECM→cytoplasma<br />
Finns 70 st andra kända pumpar</li>
</ul>
</li>
</ul>
<hr />
<h4>Kardiotona steoider hämmar Na+-K+ ATPaset</h4>
<p>Används som läkemedel för personer som har hjärtsvikt, leder till starkar kontraktioner av hjärtmuskler<br />
Läkemedel heter Digitoxin, Onabain som man kan plocka från växter</p>
<p>Behöver veta vad det här proteinet gör</p>
<hr />
<h4>ABC-transportörer ändrar konformation när de binder och hydrolyserar ATP</h4>
<p>ATP-bindande kasett<br />
Kräver två ATP per transportcykel<br />
Används för att transportera ut socker i eukaryota (i prokaryoter in)<br />
1. Substrat binder från cytoplasman<br />
2. Konformationsändring - ökad affinitet för ATP<br />
3. ATP binder - eversion (vänder)<br />
4. Substrat frisläpps ECM<br />
5. Defosfylering 2 ATP → 2 ADP, konformationsändring, eversion</p>
<p>Ställer till besvär inom medicinen, skickar in hydrofoba föreningar. Många läkemedel är hydrofoba. Men sådana här proteiner finns det som inducerar läkemedel, multidrog-resistans, när de fått en så skickar de ut. Men de skickar ut andra läkemedel också</p>
<h4>MDR-multidrogresistens</h4>
<ul>
<li>ABC-transportör</li>
<li>Skickar ut xenobiotika=kroppsfrämmande</li>
<li>Induceras t.ex. av läkemedel</li>
<li>Blir fler om de utsätts av mkt<br />
CFTR-muterat cystisk firos, ABC-transportör. Segare slem i lungorna, olika mkt vatten som attraheras till det här slemmet.</li>
</ul>
<hr />
<h3>Tre grupper av membrantransportör</h3>
<p>Kan vara både passiva och transporta</p>
<ul>
<li>Uniporter<ul>
<li><em>passiv transport</em></li>
<li>en förening, två håll</li>
<li>t.ex. glukostransportören</li>
</ul>
</li>
<li>Symport<ul>
<li><em>sekundär aktiv transport</em><ul>
<li>p-typ ATP eller ABC-transportörer heter <em>primär aktiv transport</em></li>
</ul>
</li>
<li>två föreningar, samma håll</li>
<li>använder en gradient för att skapa en annan</li>
<li>händer t.ex. epitelceller där det krävs mkt in</li>
<li>Na+ hjälper glukos in mot sin gradient</li>
</ul>
</li>
<li>Antiporter<ul>
<li><em>sekundär aktiv transport</em></li>
<li>två föreningar, olika håll<ul>
<li>en med gradient - nästan alltid <script type="math/tex">Na^+_{(in)}</script>
</li>
<li>en mot gradient - tex <script type="math/tex">Ca^{2+}_{(in)}</script>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<hr />
<h3>Glukos kan tas upp mot koncentrationsgradient med sekundär aktiv transport Glukosupptag</h3>
<hr />
<h3>Glukosupptag från tarmarna involverar transportörer av olika typer Begrepp</h3>
<p>I samma cell kan man ha olika typer av transport av samma typ av</p>
<h1>Summary</h1>
<p>transportör med gradient<br />
hyperton mer joner, ut vatten<br />
hypoton mindre joner, in vatten<br />
aquaporiner släpper bara igenom vatten<br />
jonkanaler behöver aktiveras 3 st (ligand, potential, mekaniska dragningar)<br />
primärt om ATP är med i reaktionen<br />
sekundär om ATP hjälpt till att bygga upp gradienten<br />
kanalfogar binder ihop små celler, t.ex. näring i benceller<br />
Jongradienter Na/Kalium mkt inne/ut på av ATPaset-pump<br />
ABC kräver 2 ATP fosfo+defosfo<br />
MDR inblandat i pumpar</p>
</body>
</html>