') + ')', 'gi');
if (regex.test(text)) {
found = true;
var frag = document.createDocumentFragment();
var parts = text.split(regex);
parts.forEach(function(part, i) {
if (i % 2 === 0) {
frag.appendChild(document.createTextNode(part));
} else {
var span = document.createElement('span');
span.className = 'userscript-highlight';
span.textContent = part;
frag.appendChild(span);
}
});
node.parentNode.replaceChild(frag, node);
}
});
} else if (node.nodeType === 1 && node.childNodes) { // element
var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];
if (!skipTags.includes(node.tagName)) {
Array.from(node.childNodes).forEach(highlight);
}
}
}
highlight(document.body);
// Re-highlight on dynamic content
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(m) {
m.addedNodes.forEach(function(node) {
if (node.nodeType === 1 || node.nodeType === 3) highlight(node);
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); }
})();
(function(){
try {
var __m = "*";
var __re = new RegExp('^' + ".*" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Strip utm_, fbclid, gclid, etc. from all links on page
(function() {
var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',
'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',
'ref', 'ref_src', 'source', 'medium', 'campaign'];
function cleanUrl(url) {
try {
var u = new URL(url, window.location.origin);
var changed = false;
trackingParams.forEach(function(p) {
if (u.searchParams.has(p)) {
u.searchParams.delete(p);
changed = true;
}
});
return changed ? u.toString() : url;
} catch (e) {
return url;
}
}
function cleanLinks() {
document.querySelectorAll('a[href]').forEach(function(a) {
var clean = cleanUrl(a.href);
if (clean !== a.href) a.href = clean;
});
}
cleanLinks();
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(m) {
m.addedNodes.forEach(function(node) {
if (node.nodeType === 1) {
if (node.tagName === 'A') cleanLinks();
node.querySelectorAll('a[href]').forEach(function(a) {
var clean = cleanUrl(a.href);
if (clean !== a.href) a.href = clean;
});
}
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); }
})();
(function(){
try {
var __m = "youtube.com";
var __re = new RegExp('^' + "youtube\\.com" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Auto-enable theater mode on YouTube
(function() {
function tryTheater() {
var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]');
if (btn && !btn.classList.contains('activated')) {
btn.click();
}
}
// Try immediately
tryTheater();
// Try after navigation (SPA)
var lastUrl = location.href;
setInterval(function() {
if (location.href !== lastUrl) {
lastUrl = location.href;
setTimeout(tryTheater, 500);
}
}, 1000);
// Also try on player load
var observer = new MutationObserver(tryTheater);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); }
})();
(function(){
try {
var __m = "*";
var __re = new RegExp('^' + ".*" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Remove or un-stick sticky/fixed headers that block content
(function() {
function unstick() {
document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) {
if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {
el.style.position = 'static';
el.style.top = 'auto';
el.style.zIndex = 'auto';
}
});
}
unstick();
var observer = new MutationObserver(unstick);
observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });
})();
}
} catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); }
})();
})();
Kather Lab at EKFZ / TU Dresden · GitHub
Kather Lab at EKFZ / TU Dresden
Popular repositories
Loading
Document Information Extraction & Anonymization using local LLMs
Python
176
25
Solid Tumor Associative Modeling in Pathology
Python
126
56
Tools to build deep learning pipelines.
Python
115
30
Histopathology Image Analysis
Python
95
17
Turn GitHub repositories into LLM tools. (ACL 2025)
Python
83
16
Anonymize Medical Documents using LLMs
Python
70
15
Repositories
Showing 10 of 83 repositories MediSwarm
Public
MediSwarm is an open-source project for advancing medical deep learning using swarm intelligence and NVFlare. Developed by the Odelia consortium, it ensures data privacy through federated learning, enabling collaborative, decentralized model training across institutions for improved medical research and applications.
KatherLab/MediSwarm's past year of commit activity Python
3 MIT
2
33
10
Updated Aug 31, 2026 deidentifier
Public
Web-based tool to deidentify documents using LLMs
KatherLab/deidentifier's past year of commit activity Python
1 AGPL-3.0
0
0
7
Updated Aug 26, 2026 llmaixweb
Public
A web interface for the LLMAIx framework. Information Extraction.
KatherLab/llmaixweb's past year of commit activity Python
22 AGPL-3.0
1
1
9
Updated Aug 25, 2026 LLMAIx
Public
Document Information Extraction & Anonymization using local LLMs
KatherLab/LLMAIx's past year of commit activity Python
176 AGPL-3.0
25
1
0
Updated Aug 24, 2026 STAMP
Public
Solid Tumor Associative Modeling in Pathology
KatherLab/STAMP's past year of commit activity Python
126 MIT
56
9
3
Updated Aug 21, 2026 MillerQA
Public
Curated benchmark suite for multi-dimensional clinical LLM evaluation
KatherLab/MillerQA's past year of commit activity Python
0
0
0
0
Updated Aug 20, 2026 LLM-Scheduler
Public
Scheduling vLLM instances on multiple GPUs using SLURM
KatherLab/LLM-Scheduler's past year of commit activity Python
5
2
0
0
Updated Aug 20, 2026 KatherLab/onprem-medical-agents's past year of commit activity Jupyter Notebook
0
0
0
0
Updated Aug 4, 2026 mopadi
Public
MOrphing histoPAthology DIffusion models for explainability of AI pipelines in medical image analysis.
KatherLab/mopadi's past year of commit activity Python
9
3
0
0
Updated Jul 28, 2026 KatherLab/MuCoDi's past year of commit activity Python
0
0
0
0
Updated Jul 25, 2026
You can’t perform that action at this time.