mirror of
https://github.com/msberends/AMR.git
synced 2026-07-21 17:10:54 +02:00
Compare commits
73 Commits
40d7a971c3
...
sir-s3-upd
| Author | SHA1 | Date | |
|---|---|---|---|
| d232666e49 | |||
| fc72cf9324 | |||
| 2f866985c9 | |||
| 6cb724a208 | |||
| 49274f010b | |||
| 8da0f525b5 | |||
|
|
68442f3042 | ||
| 39ea5f6597 | |||
| 65ec098acf | |||
|
|
e9e3de4469 | ||
| d94bdd2c6a | |||
| 8dab0a3730 | |||
|
|
0138e33ce9 | ||
|
|
1013ef6086 | ||
| 8fd8ee508f | |||
| 72db2b2562 | |||
| 3742e9e994 | |||
| 753f0e1ef9 | |||
| 1710e220dd | |||
| 79038fed21 | |||
| d384b492cf | |||
| 46f80b1378 | |||
| 5667ce3eae | |||
| e70f3de02e | |||
| 80f08f91da | |||
| 8d2c5afab6 | |||
| 4933292639 | |||
| 29706887b4 | |||
| a94452b9be | |||
| 26447fe29b | |||
| 38cebc1541 | |||
| 139f79d372 | |||
| b8d7c8af7f | |||
| 4b171745de | |||
| 48a59ee31a | |||
| 7d45ca9fbf | |||
| 3f9012dc47 | |||
| fcd8b95e51 | |||
| a778eb9bcf | |||
| dc5559a2c4 | |||
| b8f0f64287 | |||
| 2461631bce | |||
| 5e6bbdf3d1 | |||
| a455acdae3 | |||
| c70ac149ff | |||
|
|
04aec39371 | ||
| 407bc17311 | |||
| 30caa5e654 | |||
| 6013a7edc5 | |||
| faa9ae0d85 | |||
| 6819473457 | |||
| 52cd3e88cd | |||
| d2b3937a90 | |||
| f340e257fa | |||
| d166aa2c1d | |||
| 92316d5ddc | |||
| 4e7fca3b38 | |||
| abee2a954e | |||
| 6135805455 | |||
| 4a336d040c | |||
| be13934fe7 | |||
| 9e64d7708e | |||
| ea443f7483 | |||
| 0bab49ff86 | |||
| f310318c5f | |||
| 492fe6872f | |||
| ca00ed468e | |||
| 29b0ef1089 | |||
| 579025f678 | |||
| cf91e677c6 | |||
| ec937e8179 | |||
| 7c3320b967 | |||
| d31371613e |
@@ -16,6 +16,7 @@
|
|||||||
^docs$
|
^docs$
|
||||||
^git_.*\.sh$
|
^git_.*\.sh$
|
||||||
^index\.md$
|
^index\.md$
|
||||||
|
^index\.Rmd$
|
||||||
^installed_deps$
|
^installed_deps$
|
||||||
^Meta$
|
^Meta$
|
||||||
^pkgdown$
|
^pkgdown$
|
||||||
@@ -34,6 +35,8 @@
|
|||||||
^vignettes/PCA\.Rmd$
|
^vignettes/PCA\.Rmd$
|
||||||
^vignettes/resistance_predict\.Rmd$
|
^vignettes/resistance_predict\.Rmd$
|
||||||
^vignettes/WHONET\.Rmd$
|
^vignettes/WHONET\.Rmd$
|
||||||
|
^vignettes/WISCA\.Rmd$
|
||||||
^logo.svg$
|
^logo.svg$
|
||||||
^CRAN-SUBMISSION$
|
^CRAN-SUBMISSION$
|
||||||
^PythonPackage$
|
^PythonPackage$
|
||||||
|
^README\.Rmd$
|
||||||
|
|||||||
32
.github/ISSUE_TEMPLATE/1-bug-report.yml
vendored
32
.github/ISSUE_TEMPLATE/1-bug-report.yml
vendored
@@ -16,6 +16,24 @@ body:
|
|||||||
placeholder: Description
|
placeholder: Description
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: reprex
|
||||||
|
attributes:
|
||||||
|
label: Minimal Reproducible Example (optional)
|
||||||
|
description: Please include a short R code snippet that reproduces the problem, if possible.
|
||||||
|
placeholder:
|
||||||
|
e.g.
|
||||||
|
```r
|
||||||
|
ab_name("amoxicillin/clavulanic acid", language = "es")
|
||||||
|
```
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
> 💡 If you're not sure what's causing it, you can copy-paste your R session info using `sessionInfo()` or `devtools::session_info()` for us to help faster.
|
||||||
|
|
||||||
|
Otherwise, please fill in the below AMR package version.
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: version
|
id: version
|
||||||
attributes:
|
attributes:
|
||||||
@@ -24,17 +42,7 @@ body:
|
|||||||
multiple: false
|
multiple: false
|
||||||
options:
|
options:
|
||||||
- ''
|
- ''
|
||||||
- Latest CRAN version (2.1.1)
|
- Latest CRAN version (3.0.0)
|
||||||
- One of the latest GitHub versions (2.1.1.9xxx)
|
- One of the latest GitHub versions (3.0.0.9xxx)
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: checkboxes
|
|
||||||
id: field-impact
|
|
||||||
attributes:
|
|
||||||
label: Impacted Field
|
|
||||||
description: Which field is probably impacted by this? You may select more than one, or choose none at all.
|
|
||||||
options:
|
|
||||||
- label: Medical (human) microbiology
|
|
||||||
- label: Veterinary microbiology
|
|
||||||
- label: Environmental microbiology
|
|
||||||
|
|
||||||
|
|||||||
17
.github/ISSUE_TEMPLATE/2-feature-request.yml
vendored
17
.github/ISSUE_TEMPLATE/2-feature-request.yml
vendored
@@ -7,7 +7,7 @@ body:
|
|||||||
value: |
|
value: |
|
||||||
Thanks for taking the time to make a suggestion!
|
Thanks for taking the time to make a suggestion!
|
||||||
|
|
||||||
We'll be happy to implement on a short notice if this improves the AMR package. Do note that BY FAR most of the content of the current version is because of collaborators like you! So, many thanks in advance.
|
We'll be happy to implement on a short notice if this improves the AMR package. Do note that **BY FAR** most of the content of the current version is because of collaborators like you! So, many thanks in advance.
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: description
|
id: description
|
||||||
attributes:
|
attributes:
|
||||||
@@ -16,12 +16,11 @@ body:
|
|||||||
placeholder: Description
|
placeholder: Description
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: checkboxes
|
- type: textarea
|
||||||
id: field-impact
|
id: use-case
|
||||||
attributes:
|
attributes:
|
||||||
label: Impacted Field
|
label: Use Case (optional)
|
||||||
description: Which field is probably impacted by this? You may select more than one, or choose none at all.
|
description: When or why would this be useful?
|
||||||
options:
|
placeholder: Describe a situation where this would help you or others.
|
||||||
- label: Medical (human) microbiology
|
validations:
|
||||||
- label: Veterinary microbiology
|
required: false
|
||||||
- label: Environmental microbiology
|
|
||||||
|
|||||||
11
.github/ISSUE_TEMPLATE/config.yml
vendored
11
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,8 +1,11 @@
|
|||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
contact_links:
|
contact_links:
|
||||||
- name: I Have a Question - Ask Our AMR for R Assistant
|
- name: I Have a Question - Ask the AMR for R Assistant
|
||||||
url: https://chatgpt.com/g/g-M4UNLwFi5-amr-for-r-assistant
|
url: https://chat.amr-for-r.org
|
||||||
about: Ask questions or code suggestions to our AMR for R Assistant, a ChatGPT manually-trained model able to answer any question about the AMR package.
|
about: |
|
||||||
- name: I Have a Question - AMR Community Support
|
Ask questions or code suggestions to our AMR for R Assistant.
|
||||||
|
|
||||||
|
This is a ChatGPT manually-trained model able to answer any question about the AMR package.
|
||||||
|
- name: I Have a Question - Ask the AMR Community
|
||||||
url: https://github.com/msberends/AMR/discussions
|
url: https://github.com/msberends/AMR/discussions
|
||||||
about: You can also ask (and answer) questions here to share with others.
|
about: You can also ask (and answer) questions here to share with others.
|
||||||
|
|||||||
1
.github/prehooks/commit-msg
vendored
1
.github/prehooks/commit-msg
vendored
@@ -60,6 +60,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
git add data-raw/*
|
git add data-raw/*
|
||||||
|
git add data/*
|
||||||
git add -u
|
git add -u
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
91
.github/prehooks/pre-commit
vendored
91
.github/prehooks/pre-commit
vendored
@@ -51,6 +51,7 @@ if command -v Rscript > /dev/null; then
|
|||||||
currentpkg=$(Rscript -e "cat(pkgload::pkg_name())")
|
currentpkg=$(Rscript -e "cat(pkgload::pkg_name())")
|
||||||
echo "- Adding changed files in ./data-raw and ./man to this commit"
|
echo "- Adding changed files in ./data-raw and ./man to this commit"
|
||||||
git add data-raw/*
|
git add data-raw/*
|
||||||
|
git add data/*
|
||||||
git add man/*
|
git add man/*
|
||||||
git add R/sysdata.rda
|
git add R/sysdata.rda
|
||||||
git add NAMESPACE
|
git add NAMESPACE
|
||||||
@@ -67,53 +68,59 @@ echo ""
|
|||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
echo "Updating semantic versioning and date..."
|
echo "Updating semantic versioning and date..."
|
||||||
|
|
||||||
# Get tags from remote and remove tags not on remote
|
current_branch=$(git rev-parse --abbrev-ref HEAD)
|
||||||
git fetch origin --prune --prune-tags --quiet
|
if [ "$current_branch" != "main" ]; then
|
||||||
currenttagfull=$(git describe --tags --abbrev=0)
|
echo "- Current branch is '$current_branch'; skipping version/date update (only runs on 'main')"
|
||||||
currenttag=$(git describe --tags --abbrev=0 | sed 's/v//')
|
|
||||||
|
|
||||||
# Assume main branch to be 'main' or 'master'
|
|
||||||
defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$')
|
|
||||||
if [ "$currenttag" = "" ]; then
|
|
||||||
currenttag="0.0.1"
|
|
||||||
currentcommit=$(git rev-list --count ${defaultbranch})
|
|
||||||
echo "- No git tags found, creating one in format 'v(x).(y).(z)' - currently ${currentcommit} previous commits in '${defaultbranch}'"
|
|
||||||
else
|
else
|
||||||
currentcommit=$(git rev-list --count ${currenttagfull}..${defaultbranch})
|
# Version update logic begins here
|
||||||
echo "- Latest tag is '${currenttagfull}', with ${currentcommit} previous commits in '${defaultbranch}'"
|
|
||||||
fi
|
# Get tags from remote and remove tags not on remote
|
||||||
|
git fetch origin --prune --prune-tags --quiet
|
||||||
# Combine tag and commit number
|
currenttagfull=$(git describe --tags --abbrev=0)
|
||||||
currentversion="$currenttag.$((currentcommit + 9001))"
|
currenttag=$(git describe --tags --abbrev=0 | sed 's/v//')
|
||||||
echo "- ${currentpkg} pkg version set to ${currentversion}"
|
|
||||||
|
# Assume main branch to be 'main' or 'master'
|
||||||
# Update version number and date in DESCRIPTION
|
defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$')
|
||||||
sed -i -- "s/^Version: .*/Version: ${currentversion}/" DESCRIPTION
|
if [ "$currenttag" = "" ]; then
|
||||||
sed -i -- "s/^Date: .*/Date: $(date '+%Y-%m-%d')/" DESCRIPTION
|
currenttag="0.0.1"
|
||||||
echo "- Updated version number and date in ./DESCRIPTION"
|
currentcommit=$(git rev-list --count ${defaultbranch})
|
||||||
rm -f DESCRIPTION--
|
echo "- No git tags found, creating one in format 'v(x).(y).(z)' - currently ${currentcommit} previous commits in '${defaultbranch}'"
|
||||||
git add DESCRIPTION
|
else
|
||||||
|
currentcommit=$(git rev-list --count ${currenttagfull}..${defaultbranch})
|
||||||
# Update version number in NEWS.md
|
echo "- Latest tag is '${currenttagfull}', with ${currentcommit} previous commits in '${defaultbranch}'"
|
||||||
if [ -e "NEWS.md" ]; then
|
|
||||||
if [ "$currentpkg" = "your" ]; then
|
|
||||||
currentpkg=""
|
|
||||||
fi
|
fi
|
||||||
sed -i -- "1s/.*/# ${currentpkg} ${currentversion}/" NEWS.md
|
|
||||||
echo "- Updated version number in ./NEWS.md"
|
# Combine tag and commit number
|
||||||
rm -f NEWS.md--
|
currentversion="$currenttag.$((currentcommit + 9001))"
|
||||||
git add NEWS.md
|
echo "- ${currentpkg} pkg version set to ${currentversion}"
|
||||||
else
|
|
||||||
echo "- No NEWS.md found!"
|
# Update version number and date in DESCRIPTION
|
||||||
|
sed -i -- "s/^Version: .*/Version: ${currentversion}/" DESCRIPTION
|
||||||
|
sed -i -- "s/^Date: .*/Date: $(date '+%Y-%m-%d')/" DESCRIPTION
|
||||||
|
echo "- Updated version number and date in ./DESCRIPTION"
|
||||||
|
rm -f DESCRIPTION--
|
||||||
|
git add DESCRIPTION
|
||||||
|
|
||||||
|
# Update version number in NEWS.md
|
||||||
|
if [ -e "NEWS.md" ]; then
|
||||||
|
if [ "$currentpkg" = "your" ]; then
|
||||||
|
currentpkg=""
|
||||||
|
fi
|
||||||
|
sed -i -- "1s/.*/# ${currentpkg} ${currentversion}/" NEWS.md
|
||||||
|
echo "- Updated version number in ./NEWS.md"
|
||||||
|
rm -f NEWS.md--
|
||||||
|
git add NEWS.md
|
||||||
|
else
|
||||||
|
echo "- No NEWS.md found!"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Save the version number for use in the commit-msg hook
|
||||||
|
echo "${currentversion}" > .git/commit_version.tmp
|
||||||
fi
|
fi
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Save the version number for use in the commit-msg hook
|
|
||||||
echo "${currentversion}" > .git/commit_version.tmp
|
|
||||||
|
|
||||||
# Generate GPT knowledge info for our Assistant (https://chatgpt.com/g/g-M4UNLwFi5-amr-for-r-assistant)
|
|
||||||
bash data-raw/_generate_GPT_knowledge_input.sh "${currentversion}"
|
|
||||||
git add data-raw/*
|
git add data-raw/*
|
||||||
|
git add data/*
|
||||||
git add -u
|
git add -u
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
config:
|
config:
|
||||||
# current development version, check all major OSes:
|
# current development version, check all major OSes:
|
||||||
- {os: macOS-latest, r: 'devel', allowfail: true}
|
# - {os: macOS-latest, r: 'devel', allowfail: true}
|
||||||
- {os: windows-latest, r: 'devel', allowfail: false}
|
- {os: windows-latest, r: 'devel', allowfail: false}
|
||||||
- {os: ubuntu-latest, r: 'devel', allowfail: false, http-user-agent: 'release'}
|
- {os: ubuntu-latest, r: 'devel', allowfail: false, http-user-agent: 'release'}
|
||||||
|
|
||||||
|
|||||||
7
.github/workflows/check-old-tinytest.yaml
vendored
7
.github/workflows/check-old-tinytest.yaml
vendored
@@ -59,8 +59,15 @@ jobs:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
|
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
|
||||||
|
LANG: en_US.UTF-8
|
||||||
|
LC_ALL: en_US.UTF-8
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Set up locales
|
||||||
|
run: |
|
||||||
|
sudo locale-gen en_US.UTF-8
|
||||||
|
sudo update-locale LANG=en_US.UTF-8
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: r-lib/actions/setup-r@v2
|
- uses: r-lib/actions/setup-r@v2
|
||||||
|
|||||||
3
.github/workflows/lintr.yaml
vendored
3
.github/workflows/lintr.yaml
vendored
@@ -69,8 +69,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
run: |
|
run: |
|
||||||
# old: lintr::lint_package(linters = lintr::with_defaults(line_length_linter = NULL, trailing_whitespace_linter = NULL, object_name_linter = NULL, cyclocomp_linter = NULL, object_length_linter = lintr::object_length_linter(length = 50L)), exclusions = list("R/aa_helper_pm_functions.R"))
|
# get ALL linters, not just default ones
|
||||||
# now get ALL linters, not just default ones
|
|
||||||
linters <- getNamespaceExports(asNamespace("lintr"))
|
linters <- getNamespaceExports(asNamespace("lintr"))
|
||||||
linters <- sort(linters[grepl("_linter$", linters)])
|
linters <- sort(linters[grepl("_linter$", linters)])
|
||||||
# lose deprecated
|
# lose deprecated
|
||||||
|
|||||||
37
.github/workflows/publish-to-pypi.yml
vendored
37
.github/workflows/publish-to-pypi.yml
vendored
@@ -60,7 +60,8 @@ jobs:
|
|||||||
cd data-raw/
|
cd data-raw/
|
||||||
bash _generate_python_wrapper.sh
|
bash _generate_python_wrapper.sh
|
||||||
|
|
||||||
- name: Publish to PyPI
|
- name: Upload to PyPI
|
||||||
|
continue-on-error: true
|
||||||
env:
|
env:
|
||||||
TWINE_USERNAME: "__token__"
|
TWINE_USERNAME: "__token__"
|
||||||
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
||||||
@@ -68,7 +69,7 @@ jobs:
|
|||||||
cd PythonPackage/AMR
|
cd PythonPackage/AMR
|
||||||
python -m twine upload dist/*
|
python -m twine upload dist/*
|
||||||
|
|
||||||
- name: Publish to PyPI Testserver
|
- name: Upload to PyPI Testserver
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
env:
|
env:
|
||||||
TWINE_USERNAME: "__token__"
|
TWINE_USERNAME: "__token__"
|
||||||
@@ -77,6 +78,37 @@ jobs:
|
|||||||
cd PythonPackage/AMR
|
cd PythonPackage/AMR
|
||||||
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
|
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
|
||||||
|
|
||||||
|
# - name: Set up Miniconda
|
||||||
|
# continue-on-error: true
|
||||||
|
# uses: conda-incubator/setup-miniconda@v2
|
||||||
|
# with:
|
||||||
|
# auto-update-conda: true
|
||||||
|
# miniconda-version: "latest"
|
||||||
|
# channels: conda-forge,defaults
|
||||||
|
# activate-environment: build-env
|
||||||
|
# python-version: "3.9"
|
||||||
|
#
|
||||||
|
# - name: Install conda-build and anaconda-client
|
||||||
|
# continue-on-error: true
|
||||||
|
# run: |
|
||||||
|
# conda install -y conda-build anaconda-client
|
||||||
|
#
|
||||||
|
# - name: Build conda package
|
||||||
|
# continue-on-error: true
|
||||||
|
# run: |
|
||||||
|
# cd PythonPackage/AMR
|
||||||
|
# conda skeleton pypi . # Or use custom recipe
|
||||||
|
# conda-build ./ --output-folder conda-bld
|
||||||
|
#
|
||||||
|
# - name: Upload to Anaconda
|
||||||
|
# continue-on-error: true
|
||||||
|
# env:
|
||||||
|
# ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }}
|
||||||
|
# run: |
|
||||||
|
# anaconda login --token $ANACONDA_API_TOKEN
|
||||||
|
# anaconda upload conda-bld/**/amr-*.tar.bz2 --user msberends --label main
|
||||||
|
# rm -rf conda-bld
|
||||||
|
|
||||||
- name: Git push to python-wrapper branch
|
- name: Git push to python-wrapper branch
|
||||||
run: |
|
run: |
|
||||||
find . -mindepth 1 ! -path './PythonPackage*' -exec rm -rf {} +
|
find . -mindepth 1 ! -path './PythonPackage*' -exec rm -rf {} +
|
||||||
@@ -93,5 +125,4 @@ jobs:
|
|||||||
git rm -rf . || true
|
git rm -rf . || true
|
||||||
git add .
|
git add .
|
||||||
git commit -m "Python wrapper update"
|
git commit -m "Python wrapper update"
|
||||||
# git push origin python-wrapper --force
|
|
||||||
git push https://$PYPI_PAT@github.com/msberends/AMR.git python-wrapper --force
|
git push https://$PYPI_PAT@github.com/msberends/AMR.git python-wrapper --force
|
||||||
|
|||||||
66
.github/workflows/renew-gpt-training-data.yml
vendored
Normal file
66
.github/workflows/renew-gpt-training-data.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# ==================================================================== #
|
||||||
|
# TITLE: #
|
||||||
|
# AMR: An R Package for Working with Antimicrobial Resistance Data #
|
||||||
|
# #
|
||||||
|
# SOURCE CODE: #
|
||||||
|
# https://github.com/msberends/AMR #
|
||||||
|
# #
|
||||||
|
# PLEASE CITE THIS SOFTWARE AS: #
|
||||||
|
# Berends MS, Luz CF, Friedrich AW, et al. (2022). #
|
||||||
|
# AMR: An R Package for Working with Antimicrobial Resistance Data. #
|
||||||
|
# Journal of Statistical Software, 104(3), 1-31. #
|
||||||
|
# https://doi.org/10.18637/jss.v104.i03 #
|
||||||
|
# #
|
||||||
|
# Developed at the University of Groningen and the University Medical #
|
||||||
|
# Center Groningen in The Netherlands, in collaboration with many #
|
||||||
|
# colleagues from around the world, see our website. #
|
||||||
|
# #
|
||||||
|
# This R package is free software; you can freely use and distribute #
|
||||||
|
# it for both personal and commercial purposes under the terms of the #
|
||||||
|
# GNU General Public License version 2.0 (GNU GPL-2), as published by #
|
||||||
|
# the Free Software Foundation. #
|
||||||
|
# We created this package for both routine data analysis and academic #
|
||||||
|
# research and it was publicly released in the hope that it will be #
|
||||||
|
# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. #
|
||||||
|
# #
|
||||||
|
# Visit our website for the full manual and a complete tutorial about #
|
||||||
|
# how to conduct AMR data analysis: https://amr-for-r.org #
|
||||||
|
# ==================================================================== #
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
# only on main
|
||||||
|
branches: "main"
|
||||||
|
|
||||||
|
name: Publish GPT Training Data to GitHub
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-amr-assistant:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
PYPI_PAT: ${{ secrets.PYPI_PAT }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Build the training data
|
||||||
|
run: |
|
||||||
|
bash data-raw/_generate_GPT_knowledge_input.sh
|
||||||
|
|
||||||
|
- name: Git push to amr-for-r-assistant repo
|
||||||
|
run: |
|
||||||
|
mkdir ~/other
|
||||||
|
# to also mv hidden files:
|
||||||
|
shopt -s dotglob
|
||||||
|
mv ./* ~/other/
|
||||||
|
git clone https://github.com/msberends/amr-for-r-assistant
|
||||||
|
cd amr-for-r-assistant
|
||||||
|
mv ~/other/data-raw/latest_training_data.txt ./
|
||||||
|
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git add latest_training_data.txt
|
||||||
|
git commit -m "GPT training data update"
|
||||||
|
git push https://$PYPI_PAT@github.com/msberends/amr-for-r-assistant.git main --force
|
||||||
4
.github/workflows/website.yaml
vendored
4
.github/workflows/website.yaml
vendored
@@ -70,6 +70,10 @@ jobs:
|
|||||||
any::pkgdown
|
any::pkgdown
|
||||||
any::tidymodels
|
any::tidymodels
|
||||||
|
|
||||||
|
- name: Remove Welcome to AMR vignette
|
||||||
|
run: |
|
||||||
|
rm vignettes/welcome_to_AMR.Rmd
|
||||||
|
|
||||||
# Send updates to repo using GH Actions bot
|
# Send updates to repo using GH Actions bot
|
||||||
- name: Create website in separate branch
|
- name: Create website in separate branch
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -12,6 +12,8 @@ inst/doc
|
|||||||
/src/*.d
|
/src/*.d
|
||||||
/src/*.so
|
/src/*.so
|
||||||
_noinclude
|
_noinclude
|
||||||
|
index.html
|
||||||
|
README.html
|
||||||
*.dll
|
*.dll
|
||||||
vignettes/*.R
|
vignettes/*.R
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
Version: 2.1.1
|
Version: 3.0.0
|
||||||
Date: 2023-10-20 16:05:16 UTC
|
Date: 2025-06-01 16:52:53 UTC
|
||||||
SHA: ca72a646d041f7f096c4e196e8ae2fb2b176019c
|
SHA: 79038fed2169a25a7fc067c80bb25d9d78be21d9
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Package: AMR
|
Package: AMR
|
||||||
Version: 2.1.1.9236
|
Version: 3.0.0.9017
|
||||||
Date: 2025-04-12
|
Date: 2025-07-28
|
||||||
Title: Antimicrobial Resistance Data Analysis
|
Title: Antimicrobial Resistance Data Analysis
|
||||||
Description: Functions to simplify and standardise antimicrobial resistance (AMR)
|
Description: Functions to simplify and standardise antimicrobial resistance (AMR)
|
||||||
data analysis and to work with microbial and antimicrobial properties by
|
data analysis and to work with microbial and antimicrobial properties by
|
||||||
@@ -47,9 +47,12 @@ Suggests:
|
|||||||
ggplot2,
|
ggplot2,
|
||||||
knitr,
|
knitr,
|
||||||
openxlsx,
|
openxlsx,
|
||||||
|
parallelly,
|
||||||
pillar,
|
pillar,
|
||||||
progress,
|
progress,
|
||||||
readxl,
|
readxl,
|
||||||
|
recipes,
|
||||||
|
rlang,
|
||||||
rmarkdown,
|
rmarkdown,
|
||||||
rstudioapi,
|
rstudioapi,
|
||||||
rvest,
|
rvest,
|
||||||
|
|||||||
101
NAMESPACE
101
NAMESPACE
@@ -1,15 +1,18 @@
|
|||||||
# Generated by roxygen2: do not edit by hand
|
# Generated by roxygen2: do not edit by hand
|
||||||
|
|
||||||
S3method("!=",amr_selector)
|
S3method("!=",amr_selector)
|
||||||
|
S3method("$",deprecated_amr_dataset)
|
||||||
S3method("&",amr_selector)
|
S3method("&",amr_selector)
|
||||||
S3method("+",ab)
|
S3method("+",ab)
|
||||||
S3method("+",amr_selector)
|
S3method("+",amr_selector)
|
||||||
S3method("==",amr_selector)
|
S3method("==",amr_selector)
|
||||||
S3method("[",ab)
|
S3method("[",ab)
|
||||||
S3method("[",av)
|
S3method("[",av)
|
||||||
|
S3method("[",deprecated_amr_dataset)
|
||||||
S3method("[",disk)
|
S3method("[",disk)
|
||||||
S3method("[",mic)
|
S3method("[",mic)
|
||||||
S3method("[",mo)
|
S3method("[",mo)
|
||||||
|
S3method("[",sir)
|
||||||
S3method("[<-",ab)
|
S3method("[<-",ab)
|
||||||
S3method("[<-",av)
|
S3method("[<-",av)
|
||||||
S3method("[<-",disk)
|
S3method("[<-",disk)
|
||||||
@@ -18,9 +21,11 @@ S3method("[<-",mo)
|
|||||||
S3method("[<-",sir)
|
S3method("[<-",sir)
|
||||||
S3method("[[",ab)
|
S3method("[[",ab)
|
||||||
S3method("[[",av)
|
S3method("[[",av)
|
||||||
|
S3method("[[",deprecated_amr_dataset)
|
||||||
S3method("[[",disk)
|
S3method("[[",disk)
|
||||||
S3method("[[",mic)
|
S3method("[[",mic)
|
||||||
S3method("[[",mo)
|
S3method("[[",mo)
|
||||||
|
S3method("[[",sir)
|
||||||
S3method("[[<-",ab)
|
S3method("[[<-",ab)
|
||||||
S3method("[[<-",av)
|
S3method("[[<-",av)
|
||||||
S3method("[[<-",disk)
|
S3method("[[<-",disk)
|
||||||
@@ -40,6 +45,7 @@ S3method(any,amr_selector)
|
|||||||
S3method(any,amr_selector_any_all)
|
S3method(any,amr_selector_any_all)
|
||||||
S3method(as.data.frame,ab)
|
S3method(as.data.frame,ab)
|
||||||
S3method(as.data.frame,av)
|
S3method(as.data.frame,av)
|
||||||
|
S3method(as.data.frame,deprecated_amr_dataset)
|
||||||
S3method(as.data.frame,mic)
|
S3method(as.data.frame,mic)
|
||||||
S3method(as.data.frame,mo)
|
S3method(as.data.frame,mo)
|
||||||
S3method(as.double,mic)
|
S3method(as.double,mic)
|
||||||
@@ -93,7 +99,9 @@ S3method(print,av)
|
|||||||
S3method(print,bug_drug_combinations)
|
S3method(print,bug_drug_combinations)
|
||||||
S3method(print,custom_eucast_rules)
|
S3method(print,custom_eucast_rules)
|
||||||
S3method(print,custom_mdro_guideline)
|
S3method(print,custom_mdro_guideline)
|
||||||
|
S3method(print,deprecated_amr_dataset)
|
||||||
S3method(print,disk)
|
S3method(print,disk)
|
||||||
|
S3method(print,interpreted_sir)
|
||||||
S3method(print,mic)
|
S3method(print,mic)
|
||||||
S3method(print,mo)
|
S3method(print,mo)
|
||||||
S3method(print,mo_renamed)
|
S3method(print,mo_renamed)
|
||||||
@@ -101,6 +109,8 @@ S3method(print,mo_uncertainties)
|
|||||||
S3method(print,pca)
|
S3method(print,pca)
|
||||||
S3method(print,sir)
|
S3method(print,sir)
|
||||||
S3method(print,sir_log)
|
S3method(print,sir_log)
|
||||||
|
S3method(print,step_mic_log2)
|
||||||
|
S3method(print,step_sir_numeric)
|
||||||
S3method(quantile,mic)
|
S3method(quantile,mic)
|
||||||
S3method(rep,ab)
|
S3method(rep,ab)
|
||||||
S3method(rep,av)
|
S3method(rep,av)
|
||||||
@@ -154,6 +164,10 @@ export(administrable_per_os)
|
|||||||
export(age)
|
export(age)
|
||||||
export(age_groups)
|
export(age_groups)
|
||||||
export(all_antimicrobials)
|
export(all_antimicrobials)
|
||||||
|
export(all_mic)
|
||||||
|
export(all_mic_predictors)
|
||||||
|
export(all_sir)
|
||||||
|
export(all_sir_predictors)
|
||||||
export(aminoglycosides)
|
export(aminoglycosides)
|
||||||
export(aminopenicillins)
|
export(aminopenicillins)
|
||||||
export(amr_class)
|
export(amr_class)
|
||||||
@@ -161,7 +175,6 @@ export(amr_distance_from_row)
|
|||||||
export(amr_selector)
|
export(amr_selector)
|
||||||
export(anti_join_microorganisms)
|
export(anti_join_microorganisms)
|
||||||
export(antibiogram)
|
export(antibiogram)
|
||||||
export(antibiotics)
|
|
||||||
export(antifungals)
|
export(antifungals)
|
||||||
export(antimicrobials_equal)
|
export(antimicrobials_equal)
|
||||||
export(antimycobacterials)
|
export(antimycobacterials)
|
||||||
@@ -348,6 +361,8 @@ export(sir_df)
|
|||||||
export(sir_interpretation_history)
|
export(sir_interpretation_history)
|
||||||
export(sir_predict)
|
export(sir_predict)
|
||||||
export(skewness)
|
export(skewness)
|
||||||
|
export(step_mic_log2)
|
||||||
|
export(step_sir_numeric)
|
||||||
export(streptogramins)
|
export(streptogramins)
|
||||||
export(sulfonamides)
|
export(sulfonamides)
|
||||||
export(susceptibility)
|
export(susceptibility)
|
||||||
@@ -358,6 +373,90 @@ export(translate_AMR)
|
|||||||
export(trimethoprims)
|
export(trimethoprims)
|
||||||
export(ureidopenicillins)
|
export(ureidopenicillins)
|
||||||
export(wisca)
|
export(wisca)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(cleaner::freq, mo)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(cleaner::freq, sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, antibiogram)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, resistance_predict)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::fortify, disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::fortify, mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::fortify, resistance_predict)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(ggplot2::fortify, sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(knitr::knit_print, antibiogram)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(knitr::knit_print, formatted_bug_drug_combinations)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, ab)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, av)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, mo)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::tbl_format_footer, antibiogram)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::tbl_sum, antibiogram)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::type_sum, ab)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::type_sum, av)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::type_sum, mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::type_sum, mo)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(pillar::type_sum, sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(recipes::bake, step_mic_log2)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(recipes::bake, step_sir_numeric)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(recipes::prep, step_mic_log2)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(recipes::prep, step_sir_numeric)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(recipes::tidy, step_mic_log2)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(recipes::tidy, step_sir_numeric)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(skimr::get_skimmers, disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(skimr::get_skimmers, mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(skimr::get_skimmers, mo)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(skimr::get_skimmers, sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_arith, mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, ab.character)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, av.character)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.ab)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.amr_selector)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.av)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.mo)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, disk.character)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, disk.disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, disk.double)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, disk.integer)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, double.disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, double.mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, factor.mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, integer.disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, integer.mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, logical.amr_selector_any_all)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.character)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.double)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.factor)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.integer)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mo.character)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, sir.character)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, sir.sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_math, mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, ab.ab)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, ab.default)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, amr_selector.character)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, amr_selector_any_all.logical)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, av.av)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, av.default)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, character.amr_selector)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, character.sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, disk.default)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, disk.disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, logical.amr_selector_any_all)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, mic.default)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, mic.mic)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, mo.default)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, mo.mo)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, sir.default)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, sir.sir)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype_abbr, disk)
|
||||||
|
if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype_full, disk)
|
||||||
importFrom(graphics,arrows)
|
importFrom(graphics,arrows)
|
||||||
importFrom(graphics,axis)
|
importFrom(graphics,axis)
|
||||||
importFrom(graphics,barplot)
|
importFrom(graphics,barplot)
|
||||||
|
|||||||
76
NEWS.md
76
NEWS.md
@@ -1,24 +1,47 @@
|
|||||||
# AMR 2.1.1.9236
|
# AMR 3.0.0.9017
|
||||||
|
|
||||||
*(this beta version will eventually become v3.0. We're happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using [the instructions here](https://amr-for-r.org/#get-this-package).)*
|
This is primarily a bugfix release, though we added one nice feature too.
|
||||||
|
|
||||||
|
### New
|
||||||
|
* Integration with the **tidymodels** framework to allow seamless use of MIC and SIR data in modelling pipelines via `recipes`
|
||||||
|
- `step_mic_log2()` to transform `<mic>` columns with log2, and `step_sir_numeric()` to convert `<sir>` columns to numeric
|
||||||
|
- New `tidyselect` helpers: `all_mic()`, `all_mic_predictors()`, `all_sir()`, `all_sir_predictors()`
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
* Fixed a bug in `antibiogram()` for when no antimicrobials are set
|
||||||
|
* Fixed a bug in `antibiogram()` to allow column names containing the `+` character (#222)
|
||||||
|
* Fixed a bug in `as.ab()` for antimicrobial codes with a number in it if they are preceded by a space
|
||||||
|
* Fixed a bug in `eucast_rules()` for using specific custom rules
|
||||||
|
* Fixed a bug in `as.sir()` to allow any tidyselect language (#220)
|
||||||
|
* Fixed a bug in `as.sir()` to pick right breakpoint when `uti = FALSE` (#216)
|
||||||
|
* Fixed a bug in `ggplot_sir()` when using `combine_SI = FALSE` (#213)
|
||||||
|
* Fixed all plotting to contain a separate colour for SDD (susceptible dose-dependent) (#223)
|
||||||
|
* Fixed some specific Dutch translations for antimicrobials
|
||||||
|
* Added `names` to `age_groups()` so that custom names can be given (#215)
|
||||||
|
* Added note to `as.sir()` to make it explicit when higher-level taxonomic breakpoints are used (#218)
|
||||||
|
* Updated `random_mic()` and `random_disk()` to set skewedness of the distribution and allow multiple microorganisms
|
||||||
|
|
||||||
|
|
||||||
|
# AMR 3.0.0
|
||||||
|
|
||||||
#### A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental)
|
|
||||||
This package now supports not only tools for AMR data analysis in clinical settings, but also for veterinary and environmental microbiology. This was made possible through a collaboration with the [University of Prince Edward Island's Atlantic Veterinary College](https://www.upei.ca/avc), Canada. To celebrate this great improvement of the package, we also updated the package logo to reflect this change.
|
This package now supports not only tools for AMR data analysis in clinical settings, but also for veterinary and environmental microbiology. This was made possible through a collaboration with the [University of Prince Edward Island's Atlantic Veterinary College](https://www.upei.ca/avc), Canada. To celebrate this great improvement of the package, we also updated the package logo to reflect this change.
|
||||||
|
|
||||||
## Breaking
|
### Breaking
|
||||||
* Dataset `antibiotics` has been renamed to `antimicrobials` as the data set contains more than just antibiotics. Using `antibiotics` will still work, but now returns a warning.
|
* Dataset `antibiotics` has been renamed to `antimicrobials` as the data set contains more than just antibiotics. Using `antibiotics` will still work, but now returns a warning.
|
||||||
* Removed all functions and references that used the deprecated `rsi` class, which were all replaced with their `sir` equivalents over two years ago.
|
* Removed all functions and references that used the deprecated `rsi` class, which were all replaced with their `sir` equivalents over two years ago.
|
||||||
* Function `resistance_predict()` is now deprecated and will be removed in a future version. Use the `tidymodels` framework instead, for which we [wrote a basic introduction](https://amr-for-r.org/articles/AMR_with_tidymodels.html).
|
* Functions `resistance_predict()` and `sir_predict()` are now deprecated and will be removed in a future version. Use the `tidymodels` framework instead, for which we [wrote a basic introduction](https://amr-for-r.org/articles/AMR_with_tidymodels.html).
|
||||||
|
|
||||||
## New
|
### New
|
||||||
* **One Health implementation**
|
* **One Health implementation**
|
||||||
* Function `as.sir()` now has extensive support for veterinary breakpoints from CLSI. Use `breakpoint_type = "animal"` and set the `host` argument to a variable that contains animal species names.
|
* Function `as.sir()` now has extensive support for veterinary breakpoints from CLSI. Use `breakpoint_type = "animal"` and set the `host` argument to a variable that contains animal species names.
|
||||||
* The `clinical_breakpoints` data set contains all these breakpoints, and can be downloaded on our [download page](https://amr-for-r.org/articles/datasets.html).
|
* The `clinical_breakpoints` data set contains all these breakpoints, and can be downloaded on our [download page](https://amr-for-r.org/articles/datasets.html).
|
||||||
* The (new) `antimicrobials` data set contains all veterinary antibiotics, such as pradofloxacin and enrofloxacin. All WHOCC codes for veterinary use have been added as well.
|
* The (new) `antimicrobials` data set contains all veterinary antimicrobials, such as pradofloxacin and enrofloxacin. All WHOCC codes for veterinary use have been added as well.
|
||||||
* `ab_atc()` now supports ATC codes of veterinary antibiotics (that all start with "Q")
|
* `ab_atc()` now supports ATC codes of veterinary antimicrobials (that all start with "Q")
|
||||||
* `ab_url()` now supports retrieving the WHOCC url of their ATCvet pages
|
* `ab_url()` now supports retrieving the WHOCC url of their ATCvet pages
|
||||||
* **Support for WISCA antibiograms**
|
* **Support for WISCA antibiograms**
|
||||||
* The `antibiogram()` function now supports creating true Weighted-Incidence Syndromic Combination Antibiograms (WISCA), a powerful Bayesian method for estimating regimen coverage probabilities using pathogen incidence and antimicrobial susceptibility data. WISCA offers improved precision for syndrome-specific treatment, even in datasets with sparse data. A dedicated `wisca()` function is also available for easy usage.
|
* The `antibiogram()` function now supports creating true Weighted-Incidence Syndromic Combination Antibiograms (WISCA), a powerful Bayesian method for estimating regimen coverage probabilities using pathogen incidence and antimicrobial susceptibility data. WISCA offers improved precision for syndrome-specific treatment, even in datasets with sparse data. A dedicated `wisca()` function is also available for easy usage.
|
||||||
|
* **More global coverage of languages**
|
||||||
|
* Added full support for 8 new languages: Arabic, Bengali, Hindi, Indonesian, Korean, Swahili, Urdu, and Vietnamese. The `AMR` package is now available in 28 languages.
|
||||||
* **Major update to fungal taxonomy and tools for mycologists**
|
* **Major update to fungal taxonomy and tools for mycologists**
|
||||||
* MycoBank has now been integrated as the primary taxonomic source for fungi. The `microorganisms` data set has been enriched with new columns (`mycobank`, `mycobank_parent`, and `mycobank_renamed_to`) that provide detailed information for fungal species.
|
* MycoBank has now been integrated as the primary taxonomic source for fungi. The `microorganisms` data set has been enriched with new columns (`mycobank`, `mycobank_parent`, and `mycobank_renamed_to`) that provide detailed information for fungal species.
|
||||||
* A remarkable addition of over 20,000 new fungal records
|
* A remarkable addition of over 20,000 new fungal records
|
||||||
@@ -26,11 +49,12 @@ This package now supports not only tools for AMR data analysis in clinical setti
|
|||||||
* The `as.mo()` function and all `mo_*()` functions now include an `only_fungi` argument, allowing users to restrict results solely to fungal species. This ensures fungi are prioritised over bacteria during microorganism identification. This can also be set globally with the new `AMR_only_fungi` option.
|
* The `as.mo()` function and all `mo_*()` functions now include an `only_fungi` argument, allowing users to restrict results solely to fungal species. This ensures fungi are prioritised over bacteria during microorganism identification. This can also be set globally with the new `AMR_only_fungi` option.
|
||||||
* Also updated other kingdoms, welcoming a total of 2,149 new records from 2023 and 927 from 2024.
|
* Also updated other kingdoms, welcoming a total of 2,149 new records from 2023 and 927 from 2024.
|
||||||
* **Updated clinical breakpoints**
|
* **Updated clinical breakpoints**
|
||||||
* EUCAST 2024 and CLSI 2024 are now supported, by adding all of their over 4,000 new clinical breakpoints to the `clinical_breakpoints` data set for usage in `as.sir()`. EUCAST 2024 is now the new default guideline for all MIC and disk diffusion interpretations.
|
* Breakpoint of 2024 and 2025 of both CLSI and EUCAST are now supported, by adding all of their over 10,000 new clinical breakpoints to the `clinical_breakpoints` data set for usage in `as.sir()`. EUCAST 2025 is now the new default guideline for all MIC and disk diffusion interpretations.
|
||||||
* Added all Expected Resistant Phenotypes from EUCAST (v1.2). The default `rules` for `eucast_rules()` are now: `c("breakpoints", "expected_phenotypes")`.
|
* Added all Expected Resistant Phenotypes from EUCAST (v1.2). The default `rules` for `eucast_rules()` are now: `c("breakpoints", "expected_phenotypes")`.
|
||||||
* Updated the `intrinsic_resistant` data set, which is now based on EUCAST Expected Resistant Phenotypes v1.2
|
* Updated the `intrinsic_resistant` data set, which is now based on EUCAST Expected Resistant Phenotypes v1.2
|
||||||
* `as.sir()` now brings additional factor levels: "NI" for non-interpretable and "SDD" for susceptible dose-dependent. Currently, the `clinical_breakpoints` data set contains 24 breakpoints that can return the value "SDD" instead of "I".
|
* `as.sir()` now brings additional factor levels: "NI" for non-interpretable and "SDD" for susceptible dose-dependent. Currently, the `clinical_breakpoints` data set contains 24 breakpoints that can return the value "SDD" instead of "I".
|
||||||
* EUCAST interpretive rules (using `eucast_rules()`) are now available for EUCAST 12 (2022), 13 (2023), and 14 (2024).
|
* EUCAST interpretive rules (using `eucast_rules()`) are now available for EUCAST 12 (2022), 13 (2023), 14 (2024), and 15 (2025).
|
||||||
|
* EUCAST dosage tables (`dosage` data set) are now available for EUCAST 13 (2023), 14 (2024), and 15 (2025).
|
||||||
* **New advanced ggplot2 extensions for MIC and SIR plotting and transforming**
|
* **New advanced ggplot2 extensions for MIC and SIR plotting and transforming**
|
||||||
* New function group `scale_*_mic()`, namely: `scale_x_mic()`, `scale_y_mic()`, `scale_colour_mic()` and `scale_fill_mic()`. They allow easy plotting of MIC values. They allow for manual range definition and plotting missing intermediate log2 levels.
|
* New function group `scale_*_mic()`, namely: `scale_x_mic()`, `scale_y_mic()`, `scale_colour_mic()` and `scale_fill_mic()`. They allow easy plotting of MIC values. They allow for manual range definition and plotting missing intermediate log2 levels.
|
||||||
* New function group `scale_*_sir()`, namely: `scale_x_sir()`, `scale_colour_sir()` and `scale_fill_sir()`. They allow to plot the `sir` class, and translates into the system language at default. They also set colourblind-safe colours to the plots.
|
* New function group `scale_*_sir()`, namely: `scale_x_sir()`, `scale_colour_sir()` and `scale_fill_sir()`. They allow to plot the `sir` class, and translates into the system language at default. They also set colourblind-safe colours to the plots.
|
||||||
@@ -44,18 +68,20 @@ This package now supports not only tools for AMR data analysis in clinical setti
|
|||||||
* New function `mo_group_members()` to retrieve the member microorganisms of a microorganism group. For example, `mo_group_members("Strep group C")` returns a vector of all microorganisms that belong to that group.
|
* New function `mo_group_members()` to retrieve the member microorganisms of a microorganism group. For example, `mo_group_members("Strep group C")` returns a vector of all microorganisms that belong to that group.
|
||||||
* New functions `mic_p50()` and `mic_p90()` to retrieve the 50th and 90th percentile of MIC values.
|
* New functions `mic_p50()` and `mic_p90()` to retrieve the 50th and 90th percentile of MIC values.
|
||||||
|
|
||||||
## Changed
|
### Changed
|
||||||
* SIR interpretation
|
* SIR interpretation
|
||||||
* It is now possible to use column names for argument `ab`, `mo`, and `uti`: `as.sir(..., ab = "column1", mo = "column2", uti = "column3")`. This greatly improves the flexibility for users.
|
* Support for parallel computing to greatly improve speed using the `parallel` package (part of base R). Use `as.sir(your_data, parallel = TRUE)` to run SIR interpretation using multiple cores.
|
||||||
|
* It is now possible to use column names for arguments `guideline`, `ab`, `mo`, and `uti`: `as.sir(..., ab = "column1", mo = "column2", uti = "column3")`. This greatly improves the flexibility for users.
|
||||||
* Users can now set their own criteria (using regular expressions) as to what should be considered S, I, R, SDD, and NI.
|
* Users can now set their own criteria (using regular expressions) as to what should be considered S, I, R, SDD, and NI.
|
||||||
* To get quantitative values, `as.double()` on a `sir` object will return 1 for S, 2 for SDD/I, and 3 for R (NI will become `NA`). Other functions using `sir` classes (e.g., `summary()`) are updated to reflect the change to contain NI and SDD.
|
* To get quantitative values, `as.double()` on a `sir` object will return 1 for S, 2 for SDD/I, and 3 for R (NI will become `NA`). Other functions using `sir` classes (e.g., `summary()`) are updated to reflect the change to contain NI and SDD.
|
||||||
|
* Following CLSI interpretation rules, values outside the log2-dilution range will be rounded upwards to the nearest log2-level before interpretation. Only if using a CLSI guideline.
|
||||||
* Combined MIC values (e.g., from CLSI) are now supported
|
* Combined MIC values (e.g., from CLSI) are now supported
|
||||||
* The argument `conserve_capped_values` in `as.sir()` has been replaced with `capped_mic_handling`, which allows greater flexibility in handling capped MIC values (`<`, `<=`, `>`, `>=`). The four available options (`"standard"`, `"strict"`, `"relaxed"`, `"inverse"`) provide full control over whether these values should be interpreted conservatively or ignored. Using `conserve_capped_values` is now deprecated and returns a warning.
|
* The argument `conserve_capped_values` in `as.sir()` has been replaced with `capped_mic_handling`, which allows greater flexibility in handling capped MIC values (`<`, `<=`, `>`, `>=`). The four available options (`"standard"`, `"strict"`, `"relaxed"`, `"inverse"`) provide full control over whether these values should be interpreted conservatively or ignored. Using `conserve_capped_values` is now deprecated and returns a warning.
|
||||||
* Added argument `info` so silence all console messages
|
* Added argument `info` to silence all console messages
|
||||||
* `antibiogram()` function
|
* `antibiogram()` function
|
||||||
* Argument `antibiotics` has been renamed to `antimicrobials`. Using `antibiotics` will still work, but now returns a warning.
|
* Argument `antibiotics` has been renamed to `antimicrobials`. Using `antibiotics` will still work, but now returns a warning.
|
||||||
* Added argument `formatting_type` to set any of the 22 options for the formatting of all 'cells'. This defaults to `18` for non-WISCA and `14` for WISCA, changing the output of antibiograms to cells with more info.
|
* Added argument `formatting_type` to set any of the 22 options for the formatting of all 'cells'. This defaults to `18` for non-WISCA and `14` for WISCA, changing the output of antibiograms to cells with more info.
|
||||||
* For this reason, `add_total_n` is now `FALSE` at default since the denominators are added to the cells for non-WISCA. For WISCA, the denominator is not useful anyway.
|
* For this reason, `add_total_n` is now deprecated and `FALSE` at default since the denominators are added to the cells dependent on the `formatting_type` setting
|
||||||
* The `ab_transform` argument now defaults to `"name"`, displaying antibiotic column names instead of codes
|
* The `ab_transform` argument now defaults to `"name"`, displaying antibiotic column names instead of codes
|
||||||
* Antimicrobial selectors (previously: *antibiotic selectors*)
|
* Antimicrobial selectors (previously: *antibiotic selectors*)
|
||||||
* 'Antibiotic selectors' are now called 'antimicrobial selectors' since their scope is broader than just antibiotics. All documentation have been updated, and `ab_class()` and `ab_selector()` have been replaced with `amr_class()` and `amr_selector()`. The old functions are now deprecated and will be removed in a future version.
|
* 'Antibiotic selectors' are now called 'antimicrobial selectors' since their scope is broader than just antibiotics. All documentation have been updated, and `ab_class()` and `ab_selector()` have been replaced with `amr_class()` and `amr_selector()`. The old functions are now deprecated and will be removed in a future version.
|
||||||
@@ -68,10 +94,11 @@ This package now supports not only tools for AMR data analysis in clinical setti
|
|||||||
* `antimicrobials` data set
|
* `antimicrobials` data set
|
||||||
* Added agents used for screening, with an ID all ending with `-S`: benzylpenicillin screening test (`PEN-S`), beta-lactamase screening test (`BLA-S`), cefotaxime screening test (`CTX-S`), clindamycin inducible screening test (`CLI-S`), nalidixic acid screening test (`NAL-S`), norfloxacin screening test (`NOR-S`), oxacillin screening test (`OXA-S`), pefloxacin screening test (`PEF-S`), and tetracycline screening test (`TCY-S`). The ID of cefoxitin screening was renamed from `FOX1` to `FOX-S`, while the old code remains to work.
|
* Added agents used for screening, with an ID all ending with `-S`: benzylpenicillin screening test (`PEN-S`), beta-lactamase screening test (`BLA-S`), cefotaxime screening test (`CTX-S`), clindamycin inducible screening test (`CLI-S`), nalidixic acid screening test (`NAL-S`), norfloxacin screening test (`NOR-S`), oxacillin screening test (`OXA-S`), pefloxacin screening test (`PEF-S`), and tetracycline screening test (`TCY-S`). The ID of cefoxitin screening was renamed from `FOX1` to `FOX-S`, while the old code remains to work.
|
||||||
* For this reason, the antimicrobial selectors `cephalosporins()`, `cephalosporins_3rd()`, `lincosamides()`, `isoxazolylpenicillins()`, `quinolones()`, `fluoroquinolones()`, and `tetracyclines()` now contain the argument `only_treatable = TRUE` (similar to other antimicrobial selectors that contain non-treatable drugs)
|
* For this reason, the antimicrobial selectors `cephalosporins()`, `cephalosporins_3rd()`, `lincosamides()`, `isoxazolylpenicillins()`, `quinolones()`, `fluoroquinolones()`, and `tetracyclines()` now contain the argument `only_treatable = TRUE` (similar to other antimicrobial selectors that contain non-treatable drugs)
|
||||||
* Added amorolfine (`AMO`, D01AE16), which is now also part of the `antifungals()` selector
|
* Added amorolfine (`AMO`, D01AE16), an antimycotic, which is now also part of the `antifungals()` selector
|
||||||
* Added efflux (`EFF`), to allow mapping to AMRFinderPlus
|
* Added cefepime/enmetazobactam (`FPE`), a 4th gen cephalosporin
|
||||||
* Added tigemonam (`TNM`), a monobactam
|
* Added tigemonam (`TNM`), a monobactam
|
||||||
* Added bleomycin (`BLM`), a glycopeptide
|
* Added bleomycin (`BLM`), a glycopeptide
|
||||||
|
* Added efflux (`EFF`), to allow mapping to AMRFinderPlus
|
||||||
* Updated all ATC codes, trade names, and DDDs
|
* Updated all ATC codes, trade names, and DDDs
|
||||||
* MICs
|
* MICs
|
||||||
* Added as valid levels: 4096, 6 powers of 0.0625, and 5 powers of 192 (192, 384, 576, 768, 960)
|
* Added as valid levels: 4096, 6 powers of 0.0625, and 5 powers of 192 (192, 384, 576, 768, 960)
|
||||||
@@ -84,13 +111,15 @@ This package now supports not only tools for AMR data analysis in clinical setti
|
|||||||
* `eucast_rules()` now has an argument `overwrite` (default: `FALSE`) to indicate whether non-`NA` values should be overwritten
|
* `eucast_rules()` now has an argument `overwrite` (default: `FALSE`) to indicate whether non-`NA` values should be overwritten
|
||||||
* Disks of 0 to 5 mm are now allowed, the newly allowed range for disk diffusion (`as.disk()`) is now between 0 and 50 mm
|
* Disks of 0 to 5 mm are now allowed, the newly allowed range for disk diffusion (`as.disk()`) is now between 0 and 50 mm
|
||||||
* Updated `italicise_taxonomy()` to support HTML output
|
* Updated `italicise_taxonomy()` to support HTML output
|
||||||
* `custom_eucast_rules()` now supports multiple antibiotics and antibiotic groups to be affected by a single rule
|
* `custom_eucast_rules()` now supports multiple antimicrobials and antimicrobial groups to be affected by a single rule
|
||||||
* `mo_info()` now contains an extra element `rank` and `group_members` (with the contents of the new `mo_group_members()` function)
|
* `mo_info()` now contains an extra element `rank` and `group_members` (with the contents of the new `mo_group_members()` function)
|
||||||
* Updated all ATC codes from WHOCC
|
* Updated all ATC codes from WHOCC
|
||||||
* Updated all antibiotic DDDs from WHOCC
|
* Updated all antimicrobial DDDs from WHOCC
|
||||||
* Fix for using a manual value for `mo_transform` in `antibiogram()`
|
* Fix for using a manual value for `mo_transform` in `antibiogram()`
|
||||||
* Fixed a bug for when `antibiogram()` returns an empty data set
|
* Fixed a bug for when `antibiogram()` returns an empty data set
|
||||||
* Fix for mapping 'high level' antibiotics in `as.ab()` (amphotericin B-high, gentamicin-high, kanamycin-high, streptomycin-high, tobramycin-high)
|
* Argument `only_sir_columns` now defaults to `TRUE` if any column of a data set contains a class 'sir' (functions `eucast_rules()`, `key_antimicrobials()`, `mdro()`, etc.)
|
||||||
|
* Added Sensititre codes for animals, antimicrobials and microorganisms
|
||||||
|
* Fix for mapping 'high level' antimicrobials in `as.ab()` (amphotericin B-high, gentamicin-high, kanamycin-high, streptomycin-high, tobramycin-high)
|
||||||
* Improved overall algorithm of `as.ab()` for better performance and accuracy, including the new function `as_reset_session()` to remove earlier coercions.
|
* Improved overall algorithm of `as.ab()` for better performance and accuracy, including the new function `as_reset_session()` to remove earlier coercions.
|
||||||
* Improved overall algorithm of `as.mo()` for better performance and accuracy, specifically:
|
* Improved overall algorithm of `as.mo()` for better performance and accuracy, specifically:
|
||||||
* More weight is given to genus and species combinations in cases where the subspecies is miswritten, so that the result will be the correct genus and species
|
* More weight is given to genus and species combinations in cases where the subspecies is miswritten, so that the result will be the correct genus and species
|
||||||
@@ -100,21 +129,24 @@ This package now supports not only tools for AMR data analysis in clinical setti
|
|||||||
* Improved algorithm of `first_isolate()` when using the phenotype-based method, to prioritise records with the highest availability of SIR values
|
* Improved algorithm of `first_isolate()` when using the phenotype-based method, to prioritise records with the highest availability of SIR values
|
||||||
* `scale_y_percent()` can now cope with ranges outside the 0-100% range
|
* `scale_y_percent()` can now cope with ranges outside the 0-100% range
|
||||||
* MDRO determination (using `mdro()`)
|
* MDRO determination (using `mdro()`)
|
||||||
|
* The Verbose Mode (`verbose = TRUE`) now includes the guideline name
|
||||||
* Implemented the new Dutch national MDRO guideline (SRI-richtlijn BRMO, Nov 2024)
|
* Implemented the new Dutch national MDRO guideline (SRI-richtlijn BRMO, Nov 2024)
|
||||||
* Added arguments `esbl`, `carbapenemase`, `mecA`, `mecC`, `vanA`, `vanB` to denote column names or logical values indicating presence of these genes (or production of their proteins)
|
* Added arguments `esbl`, `carbapenemase`, `mecA`, `mecC`, `vanA`, `vanB` to denote column names or logical values indicating presence of these genes (or production of their proteins)
|
||||||
|
* Added upport for antimicrobial selectors to use as as a custom rule (`custom_mdro_guideline()`)
|
||||||
* Added console colours support of `sir` class for Positron
|
* Added console colours support of `sir` class for Positron
|
||||||
|
|
||||||
## Other
|
### Other
|
||||||
|
* New website domain: <https://amr-for-r.org>! The old domain will remain to work.
|
||||||
* Added Dr. Larisse Bolton and Aislinn Cook as contributors for their fantastic implementation of WISCA in a mathematically solid way
|
* Added Dr. Larisse Bolton and Aislinn Cook as contributors for their fantastic implementation of WISCA in a mathematically solid way
|
||||||
* Added Matthew Saab, Dr. Jordan Stull, and Prof. Javier Sanchez as contributors for their tremendous input on veterinary breakpoints and interpretations
|
* Added Matthew Saab, Dr. Jordan Stull, and Prof. Javier Sanchez as contributors for their tremendous input on veterinary breakpoints and interpretations
|
||||||
* Added Prof. Kat Holt, Dr. Jane Hawkey, and Dr. Natacha Couto as contributors for their many suggestions, ideas and bugfixes
|
* Added Prof. Kathryn Holt, Dr. Jane Hawkey, and Dr. Natacha Couto as contributors for their many suggestions, ideas and bugfixes
|
||||||
* Greatly improved `vctrs` integration, a Tidyverse package working in the background for many Tidyverse functions. For users, this means that functions such as `dplyr`'s `bind_rows()`, `rowwise()` and `c_across()` are now supported for e.g. columns of class `mic`. Despite this, this `AMR` package is still zero-dependent on any other package, including `dplyr` and `vctrs`.
|
* Greatly improved `vctrs` integration, a Tidyverse package working in the background for many Tidyverse functions. For users, this means that functions such as `dplyr`'s `bind_rows()`, `rowwise()` and `c_across()` are now supported for e.g. columns of class `mic`. Despite this, this `AMR` package is still zero-dependent on any other package, including `dplyr` and `vctrs`.
|
||||||
* Greatly updated and expanded documentation
|
* Greatly updated and expanded documentation
|
||||||
* Stopped support for SAS (`.xpt`) files, since their file structure and extremely inefficient and requires more disk space than GitHub allows in a single commit.
|
* Stopped support for SAS (`.xpt`) files, since their file structure and extremely inefficient and requires more disk space than GitHub allows in a single commit.
|
||||||
|
|
||||||
## Older Versions
|
## Older Versions
|
||||||
|
|
||||||
This changelog only contains changes from AMR v3.0 (March 2025) and later.
|
This changelog only contains changes from AMR v3.0 (June 2025) and later.
|
||||||
|
|
||||||
* For prior v2 versions, please see [our v2 archive](https://github.com/msberends/AMR/blob/v2.1.1/NEWS.md).
|
* For prior v2 versions, please see [our v2 archive](https://github.com/msberends/AMR/blob/v2.1.1/NEWS.md).
|
||||||
* For prior v1 versions, please see [our v1 archive](https://github.com/msberends/AMR/blob/v1.8.2/NEWS.md).
|
* For prior v1 versions, please see [our v1 archive](https://github.com/msberends/AMR/blob/v1.8.2/NEWS.md).
|
||||||
|
|||||||
@@ -32,11 +32,11 @@
|
|||||||
#' @description
|
#' @description
|
||||||
#' Welcome to the `AMR` package.
|
#' Welcome to the `AMR` package.
|
||||||
#'
|
#'
|
||||||
#' The `AMR` package is a [free and open-source](https://amr-for-r.org/#copyright) R package with [zero dependencies](https://en.wikipedia.org/wiki/Dependency_hell) to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. **Our aim is to provide a standard** for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. [Many different researchers](https://amr-for-r.org/authors.html) from around the globe are continually helping us to make this a successful and durable project!
|
#' The `AMR` package is a peer-reviewed, [free and open-source](https://amr-for-r.org/#copyright) R package with [zero dependencies](https://en.wikipedia.org/wiki/Dependency_hell) to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. **Our aim is to provide a standard** for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. We are a team of [many different researchers](https://amr-for-r.org/authors.html) from around the globe to make this a successful and durable project!
|
||||||
#'
|
#'
|
||||||
#' This work was published in the Journal of Statistical Software (Volume 104(3); \doi{10.18637/jss.v104.i03}) and formed the basis of two PhD theses (\doi{10.33612/diss.177417131} and \doi{10.33612/diss.192486375}).
|
#' This work was published in the Journal of Statistical Software (Volume 104(3); \doi{10.18637/jss.v104.i03}) and formed the basis of two PhD theses (\doi{10.33612/diss.177417131} and \doi{10.33612/diss.192486375}).
|
||||||
#'
|
#'
|
||||||
#' After installing this package, R knows [**`r format_included_data_number(AMR::microorganisms)` microorganisms**](https://amr-for-r.org/reference/microorganisms.html) (updated `r format(TAXONOMY_VERSION$GBIF$accessed_date, "%B %Y")`) and all [**`r format_included_data_number(nrow(AMR::antimicrobials) + nrow(AMR::antivirals))` antibiotic, antimycotic and antiviral drugs**](https://amr-for-r.org/reference/antimicrobials.html) by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). **It was designed to work in any setting, including those with very limited resources**. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the public [University of Groningen](https://www.rug.nl), in collaboration with non-profit organisations [Certe Medical Diagnostics and Advice Foundation](https://www.certe.nl) and [University Medical Center Groningen](https://www.umcg.nl).
|
#' After installing this package, R knows [**`r AMR:::format_included_data_number(AMR::microorganisms)` distinct microbial species**](https://amr-for-r.org/reference/microorganisms.html) (updated June 2024) and all [**`r AMR:::format_included_data_number(NROW(AMR::antimicrobials) + NROW(AMR::antivirals))` antimicrobial and antiviral drugs**](https://amr-for-r.org/reference/antimicrobials.html) by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI `r min(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, grepl("CLSI", guideline))$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, grepl("CLSI", guideline))$guideline)))` and EUCAST `r min(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, grepl("EUCAST", guideline))$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, grepl("EUCAST", guideline))$guideline)))` are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). **It was designed to work in any setting, including those with very limited resources**. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the [University of Groningen](https://www.rug.nl) and the [University Medical Center Groningen](https://www.umcg.nl).
|
||||||
#'
|
#'
|
||||||
#' The `AMR` package is available in `r vector_and(vapply(FUN.VALUE = character(1), LANGUAGES_SUPPORTED_NAMES, function(x) x$exonym), quotes = FALSE, sort = FALSE)`. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.
|
#' The `AMR` package is available in `r vector_and(vapply(FUN.VALUE = character(1), LANGUAGES_SUPPORTED_NAMES, function(x) x$exonym), quotes = FALSE, sort = FALSE)`. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.
|
||||||
#' @section Download Our Reference Data:
|
#' @section Download Our Reference Data:
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
#'
|
#'
|
||||||
#' For maximum compatibility, we also provide machine-readable, tab-separated plain text files suitable for use in any software, including laboratory information systems.
|
#' For maximum compatibility, we also provide machine-readable, tab-separated plain text files suitable for use in any software, including laboratory information systems.
|
||||||
#'
|
#'
|
||||||
#' Visit [our website for direct download links](https://amr-for-r.org/articles/datasets.html), or explore the actual files in [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw).
|
#' Visit [our website for direct download links](https://amr-for-r.org/articles/datasets.html), or explore the actual files in [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw/datasets).
|
||||||
#' @source
|
#' @source
|
||||||
#' To cite AMR in publications use:
|
#' To cite AMR in publications use:
|
||||||
#'
|
#'
|
||||||
|
|||||||
@@ -30,6 +30,12 @@
|
|||||||
# add new version numbers here, and add the rules themselves to "data-raw/eucast_rules.tsv" and clinical_breakpoints
|
# add new version numbers here, and add the rules themselves to "data-raw/eucast_rules.tsv" and clinical_breakpoints
|
||||||
# (sourcing "data-raw/_pre_commit_checks.R" will process the TSV file)
|
# (sourcing "data-raw/_pre_commit_checks.R" will process the TSV file)
|
||||||
EUCAST_VERSION_BREAKPOINTS <- list(
|
EUCAST_VERSION_BREAKPOINTS <- list(
|
||||||
|
"15.0" = list(
|
||||||
|
version_txt = "v15.0",
|
||||||
|
year = 2025,
|
||||||
|
title = "'EUCAST Clinical Breakpoint Tables'",
|
||||||
|
url = "https://www.eucast.org/clinical_breakpoints/"
|
||||||
|
),
|
||||||
"14.0" = list(
|
"14.0" = list(
|
||||||
version_txt = "v14.0",
|
version_txt = "v14.0",
|
||||||
year = 2024,
|
year = 2024,
|
||||||
@@ -126,6 +132,12 @@ TAXONOMY_VERSION <- list(
|
|||||||
accessed_date = as.Date("2023-10-19"),
|
accessed_date = as.Date("2023-10-19"),
|
||||||
citation = "Logical Observation Identifiers Names and Codes (LOINC), Version 2.76 (18 September, 2023).",
|
citation = "Logical Observation Identifiers Names and Codes (LOINC), Version 2.76 (18 September, 2023).",
|
||||||
url = "https://loinc.org"
|
url = "https://loinc.org"
|
||||||
|
),
|
||||||
|
ATC_DDD = list(
|
||||||
|
name = "ATC/DDD Index",
|
||||||
|
accessed_date = as.Date("2025-05-04"),
|
||||||
|
citation = "WHO Collaborating Centre for Drug Statistics Methodology, Guidelines for ATC classification and DDD assignment, Oslo",
|
||||||
|
url = "https://atcddd.fhi.no/atc_ddd_index/"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -170,6 +182,7 @@ globalVariables(c(
|
|||||||
"host_index",
|
"host_index",
|
||||||
"host_match",
|
"host_match",
|
||||||
"input",
|
"input",
|
||||||
|
"input_given",
|
||||||
"intrinsic_resistant",
|
"intrinsic_resistant",
|
||||||
"isolates",
|
"isolates",
|
||||||
"lang",
|
"lang",
|
||||||
|
|||||||
@@ -63,31 +63,6 @@ pm_left_join <- function(x, y, by = NULL, suffix = c(".x", ".y")) {
|
|||||||
merged
|
merged
|
||||||
}
|
}
|
||||||
|
|
||||||
# support where() like tidyverse (this function will also be used when running `antibiogram()`):
|
|
||||||
where <- function(fn) {
|
|
||||||
# based on https://github.com/nathaneastwood/poorman/blob/52eb6947e0b4430cd588976ed8820013eddf955f/R/where.R#L17-L32
|
|
||||||
if (!is.function(fn)) {
|
|
||||||
stop_("`", deparse(substitute(fn)), "()` is not a valid predicate function.")
|
|
||||||
}
|
|
||||||
df <- pm_select_env$.data
|
|
||||||
cols <- pm_select_env$get_colnames()
|
|
||||||
if (is.null(df)) {
|
|
||||||
df <- get_current_data("where", call = FALSE)
|
|
||||||
cols <- colnames(df)
|
|
||||||
}
|
|
||||||
preds <- unlist(lapply(
|
|
||||||
df,
|
|
||||||
function(x, fn) {
|
|
||||||
do.call("fn", list(x))
|
|
||||||
},
|
|
||||||
fn
|
|
||||||
))
|
|
||||||
if (!is.logical(preds)) stop_("`where()` must be used with functions that return `TRUE` or `FALSE`.")
|
|
||||||
data_cols <- cols
|
|
||||||
cols <- data_cols[preds]
|
|
||||||
which(data_cols %in% cols)
|
|
||||||
}
|
|
||||||
|
|
||||||
# copied and slightly rewritten from {poorman} under permissive license (2021-10-15)
|
# copied and slightly rewritten from {poorman} under permissive license (2021-10-15)
|
||||||
# https://github.com/nathaneastwood/poorman, MIT licensed, Nathan Eastwood, 2020
|
# https://github.com/nathaneastwood/poorman, MIT licensed, Nathan Eastwood, 2020
|
||||||
case_when_AMR <- function(...) {
|
case_when_AMR <- function(...) {
|
||||||
@@ -538,13 +513,13 @@ word_wrap <- function(...,
|
|||||||
txt = parts[parts %in% c("antimicrobials", "microorganisms", "microorganisms.codes", "microorganisms.groups")]
|
txt = parts[parts %in% c("antimicrobials", "microorganisms", "microorganisms.codes", "microorganisms.groups")]
|
||||||
)
|
)
|
||||||
# text starting with `?` must also lead to the help page
|
# text starting with `?` must also lead to the help page
|
||||||
parts[parts %like% "^[?]"] <- font_url(
|
parts[parts %like% "^[?].+"] <- font_url(
|
||||||
url = paste0("ide:help:AMR::", gsub("?", "", parts[parts %like% "^[?]"], fixed = TRUE)),
|
url = paste0("ide:help:AMR::", gsub("?", "", parts[parts %like% "^[?].+"], fixed = TRUE)),
|
||||||
txt = parts[parts %like% "^[?]"]
|
txt = parts[parts %like% "^[?].+"]
|
||||||
)
|
)
|
||||||
msg <- paste0(parts, collapse = "`")
|
msg <- paste0(parts, collapse = "`")
|
||||||
}
|
}
|
||||||
msg <- gsub("`(.+?)`", font_grey_bg("\\1"), msg)
|
msg <- gsub("`(.+?)`", font_grey_bg("`\\1`"), msg)
|
||||||
|
|
||||||
# clean introduced whitespace in between fullstops
|
# clean introduced whitespace in between fullstops
|
||||||
msg <- gsub("[.] +[.]", "..", msg)
|
msg <- gsub("[.] +[.]", "..", msg)
|
||||||
@@ -711,40 +686,6 @@ format_included_data_number <- function(data) {
|
|||||||
paste0(ifelse(rounder == 0, "", "~"), format(round(n, rounder), decimal.mark = ".", big.mark = " "))
|
paste0(ifelse(rounder == 0, "", "~"), format(round(n, rounder), decimal.mark = ".", big.mark = " "))
|
||||||
}
|
}
|
||||||
|
|
||||||
# for eucast_rules() and mdro(), creates markdown output with URLs and names
|
|
||||||
create_eucast_ab_documentation <- function() {
|
|
||||||
x <- trimws(unique(toupper(unlist(strsplit(EUCAST_RULES_DF$then_change_these_antibiotics, ",", fixed = TRUE)))))
|
|
||||||
ab <- character()
|
|
||||||
for (val in x) {
|
|
||||||
if (paste0("AB_", val) %in% ls(envir = asNamespace("AMR"))) {
|
|
||||||
# antimicrobial group names, as defined in data-raw/_pre_commit_checks.R, such as `CARBAPENEMS`
|
|
||||||
val <- eval(parse(text = paste0("AB_", val)), envir = asNamespace("AMR"))
|
|
||||||
} else if (val %in% AMR_env$AB_lookup$ab) {
|
|
||||||
# separate drugs, such as `AMX`
|
|
||||||
val <- as.ab(val)
|
|
||||||
} else {
|
|
||||||
val <- as.sir(NA)
|
|
||||||
}
|
|
||||||
ab <- c(ab, val)
|
|
||||||
}
|
|
||||||
ab <- unique(ab)
|
|
||||||
atcs <- ab_atc(ab, only_first = TRUE)
|
|
||||||
# only keep ABx with an ATC code:
|
|
||||||
ab <- ab[!is.na(atcs)]
|
|
||||||
atcs <- atcs[!is.na(atcs)]
|
|
||||||
|
|
||||||
# sort all vectors on name:
|
|
||||||
ab_names <- ab_name(ab, language = NULL, tolower = TRUE)
|
|
||||||
ab <- ab[order(ab_names)]
|
|
||||||
atcs <- atcs[order(ab_names)]
|
|
||||||
ab_names <- ab_names[order(ab_names)]
|
|
||||||
# create the text:
|
|
||||||
atc_txt <- paste0("[", atcs, "](", ab_url(ab), ")")
|
|
||||||
out <- paste0(ab_names, " (`", ab, "`, ", atc_txt, ")", collapse = ", ")
|
|
||||||
substr(out, 1, 1) <- toupper(substr(out, 1, 1))
|
|
||||||
out
|
|
||||||
}
|
|
||||||
|
|
||||||
vector_or <- function(v, quotes = TRUE, reverse = FALSE, sort = TRUE, initial_captital = FALSE, last_sep = " or ") {
|
vector_or <- function(v, quotes = TRUE, reverse = FALSE, sort = TRUE, initial_captital = FALSE, last_sep = " or ") {
|
||||||
# makes unique and sorts, and this also removed NAs
|
# makes unique and sorts, and this also removed NAs
|
||||||
v <- unique(v)
|
v <- unique(v)
|
||||||
@@ -848,7 +789,7 @@ meet_criteria <- function(object, # can be literally `list(...)` for `allow_argu
|
|||||||
|
|
||||||
# if object is missing, or another error:
|
# if object is missing, or another error:
|
||||||
tryCatch(invisible(object),
|
tryCatch(invisible(object),
|
||||||
error = function(e) AMR_env$meet_criteria_error_txt <- e$message
|
error = function(e) AMR_env$meet_criteria_error_txt <- conditionMessage(e)
|
||||||
)
|
)
|
||||||
if (!is.null(AMR_env$meet_criteria_error_txt)) {
|
if (!is.null(AMR_env$meet_criteria_error_txt)) {
|
||||||
error_txt <- AMR_env$meet_criteria_error_txt
|
error_txt <- AMR_env$meet_criteria_error_txt
|
||||||
@@ -983,7 +924,8 @@ ascertain_sir_classes <- function(x, obj_name) {
|
|||||||
warning_(
|
warning_(
|
||||||
"the data provided in argument `", obj_name,
|
"the data provided in argument `", obj_name,
|
||||||
"` should contain at least one column of class 'sir'. Eligible SIR column were now guessed. ",
|
"` should contain at least one column of class 'sir'. Eligible SIR column were now guessed. ",
|
||||||
"See `?as.sir`."
|
"See `?as.sir`.",
|
||||||
|
immediate = TRUE
|
||||||
)
|
)
|
||||||
sirs_eligible <- is_sir_eligible(x)
|
sirs_eligible <- is_sir_eligible(x)
|
||||||
for (col in colnames(x)[sirs_eligible]) {
|
for (col in colnames(x)[sirs_eligible]) {
|
||||||
@@ -1053,6 +995,17 @@ get_current_data <- function(arg_name, call) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# now check if it was run with eval(), which has arguments `expr`, `envir`, and `enclos`
|
||||||
|
from_eval_parse <- vapply(FUN.VALUE = logical(1), frms, function(e) all(c("expr", "envir", "enclos") %in% names(e)))
|
||||||
|
for (env in frms[which(from_eval_parse)]) {
|
||||||
|
if (valid_df(env$envir)) {
|
||||||
|
# the element `envir` could contain the data in case of
|
||||||
|
# e.g. `eval(parse(text = "any(cephalosporins_3rd() == 'R')"), envir = example_isolates)`
|
||||||
|
# this is also used by run_custom_mdro_guideline() to support antimicrobial selectors in the part before `~`
|
||||||
|
return(env$envir)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# no data.frame found, so an error must be returned:
|
# no data.frame found, so an error must be returned:
|
||||||
if (is.na(arg_name)) {
|
if (is.na(arg_name)) {
|
||||||
if (isTRUE(is.numeric(call))) {
|
if (isTRUE(is.numeric(call))) {
|
||||||
@@ -1137,6 +1090,44 @@ get_group_names <- function(x) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
format_custom_query_rule <- function(query, colours = has_colour()) {
|
||||||
|
# this is used by custom EUCAST and custom MDRO rules
|
||||||
|
|
||||||
|
# font_black() is a bit expensive so do it once:
|
||||||
|
txt <- font_black("{text}")
|
||||||
|
query <- gsub(" & ", sub("{text}", font_bold(" and "), txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" | ", sub("{text}", " or ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" + ", sub("{text}", " plus ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" - ", sub("{text}", " minus ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" / ", sub("{text}", " divided by ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" * ", sub("{text}", " times ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" == ", sub("{text}", " is ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" > ", sub("{text}", " is higher than ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" < ", sub("{text}", " is lower than ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" >= ", sub("{text}", " is higher than or equal to ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" <= ", sub("{text}", " is lower than or equal to ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" ^ ", sub("{text}", " to the power of ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" %in% ", sub("{text}", " is one of ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub(" %like% ", sub("{text}", " resembles ", txt, fixed = TRUE), query, fixed = TRUE)
|
||||||
|
query <- gsub("any\\((.*)\\)$", paste0(font_black("any of "), "\\1"), query)
|
||||||
|
query <- gsub("all\\((.*)\\)$", paste0(font_black("all of "), "\\1"), query)
|
||||||
|
if (colours == TRUE) {
|
||||||
|
query <- gsub("[\"']R[\"']", font_rose_bg(" R "), query)
|
||||||
|
query <- gsub("[\"']SDD[\"']", font_orange_bg(" SDD "), query)
|
||||||
|
query <- gsub("[\"']S[\"']", font_green_bg(" S "), query)
|
||||||
|
query <- gsub("[\"']NI[\"']", font_grey_bg(font_black(" NI ")), query)
|
||||||
|
query <- gsub("[\"']I[\"']", font_orange_bg(" I "), query)
|
||||||
|
}
|
||||||
|
# replace the black colour 'stops' with blue colour 'starts'
|
||||||
|
query <- gsub("\033[39m", "\033[34m", as.character(query), fixed = TRUE)
|
||||||
|
# start with blue
|
||||||
|
query <- paste0("\033[34m", query)
|
||||||
|
if (colours == FALSE) {
|
||||||
|
query <- font_stripstyle(query)
|
||||||
|
}
|
||||||
|
query
|
||||||
|
}
|
||||||
|
|
||||||
unique_call_id <- function(entire_session = FALSE, match_fn = NULL) {
|
unique_call_id <- function(entire_session = FALSE, match_fn = NULL) {
|
||||||
if (entire_session == TRUE) {
|
if (entire_session == TRUE) {
|
||||||
return(c(envir = "session", call = "session"))
|
return(c(envir = "session", call = "session"))
|
||||||
@@ -1190,6 +1181,13 @@ message_not_thrown_before <- function(fn, ..., entire_session = FALSE) {
|
|||||||
not_thrown_before
|
not_thrown_before
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reset_all_thrown_messages <- function() {
|
||||||
|
rm(
|
||||||
|
list = grep("^thrown_msg", ls(envir = AMR_env), value = TRUE),
|
||||||
|
envir = AMR_env
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
has_colour <- function() {
|
has_colour <- function() {
|
||||||
if (is.null(AMR_env$supports_colour)) {
|
if (is.null(AMR_env$supports_colour)) {
|
||||||
if (Sys.getenv("EMACS") != "" || Sys.getenv("INSIDE_EMACS") != "") {
|
if (Sys.getenv("EMACS") != "" || Sys.getenv("INSIDE_EMACS") != "") {
|
||||||
@@ -1200,7 +1198,8 @@ has_colour <- function() {
|
|||||||
AMR_env$supports_colour <- !is.null(has_color) && isTRUE(has_color())
|
AMR_env$supports_colour <- !is.null(has_color) && isTRUE(has_color())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
isTRUE(AMR_env$supports_colour)
|
# always FALSE for GitHub documents (`index.Rmd` and `README.Rmd`)
|
||||||
|
isTRUE(AMR_env$supports_colour) && !identical(getOption("rmarkdown.output.format"), "github_document")
|
||||||
}
|
}
|
||||||
|
|
||||||
# set colours if console has_colour()
|
# set colours if console has_colour()
|
||||||
@@ -1220,7 +1219,9 @@ try_colour <- function(..., before, after, collapse = " ") {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
is_dark <- function() {
|
is_dark <- function() {
|
||||||
if (is.null(AMR_env$is_dark_theme)) {
|
AMR_env$current_theme <- tryCatch(getExportedValue("getThemeInfo", ns = asNamespace("rstudioapi"))()$editor, error = function(e) NULL)
|
||||||
|
if (!identical(AMR_env$current_theme, AMR_env$former_theme) || is.null(AMR_env$is_dark_theme)) {
|
||||||
|
AMR_env$former_theme <- AMR_env$current_theme
|
||||||
AMR_env$is_dark_theme <- !has_colour() || tryCatch(isTRUE(getExportedValue("getThemeInfo", ns = asNamespace("rstudioapi"))()$dark), error = function(e) FALSE)
|
AMR_env$is_dark_theme <- !has_colour() || tryCatch(isTRUE(getExportedValue("getThemeInfo", ns = asNamespace("rstudioapi"))()$dark), error = function(e) FALSE)
|
||||||
}
|
}
|
||||||
isTRUE(AMR_env$is_dark_theme)
|
isTRUE(AMR_env$is_dark_theme)
|
||||||
@@ -1293,6 +1294,10 @@ font_green_bg <- function(..., collapse = " ") {
|
|||||||
# this is #3caea3 (picked to be colourblind-safe with other SIR colours)
|
# this is #3caea3 (picked to be colourblind-safe with other SIR colours)
|
||||||
try_colour(font_black(..., collapse = collapse, adapt = FALSE), before = "\033[48;5;79m", after = "\033[49m", collapse = collapse)
|
try_colour(font_black(..., collapse = collapse, adapt = FALSE), before = "\033[48;5;79m", after = "\033[49m", collapse = collapse)
|
||||||
}
|
}
|
||||||
|
font_green_lighter_bg <- function(..., collapse = " ") {
|
||||||
|
# this is #8FD6C4 (picked to be colourblind-safe with other SIR colours)
|
||||||
|
try_colour(font_black(..., collapse = collapse, adapt = FALSE), before = "\033[48;5;158m", after = "\033[49m", collapse = collapse)
|
||||||
|
}
|
||||||
font_purple_bg <- function(..., collapse = " ") {
|
font_purple_bg <- function(..., collapse = " ") {
|
||||||
try_colour(font_black(..., collapse = collapse, adapt = FALSE), before = "\033[48;5;89m", after = "\033[49m", collapse = collapse)
|
try_colour(font_black(..., collapse = collapse, adapt = FALSE), before = "\033[48;5;89m", after = "\033[49m", collapse = collapse)
|
||||||
}
|
}
|
||||||
@@ -1588,6 +1593,58 @@ readRDS_AMR <- function(file, refhook = NULL) {
|
|||||||
readRDS(con, refhook = refhook)
|
readRDS(con, refhook = refhook)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_n_cores <- function(max_cores = Inf) {
|
||||||
|
if (pkg_is_available("parallelly", min_version = "0.8.0", also_load = FALSE)) {
|
||||||
|
available_cores <- import_fn("availableCores", "parallelly")
|
||||||
|
n_cores <- min(available_cores(), na.rm = TRUE)
|
||||||
|
} else {
|
||||||
|
# `parallel` is part of base R since 2.14.0, but detectCores() is not very precise on exotic systems like Docker and quota-set Linux environments
|
||||||
|
n_cores <- parallel::detectCores()[1]
|
||||||
|
if (is.na(n_cores)) {
|
||||||
|
n_cores <- 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
max_cores <- floor(max_cores)
|
||||||
|
if (max_cores == 0) {
|
||||||
|
n_cores <- 1
|
||||||
|
} else if (max_cores < 0) {
|
||||||
|
n_cores <- max(1, n_cores - abs(max_cores))
|
||||||
|
} else if (max_cores > 0) {
|
||||||
|
n_cores <- min(n_cores, max_cores)
|
||||||
|
}
|
||||||
|
n_cores
|
||||||
|
}
|
||||||
|
|
||||||
|
# Support `where()` if tidyselect not installed ----
|
||||||
|
if (!is.null(import_fn("where", "tidyselect", error_on_fail = FALSE))) {
|
||||||
|
# tidyselect::where() exists, load the namespace to make `where()`s work across the package in default arguments
|
||||||
|
loadNamespace("tidyselect")
|
||||||
|
} else {
|
||||||
|
where <- function(fn) {
|
||||||
|
# based on https://github.com/nathaneastwood/poorman/blob/52eb6947e0b4430cd588976ed8820013eddf955f/R/where.R#L17-L32
|
||||||
|
if (!is.function(fn)) {
|
||||||
|
stop_("`", deparse(substitute(fn)), "()` is not a valid predicate function.")
|
||||||
|
}
|
||||||
|
df <- pm_select_env$.data
|
||||||
|
cols <- pm_select_env$get_colnames()
|
||||||
|
if (is.null(df)) {
|
||||||
|
df <- get_current_data("where", call = FALSE)
|
||||||
|
cols <- colnames(df)
|
||||||
|
}
|
||||||
|
preds <- unlist(lapply(
|
||||||
|
df,
|
||||||
|
function(x, fn) {
|
||||||
|
do.call("fn", list(x))
|
||||||
|
},
|
||||||
|
fn
|
||||||
|
))
|
||||||
|
if (!is.logical(preds)) stop_("`where()` must be used with functions that return `TRUE` or `FALSE`.")
|
||||||
|
data_cols <- cols
|
||||||
|
cols <- data_cols[preds]
|
||||||
|
which(data_cols %in% cols)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Faster data.table implementations ----
|
# Faster data.table implementations ----
|
||||||
|
|
||||||
match <- function(x, table, ...) {
|
match <- function(x, table, ...) {
|
||||||
@@ -1607,52 +1664,6 @@ match <- function(x, table, ...) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# nolint start
|
|
||||||
|
|
||||||
# Register S3 methods ----
|
|
||||||
# copied from vctrs::s3_register by their permission:
|
|
||||||
# https://github.com/r-lib/vctrs/blob/05968ce8e669f73213e3e894b5f4424af4f46316/R/register-s3.R
|
|
||||||
s3_register <- function(generic, class, method = NULL) {
|
|
||||||
stopifnot(is.character(generic), length(generic) == 1)
|
|
||||||
stopifnot(is.character(class), length(class) == 1)
|
|
||||||
pieces <- strsplit(generic, "::")[[1]]
|
|
||||||
stopifnot(length(pieces) == 2)
|
|
||||||
package <- pieces[[1]]
|
|
||||||
generic <- pieces[[2]]
|
|
||||||
caller <- parent.frame()
|
|
||||||
get_method_env <- function() {
|
|
||||||
top <- topenv(caller)
|
|
||||||
if (isNamespace(top)) {
|
|
||||||
asNamespace(environmentName(top))
|
|
||||||
} else {
|
|
||||||
caller
|
|
||||||
}
|
|
||||||
}
|
|
||||||
get_method <- function(method, env) {
|
|
||||||
if (is.null(method)) {
|
|
||||||
get(paste0(generic, ".", class), envir = get_method_env())
|
|
||||||
} else {
|
|
||||||
method
|
|
||||||
}
|
|
||||||
}
|
|
||||||
method_fn <- get_method(method)
|
|
||||||
stopifnot(is.function(method_fn))
|
|
||||||
setHook(packageEvent(package, "onLoad"), function(...) {
|
|
||||||
ns <- asNamespace(package)
|
|
||||||
method_fn <- get_method(method)
|
|
||||||
registerS3method(generic, class, method_fn, envir = ns)
|
|
||||||
})
|
|
||||||
if (!isNamespaceLoaded(package)) {
|
|
||||||
return(invisible())
|
|
||||||
}
|
|
||||||
envir <- asNamespace(package)
|
|
||||||
if (exists(generic, envir)) {
|
|
||||||
registerS3method(generic, class, method_fn, envir = envir)
|
|
||||||
}
|
|
||||||
invisible()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Support old R versions ----
|
# Support old R versions ----
|
||||||
# these functions were not available in previous versions of R
|
# these functions were not available in previous versions of R
|
||||||
# see here for the full list: https://github.com/r-lib/backports
|
# see here for the full list: https://github.com/r-lib/backports
|
||||||
|
|||||||
@@ -952,7 +952,19 @@ pm_select_env$get_nrow <- function() nrow(pm_select_env$.data)
|
|||||||
pm_select_env$get_ncol <- function() ncol(pm_select_env$.data)
|
pm_select_env$get_ncol <- function() ncol(pm_select_env$.data)
|
||||||
|
|
||||||
pm_select <- function(.data, ...) {
|
pm_select <- function(.data, ...) {
|
||||||
col_pos <- pm_select_positions(.data, ..., .group_pos = TRUE)
|
# col_pos <- pm_select_positions(.data, ..., .group_pos = TRUE),
|
||||||
|
col_pos <- tryCatch(pm_select_positions(.data, ..., .group_pos = TRUE), error = function(e) NULL)
|
||||||
|
if (is.null(col_pos)) {
|
||||||
|
# try with tidyverse
|
||||||
|
select_dplyr <- import_fn("select", "dplyr", error_on_fail = FALSE)
|
||||||
|
if (!is.null(select_dplyr)) {
|
||||||
|
col_pos <- which(colnames(.data) %in% colnames(select_dplyr(.data, ...)))
|
||||||
|
} else {
|
||||||
|
# this will throw an error as it did, but dplyr is not available, so no other option
|
||||||
|
col_pos <- pm_select_positions(.data, ..., .group_pos = TRUE)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
map_names <- names(col_pos)
|
map_names <- names(col_pos)
|
||||||
map_names_length <- nchar(map_names)
|
map_names_length <- nchar(map_names)
|
||||||
if (any(map_names_length == 0L)) {
|
if (any(map_names_length == 0L)) {
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
#' * `AMR_substitute_missing_r_breakpoint` \cr A [logical] to use in [as.sir()], to indicate that missing R breakpoints must be substituted with `"R"` - the default is `FALSE`.
|
#' * `AMR_substitute_missing_r_breakpoint` \cr A [logical] to use in [as.sir()], to indicate that missing R breakpoints must be substituted with `"R"` - the default is `FALSE`.
|
||||||
#' * `AMR_include_screening` \cr A [logical] to use in [as.sir()], to indicate that clinical breakpoints for screening are allowed - the default is `FALSE`.
|
#' * `AMR_include_screening` \cr A [logical] to use in [as.sir()], to indicate that clinical breakpoints for screening are allowed - the default is `FALSE`.
|
||||||
#' * `AMR_keep_synonyms` \cr A [logical] to use in [as.mo()] and all [`mo_*`][mo_property()] functions, to indicate if old, previously valid taxonomic names must be preserved and not be corrected to currently accepted names. The default is `FALSE`.
|
#' * `AMR_keep_synonyms` \cr A [logical] to use in [as.mo()] and all [`mo_*`][mo_property()] functions, to indicate if old, previously valid taxonomic names must be preserved and not be corrected to currently accepted names. The default is `FALSE`.
|
||||||
#' * `AMR_locale` \cr A [character] to set the language for the `AMR` package, can be one of these supported language names or ISO-639-1 codes: `r vector_or(paste0(sapply(LANGUAGES_SUPPORTED_NAMES, function(x) x[[1]]), " (" , LANGUAGES_SUPPORTED, ")"), quotes = FALSE, sort = FALSE)`. The default is the current system language (if supported, English otherwise).
|
#' * `AMR_locale` \cr A [character] to set the language for the `AMR` package, can be one of these supported language names or [ISO 639-1 codes](https://en.wikipedia.org/wiki/ISO_639-1): `r vector_or(paste0(sapply(LANGUAGES_SUPPORTED_NAMES, function(x) x[[1]]), " (" , LANGUAGES_SUPPORTED, ")"), quotes = FALSE, sort = FALSE)`. The default is the current system language (if supported, English otherwise).
|
||||||
#' * `AMR_mo_source` \cr A file location for a manual code list to be used in [as.mo()] and all [`mo_*`][mo_property()] functions. This is explained in [set_mo_source()].
|
#' * `AMR_mo_source` \cr A file location for a manual code list to be used in [as.mo()] and all [`mo_*`][mo_property()] functions. This is explained in [set_mo_source()].
|
||||||
#'
|
#'
|
||||||
#' @section Saving Settings Between Sessions:
|
#' @section Saving Settings Between Sessions:
|
||||||
|
|||||||
28
R/ab.R
28
R/ab.R
@@ -72,7 +72,6 @@
|
|||||||
#' as.ab("ERY")
|
#' as.ab("ERY")
|
||||||
#' as.ab("eritromicine") # spelled wrong, yet works
|
#' as.ab("eritromicine") # spelled wrong, yet works
|
||||||
#' as.ab("Erythrocin") # trade name
|
#' as.ab("Erythrocin") # trade name
|
||||||
#' as.ab("Romycin") # trade name
|
|
||||||
#'
|
#'
|
||||||
#' # spelling from different languages and dyslexia are no problem
|
#' # spelling from different languages and dyslexia are no problem
|
||||||
#' ab_atc("ceftriaxon")
|
#' ab_atc("ceftriaxon")
|
||||||
@@ -139,7 +138,7 @@ as.ab <- function(x, flag_multiple_results = TRUE, language = get_AMR_locale(),
|
|||||||
if (toupper(paste(abnames, collapse = " ")) %in% AMR_env$AB_lookup$generalised_name) {
|
if (toupper(paste(abnames, collapse = " ")) %in% AMR_env$AB_lookup$generalised_name) {
|
||||||
# if the found values combined is a valid AB, return that
|
# if the found values combined is a valid AB, return that
|
||||||
found <- AMR_env$AB_lookup$ab[match(toupper(paste(abnames, collapse = " ")), AMR_env$AB_lookup$generalised_name)][1]
|
found <- AMR_env$AB_lookup$ab[match(toupper(paste(abnames, collapse = " ")), AMR_env$AB_lookup$generalised_name)][1]
|
||||||
} else {
|
} else if (isTRUE(info)) {
|
||||||
message_(
|
message_(
|
||||||
"More than one result was found for item ", index, ": ",
|
"More than one result was found for item ", index, ": ",
|
||||||
vector_and(abnames, quotes = FALSE)
|
vector_and(abnames, quotes = FALSE)
|
||||||
@@ -185,7 +184,8 @@ as.ab <- function(x, flag_multiple_results = TRUE, language = get_AMR_locale(),
|
|||||||
x_new[known_codes_cid] <- AMR_env$AB_lookup$ab[match(x[known_codes_cid], AMR_env$AB_lookup$cid)]
|
x_new[known_codes_cid] <- AMR_env$AB_lookup$ab[match(x[known_codes_cid], AMR_env$AB_lookup$cid)]
|
||||||
previously_coerced <- x %in% AMR_env$ab_previously_coerced$x
|
previously_coerced <- x %in% AMR_env$ab_previously_coerced$x
|
||||||
x_new[previously_coerced & is.na(x_new)] <- AMR_env$ab_previously_coerced$ab[match(x[is.na(x_new) & x %in% AMR_env$ab_previously_coerced$x], AMR_env$ab_previously_coerced$x)]
|
x_new[previously_coerced & is.na(x_new)] <- AMR_env$ab_previously_coerced$ab[match(x[is.na(x_new) & x %in% AMR_env$ab_previously_coerced$x], AMR_env$ab_previously_coerced$x)]
|
||||||
if (any(previously_coerced) && isTRUE(info) && message_not_thrown_before("as.ab", entire_session = TRUE)) {
|
previously_coerced_mention <- x %in% AMR_env$ab_previously_coerced$x & !x %in% AMR_env$AB_lookup$ab & !x %in% AMR_env$AB_lookup$generalised_name
|
||||||
|
if (any(previously_coerced_mention) && isTRUE(info) && message_not_thrown_before("as.ab", entire_session = TRUE)) {
|
||||||
message_(
|
message_(
|
||||||
"Returning previously coerced ",
|
"Returning previously coerced ",
|
||||||
ifelse(length(unique(which(x[which(previously_coerced)] %in% x_bak_clean))) > 1, "value for an antimicrobial", "values for various antimicrobials"),
|
ifelse(length(unique(which(x[which(previously_coerced)] %in% x_bak_clean))) > 1, "value for an antimicrobial", "values for various antimicrobials"),
|
||||||
@@ -280,7 +280,12 @@ as.ab <- function(x, flag_multiple_results = TRUE, language = get_AMR_locale(),
|
|||||||
|
|
||||||
# length of input is quite long, and Levenshtein distance is only max 2
|
# length of input is quite long, and Levenshtein distance is only max 2
|
||||||
if (nchar(x[i]) >= 10) {
|
if (nchar(x[i]) >= 10) {
|
||||||
levenshtein <- as.double(utils::adist(x[i], AMR_env$AB_lookup$generalised_name))
|
levenshtein <- as.double(utils::adist(x[i], AMR_env$AB_lookup$generalised_name,
|
||||||
|
ignore.case = FALSE,
|
||||||
|
fixed = TRUE,
|
||||||
|
costs = c(insertions = 1, deletions = 1, substitutions = 2),
|
||||||
|
counts = FALSE
|
||||||
|
))
|
||||||
if (any(levenshtein <= 2)) {
|
if (any(levenshtein <= 2)) {
|
||||||
found <- AMR_env$AB_lookup$ab[which(levenshtein <= 2)]
|
found <- AMR_env$AB_lookup$ab[which(levenshtein <= 2)]
|
||||||
x_new[i] <- note_if_more_than_one_found(found, i, from_text)
|
x_new[i] <- note_if_more_than_one_found(found, i, from_text)
|
||||||
@@ -499,7 +504,8 @@ ab_reset_session <- function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, ab)
|
||||||
pillar_shaft.ab <- function(x, ...) {
|
pillar_shaft.ab <- function(x, ...) {
|
||||||
out <- trimws(format(x))
|
out <- trimws(format(x))
|
||||||
out[is.na(x)] <- font_na(NA)
|
out[is.na(x)] <- font_na(NA)
|
||||||
@@ -515,7 +521,8 @@ pillar_shaft.ab <- function(x, ...) {
|
|||||||
create_pillar_column(out, align = "left", min_width = 4)
|
create_pillar_column(out, align = "left", min_width = 4)
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::type_sum, ab)
|
||||||
type_sum.ab <- function(x, ...) {
|
type_sum.ab <- function(x, ...) {
|
||||||
"ab"
|
"ab"
|
||||||
}
|
}
|
||||||
@@ -638,13 +645,20 @@ generalise_antibiotic_name <- function(x) {
|
|||||||
# spaces around non-characters must be removed: amox + clav -> amox clav
|
# spaces around non-characters must be removed: amox + clav -> amox clav
|
||||||
x <- gsub("(.*[A-Z0-9]) ([^A-Z0-9].*)", "\\1\\2", x, perl = TRUE)
|
x <- gsub("(.*[A-Z0-9]) ([^A-Z0-9].*)", "\\1\\2", x, perl = TRUE)
|
||||||
x <- gsub("(.*[^A-Z0-9]) ([A-Z0-9].*)", "\\1\\2", x, perl = TRUE)
|
x <- gsub("(.*[^A-Z0-9]) ([A-Z0-9].*)", "\\1\\2", x, perl = TRUE)
|
||||||
|
# rewrite ph to f, and th to t
|
||||||
|
x <- gsub("PH", "F", x, perl = TRUE)
|
||||||
|
x <- gsub("TH", "T", x, perl = TRUE)
|
||||||
# remove hyphen after a starting "co"
|
# remove hyphen after a starting "co"
|
||||||
x <- gsub("^CO-", "CO", x, perl = TRUE)
|
x <- gsub("^CO-", "CO", x, perl = TRUE)
|
||||||
# replace operators with a space
|
# replace operators with a space
|
||||||
x <- gsub("(/| AND | WITH | W/|[+]|[-])+", " ", x, perl = TRUE)
|
x <- gsub("(/| AND | WITH | W/|[+]|[-])+", " ", x, perl = TRUE)
|
||||||
# replace more than 1 space
|
# replace more than 1 space
|
||||||
x <- trimws(gsub(" +", " ", x, perl = TRUE))
|
x <- trimws(gsub(" +", " ", x, perl = TRUE))
|
||||||
# move HIGH to end
|
# remove last couple of words if they numbers or units
|
||||||
|
x <- gsub("( ([0-9]{3,}|U?M?C?G|L))+$", "", x, perl = TRUE)
|
||||||
|
# remove whitespace prior to numbers if preceded by A-Z
|
||||||
|
x <- gsub("([A-Z]+) +([0-9]+)", "\\1\\2", x, perl = TRUE)
|
||||||
|
# move HIGH to the end
|
||||||
x <- trimws(gsub("(.*) HIGH(.*)", "\\1\\2 HIGH", x, perl = TRUE))
|
x <- trimws(gsub("(.*) HIGH(.*)", "\\1\\2 HIGH", x, perl = TRUE))
|
||||||
x
|
x
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -445,7 +445,7 @@ ab_validate <- function(x, property, ...) {
|
|||||||
# try to catch an error when inputting an invalid argument
|
# try to catch an error when inputting an invalid argument
|
||||||
# so the 'call.' can be set to FALSE
|
# so the 'call.' can be set to FALSE
|
||||||
tryCatch(x[1L] %in% AMR_env$AB_lookup[1, property, drop = TRUE],
|
tryCatch(x[1L] %in% AMR_env$AB_lookup[1, property, drop = TRUE],
|
||||||
error = function(e) stop(e$message, call. = FALSE)
|
error = function(e) stop(conditionMessage(e), call. = FALSE)
|
||||||
)
|
)
|
||||||
|
|
||||||
if (!all(x %in% AMR_env$AB_lookup[, property, drop = TRUE])) {
|
if (!all(x %in% AMR_env$AB_lookup[, property, drop = TRUE])) {
|
||||||
|
|||||||
14
R/age.R
14
R/age.R
@@ -128,9 +128,10 @@ age <- function(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...) {
|
|||||||
|
|
||||||
#' Split Ages into Age Groups
|
#' Split Ages into Age Groups
|
||||||
#'
|
#'
|
||||||
#' Split ages into age groups defined by the `split` argument. This allows for easier demographic (antimicrobial resistance) analysis.
|
#' Split ages into age groups defined by the `split` argument. This allows for easier demographic (antimicrobial resistance) analysis. The function returns an ordered [factor].
|
||||||
#' @param x Age, e.g. calculated with [age()].
|
#' @param x Age, e.g. calculated with [age()].
|
||||||
#' @param split_at Values to split `x` at - the default is age groups 0-11, 12-24, 25-54, 55-74 and 75+. See *Details*.
|
#' @param split_at Values to split `x` at - the default is age groups 0-11, 12-24, 25-54, 55-74 and 75+. See *Details*.
|
||||||
|
#' @param names Optional names to be given to the various age groups.
|
||||||
#' @param na.rm A [logical] to indicate whether missing values should be removed.
|
#' @param na.rm A [logical] to indicate whether missing values should be removed.
|
||||||
#' @details To split ages, the input for the `split_at` argument can be:
|
#' @details To split ages, the input for the `split_at` argument can be:
|
||||||
#'
|
#'
|
||||||
@@ -152,6 +153,7 @@ age <- function(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...) {
|
|||||||
#'
|
#'
|
||||||
#' # split into 0-19, 20-49 and 50+
|
#' # split into 0-19, 20-49 and 50+
|
||||||
#' age_groups(ages, c(20, 50))
|
#' age_groups(ages, c(20, 50))
|
||||||
|
#' age_groups(ages, c(20, 50), names = c("Under 20 years", "20 to 50 years", "Over 50 years"))
|
||||||
#'
|
#'
|
||||||
#' # split into groups of ten years
|
#' # split into groups of ten years
|
||||||
#' age_groups(ages, 1:10 * 10)
|
#' age_groups(ages, 1:10 * 10)
|
||||||
@@ -181,9 +183,10 @@ age <- function(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...) {
|
|||||||
#' )
|
#' )
|
||||||
#' }
|
#' }
|
||||||
#' }
|
#' }
|
||||||
age_groups <- function(x, split_at = c(12, 25, 55, 75), na.rm = FALSE) {
|
age_groups <- function(x, split_at = c(0, 12, 25, 55, 75), names = NULL, na.rm = FALSE) {
|
||||||
meet_criteria(x, allow_class = c("numeric", "integer"), is_positive_or_zero = TRUE, is_finite = TRUE)
|
meet_criteria(x, allow_class = c("numeric", "integer"), is_positive_or_zero = TRUE, is_finite = TRUE)
|
||||||
meet_criteria(split_at, allow_class = c("numeric", "integer", "character"), is_positive_or_zero = TRUE, is_finite = TRUE)
|
meet_criteria(split_at, allow_class = c("numeric", "integer", "character"), is_positive_or_zero = TRUE, is_finite = TRUE)
|
||||||
|
meet_criteria(names, allow_class = "character", allow_NULL = TRUE)
|
||||||
meet_criteria(na.rm, allow_class = "logical", has_length = 1)
|
meet_criteria(na.rm, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
if (any(x < 0, na.rm = TRUE)) {
|
if (any(x < 0, na.rm = TRUE)) {
|
||||||
@@ -208,7 +211,7 @@ age_groups <- function(x, split_at = c(12, 25, 55, 75), na.rm = FALSE) {
|
|||||||
split_at <- c(0, split_at)
|
split_at <- c(0, split_at)
|
||||||
}
|
}
|
||||||
split_at <- split_at[!is.na(split_at)]
|
split_at <- split_at[!is.na(split_at)]
|
||||||
stop_if(length(split_at) == 1, "invalid value for `split_at`") # only 0 is available
|
stop_if(length(split_at) == 1, "invalid value for `split_at`.") # only 0 is available
|
||||||
|
|
||||||
# turn input values to 'split_at' indices
|
# turn input values to 'split_at' indices
|
||||||
y <- x
|
y <- x
|
||||||
@@ -224,6 +227,11 @@ age_groups <- function(x, split_at = c(12, 25, 55, 75), na.rm = FALSE) {
|
|||||||
|
|
||||||
agegroups <- factor(lbls[y], levels = lbls, ordered = TRUE)
|
agegroups <- factor(lbls[y], levels = lbls, ordered = TRUE)
|
||||||
|
|
||||||
|
if (!is.null(names)) {
|
||||||
|
stop_ifnot(length(names) == length(levels(agegroups)), "`names` must have the same length as the number of age groups (", length(levels(agegroups)), ").")
|
||||||
|
levels(agegroups) <- names
|
||||||
|
}
|
||||||
|
|
||||||
if (isTRUE(na.rm)) {
|
if (isTRUE(na.rm)) {
|
||||||
agegroups <- agegroups[!is.na(agegroups)]
|
agegroups <- agegroups[!is.na(agegroups)]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#'
|
#'
|
||||||
#' @description These functions allow for filtering rows and selecting columns based on antimicrobial test results that are of a specific antimicrobial class or group, without the need to define the columns or antimicrobial abbreviations. They can be used in base \R, tidyverse, tidymodels, and `data.table`.
|
#' @description These functions allow for filtering rows and selecting columns based on antimicrobial test results that are of a specific antimicrobial class or group, without the need to define the columns or antimicrobial abbreviations. They can be used in base \R, tidyverse, tidymodels, and `data.table`.
|
||||||
#'
|
#'
|
||||||
#' In short, if you have a column name that resembles an antimicrobial drug, it will be picked up by any of these functions that matches its pharmaceutical class: "cefazolin", "kefzol", "CZO" and "J01DB04" will all be picked up using:
|
#' Simply puy, if you have a column name that resembles an antimicrobial drug, it will be picked up by any of these functions that matches its pharmaceutical class, code or name: column names "cefazolin", "kefzol", "CZO" and "J01DB04" would all be included in the following selection:
|
||||||
#'
|
#'
|
||||||
#' ```r
|
#' ```r
|
||||||
#' library(dplyr)
|
#' library(dplyr)
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
#' ```
|
#' ```
|
||||||
#' @param amr_class An antimicrobial class or a part of it, such as `"carba"` and `"carbapenems"`. The columns `group`, `atc_group1` and `atc_group2` of the [antimicrobials] data set will be searched (case-insensitive) for this value.
|
#' @param amr_class An antimicrobial class or a part of it, such as `"carba"` and `"carbapenems"`. The columns `group`, `atc_group1` and `atc_group2` of the [antimicrobials] data set will be searched (case-insensitive) for this value.
|
||||||
#' @param filter An [expression] to be evaluated in the [antimicrobials] data set, such as `name %like% "trim"`.
|
#' @param filter An [expression] to be evaluated in the [antimicrobials] data set, such as `name %like% "trim"`.
|
||||||
#' @param only_sir_columns A [logical] to indicate whether only columns of class `sir` must be selected (default is `FALSE`), see [as.sir()].
|
#' @param only_sir_columns A [logical] to indicate whether only antimicrobial columns must be included that were transformed to class [sir][as.sir()] on beforehand. Defaults to `FALSE`.
|
||||||
#' @param only_treatable A [logical] to indicate whether antimicrobial drugs should be excluded that are only for laboratory tests (default is `TRUE`), such as gentamicin-high (`GEH`) and imipenem/EDTA (`IPE`).
|
#' @param only_treatable A [logical] to indicate whether antimicrobial drugs should be excluded that are only for laboratory tests (default is `TRUE`), such as gentamicin-high (`GEH`) and imipenem/EDTA (`IPE`).
|
||||||
#' @param return_all A [logical] to indicate whether all matched columns must be returned (default is `TRUE`). With `FALSE`, only the first of each unique antimicrobial will be returned, e.g. if both columns `"genta"` and `"gentamicin"` exist in the data, only the first hit for gentamicin will be returned.
|
#' @param return_all A [logical] to indicate whether all matched columns must be returned (default is `TRUE`). With `FALSE`, only the first of each unique antimicrobial will be returned, e.g. if both columns `"genta"` and `"gentamicin"` exist in the data, only the first hit for gentamicin will be returned.
|
||||||
#' @param ... Ignored, only in place to allow future extensions.
|
#' @param ... Ignored, only in place to allow future extensions.
|
||||||
@@ -527,7 +527,7 @@ amr_selector <- function(filter,
|
|||||||
)
|
)
|
||||||
call <- substitute(filter)
|
call <- substitute(filter)
|
||||||
agents <- tryCatch(AMR_env$AB_lookup[which(eval(call, envir = AMR_env$AB_lookup)), "ab", drop = TRUE],
|
agents <- tryCatch(AMR_env$AB_lookup[which(eval(call, envir = AMR_env$AB_lookup)), "ab", drop = TRUE],
|
||||||
error = function(e) stop_(e$message, call = -5)
|
error = function(e) stop_(conditionMessage(e), call = -5)
|
||||||
)
|
)
|
||||||
agents <- ab_in_data[ab_in_data %in% agents]
|
agents <- ab_in_data[ab_in_data %in% agents]
|
||||||
message_agent_names(
|
message_agent_names(
|
||||||
@@ -640,7 +640,7 @@ not_intrinsic_resistant <- function(only_sir_columns = FALSE, col_mo = NULL, ver
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
error = function(e) stop_("in not_intrinsic_resistant(): ", e$message, call = FALSE)
|
error = function(e) stop_("in not_intrinsic_resistant(): ", conditionMessage(e), call = FALSE)
|
||||||
)
|
)
|
||||||
|
|
||||||
agents <- ab_in_data[ab_in_data %in% names(vars_df_R[which(vars_df_R)])]
|
agents <- ab_in_data[ab_in_data %in% names(vars_df_R[which(vars_df_R)])]
|
||||||
|
|||||||
259
R/antibiogram.R
259
R/antibiogram.R
@@ -34,13 +34,13 @@
|
|||||||
#'
|
#'
|
||||||
#' Adhering to previously described approaches (see *Source*) and especially the Bayesian WISCA model (Weighted-Incidence Syndromic Combination Antibiogram) by Bielicki *et al.*, these functions provide flexible output formats including plots and tables, ideal for integration with R Markdown and Quarto reports.
|
#' Adhering to previously described approaches (see *Source*) and especially the Bayesian WISCA model (Weighted-Incidence Syndromic Combination Antibiogram) by Bielicki *et al.*, these functions provide flexible output formats including plots and tables, ideal for integration with R Markdown and Quarto reports.
|
||||||
#' @param x A [data.frame] containing at least a column with microorganisms and columns with antimicrobial results (class 'sir', see [as.sir()]).
|
#' @param x A [data.frame] containing at least a column with microorganisms and columns with antimicrobial results (class 'sir', see [as.sir()]).
|
||||||
#' @param antimicrobials A vector specifying the antimicrobials to include in the antibiogram (see *Examples*). Will be evaluated using [guess_ab_col()]. This can be:.
|
#' @param antimicrobials A vector specifying the antimicrobials containing SIR values to include in the antibiogram (see *Examples*). Will be evaluated using [guess_ab_col()]. This can be:
|
||||||
#' - Any antimicrobial name or code
|
#' - Any antimicrobial name or code that could match (see [guess_ab_col()]) to any column in `x`
|
||||||
#' - A column name in `x` that contains SIR values
|
|
||||||
#' - Any [antimicrobial selector][antimicrobial_selectors], such as [aminoglycosides()] or [carbapenems()]
|
#' - Any [antimicrobial selector][antimicrobial_selectors], such as [aminoglycosides()] or [carbapenems()]
|
||||||
#' - A combination of the above, using `c()`, e.g.:
|
#' - A combination of the above, using `c()`, e.g.:
|
||||||
#' - `c(aminoglycosides(), "AMP", "AMC")`
|
#' - `c(aminoglycosides(), "AMP", "AMC")`
|
||||||
#' - `c(aminoglycosides(), carbapenems())`
|
#' - `c(aminoglycosides(), carbapenems())`
|
||||||
|
#' - Column indices using numbers
|
||||||
#' - Combination therapy, indicated by using `"+"`, with or without [antimicrobial selectors][antimicrobial_selectors], e.g.:
|
#' - Combination therapy, indicated by using `"+"`, with or without [antimicrobial selectors][antimicrobial_selectors], e.g.:
|
||||||
#' - `"cipro + genta"`
|
#' - `"cipro + genta"`
|
||||||
#' - `"TZP+TOB"`
|
#' - `"TZP+TOB"`
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
#' @param mo_transform A character to transform microorganism input - must be `"name"`, `"shortname"` (default), `"gramstain"`, or one of the column names of the [microorganisms] data set: `r vector_or(colnames(microorganisms), sort = FALSE, quotes = TRUE)`. Can also be `NULL` to not transform the input or `NA` to consider all microorganisms 'unknown'.
|
#' @param mo_transform A character to transform microorganism input - must be `"name"`, `"shortname"` (default), `"gramstain"`, or one of the column names of the [microorganisms] data set: `r vector_or(colnames(microorganisms), sort = FALSE, quotes = TRUE)`. Can also be `NULL` to not transform the input or `NA` to consider all microorganisms 'unknown'.
|
||||||
#' @param ab_transform A character to transform antimicrobial input - must be one of the column names of the [antimicrobials] data set (defaults to `"name"`): `r vector_or(colnames(antimicrobials), sort = FALSE, quotes = TRUE)`. Can also be `NULL` to not transform the input.
|
#' @param ab_transform A character to transform antimicrobial input - must be one of the column names of the [antimicrobials] data set (defaults to `"name"`): `r vector_or(colnames(antimicrobials), sort = FALSE, quotes = TRUE)`. Can also be `NULL` to not transform the input.
|
||||||
#' @param syndromic_group A column name of `x`, or values calculated to split rows of `x`, e.g. by using [ifelse()] or [`case_when()`][dplyr::case_when()]. See *Examples*.
|
#' @param syndromic_group A column name of `x`, or values calculated to split rows of `x`, e.g. by using [ifelse()] or [`case_when()`][dplyr::case_when()]. See *Examples*.
|
||||||
#' @param add_total_n A [logical] to indicate whether `n_tested` available numbers per pathogen should be added to the table (default is `TRUE`). This will add the lowest and highest number of available isolates per antimicrobial (e.g, if for *E. coli* 200 isolates are available for ciprofloxacin and 150 for amoxicillin, the returned number will be "150-200"). This option is unavailable when `wisca = TRUE`; in that case, use [retrieve_wisca_parameters()] to get the parameters used for WISCA.
|
#' @param add_total_n *(deprecated in favour of `formatting_type`)* A [logical] to indicate whether `n_tested` available numbers per pathogen should be added to the table (default is `TRUE`). This will add the lowest and highest number of available isolates per antimicrobial (e.g, if for *E. coli* 200 isolates are available for ciprofloxacin and 150 for amoxicillin, the returned number will be "150-200"). This option is unavailable when `wisca = TRUE`; in that case, use [retrieve_wisca_parameters()] to get the parameters used for WISCA.
|
||||||
#' @param only_all_tested (for combination antibiograms): a [logical] to indicate that isolates must be tested for all antimicrobials, see *Details*.
|
#' @param only_all_tested (for combination antibiograms): a [logical] to indicate that isolates must be tested for all antimicrobials, see *Details*.
|
||||||
#' @param digits Number of digits to use for rounding the antimicrobial coverage, defaults to 1 for WISCA and 0 otherwise.
|
#' @param digits Number of digits to use for rounding the antimicrobial coverage, defaults to 1 for WISCA and 0 otherwise.
|
||||||
#' @param formatting_type Numeric value (1–22 for WISCA, 1-12 for non-WISCA) indicating how the 'cells' of the antibiogram table should be formatted. See *Details* > *Formatting Type* for a list of options.
|
#' @param formatting_type Numeric value (1–22 for WISCA, 1-12 for non-WISCA) indicating how the 'cells' of the antibiogram table should be formatted. See *Details* > *Formatting Type* for a list of options.
|
||||||
@@ -60,6 +60,7 @@
|
|||||||
#' @param minimum The minimum allowed number of available (tested) isolates. Any isolate count lower than `minimum` will return `NA` with a warning. The default number of `30` isolates is advised by the Clinical and Laboratory Standards Institute (CLSI) as best practice, see *Source*.
|
#' @param minimum The minimum allowed number of available (tested) isolates. Any isolate count lower than `minimum` will return `NA` with a warning. The default number of `30` isolates is advised by the Clinical and Laboratory Standards Institute (CLSI) as best practice, see *Source*.
|
||||||
#' @param combine_SI A [logical] to indicate whether all susceptibility should be determined by results of either S, SDD, or I, instead of only S (default is `TRUE`).
|
#' @param combine_SI A [logical] to indicate whether all susceptibility should be determined by results of either S, SDD, or I, instead of only S (default is `TRUE`).
|
||||||
#' @param sep A separating character for antimicrobial columns in combination antibiograms.
|
#' @param sep A separating character for antimicrobial columns in combination antibiograms.
|
||||||
|
#' @param sort_columns A [logical] to indicate whether the antimicrobial columns must be sorted on name.
|
||||||
#' @param wisca A [logical] to indicate whether a Weighted-Incidence Syndromic Combination Antibiogram (WISCA) must be generated (default is `FALSE`). This will use a Bayesian decision model to estimate regimen coverage probabilities using [Monte Carlo simulations](https://en.wikipedia.org/wiki/Monte_Carlo_method). Set `simulations`, `conf_interval`, and `interval_side` to adjust.
|
#' @param wisca A [logical] to indicate whether a Weighted-Incidence Syndromic Combination Antibiogram (WISCA) must be generated (default is `FALSE`). This will use a Bayesian decision model to estimate regimen coverage probabilities using [Monte Carlo simulations](https://en.wikipedia.org/wiki/Monte_Carlo_method). Set `simulations`, `conf_interval`, and `interval_side` to adjust.
|
||||||
#' @param simulations (for WISCA) a numerical value to set the number of Monte Carlo simulations.
|
#' @param simulations (for WISCA) a numerical value to set the number of Monte Carlo simulations.
|
||||||
#' @param conf_interval A numerical value to set confidence interval (default is `0.95`).
|
#' @param conf_interval A numerical value to set confidence interval (default is `0.95`).
|
||||||
@@ -110,7 +111,7 @@
|
|||||||
#'
|
#'
|
||||||
#' There are various antibiogram types, as summarised by Klinker *et al.* (2021, \doi{10.1177/20499361211011373}), and they are all supported by [antibiogram()].
|
#' There are various antibiogram types, as summarised by Klinker *et al.* (2021, \doi{10.1177/20499361211011373}), and they are all supported by [antibiogram()].
|
||||||
#'
|
#'
|
||||||
#' For clinical coverage estimations, **use WISCA whenever possible**, since it provides more precise coverage estimates by accounting for pathogen incidence and antimicrobial susceptibility, as has been shown by Bielicki *et al.* (2020, \doi{10.1001.jamanetworkopen.2019.21124}). See the section *Explaining WISCA* on this page. Do note that WISCA is pathogen-agnostic, meaning that the outcome is not stratied by pathogen, but rather by syndrome.
|
#' For clinical coverage estimations, **use WISCA whenever possible**, since it provides more precise coverage estimates by accounting for pathogen incidence and antimicrobial susceptibility, as has been shown by Bielicki *et al.* (2020, \doi{10.1001/jamanetworkopen.2019.21124}). See the section *Explaining WISCA* on this page. Do note that WISCA is pathogen-agnostic, meaning that the outcome is not stratied by pathogen, but rather by syndrome.
|
||||||
#'
|
#'
|
||||||
#' 1. **Traditional Antibiogram**
|
#' 1. **Traditional Antibiogram**
|
||||||
#'
|
#'
|
||||||
@@ -259,45 +260,14 @@
|
|||||||
#'
|
#'
|
||||||
#' @section Explaining WISCA:
|
#' @section Explaining WISCA:
|
||||||
#'
|
#'
|
||||||
#' WISCA, as outlined by Bielicki *et al.* (\doi{10.1093/jac/dkv397}), stands for Weighted-Incidence Syndromic Combination Antibiogram, which estimates the probability of adequate empirical antimicrobial regimen coverage for specific infection syndromes. This method leverages a Bayesian decision model with random effects for pathogen incidence and susceptibility, enabling robust estimates in the presence of sparse data.
|
#' WISCA (Weighted-Incidence Syndromic Combination Antibiogram) estimates the probability of empirical coverage for combination regimens.
|
||||||
#'
|
#'
|
||||||
#' The Bayesian model assumes conjugate priors for parameter estimation. For example, the coverage probability \eqn{\theta} for a given antimicrobial regimen is modelled using a Beta distribution as a prior:
|
#' It weights susceptibility by pathogen prevalence within a clinical syndrome and provides credible intervals around the expected coverage.
|
||||||
#'
|
#'
|
||||||
#' \deqn{\theta \sim \text{Beta}(\alpha_0, \beta_0)}
|
#' For more background, interpretation, and examples, see [the WISCA vignette](https://amr-for-r.org/articles/WISCA.html).
|
||||||
#'
|
|
||||||
#' where \eqn{\alpha_0} and \eqn{\beta_0} represent prior successes and failures, respectively, informed by expert knowledge or weakly informative priors (e.g., \eqn{\alpha_0 = 1, \beta_0 = 1}). The likelihood function is constructed based on observed data, where the number of covered cases for a regimen follows a binomial distribution:
|
|
||||||
#'
|
|
||||||
#' \deqn{y \sim \text{Binomial}(n, \theta)}
|
|
||||||
#'
|
|
||||||
#' Posterior parameter estimates are obtained by combining the prior and likelihood using Bayes' theorem. The posterior distribution of \eqn{\theta} is also a Beta distribution:
|
|
||||||
#'
|
|
||||||
#' \deqn{\theta | y \sim \text{Beta}(\alpha_0 + y, \beta_0 + n - y)}
|
|
||||||
#'
|
|
||||||
#' Pathogen incidence, representing the proportion of infections caused by different pathogens, is modelled using a Dirichlet distribution, which is the natural conjugate prior for multinomial outcomes. The Dirichlet distribution is parameterised by a vector of concentration parameters \eqn{\alpha}, where each \eqn{\alpha_i} corresponds to a specific pathogen. The prior is typically chosen to be uniform (\eqn{\alpha_i = 1}), reflecting an assumption of equal prior probability across pathogens.
|
|
||||||
#'
|
|
||||||
#' The posterior distribution of pathogen incidence is then given by:
|
|
||||||
#'
|
|
||||||
#' \deqn{\text{Dirichlet}(\alpha_1 + n_1, \alpha_2 + n_2, \dots, \alpha_K + n_K)}
|
|
||||||
#'
|
|
||||||
#' where \eqn{n_i} is the number of infections caused by pathogen \eqn{i} observed in the data. For practical implementation, pathogen incidences are sampled from their posterior using normalised Gamma-distributed random variables:
|
|
||||||
#'
|
|
||||||
#' \deqn{x_i \sim \text{Gamma}(\alpha_i + n_i, 1)}
|
|
||||||
#' \deqn{p_i = \frac{x_i}{\sum_{j=1}^K x_j}}
|
|
||||||
#'
|
|
||||||
#' where \eqn{x_i} represents unnormalised pathogen counts, and \eqn{p_i} is the normalised proportion for pathogen \eqn{i}.
|
|
||||||
#'
|
|
||||||
#' For hierarchical modelling, pathogen-level effects (e.g., differences in resistance patterns) and regimen-level effects are modelled using Gaussian priors on log-odds. This hierarchical structure ensures partial pooling of estimates across groups, improving stability in strata with small sample sizes. The model is implemented using Hamiltonian Monte Carlo (HMC) sampling.
|
|
||||||
#'
|
|
||||||
#' Stratified results can be provided based on covariates such as age, sex, and clinical complexity (e.g., prior antimicrobial treatments or renal/urological comorbidities) using `dplyr`'s [`group_by()`][dplyr::group_by()] as a pre-processing step before running [wisca()]. Posterior odds ratios (ORs) are derived to quantify the effect of these covariates on coverage probabilities:
|
|
||||||
#'
|
|
||||||
#' \deqn{\text{OR}_{\text{covariate}} = \frac{\exp(\beta_{\text{covariate}})}{\exp(\beta_0)}}
|
|
||||||
#'
|
|
||||||
#' By combining empirical data with prior knowledge, WISCA overcomes the limitations of traditional combination antibiograms, offering disease-specific, patient-stratified estimates with robust uncertainty quantification. This tool is invaluable for antimicrobial stewardship programs and empirical treatment guideline refinement.
|
|
||||||
#'
|
|
||||||
#' **Note:** WISCA never gives an output on the pathogen/species level, as all incidences and susceptibilities are already weighted for all species.
|
|
||||||
#' @source
|
#' @source
|
||||||
#' * Bielicki JA *et al.* (2016). **Selecting appropriate empirical antibiotic regimens for paediatric bloodstream infections: application of a Bayesian decision model to local and pooled antimicrobial resistance surveillance data** *Journal of Antimicrobial Chemotherapy* 71(3); \doi{10.1093/jac/dkv397}
|
#' * Bielicki JA *et al.* (2016). **Selecting appropriate empirical antibiotic regimens for paediatric bloodstream infections: application of a Bayesian decision model to local and pooled antimicrobial resistance surveillance data** *Journal of Antimicrobial Chemotherapy* 71(3); \doi{10.1093/jac/dkv397}
|
||||||
#' * Bielicki JA *et al.* (2020). **Evaluation of the coverage of 3 antibiotic regimens for neonatal sepsis in the hospital setting across Asian countries** *JAMA Netw Open.* 3(2):e1921124; \doi{10.1001.jamanetworkopen.2019.21124}
|
#' * Bielicki JA *et al.* (2020). **Evaluation of the coverage of 3 antibiotic regimens for neonatal sepsis in the hospital setting across Asian countries** *JAMA Netw Open.* 3(2):e1921124; \doi{10.1001/jamanetworkopen.2019.21124}
|
||||||
#' * Klinker KP *et al.* (2021). **Antimicrobial stewardship and antibiograms: importance of moving beyond traditional antibiograms**. *Therapeutic Advances in Infectious Disease*, May 5;8:20499361211011373; \doi{10.1177/20499361211011373}
|
#' * Klinker KP *et al.* (2021). **Antimicrobial stewardship and antibiograms: importance of moving beyond traditional antibiograms**. *Therapeutic Advances in Infectious Disease*, May 5;8:20499361211011373; \doi{10.1177/20499361211011373}
|
||||||
#' * Barbieri E *et al.* (2021). **Development of a Weighted-Incidence Syndromic Combination Antibiogram (WISCA) to guide the choice of the empiric antibiotic treatment for urinary tract infection in paediatric patients: a Bayesian approach** *Antimicrobial Resistance & Infection Control* May 1;10(1):74; \doi{10.1186/s13756-021-00939-2}
|
#' * Barbieri E *et al.* (2021). **Development of a Weighted-Incidence Syndromic Combination Antibiogram (WISCA) to guide the choice of the empiric antibiotic treatment for urinary tract infection in paediatric patients: a Bayesian approach** *Antimicrobial Resistance & Infection Control* May 1;10(1):74; \doi{10.1186/s13756-021-00939-2}
|
||||||
#' * **M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 5th Edition**, 2022, *Clinical and Laboratory Standards Institute (CLSI)*. <https://clsi.org/standards/products/microbiology/documents/m39/>.
|
#' * **M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 5th Edition**, 2022, *Clinical and Laboratory Standards Institute (CLSI)*. <https://clsi.org/standards/products/microbiology/documents/m39/>.
|
||||||
@@ -437,6 +407,7 @@ antibiogram <- function(x,
|
|||||||
minimum = 30,
|
minimum = 30,
|
||||||
combine_SI = TRUE,
|
combine_SI = TRUE,
|
||||||
sep = " + ",
|
sep = " + ",
|
||||||
|
sort_columns = TRUE,
|
||||||
wisca = FALSE,
|
wisca = FALSE,
|
||||||
simulations = 1000,
|
simulations = 1000,
|
||||||
conf_interval = 0.95,
|
conf_interval = 0.95,
|
||||||
@@ -462,6 +433,7 @@ antibiogram.default <- function(x,
|
|||||||
minimum = 30,
|
minimum = 30,
|
||||||
combine_SI = TRUE,
|
combine_SI = TRUE,
|
||||||
sep = " + ",
|
sep = " + ",
|
||||||
|
sort_columns = TRUE,
|
||||||
wisca = FALSE,
|
wisca = FALSE,
|
||||||
simulations = 1000,
|
simulations = 1000,
|
||||||
conf_interval = 0.95,
|
conf_interval = 0.95,
|
||||||
@@ -481,6 +453,7 @@ antibiogram.default <- function(x,
|
|||||||
deprecation_warning("antibiotics", "antimicrobials", fn = "antibiogram", is_argument = TRUE)
|
deprecation_warning("antibiotics", "antimicrobials", fn = "antibiogram", is_argument = TRUE)
|
||||||
antimicrobials <- list(...)$antibiotics
|
antimicrobials <- list(...)$antibiotics
|
||||||
}
|
}
|
||||||
|
meet_criteria(antimicrobials, allow_class = c("character", "numeric", "integer"), allow_NA = FALSE, allow_NULL = FALSE)
|
||||||
if (!is.function(mo_transform)) {
|
if (!is.function(mo_transform)) {
|
||||||
meet_criteria(mo_transform, allow_class = "character", has_length = 1, is_in = c("name", "shortname", "gramstain", colnames(AMR::microorganisms)), allow_NULL = TRUE, allow_NA = TRUE)
|
meet_criteria(mo_transform, allow_class = "character", has_length = 1, is_in = c("name", "shortname", "gramstain", colnames(AMR::microorganisms)), allow_NULL = TRUE, allow_NA = TRUE)
|
||||||
}
|
}
|
||||||
@@ -489,6 +462,9 @@ antibiogram.default <- function(x,
|
|||||||
}
|
}
|
||||||
meet_criteria(syndromic_group, allow_class = "character", allow_NULL = TRUE, allow_NA = TRUE)
|
meet_criteria(syndromic_group, allow_class = "character", allow_NULL = TRUE, allow_NA = TRUE)
|
||||||
meet_criteria(add_total_n, allow_class = "logical", has_length = 1)
|
meet_criteria(add_total_n, allow_class = "logical", has_length = 1)
|
||||||
|
if (isTRUE(add_total_n)) {
|
||||||
|
deprecation_warning("add_total_n", "formatting_type", fn = "antibiogram", is_argument = TRUE)
|
||||||
|
}
|
||||||
meet_criteria(only_all_tested, allow_class = "logical", has_length = 1)
|
meet_criteria(only_all_tested, allow_class = "logical", has_length = 1)
|
||||||
meet_criteria(digits, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE)
|
meet_criteria(digits, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE)
|
||||||
meet_criteria(formatting_type, allow_class = c("numeric", "integer"), has_length = 1, is_in = c(1:22))
|
meet_criteria(formatting_type, allow_class = c("numeric", "integer"), has_length = 1, is_in = c(1:22))
|
||||||
@@ -497,6 +473,7 @@ antibiogram.default <- function(x,
|
|||||||
meet_criteria(minimum, allow_class = c("numeric", "integer"), has_length = 1, is_positive_or_zero = TRUE, is_finite = TRUE)
|
meet_criteria(minimum, allow_class = c("numeric", "integer"), has_length = 1, is_positive_or_zero = TRUE, is_finite = TRUE)
|
||||||
meet_criteria(combine_SI, allow_class = "logical", has_length = 1)
|
meet_criteria(combine_SI, allow_class = "logical", has_length = 1)
|
||||||
meet_criteria(sep, allow_class = "character", has_length = 1)
|
meet_criteria(sep, allow_class = "character", has_length = 1)
|
||||||
|
meet_criteria(sort_columns, allow_class = "logical", has_length = 1)
|
||||||
meet_criteria(simulations, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE, is_positive = TRUE)
|
meet_criteria(simulations, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE, is_positive = TRUE)
|
||||||
meet_criteria(conf_interval, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE, is_positive = TRUE)
|
meet_criteria(conf_interval, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE, is_positive = TRUE)
|
||||||
meet_criteria(interval_side, allow_class = "character", has_length = 1, is_in = c("two-tailed", "left", "right"))
|
meet_criteria(interval_side, allow_class = "character", has_length = 1, is_in = c("two-tailed", "left", "right"))
|
||||||
@@ -571,6 +548,8 @@ antibiogram.default <- function(x,
|
|||||||
for (ab in abx) {
|
for (ab in abx) {
|
||||||
# make sure they are SIR columns
|
# make sure they are SIR columns
|
||||||
x[, ab] <- as.sir(x[, ab, drop = TRUE])
|
x[, ab] <- as.sir(x[, ab, drop = TRUE])
|
||||||
|
# set NI as NA
|
||||||
|
x[[ab]][x[[ab]] == "NI"] <- NA_sir_
|
||||||
}
|
}
|
||||||
new_colname <- paste0(trimws(abx), collapse = sep)
|
new_colname <- paste0(trimws(abx), collapse = sep)
|
||||||
if (length(abx) == 1) {
|
if (length(abx) == 1) {
|
||||||
@@ -582,7 +561,7 @@ antibiogram.default <- function(x,
|
|||||||
} else {
|
} else {
|
||||||
S_values <- "S"
|
S_values <- "S"
|
||||||
}
|
}
|
||||||
other_values <- setdiff(c("S", "SDD", "I", "R", "NI"), S_values)
|
other_values <- setdiff(c("S", "SDD", "I", "R"), S_values)
|
||||||
x_transposed <- as.list(as.data.frame(t(x[, abx, drop = FALSE]), stringsAsFactors = FALSE))
|
x_transposed <- as.list(as.data.frame(t(x[, abx, drop = FALSE]), stringsAsFactors = FALSE))
|
||||||
if (isTRUE(only_all_tested)) {
|
if (isTRUE(only_all_tested)) {
|
||||||
x[new_colname] <- as.sir(vapply(FUN.VALUE = character(1), x_transposed, function(x) ifelse(anyNA(x), NA_character_, ifelse(any(x %in% S_values), "S", "R")), USE.NAMES = FALSE))
|
x[new_colname] <- as.sir(vapply(FUN.VALUE = character(1), x_transposed, function(x) ifelse(anyNA(x), NA_character_, ifelse(any(x %in% S_values), "S", "R")), USE.NAMES = FALSE))
|
||||||
@@ -597,6 +576,15 @@ antibiogram.default <- function(x,
|
|||||||
}
|
}
|
||||||
antimicrobials <- unlist(antimicrobials)
|
antimicrobials <- unlist(antimicrobials)
|
||||||
} else {
|
} else {
|
||||||
|
existing_ab_combined_cols <- ab_trycatch[ab_trycatch %like% "[+]" & ab_trycatch %in% colnames(x)]
|
||||||
|
if (length(existing_ab_combined_cols) > 0 && !is.null(ab_transform)) {
|
||||||
|
ab_transform <- NULL
|
||||||
|
warning_(
|
||||||
|
"Detected column name(s) containing the '+' character, which conflicts with the expected syntax in `antibiogram()`: the '+' is used to combine separate antimicrobial agent columns (e.g., \"AMP+GEN\").\n\n",
|
||||||
|
"To avoid incorrectly guessing which antimicrobials this represents, `ab_transform` was automatically set to `NULL`.\n\n",
|
||||||
|
"If this is unintended, please rename the column(s) to avoid using '+' in the name, or set `ab_transform = NULL` explicitly to suppress this message."
|
||||||
|
)
|
||||||
|
}
|
||||||
antimicrobials <- ab_trycatch
|
antimicrobials <- ab_trycatch
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -618,6 +606,8 @@ antibiogram.default <- function(x,
|
|||||||
)
|
)
|
||||||
colnames(out)[colnames(out) == "total"] <- "n_tested"
|
colnames(out)[colnames(out) == "total"] <- "n_tested"
|
||||||
colnames(out)[colnames(out) == "total_rows"] <- "n_total"
|
colnames(out)[colnames(out) == "total_rows"] <- "n_total"
|
||||||
|
out$ab <- factor(out$ab, levels = antimicrobials, ordered = TRUE)
|
||||||
|
out <- out[order(out$mo, out$ab), , drop = FALSE]
|
||||||
|
|
||||||
counts <- out
|
counts <- out
|
||||||
|
|
||||||
@@ -678,9 +668,8 @@ antibiogram.default <- function(x,
|
|||||||
|
|
||||||
wisca_parameters <- data.frame()
|
wisca_parameters <- data.frame()
|
||||||
|
|
||||||
|
# WISCA START
|
||||||
if (wisca == TRUE) {
|
if (wisca == TRUE) {
|
||||||
# WISCA ----
|
|
||||||
|
|
||||||
if (isTRUE(has_syndromic_group)) {
|
if (isTRUE(has_syndromic_group)) {
|
||||||
colnames(out)[1] <- "syndromic_group"
|
colnames(out)[1] <- "syndromic_group"
|
||||||
out_wisca <- out %pm>%
|
out_wisca <- out %pm>%
|
||||||
@@ -704,9 +693,6 @@ antibiogram.default <- function(x,
|
|||||||
warning_("Number of tested isolates should exceed ", minimum, " for each regimen (and group). WISCA coverage estimates might be inaccurate.", call = FALSE)
|
warning_("Number of tested isolates should exceed ", minimum, " for each regimen (and group). WISCA coverage estimates might be inaccurate.", call = FALSE)
|
||||||
}
|
}
|
||||||
|
|
||||||
out_wisca$p_susceptible <- out_wisca$n_susceptible / out_wisca$n_tested
|
|
||||||
out_wisca$p_susceptible[is.nan(out_wisca$p_susceptible)] <- 0
|
|
||||||
|
|
||||||
if (isTRUE(has_syndromic_group)) {
|
if (isTRUE(has_syndromic_group)) {
|
||||||
out$group <- paste(out$syndromic_group, out$ab)
|
out$group <- paste(out$syndromic_group, out$ab)
|
||||||
out_wisca$group <- paste(out_wisca$syndromic_group, out_wisca$ab)
|
out_wisca$group <- paste(out_wisca$syndromic_group, out_wisca$ab)
|
||||||
@@ -715,31 +701,6 @@ antibiogram.default <- function(x,
|
|||||||
out_wisca$group <- out_wisca$ab
|
out_wisca$group <- out_wisca$ab
|
||||||
}
|
}
|
||||||
|
|
||||||
# create the WISCA parameters, including our priors/posteriors
|
|
||||||
out$gamma_posterior <- NA_real_
|
|
||||||
out$beta_posterior_1 <- NA_real_
|
|
||||||
out$beta_posterior_2 <- NA_real_
|
|
||||||
|
|
||||||
for (i in seq_len(NROW(out))) {
|
|
||||||
out_current <- out[i, , drop = FALSE]
|
|
||||||
|
|
||||||
## calculate priors ----
|
|
||||||
# pathogen incidence (Dirichlet distribution)
|
|
||||||
gamma_prior <- rep(1, length(unique(out_current$mo))) # Dirichlet prior
|
|
||||||
gamma_posterior <- gamma_prior + out_current$n_total # Posterior parameters
|
|
||||||
|
|
||||||
# regimen susceptibility (Beta distribution)
|
|
||||||
beta_prior <- rep(1, length(unique(out_current$mo))) # Beta prior
|
|
||||||
r <- out_current$n_susceptible
|
|
||||||
n <- out_current$n_tested
|
|
||||||
beta_posterior_1 <- beta_prior + r # Posterior alpha
|
|
||||||
beta_posterior_2 <- beta_prior + (n - r) # Posterior beta
|
|
||||||
|
|
||||||
out$gamma_posterior[i] <- gamma_posterior
|
|
||||||
out$beta_posterior_1[i] <- beta_posterior_1
|
|
||||||
out$beta_posterior_2[i] <- beta_posterior_2
|
|
||||||
}
|
|
||||||
|
|
||||||
wisca_parameters <- out
|
wisca_parameters <- out
|
||||||
|
|
||||||
progress <- progress_ticker(
|
progress <- progress_ticker(
|
||||||
@@ -750,42 +711,28 @@ antibiogram.default <- function(x,
|
|||||||
)
|
)
|
||||||
on.exit(close(progress))
|
on.exit(close(progress))
|
||||||
|
|
||||||
# run WISCA
|
# run WISCA per group
|
||||||
for (group in unique(wisca_parameters$group)) {
|
for (group in unique(wisca_parameters$group)) {
|
||||||
params_current <- wisca_parameters[which(wisca_parameters$group == group), , drop = FALSE]
|
params_current <- wisca_parameters[wisca_parameters$group == group, , drop = FALSE]
|
||||||
if (sum(params_current$n_tested, na.rm = TRUE) == 0) {
|
if (sum(params_current$n_tested, na.rm = TRUE) == 0) {
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
|
|
||||||
# Monte Carlo simulation
|
# prepare priors
|
||||||
coverage_simulations <- replicate(simulations, {
|
priors_current <- create_wisca_priors(params_current)
|
||||||
progress$tick()
|
|
||||||
|
|
||||||
# simulate pathogen incidence
|
# Monte Carlo simulations
|
||||||
# = Dirichlet (Gamma) parameters
|
coverage_simulations <- vapply(
|
||||||
random_incidence <- stats::runif(n = 1, min = 0, max = 1)
|
FUN.VALUE = double(1),
|
||||||
simulated_incidence <- stats::qgamma(
|
seq_len(simulations), function(i) {
|
||||||
p = random_incidence,
|
progress$tick()
|
||||||
shape = params_current$gamma_posterior,
|
simulate_coverage(priors_current)
|
||||||
scale = 1
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
# normalise
|
# summarise results
|
||||||
simulated_incidence <- simulated_incidence / sum(simulated_incidence, na.rm = TRUE)
|
|
||||||
|
|
||||||
# simulate susceptibility
|
|
||||||
# = Beta parameters
|
|
||||||
random_susceptibity <- stats::runif(n = 1, min = 0, max = 1)
|
|
||||||
simulated_susceptibility <- stats::qbeta(
|
|
||||||
p = random_susceptibity,
|
|
||||||
shape1 = params_current$beta_posterior_1,
|
|
||||||
shape2 = params_current$beta_posterior_2
|
|
||||||
)
|
|
||||||
sum(simulated_incidence * simulated_susceptibility, na.rm = TRUE)
|
|
||||||
})
|
|
||||||
|
|
||||||
# calculate coverage statistics
|
|
||||||
coverage_mean <- mean(coverage_simulations)
|
coverage_mean <- mean(coverage_simulations)
|
||||||
|
|
||||||
if (interval_side == "two-tailed") {
|
if (interval_side == "two-tailed") {
|
||||||
probs <- c((1 - conf_interval) / 2, 1 - (1 - conf_interval) / 2)
|
probs <- c((1 - conf_interval) / 2, 1 - (1 - conf_interval) / 2)
|
||||||
} else if (interval_side == "left") {
|
} else if (interval_side == "left") {
|
||||||
@@ -793,17 +740,20 @@ antibiogram.default <- function(x,
|
|||||||
} else if (interval_side == "right") {
|
} else if (interval_side == "right") {
|
||||||
probs <- c(1 - conf_interval, 1)
|
probs <- c(1 - conf_interval, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
coverage_ci <- unname(stats::quantile(coverage_simulations, probs = probs))
|
coverage_ci <- unname(stats::quantile(coverage_simulations, probs = probs))
|
||||||
|
|
||||||
out_wisca$coverage[which(out_wisca$group == group)] <- coverage_mean
|
out_wisca$coverage[out_wisca$group == group] <- coverage_mean
|
||||||
out_wisca$lower_ci[which(out_wisca$group == group)] <- coverage_ci[1]
|
out_wisca$lower_ci[out_wisca$group == group] <- coverage_ci[1]
|
||||||
out_wisca$upper_ci[which(out_wisca$group == group)] <- coverage_ci[2]
|
out_wisca$upper_ci[out_wisca$group == group] <- coverage_ci[2]
|
||||||
}
|
}
|
||||||
# remove progress bar from console
|
|
||||||
close(progress)
|
close(progress)
|
||||||
# prepare for definitive output
|
|
||||||
|
# final output preparation
|
||||||
out <- out_wisca
|
out <- out_wisca
|
||||||
wisca_parameters <- wisca_parameters[, colnames(wisca_parameters)[!colnames(wisca_parameters) %in% c(levels(NA_sir_), "lower_ci", "upper_ci", "group")], drop = FALSE]
|
wisca_parameters <- wisca_parameters[, colnames(wisca_parameters)[!colnames(wisca_parameters) %in% c(levels(NA_sir_), "lower_ci", "upper_ci", "group")], drop = FALSE]
|
||||||
|
|
||||||
if (isTRUE(has_syndromic_group)) {
|
if (isTRUE(has_syndromic_group)) {
|
||||||
long_numeric <- out_wisca %pm>%
|
long_numeric <- out_wisca %pm>%
|
||||||
pm_ungroup() %pm>%
|
pm_ungroup() %pm>%
|
||||||
@@ -891,7 +841,7 @@ antibiogram.default <- function(x,
|
|||||||
|
|
||||||
# transform names of antimicrobials
|
# transform names of antimicrobials
|
||||||
ab_naming_function <- function(x, t, l, s) {
|
ab_naming_function <- function(x, t, l, s) {
|
||||||
x <- strsplit(x, s, fixed = TRUE)
|
x <- strsplit(as.character(x), s, fixed = TRUE)
|
||||||
out <- character(length = length(x))
|
out <- character(length = length(x))
|
||||||
for (i in seq_along(x)) {
|
for (i in seq_along(x)) {
|
||||||
a <- x[[i]]
|
a <- x[[i]]
|
||||||
@@ -936,6 +886,12 @@ antibiogram.default <- function(x,
|
|||||||
attr(out, "groups") <- NULL
|
attr(out, "groups") <- NULL
|
||||||
class(out) <- class(out)[!class(out) %in% c("grouped_df", "grouped_data")]
|
class(out) <- class(out)[!class(out) %in% c("grouped_df", "grouped_data")]
|
||||||
|
|
||||||
|
if (isTRUE(sort_columns)) {
|
||||||
|
sort_fn <- base::sort
|
||||||
|
} else {
|
||||||
|
sort_fn <- function(x) x
|
||||||
|
}
|
||||||
|
|
||||||
if (isTRUE(has_syndromic_group)) {
|
if (isTRUE(has_syndromic_group)) {
|
||||||
grps <- unique(out$syndromic_group)
|
grps <- unique(out$syndromic_group)
|
||||||
for (i in seq_along(grps)) {
|
for (i in seq_along(grps)) {
|
||||||
@@ -953,25 +909,25 @@ antibiogram.default <- function(x,
|
|||||||
# sort rows
|
# sort rows
|
||||||
new_df <- new_df %pm>% pm_arrange(syndromic_group)
|
new_df <- new_df %pm>% pm_arrange(syndromic_group)
|
||||||
# sort columns
|
# sort columns
|
||||||
new_df <- new_df[, c("syndromic_group", sort(colnames(new_df)[colnames(new_df) != "syndromic_group"])), drop = FALSE]
|
new_df <- new_df[, c("syndromic_group", sort_fn(colnames(new_df)[colnames(new_df) != "syndromic_group"])), drop = FALSE]
|
||||||
colnames(new_df)[1] <- translate_AMR("Syndromic Group", language = language)
|
colnames(new_df)[1] <- translate_AMR("Syndromic Group", language = language)
|
||||||
} else {
|
} else {
|
||||||
# sort rows
|
# sort rows
|
||||||
new_df <- new_df %pm>% pm_arrange(mo, syndromic_group)
|
new_df <- new_df %pm>% pm_arrange(mo, syndromic_group)
|
||||||
# sort columns
|
# sort columns
|
||||||
new_df <- new_df[, c("syndromic_group", "mo", sort(colnames(new_df)[!colnames(new_df) %in% c("syndromic_group", "mo")])), drop = FALSE]
|
new_df <- new_df[, c("syndromic_group", "mo", sort_fn(colnames(new_df)[!colnames(new_df) %in% c("syndromic_group", "mo")])), drop = FALSE]
|
||||||
colnames(new_df)[1:2] <- translate_AMR(c("Syndromic Group", "Pathogen"), language = language)
|
colnames(new_df)[1:2] <- translate_AMR(c("Syndromic Group", "Pathogen"), language = language)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
new_df <- long_to_wide(out)
|
new_df <- long_to_wide(out)
|
||||||
if (wisca == TRUE) {
|
if (wisca == TRUE) {
|
||||||
# sort columns
|
# sort columns
|
||||||
new_df <- new_df[, c(sort(colnames(new_df))), drop = FALSE]
|
new_df <- new_df[, c(sort_fn(colnames(new_df))), drop = FALSE]
|
||||||
} else {
|
} else {
|
||||||
# sort rows
|
# sort rows
|
||||||
new_df <- new_df %pm>% pm_arrange(mo)
|
new_df <- new_df %pm>% pm_arrange(mo)
|
||||||
# sort columns
|
# sort columns
|
||||||
new_df <- new_df[, c("mo", sort(colnames(new_df)[colnames(new_df) != "mo"])), drop = FALSE]
|
new_df <- new_df[, c("mo", sort_fn(colnames(new_df)[colnames(new_df) != "mo"])), drop = FALSE]
|
||||||
colnames(new_df)[1] <- translate_AMR("Pathogen", language = language)
|
colnames(new_df)[1] <- translate_AMR("Pathogen", language = language)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1033,6 +989,7 @@ antibiogram.grouped_df <- function(x,
|
|||||||
minimum = 30,
|
minimum = 30,
|
||||||
combine_SI = TRUE,
|
combine_SI = TRUE,
|
||||||
sep = " + ",
|
sep = " + ",
|
||||||
|
sort_columns = TRUE,
|
||||||
wisca = FALSE,
|
wisca = FALSE,
|
||||||
simulations = 1000,
|
simulations = 1000,
|
||||||
conf_interval = 0.95,
|
conf_interval = 0.95,
|
||||||
@@ -1075,6 +1032,7 @@ antibiogram.grouped_df <- function(x,
|
|||||||
minimum = minimum,
|
minimum = minimum,
|
||||||
combine_SI = combine_SI,
|
combine_SI = combine_SI,
|
||||||
sep = sep,
|
sep = sep,
|
||||||
|
sort_columns = sort_columns,
|
||||||
wisca = wisca,
|
wisca = wisca,
|
||||||
simulations = simulations,
|
simulations = simulations,
|
||||||
conf_interval = conf_interval,
|
conf_interval = conf_interval,
|
||||||
@@ -1151,6 +1109,7 @@ wisca <- function(x,
|
|||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
combine_SI = TRUE,
|
combine_SI = TRUE,
|
||||||
sep = " + ",
|
sep = " + ",
|
||||||
|
sort_columns = TRUE,
|
||||||
simulations = 1000,
|
simulations = 1000,
|
||||||
conf_interval = 0.95,
|
conf_interval = 0.95,
|
||||||
interval_side = "two-tailed",
|
interval_side = "two-tailed",
|
||||||
@@ -1170,6 +1129,7 @@ wisca <- function(x,
|
|||||||
language = language,
|
language = language,
|
||||||
combine_SI = combine_SI,
|
combine_SI = combine_SI,
|
||||||
sep = sep,
|
sep = sep,
|
||||||
|
sort_columns = sort_columns,
|
||||||
wisca = TRUE,
|
wisca = TRUE,
|
||||||
simulations = simulations,
|
simulations = simulations,
|
||||||
conf_interval = conf_interval,
|
conf_interval = conf_interval,
|
||||||
@@ -1179,6 +1139,59 @@ wisca <- function(x,
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create_wisca_priors <- function(data) {
|
||||||
|
pathogens <- unique(data$mo)
|
||||||
|
n_pathogens <- length(pathogens)
|
||||||
|
|
||||||
|
# Dirichlet prior (gamma parameters)
|
||||||
|
gamma_prior <- rep(1, times = n_pathogens)
|
||||||
|
multinomial_obs <- data$n_total
|
||||||
|
gamma_posterior <- gamma_prior + multinomial_obs
|
||||||
|
|
||||||
|
# beta priors
|
||||||
|
beta_prior_alpha <- rep(1, times = n_pathogens)
|
||||||
|
beta_prior_beta <- rep(1, times = n_pathogens)
|
||||||
|
|
||||||
|
r <- data$n_susceptible
|
||||||
|
n <- data$n_tested
|
||||||
|
diff_nr <- n - r
|
||||||
|
|
||||||
|
beta_posterior_1 <- beta_prior_alpha + r
|
||||||
|
beta_posterior_2 <- beta_prior_beta + diff_nr
|
||||||
|
|
||||||
|
list(
|
||||||
|
gamma_posterior = gamma_posterior,
|
||||||
|
beta_posterior_1 = beta_posterior_1,
|
||||||
|
beta_posterior_2 = beta_posterior_2
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
simulate_coverage <- function(params) {
|
||||||
|
n_pathogens <- length(params$gamma_posterior)
|
||||||
|
|
||||||
|
# random draws per pathogen
|
||||||
|
random_incidence <- stats::runif(n = n_pathogens)
|
||||||
|
random_susceptibility <- stats::runif(n = n_pathogens)
|
||||||
|
|
||||||
|
simulated_incidence <- stats::qgamma(
|
||||||
|
p = random_incidence,
|
||||||
|
shape = params$gamma_posterior,
|
||||||
|
scale = 1
|
||||||
|
)
|
||||||
|
|
||||||
|
# normalise incidence
|
||||||
|
simulated_incidence <- simulated_incidence / sum(simulated_incidence, na.rm = TRUE)
|
||||||
|
|
||||||
|
simulated_susceptibility <- stats::qbeta(
|
||||||
|
p = random_susceptibility,
|
||||||
|
shape1 = params$beta_posterior_1,
|
||||||
|
shape2 = params$beta_posterior_2
|
||||||
|
)
|
||||||
|
|
||||||
|
# weighted coverage
|
||||||
|
sum(simulated_incidence * simulated_susceptibility, na.rm = TRUE)
|
||||||
|
}
|
||||||
|
|
||||||
#' @export
|
#' @export
|
||||||
#' @param wisca_model The outcome of [wisca()] or [`antibiogram(..., wisca = TRUE)`][antibiogram()].
|
#' @param wisca_model The outcome of [wisca()] or [`antibiogram(..., wisca = TRUE)`][antibiogram()].
|
||||||
#' @rdname antibiogram
|
#' @rdname antibiogram
|
||||||
@@ -1187,20 +1200,23 @@ retrieve_wisca_parameters <- function(wisca_model, ...) {
|
|||||||
attributes(wisca_model)$wisca_parameters
|
attributes(wisca_model)$wisca_parameters
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::tbl_sum, antibiogram)
|
||||||
tbl_sum.antibiogram <- function(x, ...) {
|
tbl_sum.antibiogram <- function(x, ...) {
|
||||||
dims <- paste(format(NROW(x), big.mark = ","), AMR_env$cross_icon, format(NCOL(x), big.mark = ","))
|
dims <- paste(format(NROW(x), big.mark = ","), AMR_env$cross_icon, format(NCOL(x), big.mark = ","))
|
||||||
|
names(dims) <- "An Antibiogram"
|
||||||
if (isTRUE(attributes(x)$wisca)) {
|
if (isTRUE(attributes(x)$wisca)) {
|
||||||
names(dims) <- paste0("An Antibiogram (WISCA / ", attributes(x)$conf_interval * 100, "% CI)")
|
dims <- c(dims, Type = paste0("WISCA with ", attributes(x)$conf_interval * 100, "% CI"))
|
||||||
} else if (isTRUE(attributes(x)$formatting_type >= 13)) {
|
} else if (isTRUE(attributes(x)$formatting_type >= 13)) {
|
||||||
names(dims) <- paste0("An Antibiogram (non-WISCA / ", attributes(x)$conf_interval * 100, "% CI)")
|
dims <- c(dims, Type = paste0("Non-WISCA with ", attributes(x)$conf_interval * 100, "% CI"))
|
||||||
} else {
|
} else {
|
||||||
names(dims) <- paste0("An Antibiogram (non-WISCA)")
|
dims <- c(dims, Type = paste0("Non-WISCA without CI"))
|
||||||
}
|
}
|
||||||
dims
|
dims
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::tbl_format_footer, antibiogram)
|
||||||
tbl_format_footer.antibiogram <- function(x, ...) {
|
tbl_format_footer.antibiogram <- function(x, ...) {
|
||||||
footer <- NextMethod()
|
footer <- NextMethod()
|
||||||
if (NROW(x) == 0) {
|
if (NROW(x) == 0) {
|
||||||
@@ -1268,7 +1284,8 @@ barplot.antibiogram <- function(height, ...) {
|
|||||||
|
|
||||||
#' @method autoplot antibiogram
|
#' @method autoplot antibiogram
|
||||||
#' @rdname antibiogram
|
#' @rdname antibiogram
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, antibiogram)
|
||||||
autoplot.antibiogram <- function(object, ...) {
|
autoplot.antibiogram <- function(object, ...) {
|
||||||
df <- attributes(object)$long_numeric
|
df <- attributes(object)$long_numeric
|
||||||
if (!"mo" %in% colnames(df)) {
|
if (!"mo" %in% colnames(df)) {
|
||||||
@@ -1315,11 +1332,12 @@ autoplot.antibiogram <- function(object, ...) {
|
|||||||
out
|
out
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported in zzz.R
|
|
||||||
#' @method knit_print antibiogram
|
#' @method knit_print antibiogram
|
||||||
#' @param italicise A [logical] to indicate whether the microorganism names in the [knitr][knitr::kable()] table should be made italic, using [italicise_taxonomy()].
|
#' @param italicise A [logical] to indicate whether the microorganism names in the [knitr][knitr::kable()] table should be made italic, using [italicise_taxonomy()].
|
||||||
#' @param na Character to use for showing `NA` values.
|
#' @param na Character to use for showing `NA` values.
|
||||||
#' @rdname antibiogram
|
#' @rdname antibiogram
|
||||||
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(knitr::knit_print, antibiogram)
|
||||||
knit_print.antibiogram <- function(x, italicise = TRUE, na = getOption("knitr.kable.NA", default = ""), ...) {
|
knit_print.antibiogram <- function(x, italicise = TRUE, na = getOption("knitr.kable.NA", default = ""), ...) {
|
||||||
stop_ifnot_installed("knitr")
|
stop_ifnot_installed("knitr")
|
||||||
meet_criteria(italicise, allow_class = "logical", has_length = 1)
|
meet_criteria(italicise, allow_class = "logical", has_length = 1)
|
||||||
@@ -1327,12 +1345,9 @@ knit_print.antibiogram <- function(x, italicise = TRUE, na = getOption("knitr.ka
|
|||||||
|
|
||||||
add_MO_lookup_to_AMR_env()
|
add_MO_lookup_to_AMR_env()
|
||||||
|
|
||||||
cols_with_mo_names <- vapply(FUN.VALUE = logical(1), x, function(x) any(x %in% AMR_env$MO_lookup$fullname, na.rm = TRUE))
|
for (i in which(vapply(FUN.VALUE = logical(1), x, is.character))) {
|
||||||
if (any(cols_with_mo_names)) {
|
# make all microorganism names italic, according to nomenclature
|
||||||
for (i in which(cols_with_mo_names)) {
|
x[[i]] <- italicise_taxonomy(x[[i]], type = "markdown")
|
||||||
# make all microorganism names italic, according to nomenclature
|
|
||||||
x[[i]] <- italicise_taxonomy(x[[i]], type = "markdown")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
old_option <- getOption("knitr.kable.NA")
|
old_option <- getOption("knitr.kable.NA")
|
||||||
|
|||||||
6
R/av.R
6
R/av.R
@@ -507,7 +507,8 @@ is.av <- function(x) {
|
|||||||
inherits(x, "av")
|
inherits(x, "av")
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, av)
|
||||||
pillar_shaft.av <- function(x, ...) {
|
pillar_shaft.av <- function(x, ...) {
|
||||||
out <- trimws(format(x))
|
out <- trimws(format(x))
|
||||||
out[!is.na(x)] <- gsub("+", font_subtle("+"), out[!is.na(x)], fixed = TRUE)
|
out[!is.na(x)] <- gsub("+", font_subtle("+"), out[!is.na(x)], fixed = TRUE)
|
||||||
@@ -515,7 +516,8 @@ pillar_shaft.av <- function(x, ...) {
|
|||||||
create_pillar_column(out, align = "left", min_width = 4)
|
create_pillar_column(out, align = "left", min_width = 4)
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::type_sum, av)
|
||||||
type_sum.av <- function(x, ...) {
|
type_sum.av <- function(x, ...) {
|
||||||
"av"
|
"av"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ av_validate <- function(x, property, ...) {
|
|||||||
# try to catch an error when inputting an invalid argument
|
# try to catch an error when inputting an invalid argument
|
||||||
# so the 'call.' can be set to FALSE
|
# so the 'call.' can be set to FALSE
|
||||||
tryCatch(x[1L] %in% AMR_env$AV_lookup[1, property, drop = TRUE],
|
tryCatch(x[1L] %in% AMR_env$AV_lookup[1, property, drop = TRUE],
|
||||||
error = function(e) stop(e$message, call. = FALSE)
|
error = function(e) stop(conditionMessage(e), call. = FALSE)
|
||||||
)
|
)
|
||||||
|
|
||||||
if (!all(x %in% AMR_env$AV_lookup[, property, drop = TRUE])) {
|
if (!all(x %in% AMR_env$AV_lookup[, property, drop = TRUE])) {
|
||||||
|
|||||||
@@ -356,7 +356,8 @@ format.bug_drug_combinations <- function(x,
|
|||||||
as_original_data_class(y, class(x.bak), extra_class = "formatted_bug_drug_combinations") # will remove tibble groups
|
as_original_data_class(y, class(x.bak), extra_class = "formatted_bug_drug_combinations") # will remove tibble groups
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported in zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(knitr::knit_print, formatted_bug_drug_combinations)
|
||||||
knit_print.formatted_bug_drug_combinations <- function(x, ...) {
|
knit_print.formatted_bug_drug_combinations <- function(x, ...) {
|
||||||
stop_ifnot_installed("knitr")
|
stop_ifnot_installed("knitr")
|
||||||
# make columns with MO names italic according to nomenclature
|
# make columns with MO names italic according to nomenclature
|
||||||
|
|||||||
18
R/count.R
18
R/count.R
@@ -126,7 +126,7 @@ count_resistant <- function(..., only_all_tested = FALSE) {
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ count_susceptible <- function(..., only_all_tested = FALSE) {
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +152,7 @@ count_S <- function(..., only_all_tested = FALSE) {
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ count_SI <- function(..., only_all_tested = FALSE) {
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ count_I <- function(..., only_all_tested = FALSE) {
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ count_IR <- function(..., only_all_tested = FALSE) {
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ count_R <- function(..., only_all_tested = FALSE) {
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,7 +217,7 @@ count_all <- function(..., only_all_tested = FALSE) {
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -240,6 +240,6 @@ count_df <- function(data,
|
|||||||
combine_SI = combine_SI,
|
combine_SI = combine_SI,
|
||||||
confidence_level = 0.95 # doesn't matter, will be removed
|
confidence_level = 0.95 # doesn't matter, will be removed
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc_df(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc_df(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,6 @@
|
|||||||
#' @param ... Rules in [formula][base::tilde] notation, see below for instructions, and in *Examples*.
|
#' @param ... Rules in [formula][base::tilde] notation, see below for instructions, and in *Examples*.
|
||||||
#' @details
|
#' @details
|
||||||
#' Some organisations have their own adoption of EUCAST rules. This function can be used to define custom EUCAST rules to be used in the [eucast_rules()] function.
|
#' Some organisations have their own adoption of EUCAST rules. This function can be used to define custom EUCAST rules to be used in the [eucast_rules()] function.
|
||||||
#' @section How it works:
|
|
||||||
#'
|
#'
|
||||||
#' ### Basics
|
#' ### Basics
|
||||||
#'
|
#'
|
||||||
@@ -69,7 +68,11 @@
|
|||||||
#' #> 1 Escherichia coli R S S
|
#' #> 1 Escherichia coli R S S
|
||||||
#' #> 2 Klebsiella pneumoniae R S S
|
#' #> 2 Klebsiella pneumoniae R S S
|
||||||
#'
|
#'
|
||||||
#' eucast_rules(df, rules = "custom", custom_rules = x, info = FALSE, overwrite = TRUE)
|
#' eucast_rules(df,
|
||||||
|
#' rules = "custom",
|
||||||
|
#' custom_rules = x,
|
||||||
|
#' info = FALSE,
|
||||||
|
#' overwrite = TRUE)
|
||||||
#' #> mo TZP ampi cipro
|
#' #> mo TZP ampi cipro
|
||||||
#' #> 1 Escherichia coli R R S
|
#' #> 1 Escherichia coli R R S
|
||||||
#' #> 2 Klebsiella pneumoniae R R S
|
#' #> 2 Klebsiella pneumoniae R R S
|
||||||
@@ -80,15 +83,25 @@
|
|||||||
#' There is one exception in columns used for the rules: all column names of the [microorganisms] data set can also be used, but do not have to exist in the data set. These column names are: `r vector_and(colnames(microorganisms), sort = FALSE)`. Thus, this next example will work as well, despite the fact that the `df` data set does not contain a column `genus`:
|
#' There is one exception in columns used for the rules: all column names of the [microorganisms] data set can also be used, but do not have to exist in the data set. These column names are: `r vector_and(colnames(microorganisms), sort = FALSE)`. Thus, this next example will work as well, despite the fact that the `df` data set does not contain a column `genus`:
|
||||||
#'
|
#'
|
||||||
#' ```r
|
#' ```r
|
||||||
#' y <- custom_eucast_rules(TZP == "S" & genus == "Klebsiella" ~ aminopenicillins == "S",
|
#' y <- custom_eucast_rules(
|
||||||
#' TZP == "R" & genus == "Klebsiella" ~ aminopenicillins == "R")
|
#' TZP == "S" & genus == "Klebsiella" ~ aminopenicillins == "S",
|
||||||
|
#' TZP == "R" & genus == "Klebsiella" ~ aminopenicillins == "R"
|
||||||
|
#' )
|
||||||
#'
|
#'
|
||||||
#' eucast_rules(df, rules = "custom", custom_rules = y, info = FALSE, overwrite = TRUE)
|
#' eucast_rules(df,
|
||||||
|
#' rules = "custom",
|
||||||
|
#' custom_rules = y,
|
||||||
|
#' info = FALSE,
|
||||||
|
#' overwrite = TRUE)
|
||||||
#' #> mo TZP ampi cipro
|
#' #> mo TZP ampi cipro
|
||||||
#' #> 1 Escherichia coli R S S
|
#' #> 1 Escherichia coli R S S
|
||||||
#' #> 2 Klebsiella pneumoniae R R S
|
#' #> 2 Klebsiella pneumoniae R R S
|
||||||
#' ```
|
#' ```
|
||||||
#'
|
#'
|
||||||
|
#' ### Sharing rules among multiple users
|
||||||
|
#'
|
||||||
|
#' The rules set (the `y` object in this case) could be exported to a shared file location using [saveRDS()] if you collaborate with multiple users. The custom rules set could then be imported using [readRDS()].
|
||||||
|
#'
|
||||||
#' ### Usage of multiple antimicrobials and antimicrobial group names
|
#' ### Usage of multiple antimicrobials and antimicrobial group names
|
||||||
#'
|
#'
|
||||||
#' You can define antimicrobial groups instead of single antimicrobials for the rule consequence, which is the part *after* the tilde (~). In the examples above, the antimicrobial group `aminopenicillins` includes both ampicillin and amoxicillin.
|
#' You can define antimicrobial groups instead of single antimicrobials for the rule consequence, which is the part *after* the tilde (~). In the examples above, the antimicrobial group `aminopenicillins` includes both ampicillin and amoxicillin.
|
||||||
@@ -278,35 +291,3 @@ print.custom_eucast_rules <- function(x, ...) {
|
|||||||
cat("\n ", rule_if, "\n", rule_then, "\n", sep = "")
|
cat("\n ", rule_if, "\n", rule_then, "\n", sep = "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
format_custom_query_rule <- function(query, colours = has_colour()) {
|
|
||||||
# font_black() is a bit expensive so do it once:
|
|
||||||
txt <- font_black("{text}")
|
|
||||||
query <- gsub(" & ", sub("{text}", font_bold(" and "), txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" | ", sub("{text}", " or ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" + ", sub("{text}", " plus ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" - ", sub("{text}", " minus ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" / ", sub("{text}", " divided by ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" * ", sub("{text}", " times ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" == ", sub("{text}", " is ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" > ", sub("{text}", " is higher than ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" < ", sub("{text}", " is lower than ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" >= ", sub("{text}", " is higher than or equal to ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" <= ", sub("{text}", " is lower than or equal to ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" ^ ", sub("{text}", " to the power of ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" %in% ", sub("{text}", " is one of ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
query <- gsub(" %like% ", sub("{text}", " resembles ", txt, fixed = TRUE), query, fixed = TRUE)
|
|
||||||
if (colours == TRUE) {
|
|
||||||
query <- gsub('"R"', font_rose_bg(" R "), query, fixed = TRUE)
|
|
||||||
query <- gsub('"S"', font_green_bg(" S "), query, fixed = TRUE)
|
|
||||||
query <- gsub('"I"', font_orange_bg(" I "), query, fixed = TRUE)
|
|
||||||
}
|
|
||||||
# replace the black colour 'stops' with blue colour 'starts'
|
|
||||||
query <- gsub("\033[39m", "\033[34m", as.character(query), fixed = TRUE)
|
|
||||||
# start with blue
|
|
||||||
query <- paste0("\033[34m", query)
|
|
||||||
if (colours == FALSE) {
|
|
||||||
query <- font_stripstyle(query)
|
|
||||||
}
|
|
||||||
query
|
|
||||||
}
|
|
||||||
|
|||||||
313
R/custom_mdro_guideline.R
Executable file
313
R/custom_mdro_guideline.R
Executable file
@@ -0,0 +1,313 @@
|
|||||||
|
# ==================================================================== #
|
||||||
|
# TITLE: #
|
||||||
|
# AMR: An R Package for Working with Antimicrobial Resistance Data #
|
||||||
|
# #
|
||||||
|
# SOURCE CODE: #
|
||||||
|
# https://github.com/msberends/AMR #
|
||||||
|
# #
|
||||||
|
# PLEASE CITE THIS SOFTWARE AS: #
|
||||||
|
# Berends MS, Luz CF, Friedrich AW, et al. (2022). #
|
||||||
|
# AMR: An R Package for Working with Antimicrobial Resistance Data. #
|
||||||
|
# Journal of Statistical Software, 104(3), 1-31. #
|
||||||
|
# https://doi.org/10.18637/jss.v104.i03 #
|
||||||
|
# #
|
||||||
|
# Developed at the University of Groningen and the University Medical #
|
||||||
|
# Center Groningen in The Netherlands, in collaboration with many #
|
||||||
|
# colleagues from around the world, see our website. #
|
||||||
|
# #
|
||||||
|
# This R package is free software; you can freely use and distribute #
|
||||||
|
# it for both personal and commercial purposes under the terms of the #
|
||||||
|
# GNU General Public License version 2.0 (GNU GPL-2), as published by #
|
||||||
|
# the Free Software Foundation. #
|
||||||
|
# We created this package for both routine data analysis and academic #
|
||||||
|
# research and it was publicly released in the hope that it will be #
|
||||||
|
# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. #
|
||||||
|
# #
|
||||||
|
# Visit our website for the full manual and a complete tutorial about #
|
||||||
|
# how to conduct AMR data analysis: https://amr-for-r.org #
|
||||||
|
# ==================================================================== #
|
||||||
|
|
||||||
|
#' Define Custom MDRO Guideline
|
||||||
|
#'
|
||||||
|
#' Define custom a MDRO guideline for your organisation or specific analysis and use the output of this function in [mdro()].
|
||||||
|
#' @param ... Guideline rules in [formula][base::tilde] notation, see below for instructions, and in *Examples*.
|
||||||
|
#' @param as_factor A [logical] to indicate whether the returned value should be an ordered [factor] (`TRUE`, default), or otherwise a [character] vector. For combining rules sets (using [c()]) this value will be inherited from the first set at default.
|
||||||
|
#' @details
|
||||||
|
#' Using a custom MDRO guideline is of importance if you have custom rules to determine MDROs in your hospital, e.g., rules that are dependent on ward, state of contact isolation or other variables in your data.
|
||||||
|
#'
|
||||||
|
#' ### Basics
|
||||||
|
#'
|
||||||
|
#' If you are familiar with the [`case_when()`][dplyr::case_when()] function of the `dplyr` package, you will recognise the input method to set your own rules. Rules must be set using what \R considers to be the 'formula notation'. The rule itself is written *before* the tilde (`~`) and the consequence of the rule is written *after* the tilde:
|
||||||
|
#'
|
||||||
|
#' ```r
|
||||||
|
#' custom <- custom_mdro_guideline(CIP == "R" & age > 60 ~ "Elderly Type A",
|
||||||
|
#' ERY == "R" & age > 60 ~ "Elderly Type B")
|
||||||
|
#' ```
|
||||||
|
#'
|
||||||
|
#' If a row/an isolate matches the first rule, the value after the first `~` (in this case *'Elderly Type A'*) will be set as MDRO value. Otherwise, the second rule will be tried and so on. The number of rules is unlimited.
|
||||||
|
#'
|
||||||
|
#' You can print the rules set in the console for an overview. Colours will help reading it if your console supports colours.
|
||||||
|
#'
|
||||||
|
#' ```r
|
||||||
|
#' custom
|
||||||
|
#' #> A set of custom MDRO rules:
|
||||||
|
#' #> 1. If CIP is R and age is higher than 60 then: Elderly Type A
|
||||||
|
#' #> 2. If ERY is R and age is higher than 60 then: Elderly Type B
|
||||||
|
#' #> 3. Otherwise: Negative
|
||||||
|
#'
|
||||||
|
#' #> Unmatched rows will return NA.
|
||||||
|
#' #> Results will be of class 'factor', with ordered levels: Negative < Elderly Type A < Elderly Type B
|
||||||
|
#' ```
|
||||||
|
#'
|
||||||
|
#' The outcome of the function can be used for the `guideline` argument in the [mdro()] function:
|
||||||
|
#'
|
||||||
|
#' ```r
|
||||||
|
#' x <- mdro(example_isolates, guideline = custom)
|
||||||
|
#' #> Determining MDROs based on custom rules, resulting in factor levels: Negative < Elderly Type A < Elderly Type B.
|
||||||
|
#' #> - Custom MDRO rule 1: CIP == "R" & age > 60 (198 rows matched)
|
||||||
|
#' #> - Custom MDRO rule 2: ERY == "R" & age > 60 (732 rows matched)
|
||||||
|
#' #> => Found 930 custom defined MDROs out of 2000 isolates (46.5%)
|
||||||
|
#'
|
||||||
|
#' table(x)
|
||||||
|
#' #> x
|
||||||
|
#' #> Negative Elderly Type A Elderly Type B
|
||||||
|
#' #> 1070 198 732
|
||||||
|
#' ```
|
||||||
|
#'
|
||||||
|
#' Rules can also be combined with other custom rules by using [c()]:
|
||||||
|
#'
|
||||||
|
#' ```r
|
||||||
|
#' x <- mdro(example_isolates,
|
||||||
|
#' guideline = c(custom,
|
||||||
|
#' custom_mdro_guideline(ERY == "R" & age > 50 ~ "Elderly Type C")))
|
||||||
|
#' #> Determining MDROs based on custom rules, resulting in factor levels: Negative < Elderly Type A < Elderly Type B < Elderly Type C.
|
||||||
|
#' #> - Custom MDRO rule 1: CIP == "R" & age > 60 (198 rows matched)
|
||||||
|
#' #> - Custom MDRO rule 2: ERY == "R" & age > 60 (732 rows matched)
|
||||||
|
#' #> - Custom MDRO rule 3: ERY == "R" & age > 50 (109 rows matched)
|
||||||
|
#' #> => Found 1039 custom defined MDROs out of 2000 isolates (52.0%)
|
||||||
|
#'
|
||||||
|
#' table(x)
|
||||||
|
#' #> x
|
||||||
|
#' #> Negative Elderly Type A Elderly Type B Elderly Type C
|
||||||
|
#' #> 961 198 732 109
|
||||||
|
#' ```
|
||||||
|
#'
|
||||||
|
#' ### Sharing rules among multiple users
|
||||||
|
#'
|
||||||
|
#' The rules set (the `custom` object in this case) could be exported to a shared file location using [saveRDS()] if you collaborate with multiple users. The custom rules set could then be imported using [readRDS()].
|
||||||
|
#'
|
||||||
|
#' ### Usage of multiple antimicrobials and antimicrobial group names
|
||||||
|
#'
|
||||||
|
#' You can define antimicrobial groups instead of single antimicrobials for the rule itself, which is the part *before* the tilde (~). Use [any()] or [all()] to specify the scope of the antimicrobial group:
|
||||||
|
#'
|
||||||
|
#' ```r
|
||||||
|
#' custom_mdro_guideline(
|
||||||
|
#' AMX == "R" ~ "My MDRO #1",
|
||||||
|
#' any(cephalosporins_2nd() == "R") ~ "My MDRO #2",
|
||||||
|
#' all(glycopeptides() == "R") ~ "My MDRO #3"
|
||||||
|
#' )
|
||||||
|
#' ```
|
||||||
|
#'
|
||||||
|
#' All `r length(DEFINED_AB_GROUPS)` antimicrobial selectors are supported for use in the rules:
|
||||||
|
#'
|
||||||
|
#' `r paste0(" * ", na.omit(sapply(DEFINED_AB_GROUPS, function(ab) ifelse(tolower(gsub("^AB_", "", ab)) %in% ls(envir = asNamespace("AMR")), paste0("[", tolower(gsub("^AB_", "", ab)), "()] can select: \\cr ", vector_and(ab_name(eval(parse(text = ab), envir = asNamespace("AMR")), language = NULL, tolower = TRUE), quotes = FALSE, sort = TRUE)), character(0)), USE.NAMES = FALSE)), "\n", collapse = "")`
|
||||||
|
#' @returns A [list] containing the custom rules
|
||||||
|
#' @rdname custom_mdro_guideline
|
||||||
|
#' @export
|
||||||
|
#' @examples
|
||||||
|
#' x <- custom_mdro_guideline(
|
||||||
|
#' CIP == "R" & age > 60 ~ "Elderly Type A",
|
||||||
|
#' ERY == "R" & age > 60 ~ "Elderly Type B"
|
||||||
|
#' )
|
||||||
|
#' x
|
||||||
|
#'
|
||||||
|
#' # run the custom rule set (verbose = TRUE will return a logbook instead of the data set):
|
||||||
|
#' out <- mdro(example_isolates, guideline = x)
|
||||||
|
#' table(out)
|
||||||
|
#'
|
||||||
|
#' out <- mdro(example_isolates, guideline = x, verbose = TRUE)
|
||||||
|
#' head(out)
|
||||||
|
#'
|
||||||
|
#' # you can create custom guidelines using selectors (see ?antimicrobial_selectors)
|
||||||
|
#' my_guideline <- custom_mdro_guideline(
|
||||||
|
#' AMX == "R" ~ "Custom MDRO 1",
|
||||||
|
#' all(cephalosporins_2nd() == "R") ~ "Custom MDRO 2"
|
||||||
|
#' )
|
||||||
|
#' my_guideline
|
||||||
|
#'
|
||||||
|
#' out <- mdro(example_isolates, guideline = my_guideline)
|
||||||
|
#' table(out)
|
||||||
|
custom_mdro_guideline <- function(..., as_factor = TRUE) {
|
||||||
|
meet_criteria(as_factor, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
|
dots <- tryCatch(list(...),
|
||||||
|
error = function(e) "error"
|
||||||
|
)
|
||||||
|
stop_if(
|
||||||
|
identical(dots, "error"),
|
||||||
|
"rules must be a valid formula inputs (e.g., using '~'), see `?mdro`"
|
||||||
|
)
|
||||||
|
n_dots <- length(dots)
|
||||||
|
stop_if(n_dots == 0, "no custom rules were set. Please read the documentation using `?mdro`.")
|
||||||
|
out <- vector("list", n_dots)
|
||||||
|
for (i in seq_len(n_dots)) {
|
||||||
|
stop_ifnot(
|
||||||
|
inherits(dots[[i]], "formula"),
|
||||||
|
"rule ", i, " must be a valid formula input (e.g., using '~'), see `?mdro`"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Query
|
||||||
|
qry <- dots[[i]][[2]]
|
||||||
|
if (inherits(qry, "call")) {
|
||||||
|
qry <- as.expression(qry)
|
||||||
|
}
|
||||||
|
qry <- as.character(qry)
|
||||||
|
# these will prevent vectorisation, so replace them:
|
||||||
|
qry <- gsub("&&", "&", qry, fixed = TRUE)
|
||||||
|
qry <- gsub("||", "|", qry, fixed = TRUE)
|
||||||
|
# support filter()-like writing: custom_mdro_guideline('CIP == "R", AMX == "S"' ~ "result 1")
|
||||||
|
qry <- gsub(" *, *", " & ", qry)
|
||||||
|
# format nicely, setting spaces around operators
|
||||||
|
qry <- gsub(" *([&|+-/*^><==]+) *", " \\1 ", qry)
|
||||||
|
qry <- gsub("'", "\"", qry, fixed = TRUE)
|
||||||
|
qry <- as.expression(qry)
|
||||||
|
out[[i]]$query <- qry
|
||||||
|
|
||||||
|
# Value
|
||||||
|
val <- tryCatch(eval(dots[[i]][[3]]), error = function(e) NULL)
|
||||||
|
stop_if(is.null(val), "rule ", i, " must return a valid value, it now returns an error: ", tryCatch(eval(dots[[i]][[3]]), error = function(e) conditionMessage(e)))
|
||||||
|
stop_if(length(val) > 1, "rule ", i, " must return a value of length 1, not ", length(val))
|
||||||
|
out[[i]]$value <- as.character(val)
|
||||||
|
}
|
||||||
|
|
||||||
|
names(out) <- paste0("rule", seq_len(n_dots))
|
||||||
|
out <- set_clean_class(out, new_class = c("custom_mdro_guideline", "list"))
|
||||||
|
attr(out, "values") <- unname(c("Negative", vapply(FUN.VALUE = character(1), unclass(out), function(x) x$value)))
|
||||||
|
attr(out, "as_factor") <- as_factor
|
||||||
|
out
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @method c custom_mdro_guideline
|
||||||
|
#' @param x Existing custom MDRO rules
|
||||||
|
#' @rdname custom_mdro_guideline
|
||||||
|
#' @export
|
||||||
|
c.custom_mdro_guideline <- function(x, ..., as_factor = NULL) {
|
||||||
|
if (length(list(...)) == 0) {
|
||||||
|
return(x)
|
||||||
|
}
|
||||||
|
if (!is.null(as_factor)) {
|
||||||
|
meet_criteria(as_factor, allow_class = "logical", has_length = 1)
|
||||||
|
} else {
|
||||||
|
as_factor <- attributes(x)$as_factor
|
||||||
|
}
|
||||||
|
for (g in list(...)) {
|
||||||
|
stop_ifnot(inherits(g, "custom_mdro_guideline"),
|
||||||
|
"for combining custom MDRO guidelines, all rules must be created with `custom_mdro_guideline()`",
|
||||||
|
call = FALSE
|
||||||
|
)
|
||||||
|
vals <- attributes(x)$values
|
||||||
|
if (!all(attributes(g)$values %in% vals)) {
|
||||||
|
vals <- unname(unique(c(vals, attributes(g)$values)))
|
||||||
|
}
|
||||||
|
attributes(g) <- NULL
|
||||||
|
x <- c(unclass(x), unclass(g))
|
||||||
|
attr(x, "values") <- vals
|
||||||
|
}
|
||||||
|
names(x) <- paste0("rule", seq_len(length(x)))
|
||||||
|
x <- set_clean_class(x, new_class = c("custom_mdro_guideline", "list"))
|
||||||
|
attr(x, "values") <- vals
|
||||||
|
attr(x, "as_factor") <- as_factor
|
||||||
|
x
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @method as.list custom_mdro_guideline
|
||||||
|
#' @noRd
|
||||||
|
#' @export
|
||||||
|
as.list.custom_mdro_guideline <- function(x, ...) {
|
||||||
|
c(x, ...)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @method print custom_mdro_guideline
|
||||||
|
#' @noRd
|
||||||
|
#' @export
|
||||||
|
print.custom_mdro_guideline <- function(x, ...) {
|
||||||
|
cat("A set of custom MDRO rules:\n")
|
||||||
|
for (i in seq_len(length(x))) {
|
||||||
|
rule <- x[[i]]
|
||||||
|
rule$query <- format_custom_query_rule(rule$query)
|
||||||
|
cat(" ", i, ". ", font_bold("If "), font_blue(rule$query), font_bold(" then: "), font_red(rule$value), "\n", sep = "")
|
||||||
|
}
|
||||||
|
cat(" ", i + 1, ". ", font_bold("Otherwise: "), font_red(paste0("Negative")), "\n", sep = "")
|
||||||
|
cat("\nUnmatched rows will return ", font_red("NA"), ".\n", sep = "")
|
||||||
|
if (isTRUE(attributes(x)$as_factor)) {
|
||||||
|
cat("Results will be of class 'factor', with ordered levels: ", paste0(attributes(x)$values, collapse = " < "), "\n", sep = "")
|
||||||
|
} else {
|
||||||
|
cat("Results will be of class 'character'.\n")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
run_custom_mdro_guideline <- function(df, guideline, info) {
|
||||||
|
n_dots <- length(guideline)
|
||||||
|
stop_if(n_dots == 0, "no custom guidelines set", call = -2)
|
||||||
|
out <- character(length = NROW(df))
|
||||||
|
reasons <- character(length = NROW(df))
|
||||||
|
for (i in seq_len(n_dots)) {
|
||||||
|
qry <- tryCatch(eval(parse(text = guideline[[i]]$query), envir = df, enclos = parent.frame()),
|
||||||
|
error = function(e) {
|
||||||
|
AMR_env$err_msg <- conditionMessage(e)
|
||||||
|
return("error")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
if (identical(qry, "error")) {
|
||||||
|
warning_("in `custom_mdro_guideline()`: rule ", i,
|
||||||
|
" (`", as.character(guideline[[i]]$query), "`) was ignored because of this error message: ",
|
||||||
|
AMR_env$err_msg,
|
||||||
|
call = FALSE,
|
||||||
|
add_fn = font_red
|
||||||
|
)
|
||||||
|
next
|
||||||
|
}
|
||||||
|
stop_ifnot(is.logical(qry), "in custom_mdro_guideline(): rule ", i, " (`", guideline[[i]]$query,
|
||||||
|
"`) must return `TRUE` or `FALSE`, not ",
|
||||||
|
format_class(class(qry), plural = FALSE),
|
||||||
|
call = FALSE
|
||||||
|
)
|
||||||
|
|
||||||
|
new_mdros <- which(qry == TRUE & out == "")
|
||||||
|
|
||||||
|
if (isTRUE(info)) {
|
||||||
|
cat(word_wrap(
|
||||||
|
"- Custom MDRO rule ", i, ": `", as.character(guideline[[i]]$query),
|
||||||
|
"` (", length(new_mdros), " rows matched)"
|
||||||
|
), "\n", sep = "")
|
||||||
|
}
|
||||||
|
val <- guideline[[i]]$value
|
||||||
|
out[new_mdros] <- val
|
||||||
|
reasons[new_mdros] <- paste0(
|
||||||
|
"matched rule ",
|
||||||
|
gsub("rule", "", names(guideline)[i], fixed = TRUE), ": ", as.character(guideline[[i]]$query)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
out[out == ""] <- "Negative"
|
||||||
|
reasons[out == "Negative"] <- "no rules matched"
|
||||||
|
|
||||||
|
if (isTRUE(attributes(guideline)$as_factor)) {
|
||||||
|
out <- factor(out, levels = attributes(guideline)$values, ordered = TRUE)
|
||||||
|
}
|
||||||
|
|
||||||
|
all_nonsusceptible_columns <- as.data.frame(t(df[, is.sir(df), drop = FALSE] == "R"))
|
||||||
|
all_nonsusceptible_columns <- vapply(
|
||||||
|
FUN.VALUE = character(1),
|
||||||
|
all_nonsusceptible_columns,
|
||||||
|
function(x) paste0(rownames(all_nonsusceptible_columns)[which(x)], collapse = ", ")
|
||||||
|
)
|
||||||
|
all_nonsusceptible_columns[is.na(out)] <- NA_character_
|
||||||
|
|
||||||
|
data.frame(
|
||||||
|
row_number = seq_len(NROW(df)),
|
||||||
|
MDRO = out,
|
||||||
|
reason = reasons,
|
||||||
|
all_nonsusceptible_columns = all_nonsusceptible_columns,
|
||||||
|
stringsAsFactors = FALSE
|
||||||
|
)
|
||||||
|
}
|
||||||
39
R/data.R
39
R/data.R
@@ -29,28 +29,37 @@
|
|||||||
|
|
||||||
#' Data Sets with `r format(nrow(antimicrobials) + nrow(antivirals), big.mark = " ")` Antimicrobial Drugs
|
#' Data Sets with `r format(nrow(antimicrobials) + nrow(antivirals), big.mark = " ")` Antimicrobial Drugs
|
||||||
#'
|
#'
|
||||||
|
#' @description
|
||||||
#' Two data sets containing all antimicrobials and antivirals. Use [as.ab()] or one of the [`ab_*`][ab_property()] functions to retrieve values from the [antimicrobials] data set. Three identifiers are included in this data set: an antimicrobial ID (`ab`, primarily used in this package) as defined by WHONET/EARS-Net, an ATC code (`atc`) as defined by the WHO, and a Compound ID (`cid`) as found in PubChem. Other properties in this data set are derived from one or more of these codes. Note that some drugs have multiple ATC codes.
|
#' Two data sets containing all antimicrobials and antivirals. Use [as.ab()] or one of the [`ab_*`][ab_property()] functions to retrieve values from the [antimicrobials] data set. Three identifiers are included in this data set: an antimicrobial ID (`ab`, primarily used in this package) as defined by WHONET/EARS-Net, an ATC code (`atc`) as defined by the WHO, and a Compound ID (`cid`) as found in PubChem. Other properties in this data set are derived from one or more of these codes. Note that some drugs have multiple ATC codes.
|
||||||
|
#'
|
||||||
|
#' **The `antibiotics` data set has been renamed to `antimicrobials`. The old name will be removed in a future version.**
|
||||||
#' @format
|
#' @format
|
||||||
#' ### For the [antimicrobials] data set: a [tibble][tibble::tibble] with `r nrow(antimicrobials)` observations and `r ncol(antimicrobials)` variables:
|
#' ### For the [antimicrobials] data set: a [tibble][tibble::tibble] with `r nrow(antimicrobials)` observations and `r ncol(antimicrobials)` variables:
|
||||||
#' - `ab`\cr antimicrobial ID as used in this package (such as `AMC`), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. ***This is a unique identifier.***
|
#' - `ab`\cr antimicrobial ID as used in this package (such as `AMC`), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. ***This is a unique identifier.***
|
||||||
#' - `cid`\cr Compound ID as found in PubChem. ***This is a unique identifier.***
|
#' - `cid`\cr Compound ID as found in PubChem. ***This is a unique identifier.***
|
||||||
#' - `name`\cr Official name as used by WHONET/EARS-Net or the WHO. ***This is a unique identifier.***
|
#' - `name`\cr Official name as used by WHONET/EARS-Net or the WHO. ***This is a unique identifier.***
|
||||||
#' - `group`\cr A short and concise group name, based on WHONET and WHOCC definitions
|
#' - `group`\cr A short and concise group name, based on WHONET and WHOCC definitions
|
||||||
#' - `atc`\cr ATC codes (Anatomical Therapeutic Chemical) as defined by the WHOCC, like `J01CR02`
|
#' - `atc`\cr ATC codes (Anatomical Therapeutic Chemical) as defined by the WHOCC, like `J01CR02` (last updated `r documentation_date(TAXONOMY_VERSION$ATC_DDD$accessed_date)`):
|
||||||
#' - `atc_group1`\cr Official pharmacological subgroup (3rd level ATC code) as defined by the WHOCC, like `"Macrolides, lincosamides and streptogramins"`
|
#' - `atc_group1`\cr Official pharmacological subgroup (3rd level ATC code) as defined by the WHOCC, like `"Macrolides, lincosamides and streptogramins"`
|
||||||
#' - `atc_group2`\cr Official chemical subgroup (4th level ATC code) as defined by the WHOCC, like `"Macrolides"`
|
#' - `atc_group2`\cr Official chemical subgroup (4th level ATC code) as defined by the WHOCC, like `"Macrolides"`
|
||||||
#' - `abbr`\cr List of abbreviations as used in many countries, also for antimicrobial susceptibility testing (AST)
|
#' - `abbr`\cr List of abbreviations as used in many countries, also for antimicrobial susceptibility testing (AST)
|
||||||
#' - `synonyms`\cr Synonyms (often trade names) of a drug, as found in PubChem based on their compound ID
|
#' - `synonyms`\cr Synonyms (often trade names) of a drug, as found in PubChem based on their compound ID
|
||||||
|
#'
|
||||||
|
#' ATC properties (last updated `r documentation_date(TAXONOMY_VERSION$ATC_DDD$accessed_date)`):
|
||||||
|
#'
|
||||||
#' - `oral_ddd`\cr Defined Daily Dose (DDD), oral treatment, currently available for `r sum(!is.na(AMR::antimicrobials$oral_ddd))` drugs
|
#' - `oral_ddd`\cr Defined Daily Dose (DDD), oral treatment, currently available for `r sum(!is.na(AMR::antimicrobials$oral_ddd))` drugs
|
||||||
#' - `oral_units`\cr Units of `oral_ddd`
|
#' - `oral_units`\cr Units of `oral_ddd`
|
||||||
#' - `iv_ddd`\cr Defined Daily Dose (DDD), parenteral (intravenous) treatment, currently available for `r sum(!is.na(AMR::antimicrobials$iv_ddd))` drugs
|
#' - `iv_ddd`\cr Defined Daily Dose (DDD), parenteral (intravenous) treatment, currently available for `r sum(!is.na(AMR::antimicrobials$iv_ddd))` drugs
|
||||||
#' - `iv_units`\cr Units of `iv_ddd`
|
#' - `iv_units`\cr Units of `iv_ddd`
|
||||||
|
#'
|
||||||
|
#' LOINC:
|
||||||
|
#'
|
||||||
#' - `loinc`\cr All codes associated with the name of the antimicrobial drug from `r TAXONOMY_VERSION$LOINC$citation` Use [ab_loinc()] to retrieve them quickly, see [ab_property()].
|
#' - `loinc`\cr All codes associated with the name of the antimicrobial drug from `r TAXONOMY_VERSION$LOINC$citation` Use [ab_loinc()] to retrieve them quickly, see [ab_property()].
|
||||||
#'
|
#'
|
||||||
#' ### For the [antivirals] data set: a [tibble][tibble::tibble] with `r nrow(antivirals)` observations and `r ncol(antivirals)` variables:
|
#' ### For the [antivirals] data set: a [tibble][tibble::tibble] with `r nrow(antivirals)` observations and `r ncol(antivirals)` variables:
|
||||||
#' - `av`\cr Antiviral ID as used in this package (such as `ACI`), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. ***This is a unique identifier.*** Combinations are codes that contain a `+` to indicate this, such as `ATA+COBI` for atazanavir/cobicistat.
|
#' - `av`\cr Antiviral ID as used in this package (such as `ACI`), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. ***This is a unique identifier.*** Combinations are codes that contain a `+` to indicate this, such as `ATA+COBI` for atazanavir/cobicistat.
|
||||||
#' - `name`\cr Official name as used by WHONET/EARS-Net or the WHO. ***This is a unique identifier.***
|
#' - `name`\cr Official name as used by WHONET/EARS-Net or the WHO. ***This is a unique identifier.***
|
||||||
#' - `atc`\cr ATC codes (Anatomical Therapeutic Chemical) as defined by the WHOCC
|
#' - `atc`\cr ATC codes (Anatomical Therapeutic Chemical) as defined by the WHOCC, see *Details*
|
||||||
#' - `cid`\cr Compound ID as found in PubChem. ***This is a unique identifier.***
|
#' - `cid`\cr Compound ID as found in PubChem. ***This is a unique identifier.***
|
||||||
#' - `atc_group`\cr Official pharmacological subgroup (3rd level ATC code) as defined by the WHOCC
|
#' - `atc_group`\cr Official pharmacological subgroup (3rd level ATC code) as defined by the WHOCC
|
||||||
#' - `synonyms`\cr Synonyms (often trade names) of a drug, as found in PubChem based on their compound ID
|
#' - `synonyms`\cr Synonyms (often trade names) of a drug, as found in PubChem based on their compound ID
|
||||||
@@ -59,13 +68,18 @@
|
|||||||
#' - `iv_ddd`\cr Defined Daily Dose (DDD), parenteral treatment
|
#' - `iv_ddd`\cr Defined Daily Dose (DDD), parenteral treatment
|
||||||
#' - `iv_units`\cr Units of `iv_ddd`
|
#' - `iv_units`\cr Units of `iv_ddd`
|
||||||
#' - `loinc`\cr All codes associated with the name of the antiviral drug from `r TAXONOMY_VERSION$LOINC$citation` Use [av_loinc()] to retrieve them quickly, see [av_property()].
|
#' - `loinc`\cr All codes associated with the name of the antiviral drug from `r TAXONOMY_VERSION$LOINC$citation` Use [av_loinc()] to retrieve them quickly, see [av_property()].
|
||||||
#' @details Properties that are based on an ATC code are only available when an ATC is available. These properties are: `atc_group1`, `atc_group2`, `oral_ddd`, `oral_units`, `iv_ddd` and `iv_units`.
|
#' @details Properties that are based on an ATC code are only available when an ATC is available. These properties are: `atc_group1`, `atc_group2`, `oral_ddd`, `oral_units`, `iv_ddd` and `iv_units`. Do note that ATC codes are not unique. For example, J01CR02 is officially the ATC code for "amoxicillin and beta-lactamase inhibitor". Consequently, these two items from the [antimicrobials] data set both return `"J01CR02"`:
|
||||||
#'
|
#'
|
||||||
#' Synonyms (i.e. trade names) were derived from the PubChem Compound ID (column `cid`) and consequently only available where a CID is available.
|
#' ```r
|
||||||
|
#' ab_atc("amoxicillin/clavulanic acid")
|
||||||
|
#' ab_atc("amoxicillin/sulbactam")
|
||||||
|
#' ```
|
||||||
|
#'
|
||||||
|
#' Synonyms (i.e. trade names) were derived from the PubChem Compound ID (column `cid`) and are consequently only available where a CID is available.
|
||||||
#' @inheritSection AMR Download Our Reference Data
|
#' @inheritSection AMR Download Our Reference Data
|
||||||
#' @source
|
#' @source
|
||||||
#'
|
#'
|
||||||
#' * World Health Organization (WHO) Collaborating Centre for Drug Statistics Methodology (WHOCC): <https://atcddd.fhi.no/atc_ddd_index/>
|
#' * `r TAXONOMY_VERSION$ATC_DDD$citation` Accessed from <`r TAXONOMY_VERSION$ATC_DDD$url`> on `r documentation_date(TAXONOMY_VERSION$ATC_DDD$accessed_date)`.
|
||||||
#'
|
#'
|
||||||
#' * `r TAXONOMY_VERSION$LOINC$citation` Accessed from <`r TAXONOMY_VERSION$LOINC$url`> on `r documentation_date(TAXONOMY_VERSION$LOINC$accessed_date)`.
|
#' * `r TAXONOMY_VERSION$LOINC$citation` Accessed from <`r TAXONOMY_VERSION$LOINC$url`> on `r documentation_date(TAXONOMY_VERSION$LOINC$accessed_date)`.
|
||||||
#'
|
#'
|
||||||
@@ -77,6 +91,9 @@
|
|||||||
#' antivirals
|
#' antivirals
|
||||||
"antimicrobials"
|
"antimicrobials"
|
||||||
|
|
||||||
|
#' @rdname antimicrobials
|
||||||
|
"antibiotics"
|
||||||
|
|
||||||
#' @rdname antimicrobials
|
#' @rdname antimicrobials
|
||||||
"antivirals"
|
"antivirals"
|
||||||
|
|
||||||
@@ -344,3 +361,15 @@
|
|||||||
#' @examples
|
#' @examples
|
||||||
#' dosage
|
#' dosage
|
||||||
"dosage"
|
"dosage"
|
||||||
|
|
||||||
|
#' Data Set with `r format(nrow(esbl_isolates), big.mark = " ")` ESBL Isolates
|
||||||
|
#'
|
||||||
|
#' A data set containing `r format(nrow(esbl_isolates), big.mark = " ")` microbial isolates with MIC values of common antibiotics and a binary `esbl` column for extended-spectrum beta-lactamase (ESBL) production. This data set contains randomised fictitious data but reflects reality and can be used to practise AMR-related machine learning, e.g., classification modelling with [tidymodels](https://amr-for-r.org/articles/AMR_with_tidymodels.html).
|
||||||
|
#' @format A [tibble][tibble::tibble] with `r format(nrow(esbl_isolates), big.mark = " ")` observations and `r ncol(esbl_isolates)` variables:
|
||||||
|
#' - `esbl`\cr Logical indicator if the isolate is ESBL-producing
|
||||||
|
#' - `genus`\cr Genus of the microorganism
|
||||||
|
#' - `AMC:COL`\cr MIC values for 17 antimicrobial agents, transformed to class [`mic`] (see [as.mic()])
|
||||||
|
#' @details See our [tidymodels integration][amr-tidymodels] for an example using this data set.
|
||||||
|
#' @examples
|
||||||
|
#' esbl_isolates
|
||||||
|
"esbl_isolates"
|
||||||
|
|||||||
6
R/disk.R
6
R/disk.R
@@ -158,7 +158,8 @@ is.disk <- function(x) {
|
|||||||
inherits(x, "disk")
|
inherits(x, "disk")
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, disk)
|
||||||
pillar_shaft.disk <- function(x, ...) {
|
pillar_shaft.disk <- function(x, ...) {
|
||||||
out <- trimws(format(x))
|
out <- trimws(format(x))
|
||||||
out[is.na(x)] <- font_na(NA)
|
out[is.na(x)] <- font_na(NA)
|
||||||
@@ -232,7 +233,8 @@ rep.disk <- function(x, ...) {
|
|||||||
y
|
y
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(skimr::get_skimmers, disk)
|
||||||
get_skimmers.disk <- function(column) {
|
get_skimmers.disk <- function(column) {
|
||||||
skimr::sfl(
|
skimr::sfl(
|
||||||
skim_type = "disk",
|
skim_type = "disk",
|
||||||
|
|||||||
@@ -67,12 +67,12 @@ format_eucast_version_nr <- function(version, markdown = TRUE) {
|
|||||||
#' @param version_expected_phenotypes The version number to use for the EUCAST Expected Phenotypes. Can be `r vector_or(names(EUCAST_VERSION_EXPECTED_PHENOTYPES), reverse = TRUE)`.
|
#' @param version_expected_phenotypes The version number to use for the EUCAST Expected Phenotypes. Can be `r vector_or(names(EUCAST_VERSION_EXPECTED_PHENOTYPES), reverse = TRUE)`.
|
||||||
#' @param version_expertrules The version number to use for the EUCAST Expert Rules and Intrinsic Resistance guideline. Can be `r vector_or(names(EUCAST_VERSION_EXPERT_RULES), reverse = TRUE)`.
|
#' @param version_expertrules The version number to use for the EUCAST Expert Rules and Intrinsic Resistance guideline. Can be `r vector_or(names(EUCAST_VERSION_EXPERT_RULES), reverse = TRUE)`.
|
||||||
#' @param ampc_cephalosporin_resistance (only applies when `rules` contains `"expert"` or `"all"`) a [character] value that should be applied to cefotaxime, ceftriaxone and ceftazidime for AmpC de-repressed cephalosporin-resistant mutants - the default is `NA`. Currently only works when `version_expertrules` is `3.2` and higher; these versions of '*EUCAST Expert Rules on Enterobacterales*' state that results of cefotaxime, ceftriaxone and ceftazidime should be reported with a note, or results should be suppressed (emptied) for these three drugs. A value of `NA` (the default) for this argument will remove results for these three drugs, while e.g. a value of `"R"` will make the results for these drugs resistant. Use `NULL` or `FALSE` to not alter results for these three drugs of AmpC de-repressed cephalosporin-resistant mutants. Using `TRUE` is equal to using `"R"`. \cr For *EUCAST Expert Rules* v3.2, this rule applies to: `r vector_and(gsub("[^a-zA-Z ]+", "", unlist(strsplit(EUCAST_RULES_DF[which(EUCAST_RULES_DF$reference.version %in% c(3.2, 3.3) & EUCAST_RULES_DF$reference.rule %like% "ampc"), "this_value"][1], "|", fixed = TRUE))), quotes = "*")`.
|
#' @param ampc_cephalosporin_resistance (only applies when `rules` contains `"expert"` or `"all"`) a [character] value that should be applied to cefotaxime, ceftriaxone and ceftazidime for AmpC de-repressed cephalosporin-resistant mutants - the default is `NA`. Currently only works when `version_expertrules` is `3.2` and higher; these versions of '*EUCAST Expert Rules on Enterobacterales*' state that results of cefotaxime, ceftriaxone and ceftazidime should be reported with a note, or results should be suppressed (emptied) for these three drugs. A value of `NA` (the default) for this argument will remove results for these three drugs, while e.g. a value of `"R"` will make the results for these drugs resistant. Use `NULL` or `FALSE` to not alter results for these three drugs of AmpC de-repressed cephalosporin-resistant mutants. Using `TRUE` is equal to using `"R"`. \cr For *EUCAST Expert Rules* v3.2, this rule applies to: `r vector_and(gsub("[^a-zA-Z ]+", "", unlist(strsplit(EUCAST_RULES_DF[which(EUCAST_RULES_DF$reference.version %in% c(3.2, 3.3) & EUCAST_RULES_DF$reference.rule %like% "ampc"), "this_value"][1], "|", fixed = TRUE))), quotes = "*")`.
|
||||||
#' @param ... Column name of an antimicrobial, see section *Antimicrobials* below.
|
#' @param ... Column names of antimicrobials. To automatically detect antimicrobial column names, do not provide any named arguments; [guess_ab_col()] will then be used for detection. To manually specify a column, provide its name (case-insensitive) as an argument, e.g. `AMX = "amoxicillin"`. To skip a specific antimicrobial, set it to `NULL`, e.g. `TIC = NULL` to exclude ticarcillin. If a manually defined column does not exist in the data, it will be skipped with a warning.
|
||||||
#' @param ab Any (vector of) text that can be coerced to a valid antimicrobial drug code with [as.ab()].
|
#' @param ab Any (vector of) text that can be coerced to a valid antimicrobial drug code with [as.ab()].
|
||||||
#' @param administration Route of administration, either `r vector_or(dosage$administration)`.
|
#' @param administration Route of administration, either `r vector_or(dosage$administration)`.
|
||||||
#' @param only_sir_columns A [logical] to indicate whether only antimicrobial columns must be detected that were transformed to class `sir` (see [as.sir()]) on beforehand (default is `FALSE`).
|
#' @param only_sir_columns A [logical] to indicate whether only antimicrobial columns must be included that were transformed to class [sir][as.sir()] on beforehand. Defaults to `FALSE` if no columns of `x` have a class [sir][as.sir()].
|
||||||
#' @param custom_rules Custom rules to apply, created with [custom_eucast_rules()].
|
#' @param custom_rules Custom rules to apply, created with [custom_eucast_rules()].
|
||||||
#' @param overwrite A [logical] indicating whether to overwrite non-`NA` values (default: `FALSE`). When `FALSE`, only `NA` values are modified. To ensure compliance with EUCAST guidelines, **this should remain** `FALSE`, as EUCAST notes often state that an organism "should be tested for susceptibility to individual agents or be reported resistant.".
|
#' @param overwrite A [logical] indicating whether to overwrite existing SIR values (default: `FALSE`). When `FALSE`, only non-SIR values are modified (i.e., any value that is not already S, I or R). To ensure compliance with EUCAST guidelines, **this should remain** `FALSE`, as EUCAST notes often state that an organism "should be tested for susceptibility to individual agents or be reported resistant".
|
||||||
#' @inheritParams first_isolate
|
#' @inheritParams first_isolate
|
||||||
#' @details
|
#' @details
|
||||||
#' **Note:** This function does not translate MIC values to SIR values. Use [as.sir()] for that. \cr
|
#' **Note:** This function does not translate MIC values to SIR values. Use [as.sir()] for that. \cr
|
||||||
@@ -101,12 +101,6 @@ format_eucast_version_nr <- function(version, markdown = TRUE) {
|
|||||||
#' Important examples include amoxicillin and amoxicillin/clavulanic acid, and trimethoprim and trimethoprim/sulfamethoxazole. Needless to say, for these rules to work, both drugs must be available in the data set.
|
#' Important examples include amoxicillin and amoxicillin/clavulanic acid, and trimethoprim and trimethoprim/sulfamethoxazole. Needless to say, for these rules to work, both drugs must be available in the data set.
|
||||||
#'
|
#'
|
||||||
#' Since these rules are not officially approved by EUCAST, they are not applied at default. To use these rules, include `"other"` to the `rules` argument, or use `eucast_rules(..., rules = "all")`. You can also set the package option [`AMR_eucastrules`][AMR-options], i.e. run `options(AMR_eucastrules = "all")`.
|
#' Since these rules are not officially approved by EUCAST, they are not applied at default. To use these rules, include `"other"` to the `rules` argument, or use `eucast_rules(..., rules = "all")`. You can also set the package option [`AMR_eucastrules`][AMR-options], i.e. run `options(AMR_eucastrules = "all")`.
|
||||||
#' @section Antimicrobials:
|
|
||||||
#' To define antimicrobials column names, leave as it is to determine it automatically with [guess_ab_col()] or input a text (case-insensitive), or use `NULL` to skip a column (e.g. `TIC = NULL` to skip ticarcillin). Manually defined but non-existing columns will be skipped with a warning.
|
|
||||||
#'
|
|
||||||
#' The following antimicrobials are eligible for the functions [eucast_rules()] and [mdro()]. These are shown below in the format 'name (`antimicrobial ID`, [ATC code](https://atcddd.fhi.no/atc/structure_and_principles/))', sorted alphabetically:
|
|
||||||
#'
|
|
||||||
#' `r create_eucast_ab_documentation()`
|
|
||||||
#' @aliases EUCAST
|
#' @aliases EUCAST
|
||||||
#' @rdname eucast_rules
|
#' @rdname eucast_rules
|
||||||
#' @export
|
#' @export
|
||||||
@@ -167,11 +161,11 @@ eucast_rules <- function(x,
|
|||||||
info = interactive(),
|
info = interactive(),
|
||||||
rules = getOption("AMR_eucastrules", default = c("breakpoints", "expected_phenotypes")),
|
rules = getOption("AMR_eucastrules", default = c("breakpoints", "expected_phenotypes")),
|
||||||
verbose = FALSE,
|
verbose = FALSE,
|
||||||
version_breakpoints = 14.0,
|
version_breakpoints = 15.0,
|
||||||
version_expected_phenotypes = 1.2,
|
version_expected_phenotypes = 1.2,
|
||||||
version_expertrules = 3.3,
|
version_expertrules = 3.3,
|
||||||
ampc_cephalosporin_resistance = NA,
|
ampc_cephalosporin_resistance = NA,
|
||||||
only_sir_columns = FALSE,
|
only_sir_columns = any(is.sir(x)),
|
||||||
custom_rules = NULL,
|
custom_rules = NULL,
|
||||||
overwrite = FALSE,
|
overwrite = FALSE,
|
||||||
...) {
|
...) {
|
||||||
@@ -448,7 +442,7 @@ eucast_rules <- function(x,
|
|||||||
# big speed gain! only analyse unique rows:
|
# big speed gain! only analyse unique rows:
|
||||||
pm_distinct(`.rowid`, .keep_all = TRUE) %pm>%
|
pm_distinct(`.rowid`, .keep_all = TRUE) %pm>%
|
||||||
as.data.frame(stringsAsFactors = FALSE)
|
as.data.frame(stringsAsFactors = FALSE)
|
||||||
x[, col_mo] <- as.mo(as.character(x[, col_mo, drop = TRUE]), info = info)
|
x[, col_mo] <- as.mo(as.character(x[, col_mo, drop = TRUE]), info = FALSE)
|
||||||
# rename col_mo to prevent interference with joined columns
|
# rename col_mo to prevent interference with joined columns
|
||||||
colnames(x)[colnames(x) == col_mo] <- ".col_mo"
|
colnames(x)[colnames(x) == col_mo] <- ".col_mo"
|
||||||
col_mo <- ".col_mo"
|
col_mo <- ".col_mo"
|
||||||
@@ -456,13 +450,20 @@ eucast_rules <- function(x,
|
|||||||
x <- left_join_microorganisms(x, by = col_mo, suffix = c("_oldcols", ""))
|
x <- left_join_microorganisms(x, by = col_mo, suffix = c("_oldcols", ""))
|
||||||
x$gramstain <- mo_gramstain(x[, col_mo, drop = TRUE], language = NULL, info = FALSE)
|
x$gramstain <- mo_gramstain(x[, col_mo, drop = TRUE], language = NULL, info = FALSE)
|
||||||
x$genus_species <- trimws(paste(x$genus, x$species))
|
x$genus_species <- trimws(paste(x$genus, x$species))
|
||||||
if (isTRUE(info) && NROW(x) > 10000) {
|
if (isTRUE(info) && NROW(x.bak) > 10000) {
|
||||||
message_(" OK.", add_fn = list(font_green, font_bold), as_note = FALSE)
|
message_("OK.", add_fn = list(font_green, font_bold), as_note = FALSE)
|
||||||
}
|
}
|
||||||
|
|
||||||
n_added <- 0
|
n_added <- 0
|
||||||
n_changed <- 0
|
n_changed <- 0
|
||||||
|
|
||||||
|
rule_current <- ""
|
||||||
|
rule_group_current <- ""
|
||||||
|
rule_group_previous <- ""
|
||||||
|
rule_next <- ""
|
||||||
|
rule_previous <- ""
|
||||||
|
rule_text <- ""
|
||||||
|
|
||||||
# >>> Apply Other rules: enzyme inhibitors <<< ------------------------------------------
|
# >>> Apply Other rules: enzyme inhibitors <<< ------------------------------------------
|
||||||
if (any(c("all", "other") %in% rules)) {
|
if (any(c("all", "other") %in% rules)) {
|
||||||
if (isTRUE(info)) {
|
if (isTRUE(info)) {
|
||||||
@@ -623,31 +624,16 @@ eucast_rules <- function(x,
|
|||||||
eucast_rules_df <- eucast_rules_df %pm>%
|
eucast_rules_df <- eucast_rules_df %pm>%
|
||||||
rbind_AMR(eucast_rules_df_total %pm>%
|
rbind_AMR(eucast_rules_df_total %pm>%
|
||||||
subset(reference.rule_group %like% "breakpoint" & reference.version == version_breakpoints))
|
subset(reference.rule_group %like% "breakpoint" & reference.version == version_breakpoints))
|
||||||
# eucast_rules_df <- subset(
|
|
||||||
# eucast_rules_df,
|
|
||||||
# reference.rule_group %unlike% "breakpoint" |
|
|
||||||
# (reference.rule_group %like% "breakpoint" & reference.version == version_breakpoints)
|
|
||||||
# )
|
|
||||||
}
|
}
|
||||||
if (any(c("all", "expected_phenotypes") %in% rules)) {
|
if (any(c("all", "expected_phenotypes") %in% rules)) {
|
||||||
eucast_rules_df <- eucast_rules_df %pm>%
|
eucast_rules_df <- eucast_rules_df %pm>%
|
||||||
rbind_AMR(eucast_rules_df_total %pm>%
|
rbind_AMR(eucast_rules_df_total %pm>%
|
||||||
subset(reference.rule_group %like% "expected" & reference.version == version_expected_phenotypes))
|
subset(reference.rule_group %like% "expected" & reference.version == version_expected_phenotypes))
|
||||||
# eucast_rules_df <- subset(
|
|
||||||
# eucast_rules_df,
|
|
||||||
# reference.rule_group %unlike% "expected" |
|
|
||||||
# (reference.rule_group %like% "expected" & reference.version == version_expected_phenotypes)
|
|
||||||
# )
|
|
||||||
}
|
}
|
||||||
if (any(c("all", "expert") %in% rules)) {
|
if (any(c("all", "expert") %in% rules)) {
|
||||||
eucast_rules_df <- eucast_rules_df %pm>%
|
eucast_rules_df <- eucast_rules_df %pm>%
|
||||||
rbind_AMR(eucast_rules_df_total %pm>%
|
rbind_AMR(eucast_rules_df_total %pm>%
|
||||||
subset(reference.rule_group %like% "expert" & reference.version == version_expertrules))
|
subset(reference.rule_group %like% "expert" & reference.version == version_expertrules))
|
||||||
# eucast_rules_df <- subset(
|
|
||||||
# eucast_rules_df,
|
|
||||||
# reference.rule_group %unlike% "expert" |
|
|
||||||
# (reference.rule_group %like% "expert" & reference.version == version_expertrules)
|
|
||||||
# )
|
|
||||||
}
|
}
|
||||||
## filter out AmpC de-repressed cephalosporin-resistant mutants ----
|
## filter out AmpC de-repressed cephalosporin-resistant mutants ----
|
||||||
# no need to filter on version number here - the rules contain these version number, so are inherently filtered
|
# no need to filter on version number here - the rules contain these version number, so are inherently filtered
|
||||||
@@ -670,6 +656,9 @@ eucast_rules <- function(x,
|
|||||||
# we only hints on remaining rows in `eucast_rules_df`
|
# we only hints on remaining rows in `eucast_rules_df`
|
||||||
screening_abx <- as.character(AMR::antimicrobials$ab[which(AMR::antimicrobials$ab %like% "-S$")])
|
screening_abx <- as.character(AMR::antimicrobials$ab[which(AMR::antimicrobials$ab %like% "-S$")])
|
||||||
screening_abx <- screening_abx[screening_abx %in% unique(unlist(strsplit(EUCAST_RULES_DF$and_these_antibiotics[!is.na(EUCAST_RULES_DF$and_these_antibiotics)], ", *")))]
|
screening_abx <- screening_abx[screening_abx %in% unique(unlist(strsplit(EUCAST_RULES_DF$and_these_antibiotics[!is.na(EUCAST_RULES_DF$and_these_antibiotics)], ", *")))]
|
||||||
|
if (isTRUE(info)) {
|
||||||
|
cat("\n")
|
||||||
|
}
|
||||||
for (ab_s in screening_abx) {
|
for (ab_s in screening_abx) {
|
||||||
ab <- gsub("-S$", "", ab_s)
|
ab <- gsub("-S$", "", ab_s)
|
||||||
if (ab %in% names(cols_ab) && !ab_s %in% names(cols_ab)) {
|
if (ab %in% names(cols_ab) && !ab_s %in% names(cols_ab)) {
|
||||||
@@ -900,7 +889,9 @@ eucast_rules <- function(x,
|
|||||||
}
|
}
|
||||||
for (i in seq_len(length(custom_rules))) {
|
for (i in seq_len(length(custom_rules))) {
|
||||||
rule <- custom_rules[[i]]
|
rule <- custom_rules[[i]]
|
||||||
rows <- which(eval(parse(text = rule$query), envir = x))
|
rows <- tryCatch(which(eval(parse(text = rule$query), envir = x)),
|
||||||
|
error = function(e) stop_(paste0(conditionMessage(e), font_red(" (check available data and compare with the custom rules set)")), call = FALSE)
|
||||||
|
)
|
||||||
cols <- as.character(rule$result_group)
|
cols <- as.character(rule$result_group)
|
||||||
cols <- c(
|
cols <- c(
|
||||||
cols[cols %in% colnames(x)], # direct column names
|
cols[cols %in% colnames(x)], # direct column names
|
||||||
@@ -914,9 +905,8 @@ eucast_rules <- function(x,
|
|||||||
get_antibiotic_names(cols)
|
get_antibiotic_names(cols)
|
||||||
)
|
)
|
||||||
if (isTRUE(info)) {
|
if (isTRUE(info)) {
|
||||||
# print rule
|
|
||||||
cat(italicise_taxonomy(
|
cat(italicise_taxonomy(
|
||||||
word_wrap(format_custom_query_rule(rule$query, colours = FALSE),
|
word_wrap(rule_text,
|
||||||
width = getOption("width") - 30,
|
width = getOption("width") - 30,
|
||||||
extra_indent = 6
|
extra_indent = 6
|
||||||
),
|
),
|
||||||
@@ -1188,7 +1178,7 @@ edit_sir <- function(x,
|
|||||||
ifelse(length(rows) > 10, "...", ""),
|
ifelse(length(rows) > 10, "...", ""),
|
||||||
" while writing value '", to,
|
" while writing value '", to,
|
||||||
"' to column(s) `", paste(cols, collapse = "`, `"),
|
"' to column(s) `", paste(cols, collapse = "`, `"),
|
||||||
"`:\n", e$message
|
"`:\n", conditionMessage(e)
|
||||||
),
|
),
|
||||||
call. = FALSE
|
call. = FALSE
|
||||||
)
|
)
|
||||||
@@ -1242,13 +1232,13 @@ edit_sir <- function(x,
|
|||||||
|
|
||||||
#' @rdname eucast_rules
|
#' @rdname eucast_rules
|
||||||
#' @export
|
#' @export
|
||||||
eucast_dosage <- function(ab, administration = "iv", version_breakpoints = 12.0) {
|
eucast_dosage <- function(ab, administration = "iv", version_breakpoints = 15) {
|
||||||
meet_criteria(ab, allow_class = c("character", "numeric", "integer", "factor"))
|
meet_criteria(ab, allow_class = c("character", "numeric", "integer", "factor"))
|
||||||
meet_criteria(administration, allow_class = "character", is_in = dosage$administration[!is.na(dosage$administration)], has_length = 1)
|
meet_criteria(administration, allow_class = "character", is_in = dosage$administration[!is.na(dosage$administration)], has_length = 1)
|
||||||
meet_criteria(version_breakpoints, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_BREAKPOINTS)))
|
meet_criteria(version_breakpoints, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_BREAKPOINTS)))
|
||||||
|
|
||||||
# show used version_breakpoints number once per session (AMR_env will reload every session)
|
# show used version_breakpoints number once per session (AMR_env will reload every session)
|
||||||
if (message_not_thrown_before("eucast_dosage", "v", gsub("[^0-9]", "", version_breakpoints), entire_session = TRUE)) {
|
if (missing(version_breakpoints) && message_not_thrown_before("eucast_dosage", "v", gsub("[^0-9]", "", version_breakpoints), entire_session = TRUE)) {
|
||||||
message_(
|
message_(
|
||||||
"Dosages for antimicrobial drugs, as meant for ",
|
"Dosages for antimicrobial drugs, as meant for ",
|
||||||
format_eucast_version_nr(version_breakpoints, markdown = FALSE), ". ",
|
format_eucast_version_nr(version_breakpoints, markdown = FALSE), ". ",
|
||||||
@@ -1259,18 +1249,19 @@ eucast_dosage <- function(ab, administration = "iv", version_breakpoints = 12.0)
|
|||||||
ab <- as.ab(ab)
|
ab <- as.ab(ab)
|
||||||
lst <- vector("list", length = length(ab))
|
lst <- vector("list", length = length(ab))
|
||||||
for (i in seq_len(length(ab))) {
|
for (i in seq_len(length(ab))) {
|
||||||
df <- AMR::dosage[which(AMR::dosage$ab == ab[i] & AMR::dosage$administration == administration), , drop = FALSE]
|
df <- AMR::dosage[which(AMR::dosage$eucast_version == version_breakpoints & AMR::dosage$ab == ab[i] & AMR::dosage$administration == administration), , drop = FALSE]
|
||||||
lst[[i]] <- list(
|
lst[[i]] <- list(
|
||||||
ab = "",
|
ab = "",
|
||||||
name = "",
|
name = "",
|
||||||
standard_dosage = ifelse("standard_dosage" %in% df$type,
|
standard_dosage = ifelse("standard_dosage" %in% df$type,
|
||||||
df[which(df$type == "standard_dosage"), "original_txt", drop = TRUE],
|
trimws2(df[which(df$type == "standard_dosage"), "original_txt", drop = TRUE]),
|
||||||
NA_character_
|
NA_character_
|
||||||
),
|
),
|
||||||
high_dosage = ifelse("high_dosage" %in% df$type,
|
high_dosage = ifelse("high_dosage" %in% df$type,
|
||||||
df[which(df$type == "high_dosage"), "original_txt", drop = TRUE],
|
trimws2(df[which(df$type == "high_dosage"), "original_txt", drop = TRUE]),
|
||||||
NA_character_
|
NA_character_
|
||||||
)
|
),
|
||||||
|
eucast_version = df$eucast_version[1]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
out <- do.call(rbind_AMR, lapply(lst, as.data.frame, stringsAsFactors = FALSE))
|
out <- do.call(rbind_AMR, lapply(lst, as.data.frame, stringsAsFactors = FALSE))
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
#'
|
#'
|
||||||
#' If there are more than two categories and you want to find out which ones are significantly different from their null expectation, you can use the same method of testing each category vs. the sum of all categories, with the Bonferroni correction. You use *G*-tests for each category, of course.
|
#' If there are more than two categories and you want to find out which ones are significantly different from their null expectation, you can use the same method of testing each category vs. the sum of all categories, with the Bonferroni correction. You use *G*-tests for each category, of course.
|
||||||
#' @seealso [chisq.test()]
|
#' @seealso [chisq.test()]
|
||||||
#' @references 1. McDonald, J.H. 2014. **Handbook of Biological Statistics (3rd ed.)**. Sparky House Publishing, Baltimore, Maryland. <http://www.biostathandbook.com/gtestgof.html>.
|
#' @references 1. McDonald, J.H. 2014. **Handbook of Biological Statistics (3rd ed.)**. Sparky House Publishing, Baltimore, Maryland.
|
||||||
#' @source The code for this function is identical to that of [chisq.test()], except that:
|
#' @source The code for this function is identical to that of [chisq.test()], except that:
|
||||||
#' - The calculation of the statistic was changed to \eqn{2 * sum(x * log(x / E))}
|
#' - The calculation of the statistic was changed to \eqn{2 * sum(x * log(x / E))}
|
||||||
#' - Yates' continuity correction was removed as it does not apply to a *G*-test
|
#' - Yates' continuity correction was removed as it does not apply to a *G*-test
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ ggplot_sir <- function(data,
|
|||||||
nrow = NULL,
|
nrow = NULL,
|
||||||
colours = c(
|
colours = c(
|
||||||
S = "#3CAEA3",
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
SI = "#3CAEA3",
|
SI = "#3CAEA3",
|
||||||
I = "#F6D55C",
|
I = "#F6D55C",
|
||||||
IR = "#ED553B",
|
IR = "#ED553B",
|
||||||
@@ -205,7 +206,7 @@ ggplot_sir <- function(data,
|
|||||||
meet_criteria(minimum, allow_class = c("numeric", "integer"), has_length = 1, is_positive_or_zero = TRUE, is_finite = TRUE)
|
meet_criteria(minimum, allow_class = c("numeric", "integer"), has_length = 1, is_positive_or_zero = TRUE, is_finite = TRUE)
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(nrow, allow_class = c("numeric", "integer"), has_length = 1, allow_NULL = TRUE, is_positive = TRUE, is_finite = TRUE)
|
meet_criteria(nrow, allow_class = c("numeric", "integer"), has_length = 1, allow_NULL = TRUE, is_positive = TRUE, is_finite = TRUE)
|
||||||
meet_criteria(colours, allow_class = c("character", "logical"))
|
meet_criteria(colours, allow_class = c("character", "logical"), allow_NULL = TRUE)
|
||||||
meet_criteria(datalabels, allow_class = "logical", has_length = 1)
|
meet_criteria(datalabels, allow_class = "logical", has_length = 1)
|
||||||
meet_criteria(datalabels.size, allow_class = c("numeric", "integer"), has_length = 1, is_positive = TRUE, is_finite = TRUE)
|
meet_criteria(datalabels.size, allow_class = c("numeric", "integer"), has_length = 1, is_positive = TRUE, is_finite = TRUE)
|
||||||
meet_criteria(datalabels.colour, allow_class = "character", has_length = 1)
|
meet_criteria(datalabels.colour, allow_class = "character", has_length = 1)
|
||||||
@@ -245,7 +246,7 @@ ggplot_sir <- function(data,
|
|||||||
) +
|
) +
|
||||||
theme_sir()
|
theme_sir()
|
||||||
|
|
||||||
if (fill == "interpretation") {
|
if (fill == "interpretation" && !is.null(colours) && !isFALSE(colours)) {
|
||||||
p <- suppressWarnings(p + scale_sir_colours(aesthetics = "fill", colours = colours))
|
p <- suppressWarnings(p + scale_sir_colours(aesthetics = "fill", colours = colours))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
#' @param x A [data.frame].
|
#' @param x A [data.frame].
|
||||||
#' @param search_string A text to search `x` for, will be checked with [as.ab()] if this value is not a column in `x`.
|
#' @param search_string A text to search `x` for, will be checked with [as.ab()] if this value is not a column in `x`.
|
||||||
#' @param verbose A [logical] to indicate whether additional info should be printed.
|
#' @param verbose A [logical] to indicate whether additional info should be printed.
|
||||||
#' @param only_sir_columns A [logical] to indicate whether only antibiotic columns must be detected that were transformed to class `sir` (see [as.sir()]) on beforehand (default is `FALSE`).
|
#' @param only_sir_columns A [logical] to indicate whether only antimicrobial columns must be included that were transformed to class [sir][as.sir()] on beforehand. Defaults to `FALSE` if no columns of `x` have a class [sir][as.sir()].
|
||||||
#' @details You can look for an antibiotic (trade) name or abbreviation and it will search `x` and the [antimicrobials] data set for any column containing a name or code of that antibiotic.
|
#' @details You can look for an antibiotic (trade) name or abbreviation and it will search `x` and the [antimicrobials] data set for any column containing a name or code of that antibiotic.
|
||||||
#' @return A column name of `x`, or `NULL` when no result is found.
|
#' @return A column name of `x`, or `NULL` when no result is found.
|
||||||
#' @export
|
#' @export
|
||||||
@@ -47,7 +47,6 @@
|
|||||||
#' guess_ab_col(df, "J01AA07") # ATC code of tetracycline
|
#' guess_ab_col(df, "J01AA07") # ATC code of tetracycline
|
||||||
#'
|
#'
|
||||||
#' guess_ab_col(df, "J01AA07", verbose = TRUE)
|
#' guess_ab_col(df, "J01AA07", verbose = TRUE)
|
||||||
#' # NOTE: Using column 'tetr' as input for J01AA07 (tetracycline).
|
|
||||||
#'
|
#'
|
||||||
#' # WHONET codes
|
#' # WHONET codes
|
||||||
#' df <- data.frame(
|
#' df <- data.frame(
|
||||||
@@ -56,7 +55,7 @@
|
|||||||
#' )
|
#' )
|
||||||
#' guess_ab_col(df, "ampicillin")
|
#' guess_ab_col(df, "ampicillin")
|
||||||
#' guess_ab_col(df, "J01CR02")
|
#' guess_ab_col(df, "J01CR02")
|
||||||
#' guess_ab_col(df, as.ab("augmentin"))
|
#' guess_ab_col(df, "augmentin")
|
||||||
guess_ab_col <- function(x = NULL, search_string = NULL, verbose = FALSE, only_sir_columns = FALSE) {
|
guess_ab_col <- function(x = NULL, search_string = NULL, verbose = FALSE, only_sir_columns = FALSE) {
|
||||||
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
||||||
meet_criteria(search_string, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
meet_criteria(search_string, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
||||||
@@ -212,7 +211,7 @@ get_column_abx <- function(x,
|
|||||||
newnames <- suppressWarnings(as.ab(names(dots), info = FALSE))
|
newnames <- suppressWarnings(as.ab(names(dots), info = FALSE))
|
||||||
if (anyNA(newnames)) {
|
if (anyNA(newnames)) {
|
||||||
if (isTRUE(info)) {
|
if (isTRUE(info)) {
|
||||||
message_(" WARNING", add_fn = list(font_yellow, font_bold), as_note = FALSE)
|
message_(paste0(font_yellow(font_bold(" WARNING: ")), "some columns returned `NA` for `as.ab()`"), as_note = FALSE)
|
||||||
}
|
}
|
||||||
warning_("Invalid antibiotic reference(s): ", vector_and(names(dots)[is.na(newnames)], quotes = FALSE),
|
warning_("Invalid antibiotic reference(s): ", vector_and(names(dots)[is.na(newnames)], quotes = FALSE),
|
||||||
call = FALSE,
|
call = FALSE,
|
||||||
@@ -255,7 +254,10 @@ get_column_abx <- function(x,
|
|||||||
out <- out[order(names(out), out)]
|
out <- out[order(names(out), out)]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dups <- FALSE
|
||||||
|
|
||||||
if (return_all == FALSE) {
|
if (return_all == FALSE) {
|
||||||
|
dups <- names(out)[names(out) %in% names(out)[duplicated(names(out))]]
|
||||||
# only keep the first hits, no duplicates
|
# only keep the first hits, no duplicates
|
||||||
duplicates <- c(out[duplicated(names(out))], out[duplicated(unname(out))])
|
duplicates <- c(out[duplicated(names(out))], out[duplicated(unname(out))])
|
||||||
if (length(duplicates) > 0) {
|
if (length(duplicates) > 0) {
|
||||||
@@ -265,28 +267,29 @@ get_column_abx <- function(x,
|
|||||||
if (isTRUE(info)) {
|
if (isTRUE(info)) {
|
||||||
if (all_okay == TRUE) {
|
if (all_okay == TRUE) {
|
||||||
message_(" OK.", add_fn = list(font_green, font_bold), as_note = FALSE)
|
message_(" OK.", add_fn = list(font_green, font_bold), as_note = FALSE)
|
||||||
|
} else if (!isFALSE(dups)) {
|
||||||
|
message_(paste0(font_yellow(font_bold(" WARNING: ")), "some results from `as.ab()` are duplicated: ", vector_and(dups, quotes = "`")), as_note = FALSE)
|
||||||
} else {
|
} else {
|
||||||
message_(" WARNING.", add_fn = list(font_yellow, font_bold), as_note = FALSE)
|
message_(" WARNING.", add_fn = list(font_yellow, font_bold), as_note = FALSE)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i in seq_len(length(out))) {
|
for (i in seq_len(length(out))) {
|
||||||
if (isTRUE(verbose) && !names(out[i]) %in% names(duplicates)) {
|
if (isTRUE(verbose) && !out[i] %in% duplicates) {
|
||||||
message_(
|
message_(
|
||||||
"Using column '", font_bold(out[i]), "' as input for ", names(out)[i],
|
"Using column '", font_bold(out[i]), "' as input for ", names(out)[i],
|
||||||
" (", ab_name(names(out)[i], tolower = TRUE, language = NULL), ")."
|
" (", ab_name(names(out)[i], tolower = TRUE, language = NULL), ")."
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (names(out[i]) %in% names(duplicates)) {
|
if (out[i] %in% duplicates) {
|
||||||
already_set_as <- out[unname(out) == unname(out[i])][1L]
|
already_set_as <- out[which(out == out[i])[1L]]
|
||||||
if (names(out)[i] != names(already_set_as)) {
|
if (names(out)[i] != already_set_as) {
|
||||||
warning_(
|
message_(
|
||||||
paste0(
|
paste0(
|
||||||
"Column '", font_bold(out[i]), "' will not be used for ",
|
"Column '", font_bold(out[i]), "' will not be used for ",
|
||||||
names(out)[i], " (", ab_name(names(out)[i], tolower = TRUE, language = NULL), ")",
|
names(out)[i], " (", suppressMessages(ab_name(names(out)[i], tolower = TRUE, language = NULL, fast_mode = TRUE)), ")",
|
||||||
", as it is already set for ",
|
", as this antimicrobial has already been set."
|
||||||
names(already_set_as), " (", ab_name(names(already_set_as), tolower = TRUE, language = NULL), ")"
|
|
||||||
),
|
),
|
||||||
add_fn = font_red,
|
add_fn = font_red
|
||||||
immediate = verbose
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
#' @param gram_negative Names of antibiotic drugs for **Gram-positives**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antibiotic drugs.
|
#' @param gram_negative Names of antibiotic drugs for **Gram-positives**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antibiotic drugs.
|
||||||
#' @param gram_positive Names of antibiotic drugs for **Gram-negatives**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antibiotic drugs.
|
#' @param gram_positive Names of antibiotic drugs for **Gram-negatives**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antibiotic drugs.
|
||||||
#' @param antifungal Names of antifungal drugs for **fungi**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antifungal drugs.
|
#' @param antifungal Names of antifungal drugs for **fungi**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antifungal drugs.
|
||||||
#' @param only_sir_columns A [logical] to indicate whether only columns must be included that were transformed to class `sir` (see [as.sir()]) on beforehand (default is `FALSE`).
|
#' @param only_sir_columns A [logical] to indicate whether only antimicrobial columns must be included that were transformed to class [sir][as.sir()] on beforehand. Defaults to `FALSE` if no columns of `x` have a class [sir][as.sir()].
|
||||||
#' @param ... Ignored, only in place to allow future extensions.
|
#' @param ... Ignored, only in place to allow future extensions.
|
||||||
#' @details
|
#' @details
|
||||||
#' The [key_antimicrobials()] and [all_antimicrobials()] functions are context-aware. This means that the `x` argument can be left blank if used inside a [data.frame] call, see *Examples*.
|
#' The [key_antimicrobials()] and [all_antimicrobials()] functions are context-aware. This means that the `x` argument can be left blank if used inside a [data.frame] call, see *Examples*.
|
||||||
@@ -134,7 +134,7 @@ key_antimicrobials <- function(x = NULL,
|
|||||||
"anidulafungin", "caspofungin", "fluconazole",
|
"anidulafungin", "caspofungin", "fluconazole",
|
||||||
"miconazole", "nystatin", "voriconazole"
|
"miconazole", "nystatin", "voriconazole"
|
||||||
),
|
),
|
||||||
only_sir_columns = FALSE,
|
only_sir_columns = any(is.sir(x)),
|
||||||
...) {
|
...) {
|
||||||
if (is_null_or_grouped_tbl(x)) {
|
if (is_null_or_grouped_tbl(x)) {
|
||||||
# when `x` is left blank, auto determine it (get_current_data() searches underlying data within call)
|
# when `x` is left blank, auto determine it (get_current_data() searches underlying data within call)
|
||||||
@@ -246,7 +246,7 @@ key_antimicrobials <- function(x = NULL,
|
|||||||
#' @rdname key_antimicrobials
|
#' @rdname key_antimicrobials
|
||||||
#' @export
|
#' @export
|
||||||
all_antimicrobials <- function(x = NULL,
|
all_antimicrobials <- function(x = NULL,
|
||||||
only_sir_columns = FALSE,
|
only_sir_columns = any(is.sir(x)),
|
||||||
...) {
|
...) {
|
||||||
if (is_null_or_grouped_tbl(x)) {
|
if (is_null_or_grouped_tbl(x)) {
|
||||||
# when `x` is left blank, auto determine it (get_current_data() searches underlying data within call)
|
# when `x` is left blank, auto determine it (get_current_data() searches underlying data within call)
|
||||||
|
|||||||
400
R/mdro.R
400
R/mdro.R
@@ -38,13 +38,10 @@
|
|||||||
#' @param mecC [logical] values, or a column name containing logical values, indicating the presence of a *mecC* gene (or production of its proteins).
|
#' @param mecC [logical] values, or a column name containing logical values, indicating the presence of a *mecC* gene (or production of its proteins).
|
||||||
#' @param vanA [logical] values, or a column name containing logical values, indicating the presence of a *vanA* gene (or production of its proteins).
|
#' @param vanA [logical] values, or a column name containing logical values, indicating the presence of a *vanA* gene (or production of its proteins).
|
||||||
#' @param vanB [logical] values, or a column name containing logical values, indicating the presence of a *vanB* gene (or production of its proteins).
|
#' @param vanB [logical] values, or a column name containing logical values, indicating the presence of a *vanB* gene (or production of its proteins).
|
||||||
#' @param ... In case of [custom_mdro_guideline()]: a set of rules, see section *Using Custom Guidelines* below. Otherwise: column name of an antibiotic, see section *Antimicrobials* below.
|
|
||||||
#' @param as_factor A [logical] to indicate whether the returned value should be an ordered [factor] (`TRUE`, default), or otherwise a [character] vector.
|
|
||||||
#' @inheritParams eucast_rules
|
#' @inheritParams eucast_rules
|
||||||
#' @param pct_required_classes Minimal required percentage of antimicrobial classes that must be available per isolate, rounded down. For example, with the default guideline, 17 antimicrobial classes must be available for *S. aureus*. Setting this `pct_required_classes` argument to `0.5` (default) means that for every *S. aureus* isolate at least 8 different classes must be available. Any lower number of available classes will return `NA` for that isolate.
|
#' @param pct_required_classes Minimal required percentage of antimicrobial classes that must be available per isolate, rounded down. For example, with the default guideline, 17 antimicrobial classes must be available for *S. aureus*. Setting this `pct_required_classes` argument to `0.5` (default) means that for every *S. aureus* isolate at least 8 different classes must be available. Any lower number of available classes will return `NA` for that isolate.
|
||||||
#' @param combine_SI A [logical] to indicate whether all values of S and I must be merged into one, so resistance is only considered when isolates are R, not I. As this is the default behaviour of the [mdro()] function, it follows the redefinition by EUCAST about the interpretation of I (increased exposure) in 2019, see section 'Interpretation of S, I and R' below. When using `combine_SI = FALSE`, resistance is considered when isolates are R or I.
|
#' @param combine_SI A [logical] to indicate whether all values of S and I must be merged into one, so resistance is only considered when isolates are R, not I. As this is the default behaviour of the [mdro()] function, it follows the redefinition by EUCAST about the interpretation of I (increased exposure) in 2019, see section 'Interpretation of S, I and R' below. When using `combine_SI = FALSE`, resistance is considered when isolates are R or I.
|
||||||
#' @param verbose A [logical] to turn Verbose mode on and off (default is off). In Verbose mode, the function does not return the MDRO results, but instead returns a data set in logbook form with extensive info about which isolates would be MDRO-positive, or why they are not.
|
#' @param verbose A [logical] to turn Verbose mode on and off (default is off). In Verbose mode, the function does not return the MDRO results, but instead returns a data set in logbook form with extensive info about which isolates would be MDRO-positive, or why they are not.
|
||||||
#' @inheritSection eucast_rules Antimicrobials
|
|
||||||
#' @details
|
#' @details
|
||||||
#' These functions are context-aware. This means that the `x` argument can be left blank if used inside a [data.frame] call, see *Examples*.
|
#' These functions are context-aware. This means that the `x` argument can be left blank if used inside a [data.frame] call, see *Examples*.
|
||||||
#'
|
#'
|
||||||
@@ -52,25 +49,29 @@
|
|||||||
#'
|
#'
|
||||||
#' **Note:** Every test that involves the Enterobacteriaceae family, will internally be performed using its newly named *order* Enterobacterales, since the Enterobacteriaceae family has been taxonomically reclassified by Adeolu *et al.* in 2016. Before that, Enterobacteriaceae was the only family under the Enterobacteriales (with an i) order. All species under the old Enterobacteriaceae family are still under the new Enterobacterales (without an i) order, but divided into multiple families. The way tests are performed now by this [mdro()] function makes sure that results from before 2016 and after 2016 are identical.
|
#' **Note:** Every test that involves the Enterobacteriaceae family, will internally be performed using its newly named *order* Enterobacterales, since the Enterobacteriaceae family has been taxonomically reclassified by Adeolu *et al.* in 2016. Before that, Enterobacteriaceae was the only family under the Enterobacteriales (with an i) order. All species under the old Enterobacteriaceae family are still under the new Enterobacterales (without an i) order, but divided into multiple families. The way tests are performed now by this [mdro()] function makes sure that results from before 2016 and after 2016 are identical.
|
||||||
#'
|
#'
|
||||||
#' @section Supported International / National Guidelines:
|
#' ### Supported International / National Guidelines
|
||||||
|
#'
|
||||||
|
#' Please suggest to implement guidelines by [letting us know](https://github.com/msberends/AMR/issues/new?template=2-feature-request.yml&title=Add%20new%20MDRO%20guideline).
|
||||||
#'
|
#'
|
||||||
#' Currently supported guidelines are (case-insensitive):
|
#' Currently supported guidelines are (case-insensitive):
|
||||||
#'
|
#'
|
||||||
#' * `guideline = "CMI2012"` (default)
|
#' * `guideline = "CMI 2012"` (default)
|
||||||
#'
|
#'
|
||||||
#' Magiorakos AP, Srinivasan A *et al.* "Multidrug-resistant, extensively drug-resistant and pandrug-resistant bacteria: an international expert proposal for interim standard definitions for acquired resistance." Clinical Microbiology and Infection (2012) (\doi{10.1111/j.1469-0691.2011.03570.x})
|
#' Magiorakos AP, Srinivasan A *et al.* "Multidrug-resistant, extensively drug-resistant and pandrug-resistant bacteria: an international expert proposal for interim standard definitions for acquired resistance." Clinical Microbiology and Infection (2012) (\doi{10.1111/j.1469-0691.2011.03570.x})
|
||||||
#'
|
#'
|
||||||
#' * `guideline = "EUCAST3.3"` (or simply `guideline = "EUCAST"`)
|
#' * `guideline = "EUCAST 3.3"` (or simply `guideline = "EUCAST"`)
|
||||||
#'
|
#'
|
||||||
#' The European international guideline - EUCAST Expert Rules Version 3.3 "Intrinsic Resistance and Unusual Phenotypes" ([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/2021/Intrinsic_Resistance_and_Unusual_Phenotypes_Tables_v3.3_20211018.pdf))
|
#' The European international guideline - EUCAST Expert Rules Version 3.3 "Intrinsic Resistance and Unusual Phenotypes" ([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/2021/Intrinsic_Resistance_and_Unusual_Phenotypes_Tables_v3.3_20211018.pdf))
|
||||||
#'
|
#'
|
||||||
#' * `guideline = "EUCAST3.2"`
|
#' Also:
|
||||||
#'
|
#'
|
||||||
#' The European international guideline - EUCAST Expert Rules Version 3.2 "Intrinsic Resistance and Unusual Phenotypes" ([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/2020/Intrinsic_Resistance_and_Unusual_Phenotypes_Tables_v3.2_20200225.pdf))
|
#' * `guideline = "EUCAST 3.2"`
|
||||||
#'
|
#'
|
||||||
#' * `guideline = "EUCAST3.1"`
|
#' The former European international guideline - EUCAST Expert Rules Version 3.2 "Intrinsic Resistance and Unusual Phenotypes" ([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/2020/Intrinsic_Resistance_and_Unusual_Phenotypes_Tables_v3.2_20200225.pdf))
|
||||||
#'
|
#'
|
||||||
#' The European international guideline - EUCAST Expert Rules Version 3.1 "Intrinsic Resistance and Exceptional Phenotypes Tables" ([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/Expert_rules_intrinsic_exceptional_V3.1.pdf))
|
#' * `guideline = "EUCAST 3.1"`
|
||||||
|
#'
|
||||||
|
#' The former European international guideline - EUCAST Expert Rules Version 3.1 "Intrinsic Resistance and Exceptional Phenotypes Tables" ([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/Expert_rules_intrinsic_exceptional_V3.1.pdf))
|
||||||
#'
|
#'
|
||||||
#' * `guideline = "TB"`
|
#' * `guideline = "TB"`
|
||||||
#'
|
#'
|
||||||
@@ -80,7 +81,7 @@
|
|||||||
#'
|
#'
|
||||||
#' The German national guideline - Mueller et al. (2015) Antimicrobial Resistance and Infection Control 4:7; \doi{10.1186/s13756-015-0047-6}
|
#' The German national guideline - Mueller et al. (2015) Antimicrobial Resistance and Infection Control 4:7; \doi{10.1186/s13756-015-0047-6}
|
||||||
#'
|
#'
|
||||||
#' * `guideline = "BRMO"`
|
#' * `guideline = "BRMO 2024"` (or simply `guideline = "BRMO"`)
|
||||||
#'
|
#'
|
||||||
#' The Dutch national guideline - Samenwerkingverband Richtlijnen Infectiepreventie (SRI) (2024) "Bijzonder Resistente Micro-Organismen (BRMO)" ([link](https://www.sri-richtlijnen.nl/brmo))
|
#' The Dutch national guideline - Samenwerkingverband Richtlijnen Infectiepreventie (SRI) (2024) "Bijzonder Resistente Micro-Organismen (BRMO)" ([link](https://www.sri-richtlijnen.nl/brmo))
|
||||||
#'
|
#'
|
||||||
@@ -90,57 +91,16 @@
|
|||||||
#'
|
#'
|
||||||
#' The former Dutch national guideline - Werkgroep Infectiepreventie (WIP), RIVM, last revision as of 2017: "Bijzonder Resistente Micro-Organismen (BRMO)"
|
#' The former Dutch national guideline - Werkgroep Infectiepreventie (WIP), RIVM, last revision as of 2017: "Bijzonder Resistente Micro-Organismen (BRMO)"
|
||||||
#'
|
#'
|
||||||
#' Please suggest to implement guidelines by letting us know: <https://github.com/msberends/AMR/issues/new>.
|
#' ### Using Custom Guidelines
|
||||||
#'
|
#'
|
||||||
#' @section Using Custom Guidelines:
|
#' Using a custom MDRO guideline is of importance if you have custom rules to determine MDROs in your hospital, e.g., rules that are dependent on ward, state of contact isolation or other variables in your data.
|
||||||
#'
|
#'
|
||||||
#' Custom guidelines can be set with the [custom_mdro_guideline()] function. This is of great importance if you have custom rules to determine MDROs in your hospital, e.g., rules that are dependent on ward, state of contact isolation or other variables in your data.
|
#' Custom guidelines can be set with the [custom_mdro_guideline()] function.
|
||||||
#'
|
#'
|
||||||
#' If you are familiar with the [`case_when()`][dplyr::case_when()] function of the `dplyr` package, you will recognise the input method to set your own rules. Rules must be set using what \R considers to be the 'formula notation'. The rule is written *before* the tilde (`~`) and the consequence of the rule is written *after* the tilde:
|
|
||||||
#'
|
|
||||||
#' ```
|
|
||||||
#' custom <- custom_mdro_guideline(CIP == "R" & age > 60 ~ "Elderly Type A",
|
|
||||||
#' ERY == "R" & age > 60 ~ "Elderly Type B")
|
|
||||||
#' ```
|
|
||||||
#'
|
|
||||||
#' If a row/an isolate matches the first rule, the value after the first `~` (in this case *'Elderly Type A'*) will be set as MDRO value. Otherwise, the second rule will be tried and so on. The number of rules is unlimited.
|
|
||||||
#'
|
|
||||||
#' You can print the rules set in the console for an overview. Colours will help reading it if your console supports colours.
|
|
||||||
#'
|
|
||||||
#' ```
|
|
||||||
#' custom
|
|
||||||
#' #> A set of custom MDRO rules:
|
|
||||||
#' #> 1. CIP is "R" and age is higher than 60 -> Elderly Type A
|
|
||||||
#' #> 2. ERY is "R" and age is higher than 60 -> Elderly Type B
|
|
||||||
#' #> 3. Otherwise -> Negative
|
|
||||||
#' #>
|
|
||||||
#' #> Unmatched rows will return NA.
|
|
||||||
#' ```
|
|
||||||
#'
|
|
||||||
#' The outcome of the function can be used for the `guideline` argument in the [mdro()] function:
|
|
||||||
#'
|
|
||||||
#' ```
|
|
||||||
#' x <- mdro(example_isolates,
|
|
||||||
#' guideline = custom)
|
|
||||||
#' table(x)
|
|
||||||
#' #> Negative Elderly Type A Elderly Type B
|
|
||||||
#' #> 1070 198 732
|
|
||||||
#' ```
|
|
||||||
#'
|
|
||||||
#' Rules can also be combined with other custom rules by using [c()]:
|
|
||||||
#'
|
|
||||||
#' ```
|
|
||||||
#' x <- mdro(example_isolates,
|
|
||||||
#' guideline = c(custom,
|
|
||||||
#' custom_mdro_guideline(ERY == "R" & age > 50 ~ "Elderly Type C")))
|
|
||||||
#' table(x)
|
|
||||||
#' #> Negative Elderly Type A Elderly Type B Elderly Type C
|
|
||||||
#' #> 961 198 732 109
|
|
||||||
#' ```
|
|
||||||
#'
|
|
||||||
#' The rules set (the `custom` object in this case) could be exported to a shared file location using [saveRDS()] if you collaborate with multiple users. The custom rules set could then be imported using [readRDS()].
|
|
||||||
#' @inheritSection as.sir Interpretation of SIR
|
#' @inheritSection as.sir Interpretation of SIR
|
||||||
#' @return
|
#' @return
|
||||||
|
#' - If `verbose` is set to `TRUE`:\cr
|
||||||
|
#' A [data.frame] containing columns `row_number`, `microorganism`, `MDRO`, `reason`, `all_nonsusceptible_columns`, `guideline`
|
||||||
#' - CMI 2012 paper - function [mdr_cmi2012()] or [mdro()]:\cr
|
#' - CMI 2012 paper - function [mdr_cmi2012()] or [mdro()]:\cr
|
||||||
#' Ordered [factor] with levels `Negative` < `Multi-drug-resistant (MDR)` < `Extensively drug-resistant (XDR)` < `Pandrug-resistant (PDR)`
|
#' Ordered [factor] with levels `Negative` < `Multi-drug-resistant (MDR)` < `Extensively drug-resistant (XDR)` < `Pandrug-resistant (PDR)`
|
||||||
#' - TB guideline - function [mdr_tb()] or [`mdro(..., guideline = "TB")`][mdro()]:\cr
|
#' - TB guideline - function [mdr_tb()] or [`mdro(..., guideline = "TB")`][mdro()]:\cr
|
||||||
@@ -148,40 +108,29 @@
|
|||||||
#' - German guideline - function [mrgn()] or [`mdro(..., guideline = "MRGN")`][mdro()]:\cr
|
#' - German guideline - function [mrgn()] or [`mdro(..., guideline = "MRGN")`][mdro()]:\cr
|
||||||
#' Ordered [factor] with levels `Negative` < `3MRGN` < `4MRGN`
|
#' Ordered [factor] with levels `Negative` < `3MRGN` < `4MRGN`
|
||||||
#' - Everything else, except for custom guidelines:\cr
|
#' - Everything else, except for custom guidelines:\cr
|
||||||
#' Ordered [factor] with levels `Negative` < `Positive, unconfirmed` < `Positive`. The value `"Positive, unconfirmed"` means that, according to the guideline, it is not entirely sure if the isolate is multi-drug resistant and this should be confirmed with additional (e.g. molecular) tests
|
#' Ordered [factor] with levels `Negative` < `Positive, unconfirmed` < `Positive`. The value `"Positive, unconfirmed"` means that, according to the guideline, it is not entirely sure if the isolate is multi-drug resistant and this should be confirmed with additional (e.g. genotypic) tests
|
||||||
#' @rdname mdro
|
#' @rdname mdro
|
||||||
#' @aliases MDR XDR PDR BRMO 3MRGN 4MRGN
|
#' @aliases MDR XDR PDR BRMO 3MRGN 4MRGN
|
||||||
|
#' @seealso [custom_mdro_guideline()]
|
||||||
#' @export
|
#' @export
|
||||||
#' @source
|
|
||||||
#' See the supported guidelines above for the [list] of publications used for this function.
|
|
||||||
#' @examples
|
#' @examples
|
||||||
#' out <- mdro(example_isolates, guideline = "EUCAST")
|
#' out <- mdro(example_isolates)
|
||||||
#' str(out)
|
#' str(out)
|
||||||
#' table(out)
|
#' table(out)
|
||||||
#'
|
#'
|
||||||
#' out <- mdro(example_isolates,
|
#' out <- mdro(example_isolates, guideline = "EUCAST 3.3")
|
||||||
#' guideline = custom_mdro_guideline(
|
|
||||||
#' AMX == "R" ~ "Custom MDRO 1",
|
|
||||||
#' VAN == "R" ~ "Custom MDRO 2"
|
|
||||||
#' )
|
|
||||||
#' )
|
|
||||||
#' table(out)
|
#' table(out)
|
||||||
#'
|
#'
|
||||||
#' \donttest{
|
#' \donttest{
|
||||||
#' if (require("dplyr")) {
|
#' if (require("dplyr")) {
|
||||||
#' example_isolates %>%
|
|
||||||
#' mdro() %>%
|
|
||||||
#' table()
|
|
||||||
#'
|
|
||||||
#' # no need to define `x` when used inside dplyr verbs:
|
#' # no need to define `x` when used inside dplyr verbs:
|
||||||
#' example_isolates %>%
|
#' example_isolates %>%
|
||||||
#' mutate(MDRO = mdro()) %>%
|
#' mutate(MDRO = mdro()) %>%
|
||||||
#' pull(MDRO) %>%
|
#' count(MDRO)
|
||||||
#' table()
|
|
||||||
#' }
|
#' }
|
||||||
#' }
|
#' }
|
||||||
mdro <- function(x = NULL,
|
mdro <- function(x = NULL,
|
||||||
guideline = "CMI2012",
|
guideline = "CMI 2012",
|
||||||
col_mo = NULL,
|
col_mo = NULL,
|
||||||
esbl = NA,
|
esbl = NA,
|
||||||
carbapenemase = NA,
|
carbapenemase = NA,
|
||||||
@@ -193,13 +142,14 @@ mdro <- function(x = NULL,
|
|||||||
pct_required_classes = 0.5,
|
pct_required_classes = 0.5,
|
||||||
combine_SI = TRUE,
|
combine_SI = TRUE,
|
||||||
verbose = FALSE,
|
verbose = FALSE,
|
||||||
only_sir_columns = FALSE,
|
only_sir_columns = any(is.sir(x)),
|
||||||
...) {
|
...) {
|
||||||
if (is_null_or_grouped_tbl(x)) {
|
if (is_null_or_grouped_tbl(x)) {
|
||||||
# when `x` is left blank, auto determine it (get_current_data() searches underlying data within call)
|
# when `x` is left blank, auto determine it (get_current_data() searches underlying data within call)
|
||||||
# is also a fix for using a grouped df as input (i.e., a dot as first argument)
|
# is also a fix for using a grouped df as input (i.e., a dot as first argument)
|
||||||
x <- tryCatch(get_current_data(arg_name = "x", call = -2), error = function(e) x)
|
x <- tryCatch(get_current_data(arg_name = "x", call = -2), error = function(e) x)
|
||||||
}
|
}
|
||||||
|
|
||||||
meet_criteria(x, allow_class = "data.frame") # also checks dimensions to be >0
|
meet_criteria(x, allow_class = "data.frame") # also checks dimensions to be >0
|
||||||
meet_criteria(guideline, allow_class = c("list", "character"), allow_NULL = TRUE)
|
meet_criteria(guideline, allow_class = c("list", "character"), allow_NULL = TRUE)
|
||||||
if (!is.list(guideline)) meet_criteria(guideline, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
if (!is.list(guideline)) meet_criteria(guideline, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
||||||
@@ -216,8 +166,11 @@ mdro <- function(x = NULL,
|
|||||||
meet_criteria(verbose, allow_class = "logical", has_length = 1)
|
meet_criteria(verbose, allow_class = "logical", has_length = 1)
|
||||||
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
if (!any(is_sir_eligible(x))) {
|
|
||||||
stop_("There were no possible SIR columns found in the data set. Transform columns with `as.sir()` for valid antimicrobial interpretations.")
|
if (isTRUE(only_sir_columns) && !any(is.sir(x))) {
|
||||||
|
stop_("There were no SIR columns found in the data set, despite `only_sir_columns` being `TRUE`. Transform columns with `as.sir()` for valid antimicrobial interpretations.")
|
||||||
|
} else if (!isTRUE(only_sir_columns) && !any(is.sir(x)) && !any(is_sir_eligible(x))) {
|
||||||
|
stop_("There were no eligible SIR columns found in the data set. Transform columns with `as.sir()` for valid antimicrobial interpretations.")
|
||||||
}
|
}
|
||||||
|
|
||||||
# get gene values as TRUE/FALSE
|
# get gene values as TRUE/FALSE
|
||||||
@@ -349,17 +302,26 @@ mdro <- function(x = NULL,
|
|||||||
))))
|
))))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isTRUE(verbose)) {
|
if (isTRUE(verbose)) {
|
||||||
|
x$reason[is.na(x$reason)] <- "not covered by guideline"
|
||||||
|
x$microorganism <- NA_character_
|
||||||
|
x$guideline <- "Custom guideline"
|
||||||
return(x[, c(
|
return(x[, c(
|
||||||
"row_number",
|
"row_number",
|
||||||
|
"microorganism",
|
||||||
"MDRO",
|
"MDRO",
|
||||||
"reason",
|
"reason",
|
||||||
"columns_nonsusceptible"
|
"all_nonsusceptible_columns",
|
||||||
)])
|
"guideline"
|
||||||
|
),
|
||||||
|
drop = FALSE
|
||||||
|
])
|
||||||
} else {
|
} else {
|
||||||
return(x$MDRO)
|
return(x$MDRO)
|
||||||
}
|
}
|
||||||
}
|
} # end of custom MDRO guideline
|
||||||
|
|
||||||
guideline <- tolower(gsub("[^a-zA-Z0-9.]+", "", guideline))
|
guideline <- tolower(gsub("[^a-zA-Z0-9.]+", "", guideline))
|
||||||
if (is.null(guideline)) {
|
if (is.null(guideline)) {
|
||||||
# default to the paper by Magiorakos et al. (2012)
|
# default to the paper by Magiorakos et al. (2012)
|
||||||
@@ -369,14 +331,15 @@ mdro <- function(x = NULL,
|
|||||||
# turn into latest EUCAST guideline
|
# turn into latest EUCAST guideline
|
||||||
guideline <- "eucast3.3"
|
guideline <- "eucast3.3"
|
||||||
}
|
}
|
||||||
if (guideline == "nl") {
|
if (guideline %in% c("nl", "brmo")) {
|
||||||
guideline <- "brmo"
|
# turn into latest BRMO guideline
|
||||||
|
guideline <- "brmo2024"
|
||||||
}
|
}
|
||||||
if (guideline == "de") {
|
if (guideline == "de") {
|
||||||
guideline <- "mrgn"
|
guideline <- "mrgn"
|
||||||
}
|
}
|
||||||
stop_ifnot(
|
stop_ifnot(
|
||||||
guideline %in% c("brmo", "mrgn", "eucast3.1", "eucast3.2", "eucast3.3", "tb", "cmi2012"),
|
guideline %in% c("brmo2017", "brmo2024", "mrgn", "eucast3.1", "eucast3.2", "eucast3.3", "tb", "cmi2012"),
|
||||||
"invalid guideline: ", guideline.bak
|
"invalid guideline: ", guideline.bak
|
||||||
)
|
)
|
||||||
guideline <- list(code = guideline)
|
guideline <- list(code = guideline)
|
||||||
@@ -434,7 +397,7 @@ mdro <- function(x = NULL,
|
|||||||
guideline$version <- NA_character_
|
guideline$version <- NA_character_
|
||||||
guideline$source_url <- paste0("Antimicrobial Resistance and Infection Control 4:7, 2015; ", font_url("https://doi.org/10.1186/s13756-015-0047-6", "doi: 10.1186/s13756-015-0047-6"))
|
guideline$source_url <- paste0("Antimicrobial Resistance and Infection Control 4:7, 2015; ", font_url("https://doi.org/10.1186/s13756-015-0047-6", "doi: 10.1186/s13756-015-0047-6"))
|
||||||
guideline$type <- "MRGNs"
|
guideline$type <- "MRGNs"
|
||||||
} else if (guideline$code == "brmo") {
|
} else if (guideline$code == "brmo2024") {
|
||||||
combine_SI <- TRUE # I must not be considered resistant
|
combine_SI <- TRUE # I must not be considered resistant
|
||||||
guideline$name <- "Bijzonder Resistente Micro-organismen (BRMO)"
|
guideline$name <- "Bijzonder Resistente Micro-organismen (BRMO)"
|
||||||
guideline$author <- "Samenwerkingsverband Richtlijnen Infectiepreventie (SRI)"
|
guideline$author <- "Samenwerkingsverband Richtlijnen Infectiepreventie (SRI)"
|
||||||
@@ -536,10 +499,11 @@ mdro <- function(x = NULL,
|
|||||||
if (!"AMP" %in% names(cols_ab) && "AMX" %in% names(cols_ab)) {
|
if (!"AMP" %in% names(cols_ab) && "AMX" %in% names(cols_ab)) {
|
||||||
# ampicillin column is missing, but amoxicillin is available
|
# ampicillin column is missing, but amoxicillin is available
|
||||||
if (isTRUE(info)) {
|
if (isTRUE(info)) {
|
||||||
message_("Using column '", cols_ab[names(cols_ab) == "AMX"], "' as input for ampicillin since many MDRO rules depend on it.")
|
message_("Using column '", cols_ab[names(cols_ab) == "AMX"], "' as input for ampicillin since many MDRO rules depend on it.", add_fn = font_red)
|
||||||
}
|
}
|
||||||
cols_ab <- c(cols_ab, c(AMP = unname(cols_ab[names(cols_ab) == "AMX"])))
|
cols_ab <- c(cols_ab, c(AMP = unname(cols_ab[names(cols_ab) == "AMX"])))
|
||||||
}
|
}
|
||||||
|
cols_ab <- cols_ab[!duplicated(cols_ab)]
|
||||||
|
|
||||||
# nolint start
|
# nolint start
|
||||||
AMC <- cols_ab["AMC"]
|
AMC <- cols_ab["AMC"]
|
||||||
@@ -589,6 +553,7 @@ mdro <- function(x = NULL,
|
|||||||
CTX <- cols_ab["CTX"]
|
CTX <- cols_ab["CTX"]
|
||||||
CTZ <- cols_ab["CTZ"]
|
CTZ <- cols_ab["CTZ"]
|
||||||
CXM <- cols_ab["CXM"]
|
CXM <- cols_ab["CXM"]
|
||||||
|
CZA <- cols_ab["CZA"]
|
||||||
CZD <- cols_ab["CZD"]
|
CZD <- cols_ab["CZD"]
|
||||||
CZO <- cols_ab["CZO"]
|
CZO <- cols_ab["CZO"]
|
||||||
CZX <- cols_ab["CZX"]
|
CZX <- cols_ab["CZX"]
|
||||||
@@ -686,7 +651,6 @@ mdro <- function(x = NULL,
|
|||||||
abx_tb <- abx_tb[!is.na(abx_tb)]
|
abx_tb <- abx_tb[!is.na(abx_tb)]
|
||||||
stop_if(guideline$code == "tb" & length(abx_tb) == 0, "no antimycobacterials found in data set")
|
stop_if(guideline$code == "tb" & length(abx_tb) == 0, "no antimycobacterials found in data set")
|
||||||
# nolint end
|
# nolint end
|
||||||
|
|
||||||
if (isTRUE(combine_SI)) {
|
if (isTRUE(combine_SI)) {
|
||||||
search_result <- "R"
|
search_result <- "R"
|
||||||
} else {
|
} else {
|
||||||
@@ -735,7 +699,7 @@ mdro <- function(x = NULL,
|
|||||||
x
|
x
|
||||||
}
|
}
|
||||||
|
|
||||||
# antibiotic classes
|
# antimicrobial classes
|
||||||
# nolint start
|
# nolint start
|
||||||
aminoglycosides <- c(TOB, GEN)
|
aminoglycosides <- c(TOB, GEN)
|
||||||
cephalosporins <- c(CDZ, CAC, CEC, CFR, RID, MAN, CTZ, CZD, CZO, CDR, DIT, FEP, CAT, CFM, CMX, CMZ, DIZ, CID, CFP, CSL, CND, CTX, CTT, CTF, FOX, CPM, CPO, CPD, CPR, CRD, CFS, CPT, CAZ, CCV, CTL, CTB, CZX, BPR, CFM1, CEI, CRO, CXM, LEX, CEP, HAP, CED, LTM, LOR)
|
cephalosporins <- c(CDZ, CAC, CEC, CFR, RID, MAN, CTZ, CZD, CZO, CDR, DIT, FEP, CAT, CFM, CMX, CMZ, DIZ, CID, CFP, CSL, CND, CTX, CTT, CTF, FOX, CPM, CPO, CPD, CPR, CRD, CFS, CPT, CAZ, CCV, CTL, CTB, CZX, BPR, CFM1, CEI, CRO, CXM, LEX, CEP, HAP, CED, LTM, LOR)
|
||||||
@@ -762,7 +726,7 @@ mdro <- function(x = NULL,
|
|||||||
),
|
),
|
||||||
stringsAsFactors = FALSE
|
stringsAsFactors = FALSE
|
||||||
)
|
)
|
||||||
x[rows, "columns_nonsusceptible"] <<- vapply(
|
x[rows, "all_nonsusceptible_columns"] <<- vapply(
|
||||||
FUN.VALUE = character(1),
|
FUN.VALUE = character(1),
|
||||||
rows,
|
rows,
|
||||||
function(row, group_vct = cols_ab) {
|
function(row, group_vct = cols_ab) {
|
||||||
@@ -772,10 +736,10 @@ mdro <- function(x = NULL,
|
|||||||
function(y) y %in% search_result
|
function(y) y %in% search_result
|
||||||
)
|
)
|
||||||
paste(
|
paste(
|
||||||
sort(c(
|
unique(sort(c(
|
||||||
unlist(strsplit(x[row, "columns_nonsusceptible", drop = TRUE], ", ", fixed = TRUE)),
|
unlist(strsplit(x[row, "all_nonsusceptible_columns", drop = TRUE], ", ", fixed = TRUE)),
|
||||||
names(cols_nonsus)[cols_nonsus]
|
names(cols_nonsus)[cols_nonsus]
|
||||||
)),
|
))),
|
||||||
collapse = ", "
|
collapse = ", "
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -844,12 +808,12 @@ mdro <- function(x = NULL,
|
|||||||
)
|
)
|
||||||
|
|
||||||
if (isTRUE(verbose)) {
|
if (isTRUE(verbose)) {
|
||||||
x[rows, "columns_nonsusceptible"] <<- vapply(
|
x[rows, "all_nonsusceptible_columns"] <<- vapply(
|
||||||
FUN.VALUE = character(1),
|
FUN.VALUE = character(1),
|
||||||
rows,
|
rows,
|
||||||
function(row, group_vct = lst_vector) {
|
function(row, group_vct = lst_vector) {
|
||||||
cols_nonsus <- vapply(FUN.VALUE = logical(1), x[row, group_vct, drop = FALSE], function(y) y %in% search_result)
|
cols_nonsus <- vapply(FUN.VALUE = logical(1), x[row, group_vct, drop = FALSE], function(y) y %in% search_result)
|
||||||
paste(sort(names(cols_nonsus)[cols_nonsus]), collapse = ", ")
|
paste(unique(sort(names(cols_nonsus)[cols_nonsus])), collapse = ", ")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -891,7 +855,7 @@ mdro <- function(x = NULL,
|
|||||||
x$MDRO <- ifelse(!is.na(x$genus), 1, NA_integer_)
|
x$MDRO <- ifelse(!is.na(x$genus), 1, NA_integer_)
|
||||||
x$row_number <- seq_len(nrow(x))
|
x$row_number <- seq_len(nrow(x))
|
||||||
x$reason <- NA_character_
|
x$reason <- NA_character_
|
||||||
x$columns_nonsusceptible <- ""
|
x$all_nonsusceptible_columns <- ""
|
||||||
|
|
||||||
if (guideline$code == "cmi2012") {
|
if (guideline$code == "cmi2012") {
|
||||||
# CMI, 2012 ---------------------------------------------------------------
|
# CMI, 2012 ---------------------------------------------------------------
|
||||||
@@ -1143,7 +1107,7 @@ mdro <- function(x = NULL,
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# add antibiotic names of resistant ones to verbose output
|
# add antimicrobial names of resistant ones to verbose output
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guideline$code == "eucast3.1") {
|
if (guideline$code == "eucast3.1") {
|
||||||
@@ -1507,7 +1471,7 @@ mdro <- function(x = NULL,
|
|||||||
x[which(x$MDRO == 3), "reason"] <- "4MRGN"
|
x[which(x$MDRO == 3), "reason"] <- "4MRGN"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guideline$code == "brmo") {
|
if (guideline$code == "brmo2024") {
|
||||||
# Netherlands 2024 --------------------------------------------------------
|
# Netherlands 2024 --------------------------------------------------------
|
||||||
aminoglycosides <- c(GEN, TOB, AMK) # note 4: gentamicin or tobramycin or amikacin
|
aminoglycosides <- c(GEN, TOB, AMK) # note 4: gentamicin or tobramycin or amikacin
|
||||||
aminoglycosides_serratia_marcescens <- GEN # note 4: TOB and AMK do not count towards S. marcescens
|
aminoglycosides_serratia_marcescens <- GEN # note 4: TOB and AMK do not count towards S. marcescens
|
||||||
@@ -1526,7 +1490,7 @@ mdro <- function(x = NULL,
|
|||||||
if (length(ESBLs) > 0) {
|
if (length(ESBLs) > 0) {
|
||||||
trans_tbl(
|
trans_tbl(
|
||||||
2, # positive, unconfirmed
|
2, # positive, unconfirmed
|
||||||
rows = which(x$order == "Enterobacterales" & x[[ESBLs[1]]] == "R" & x[[ESBLs[2]]] == "R" & is.na(esbl)),
|
rows = which(x$order == "Enterobacterales" & col_values(x, ESBLs[1]) == "R" & col_values(x, ESBLs[2]) == "R" & is.na(esbl)),
|
||||||
cols = c(AMX %or% AMP, cephalosporins_3rd),
|
cols = c(AMX %or% AMP, cephalosporins_3rd),
|
||||||
any_all = "all",
|
any_all = "all",
|
||||||
reason = "Enterobacterales: potential ESBL"
|
reason = "Enterobacterales: potential ESBL"
|
||||||
@@ -1562,9 +1526,9 @@ mdro <- function(x = NULL,
|
|||||||
)
|
)
|
||||||
trans_tbl(
|
trans_tbl(
|
||||||
3,
|
3,
|
||||||
rows = which(x[[SXT]] == "R" &
|
rows = which(col_values(x, SXT) == "R" &
|
||||||
(x[[GEN]] == "R" | x[[TOB]] == "R" | x[[AMK]] == "R") &
|
(col_values(x, GEN) == "R" | col_values(x, TOB) == "R" | col_values(x, AMK) == "R") &
|
||||||
(x[[CIP]] == "R" | x[[NOR]] == "R" | x[[LVX]] == "R") &
|
(col_values(x, CIP) == "R" | col_values(x, NOR) == "R" | col_values(x, LVX) == "R") &
|
||||||
(x$genus %in% c("Enterobacter", "Providencia") | paste(x$genus, x$species) %in% c("Citrobacter freundii", "Klebsiella aerogenes", "Hafnia alvei", "Morganella morganii"))),
|
(x$genus %in% c("Enterobacter", "Providencia") | paste(x$genus, x$species) %in% c("Citrobacter freundii", "Klebsiella aerogenes", "Hafnia alvei", "Morganella morganii"))),
|
||||||
cols = c(SXT, aminoglycosides, fluoroquinolones),
|
cols = c(SXT, aminoglycosides, fluoroquinolones),
|
||||||
any_all = "any",
|
any_all = "any",
|
||||||
@@ -1572,9 +1536,9 @@ mdro <- function(x = NULL,
|
|||||||
)
|
)
|
||||||
trans_tbl(
|
trans_tbl(
|
||||||
3,
|
3,
|
||||||
rows = which(x[[SXT]] == "R" &
|
rows = which(col_values(x, SXT) == "R" &
|
||||||
x[[GEN]] == "R" &
|
col_values(x, GEN) == "R" &
|
||||||
(x[[CIP]] == "R" | x[[NOR]] == "R" | x[[LVX]] == "R") &
|
(col_values(x, CIP) == "R" | col_values(x, NOR) == "R" | col_values(x, LVX) == "R") &
|
||||||
paste(x$genus, x$species) == "Serratia marcescens"),
|
paste(x$genus, x$species) == "Serratia marcescens"),
|
||||||
cols = c(SXT, aminoglycosides_serratia_marcescens, fluoroquinolones),
|
cols = c(SXT, aminoglycosides_serratia_marcescens, fluoroquinolones),
|
||||||
any_all = "any",
|
any_all = "any",
|
||||||
@@ -1584,8 +1548,8 @@ mdro <- function(x = NULL,
|
|||||||
# Acinetobacter baumannii-calcoaceticus complex
|
# Acinetobacter baumannii-calcoaceticus complex
|
||||||
trans_tbl(
|
trans_tbl(
|
||||||
3,
|
3,
|
||||||
rows = which((x[[GEN]] == "R" | x[[TOB]] == "R" | x[[AMK]] == "R") &
|
rows = which((col_values(x, GEN) == "R" | col_values(x, TOB) == "R" | col_values(x, AMK) == "R") &
|
||||||
(x[[CIP]] == "R" | x[[LVX]] == "R") &
|
(col_values(x, CIP) == "R" | col_values(x, LVX) == "R") &
|
||||||
x[[col_mo]] %in% AMR::microorganisms.groups$mo[AMR::microorganisms.groups$mo_group_name == "Acinetobacter baumannii complex"]),
|
x[[col_mo]] %in% AMR::microorganisms.groups$mo[AMR::microorganisms.groups$mo_group_name == "Acinetobacter baumannii complex"]),
|
||||||
cols = c(aminoglycosides, CIP, LVX),
|
cols = c(aminoglycosides, CIP, LVX),
|
||||||
any_all = "any",
|
any_all = "any",
|
||||||
@@ -1607,28 +1571,24 @@ mdro <- function(x = NULL,
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Pseudomonas aeruginosa
|
# Pseudomonas aeruginosa
|
||||||
if (ab_missing(PIP) && !ab_missing(TZP)) {
|
|
||||||
# take pip/tazo if just pip is not available - many labs only test for pip/tazo because of availability on a Vitek card
|
|
||||||
PIP <- TZP
|
|
||||||
}
|
|
||||||
x$psae <- 0
|
x$psae <- 0
|
||||||
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, TOB) == "R" | col_values(x, AMK) == "R"), 1, 0)
|
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, TOB) == "R") | NA_as_FALSE(col_values(x, AMK) == "R"), 1, 0)
|
||||||
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, IPM) == "R" | col_values(x, MEM) == "R"), 1, 0)
|
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, IPM) == "R") | NA_as_FALSE(col_values(x, MEM) == "R"), 1, 0)
|
||||||
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, PIP) == "R"), 1, 0)
|
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, PIP) == "R") | NA_as_FALSE(col_values(x, TZP) == "R"), 1, 0)
|
||||||
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, CAZ) == "R"), 1, 0)
|
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, CAZ) == "R") | NA_as_FALSE(col_values(x, CZA) == "R"), 1, 0)
|
||||||
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, CIP) == "R" | col_values(x, NOR) == "R" | col_values(x, LVX) == "R"), 1, 0)
|
x$psae <- x$psae + ifelse(NA_as_FALSE(col_values(x, CIP) == "R") | NA_as_FALSE(col_values(x, NOR) == "R") | NA_as_FALSE(col_values(x, LVX) == "R"), 1, 0)
|
||||||
trans_tbl(
|
trans_tbl(
|
||||||
3,
|
1,
|
||||||
rows = which(x$genus == "Pseudomonas" & x$species == "aeruginosa"),
|
rows = which(x$genus == "Pseudomonas" & x$species == "aeruginosa"),
|
||||||
cols = c(CAZ, CIP, GEN, IPM, MEM, TOB, PIP),
|
cols = "any",
|
||||||
any_all = "all", # this will set all negatives to "guideline criteria not met" instead of "not covered by guideline"
|
any_all = "all", # this will set all negatives to "guideline criteria not met" instead of "not covered by guideline"
|
||||||
reason = "P. aeruginosa: at least 3 classes contain R"
|
reason = "guideline criteria not met"
|
||||||
)
|
)
|
||||||
trans_tbl(
|
trans_tbl(
|
||||||
3,
|
3,
|
||||||
rows = which(x$genus == "Pseudomonas" & x$species == "aeruginosa" & x$psae >= 3),
|
rows = which(x$genus == "Pseudomonas" & x$species == "aeruginosa" & x$psae >= 3),
|
||||||
cols = c(CAZ, CIP, GEN, IPM, MEM, TOB, PIP),
|
cols = "any",
|
||||||
any_all = "any", # this is the actual one, changing the ones with x$psae >= 3
|
any_all = "any", # this is the actual one, overwriting the ones with x$psae >= 3
|
||||||
reason = "P. aeruginosa: at least 3 classes contain R"
|
reason = "P. aeruginosa: at least 3 classes contain R"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1648,20 +1608,20 @@ mdro <- function(x = NULL,
|
|||||||
reason = "E. faecium: vanA/vanB gene + penicillin group"
|
reason = "E. faecium: vanA/vanB gene + penicillin group"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Staphylococcus aureus
|
# Staphylococcus aureus complex (= aureus, argenteus or schweitzeri)
|
||||||
trans_tbl(
|
trans_tbl(
|
||||||
2,
|
2,
|
||||||
rows = which(x$genus == "Staphylococcus" & x$species == "aureus" & (is.na(mecA) | is.na(mecC))),
|
rows = which(x$genus == "Staphylococcus" & x$species %in% c("aureus", "argenteus", "schweitzeri") & (is.na(mecA) | is.na(mecC))),
|
||||||
cols = c(AMC, TZP, FLC, OXA, FOX, FOX1),
|
cols = c(AMC, TZP, FLC, OXA, FOX, FOX1),
|
||||||
any_all = "any",
|
any_all = "any",
|
||||||
reason = "S. aureus: potential MRSA"
|
reason = "S. aureus complex: potential MRSA"
|
||||||
)
|
)
|
||||||
trans_tbl(
|
trans_tbl(
|
||||||
3,
|
3,
|
||||||
rows = which(x$genus == "Staphylococcus" & x$species == "aureus" & (mecA == TRUE | mecC == TRUE)),
|
rows = which(x$genus == "Staphylococcus" & x$species %in% c("aureus", "argenteus", "schweitzeri") & (mecA == TRUE | mecC == TRUE)),
|
||||||
cols = "any",
|
cols = "any",
|
||||||
any_all = "any",
|
any_all = "any",
|
||||||
reason = "S. aureus: mecA/mecC gene"
|
reason = "S. aureus complex: mecA/mecC gene"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Candida auris
|
# Candida auris
|
||||||
@@ -1935,7 +1895,6 @@ mdro <- function(x = NULL,
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (isTRUE(verbose)) {
|
if (isTRUE(verbose)) {
|
||||||
# fill in empty reasons
|
# fill in empty reasons
|
||||||
x$reason[is.na(x$reason)] <- "not covered by guideline"
|
x$reason[is.na(x$reason)] <- "not covered by guideline"
|
||||||
@@ -1943,12 +1902,14 @@ mdro <- function(x = NULL,
|
|||||||
# format data set
|
# format data set
|
||||||
colnames(x)[colnames(x) == col_mo] <- "microorganism"
|
colnames(x)[colnames(x) == col_mo] <- "microorganism"
|
||||||
x$microorganism <- mo_name(x$microorganism, language = NULL)
|
x$microorganism <- mo_name(x$microorganism, language = NULL)
|
||||||
|
x$guideline <- paste0(guideline$author, " - ", guideline$name, ", ", guideline$version, ")")
|
||||||
x[, c(
|
x[, c(
|
||||||
"row_number",
|
"row_number",
|
||||||
"microorganism",
|
"microorganism",
|
||||||
"MDRO",
|
"MDRO",
|
||||||
"reason",
|
"reason",
|
||||||
"columns_nonsusceptible"
|
"all_nonsusceptible_columns",
|
||||||
|
"guideline"
|
||||||
),
|
),
|
||||||
drop = FALSE
|
drop = FALSE
|
||||||
]
|
]
|
||||||
@@ -1959,182 +1920,7 @@ mdro <- function(x = NULL,
|
|||||||
|
|
||||||
#' @rdname mdro
|
#' @rdname mdro
|
||||||
#' @export
|
#' @export
|
||||||
custom_mdro_guideline <- function(..., as_factor = TRUE) {
|
brmo <- function(x = NULL, only_sir_columns = any(is.sir(x)), ...) {
|
||||||
meet_criteria(as_factor, allow_class = "logical", has_length = 1)
|
|
||||||
|
|
||||||
dots <- tryCatch(list(...),
|
|
||||||
error = function(e) "error"
|
|
||||||
)
|
|
||||||
stop_if(
|
|
||||||
identical(dots, "error"),
|
|
||||||
"rules must be a valid formula inputs (e.g., using '~'), see `?mdro`"
|
|
||||||
)
|
|
||||||
n_dots <- length(dots)
|
|
||||||
stop_if(n_dots == 0, "no custom rules were set. Please read the documentation using `?mdro`.")
|
|
||||||
out <- vector("list", n_dots)
|
|
||||||
for (i in seq_len(n_dots)) {
|
|
||||||
stop_ifnot(
|
|
||||||
inherits(dots[[i]], "formula"),
|
|
||||||
"rule ", i, " must be a valid formula input (e.g., using '~'), see `?mdro`"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Query
|
|
||||||
qry <- dots[[i]][[2]]
|
|
||||||
if (inherits(qry, "call")) {
|
|
||||||
qry <- as.expression(qry)
|
|
||||||
}
|
|
||||||
qry <- as.character(qry)
|
|
||||||
# these will prevent vectorisation, so replace them:
|
|
||||||
qry <- gsub("&&", "&", qry, fixed = TRUE)
|
|
||||||
qry <- gsub("||", "|", qry, fixed = TRUE)
|
|
||||||
# support filter()-like writing: custom_mdro_guideline('CIP == "R", AMX == "S"' ~ "result 1")
|
|
||||||
qry <- gsub(" *, *", " & ", qry)
|
|
||||||
# format nicely, setting spaces around operators
|
|
||||||
qry <- gsub(" *([&|+-/*^><==]+) *", " \\1 ", qry)
|
|
||||||
qry <- gsub("'", "\"", qry, fixed = TRUE)
|
|
||||||
out[[i]]$query <- as.expression(qry)
|
|
||||||
|
|
||||||
# Value
|
|
||||||
val <- tryCatch(eval(dots[[i]][[3]]), error = function(e) NULL)
|
|
||||||
stop_if(is.null(val), "rule ", i, " must return a valid value, it now returns an error: ", tryCatch(eval(dots[[i]][[3]]), error = function(e) e$message))
|
|
||||||
stop_if(length(val) > 1, "rule ", i, " must return a value of length 1, not ", length(val))
|
|
||||||
out[[i]]$value <- as.character(val)
|
|
||||||
}
|
|
||||||
|
|
||||||
names(out) <- paste0("rule", seq_len(n_dots))
|
|
||||||
out <- set_clean_class(out, new_class = c("custom_mdro_guideline", "list"))
|
|
||||||
attr(out, "values") <- unname(c("Negative", vapply(FUN.VALUE = character(1), unclass(out), function(x) x$value)))
|
|
||||||
attr(out, "as_factor") <- as_factor
|
|
||||||
out
|
|
||||||
}
|
|
||||||
|
|
||||||
#' @method c custom_mdro_guideline
|
|
||||||
#' @noRd
|
|
||||||
#' @export
|
|
||||||
c.custom_mdro_guideline <- function(x, ..., as_factor = NULL) {
|
|
||||||
if (length(list(...)) == 0) {
|
|
||||||
return(x)
|
|
||||||
}
|
|
||||||
if (!is.null(as_factor)) {
|
|
||||||
meet_criteria(as_factor, allow_class = "logical", has_length = 1)
|
|
||||||
} else {
|
|
||||||
as_factor <- attributes(x)$as_factor
|
|
||||||
}
|
|
||||||
for (g in list(...)) {
|
|
||||||
stop_ifnot(inherits(g, "custom_mdro_guideline"),
|
|
||||||
"for combining custom MDRO guidelines, all rules must be created with `custom_mdro_guideline()`",
|
|
||||||
call = FALSE
|
|
||||||
)
|
|
||||||
vals <- attributes(x)$values
|
|
||||||
if (!all(attributes(g)$values %in% vals)) {
|
|
||||||
vals <- unname(unique(c(vals, attributes(g)$values)))
|
|
||||||
}
|
|
||||||
attributes(g) <- NULL
|
|
||||||
x <- c(unclass(x), unclass(g))
|
|
||||||
attr(x, "values") <- vals
|
|
||||||
}
|
|
||||||
names(x) <- paste0("rule", seq_len(length(x)))
|
|
||||||
x <- set_clean_class(x, new_class = c("custom_mdro_guideline", "list"))
|
|
||||||
attr(x, "values") <- vals
|
|
||||||
attr(x, "as_factor") <- as_factor
|
|
||||||
x
|
|
||||||
}
|
|
||||||
|
|
||||||
#' @method as.list custom_mdro_guideline
|
|
||||||
#' @noRd
|
|
||||||
#' @export
|
|
||||||
as.list.custom_mdro_guideline <- function(x, ...) {
|
|
||||||
c(x, ...)
|
|
||||||
}
|
|
||||||
|
|
||||||
#' @method print custom_mdro_guideline
|
|
||||||
#' @export
|
|
||||||
#' @noRd
|
|
||||||
print.custom_mdro_guideline <- function(x, ...) {
|
|
||||||
cat("A set of custom MDRO rules:\n")
|
|
||||||
for (i in seq_len(length(x))) {
|
|
||||||
rule <- x[[i]]
|
|
||||||
rule$query <- format_custom_query_rule(rule$query)
|
|
||||||
cat(" ", i, ". ", font_bold("If "), font_blue(rule$query), font_bold(" then: "), font_red(rule$value), "\n", sep = "")
|
|
||||||
}
|
|
||||||
cat(" ", i + 1, ". ", font_bold("Otherwise: "), font_red(paste0("Negative")), "\n", sep = "")
|
|
||||||
cat("\nUnmatched rows will return ", font_red("NA"), ".\n", sep = "")
|
|
||||||
if (isTRUE(attributes(x)$as_factor)) {
|
|
||||||
cat("Results will be of class 'factor', with ordered levels: ", paste0(attributes(x)$values, collapse = " < "), "\n", sep = "")
|
|
||||||
} else {
|
|
||||||
cat("Results will be of class 'character'.\n")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
run_custom_mdro_guideline <- function(df, guideline, info) {
|
|
||||||
n_dots <- length(guideline)
|
|
||||||
stop_if(n_dots == 0, "no custom guidelines set", call = -2)
|
|
||||||
out <- character(length = NROW(df))
|
|
||||||
reasons <- character(length = NROW(df))
|
|
||||||
for (i in seq_len(n_dots)) {
|
|
||||||
qry <- tryCatch(eval(parse(text = guideline[[i]]$query), envir = df, enclos = parent.frame()),
|
|
||||||
error = function(e) {
|
|
||||||
AMR_env$err_msg <- e$message
|
|
||||||
return("error")
|
|
||||||
}
|
|
||||||
)
|
|
||||||
if (identical(qry, "error")) {
|
|
||||||
warning_("in `custom_mdro_guideline()`: rule ", i,
|
|
||||||
" (`", as.character(guideline[[i]]$query), "`) was ignored because of this error message: ",
|
|
||||||
AMR_env$err_msg,
|
|
||||||
call = FALSE,
|
|
||||||
add_fn = font_red
|
|
||||||
)
|
|
||||||
next
|
|
||||||
}
|
|
||||||
stop_ifnot(is.logical(qry), "in custom_mdro_guideline(): rule ", i, " (`", guideline[[i]]$query,
|
|
||||||
"`) must return `TRUE` or `FALSE`, not ",
|
|
||||||
format_class(class(qry), plural = FALSE),
|
|
||||||
call = FALSE
|
|
||||||
)
|
|
||||||
|
|
||||||
new_mdros <- which(qry == TRUE & out == "")
|
|
||||||
|
|
||||||
if (isTRUE(info)) {
|
|
||||||
cat(word_wrap(
|
|
||||||
"- Custom MDRO rule ", i, ": `", as.character(guideline[[i]]$query),
|
|
||||||
"` (", length(new_mdros), " rows matched)"
|
|
||||||
), "\n", sep = "")
|
|
||||||
}
|
|
||||||
val <- guideline[[i]]$value
|
|
||||||
out[new_mdros] <- val
|
|
||||||
reasons[new_mdros] <- paste0(
|
|
||||||
"matched rule ",
|
|
||||||
gsub("rule", "", names(guideline)[i], fixed = TRUE), ": ", as.character(guideline[[i]]$query)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
out[out == ""] <- "Negative"
|
|
||||||
reasons[out == "Negative"] <- "no rules matched"
|
|
||||||
|
|
||||||
if (isTRUE(attributes(guideline)$as_factor)) {
|
|
||||||
out <- factor(out, levels = attributes(guideline)$values, ordered = TRUE)
|
|
||||||
}
|
|
||||||
|
|
||||||
columns_nonsusceptible <- as.data.frame(t(df[, is.sir(df), drop = FALSE] == "R"))
|
|
||||||
columns_nonsusceptible <- vapply(
|
|
||||||
FUN.VALUE = character(1),
|
|
||||||
columns_nonsusceptible,
|
|
||||||
function(x) paste0(rownames(columns_nonsusceptible)[which(x)], collapse = " ")
|
|
||||||
)
|
|
||||||
columns_nonsusceptible[is.na(out)] <- NA_character_
|
|
||||||
|
|
||||||
data.frame(
|
|
||||||
row_number = seq_len(NROW(df)),
|
|
||||||
MDRO = out,
|
|
||||||
reason = reasons,
|
|
||||||
columns_nonsusceptible = columns_nonsusceptible,
|
|
||||||
stringsAsFactors = FALSE
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#' @rdname mdro
|
|
||||||
#' @export
|
|
||||||
brmo <- function(x = NULL, only_sir_columns = FALSE, ...) {
|
|
||||||
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
||||||
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
||||||
stop_if(
|
stop_if(
|
||||||
@@ -2147,7 +1933,7 @@ brmo <- function(x = NULL, only_sir_columns = FALSE, ...) {
|
|||||||
|
|
||||||
#' @rdname mdro
|
#' @rdname mdro
|
||||||
#' @export
|
#' @export
|
||||||
mrgn <- function(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...) {
|
mrgn <- function(x = NULL, only_sir_columns = any(is.sir(x)), verbose = FALSE, ...) {
|
||||||
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
||||||
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
||||||
stop_if(
|
stop_if(
|
||||||
@@ -2159,7 +1945,7 @@ mrgn <- function(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...) {
|
|||||||
|
|
||||||
#' @rdname mdro
|
#' @rdname mdro
|
||||||
#' @export
|
#' @export
|
||||||
mdr_tb <- function(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...) {
|
mdr_tb <- function(x = NULL, only_sir_columns = any(is.sir(x)), verbose = FALSE, ...) {
|
||||||
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
||||||
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
||||||
stop_if(
|
stop_if(
|
||||||
@@ -2171,19 +1957,19 @@ mdr_tb <- function(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...) {
|
|||||||
|
|
||||||
#' @rdname mdro
|
#' @rdname mdro
|
||||||
#' @export
|
#' @export
|
||||||
mdr_cmi2012 <- function(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...) {
|
mdr_cmi2012 <- function(x = NULL, only_sir_columns = any(is.sir(x)), verbose = FALSE, ...) {
|
||||||
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
||||||
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
||||||
stop_if(
|
stop_if(
|
||||||
"guideline" %in% names(list(...)),
|
"guideline" %in% names(list(...)),
|
||||||
"argument `guideline` must not be set since this is a guideline-specific function"
|
"argument `guideline` must not be set since this is a guideline-specific function"
|
||||||
)
|
)
|
||||||
mdro(x = x, only_sir_columns = only_sir_columns, verbose = verbose, guideline = "CMI2012", ...)
|
mdro(x = x, only_sir_columns = only_sir_columns, verbose = verbose, guideline = "CMI 2012", ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
#' @rdname mdro
|
#' @rdname mdro
|
||||||
#' @export
|
#' @export
|
||||||
eucast_exceptional_phenotypes <- function(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...) {
|
eucast_exceptional_phenotypes <- function(x = NULL, only_sir_columns = any(is.sir(x)), verbose = FALSE, ...) {
|
||||||
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE)
|
||||||
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
|
||||||
stop_if(
|
stop_if(
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#'
|
#'
|
||||||
#' Calculates a normalised mean for antimicrobial resistance between multiple observations, to help to identify similar isolates without comparing antibiograms by hand.
|
#' Calculates a normalised mean for antimicrobial resistance between multiple observations, to help to identify similar isolates without comparing antibiograms by hand.
|
||||||
#' @param x A vector of class [sir][as.sir()], [mic][as.mic()] or [disk][as.disk()], or a [data.frame] containing columns of any of these classes.
|
#' @param x A vector of class [sir][as.sir()], [mic][as.mic()] or [disk][as.disk()], or a [data.frame] containing columns of any of these classes.
|
||||||
#' @param ... Variables to select. Supports [tidyselect language][tidyselect::language] (such as `column1:column4` and `where(is.mic)`), and can thus also be [antimicrobial selectors][amr_selector()].
|
#' @param ... Variables to select. Supports [tidyselect language][tidyselect::starts_with()] such as `where(is.mic)`, `starts_with(...)`, or `column1:column4`, and can thus also be [antimicrobial selectors][amr_selector()].
|
||||||
#' @param combine_SI A [logical] to indicate whether all values of S, SDD, and I must be merged into one, so the input only consists of S+I vs. R (susceptible vs. resistant) - the default is `TRUE`.
|
#' @param combine_SI A [logical] to indicate whether all values of S, SDD, and I must be merged into one, so the input only consists of S+I vs. R (susceptible vs. resistant) - the default is `TRUE`.
|
||||||
#' @details The mean AMR distance is effectively [the Z-score](https://en.wikipedia.org/wiki/Standard_score); a normalised numeric value to compare AMR test results which can help to identify similar isolates, without comparing antibiograms by hand.
|
#' @details The mean AMR distance is effectively [the Z-score](https://en.wikipedia.org/wiki/Standard_score); a normalised numeric value to compare AMR test results which can help to identify similar isolates, without comparing antibiograms by hand.
|
||||||
#'
|
#'
|
||||||
|
|||||||
25
R/mic.R
25
R/mic.R
@@ -214,8 +214,8 @@ as.mic <- function(x, na.rm = FALSE, keep_operators = "all") {
|
|||||||
x <- gsub("=>", ">=", x, fixed = TRUE)
|
x <- gsub("=>", ">=", x, fixed = TRUE)
|
||||||
# Remove leading == and =
|
# Remove leading == and =
|
||||||
x <- gsub("^=+", "", x)
|
x <- gsub("^=+", "", x)
|
||||||
# retrieve signs and remove them from input
|
# retrieve operators and remove them from input
|
||||||
x_signs <- trimws(gsub("[^>=<]", "", x))
|
x_operators <- trimws(gsub("[^>=<]", "", x))
|
||||||
x <- trimws(gsub("[>=<]", "", x))
|
x <- trimws(gsub("[>=<]", "", x))
|
||||||
# dots without a leading zero must start with 0
|
# dots without a leading zero must start with 0
|
||||||
x <- gsub("([^0-9]|^)[.]", "\\10.", x, perl = TRUE)
|
x <- gsub("([^0-9]|^)[.]", "\\10.", x, perl = TRUE)
|
||||||
@@ -238,8 +238,8 @@ as.mic <- function(x, na.rm = FALSE, keep_operators = "all") {
|
|||||||
x <- gsub("[.]$", "", x, perl = TRUE)
|
x <- gsub("[.]$", "", x, perl = TRUE)
|
||||||
# remove scientific notation
|
# remove scientific notation
|
||||||
x[x %like% "[0-9]e[-]?[0-9]"] <- trimws(format(suppressWarnings(as.double(x[x %like% "[0-9]e[-]?[0-9]"])), scientific = FALSE))
|
x[x %like% "[0-9]e[-]?[0-9]"] <- trimws(format(suppressWarnings(as.double(x[x %like% "[0-9]e[-]?[0-9]"])), scientific = FALSE))
|
||||||
# add signs again
|
# add operators again
|
||||||
x <- paste0(x_signs, x)
|
x <- paste0(x_operators, x)
|
||||||
# remove NAs introduced by format()
|
# remove NAs introduced by format()
|
||||||
x <- gsub("(NA)+", "", x)
|
x <- gsub("(NA)+", "", x)
|
||||||
# trim it
|
# trim it
|
||||||
@@ -422,7 +422,8 @@ all_valid_mics <- function(x) {
|
|||||||
!any(is.na(x_mic)) && !all(is.na(x))
|
!any(is.na(x_mic)) && !all(is.na(x))
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, mic)
|
||||||
pillar_shaft.mic <- function(x, ...) {
|
pillar_shaft.mic <- function(x, ...) {
|
||||||
if (!identical(levels(x), VALID_MIC_LEVELS) && message_not_thrown_before("pillar_shaft.mic")) {
|
if (!identical(levels(x), VALID_MIC_LEVELS) && message_not_thrown_before("pillar_shaft.mic")) {
|
||||||
warning_(AMR_env$sup_1_icon, " These columns contain an outdated or altered structure - convert with `as.mic()` to update",
|
warning_(AMR_env$sup_1_icon, " These columns contain an outdated or altered structure - convert with `as.mic()` to update",
|
||||||
@@ -431,15 +432,22 @@ pillar_shaft.mic <- function(x, ...) {
|
|||||||
}
|
}
|
||||||
crude_numbers <- as.double(x)
|
crude_numbers <- as.double(x)
|
||||||
operators <- gsub("[^<=>]+", "", as.character(x))
|
operators <- gsub("[^<=>]+", "", as.character(x))
|
||||||
|
# colourise operators
|
||||||
operators[!is.na(operators) & operators != ""] <- font_silver(operators[!is.na(operators) & operators != ""], collapse = NULL)
|
operators[!is.na(operators) & operators != ""] <- font_silver(operators[!is.na(operators) & operators != ""], collapse = NULL)
|
||||||
out <- trimws(paste0(operators, trimws(format(crude_numbers))))
|
out <- trimws(paste0(operators, trimws(format(crude_numbers))))
|
||||||
out[is.na(x)] <- font_na(NA)
|
out[is.na(x)] <- font_na(NA)
|
||||||
# make trailing zeroes less visible
|
# make trailing zeroes less visible
|
||||||
out[out %like% "[.]"] <- gsub("([.]?0+)$", font_silver("\\1"), out[out %like% "[.]"], perl = TRUE)
|
if (is_dark()) {
|
||||||
|
fn <- font_silver
|
||||||
|
} else {
|
||||||
|
fn <- font_white
|
||||||
|
}
|
||||||
|
out[out %like% "[.]"] <- gsub("([.]?0+)$", fn("\\1"), out[out %like% "[.]"], perl = TRUE)
|
||||||
create_pillar_column(out, align = "right", width = max(nchar(font_stripstyle(out))))
|
create_pillar_column(out, align = "right", width = max(nchar(font_stripstyle(out))))
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::type_sum, mic)
|
||||||
type_sum.mic <- function(x, ...) {
|
type_sum.mic <- function(x, ...) {
|
||||||
if (!identical(levels(x), VALID_MIC_LEVELS)) {
|
if (!identical(levels(x), VALID_MIC_LEVELS)) {
|
||||||
paste0("mic", AMR_env$sup_1_icon)
|
paste0("mic", AMR_env$sup_1_icon)
|
||||||
@@ -582,7 +590,8 @@ hist.mic <- function(x, ...) {
|
|||||||
hist(log2(x))
|
hist(log2(x))
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(skimr::get_skimmers, mic)
|
||||||
get_skimmers.mic <- function(column) {
|
get_skimmers.mic <- function(column) {
|
||||||
column <- as.mic(column) # make sure that currently implemented MIC levels are used
|
column <- as.mic(column) # make sure that currently implemented MIC levels are used
|
||||||
skimr::sfl(
|
skimr::sfl(
|
||||||
|
|||||||
25
R/mo.R
25
R/mo.R
@@ -276,12 +276,17 @@ as.mo <- function(x,
|
|||||||
AMR_env$mo_failures <- NULL
|
AMR_env$mo_failures <- NULL
|
||||||
|
|
||||||
# Laboratory systems: remove (translated) entries like "no growth", "not E. coli", etc.
|
# Laboratory systems: remove (translated) entries like "no growth", "not E. coli", etc.
|
||||||
x[trimws2(x) %like% translate_into_language("no .*growth", language = language)] <- NA_character_
|
x[trimws2(x) %like% translate_AMR("no .*growth", language = language)] <- NA_character_
|
||||||
x[trimws2(x) %like% paste0("^(", translate_into_language("no|not", language = language), ") ")] <- NA_character_
|
x[trimws2(x) %like% paste0("^(", translate_AMR("no|not", language = language), ") ")] <- NA_character_
|
||||||
|
|
||||||
# groups are in our taxonomic table with a capital G
|
# groups are in our taxonomic table with a capital G
|
||||||
x <- gsub(" group( |$)", " Group\\1", x, perl = TRUE)
|
x <- gsub(" group( |$)", " Group\\1", x, perl = TRUE)
|
||||||
|
|
||||||
|
# convert translations
|
||||||
|
x[x %like_case% "enter[o\u00F6]?[ck]o[ck](ken)?$"] <- gsub("(.* )?enter[o\u00F6]?[ck]o[ck](ken)?$", "enterococcus", x[x %like_case% "enter[o\u00F6]?[ck]o[ck](ken)?$"], perl = TRUE)
|
||||||
|
x[x %like_case% "strept[o\u00F6]?[ck]o[ck](ken)?$"] <- gsub("(.* )?strept[o\u00F6]?[ck]o[ck](ken)?$", "streptococcus", x[x %like_case% "strept[o\u00F6]?[ck]o[ck](ken)?$"], perl = TRUE)
|
||||||
|
x[x %like_case% "staph[yij]?[lo]*[ck]o[ck](ken)?$"] <- gsub("(.* )?staph[yij]?[lo]*[ck]o[ck](ken)?$", "staphylococcus", x[x %like_case% "staph[yij]?[lo]*[ck]o[ck](ken)?$"], perl = TRUE)
|
||||||
|
|
||||||
# run over all unique leftovers
|
# run over all unique leftovers
|
||||||
x_unique <- unique(x[is.na(out) & !is.na(x)])
|
x_unique <- unique(x[is.na(out) & !is.na(x)])
|
||||||
|
|
||||||
@@ -620,7 +625,8 @@ mo_cleaning_regex <- function() {
|
|||||||
|
|
||||||
# UNDOCUMENTED METHODS ----------------------------------------------------
|
# UNDOCUMENTED METHODS ----------------------------------------------------
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::pillar_shaft, mo)
|
||||||
pillar_shaft.mo <- function(x, ...) {
|
pillar_shaft.mo <- function(x, ...) {
|
||||||
add_MO_lookup_to_AMR_env()
|
add_MO_lookup_to_AMR_env()
|
||||||
out <- trimws(format(x))
|
out <- trimws(format(x))
|
||||||
@@ -690,12 +696,14 @@ pillar_shaft.mo <- function(x, ...) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(pillar::type_sum, mo)
|
||||||
type_sum.mo <- function(x, ...) {
|
type_sum.mo <- function(x, ...) {
|
||||||
"mo"
|
"mo"
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(cleaner::freq, mo)
|
||||||
freq.mo <- function(x, ...) {
|
freq.mo <- function(x, ...) {
|
||||||
x_noNA <- as.mo(x[!is.na(x)]) # as.mo() to get the newest mo codes
|
x_noNA <- as.mo(x[!is.na(x)]) # as.mo() to get the newest mo codes
|
||||||
grams <- mo_gramstain(x_noNA, language = NULL)
|
grams <- mo_gramstain(x_noNA, language = NULL)
|
||||||
@@ -736,7 +744,8 @@ freq.mo <- function(x, ...) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(skimr::get_skimmers, mo)
|
||||||
get_skimmers.mo <- function(column) {
|
get_skimmers.mo <- function(column) {
|
||||||
skimr::sfl(
|
skimr::sfl(
|
||||||
skim_type = "mo",
|
skim_type = "mo",
|
||||||
@@ -1061,6 +1070,8 @@ convert_colloquial_input <- function(x) {
|
|||||||
out[x %like_case% "mil+er+i gr"] <- "B_STRPT_MILL"
|
out[x %like_case% "mil+er+i gr"] <- "B_STRPT_MILL"
|
||||||
out[x %like_case% "((strepto|^s).* viridans|^vgs[^a-z]*$)"] <- "B_STRPT_VIRI"
|
out[x %like_case% "((strepto|^s).* viridans|^vgs[^a-z]*$)"] <- "B_STRPT_VIRI"
|
||||||
out[x %like_case% "(viridans.* (strepto|^s).*|^vgs[^a-z]*$)"] <- "B_STRPT_VIRI"
|
out[x %like_case% "(viridans.* (strepto|^s).*|^vgs[^a-z]*$)"] <- "B_STRPT_VIRI"
|
||||||
|
out[x %like_case% "meningo[ck]o[ck](ken)?$"] <- "B_NESSR_MNNG"
|
||||||
|
out[x %like_case% "pneumo[ck]o[ck](ken)?$"] <- "B_STRPT_PNMN"
|
||||||
|
|
||||||
# Salmonella in different languages, like "Salmonella grupo B"
|
# Salmonella in different languages, like "Salmonella grupo B"
|
||||||
out[x %like_case% "salmonella.* [abcdefgh]$"] <- gsub(".*salmonella.* ([abcdefgh])$",
|
out[x %like_case% "salmonella.* [abcdefgh]$"] <- gsub(".*salmonella.* ([abcdefgh])$",
|
||||||
@@ -1175,7 +1186,7 @@ parse_and_convert <- function(x) {
|
|||||||
parsed <- gsub('"', "", parsed, fixed = TRUE)
|
parsed <- gsub('"', "", parsed, fixed = TRUE)
|
||||||
parsed
|
parsed
|
||||||
},
|
},
|
||||||
error = function(e) stop(e$message, call. = FALSE)
|
error = function(e) stop(conditionMessage(e), call. = FALSE)
|
||||||
) # this will also be thrown when running `as.mo(no_existing_object)`
|
) # this will also be thrown when running `as.mo(no_existing_object)`
|
||||||
}
|
}
|
||||||
out <- trimws2(out)
|
out <- trimws2(out)
|
||||||
|
|||||||
@@ -974,7 +974,7 @@ mo_validate <- function(x, property, language, keep_synonyms = keep_synonyms, ..
|
|||||||
# try to catch an error when inputting an invalid argument
|
# try to catch an error when inputting an invalid argument
|
||||||
# so the 'call.' can be set to FALSE
|
# so the 'call.' can be set to FALSE
|
||||||
tryCatch(x[1L] %in% unlist(AMR_env$MO_lookup[1, property, drop = TRUE]),
|
tryCatch(x[1L] %in% unlist(AMR_env$MO_lookup[1, property, drop = TRUE]),
|
||||||
error = function(e) stop(e$message, call. = FALSE)
|
error = function(e) stop(conditionMessage(e), call. = FALSE)
|
||||||
)
|
)
|
||||||
|
|
||||||
dots <- list(...)
|
dots <- list(...)
|
||||||
|
|||||||
2
R/pca.R
2
R/pca.R
@@ -99,7 +99,7 @@ pca <- function(x,
|
|||||||
new_list <- list(0)
|
new_list <- list(0)
|
||||||
for (i in seq_len(length(dots) - 1)) {
|
for (i in seq_len(length(dots) - 1)) {
|
||||||
new_list[[i]] <- tryCatch(eval(dots[[i + 1]], envir = x),
|
new_list[[i]] <- tryCatch(eval(dots[[i + 1]], envir = x),
|
||||||
error = function(e) stop(e$message, call. = FALSE)
|
error = function(e) stop(conditionMessage(e), call. = FALSE)
|
||||||
)
|
)
|
||||||
if (length(new_list[[i]]) == 1) {
|
if (length(new_list[[i]]) == 1) {
|
||||||
if (is.character(new_list[[i]]) && new_list[[i]] %in% colnames(x)) {
|
if (is.character(new_list[[i]]) && new_list[[i]] %in% colnames(x)) {
|
||||||
|
|||||||
356
R/plotting.R
356
R/plotting.R
@@ -52,7 +52,7 @@
|
|||||||
#' @details
|
#' @details
|
||||||
#' ### The `scale_*_mic()` Functions
|
#' ### The `scale_*_mic()` Functions
|
||||||
#'
|
#'
|
||||||
#' The functions [scale_x_mic()], [scale_y_mic()], [scale_colour_mic()], and [scale_fill_mic()] functions allow to plot the [mic][as.mic()] class (MIC values) on a continuous, logarithmic scale. They also allow to rescale the MIC range with an 'inside' or 'outside' range if required, and retain the signs in MIC values if desired. Missing intermediate log2 levels will be plotted too.
|
#' The functions [scale_x_mic()], [scale_y_mic()], [scale_colour_mic()], and [scale_fill_mic()] functions allow to plot the [mic][as.mic()] class (MIC values) on a continuous, logarithmic scale. They also allow to rescale the MIC range with an 'inside' or 'outside' range if required, and retain the operators in MIC values (such as `>=`) if desired. Missing intermediate log2 levels will be plotted too.
|
||||||
#'
|
#'
|
||||||
#' ### The `scale_*_sir()` Functions
|
#' ### The `scale_*_sir()` Functions
|
||||||
#'
|
#'
|
||||||
@@ -90,7 +90,11 @@
|
|||||||
#' autoplot(some_mic_values, mo = "Escherichia coli", ab = "cipro")
|
#' autoplot(some_mic_values, mo = "Escherichia coli", ab = "cipro")
|
||||||
#' }
|
#' }
|
||||||
#' if (require("ggplot2")) {
|
#' if (require("ggplot2")) {
|
||||||
#' # support for 20 languages, various guidelines, and many options
|
#' autoplot(some_mic_values, mo = "Staph aureus", ab = "Ceftaroline", guideline = "CLSI")
|
||||||
|
#' }
|
||||||
|
#'
|
||||||
|
#' if (require("ggplot2")) {
|
||||||
|
#' # support for 27 languages, various guidelines, and many options
|
||||||
#' autoplot(some_disk_values,
|
#' autoplot(some_disk_values,
|
||||||
#' mo = "Escherichia coli", ab = "cipro",
|
#' mo = "Escherichia coli", ab = "cipro",
|
||||||
#' guideline = "CLSI 2024", language = "no",
|
#' guideline = "CLSI 2024", language = "no",
|
||||||
@@ -146,7 +150,7 @@
|
|||||||
#' aes(group, mic)
|
#' aes(group, mic)
|
||||||
#' ) +
|
#' ) +
|
||||||
#' geom_boxplot() +
|
#' geom_boxplot() +
|
||||||
#' geom_violin(linetype = 2, colour = "grey", fill = NA) +
|
#' geom_violin(linetype = 2, colour = "grey30", fill = NA) +
|
||||||
#' scale_y_mic()
|
#' scale_y_mic()
|
||||||
#' }
|
#' }
|
||||||
#' if (require("ggplot2")) {
|
#' if (require("ggplot2")) {
|
||||||
@@ -158,7 +162,7 @@
|
|||||||
#' aes(group, mic)
|
#' aes(group, mic)
|
||||||
#' ) +
|
#' ) +
|
||||||
#' geom_boxplot() +
|
#' geom_boxplot() +
|
||||||
#' geom_violin(linetype = 2, colour = "grey", fill = NA) +
|
#' geom_violin(linetype = 2, colour = "grey30", fill = NA) +
|
||||||
#' scale_y_mic(mic_range = c(NA, 0.25))
|
#' scale_y_mic(mic_range = c(NA, 0.25))
|
||||||
#' }
|
#' }
|
||||||
#'
|
#'
|
||||||
@@ -191,7 +195,7 @@
|
|||||||
#' aes(x = group, y = mic, colour = sir)
|
#' aes(x = group, y = mic, colour = sir)
|
||||||
#' ) +
|
#' ) +
|
||||||
#' theme_minimal() +
|
#' theme_minimal() +
|
||||||
#' geom_boxplot(fill = NA, colour = "grey") +
|
#' geom_boxplot(fill = NA, colour = "grey30") +
|
||||||
#' geom_jitter(width = 0.25)
|
#' geom_jitter(width = 0.25)
|
||||||
#'
|
#'
|
||||||
#' plain
|
#' plain
|
||||||
@@ -207,7 +211,7 @@
|
|||||||
#' scale_y_mic(mic_range = c(0.005, 32), name = "Our MICs!") +
|
#' scale_y_mic(mic_range = c(0.005, 32), name = "Our MICs!") +
|
||||||
#' scale_colour_sir(
|
#' scale_colour_sir(
|
||||||
#' language = "pt",
|
#' language = "pt",
|
||||||
#' name = "Support in 20 languages"
|
#' name = "Support in 27 languages"
|
||||||
#' )
|
#' )
|
||||||
#' }
|
#' }
|
||||||
#' }
|
#' }
|
||||||
@@ -244,11 +248,13 @@ create_scale_mic <- function(aest, keep_operators, mic_range = NULL, ...) {
|
|||||||
}
|
}
|
||||||
scale$transform_df <- function(self, df) {
|
scale$transform_df <- function(self, df) {
|
||||||
if (!aest %in% colnames(df)) {
|
if (!aest %in% colnames(df)) {
|
||||||
# support for geom_hline() and geom_vline()
|
# support for geom_hline(), geom_vline(), etc
|
||||||
if ("yintercept" %in% colnames(df)) {
|
other_x <- c("xintercept", "xmin", "xmax", "xend", "width")
|
||||||
aest_val <- "yintercept"
|
other_y <- c("yintercept", "ymin", "ymax", "yend", "height")
|
||||||
} else if ("xintercept" %in% colnames(df)) {
|
if (any(other_y %in% colnames(df))) {
|
||||||
aest_val <- "xintercept"
|
aest_val <- intersect(other_y, colnames(df))[1]
|
||||||
|
} else if (any(other_x %in% colnames(df))) {
|
||||||
|
aest_val <- intersect(other_x, colnames(df))[1]
|
||||||
} else {
|
} else {
|
||||||
stop_("No support for plotting df with `scale_", aest, "_mic()` with columns ", vector_and(colnames(df), sort = FALSE))
|
stop_("No support for plotting df with `scale_", aest, "_mic()` with columns ", vector_and(colnames(df), sort = FALSE))
|
||||||
}
|
}
|
||||||
@@ -375,6 +381,8 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) {
|
|||||||
args <- list(...)
|
args <- list(...)
|
||||||
args[c("value", "labels", "limits")] <- NULL
|
args[c("value", "labels", "limits")] <- NULL
|
||||||
|
|
||||||
|
colours_SIR <- expand_SIR_colours(colours_SIR, unname = FALSE)
|
||||||
|
|
||||||
if (identical(aesthetics, "x")) {
|
if (identical(aesthetics, "x")) {
|
||||||
ggplot_fn <- ggplot2::scale_x_discrete
|
ggplot_fn <- ggplot2::scale_x_discrete
|
||||||
} else {
|
} else {
|
||||||
@@ -383,24 +391,19 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) {
|
|||||||
args,
|
args,
|
||||||
list(
|
list(
|
||||||
aesthetics = aesthetics,
|
aesthetics = aesthetics,
|
||||||
values = c(
|
values = c(colours_SIR, NI = "grey30")
|
||||||
S = colours_SIR[1],
|
|
||||||
SDD = colours_SIR[2],
|
|
||||||
I = colours_SIR[2],
|
|
||||||
R = colours_SIR[3],
|
|
||||||
NI = "grey30"
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
scale <- do.call(ggplot_fn, args)
|
scale <- do.call(ggplot_fn, args)
|
||||||
|
|
||||||
scale$labels <- function(x) {
|
scale$labels <- function(x) {
|
||||||
stop_ifnot(all(x %in% c(levels(NA_sir_), NA)),
|
stop_ifnot(all(x %in% c(levels(NA_sir_), "SI", "IR", NA)),
|
||||||
"Apply `scale_", aesthetics[1], "_sir()` to a variable of class 'sir', see `?as.sir`.",
|
"Apply `scale_", aesthetics[1], "_sir()` to a variable of class 'sir', see `?as.sir`.",
|
||||||
call = FALSE
|
call = FALSE
|
||||||
)
|
)
|
||||||
x <- as.character(as.sir(x))
|
x <- as.character(x)
|
||||||
|
x[!x %in% c("SI", "IR")] <- as.character(as.sir(x[!x %in% c("SI", "IR")]))
|
||||||
if (!is.null(language)) {
|
if (!is.null(language)) {
|
||||||
x[x == "S"] <- "(S) Susceptible"
|
x[x == "S"] <- "(S) Susceptible"
|
||||||
x[x == "SDD"] <- "(SDD) Susceptible dose-dependent"
|
x[x == "SDD"] <- "(SDD) Susceptible dose-dependent"
|
||||||
@@ -410,14 +413,16 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) {
|
|||||||
x[x == "I"] <- "(I) Intermediate"
|
x[x == "I"] <- "(I) Intermediate"
|
||||||
}
|
}
|
||||||
x[x == "R"] <- "(R) Resistant"
|
x[x == "R"] <- "(R) Resistant"
|
||||||
x[x == "NI"] <- "(NI) Not interpretable"
|
x[x == "SI"] <- "(S/I) Susceptible"
|
||||||
|
x[x == "IR"] <- "(I/R) Non-susceptible"
|
||||||
|
x[x == "NI"] <- "(NI) Non-interpretable"
|
||||||
x <- translate_AMR(x, language = language)
|
x <- translate_AMR(x, language = language)
|
||||||
}
|
}
|
||||||
x
|
x
|
||||||
}
|
}
|
||||||
scale$limits <- function(x, ...) {
|
scale$limits <- function(x, ...) {
|
||||||
# force SIR in the right order
|
# force SIR in the right order
|
||||||
as.character(sort(factor(x, levels = levels(NA_sir_))))
|
as.character(sort(factor(x, levels = c(levels(NA_sir_), "SI", "IR"))))
|
||||||
}
|
}
|
||||||
|
|
||||||
scale
|
scale
|
||||||
@@ -425,11 +430,16 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) {
|
|||||||
|
|
||||||
#' @rdname plot
|
#' @rdname plot
|
||||||
#' @export
|
#' @export
|
||||||
scale_x_sir <- function(colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
scale_x_sir <- function(colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
eucast_I = getOption("AMR_guideline", "EUCAST") == "EUCAST",
|
eucast_I = getOption("AMR_guideline", "EUCAST") == "EUCAST",
|
||||||
...) {
|
...) {
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(eucast_I, allow_class = "logical", has_length = 1)
|
meet_criteria(eucast_I, allow_class = "logical", has_length = 1)
|
||||||
create_scale_sir(aesthetics = "x", colours_SIR = colours_SIR, language = language, eucast_I = eucast_I)
|
create_scale_sir(aesthetics = "x", colours_SIR = colours_SIR, language = language, eucast_I = eucast_I)
|
||||||
@@ -437,11 +447,16 @@ scale_x_sir <- function(colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
|||||||
|
|
||||||
#' @rdname plot
|
#' @rdname plot
|
||||||
#' @export
|
#' @export
|
||||||
scale_colour_sir <- function(colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
scale_colour_sir <- function(colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
eucast_I = getOption("AMR_guideline", "EUCAST") == "EUCAST",
|
eucast_I = getOption("AMR_guideline", "EUCAST") == "EUCAST",
|
||||||
...) {
|
...) {
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(eucast_I, allow_class = "logical", has_length = 1)
|
meet_criteria(eucast_I, allow_class = "logical", has_length = 1)
|
||||||
args <- list(...)
|
args <- list(...)
|
||||||
@@ -461,11 +476,16 @@ scale_color_sir <- scale_colour_sir
|
|||||||
|
|
||||||
#' @rdname plot
|
#' @rdname plot
|
||||||
#' @export
|
#' @export
|
||||||
scale_fill_sir <- function(colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
scale_fill_sir <- function(colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
eucast_I = getOption("AMR_guideline", "EUCAST") == "EUCAST",
|
eucast_I = getOption("AMR_guideline", "EUCAST") == "EUCAST",
|
||||||
...) {
|
...) {
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(eucast_I, allow_class = "logical", has_length = 1)
|
meet_criteria(eucast_I, allow_class = "logical", has_length = 1)
|
||||||
args <- list(...)
|
args <- list(...)
|
||||||
@@ -489,7 +509,12 @@ plot.mic <- function(x,
|
|||||||
main = deparse(substitute(x)),
|
main = deparse(substitute(x)),
|
||||||
ylab = translate_AMR("Frequency", language = language),
|
ylab = translate_AMR("Frequency", language = language),
|
||||||
xlab = translate_AMR("Minimum Inhibitory Concentration (mg/L)", language = language),
|
xlab = translate_AMR("Minimum Inhibitory Concentration (mg/L)", language = language),
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
expand = TRUE,
|
expand = TRUE,
|
||||||
include_PKPD = getOption("AMR_include_PKPD", TRUE),
|
include_PKPD = getOption("AMR_include_PKPD", TRUE),
|
||||||
@@ -501,16 +526,13 @@ plot.mic <- function(x,
|
|||||||
meet_criteria(main, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
meet_criteria(main, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
||||||
meet_criteria(ylab, allow_class = "character", has_length = 1)
|
meet_criteria(ylab, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(xlab, allow_class = "character", has_length = 1)
|
meet_criteria(xlab, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
x <- as.mic(x) # make sure that currently implemented MIC levels are used
|
x <- as.mic(x) # make sure that currently implemented MIC levels are used
|
||||||
|
|
||||||
if (length(colours_SIR) == 1) {
|
|
||||||
colours_SIR <- rep(colours_SIR, 3)
|
|
||||||
}
|
|
||||||
main <- gsub(" +", " ", paste0(main, collapse = " "))
|
main <- gsub(" +", " ", paste0(main, collapse = " "))
|
||||||
|
colours_SIR <- expand_SIR_colours(colours_SIR)
|
||||||
|
|
||||||
x <- plotrange_as_table(x, expand = expand)
|
x <- plotrange_as_table(x, expand = expand)
|
||||||
cols_sub <- plot_colours_subtitle_guideline(
|
cols_sub <- plot_colours_subtitle_guideline(
|
||||||
@@ -547,13 +569,17 @@ plot.mic <- function(x,
|
|||||||
legend_col <- colours_SIR[1]
|
legend_col <- colours_SIR[1]
|
||||||
}
|
}
|
||||||
if (any(cols_sub$cols == colours_SIR[2] & cols_sub$count > 0)) {
|
if (any(cols_sub$cols == colours_SIR[2] & cols_sub$count > 0)) {
|
||||||
legend_txt <- c(legend_txt, paste("(I)", plot_name_of_I(cols_sub$guideline)))
|
legend_txt <- c(legend_txt, "(SDD) Susceptible dose-dependent")
|
||||||
legend_col <- c(legend_col, colours_SIR[2])
|
legend_col <- c(legend_col, colours_SIR[2])
|
||||||
}
|
}
|
||||||
if (any(cols_sub$cols == colours_SIR[3] & cols_sub$count > 0)) {
|
if (any(cols_sub$cols == colours_SIR[3] & cols_sub$count > 0)) {
|
||||||
legend_txt <- c(legend_txt, "(R) Resistant")
|
legend_txt <- c(legend_txt, paste("(I)", plot_name_of_I(cols_sub$guideline)))
|
||||||
legend_col <- c(legend_col, colours_SIR[3])
|
legend_col <- c(legend_col, colours_SIR[3])
|
||||||
}
|
}
|
||||||
|
if (any(cols_sub$cols == colours_SIR[4] & cols_sub$count > 0)) {
|
||||||
|
legend_txt <- c(legend_txt, "(R) Resistant")
|
||||||
|
legend_col <- c(legend_col, colours_SIR[4])
|
||||||
|
}
|
||||||
|
|
||||||
legend("top",
|
legend("top",
|
||||||
x.intersp = 0.5,
|
x.intersp = 0.5,
|
||||||
@@ -578,7 +604,12 @@ barplot.mic <- function(height,
|
|||||||
main = deparse(substitute(height)),
|
main = deparse(substitute(height)),
|
||||||
ylab = translate_AMR("Frequency", language = language),
|
ylab = translate_AMR("Frequency", language = language),
|
||||||
xlab = translate_AMR("Minimum Inhibitory Concentration (mg/L)", language = language),
|
xlab = translate_AMR("Minimum Inhibitory Concentration (mg/L)", language = language),
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
expand = TRUE,
|
expand = TRUE,
|
||||||
...) {
|
...) {
|
||||||
@@ -588,7 +619,7 @@ barplot.mic <- function(height,
|
|||||||
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE)
|
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE)
|
||||||
meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE)
|
meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE)
|
||||||
meet_criteria(guideline, allow_class = "character", has_length = 1)
|
meet_criteria(guideline, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
@@ -611,7 +642,8 @@ barplot.mic <- function(height,
|
|||||||
|
|
||||||
#' @method autoplot mic
|
#' @method autoplot mic
|
||||||
#' @rdname plot
|
#' @rdname plot
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, mic)
|
||||||
autoplot.mic <- function(object,
|
autoplot.mic <- function(object,
|
||||||
mo = NULL,
|
mo = NULL,
|
||||||
ab = NULL,
|
ab = NULL,
|
||||||
@@ -619,7 +651,12 @@ autoplot.mic <- function(object,
|
|||||||
title = deparse(substitute(object)),
|
title = deparse(substitute(object)),
|
||||||
ylab = translate_AMR("Frequency", language = language),
|
ylab = translate_AMR("Frequency", language = language),
|
||||||
xlab = translate_AMR("Minimum Inhibitory Concentration (mg/L)", language = language),
|
xlab = translate_AMR("Minimum Inhibitory Concentration (mg/L)", language = language),
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
expand = TRUE,
|
expand = TRUE,
|
||||||
include_PKPD = getOption("AMR_include_PKPD", TRUE),
|
include_PKPD = getOption("AMR_include_PKPD", TRUE),
|
||||||
@@ -632,7 +669,7 @@ autoplot.mic <- function(object,
|
|||||||
meet_criteria(title, allow_class = "character", allow_NULL = TRUE)
|
meet_criteria(title, allow_class = "character", allow_NULL = TRUE)
|
||||||
meet_criteria(ylab, allow_class = "character", has_length = 1)
|
meet_criteria(ylab, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(xlab, allow_class = "character", has_length = 1)
|
meet_criteria(xlab, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
@@ -643,6 +680,8 @@ autoplot.mic <- function(object,
|
|||||||
title <- gsub(" +", " ", paste0(title, collapse = " "))
|
title <- gsub(" +", " ", paste0(title, collapse = " "))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
colours_SIR <- expand_SIR_colours(colours_SIR)
|
||||||
|
|
||||||
object <- as.mic(object) # make sure that currently implemented MIC levels are used
|
object <- as.mic(object) # make sure that currently implemented MIC levels are used
|
||||||
x <- plotrange_as_table(object, expand = expand)
|
x <- plotrange_as_table(object, expand = expand)
|
||||||
cols_sub <- plot_colours_subtitle_guideline(
|
cols_sub <- plot_colours_subtitle_guideline(
|
||||||
@@ -662,12 +701,14 @@ autoplot.mic <- function(object,
|
|||||||
colnames(df) <- c("mic", "count")
|
colnames(df) <- c("mic", "count")
|
||||||
df$cols <- cols_sub$cols
|
df$cols <- cols_sub$cols
|
||||||
df$cols[df$cols == colours_SIR[1]] <- "(S) Susceptible"
|
df$cols[df$cols == colours_SIR[1]] <- "(S) Susceptible"
|
||||||
df$cols[df$cols == colours_SIR[2]] <- paste("(I)", plot_name_of_I(cols_sub$guideline))
|
df$cols[df$cols == colours_SIR[2]] <- "(SDD) Susceptible dose-dependent"
|
||||||
df$cols[df$cols == colours_SIR[3]] <- "(R) Resistant"
|
df$cols[df$cols == colours_SIR[3]] <- paste("(I)", plot_name_of_I(cols_sub$guideline))
|
||||||
|
df$cols[df$cols == colours_SIR[4]] <- "(R) Resistant"
|
||||||
df$cols <- factor(translate_into_language(df$cols, language = language),
|
df$cols <- factor(translate_into_language(df$cols, language = language),
|
||||||
levels = translate_into_language(
|
levels = translate_into_language(
|
||||||
c(
|
c(
|
||||||
"(S) Susceptible",
|
"(S) Susceptible",
|
||||||
|
"(SDD) Susceptible dose-dependent",
|
||||||
paste("(I)", plot_name_of_I(cols_sub$guideline)),
|
paste("(I)", plot_name_of_I(cols_sub$guideline)),
|
||||||
"(R) Resistant"
|
"(R) Resistant"
|
||||||
),
|
),
|
||||||
@@ -681,9 +722,10 @@ autoplot.mic <- function(object,
|
|||||||
vals <- c(
|
vals <- c(
|
||||||
"(S) Susceptible" = colours_SIR[1],
|
"(S) Susceptible" = colours_SIR[1],
|
||||||
"(SDD) Susceptible dose-dependent" = colours_SIR[2],
|
"(SDD) Susceptible dose-dependent" = colours_SIR[2],
|
||||||
"(I) Susceptible, incr. exp." = colours_SIR[2],
|
"(I) Susceptible, incr. exp." = colours_SIR[3],
|
||||||
"(I) Intermediate" = colours_SIR[2],
|
"(I) Intermediate" = colours_SIR[3],
|
||||||
"(R) Resistant" = colours_SIR[3]
|
"(R) Resistant" = colours_SIR[4],
|
||||||
|
"(NI) Non-interpretable" = "grey30"
|
||||||
)
|
)
|
||||||
names(vals) <- translate_into_language(names(vals), language = language)
|
names(vals) <- translate_into_language(names(vals), language = language)
|
||||||
p <- p +
|
p <- p +
|
||||||
@@ -705,7 +747,8 @@ autoplot.mic <- function(object,
|
|||||||
|
|
||||||
#' @method fortify mic
|
#' @method fortify mic
|
||||||
#' @noRd
|
#' @noRd
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::fortify, mic)
|
||||||
fortify.mic <- function(object, ...) {
|
fortify.mic <- function(object, ...) {
|
||||||
object <- as.mic(object) # make sure that currently implemented MIC levels are used
|
object <- as.mic(object) # make sure that currently implemented MIC levels are used
|
||||||
stats::setNames(
|
stats::setNames(
|
||||||
@@ -726,7 +769,12 @@ plot.disk <- function(x,
|
|||||||
mo = NULL,
|
mo = NULL,
|
||||||
ab = NULL,
|
ab = NULL,
|
||||||
guideline = getOption("AMR_guideline", "EUCAST"),
|
guideline = getOption("AMR_guideline", "EUCAST"),
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
expand = TRUE,
|
expand = TRUE,
|
||||||
include_PKPD = getOption("AMR_include_PKPD", TRUE),
|
include_PKPD = getOption("AMR_include_PKPD", TRUE),
|
||||||
@@ -738,14 +786,12 @@ plot.disk <- function(x,
|
|||||||
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE)
|
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE)
|
||||||
meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE)
|
meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE)
|
||||||
meet_criteria(guideline, allow_class = "character", has_length = 1)
|
meet_criteria(guideline, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
if (length(colours_SIR) == 1) {
|
|
||||||
colours_SIR <- rep(colours_SIR, 3)
|
|
||||||
}
|
|
||||||
main <- gsub(" +", " ", paste0(main, collapse = " "))
|
main <- gsub(" +", " ", paste0(main, collapse = " "))
|
||||||
|
colours_SIR <- expand_SIR_colours(colours_SIR)
|
||||||
|
|
||||||
x <- plotrange_as_table(x, expand = expand)
|
x <- plotrange_as_table(x, expand = expand)
|
||||||
cols_sub <- plot_colours_subtitle_guideline(
|
cols_sub <- plot_colours_subtitle_guideline(
|
||||||
@@ -778,12 +824,16 @@ plot.disk <- function(x,
|
|||||||
if (any(colours_SIR %in% cols_sub$cols)) {
|
if (any(colours_SIR %in% cols_sub$cols)) {
|
||||||
legend_txt <- character(0)
|
legend_txt <- character(0)
|
||||||
legend_col <- character(0)
|
legend_col <- character(0)
|
||||||
if (any(cols_sub$cols == colours_SIR[3] & cols_sub$count > 0)) {
|
if (any(cols_sub$cols == colours_SIR[4] & cols_sub$count > 0)) {
|
||||||
legend_txt <- "(R) Resistant"
|
legend_txt <- "(R) Resistant"
|
||||||
legend_col <- colours_SIR[3]
|
legend_col <- colours_SIR[4]
|
||||||
|
}
|
||||||
|
if (any(cols_sub$cols == colours_SIR[3] & cols_sub$count > 0)) {
|
||||||
|
legend_txt <- c(legend_txt, paste("(I)", plot_name_of_I(cols_sub$guideline)))
|
||||||
|
legend_col <- c(legend_col, colours_SIR[3])
|
||||||
}
|
}
|
||||||
if (any(cols_sub$cols == colours_SIR[2] & cols_sub$count > 0)) {
|
if (any(cols_sub$cols == colours_SIR[2] & cols_sub$count > 0)) {
|
||||||
legend_txt <- c(legend_txt, paste("(I)", plot_name_of_I(cols_sub$guideline)))
|
legend_txt <- c(legend_txt, "(SDD) Susceptible dose-dependent")
|
||||||
legend_col <- c(legend_col, colours_SIR[2])
|
legend_col <- c(legend_col, colours_SIR[2])
|
||||||
}
|
}
|
||||||
if (any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) {
|
if (any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) {
|
||||||
@@ -813,7 +863,12 @@ barplot.disk <- function(height,
|
|||||||
mo = NULL,
|
mo = NULL,
|
||||||
ab = NULL,
|
ab = NULL,
|
||||||
guideline = getOption("AMR_guideline", "EUCAST"),
|
guideline = getOption("AMR_guideline", "EUCAST"),
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
expand = TRUE,
|
expand = TRUE,
|
||||||
...) {
|
...) {
|
||||||
@@ -823,7 +878,7 @@ barplot.disk <- function(height,
|
|||||||
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE)
|
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE)
|
||||||
meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE)
|
meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE)
|
||||||
meet_criteria(guideline, allow_class = "character", has_length = 1)
|
meet_criteria(guideline, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
@@ -844,7 +899,8 @@ barplot.disk <- function(height,
|
|||||||
|
|
||||||
#' @method autoplot disk
|
#' @method autoplot disk
|
||||||
#' @rdname plot
|
#' @rdname plot
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, disk)
|
||||||
autoplot.disk <- function(object,
|
autoplot.disk <- function(object,
|
||||||
mo = NULL,
|
mo = NULL,
|
||||||
ab = NULL,
|
ab = NULL,
|
||||||
@@ -852,7 +908,12 @@ autoplot.disk <- function(object,
|
|||||||
ylab = translate_AMR("Frequency", language = language),
|
ylab = translate_AMR("Frequency", language = language),
|
||||||
xlab = translate_AMR("Disk diffusion diameter (mm)", language = language),
|
xlab = translate_AMR("Disk diffusion diameter (mm)", language = language),
|
||||||
guideline = getOption("AMR_guideline", "EUCAST"),
|
guideline = getOption("AMR_guideline", "EUCAST"),
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
expand = TRUE,
|
expand = TRUE,
|
||||||
include_PKPD = getOption("AMR_include_PKPD", TRUE),
|
include_PKPD = getOption("AMR_include_PKPD", TRUE),
|
||||||
@@ -865,7 +926,7 @@ autoplot.disk <- function(object,
|
|||||||
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE)
|
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE)
|
||||||
meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE)
|
meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE)
|
||||||
meet_criteria(guideline, allow_class = "character", has_length = 1)
|
meet_criteria(guideline, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
@@ -876,6 +937,8 @@ autoplot.disk <- function(object,
|
|||||||
title <- gsub(" +", " ", paste0(title, collapse = " "))
|
title <- gsub(" +", " ", paste0(title, collapse = " "))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
colours_SIR <- expand_SIR_colours(colours_SIR)
|
||||||
|
|
||||||
x <- plotrange_as_table(object, expand = expand)
|
x <- plotrange_as_table(object, expand = expand)
|
||||||
cols_sub <- plot_colours_subtitle_guideline(
|
cols_sub <- plot_colours_subtitle_guideline(
|
||||||
x = x,
|
x = x,
|
||||||
@@ -893,10 +956,10 @@ autoplot.disk <- function(object,
|
|||||||
df <- as.data.frame(x, stringsAsFactors = TRUE)
|
df <- as.data.frame(x, stringsAsFactors = TRUE)
|
||||||
colnames(df) <- c("disk", "count")
|
colnames(df) <- c("disk", "count")
|
||||||
df$cols <- cols_sub$cols
|
df$cols <- cols_sub$cols
|
||||||
|
|
||||||
df$cols[df$cols == colours_SIR[1]] <- "(S) Susceptible"
|
df$cols[df$cols == colours_SIR[1]] <- "(S) Susceptible"
|
||||||
df$cols[df$cols == colours_SIR[2]] <- paste("(I)", plot_name_of_I(cols_sub$guideline))
|
df$cols[df$cols == colours_SIR[2]] <- "(SDD) Susceptible dose-dependent"
|
||||||
df$cols[df$cols == colours_SIR[3]] <- "(R) Resistant"
|
df$cols[df$cols == colours_SIR[3]] <- paste("(I)", plot_name_of_I(cols_sub$guideline))
|
||||||
|
df$cols[df$cols == colours_SIR[4]] <- "(R) Resistant"
|
||||||
df$cols <- factor(translate_into_language(df$cols, language = language),
|
df$cols <- factor(translate_into_language(df$cols, language = language),
|
||||||
levels = translate_into_language(
|
levels = translate_into_language(
|
||||||
c(
|
c(
|
||||||
@@ -914,9 +977,10 @@ autoplot.disk <- function(object,
|
|||||||
vals <- c(
|
vals <- c(
|
||||||
"(S) Susceptible" = colours_SIR[1],
|
"(S) Susceptible" = colours_SIR[1],
|
||||||
"(SDD) Susceptible dose-dependent" = colours_SIR[2],
|
"(SDD) Susceptible dose-dependent" = colours_SIR[2],
|
||||||
"(I) Susceptible, incr. exp." = colours_SIR[2],
|
"(I) Susceptible, incr. exp." = colours_SIR[3],
|
||||||
"(I) Intermediate" = colours_SIR[2],
|
"(I) Intermediate" = colours_SIR[3],
|
||||||
"(R) Resistant" = colours_SIR[3]
|
"(R) Resistant" = colours_SIR[4],
|
||||||
|
"(NI) Non-interpretable" = "grey30"
|
||||||
)
|
)
|
||||||
names(vals) <- translate_into_language(names(vals), language = language)
|
names(vals) <- translate_into_language(names(vals), language = language)
|
||||||
p <- p +
|
p <- p +
|
||||||
@@ -938,7 +1002,8 @@ autoplot.disk <- function(object,
|
|||||||
|
|
||||||
#' @method fortify disk
|
#' @method fortify disk
|
||||||
#' @noRd
|
#' @noRd
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::fortify, disk)
|
||||||
fortify.disk <- function(object, ...) {
|
fortify.disk <- function(object, ...) {
|
||||||
stats::setNames(
|
stats::setNames(
|
||||||
as.data.frame(plotrange_as_table(object, expand = FALSE)),
|
as.data.frame(plotrange_as_table(object, expand = FALSE)),
|
||||||
@@ -1016,22 +1081,26 @@ barplot.sir <- function(height,
|
|||||||
main = deparse(substitute(height)),
|
main = deparse(substitute(height)),
|
||||||
xlab = translate_AMR("Antimicrobial Interpretation", language = language),
|
xlab = translate_AMR("Antimicrobial Interpretation", language = language),
|
||||||
ylab = translate_AMR("Frequency", language = language),
|
ylab = translate_AMR("Frequency", language = language),
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
expand = TRUE,
|
expand = TRUE,
|
||||||
...) {
|
...) {
|
||||||
meet_criteria(xlab, allow_class = "character", has_length = 1)
|
meet_criteria(xlab, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(main, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
meet_criteria(main, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
||||||
meet_criteria(ylab, allow_class = "character", has_length = 1)
|
meet_criteria(ylab, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
language <- validate_language(language)
|
language <- validate_language(language)
|
||||||
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
meet_criteria(expand, allow_class = "logical", has_length = 1)
|
||||||
|
|
||||||
if (length(colours_SIR) == 1) {
|
colours_SIR <- expand_SIR_colours(colours_SIR)
|
||||||
colours_SIR <- rep(colours_SIR, 3)
|
|
||||||
}
|
|
||||||
# add SDD and N to colours
|
# add SDD and N to colours
|
||||||
colours_SIR <- c(colours_SIR[1:2], colours_SIR[2], colours_SIR[3], "#888888")
|
colours_SIR <- c(colours_SIR, "grey30")
|
||||||
main <- gsub(" +", " ", paste0(main, collapse = " "))
|
main <- gsub(" +", " ", paste0(main, collapse = " "))
|
||||||
|
|
||||||
x <- table(height)
|
x <- table(height)
|
||||||
@@ -1051,19 +1120,25 @@ barplot.sir <- function(height,
|
|||||||
|
|
||||||
#' @method autoplot sir
|
#' @method autoplot sir
|
||||||
#' @rdname plot
|
#' @rdname plot
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, sir)
|
||||||
autoplot.sir <- function(object,
|
autoplot.sir <- function(object,
|
||||||
title = deparse(substitute(object)),
|
title = deparse(substitute(object)),
|
||||||
xlab = translate_AMR("Antimicrobial Interpretation", language = language),
|
xlab = translate_AMR("Antimicrobial Interpretation", language = language),
|
||||||
ylab = translate_AMR("Frequency", language = language),
|
ylab = translate_AMR("Frequency", language = language),
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"),
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
),
|
||||||
language = get_AMR_locale(),
|
language = get_AMR_locale(),
|
||||||
...) {
|
...) {
|
||||||
stop_ifnot_installed("ggplot2")
|
stop_ifnot_installed("ggplot2")
|
||||||
meet_criteria(title, allow_class = "character", allow_NULL = TRUE)
|
meet_criteria(title, allow_class = "character", allow_NULL = TRUE)
|
||||||
meet_criteria(ylab, allow_class = "character", has_length = 1)
|
meet_criteria(ylab, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(xlab, allow_class = "character", has_length = 1)
|
meet_criteria(xlab, allow_class = "character", has_length = 1)
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
|
|
||||||
if ("main" %in% names(list(...))) {
|
if ("main" %in% names(list(...))) {
|
||||||
title <- list(...)$main
|
title <- list(...)$main
|
||||||
@@ -1072,9 +1147,7 @@ autoplot.sir <- function(object,
|
|||||||
title <- gsub(" +", " ", paste0(title, collapse = " "))
|
title <- gsub(" +", " ", paste0(title, collapse = " "))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (length(colours_SIR) == 1) {
|
colours_SIR <- expand_SIR_colours(colours_SIR)
|
||||||
colours_SIR <- rep(colours_SIR, 3)
|
|
||||||
}
|
|
||||||
|
|
||||||
df <- as.data.frame(table(object), stringsAsFactors = TRUE)
|
df <- as.data.frame(table(object), stringsAsFactors = TRUE)
|
||||||
colnames(df) <- c("x", "n")
|
colnames(df) <- c("x", "n")
|
||||||
@@ -1086,9 +1159,9 @@ autoplot.sir <- function(object,
|
|||||||
values = c(
|
values = c(
|
||||||
"S" = colours_SIR[1],
|
"S" = colours_SIR[1],
|
||||||
"SDD" = colours_SIR[2],
|
"SDD" = colours_SIR[2],
|
||||||
"I" = colours_SIR[2],
|
"I" = colours_SIR[3],
|
||||||
"R" = colours_SIR[3],
|
"R" = colours_SIR[4],
|
||||||
"NI" = "#888888"
|
"NI" = "grey30"
|
||||||
),
|
),
|
||||||
limits = force
|
limits = force
|
||||||
) +
|
) +
|
||||||
@@ -1098,7 +1171,8 @@ autoplot.sir <- function(object,
|
|||||||
|
|
||||||
#' @method fortify sir
|
#' @method fortify sir
|
||||||
#' @noRd
|
#' @noRd
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::fortify, sir)
|
||||||
fortify.sir <- function(object, ...) {
|
fortify.sir <- function(object, ...) {
|
||||||
stats::setNames(
|
stats::setNames(
|
||||||
as.data.frame(table(object)),
|
as.data.frame(table(object)),
|
||||||
@@ -1213,9 +1287,9 @@ plot_colours_subtitle_guideline <- function(x, mo, ab, guideline, colours_SIR, f
|
|||||||
cols[is.na(sir)] <- "#BEBEBE"
|
cols[is.na(sir)] <- "#BEBEBE"
|
||||||
cols[sir == "S"] <- colours_SIR[1]
|
cols[sir == "S"] <- colours_SIR[1]
|
||||||
cols[sir == "SDD"] <- colours_SIR[2]
|
cols[sir == "SDD"] <- colours_SIR[2]
|
||||||
cols[sir == "I"] <- colours_SIR[2]
|
cols[sir == "I"] <- colours_SIR[3]
|
||||||
cols[sir == "R"] <- colours_SIR[3]
|
cols[sir == "R"] <- colours_SIR[4]
|
||||||
cols[sir == "NI"] <- "#888888"
|
cols[sir == "NI"] <- "grey30"
|
||||||
sub <- bquote(.(abname) ~ "-" ~ italic(.(moname)) ~ .(guideline_txt))
|
sub <- bquote(.(abname) ~ "-" ~ italic(.(moname)) ~ .(guideline_txt))
|
||||||
} else {
|
} else {
|
||||||
cols <- "#BEBEBE"
|
cols <- "#BEBEBE"
|
||||||
@@ -1274,10 +1348,15 @@ scale_y_percent <- function(breaks = function(x) seq(0, max(x, na.rm = TRUE), 0.
|
|||||||
#' @export
|
#' @export
|
||||||
scale_sir_colours <- function(...,
|
scale_sir_colours <- function(...,
|
||||||
aesthetics,
|
aesthetics,
|
||||||
colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B")) {
|
colours_SIR = c(
|
||||||
|
S = "#3CAEA3",
|
||||||
|
SDD = "#8FD6C4",
|
||||||
|
I = "#F6D55C",
|
||||||
|
R = "#ED553B"
|
||||||
|
)) {
|
||||||
stop_ifnot_installed("ggplot2")
|
stop_ifnot_installed("ggplot2")
|
||||||
meet_criteria(aesthetics, allow_class = "character", is_in = c("alpha", "colour", "color", "fill", "linetype", "shape", "size"))
|
meet_criteria(aesthetics, allow_class = "character", is_in = c("alpha", "colour", "color", "fill", "linetype", "shape", "size"))
|
||||||
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3))
|
meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4))
|
||||||
|
|
||||||
if ("fill" %in% aesthetics && message_not_thrown_before("scale_sir_colours", "fill", entire_session = TRUE)) {
|
if ("fill" %in% aesthetics && message_not_thrown_before("scale_sir_colours", "fill", entire_session = TRUE)) {
|
||||||
warning_("Using `scale_sir_colours()` for the `fill` aesthetic has been superseded by `scale_fill_sir()`, please use that instead. This warning will be shown once per session.")
|
warning_("Using `scale_sir_colours()` for the `fill` aesthetic has been superseded by `scale_fill_sir()`, please use that instead. This warning will be shown once per session.")
|
||||||
@@ -1286,67 +1365,48 @@ scale_sir_colours <- function(...,
|
|||||||
warning_("Using `scale_sir_colours()` for the `colour` aesthetic has been superseded by `scale_colour_sir()`, please use that instead. This warning will be shown once per session.")
|
warning_("Using `scale_sir_colours()` for the `colour` aesthetic has been superseded by `scale_colour_sir()`, please use that instead. This warning will be shown once per session.")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (length(colours_SIR) == 1) {
|
|
||||||
colours_SIR <- rep(colours_SIR, 3)
|
|
||||||
}
|
|
||||||
# behaviour until AMR pkg v1.5.0 and also when coming from ggplot_sir()
|
|
||||||
if ("colours" %in% names(list(...))) {
|
if ("colours" %in% names(list(...))) {
|
||||||
original_cols <- c(
|
colours_SIR <- list(...)$colours
|
||||||
S = colours_SIR[1],
|
}
|
||||||
SI = colours_SIR[1],
|
|
||||||
I = colours_SIR[2],
|
colours_SIR <- expand_SIR_colours(colours_SIR, unname = FALSE)
|
||||||
IR = colours_SIR[3],
|
|
||||||
R = colours_SIR[3]
|
# behaviour when coming from ggplot_sir()
|
||||||
)
|
if ("colours" %in% names(list(...))) {
|
||||||
colours <- replace(original_cols, names(list(...)$colours), list(...)$colours)
|
|
||||||
# limits = force is needed in ggplot2 3.3.4 and 3.3.5, see here;
|
# limits = force is needed in ggplot2 3.3.4 and 3.3.5, see here;
|
||||||
# https://github.com/tidyverse/ggplot2/issues/4511#issuecomment-866185530
|
# https://github.com/tidyverse/ggplot2/issues/4511#issuecomment-866185530
|
||||||
return(ggplot2::scale_fill_manual(values = colours, limits = force, aesthetics = aesthetics))
|
return(ggplot2::scale_fill_manual(values = colours_SIR, limits = force, aesthetics = aesthetics))
|
||||||
}
|
}
|
||||||
if (identical(unlist(list(...)), FALSE)) {
|
if (identical(unlist(list(...)), FALSE)) {
|
||||||
return(invisible())
|
return(invisible())
|
||||||
}
|
}
|
||||||
|
|
||||||
names_susceptible <- c(
|
colours_SIR <- unname(colours_SIR)
|
||||||
"S", "SI", "IS", "S+I", "I+S", "susceptible", "Susceptible",
|
|
||||||
unique(TRANSLATIONS[which(TRANSLATIONS$pattern == "Susceptible"),
|
names_susceptible <- c("S", "SI", "IS", "S+I", "I+S", "susceptible", "Susceptible")
|
||||||
"replacement",
|
names_susceptible_dose_dep <- c("SDD", "susceptible dose-dependent", "Susceptible dose-dependent")
|
||||||
drop = TRUE
|
|
||||||
])
|
|
||||||
)
|
|
||||||
names_incr_exposure <- c(
|
names_incr_exposure <- c(
|
||||||
"I", "intermediate", "increased exposure", "incr. exposure",
|
"I", "intermediate", "increased exposure", "incr. exposure",
|
||||||
"Increased exposure", "Incr. exposure", "Susceptible, incr. exp.",
|
"Increased exposure", "Incr. exposure", "Susceptible, incr. exp."
|
||||||
unique(TRANSLATIONS[which(TRANSLATIONS$pattern == "Intermediate"),
|
|
||||||
"replacement",
|
|
||||||
drop = TRUE
|
|
||||||
]),
|
|
||||||
unique(TRANSLATIONS[which(TRANSLATIONS$pattern == "Susceptible, incr. exp."),
|
|
||||||
"replacement",
|
|
||||||
drop = TRUE
|
|
||||||
])
|
|
||||||
)
|
|
||||||
names_resistant <- c(
|
|
||||||
"R", "IR", "RI", "R+I", "I+R", "resistant", "Resistant",
|
|
||||||
unique(TRANSLATIONS[which(TRANSLATIONS$pattern == "Resistant"),
|
|
||||||
"replacement",
|
|
||||||
drop = TRUE
|
|
||||||
])
|
|
||||||
)
|
)
|
||||||
|
names_resistant <- c("R", "IR", "RI", "R+I", "I+R", "resistant", "Resistant")
|
||||||
|
|
||||||
susceptible <- rep(colours_SIR[1], length(names_susceptible))
|
susceptible <- rep(colours_SIR[1], length(names_susceptible))
|
||||||
names(susceptible) <- names_susceptible
|
names(susceptible) <- names_susceptible
|
||||||
incr_exposure <- rep(colours_SIR[2], length(names_incr_exposure))
|
susceptible_dose_dep <- rep(colours_SIR[2], length(names_susceptible_dose_dep))
|
||||||
|
names(susceptible_dose_dep) <- names_susceptible_dose_dep
|
||||||
|
incr_exposure <- rep(colours_SIR[3], length(names_incr_exposure))
|
||||||
names(incr_exposure) <- names_incr_exposure
|
names(incr_exposure) <- names_incr_exposure
|
||||||
resistant <- rep(colours_SIR[3], length(names_resistant))
|
resistant <- rep(colours_SIR[4], length(names_resistant))
|
||||||
names(resistant) <- names_resistant
|
names(resistant) <- names_resistant
|
||||||
|
|
||||||
original_cols <- c(susceptible, incr_exposure, resistant)
|
original_cols <- c(susceptible, susceptible_dose_dep, incr_exposure, resistant)
|
||||||
dots <- c(...)
|
dots <- c(...)
|
||||||
# replace S, I, R as colours: scale_sir_colours(mydatavalue = "S")
|
# replace S, SDD, I, R as colours: scale_sir_colours(mydatavalue = "S")
|
||||||
dots[dots == "S"] <- colours_SIR[1]
|
dots[dots == "S"] <- colours_SIR[1]
|
||||||
dots[dots == "I"] <- colours_SIR[2]
|
dots[dots == "SDD"] <- colours_SIR[2]
|
||||||
dots[dots == "R"] <- colours_SIR[3]
|
dots[dots == "I"] <- colours_SIR[3]
|
||||||
|
dots[dots == "R"] <- colours_SIR[4]
|
||||||
cols <- replace(original_cols, names(dots), dots)
|
cols <- replace(original_cols, names(dots), dots)
|
||||||
# limits = force is needed in ggplot2 3.3.4 and 3.3.5, see here;
|
# limits = force is needed in ggplot2 3.3.4 and 3.3.5, see here;
|
||||||
# https://github.com/tidyverse/ggplot2/issues/4511#issuecomment-866185530
|
# https://github.com/tidyverse/ggplot2/issues/4511#issuecomment-866185530
|
||||||
@@ -1425,3 +1485,39 @@ labels_sir_count <- function(position = NULL,
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
expand_SIR_colours <- function(colours_SIR, unname = TRUE) {
|
||||||
|
sir_order <- c("S", "SDD", "I", "R", "SI", "IR")
|
||||||
|
|
||||||
|
if (is.null(names(colours_SIR))) {
|
||||||
|
if (length(colours_SIR) == 1) {
|
||||||
|
colours_SIR <- rep(colours_SIR, 4)
|
||||||
|
} else if (length(colours_SIR) == 3) {
|
||||||
|
# old method for AMR < 3.0.1 which allowed for 3 colours
|
||||||
|
# fill in green for SDD as extra colour
|
||||||
|
colours_SIR <- c(colours_SIR[1], colours_SIR[1], colours_SIR[2], colours_SIR[3])
|
||||||
|
}
|
||||||
|
if (length(colours_SIR) == 4) {
|
||||||
|
# add colours for SI (same as S) and IR (same as R)
|
||||||
|
colours_SIR <- c(colours_SIR[1:4], colours_SIR[1], colours_SIR[4])
|
||||||
|
}
|
||||||
|
names(colours_SIR) <- sir_order
|
||||||
|
} else {
|
||||||
|
# named input: match and reorder
|
||||||
|
stop_ifnot(
|
||||||
|
all(names(colours_SIR) %in% sir_order),
|
||||||
|
"Unknown names in `colours_SIR`. Expected any of: ", vector_or(levels(NA_sir_), quotes = FALSE, sort = FALSE), "."
|
||||||
|
)
|
||||||
|
if (length(colours_SIR) == 4) {
|
||||||
|
# add colours for SI (same as S) and IR (same as R)
|
||||||
|
colours_SIR <- c(colours_SIR[1:4], SI = unname(colours_SIR[1]), IR = unname(colours_SIR[4]))
|
||||||
|
}
|
||||||
|
colours_SIR <- colours_SIR[sir_order]
|
||||||
|
}
|
||||||
|
|
||||||
|
if (unname) {
|
||||||
|
colours_SIR <- unname(colours_SIR)
|
||||||
|
}
|
||||||
|
|
||||||
|
return(colours_SIR)
|
||||||
|
}
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ resistance <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = FALSE
|
only_count = FALSE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -255,7 +255,7 @@ susceptibility <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = FALSE
|
only_count = FALSE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,7 +283,7 @@ sir_confidence_interval <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
n <- tryCatch(
|
n <- tryCatch(
|
||||||
sir_calc(...,
|
sir_calc(...,
|
||||||
@@ -291,7 +291,7 @@ sir_confidence_interval <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = TRUE
|
only_count = TRUE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
|
|
||||||
if (x == 0) {
|
if (x == 0) {
|
||||||
@@ -347,7 +347,7 @@ proportion_R <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = FALSE
|
only_count = FALSE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -365,7 +365,7 @@ proportion_IR <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = FALSE
|
only_count = FALSE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -383,7 +383,7 @@ proportion_I <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = FALSE
|
only_count = FALSE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -401,7 +401,7 @@ proportion_SI <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = FALSE
|
only_count = FALSE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -419,7 +419,7 @@ proportion_S <- function(...,
|
|||||||
only_all_tested = only_all_tested,
|
only_all_tested = only_all_tested,
|
||||||
only_count = FALSE
|
only_count = FALSE
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -443,6 +443,6 @@ proportion_df <- function(data,
|
|||||||
combine_SI = combine_SI,
|
combine_SI = combine_SI,
|
||||||
confidence_level = confidence_level
|
confidence_level = confidence_level
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc_df(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc_df(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
156
R/random.R
156
R/random.R
@@ -31,13 +31,17 @@
|
|||||||
#'
|
#'
|
||||||
#' These functions can be used for generating random MIC values and disk diffusion diameters, for AMR data analysis practice. By providing a microorganism and antimicrobial drug, the generated results will reflect reality as much as possible.
|
#' These functions can be used for generating random MIC values and disk diffusion diameters, for AMR data analysis practice. By providing a microorganism and antimicrobial drug, the generated results will reflect reality as much as possible.
|
||||||
#' @param size Desired size of the returned vector. If used in a [data.frame] call or `dplyr` verb, will get the current (group) size if left blank.
|
#' @param size Desired size of the returned vector. If used in a [data.frame] call or `dplyr` verb, will get the current (group) size if left blank.
|
||||||
#' @param mo Any [character] that can be coerced to a valid microorganism code with [as.mo()].
|
#' @param mo Any [character] that can be coerced to a valid microorganism code with [as.mo()]. Can be the same length as `size`.
|
||||||
#' @param ab Any [character] that can be coerced to a valid antimicrobial drug code with [as.ab()].
|
#' @param ab Any [character] that can be coerced to a valid antimicrobial drug code with [as.ab()].
|
||||||
#' @param prob_SIR A vector of length 3: the probabilities for "S" (1st value), "I" (2nd value) and "R" (3rd value).
|
#' @param prob_SIR A vector of length 3: the probabilities for "S" (1st value), "I" (2nd value) and "R" (3rd value).
|
||||||
|
#' @param skew Direction of skew for MIC or disk values, either `"right"` or `"left"`. A left-skewed distribution has the majority of the data on the right.
|
||||||
|
#' @param severity Skew severity; higher values will increase the skewedness. Default is `2`; use `0` to prevent skewedness.
|
||||||
#' @param ... Ignored, only in place to allow future extensions.
|
#' @param ... Ignored, only in place to allow future extensions.
|
||||||
#' @details The base \R function [sample()] is used for generating values.
|
#' @details
|
||||||
#'
|
#' Internally, MIC and disk zone values are sampled based on clinical breakpoints defined in the [clinical_breakpoints] data set. To create specific generated values per bug or drug, set the `mo` and/or `ab` argument. The MICs are sampled on a log2 scale and disks linearly, using weighted probabilities. The weights are based on the `skew` and `severity` arguments:
|
||||||
#' Generated values are based on the EUCAST `r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))` guideline as implemented in the [clinical_breakpoints] data set. To create specific generated values per bug or drug, set the `mo` and/or `ab` argument.
|
#' * `skew = "right"` places more emphasis on lower MIC or higher disk values.
|
||||||
|
#' * `skew = "left"` places more emphasis on higher MIC or lower disk values.
|
||||||
|
#' * `severity` controls the exponential bias applied.
|
||||||
#' @return class `mic` for [random_mic()] (see [as.mic()]) and class `disk` for [random_disk()] (see [as.disk()])
|
#' @return class `mic` for [random_mic()] (see [as.mic()]) and class `disk` for [random_disk()] (see [as.disk()])
|
||||||
#' @name random
|
#' @name random
|
||||||
#' @rdname random
|
#' @rdname random
|
||||||
@@ -47,8 +51,13 @@
|
|||||||
#' random_disk(25)
|
#' random_disk(25)
|
||||||
#' random_sir(25)
|
#' random_sir(25)
|
||||||
#'
|
#'
|
||||||
|
#' # add more skewedness, make more realistic by setting a bug and/or drug:
|
||||||
|
#' disks <- random_disk(100, severity = 2, mo = "Escherichia coli", ab = "CIP")
|
||||||
|
#' plot(disks)
|
||||||
|
#' # `plot()` and `ggplot2::autoplot()` allow for coloured bars if `mo` and `ab` are set
|
||||||
|
#' plot(disks, mo = "Escherichia coli", ab = "CIP", guideline = "CLSI 2025")
|
||||||
|
#'
|
||||||
#' \donttest{
|
#' \donttest{
|
||||||
#' # make the random generation more realistic by setting a bug and/or drug:
|
|
||||||
#' random_mic(25, "Klebsiella pneumoniae") # range 0.0625-64
|
#' random_mic(25, "Klebsiella pneumoniae") # range 0.0625-64
|
||||||
#' random_mic(25, "Klebsiella pneumoniae", "meropenem") # range 0.0625-16
|
#' random_mic(25, "Klebsiella pneumoniae", "meropenem") # range 0.0625-16
|
||||||
#' random_mic(25, "Streptococcus pneumoniae", "meropenem") # range 0.0625-4
|
#' random_mic(25, "Streptococcus pneumoniae", "meropenem") # range 0.0625-4
|
||||||
@@ -57,26 +66,61 @@
|
|||||||
#' random_disk(25, "Klebsiella pneumoniae", "ampicillin") # range 11-17
|
#' random_disk(25, "Klebsiella pneumoniae", "ampicillin") # range 11-17
|
||||||
#' random_disk(25, "Streptococcus pneumoniae", "ampicillin") # range 12-27
|
#' random_disk(25, "Streptococcus pneumoniae", "ampicillin") # range 12-27
|
||||||
#' }
|
#' }
|
||||||
random_mic <- function(size = NULL, mo = NULL, ab = NULL, ...) {
|
random_mic <- function(size = NULL, mo = NULL, ab = NULL, skew = "right", severity = 1, ...) {
|
||||||
meet_criteria(size, allow_class = c("numeric", "integer"), has_length = 1, is_positive = TRUE, is_finite = TRUE, allow_NULL = TRUE)
|
meet_criteria(size, allow_class = c("numeric", "integer"), has_length = 1, is_positive = TRUE, is_finite = TRUE, allow_NULL = TRUE)
|
||||||
meet_criteria(mo, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
meet_criteria(mo, allow_class = "character", has_length = c(1, size), allow_NULL = TRUE)
|
||||||
meet_criteria(ab, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
meet_criteria(ab, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
||||||
|
meet_criteria(skew, allow_class = "character", is_in = c("right", "left"), has_length = 1)
|
||||||
|
meet_criteria(severity, allow_class = c("numeric", "integer"), has_length = 1, is_positive_or_zero = TRUE, is_finite = TRUE)
|
||||||
|
|
||||||
if (is.null(size)) {
|
if (is.null(size)) {
|
||||||
size <- NROW(get_current_data(arg_name = "size", call = -3))
|
size <- NROW(get_current_data(arg_name = "size", call = -3))
|
||||||
}
|
}
|
||||||
random_exec("MIC", size = size, mo = mo, ab = ab)
|
if (length(mo) > 1) {
|
||||||
|
out <- rep(NA_mic_, length(size))
|
||||||
|
p <- progress_ticker(n = length(unique(mo)), n_min = 10, title = "Generating random MIC values")
|
||||||
|
for (mo_ in unique(mo)) {
|
||||||
|
p$tick()
|
||||||
|
out[which(mo == mo_)] <- random_exec("MIC", size = sum(mo == mo_), mo = mo_, ab = ab, skew = skew, severity = severity)
|
||||||
|
}
|
||||||
|
out <- as.mic(out, keep_operators = "none")
|
||||||
|
if (stats::runif(1) > 0.5 && length(unique(out)) > 1) {
|
||||||
|
out[out == min(out)] <- paste0("<=", out[out == min(out)])
|
||||||
|
}
|
||||||
|
if (stats::runif(1) > 0.5 && length(unique(out)) > 1) {
|
||||||
|
out[out == max(out) & out %unlike% "<="] <- paste0(">=", out[out == max(out) & out %unlike% "<="])
|
||||||
|
}
|
||||||
|
|
||||||
|
return(out)
|
||||||
|
} else {
|
||||||
|
random_exec("MIC", size = size, mo = mo, ab = ab, skew = skew, severity = severity)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#' @rdname random
|
#' @rdname random
|
||||||
#' @export
|
#' @export
|
||||||
random_disk <- function(size = NULL, mo = NULL, ab = NULL, ...) {
|
random_disk <- function(size = NULL, mo = NULL, ab = NULL, skew = "left", severity = 1, ...) {
|
||||||
meet_criteria(size, allow_class = c("numeric", "integer"), has_length = 1, is_positive = TRUE, is_finite = TRUE, allow_NULL = TRUE)
|
meet_criteria(size, allow_class = c("numeric", "integer"), has_length = 1, is_positive = TRUE, is_finite = TRUE, allow_NULL = TRUE)
|
||||||
meet_criteria(mo, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
meet_criteria(mo, allow_class = "character", has_length = c(1, size), allow_NULL = TRUE)
|
||||||
meet_criteria(ab, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
meet_criteria(ab, allow_class = "character", has_length = 1, allow_NULL = TRUE)
|
||||||
|
meet_criteria(skew, allow_class = "character", is_in = c("right", "left"), has_length = 1)
|
||||||
|
meet_criteria(severity, allow_class = c("numeric", "integer"), has_length = 1, is_positive_or_zero = TRUE, is_finite = TRUE)
|
||||||
|
|
||||||
if (is.null(size)) {
|
if (is.null(size)) {
|
||||||
size <- NROW(get_current_data(arg_name = "size", call = -3))
|
size <- NROW(get_current_data(arg_name = "size", call = -3))
|
||||||
}
|
}
|
||||||
random_exec("DISK", size = size, mo = mo, ab = ab)
|
if (length(mo) > 1) {
|
||||||
|
out <- rep(NA_mic_, length(size))
|
||||||
|
p <- progress_ticker(n = length(unique(mo)), n_min = 10, title = "Generating random MIC values")
|
||||||
|
for (mo_ in unique(mo)) {
|
||||||
|
p$tick()
|
||||||
|
out[which(mo == mo_)] <- random_exec("DISK", size = sum(mo == mo_), mo = mo_, ab = ab, skew = skew, severity = severity)
|
||||||
|
}
|
||||||
|
out <- as.disk(out)
|
||||||
|
return(out)
|
||||||
|
} else {
|
||||||
|
random_exec("DISK", size = size, mo = mo, ab = ab, skew = skew, severity = severity)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#' @rdname random
|
#' @rdname random
|
||||||
@@ -90,78 +134,60 @@ random_sir <- function(size = NULL, prob_SIR = c(0.33, 0.33, 0.33), ...) {
|
|||||||
sample(as.sir(c("S", "I", "R")), size = size, replace = TRUE, prob = prob_SIR)
|
sample(as.sir(c("S", "I", "R")), size = size, replace = TRUE, prob = prob_SIR)
|
||||||
}
|
}
|
||||||
|
|
||||||
random_exec <- function(method_type, size, mo = NULL, ab = NULL) {
|
|
||||||
df <- AMR::clinical_breakpoints %pm>%
|
random_exec <- function(method_type, size, mo = NULL, ab = NULL, skew = "right", severity = 1) {
|
||||||
pm_filter(guideline %like% "EUCAST") %pm>%
|
df <- AMR::clinical_breakpoints %pm>% subset(method == method_type & type == "human")
|
||||||
pm_arrange(pm_desc(guideline)) %pm>%
|
|
||||||
subset(guideline == max(guideline) &
|
|
||||||
method == method_type &
|
|
||||||
type == "human")
|
|
||||||
|
|
||||||
if (!is.null(mo)) {
|
if (!is.null(mo)) {
|
||||||
mo_coerced <- as.mo(mo)
|
mo_coerced <- as.mo(mo, info = FALSE)
|
||||||
mo_include <- c(
|
mo_include <- c(mo_coerced, as.mo(mo_genus(mo_coerced)), as.mo(mo_family(mo_coerced)), as.mo(mo_order(mo_coerced)))
|
||||||
mo_coerced,
|
df_new <- df %pm>% subset(mo %in% mo_include)
|
||||||
as.mo(mo_genus(mo_coerced)),
|
if (nrow(df_new) > 0) df <- df_new
|
||||||
as.mo(mo_family(mo_coerced)),
|
|
||||||
as.mo(mo_order(mo_coerced))
|
|
||||||
)
|
|
||||||
df_new <- df %pm>%
|
|
||||||
subset(mo %in% mo_include)
|
|
||||||
if (nrow(df_new) > 0) {
|
|
||||||
df <- df_new
|
|
||||||
} else {
|
|
||||||
warning_("in `random_", tolower(method_type), "()`: no rows found that match mo '", mo, "', ignoring argument `mo`")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is.null(ab)) {
|
if (!is.null(ab)) {
|
||||||
ab_coerced <- as.ab(ab)
|
ab_coerced <- as.ab(ab)
|
||||||
df_new <- df %pm>%
|
df_new <- df %pm>% subset(ab %in% ab_coerced)
|
||||||
subset(ab %in% ab_coerced)
|
if (nrow(df_new) > 0) df <- df_new
|
||||||
if (nrow(df_new) > 0) {
|
|
||||||
df <- df_new
|
|
||||||
} else {
|
|
||||||
warning_("in `random_", tolower(method_type), "()`: no rows found that match ab '", ab, "' (", ab_name(ab_coerced, tolower = TRUE, language = NULL), "), ignoring argument `ab`")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (method_type == "MIC") {
|
if (method_type == "MIC") {
|
||||||
# set range
|
lowest_mic <- min(df$breakpoint_S, na.rm = TRUE)
|
||||||
mic_range <- c(0.001, 0.002, 0.005, 0.010, 0.025, 0.0625, 0.125, 0.250, 0.5, 1, 2, 4, 8, 16, 32, 64, 128, 256)
|
lowest_mic <- log2(lowest_mic) + sample(c(-3:2), 1)
|
||||||
|
lowest_mic <- 2^lowest_mic
|
||||||
|
highest_mic <- max(df$breakpoint_R, na.rm = TRUE)
|
||||||
|
highest_mic <- log2(highest_mic) + sample(c(-3:1), 1)
|
||||||
|
highest_mic <- max(lowest_mic * 2, 2^highest_mic)
|
||||||
|
|
||||||
# get highest/lowest +/- random 1 to 3 higher factors of two
|
out <- skewed_values(COMMON_MIC_VALUES, size = size, min = lowest_mic, max = highest_mic, skew = skew, severity = severity)
|
||||||
max_range <- mic_range[min(
|
|
||||||
length(mic_range),
|
|
||||||
which(mic_range == max(df$breakpoint_R[!is.na(df$breakpoint_R)], na.rm = TRUE)) + sample(c(1:3), 1)
|
|
||||||
)]
|
|
||||||
min_range <- mic_range[max(
|
|
||||||
1,
|
|
||||||
which(mic_range == min(df$breakpoint_S, na.rm = TRUE)) - sample(c(1:3), 1)
|
|
||||||
)]
|
|
||||||
|
|
||||||
mic_range_new <- mic_range[mic_range <= max_range & mic_range >= min_range]
|
|
||||||
if (length(mic_range_new) == 0) {
|
|
||||||
mic_range_new <- mic_range
|
|
||||||
}
|
|
||||||
out <- as.mic(sample(mic_range_new, size = size, replace = TRUE))
|
|
||||||
# 50% chance that lowest will get <= and highest will get >=
|
|
||||||
if (stats::runif(1) > 0.5 && length(unique(out)) > 1) {
|
if (stats::runif(1) > 0.5 && length(unique(out)) > 1) {
|
||||||
out[out == min(out)] <- paste0("<=", out[out == min(out)])
|
out[out == min(out)] <- paste0("<=", out[out == min(out)])
|
||||||
}
|
}
|
||||||
if (stats::runif(1) > 0.5 && length(unique(out)) > 1) {
|
if (stats::runif(1) > 0.5 && length(unique(out)) > 1) {
|
||||||
out[out == max(out)] <- paste0(">=", out[out == max(out)])
|
out[out == max(out) & out %unlike% "<="] <- paste0(">=", out[out == max(out) & out %unlike% "<="])
|
||||||
}
|
}
|
||||||
return(out)
|
return(as.mic(out))
|
||||||
} else if (method_type == "DISK") {
|
} else if (method_type == "DISK") {
|
||||||
set_range <- seq(
|
disk_range <- seq(
|
||||||
from = as.integer(min(df$breakpoint_R[!is.na(df$breakpoint_R)], na.rm = TRUE) / 1.25),
|
from = floor(min(df$breakpoint_R[!is.na(df$breakpoint_R)], na.rm = TRUE) / 1.25),
|
||||||
to = as.integer(max(df$breakpoint_S, na.rm = TRUE) * 1.25),
|
to = ceiling(max(df$breakpoint_S[df$breakpoint_S != 50], na.rm = TRUE) * 1.25),
|
||||||
by = 1
|
by = 1
|
||||||
)
|
)
|
||||||
out <- sample(set_range, size = size, replace = TRUE)
|
disk_range <- disk_range[disk_range >= 6 & disk_range <= 50]
|
||||||
out[out < 6] <- sample(c(6:10), length(out[out < 6]), replace = TRUE)
|
out <- skewed_values(disk_range, size = size, min = min(disk_range), max = max(disk_range), skew = skew, severity = severity)
|
||||||
out[out > 50] <- sample(c(40:50), length(out[out > 50]), replace = TRUE)
|
|
||||||
return(as.disk(out))
|
return(as.disk(out))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
skewed_values <- function(values, size, min, max, skew = c("right", "left"), severity = 1) {
|
||||||
|
skew <- match.arg(skew)
|
||||||
|
range_vals <- values[values >= min & values <= max]
|
||||||
|
if (length(range_vals) < 2) range_vals <- values
|
||||||
|
ranks <- seq_along(range_vals)
|
||||||
|
weights <- switch(skew,
|
||||||
|
right = rev(ranks)^severity,
|
||||||
|
left = ranks^severity
|
||||||
|
)
|
||||||
|
weights <- weights / sum(weights)
|
||||||
|
sample(range_vals, size = size, replace = TRUE, prob = weights)
|
||||||
|
}
|
||||||
|
|||||||
@@ -29,7 +29,9 @@
|
|||||||
|
|
||||||
#' Predict Antimicrobial Resistance
|
#' Predict Antimicrobial Resistance
|
||||||
#'
|
#'
|
||||||
#' Create a prediction model to predict antimicrobial resistance for the next years on statistical solid ground. Standard errors (SE) will be returned as columns `se_min` and `se_max`. See *Examples* for a real live example.
|
#' @description Create a prediction model to predict antimicrobial resistance for the next years. Standard errors (SE) will be returned as columns `se_min` and `se_max`. See *Examples* for a real live example.
|
||||||
|
#'
|
||||||
|
#' **NOTE:** These functions are [deprecated][AMR-deprecated] and will be removed in a future version. Use the AMR package combined with the tidymodels framework instead, for which we have written a [basic and short introduction on our website](https://amr-for-r.org/articles/AMR_with_tidymodels.html).
|
||||||
#' @param object Model data to be plotted.
|
#' @param object Model data to be plotted.
|
||||||
#' @param col_ab Column name of `x` containing antimicrobial interpretations (`"R"`, `"I"` and `"S"`).
|
#' @param col_ab Column name of `x` containing antimicrobial interpretations (`"R"`, `"I"` and `"S"`).
|
||||||
#' @param col_date Column name of the date, will be used to calculate years if this column doesn't consist of years already - the default is the first column of with a date class.
|
#' @param col_date Column name of the date, will be used to calculate years if this column doesn't consist of years already - the default is the first column of with a date class.
|
||||||
@@ -399,7 +401,8 @@ ggplot_sir_predict <- function(x,
|
|||||||
|
|
||||||
#' @method autoplot resistance_predict
|
#' @method autoplot resistance_predict
|
||||||
#' @rdname resistance_predict
|
#' @rdname resistance_predict
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::autoplot, resistance_predict)
|
||||||
autoplot.resistance_predict <- function(object,
|
autoplot.resistance_predict <- function(object,
|
||||||
main = paste("Resistance Prediction of", x_name),
|
main = paste("Resistance Prediction of", x_name),
|
||||||
ribbon = TRUE,
|
ribbon = TRUE,
|
||||||
@@ -412,7 +415,8 @@ autoplot.resistance_predict <- function(object,
|
|||||||
|
|
||||||
#' @method fortify resistance_predict
|
#' @method fortify resistance_predict
|
||||||
#' @noRd
|
#' @noRd
|
||||||
# will be exported using s3_register() in R/zzz.R
|
# this prevents the requirement for putting the dependency in Imports:
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(ggplot2::fortify, resistance_predict)
|
||||||
fortify.resistance_predict <- function(model, data, ...) {
|
fortify.resistance_predict <- function(model, data, ...) {
|
||||||
as.data.frame(model)
|
as.data.frame(model)
|
||||||
}
|
}
|
||||||
|
|||||||
14
R/sir_calc.R
14
R/sir_calc.R
@@ -244,7 +244,7 @@ sir_calc_df <- function(type, # "proportion", "count" or "both"
|
|||||||
translate_ab <- get_translate_ab(translate_ab)
|
translate_ab <- get_translate_ab(translate_ab)
|
||||||
|
|
||||||
data.bak <- data
|
data.bak <- data
|
||||||
# select only groups and antimicrobials
|
# select only groups and antibiotics
|
||||||
if (is_null_or_grouped_tbl(data)) {
|
if (is_null_or_grouped_tbl(data)) {
|
||||||
data_has_groups <- TRUE
|
data_has_groups <- TRUE
|
||||||
groups <- get_group_names(data)
|
groups <- get_group_names(data)
|
||||||
@@ -255,10 +255,12 @@ sir_calc_df <- function(type, # "proportion", "count" or "both"
|
|||||||
}
|
}
|
||||||
|
|
||||||
data <- as.data.frame(data, stringsAsFactors = FALSE)
|
data <- as.data.frame(data, stringsAsFactors = FALSE)
|
||||||
if (isTRUE(combine_SI)) {
|
|
||||||
for (i in seq_len(ncol(data))) {
|
for (i in seq_len(ncol(data))) {
|
||||||
if (is.sir(data[, i, drop = TRUE])) {
|
# transform SIR columns
|
||||||
data[, i] <- as.character(data[, i, drop = TRUE])
|
if (is.sir(data[, i, drop = TRUE])) {
|
||||||
|
data[, i] <- as.character(data[, i, drop = TRUE])
|
||||||
|
if (isTRUE(combine_SI)) {
|
||||||
if ("SDD" %in% data[, i, drop = TRUE] && message_not_thrown_before("sir_calc_df", combine_SI, entire_session = TRUE)) {
|
if ("SDD" %in% data[, i, drop = TRUE] && message_not_thrown_before("sir_calc_df", combine_SI, entire_session = TRUE)) {
|
||||||
message_("Note that `sir_calc_df()` will also count dose-dependent susceptibility, 'SDD', as 'SI' when `combine_SI = TRUE`. This note will be shown once for this session.", as_note = FALSE)
|
message_("Note that `sir_calc_df()` will also count dose-dependent susceptibility, 'SDD', as 'SI' when `combine_SI = TRUE`. This note will be shown once for this session.", as_note = FALSE)
|
||||||
}
|
}
|
||||||
@@ -364,7 +366,7 @@ sir_calc_df <- function(type, # "proportion", "count" or "both"
|
|||||||
} else {
|
} else {
|
||||||
# don't use as.sir() here, as it would add the class 'sir' and we would like
|
# don't use as.sir() here, as it would add the class 'sir' and we would like
|
||||||
# the same data structure as output, regardless of input
|
# the same data structure as output, regardless of input
|
||||||
if (out$value[out$interpretation == "SDD"] > 0) {
|
if (any(out$value[out$interpretation == "SDD"] > 0, na.rm = TRUE)) {
|
||||||
out$interpretation <- factor(out$interpretation, levels = c("S", "SDD", "I", "R"), ordered = TRUE)
|
out$interpretation <- factor(out$interpretation, levels = c("S", "SDD", "I", "R"), ordered = TRUE)
|
||||||
} else {
|
} else {
|
||||||
out$interpretation <- factor(out$interpretation, levels = c("S", "I", "R"), ordered = TRUE)
|
out$interpretation <- factor(out$interpretation, levels = c("S", "I", "R"), ordered = TRUE)
|
||||||
|
|||||||
@@ -47,6 +47,6 @@ sir_df <- function(data,
|
|||||||
combine_SI = combine_SI,
|
combine_SI = combine_SI,
|
||||||
confidence_level = confidence_level
|
confidence_level = confidence_level
|
||||||
),
|
),
|
||||||
error = function(e) stop_(gsub("in sir_calc_df(): ", "", e$message, fixed = TRUE), call = -5)
|
error = function(e) stop_(gsub("in sir_calc_df(): ", "", conditionMessage(e), fixed = TRUE), call = -5)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
R/sysdata.rda
BIN
R/sysdata.rda
Binary file not shown.
265
R/tidymodels.R
Normal file
265
R/tidymodels.R
Normal file
@@ -0,0 +1,265 @@
|
|||||||
|
#' AMR Extensions for Tidymodels
|
||||||
|
#'
|
||||||
|
#' This family of functions allows using AMR-specific data types such as `<mic>` and `<sir>` inside `tidymodels` pipelines.
|
||||||
|
#' @inheritParams recipes::step_center
|
||||||
|
#' @details
|
||||||
|
#' You can read more in our online [AMR with tidymodels introduction](https://amr-for-r.org/articles/AMR_with_tidymodels.html).
|
||||||
|
#'
|
||||||
|
#' Tidyselect helpers include:
|
||||||
|
#' - [all_mic()] and [all_mic_predictors()] to select `<mic>` columns
|
||||||
|
#' - [all_sir()] and [all_sir_predictors()] to select `<sir>` columns
|
||||||
|
#'
|
||||||
|
#' Pre-processing pipeline steps include:
|
||||||
|
#' - [step_mic_log2()] to convert MIC columns to numeric (via `as.numeric()`) and apply a log2 transform, to be used with [all_mic_predictors()]
|
||||||
|
#' - [step_sir_numeric()] to convert SIR columns to numeric (via `as.numeric()`), to be used with [all_sir_predictors()]: `"S"` = 1, `"I"`/`"SDD"` = 2, `"R"` = 3. All other values are rendered `NA`. Keep this in mind for further processing, especially if the model does not allow for `NA` values.
|
||||||
|
#'
|
||||||
|
#' These steps integrate with `recipes::recipe()` and work like standard preprocessing steps. They are useful for preparing data for modelling, especially with classification models.
|
||||||
|
#' @seealso [recipes::recipe()], [as.mic()], [as.sir()]
|
||||||
|
#' @name amr-tidymodels
|
||||||
|
#' @keywords internal
|
||||||
|
#' @export
|
||||||
|
#' @examples
|
||||||
|
#' if (require("tidymodels")) {
|
||||||
|
#'
|
||||||
|
#' # The below approach formed the basis for this paper: DOI 10.3389/fmicb.2025.1582703
|
||||||
|
#' # Presence of ESBL genes was predicted based on raw MIC values.
|
||||||
|
#'
|
||||||
|
#'
|
||||||
|
#' # example data set in the AMR package
|
||||||
|
#' esbl_isolates
|
||||||
|
#'
|
||||||
|
#' # Prepare a binary outcome and convert to ordered factor
|
||||||
|
#' data <- esbl_isolates %>%
|
||||||
|
#' mutate(esbl = factor(esbl, levels = c(FALSE, TRUE), ordered = TRUE))
|
||||||
|
#'
|
||||||
|
#' # Split into training and testing sets
|
||||||
|
#' split <- initial_split(data)
|
||||||
|
#' training_data <- training(split)
|
||||||
|
#' testing_data <- testing(split)
|
||||||
|
#'
|
||||||
|
#' # Create and prep a recipe with MIC log2 transformation
|
||||||
|
#' mic_recipe <- recipe(esbl ~ ., data = training_data) %>%
|
||||||
|
#'
|
||||||
|
#' # Optionally remove non-predictive variables
|
||||||
|
#' remove_role(genus, old_role = "predictor") %>%
|
||||||
|
#'
|
||||||
|
#' # Apply the log2 transformation to all MIC predictors
|
||||||
|
#' step_mic_log2(all_mic_predictors()) %>%
|
||||||
|
#'
|
||||||
|
#' # And apply the preparation steps
|
||||||
|
#' prep()
|
||||||
|
#'
|
||||||
|
#' # View prepped recipe
|
||||||
|
#' mic_recipe
|
||||||
|
#'
|
||||||
|
#' # Apply the recipe to training and testing data
|
||||||
|
#' out_training <- bake(mic_recipe, new_data = NULL)
|
||||||
|
#' out_testing <- bake(mic_recipe, new_data = testing_data)
|
||||||
|
#'
|
||||||
|
#' # Fit a logistic regression model
|
||||||
|
#' fitted <- logistic_reg(mode = "classification") %>%
|
||||||
|
#' set_engine("glm") %>%
|
||||||
|
#' fit(esbl ~ ., data = out_training)
|
||||||
|
#'
|
||||||
|
#' # Generate predictions on the test set
|
||||||
|
#' predictions <- predict(fitted, out_testing) %>%
|
||||||
|
#' bind_cols(out_testing)
|
||||||
|
#'
|
||||||
|
#' # Evaluate predictions using standard classification metrics
|
||||||
|
#' our_metrics <- metric_set(accuracy, kap, ppv, npv)
|
||||||
|
#' metrics <- our_metrics(predictions, truth = esbl, estimate = .pred_class)
|
||||||
|
#'
|
||||||
|
#' # Show performance
|
||||||
|
#' metrics
|
||||||
|
#' }
|
||||||
|
all_mic <- function() {
|
||||||
|
x <- tidymodels_amr_select(levels(NA_mic_))
|
||||||
|
names(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rdname amr-tidymodels
|
||||||
|
#' @export
|
||||||
|
all_mic_predictors <- function() {
|
||||||
|
x <- tidymodels_amr_select(levels(NA_mic_))
|
||||||
|
intersect(x, recipes::has_role("predictor"))
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rdname amr-tidymodels
|
||||||
|
#' @export
|
||||||
|
all_sir <- function() {
|
||||||
|
x <- tidymodels_amr_select(levels(NA_sir_))
|
||||||
|
names(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rdname amr-tidymodels
|
||||||
|
#' @export
|
||||||
|
all_sir_predictors <- function() {
|
||||||
|
x <- tidymodels_amr_select(levels(NA_sir_))
|
||||||
|
intersect(x, recipes::has_role("predictor"))
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rdname amr-tidymodels
|
||||||
|
#' @export
|
||||||
|
step_mic_log2 <- function(
|
||||||
|
recipe,
|
||||||
|
...,
|
||||||
|
role = NA,
|
||||||
|
trained = FALSE,
|
||||||
|
columns = NULL,
|
||||||
|
skip = FALSE,
|
||||||
|
id = recipes::rand_id("mic_log2")) {
|
||||||
|
recipes::add_step(
|
||||||
|
recipe,
|
||||||
|
step_mic_log2_new(
|
||||||
|
terms = rlang::enquos(...),
|
||||||
|
role = role,
|
||||||
|
trained = trained,
|
||||||
|
columns = columns,
|
||||||
|
skip = skip,
|
||||||
|
id = id
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
step_mic_log2_new <- function(terms, role, trained, columns, skip, id) {
|
||||||
|
recipes::step(
|
||||||
|
subclass = "mic_log2",
|
||||||
|
terms = terms,
|
||||||
|
role = role,
|
||||||
|
trained = trained,
|
||||||
|
columns = columns,
|
||||||
|
skip = skip,
|
||||||
|
id = id
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(recipes::prep, step_mic_log2)
|
||||||
|
prep.step_mic_log2 <- function(x, training, info = NULL, ...) {
|
||||||
|
col_names <- recipes::recipes_eval_select(x$terms, training, info)
|
||||||
|
recipes::check_type(training[, col_names], types = "ordered")
|
||||||
|
step_mic_log2_new(
|
||||||
|
terms = x$terms,
|
||||||
|
role = x$role,
|
||||||
|
trained = TRUE,
|
||||||
|
columns = col_names,
|
||||||
|
skip = x$skip,
|
||||||
|
id = x$id
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(recipes::bake, step_mic_log2)
|
||||||
|
bake.step_mic_log2 <- function(object, new_data, ...) {
|
||||||
|
recipes::check_new_data(object$columns, object, new_data)
|
||||||
|
for (col in object$columns) {
|
||||||
|
new_data[[col]] <- log2(as.numeric(as.mic(new_data[[col]])))
|
||||||
|
}
|
||||||
|
new_data
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @export
|
||||||
|
print.step_mic_log2 <- function(x, width = max(20, options()$width - 35), ...) {
|
||||||
|
title <- "Log2 transformation of MIC columns"
|
||||||
|
recipes::print_step(x$columns, x$terms, x$trained, title, width)
|
||||||
|
invisible(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(recipes::tidy, step_mic_log2)
|
||||||
|
tidy.step_mic_log2 <- function(x, ...) {
|
||||||
|
if (recipes::is_trained(x)) {
|
||||||
|
res <- tibble::tibble(terms = x$columns)
|
||||||
|
} else {
|
||||||
|
res <- tibble::tibble(terms = recipes::sel2char(x$terms))
|
||||||
|
}
|
||||||
|
res$id <- x$id
|
||||||
|
res
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rdname amr-tidymodels
|
||||||
|
#' @export
|
||||||
|
step_sir_numeric <- function(
|
||||||
|
recipe,
|
||||||
|
...,
|
||||||
|
role = NA,
|
||||||
|
trained = FALSE,
|
||||||
|
columns = NULL,
|
||||||
|
skip = FALSE,
|
||||||
|
id = recipes::rand_id("sir_numeric")) {
|
||||||
|
recipes::add_step(
|
||||||
|
recipe,
|
||||||
|
step_sir_numeric_new(
|
||||||
|
terms = rlang::enquos(...),
|
||||||
|
role = role,
|
||||||
|
trained = trained,
|
||||||
|
columns = columns,
|
||||||
|
skip = skip,
|
||||||
|
id = id
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
step_sir_numeric_new <- function(terms, role, trained, columns, skip, id) {
|
||||||
|
recipes::step(
|
||||||
|
subclass = "sir_numeric",
|
||||||
|
terms = terms,
|
||||||
|
role = role,
|
||||||
|
trained = trained,
|
||||||
|
columns = columns,
|
||||||
|
skip = skip,
|
||||||
|
id = id
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(recipes::prep, step_sir_numeric)
|
||||||
|
prep.step_sir_numeric <- function(x, training, info = NULL, ...) {
|
||||||
|
col_names <- recipes::recipes_eval_select(x$terms, training, info)
|
||||||
|
recipes::check_type(training[, col_names], types = "ordered")
|
||||||
|
step_sir_numeric_new(
|
||||||
|
terms = x$terms,
|
||||||
|
role = x$role,
|
||||||
|
trained = TRUE,
|
||||||
|
columns = col_names,
|
||||||
|
skip = x$skip,
|
||||||
|
id = x$id
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(recipes::bake, step_sir_numeric)
|
||||||
|
bake.step_sir_numeric <- function(object, new_data, ...) {
|
||||||
|
recipes::check_new_data(object$columns, object, new_data)
|
||||||
|
for (col in object$columns) {
|
||||||
|
new_data[[col]] <- as.numeric(as.sir(new_data[[col]]))
|
||||||
|
}
|
||||||
|
new_data
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @export
|
||||||
|
print.step_sir_numeric <- function(x, width = max(20, options()$width - 35), ...) {
|
||||||
|
title <- "Numeric transformation of SIR columns"
|
||||||
|
recipes::print_step(x$columns, x$terms, x$trained, title, width)
|
||||||
|
invisible(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(recipes::tidy, step_sir_numeric)
|
||||||
|
tidy.step_sir_numeric <- function(x, ...) {
|
||||||
|
if (recipes::is_trained(x)) {
|
||||||
|
res <- tibble::tibble(terms = x$columns)
|
||||||
|
} else {
|
||||||
|
res <- tibble::tibble(terms = recipes::sel2char(x$terms))
|
||||||
|
}
|
||||||
|
res$id <- x$id
|
||||||
|
res
|
||||||
|
}
|
||||||
|
|
||||||
|
tidymodels_amr_select <- function(check_vector) {
|
||||||
|
df <- get_current_data()
|
||||||
|
ind <- which(
|
||||||
|
vapply(
|
||||||
|
FUN.VALUE = logical(1),
|
||||||
|
df,
|
||||||
|
function(x) all(x %in% c(check_vector, NA), na.rm = TRUE) & any(x %in% check_vector),
|
||||||
|
USE.NAMES = TRUE
|
||||||
|
),
|
||||||
|
useNames = TRUE
|
||||||
|
)
|
||||||
|
ind
|
||||||
|
}
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
#' This function filters a data set to include only the top *n* microorganisms based on a specified property, such as taxonomic family or genus. For example, it can filter a data set to the top 3 species, or to any species in the top 5 genera, or to the top 3 species in each of the top 5 genera.
|
#' This function filters a data set to include only the top *n* microorganisms based on a specified property, such as taxonomic family or genus. For example, it can filter a data set to the top 3 species, or to any species in the top 5 genera, or to the top 3 species in each of the top 5 genera.
|
||||||
#' @param x A data frame containing microbial data.
|
#' @param x A data frame containing microbial data.
|
||||||
#' @param n An integer specifying the maximum number of unique values of the `property` to include in the output.
|
#' @param n An integer specifying the maximum number of unique values of the `property` to include in the output.
|
||||||
#' @param property A character string indicating the microorganism property to use for filtering. Must be one of the column names of the [microorganisms] data set: `r vector_or(colnames(microorganisms), sort = FALSE, quotes = TRUE)`. If `NULL`, the raw values from `col_mo` will be used without transformation.
|
#' @param property A character string indicating the microorganism property to use for filtering. Must be one of the column names of the [microorganisms] data set: `r vector_or(colnames(microorganisms), sort = FALSE, quotes = TRUE)`. If `NULL`, the raw values from `col_mo` will be used without transformation. When using `"species"` (default) or `"subpecies"`, the genus will be added to make sure each (sub)species still belongs to the right genus.
|
||||||
#' @param n_for_each An optional integer specifying the maximum number of rows to retain for each value of the selected property. If `NULL`, all rows within the top *n* groups will be included.
|
#' @param n_for_each An optional integer specifying the maximum number of rows to retain for each value of the selected property. If `NULL`, all rows within the top *n* groups will be included.
|
||||||
#' @param col_mo A character string indicating the column in `x` that contains microorganism names or codes. Defaults to the first column of class [`mo`]. Values will be coerced using [as.mo()].
|
#' @param col_mo A character string indicating the column in `x` that contains microorganism names or codes. Defaults to the first column of class [`mo`]. Values will be coerced using [as.mo()].
|
||||||
#' @param ... Additional arguments passed on to [mo_property()] when `property` is not `NULL`.
|
#' @param ... Additional arguments passed on to [mo_property()] when `property` is not `NULL`.
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
#' top_n_microorganisms(example_isolates,
|
#' top_n_microorganisms(example_isolates,
|
||||||
#' n = 5, property = "genus", n_for_each = 3
|
#' n = 5, property = "genus", n_for_each = 3
|
||||||
#' )
|
#' )
|
||||||
top_n_microorganisms <- function(x, n, property = "fullname", n_for_each = NULL, col_mo = NULL, ...) {
|
top_n_microorganisms <- function(x, n, property = "species", n_for_each = NULL, col_mo = NULL, ...) {
|
||||||
meet_criteria(x, allow_class = "data.frame") # also checks dimensions to be >0
|
meet_criteria(x, allow_class = "data.frame") # also checks dimensions to be >0
|
||||||
meet_criteria(n, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE, is_positive = TRUE)
|
meet_criteria(n, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE, is_positive = TRUE)
|
||||||
meet_criteria(property, allow_class = "character", has_length = 1, is_in = colnames(AMR::microorganisms))
|
meet_criteria(property, allow_class = "character", has_length = 1, is_in = colnames(AMR::microorganisms))
|
||||||
@@ -71,6 +71,10 @@ top_n_microorganisms <- function(x, n, property = "fullname", n_for_each = NULL,
|
|||||||
|
|
||||||
if (is.null(property)) {
|
if (is.null(property)) {
|
||||||
x$prop_val <- x[[col_mo]]
|
x$prop_val <- x[[col_mo]]
|
||||||
|
} else if (property == "species") {
|
||||||
|
x$prop_val <- paste(mo_genus(x[[col_mo]], ...), mo_species(x[[col_mo]], ...))
|
||||||
|
} else if (property == "subspecies") {
|
||||||
|
x$prop_val <- paste(mo_genus(x[[col_mo]], ...), mo_species(x[[col_mo]], ...), mo_subspecies(x[[col_mo]], ...))
|
||||||
} else {
|
} else {
|
||||||
x$prop_val <- mo_property(x[[col_mo]], property = property, ...)
|
x$prop_val <- mo_property(x[[col_mo]], property = property, ...)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#'
|
#'
|
||||||
#' For language-dependent output of `AMR` functions, such as [mo_name()], [mo_gramstain()], [mo_type()] and [ab_name()].
|
#' For language-dependent output of `AMR` functions, such as [mo_name()], [mo_gramstain()], [mo_type()] and [ab_name()].
|
||||||
#' @param x Text to translate.
|
#' @param x Text to translate.
|
||||||
#' @param language Language to choose. Use one of these supported language names or ISO-639-1 codes: `r vector_or(paste0(sapply(LANGUAGES_SUPPORTED_NAMES, function(x) x[[1]]), " (" , LANGUAGES_SUPPORTED, ")"), quotes = FALSE, sort = FALSE)`.
|
#' @param language Language to choose. Use one of these supported language names or [ISO 639-1 codes](https://en.wikipedia.org/wiki/ISO_639-1): `r vector_or(paste0(sapply(LANGUAGES_SUPPORTED_NAMES, function(x) x[[1]]), " (" , LANGUAGES_SUPPORTED, ")"), quotes = FALSE, sort = FALSE)`.
|
||||||
#' @details The currently `r length(LANGUAGES_SUPPORTED)` supported languages are `r vector_and(paste0(sapply(LANGUAGES_SUPPORTED_NAMES, function(x) x[[1]]), " (" , LANGUAGES_SUPPORTED, ")"), quotes = FALSE, sort = FALSE)`. All these languages have translations available for all antimicrobial drugs and colloquial microorganism names.
|
#' @details The currently `r length(LANGUAGES_SUPPORTED)` supported languages are `r vector_and(paste0(sapply(LANGUAGES_SUPPORTED_NAMES, function(x) x[[1]]), " (" , LANGUAGES_SUPPORTED, ")"), quotes = FALSE, sort = FALSE)`. All these languages have translations available for all antimicrobial drugs and colloquial microorganism names.
|
||||||
#'
|
#'
|
||||||
#' To permanently silence the once-per-session language note on a non-English operating system, you can set the package option [`AMR_locale`][AMR-options] in your `.Rprofile` file like this:
|
#' To permanently silence the once-per-session language note on a non-English operating system, you can set the package option [`AMR_locale`][AMR-options] in your `.Rprofile` file like this:
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
#' ab_name("Ciprofloxacin")
|
#' ab_name("Ciprofloxacin")
|
||||||
#' mo_name("Coagulase-negative Staphylococcus (CoNS)")
|
#' mo_name("Coagulase-negative Staphylococcus (CoNS)")
|
||||||
#'
|
#'
|
||||||
#' # set_AMR_locale() understands endonyms, English exonyms, and ISO-639-1:
|
#' # set_AMR_locale() understands endonyms, English exonyms, and ISO 639-1:
|
||||||
#' set_AMR_locale("Deutsch")
|
#' set_AMR_locale("Deutsch")
|
||||||
#' set_AMR_locale("German")
|
#' set_AMR_locale("German")
|
||||||
#' set_AMR_locale("de")
|
#' set_AMR_locale("de")
|
||||||
@@ -152,7 +152,7 @@ validate_language <- function(language, extra_txt = character(0)) {
|
|||||||
}
|
}
|
||||||
lang <- find_language(language[1], fallback = FALSE)
|
lang <- find_language(language[1], fallback = FALSE)
|
||||||
stop_ifnot(length(lang) > 0 && lang %in% LANGUAGES_SUPPORTED,
|
stop_ifnot(length(lang) > 0 && lang %in% LANGUAGES_SUPPORTED,
|
||||||
"unsupported language for AMR package", extra_txt, ": \"", language, "\". Use one of these language names or ISO-639-1 codes: ",
|
"unsupported language for AMR package", extra_txt, ": \"", language, "\". Use one of these language names or ISO 639-1 codes: ",
|
||||||
paste0('"', vapply(FUN.VALUE = character(1), LANGUAGES_SUPPORTED_NAMES, function(x) x[[1]]),
|
paste0('"', vapply(FUN.VALUE = character(1), LANGUAGES_SUPPORTED_NAMES, function(x) x[[1]]),
|
||||||
'" ("', LANGUAGES_SUPPORTED, '")',
|
'" ("', LANGUAGES_SUPPORTED, '")',
|
||||||
collapse = ", "
|
collapse = ", "
|
||||||
@@ -193,7 +193,7 @@ translate_into_language <- function(from,
|
|||||||
only_unknown = FALSE,
|
only_unknown = FALSE,
|
||||||
only_affect_ab_names = FALSE,
|
only_affect_ab_names = FALSE,
|
||||||
only_affect_mo_names = FALSE) {
|
only_affect_mo_names = FALSE) {
|
||||||
# get ISO-639-1 of language
|
# get ISO 639-1 of language
|
||||||
lang <- validate_language(language)
|
lang <- validate_language(language)
|
||||||
if (lang == "en") {
|
if (lang == "en") {
|
||||||
# don' translate
|
# don' translate
|
||||||
@@ -203,7 +203,25 @@ translate_into_language <- function(from,
|
|||||||
df_trans <- TRANSLATIONS # internal data file
|
df_trans <- TRANSLATIONS # internal data file
|
||||||
from.bak <- from
|
from.bak <- from
|
||||||
from_unique <- unique(from)
|
from_unique <- unique(from)
|
||||||
from_unique_translated <- from_unique
|
from_split_combined <- function(vec) {
|
||||||
|
sapply(vec, function(x) {
|
||||||
|
if (grepl("/", x, fixed = TRUE)) {
|
||||||
|
parts <- strsplit(x, "/", fixed = TRUE)[[1]]
|
||||||
|
# Translate each part separately
|
||||||
|
translated_parts <- translate_into_language(
|
||||||
|
parts,
|
||||||
|
language = lang,
|
||||||
|
only_unknown = only_unknown,
|
||||||
|
only_affect_ab_names = only_affect_ab_names,
|
||||||
|
only_affect_mo_names = only_affect_mo_names
|
||||||
|
)
|
||||||
|
paste(translated_parts, collapse = "/")
|
||||||
|
} else {
|
||||||
|
x
|
||||||
|
}
|
||||||
|
}, USE.NAMES = FALSE)
|
||||||
|
}
|
||||||
|
from_unique_translated <- from_split_combined(from_unique)
|
||||||
|
|
||||||
# only keep lines where translation is available for this language
|
# only keep lines where translation is available for this language
|
||||||
df_trans <- df_trans[which(!is.na(df_trans[, lang, drop = TRUE])), , drop = FALSE]
|
df_trans <- df_trans[which(!is.na(df_trans[, lang, drop = TRUE])), , drop = FALSE]
|
||||||
@@ -240,6 +258,11 @@ translate_into_language <- function(from,
|
|||||||
return(from)
|
return(from)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (only_affect_ab_names == TRUE) {
|
||||||
|
df_trans$pattern[df_trans$regular_expr == TRUE] <- paste0(df_trans$pattern[df_trans$regular_expr == TRUE], "$")
|
||||||
|
df_trans$pattern[df_trans$regular_expr == TRUE] <- gsub("$$", "$", df_trans$pattern[df_trans$regular_expr == TRUE], fixed = TRUE)
|
||||||
|
}
|
||||||
|
|
||||||
lapply(
|
lapply(
|
||||||
# starting with longest pattern, since more general translations are shorter, such as 'Group'
|
# starting with longest pattern, since more general translations are shorter, such as 'Group'
|
||||||
order(nchar(df_trans$pattern), decreasing = TRUE),
|
order(nchar(df_trans$pattern), decreasing = TRUE),
|
||||||
|
|||||||
62
R/vctrs.R
62
R/vctrs.R
@@ -30,10 +30,70 @@
|
|||||||
# These are all S3 implementations for the vctrs package,
|
# These are all S3 implementations for the vctrs package,
|
||||||
# that is used internally by tidyverse packages such as dplyr.
|
# that is used internally by tidyverse packages such as dplyr.
|
||||||
# They are to convert AMR-specific classes to bare characters and integers.
|
# They are to convert AMR-specific classes to bare characters and integers.
|
||||||
# All of them will be exported using s3_register() in R/zzz.R when loading the package.
|
|
||||||
|
|
||||||
# see https://github.com/tidyverse/dplyr/issues/5955 why this is required
|
# see https://github.com/tidyverse/dplyr/issues/5955 why this is required
|
||||||
|
|
||||||
|
# LIST ALL EXPORTS
|
||||||
|
# this prevents the requirement for putting `vctrs` as a the dependency in Imports
|
||||||
|
|
||||||
|
# (NOTE 2024-02-22 this is the right way - it should be 2 '.'-separated S3 classes in the second argument)
|
||||||
|
# S3: amr_selector
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, character.amr_selector)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, amr_selector.character)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.amr_selector)
|
||||||
|
# S3: amr_selector_any_all
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, logical.amr_selector_any_all)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, amr_selector_any_all.logical)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, logical.amr_selector_any_all)
|
||||||
|
# S3: ab
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, ab.default)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, ab.ab)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.ab)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, ab.character)
|
||||||
|
# S3: av
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, av.default)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, av.av)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.av)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, av.character)
|
||||||
|
# S3: mo
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, mo.default)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, mo.mo)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.mo)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mo.character)
|
||||||
|
# S3: disk
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype_full, disk)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype_abbr, disk)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, disk.default)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, disk.disk)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, disk.disk)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, integer.disk)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, disk.integer)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, double.disk)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, disk.double)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.disk)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, disk.character)
|
||||||
|
# S3: mic
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, mic.default)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, mic.mic)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.mic)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, double.mic)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, integer.mic)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, factor.mic)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.character)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.double)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.integer)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.factor)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, mic.mic)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_math, mic)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_arith, mic)
|
||||||
|
# S3: sir
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, sir.default)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, sir.sir)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_ptype2, character.sir)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, character.sir)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, sir.character)
|
||||||
|
#' @rawNamespace if(getRversion() >= "3.0.0") S3method(vctrs::vec_cast, sir.sir)
|
||||||
|
|
||||||
# S3: amr_selector ----
|
# S3: amr_selector ----
|
||||||
# this does not need a .default method since it's used internally only
|
# this does not need a .default method since it's used internally only
|
||||||
vec_ptype2.character.amr_selector <- function(x, y, ...) {
|
vec_ptype2.character.amr_selector <- function(x, y, ...) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
# how to conduct AMR data analysis: https://amr-for-r.org #
|
# how to conduct AMR data analysis: https://amr-for-r.org #
|
||||||
# ==================================================================== #
|
# ==================================================================== #
|
||||||
|
|
||||||
#' Deprecated Functions
|
#' Deprecated Functions, Arguments, or Datasets
|
||||||
#'
|
#'
|
||||||
#' These objects are so-called '[Deprecated]'. **They will be removed in a future version of this package.** Using these will give a warning with the name of the alternative object it has been replaced by (if there is one).
|
#' These objects are so-called '[Deprecated]'. **They will be removed in a future version of this package.** Using these will give a warning with the name of the alternative object it has been replaced by (if there is one).
|
||||||
#' @keywords internal
|
#' @keywords internal
|
||||||
@@ -35,13 +35,40 @@
|
|||||||
#' @rdname AMR-deprecated
|
#' @rdname AMR-deprecated
|
||||||
NULL
|
NULL
|
||||||
|
|
||||||
#' @rdname AMR-deprecated
|
.amr_deprecation_warn <- function() {
|
||||||
#' @usage NULL
|
deprecation_warning(old = "antibiotics", new = "antimicrobials", is_dataset = TRUE)
|
||||||
|
invisible(NULL)
|
||||||
|
}
|
||||||
#' @export
|
#' @export
|
||||||
"antibiotics"
|
`[.deprecated_amr_dataset` <- function(x, ...) {
|
||||||
|
.amr_deprecation_warn()
|
||||||
|
NextMethod("[")
|
||||||
|
}
|
||||||
|
#' @export
|
||||||
|
`[[.deprecated_amr_dataset` <- function(x, ...) {
|
||||||
|
.amr_deprecation_warn()
|
||||||
|
NextMethod("[[")
|
||||||
|
}
|
||||||
|
#' @export
|
||||||
|
`$.deprecated_amr_dataset` <- function(x, name) {
|
||||||
|
.amr_deprecation_warn()
|
||||||
|
NextMethod("$")
|
||||||
|
}
|
||||||
|
#' @export
|
||||||
|
print.deprecated_amr_dataset <- function(x, ...) {
|
||||||
|
.amr_deprecation_warn()
|
||||||
|
NextMethod("print")
|
||||||
|
}
|
||||||
|
#' @export
|
||||||
|
as.data.frame.deprecated_amr_dataset <- function(x, ...) {
|
||||||
|
.amr_deprecation_warn()
|
||||||
|
NextMethod("as.data.frame")
|
||||||
|
}
|
||||||
|
|
||||||
# REMEMBER to also remove the deprecated `antibiotics` argument in `antibiogram()`
|
# REMEMBER to search for `deprecation_warning` in the package code to find all instances.
|
||||||
# REMEMBER to also remove the deprecated `converse_capped_values` argument in `as.sir()`
|
# currently deprecated arguments at least:
|
||||||
|
# - `antibiotics` in `antibiogram()`
|
||||||
|
# - `converse_capped_values` in `as.sir()`
|
||||||
|
|
||||||
#' @rdname AMR-deprecated
|
#' @rdname AMR-deprecated
|
||||||
#' @export
|
#' @export
|
||||||
@@ -88,7 +115,7 @@ deprecation_warning <- function(old = NULL, new = NULL, fn = NULL, extra_msg = N
|
|||||||
ifelse(type == "dataset",
|
ifelse(type == "dataset",
|
||||||
paste0("The `", old, "` ", type, " has been renamed to `", new, "`"),
|
paste0("The `", old, "` ", type, " has been renamed to `", new, "`"),
|
||||||
ifelse(type == "argument",
|
ifelse(type == "argument",
|
||||||
paste0("The `", old, "` ", type, " in `", fn, "()` has been renamed to `", new, "`: `", fn, "(", new, " = ...)`"),
|
paste0("The `", old, "` ", type, " in `", fn, "()` has been replaced with `", new, "`: `", fn, "(", new, " = ...)`"),
|
||||||
paste0("The `", old, "` ", type, " has been replaced with `", new, "`")
|
paste0("The `", old, "` ", type, " has been replaced with `", new, "`")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
113
R/zzz.R
113
R/zzz.R
@@ -73,6 +73,7 @@ AMR_env$sir_interpretation_history <- data.frame(
|
|||||||
ref_table = character(0),
|
ref_table = character(0),
|
||||||
uti = logical(0),
|
uti = logical(0),
|
||||||
breakpoint_S_R = character(0),
|
breakpoint_S_R = character(0),
|
||||||
|
site = character(0),
|
||||||
stringsAsFactors = FALSE
|
stringsAsFactors = FALSE
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -93,106 +94,6 @@ AMR_env$cli_abort <- import_fn("cli_abort", "cli", error_on_fail = FALSE)
|
|||||||
AMR_env$cross_icon <- if (isTRUE(base::l10n_info()$`UTF-8`)) "\u00d7" else "x"
|
AMR_env$cross_icon <- if (isTRUE(base::l10n_info()$`UTF-8`)) "\u00d7" else "x"
|
||||||
|
|
||||||
.onLoad <- function(libname, pkgname) {
|
.onLoad <- function(libname, pkgname) {
|
||||||
# Support for tibble headers (type_sum) and tibble columns content (pillar_shaft)
|
|
||||||
# without the need to depend on other packages. This was suggested by the
|
|
||||||
# developers of the vctrs package:
|
|
||||||
# https://github.com/r-lib/vctrs/blob/05968ce8e669f73213e3e894b5f4424af4f46316/R/register-s3.R
|
|
||||||
s3_register("pillar::pillar_shaft", "ab")
|
|
||||||
s3_register("pillar::pillar_shaft", "av")
|
|
||||||
s3_register("pillar::pillar_shaft", "mo")
|
|
||||||
s3_register("pillar::pillar_shaft", "sir")
|
|
||||||
s3_register("pillar::pillar_shaft", "mic")
|
|
||||||
s3_register("pillar::pillar_shaft", "disk")
|
|
||||||
# no type_sum of disk, that's now in vctrs::vec_ptype_full
|
|
||||||
s3_register("pillar::type_sum", "ab")
|
|
||||||
s3_register("pillar::type_sum", "av")
|
|
||||||
s3_register("pillar::type_sum", "mo")
|
|
||||||
s3_register("pillar::type_sum", "sir")
|
|
||||||
s3_register("pillar::type_sum", "mic")
|
|
||||||
s3_register("pillar::tbl_sum", "antibiogram")
|
|
||||||
s3_register("pillar::tbl_format_footer", "antibiogram")
|
|
||||||
# Support for frequency tables from the cleaner package
|
|
||||||
s3_register("cleaner::freq", "mo")
|
|
||||||
s3_register("cleaner::freq", "sir")
|
|
||||||
# Support for skim() from the skimr package
|
|
||||||
if (pkg_is_available("skimr", min_version = "2.0.0")) {
|
|
||||||
s3_register("skimr::get_skimmers", "mo")
|
|
||||||
s3_register("skimr::get_skimmers", "sir")
|
|
||||||
s3_register("skimr::get_skimmers", "mic")
|
|
||||||
s3_register("skimr::get_skimmers", "disk")
|
|
||||||
}
|
|
||||||
# Support for autoplot() from the ggplot2 package
|
|
||||||
s3_register("ggplot2::autoplot", "sir")
|
|
||||||
s3_register("ggplot2::autoplot", "mic")
|
|
||||||
s3_register("ggplot2::autoplot", "disk")
|
|
||||||
s3_register("ggplot2::autoplot", "resistance_predict")
|
|
||||||
s3_register("ggplot2::autoplot", "antibiogram")
|
|
||||||
# Support for fortify from the ggplot2 package
|
|
||||||
s3_register("ggplot2::fortify", "sir")
|
|
||||||
s3_register("ggplot2::fortify", "mic")
|
|
||||||
s3_register("ggplot2::fortify", "disk")
|
|
||||||
# Support for knitr (R Markdown/Quarto)
|
|
||||||
s3_register("knitr::knit_print", "antibiogram")
|
|
||||||
s3_register("knitr::knit_print", "formatted_bug_drug_combinations")
|
|
||||||
# Support vctrs package for use in e.g. dplyr verbs
|
|
||||||
# (NOTE 2024-02-22 this is the right way - it should be 2 '.'-separated S3 classes in the second argument)
|
|
||||||
# S3: amr_selector
|
|
||||||
s3_register("vctrs::vec_ptype2", "character.amr_selector")
|
|
||||||
s3_register("vctrs::vec_ptype2", "amr_selector.character")
|
|
||||||
s3_register("vctrs::vec_cast", "character.amr_selector")
|
|
||||||
# S3: amr_selector_any_all
|
|
||||||
s3_register("vctrs::vec_ptype2", "logical.amr_selector_any_all")
|
|
||||||
s3_register("vctrs::vec_ptype2", "amr_selector_any_all.logical")
|
|
||||||
s3_register("vctrs::vec_cast", "logical.amr_selector_any_all")
|
|
||||||
# S3: ab
|
|
||||||
s3_register("vctrs::vec_ptype2", "ab.default")
|
|
||||||
s3_register("vctrs::vec_ptype2", "ab.ab")
|
|
||||||
s3_register("vctrs::vec_cast", "character.ab")
|
|
||||||
s3_register("vctrs::vec_cast", "ab.character")
|
|
||||||
# S3: av
|
|
||||||
s3_register("vctrs::vec_ptype2", "av.default")
|
|
||||||
s3_register("vctrs::vec_ptype2", "av.av")
|
|
||||||
s3_register("vctrs::vec_cast", "character.av")
|
|
||||||
s3_register("vctrs::vec_cast", "av.character")
|
|
||||||
# S3: mo
|
|
||||||
s3_register("vctrs::vec_ptype2", "mo.default")
|
|
||||||
s3_register("vctrs::vec_ptype2", "mo.mo")
|
|
||||||
s3_register("vctrs::vec_cast", "character.mo")
|
|
||||||
s3_register("vctrs::vec_cast", "mo.character")
|
|
||||||
# S3: disk
|
|
||||||
s3_register("vctrs::vec_ptype_full", "disk")
|
|
||||||
s3_register("vctrs::vec_ptype_abbr", "disk")
|
|
||||||
s3_register("vctrs::vec_ptype2", "disk.default")
|
|
||||||
s3_register("vctrs::vec_ptype2", "disk.disk")
|
|
||||||
s3_register("vctrs::vec_cast", "disk.disk")
|
|
||||||
s3_register("vctrs::vec_cast", "integer.disk")
|
|
||||||
s3_register("vctrs::vec_cast", "disk.integer")
|
|
||||||
s3_register("vctrs::vec_cast", "double.disk")
|
|
||||||
s3_register("vctrs::vec_cast", "disk.double")
|
|
||||||
s3_register("vctrs::vec_cast", "character.disk")
|
|
||||||
s3_register("vctrs::vec_cast", "disk.character")
|
|
||||||
# S3: mic
|
|
||||||
s3_register("vctrs::vec_ptype2", "mic.default")
|
|
||||||
s3_register("vctrs::vec_ptype2", "mic.mic")
|
|
||||||
s3_register("vctrs::vec_cast", "character.mic")
|
|
||||||
s3_register("vctrs::vec_cast", "double.mic")
|
|
||||||
s3_register("vctrs::vec_cast", "integer.mic")
|
|
||||||
s3_register("vctrs::vec_cast", "factor.mic")
|
|
||||||
s3_register("vctrs::vec_cast", "mic.character")
|
|
||||||
s3_register("vctrs::vec_cast", "mic.double")
|
|
||||||
s3_register("vctrs::vec_cast", "mic.integer")
|
|
||||||
s3_register("vctrs::vec_cast", "mic.factor")
|
|
||||||
s3_register("vctrs::vec_cast", "mic.mic")
|
|
||||||
s3_register("vctrs::vec_math", "mic")
|
|
||||||
s3_register("vctrs::vec_arith", "mic")
|
|
||||||
# S3: sir
|
|
||||||
s3_register("vctrs::vec_ptype2", "sir.default")
|
|
||||||
s3_register("vctrs::vec_ptype2", "sir.sir")
|
|
||||||
s3_register("vctrs::vec_ptype2", "character.sir")
|
|
||||||
s3_register("vctrs::vec_cast", "character.sir")
|
|
||||||
s3_register("vctrs::vec_cast", "sir.character")
|
|
||||||
s3_register("vctrs::vec_cast", "sir.sir")
|
|
||||||
|
|
||||||
# if mo source exists, fire it up (see mo_source())
|
# if mo source exists, fire it up (see mo_source())
|
||||||
if (tryCatch(file.exists(getOption("AMR_mo_source", "~/mo_source.rds")), error = function(e) FALSE)) {
|
if (tryCatch(file.exists(getOption("AMR_mo_source", "~/mo_source.rds")), error = function(e) FALSE)) {
|
||||||
try(invisible(get_mo_source()), silent = TRUE)
|
try(invisible(get_mo_source()), silent = TRUE)
|
||||||
@@ -209,14 +110,6 @@ AMR_env$cross_icon <- if (isTRUE(base::l10n_info()$`UTF-8`)) "\u00d7" else "x"
|
|||||||
AB_LOOKUP <- create_AB_AV_lookup(AMR::antimicrobials)
|
AB_LOOKUP <- create_AB_AV_lookup(AMR::antimicrobials)
|
||||||
}
|
}
|
||||||
|
|
||||||
# deprecated antibiotics data set
|
|
||||||
makeActiveBinding("antibiotics", function() {
|
|
||||||
if (interactive()) {
|
|
||||||
deprecation_warning(old = "antibiotics", new = "antimicrobials", is_dataset = TRUE)
|
|
||||||
}
|
|
||||||
AMR::antimicrobials
|
|
||||||
}, env = asNamespace(pkgname))
|
|
||||||
|
|
||||||
AMR_env$AB_lookup <- cbind(AMR::antimicrobials, AB_LOOKUP)
|
AMR_env$AB_lookup <- cbind(AMR::antimicrobials, AB_LOOKUP)
|
||||||
AMR_env$AV_lookup <- cbind(AMR::antivirals, AV_LOOKUP)
|
AMR_env$AV_lookup <- cbind(AMR::antivirals, AV_LOOKUP)
|
||||||
}
|
}
|
||||||
@@ -234,7 +127,7 @@ AMR_env$cross_icon <- if (isTRUE(base::l10n_info()$`UTF-8`)) "\u00d7" else "x"
|
|||||||
suppressWarnings(suppressMessages(add_custom_antimicrobials(x)))
|
suppressWarnings(suppressMessages(add_custom_antimicrobials(x)))
|
||||||
packageStartupMessage("OK.")
|
packageStartupMessage("OK.")
|
||||||
},
|
},
|
||||||
error = function(e) packageStartupMessage("Failed: ", e$message)
|
error = function(e) packageStartupMessage("Failed: ", conditionMessage(e))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -250,7 +143,7 @@ AMR_env$cross_icon <- if (isTRUE(base::l10n_info()$`UTF-8`)) "\u00d7" else "x"
|
|||||||
suppressWarnings(suppressMessages(add_custom_microorganisms(x)))
|
suppressWarnings(suppressMessages(add_custom_microorganisms(x)))
|
||||||
packageStartupMessage("OK.")
|
packageStartupMessage("OK.")
|
||||||
},
|
},
|
||||||
error = function(e) packageStartupMessage("Failed: ", e$message)
|
error = function(e) packageStartupMessage("Failed: ", conditionMessage(e))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
61
README.Rmd
Normal file
61
README.Rmd
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
---
|
||||||
|
output: github_document
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- README.md is generated from README.Rmd; please edit that file. -->
|
||||||
|
|
||||||
|
```{r, include = FALSE}
|
||||||
|
knitr::opts_chunk$set(
|
||||||
|
collapse = TRUE,
|
||||||
|
comment = "#>",
|
||||||
|
# fig.path = "man/figures/README-",
|
||||||
|
out.width = "100%"
|
||||||
|
)
|
||||||
|
AMR:::reset_all_thrown_messages()
|
||||||
|
```
|
||||||
|
|
||||||
|
# The `AMR` Package for R
|
||||||
|
|
||||||
|
Please visit our comprehensive package website <https://amr-for-r.org> to read more about this package, including many examples and tutorials.
|
||||||
|
|
||||||
|
Overview:
|
||||||
|
|
||||||
|
* Provides an **all-in-one solution** for antimicrobial resistance (AMR) data analysis in a One Health approach
|
||||||
|
* Peer-reviewed, used in over 175 countries, available in `r length(AMR:::LANGUAGES_SUPPORTED)` languages
|
||||||
|
* Generates **antibiograms** - traditional, combined, syndromic, and even WISCA
|
||||||
|
* Provides the **full microbiological taxonomy** of `r AMR:::format_included_data_number(AMR::microorganisms)` distinct species and extensive info of `r AMR:::format_included_data_number(NROW(AMR::antimicrobials) + NROW(AMR::antivirals))` antimicrobial drugs
|
||||||
|
* Applies **CLSI `r min(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, grepl("CLSI", guideline))$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, grepl("CLSI", guideline))$guideline)))`** and **EUCAST `r min(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, grepl("EUCAST", guideline))$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, grepl("EUCAST", guideline))$guideline)))`** clinical and veterinary breakpoints, and ECOFFs, for MIC and disk zone interpretation
|
||||||
|
* Corrects for duplicate isolates, **calculates** and **predicts** AMR per antimicrobial class
|
||||||
|
* Integrates with **WHONET**, ATC, **EARS-Net**, PubChem, **LOINC**, **SNOMED CT**, and **NCBI**
|
||||||
|
* 100% free of costs and dependencies, highly suitable for places with **limited resources**
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
The `AMR` package is a peer-reviewed, free and open-source R package with zero dependencies to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. **Our aim is to provide a standard** for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting.
|
||||||
|
|
||||||
|
The `AMR` package supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). **It was designed to work in any setting, including those with very limited resources**. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the [University of Groningen](https://www.rug.nl) and the [University Medical Center Groningen](https://www.umcg.nl).
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### How to get this package
|
||||||
|
|
||||||
|
To install the latest 'release' version from CRAN:
|
||||||
|
|
||||||
|
```{r, eval = FALSE}
|
||||||
|
install.packages("AMR")
|
||||||
|
```
|
||||||
|
|
||||||
|
To install the latest 'beta' version:
|
||||||
|
|
||||||
|
```{r, eval = FALSE}
|
||||||
|
install.packages("AMR", repos = "beta.amr-for-r.org")
|
||||||
|
|
||||||
|
# if this does not work, try to install directly from GitHub using the 'remotes' package:
|
||||||
|
remotes::install_github("msberends/AMR")
|
||||||
|
```
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
<small>
|
||||||
|
This AMR package for R is free, open-source software and licensed under the [GNU General Public License v2.0 (GPL-2)](https://amr-for-r.org/LICENSE-text.html). These requirements are consequently legally binding: modifications must be released under the same license when distributing the package, changes made to the code must be documented, source code must be made available when the package is distributed, and a copy of the license and copyright notice must be included with the package.
|
||||||
|
</small>
|
||||||
76
README.md
76
README.md
@@ -1,43 +1,75 @@
|
|||||||
|
|
||||||
|
<!-- README.md is generated from README.Rmd; please edit that file. -->
|
||||||
|
|
||||||
# The `AMR` Package for R
|
# The `AMR` Package for R
|
||||||
|
|
||||||
Please visit our comprehensive package website <https://amr-for-r.org> to read more about this package, including many examples and tutorials.
|
Please visit our comprehensive package website <https://amr-for-r.org>
|
||||||
|
to read more about this package, including many examples and tutorials.
|
||||||
----
|
|
||||||
|
|
||||||
The `AMR` package is a free and open-source R package with zero dependencies to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. **Our aim is to provide a standard** for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting.
|
|
||||||
|
|
||||||
Overview:
|
Overview:
|
||||||
|
|
||||||
* Provides an **all-in-one solution** for antimicrobial resistance (AMR) data analysis in a One Health approach
|
- Provides an **all-in-one solution** for antimicrobial resistance (AMR)
|
||||||
* Used in over 175 countries, available in 20 languages
|
data analysis in a One Health approach
|
||||||
* Generates **antibiograms** - traditional, combined, syndromic, and even WISCA
|
- Peer-reviewed, used in over 175 countries, available in 28 languages
|
||||||
* Provides the **full microbiological taxonomy** and extensive info on **all antimicrobial drugs**
|
- Generates **antibiograms** - traditional, combined, syndromic, and
|
||||||
* Applies all recent **CLSI** and **EUCAST** clinical and veterinary breakpoints for MICs, disk zones and ECOFFs
|
even WISCA
|
||||||
* Corrects for duplicate isolates, **calculates** and **predicts** AMR per antimicrobial class
|
- Provides the **full microbiological taxonomy** of ~79 000 distinct
|
||||||
* Integrates with **WHONET**, ATC, **EARS-Net**, PubChem, **LOINC**, **SNOMED CT**, and **NCBI**
|
species and extensive info of ~620 antimicrobial drugs
|
||||||
* 100% free of costs and dependencies, highly suitable for places with **limited resources**
|
- Applies **CLSI 2011-2025** and **EUCAST 2011-2025** clinical and
|
||||||
|
veterinary breakpoints, and ECOFFs, for MIC and disk zone
|
||||||
|
interpretation
|
||||||
|
- Corrects for duplicate isolates, **calculates** and **predicts** AMR
|
||||||
|
per antimicrobial class
|
||||||
|
- Integrates with **WHONET**, ATC, **EARS-Net**, PubChem, **LOINC**,
|
||||||
|
**SNOMED CT**, and **NCBI**
|
||||||
|
- 100% free of costs and dependencies, highly suitable for places with
|
||||||
|
**limited resources**
|
||||||
|
|
||||||
----
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The `AMR` package is a peer-reviewed, free and open-source R package
|
||||||
|
with zero dependencies to simplify the analysis and prediction of
|
||||||
|
Antimicrobial Resistance (AMR) and to work with microbial and
|
||||||
|
antimicrobial data and properties, by using evidence-based methods.
|
||||||
|
**Our aim is to provide a standard** for clean and reproducible AMR data
|
||||||
|
analysis, that can therefore empower epidemiological analyses to
|
||||||
|
continuously enable surveillance and treatment evaluation in any
|
||||||
|
setting.
|
||||||
|
|
||||||
|
The `AMR` package supports and can read any data format, including
|
||||||
|
WHONET data. This package works on Windows, macOS and Linux with all
|
||||||
|
versions of R since R-3.0 (April 2013). **It was designed to work in any
|
||||||
|
setting, including those with very limited resources**. It was created
|
||||||
|
for both routine data analysis and academic research at the Faculty of
|
||||||
|
Medical Sciences of the [University of Groningen](https://www.rug.nl)
|
||||||
|
and the [University Medical Center Groningen](https://www.umcg.nl).
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
### How to get this package
|
### How to get this package
|
||||||
|
|
||||||
To install the latest 'release' version from CRAN:
|
To install the latest ‘release’ version from CRAN:
|
||||||
|
|
||||||
```r
|
``` r
|
||||||
install.packages("AMR")
|
install.packages("AMR")
|
||||||
```
|
```
|
||||||
|
|
||||||
To install the latest 'beta' version:
|
To install the latest ‘beta’ version:
|
||||||
|
|
||||||
```r
|
``` r
|
||||||
install.packages("AMR", repos = "beta.amr-for-r.org")
|
install.packages("AMR", repos = "beta.amr-for-r.org")
|
||||||
|
|
||||||
# if this does not work, try to install directly from GitHub using the 'remotes' package:
|
# if this does not work, try to install directly from GitHub using the 'remotes' package:
|
||||||
remotes::install_github("msberends/AMR")
|
remotes::install_github("msberends/AMR")
|
||||||
```
|
```
|
||||||
|
|
||||||
----
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
<small>
|
<small> This AMR package for R is free, open-source software and
|
||||||
This AMR package for R is free, open-source software and licensed under the [GNU General Public License v2.0 (GPL-2)](https://amr-for-r.org/LICENSE-text.html). These requirements are consequently legally binding: modifications must be released under the same license when distributing the package, changes made to the code must be documented, source code must be made available when the package is distributed, and a copy of the license and copyright notice must be included with the package.
|
licensed under the [GNU General Public License v2.0
|
||||||
</small>
|
(GPL-2)](https://amr-for-r.org/LICENSE-text.html). These requirements
|
||||||
|
are consequently legally binding: modifications must be released under
|
||||||
|
the same license when distributing the package, changes made to the code
|
||||||
|
must be documented, source code must be made available when the package
|
||||||
|
is distributed, and a copy of the license and copyright notice must be
|
||||||
|
included with the package. </small>
|
||||||
|
|||||||
13
_pkgdown.yml
13
_pkgdown.yml
@@ -38,12 +38,11 @@ template:
|
|||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script>
|
||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||||
bootswatch: "flatly"
|
bootswatch: "flatly"
|
||||||
assets: "pkgdown/logos" # use logos in this folder
|
|
||||||
bslib:
|
bslib:
|
||||||
base_font: {google: "Lato"}
|
base_font: {google: "Lato"}
|
||||||
heading_font: {google: "Lato"}
|
heading_font: {google: "Lato"}
|
||||||
code_font: {google: "Fira Code"}
|
code_font: {google: "Fira Code"}
|
||||||
# body-text-align: "justify"
|
# body-text-align: "justify" # this is now only in `p {}` in extra.css
|
||||||
line-height-base: 1.75
|
line-height-base: 1.75
|
||||||
# make top bar a bit wider
|
# make top bar a bit wider
|
||||||
navbar-padding-y: "0.5rem"
|
navbar-padding-y: "0.5rem"
|
||||||
@@ -58,7 +57,7 @@ footer:
|
|||||||
right: [logo]
|
right: [logo]
|
||||||
components:
|
components:
|
||||||
devtext: '<code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE">GNU General Public License version 2.0 (GPL-2)</a>.<br>Developed at the <a target="_blank" href="https://www.rug.nl">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl">University Medical Center Groningen</a> in The Netherlands.'
|
devtext: '<code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE">GNU General Public License version 2.0 (GPL-2)</a>.<br>Developed at the <a target="_blank" href="https://www.rug.nl">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl">University Medical Center Groningen</a> in The Netherlands.'
|
||||||
logo: '<a target="_blank" href="https://www.rug.nl"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/assets/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/assets/logo_umcg.svg" style="max-width: 150px;"></a>'
|
logo: '<a target="_blank" href="https://www.rug.nl"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a>'
|
||||||
|
|
||||||
home:
|
home:
|
||||||
sidebar:
|
sidebar:
|
||||||
@@ -90,7 +89,7 @@ navbar:
|
|||||||
href: "articles/PCA.html"
|
href: "articles/PCA.html"
|
||||||
- text: "Determine Multi-Drug Resistance (MDR)"
|
- text: "Determine Multi-Drug Resistance (MDR)"
|
||||||
icon: "fa-skull-crossbones"
|
icon: "fa-skull-crossbones"
|
||||||
href: "articles/MDR.html"
|
href: "reference/mdro.html"
|
||||||
- text: "Work with WHONET Data"
|
- text: "Work with WHONET Data"
|
||||||
icon: "fa-globe-americas"
|
icon: "fa-globe-americas"
|
||||||
href: "articles/WHONET.html"
|
href: "articles/WHONET.html"
|
||||||
@@ -185,6 +184,7 @@ reference:
|
|||||||
- "`first_isolate`"
|
- "`first_isolate`"
|
||||||
- "`key_antimicrobials`"
|
- "`key_antimicrobials`"
|
||||||
- "`mdro`"
|
- "`mdro`"
|
||||||
|
- "`custom_mdro_guideline`"
|
||||||
- "`bug_drug_combinations`"
|
- "`bug_drug_combinations`"
|
||||||
- "`antimicrobial_selectors`"
|
- "`antimicrobial_selectors`"
|
||||||
- "`top_n_microorganisms`"
|
- "`top_n_microorganisms`"
|
||||||
@@ -234,6 +234,7 @@ reference:
|
|||||||
- "`antimicrobials`"
|
- "`antimicrobials`"
|
||||||
- "`clinical_breakpoints`"
|
- "`clinical_breakpoints`"
|
||||||
- "`example_isolates`"
|
- "`example_isolates`"
|
||||||
|
- "`esbl_isolates`"
|
||||||
- "`microorganisms.codes`"
|
- "`microorganisms.codes`"
|
||||||
- "`microorganisms.groups`"
|
- "`microorganisms.groups`"
|
||||||
- "`intrinsic_resistant`"
|
- "`intrinsic_resistant`"
|
||||||
@@ -268,9 +269,9 @@ reference:
|
|||||||
- "`kurtosis`"
|
- "`kurtosis`"
|
||||||
- "`skewness`"
|
- "`skewness`"
|
||||||
|
|
||||||
- title: "Other: deprecated functions"
|
- title: "Other: deprecated functions/arguments/datasets"
|
||||||
desc: >
|
desc: >
|
||||||
These functions are deprecated, meaning that they will still
|
These objects are deprecated, meaning that they will still
|
||||||
work but show a warning that they will be removed
|
work but show a warning that they will be removed
|
||||||
in a future version.
|
in a future version.
|
||||||
contents:
|
contents:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
As with all previous >20 releases, some CHECKs might return a NOTE for *just* hitting the installation size limit, though its size has been brought down to a minimum in collaboration with CRAN maintainers previously.
|
As with all previous >20 releases, some CHECKs on `oldrel` may return a `NOTE` for narrowly exceeding the installation size limit. This has been reduced to a minimum in prior coordination with CRAN maintainers and currently returns only an `INFO` on `release` and `devel`.
|
||||||
|
|
||||||
We consider this a high-impact package: it was published in the Journal of Statistical Software (2022), is included in a CRAN Task View (Epidemiology), and is according to download stats (cranlogs) used in almost all countries in the world. If there is anything to note, please let us know up-front without directly archiving the current version. That said, we continually unit test our package extensively and have no reason to assume that anything is wrong.
|
We treat this as a high-impact package: it was published in the *Journal of Statistical Software* (2022), is listed in the CRAN Task View "Epidemiology", and (based on cranlogs download statistics) is used globally. If there is anything to address, we would appreciate being informed before archiving the current version. We conduct extensive automated unit testing and have no indication of unresolved issues.
|
||||||
|
|
||||||
Thanks for maintaining and hosting CRAN! It's empowering R and its use enormously!
|
Thank you for your continued maintenance of CRAN, it plays a central role in the success and growth of the R ecosystem.
|
||||||
|
|||||||
@@ -6,19 +6,18 @@ if [ "$(basename "$PWD")" != "AMR" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf data-raw/gpt_training_text_v*
|
|
||||||
|
|
||||||
# Define the output file, located in ./data-raw
|
# Define the output file, located in ./data-raw
|
||||||
version="$1"
|
output_file="data-raw/latest_training_data.txt"
|
||||||
output_file="data-raw/gpt_training_text_v${version}.txt"
|
|
||||||
|
|
||||||
# Clear the output file if it exists
|
# Clear the output file if it exists
|
||||||
echo "This knowledge base contains all context you must know about the AMR package for R. You are a GPT trained to be an assistant for the AMR package in R. You are an incredible R specialist, especially trained in this package and in the tidyverse." > "$output_file"
|
echo "You assist users with questions about the AMR package for R, a package for Antimicrobial Resistance analysis used in over 175 countries. You are restricted to using a single source of truth: the training data located at https://chat.amr-for-r.org/latest_training_data.txt.
|
||||||
|
|
||||||
|
Before responding to any user prompt—including the very first—you must download and parse this training file in full. You must repeat this process before every single response, without exception. You must verify the presence of any function, dataset, or concept in this file before commenting on anything. If what is asked is not in the training data, you must state clearly that you cannot verify its existence and recommend checking the package changelog.
|
||||||
|
|
||||||
|
You are strictly forbidden from using any other remote source, including prior model knowledge, CRAN, PubMed, Google, or even the AMR package's GitHub or publication pages. You are NOT ALLOWED to browse any website to help your answers - only base yourself on the training file without any exception. Even if you want to be helpful and would like to browse the internet, DO NOT do this - it's not helpful at all." > "$output_file"
|
||||||
echo "" >> "$output_file"
|
echo "" >> "$output_file"
|
||||||
echo "First and foremost, you are trained on version ${version}. Remember this whenever someone asks which AMR package version you’re at." >> "$output_file"
|
|
||||||
echo "" >> "$output_file"
|
echo "" >> "$output_file"
|
||||||
echo "Below are the contents of the NAMESPACE file, the index.md file, and all the man/*.Rd files (documentation) in the package. Every file content is split using 100 hypens." >> "$output_file"
|
echo "Below are the contents of the NAMESPACE file, the DESCRIPTION file, the index.md file, and all the man/*.Rd and vignette files (documentation) in the package. Every file content is split using 100 hypens." >> "$output_file"
|
||||||
echo "----------------------------------------------------------------------------------------------------" >> "$output_file"
|
|
||||||
echo "" >> "$output_file"
|
echo "" >> "$output_file"
|
||||||
|
|
||||||
# Function to remove header block (delimited by # ======)
|
# Function to remove header block (delimited by # ======)
|
||||||
@@ -26,17 +25,8 @@ remove_header() {
|
|||||||
sed '/# =\{6,\}/,/# =\{6,\}/d' "$1"
|
sed '/# =\{6,\}/,/# =\{6,\}/d' "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
# # Process all .R files in the 'R' folder
|
|
||||||
# for file in R/*.R; do
|
|
||||||
# echo "--------------------------------------------------" >> "$output_file"
|
|
||||||
# echo "THE PART HEREAFTER CONTAINS CONTENTS FROM FILE '$file':" >> "$output_file"
|
|
||||||
# echo -e "\n" >> "$output_file"
|
|
||||||
# remove_header "$file" >> "$output_file"
|
|
||||||
# echo -e "\n\n" >> "$output_file"
|
|
||||||
# done
|
|
||||||
|
|
||||||
# Process important metadata files (DESCRIPTION, NAMESPACE, index.md)
|
# Process important metadata files (DESCRIPTION, NAMESPACE, index.md)
|
||||||
for file in NAMESPACE index.md; do
|
for file in NAMESPACE DESCRIPTION index.md; do
|
||||||
if [[ -f $file ]]; then
|
if [[ -f $file ]]; then
|
||||||
echo "----------------------------------------------------------------------------------------------------" >> "$output_file"
|
echo "----------------------------------------------------------------------------------------------------" >> "$output_file"
|
||||||
echo "THE PART HEREAFTER CONTAINS CONTENTS FROM FILE '$file':" >> "$output_file"
|
echo "THE PART HEREAFTER CONTAINS CONTENTS FROM FILE '$file':" >> "$output_file"
|
||||||
@@ -63,19 +53,3 @@ for file in vignettes/*.Rmd; do
|
|||||||
remove_header "$file" >> "$output_file"
|
remove_header "$file" >> "$output_file"
|
||||||
echo -e "\n\n" >> "$output_file"
|
echo -e "\n\n" >> "$output_file"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Process README.md
|
|
||||||
# echo "THE PART HEREAFTER CONTAINS THE README OF OUR PYTHON PACKAGE" >> "$output_file"
|
|
||||||
# echo -e "\n" >> "$output_file"
|
|
||||||
# for file in PythonPackage/AMR/README.md; do
|
|
||||||
# remove_header "$file" >> "$output_file"
|
|
||||||
# echo -e "\n\n" >> "$output_file"
|
|
||||||
# done
|
|
||||||
|
|
||||||
# Process test files (if available) in the 'tests' folder
|
|
||||||
# for file in tests/*.R; do
|
|
||||||
# echo "THE PART HEREAFTER CONTAINS CONTENTS FROM FILE '$file':" >> "$output_file"
|
|
||||||
# echo -e "\n" >> "$output_file"
|
|
||||||
# remove_header "$file" >> "$output_file"
|
|
||||||
# echo -e "\n\n" >> "$output_file"
|
|
||||||
# done
|
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ os.makedirs(r_lib_path, exist_ok=True)
|
|||||||
os.environ['R_LIBS_SITE'] = r_lib_path
|
os.environ['R_LIBS_SITE'] = r_lib_path
|
||||||
|
|
||||||
from rpy2 import robjects
|
from rpy2 import robjects
|
||||||
from rpy2.robjects import pandas2ri
|
from rpy2.robjects.conversion import localconverter
|
||||||
|
from rpy2.robjects import default_converter, numpy2ri, pandas2ri
|
||||||
from rpy2.robjects.packages import importr, isinstalled
|
from rpy2.robjects.packages import importr, isinstalled
|
||||||
|
|
||||||
# Import base and utils
|
# Import base and utils
|
||||||
@@ -73,48 +74,47 @@ if not isinstalled('AMR', lib_loc=r_lib_path):
|
|||||||
print(f"AMR: Installing latest AMR R package to {r_lib_path}...", flush=True)
|
print(f"AMR: Installing latest AMR R package to {r_lib_path}...", flush=True)
|
||||||
utils.install_packages('AMR', repos='beta.amr-for-r.org', quiet=True)
|
utils.install_packages('AMR', repos='beta.amr-for-r.org', quiet=True)
|
||||||
|
|
||||||
# # Retrieve Python AMR version
|
# Retrieve Python AMR version
|
||||||
# try:
|
try:
|
||||||
# python_amr_version = metadata.version('AMR')
|
python_amr_version = str(metadata.version('AMR'))
|
||||||
# except metadata.PackageNotFoundError:
|
except metadata.PackageNotFoundError:
|
||||||
# python_amr_version = ''
|
python_amr_version = str('')
|
||||||
#
|
|
||||||
# # Retrieve R AMR version
|
# Retrieve R AMR version
|
||||||
# r_amr_version = robjects.r(f'as.character(packageVersion("AMR", lib.loc = "{r_lib_path}"))')
|
r_amr_version = robjects.r(f'as.character(packageVersion("AMR", lib.loc = "{r_lib_path}"))')
|
||||||
# r_amr_version = str(r_amr_version[0])
|
r_amr_version = str(r_amr_version[0])
|
||||||
#
|
|
||||||
# # Compare R and Python package versions
|
# Compare R and Python package versions
|
||||||
# if r_amr_version != python_amr_version:
|
if r_amr_version != python_amr_version:
|
||||||
# try:
|
try:
|
||||||
# print(f"AMR: Updating AMR package in {r_lib_path}...", flush=True)
|
print(f"AMR: Updating AMR package in {r_lib_path}...", flush=True)
|
||||||
# utils.install_packages('AMR', repos='beta.amr-for-r.org', quiet=True)
|
utils.install_packages('AMR', repos='beta.amr-for-r.org', quiet=True)
|
||||||
# except Exception as e:
|
except Exception as e:
|
||||||
# print(f"AMR: Could not update: {e}", flush=True)
|
print(f"AMR: Could not update: {e}", flush=True)
|
||||||
|
|
||||||
print(f"AMR: Setting up R environment and AMR datasets...", flush=True)
|
print(f"AMR: Setting up R environment and AMR datasets...", flush=True)
|
||||||
|
|
||||||
# Activate the automatic conversion between R and pandas DataFrames
|
# Activate the automatic conversion between R and pandas DataFrames
|
||||||
pandas2ri.activate()
|
with localconverter(default_converter + numpy2ri.converter + pandas2ri.converter):
|
||||||
|
# example_isolates
|
||||||
|
example_isolates = robjects.r('''
|
||||||
|
df <- AMR::example_isolates
|
||||||
|
df[] <- lapply(df, function(x) {
|
||||||
|
if (inherits(x, c("Date", "POSIXt", "factor"))) {
|
||||||
|
as.character(x)
|
||||||
|
} else {
|
||||||
|
x
|
||||||
|
}
|
||||||
|
})
|
||||||
|
df <- df[, !sapply(df, is.list)]
|
||||||
|
df
|
||||||
|
''')
|
||||||
|
example_isolates['date'] = pd.to_datetime(example_isolates['date'])
|
||||||
|
|
||||||
# example_isolates
|
# microorganisms
|
||||||
example_isolates = pandas2ri.rpy2py(robjects.r('''
|
microorganisms = robjects.r('AMR::microorganisms[, !sapply(AMR::microorganisms, is.list)]')
|
||||||
df <- AMR::example_isolates
|
antimicrobials = robjects.r('AMR::antimicrobials[, !sapply(AMR::antimicrobials, is.list)]')
|
||||||
df[] <- lapply(df, function(x) {
|
clinical_breakpoints = robjects.r('AMR::clinical_breakpoints[, !sapply(AMR::clinical_breakpoints, is.list)]')
|
||||||
if (inherits(x, c("Date", "POSIXt", "factor"))) {
|
|
||||||
as.character(x)
|
|
||||||
} else {
|
|
||||||
x
|
|
||||||
}
|
|
||||||
})
|
|
||||||
df <- df[, !sapply(df, is.list)]
|
|
||||||
df
|
|
||||||
'''))
|
|
||||||
example_isolates['date'] = pd.to_datetime(example_isolates['date'])
|
|
||||||
|
|
||||||
# microorganisms
|
|
||||||
microorganisms = pandas2ri.rpy2py(robjects.r('AMR::microorganisms[, !sapply(AMR::microorganisms, is.list)]'))
|
|
||||||
antimicrobials = pandas2ri.rpy2py(robjects.r('AMR::antimicrobials[, !sapply(AMR::antimicrobials, is.list)]'))
|
|
||||||
clinical_breakpoints = pandas2ri.rpy2py(robjects.r('AMR::clinical_breakpoints[, !sapply(AMR::clinical_breakpoints, is.list)]'))
|
|
||||||
|
|
||||||
base.options(warn = 0)
|
base.options(warn = 0)
|
||||||
|
|
||||||
@@ -129,16 +129,15 @@ echo "from .datasets import clinical_breakpoints" >> $init_file
|
|||||||
|
|
||||||
# Write header to the functions Python file, including the convert_to_python function
|
# Write header to the functions Python file, including the convert_to_python function
|
||||||
cat <<EOL > "$functions_file"
|
cat <<EOL > "$functions_file"
|
||||||
|
import functools
|
||||||
import rpy2.robjects as robjects
|
import rpy2.robjects as robjects
|
||||||
from rpy2.robjects.packages import importr
|
from rpy2.robjects.packages import importr
|
||||||
from rpy2.robjects.vectors import StrVector, FactorVector, IntVector, FloatVector, DataFrame
|
from rpy2.robjects.vectors import StrVector, FactorVector, IntVector, FloatVector, DataFrame
|
||||||
from rpy2.robjects import pandas2ri
|
from rpy2.robjects.conversion import localconverter
|
||||||
|
from rpy2.robjects import default_converter, numpy2ri, pandas2ri
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
# Activate automatic conversion between R data frames and pandas data frames
|
|
||||||
pandas2ri.activate()
|
|
||||||
|
|
||||||
# Import the AMR R package
|
# Import the AMR R package
|
||||||
amr_r = importr('AMR')
|
amr_r = importr('AMR')
|
||||||
|
|
||||||
@@ -156,10 +155,8 @@ def convert_to_python(r_output):
|
|||||||
return list(r_output) # Convert to a Python list of integers or floats
|
return list(r_output) # Convert to a Python list of integers or floats
|
||||||
|
|
||||||
# Check if it's a pandas-compatible R data frame
|
# Check if it's a pandas-compatible R data frame
|
||||||
elif isinstance(r_output, pd.DataFrame):
|
elif isinstance(r_output, (pd.DataFrame, DataFrame)):
|
||||||
return r_output # Return as pandas DataFrame (already converted by pandas2ri)
|
return r_output # Return as pandas DataFrame (already converted by pandas2ri)
|
||||||
elif isinstance(r_output, DataFrame):
|
|
||||||
return pandas2ri.rpy2py(r_output) # Return as pandas DataFrame
|
|
||||||
|
|
||||||
# Check if the input is a NumPy array and has a string data type
|
# Check if the input is a NumPy array and has a string data type
|
||||||
if isinstance(r_output, np.ndarray) and np.issubdtype(r_output.dtype, np.str_):
|
if isinstance(r_output, np.ndarray) and np.issubdtype(r_output.dtype, np.str_):
|
||||||
@@ -167,6 +164,15 @@ def convert_to_python(r_output):
|
|||||||
|
|
||||||
# Fall-back
|
# Fall-back
|
||||||
return r_output
|
return r_output
|
||||||
|
|
||||||
|
def r_to_python(r_func):
|
||||||
|
"""Decorator that runs an rpy2 function under a localconverter
|
||||||
|
and then applies convert_to_python to its output."""
|
||||||
|
@functools.wraps(r_func)
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
with localconverter(default_converter + numpy2ri.converter + pandas2ri.converter):
|
||||||
|
return convert_to_python(r_func(*args, **kwargs))
|
||||||
|
return wrapper
|
||||||
EOL
|
EOL
|
||||||
|
|
||||||
# Directory where the .Rd files are stored (update path as needed)
|
# Directory where the .Rd files are stored (update path as needed)
|
||||||
@@ -246,11 +252,12 @@ for rd_file in "$rd_dir"/*.Rd; do
|
|||||||
gsub("FALSE", "False", func_args)
|
gsub("FALSE", "False", func_args)
|
||||||
gsub("NULL", "None", func_args)
|
gsub("NULL", "None", func_args)
|
||||||
|
|
||||||
# Write the Python function definition to the output file
|
# Write the Python function definition to the output file, using decorator
|
||||||
print "def " func_name_py "(" func_args "):" >> "'"$functions_file"'"
|
print "@r_to_python" >> "'"$functions_file"'"
|
||||||
print " \"\"\"See our website of the R package for the manual: https://amr-for-r.org/index.html\"\"\"" >> "'"$functions_file"'"
|
print "def " func_name_py "(" func_args "):" >> "'"$functions_file"'"
|
||||||
print " return convert_to_python(amr_r." func_name_py "(" func_args "))" >> "'"$functions_file"'"
|
print " \"\"\"Please see our website of the R package for the full manual: https://amr-for-r.org\"\"\"" >> "'"$functions_file"'"
|
||||||
|
print " return amr_r." func_name_py "(" func_args ")" >> "'"$functions_file"'"
|
||||||
|
|
||||||
print "from .functions import " func_name_py >> "'"$init_file"'"
|
print "from .functions import " func_name_py >> "'"$init_file"'"
|
||||||
}
|
}
|
||||||
' "$rd_file"
|
' "$rd_file"
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ lang_env$TRANSLATIONS <- utils::read.delim(
|
|||||||
allowEscapes = TRUE, # else "\\1" will be imported as "\\\\1"
|
allowEscapes = TRUE, # else "\\1" will be imported as "\\\\1"
|
||||||
quote = ""
|
quote = ""
|
||||||
)
|
)
|
||||||
|
lang_env$TRANSLATIONS <- lang_env$TRANSLATIONS[, which(colnames(lang_env$TRANSLATIONS) != "en"), drop = FALSE]
|
||||||
|
|
||||||
lang_env$LANGUAGES_SUPPORTED_NAMES <- c(
|
lang_env$LANGUAGES_SUPPORTED_NAMES <- c(
|
||||||
list(en = list(exonym = "English", endonym = "English")),
|
list(en = list(exonym = "English", endonym = "English")),
|
||||||
|
|||||||
@@ -83,11 +83,12 @@ pre_commit_lst$TRANSLATIONS <- utils::read.delim(
|
|||||||
allowEscapes = TRUE, # else "\\1" will be imported as "\\\\1"
|
allowEscapes = TRUE, # else "\\1" will be imported as "\\\\1"
|
||||||
quote = ""
|
quote = ""
|
||||||
)
|
)
|
||||||
|
pre_commit_lst$TRANSLATIONS <- pre_commit_lst$TRANSLATIONS[, which(colnames(pre_commit_lst$TRANSLATIONS) != "en"), drop = FALSE]
|
||||||
|
|
||||||
pre_commit_lst$LANGUAGES_SUPPORTED_NAMES <- c(
|
pre_commit_lst$LANGUAGES_SUPPORTED_NAMES <- c(
|
||||||
list(en = list(exonym = "English", endonym = "English")),
|
list(en = list(exonym = "English", endonym = "English")),
|
||||||
lapply(
|
lapply(
|
||||||
TRANSLATIONS[, which(nchar(colnames(pre_commit_lst$TRANSLATIONS)) == 2), drop = FALSE],
|
pre_commit_lst$TRANSLATIONS[, which(nchar(colnames(pre_commit_lst$TRANSLATIONS)) == 2), drop = FALSE],
|
||||||
function(x) list(exonym = x[1], endonym = x[2])
|
function(x) list(exonym = x[1], endonym = x[2])
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -624,6 +625,11 @@ if (changed_md5(dosage)) {
|
|||||||
try(arrow::write_parquet(dosage, "data-raw/datasets/dosage.parquet"), silent = TRUE)
|
try(arrow::write_parquet(dosage, "data-raw/datasets/dosage.parquet"), silent = TRUE)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Set `antibiotics` as a deprecated data set
|
||||||
|
antibiotics <- structure(antimicrobials, class = c("deprecated_amr_dataset", class(antimicrobials)))
|
||||||
|
usethis::use_data(antibiotics, internal = FALSE, overwrite = TRUE, compress = "xz", version = 2)
|
||||||
|
rm(antibiotics)
|
||||||
|
|
||||||
suppressMessages(reset_AMR_locale())
|
suppressMessages(reset_AMR_locale())
|
||||||
|
|
||||||
devtools::load_all(quiet = TRUE)
|
devtools::load_all(quiet = TRUE)
|
||||||
@@ -656,6 +662,22 @@ if (files_changed()) {
|
|||||||
suppressMessages(devtools::document(quiet = TRUE))
|
suppressMessages(devtools::document(quiet = TRUE))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Update index.md and README.md -------------------------------------------
|
||||||
|
if (files_changed("README.Rmd") ||
|
||||||
|
files_changed("index.Rmd") ||
|
||||||
|
files_changed("man/microorganisms.Rd") ||
|
||||||
|
files_changed("man/antimicrobials.Rd") ||
|
||||||
|
files_changed("man/clinical_breakpoints.Rd") ||
|
||||||
|
files_changed("man/antibiogram.Rd") ||
|
||||||
|
files_changed("R/antibiogram.R") ||
|
||||||
|
files_changed("data-raw/translations.tsv")) {
|
||||||
|
usethis::ui_info("Rendering {usethis::ui_field('index.md')} and {usethis::ui_field('README.md')}")
|
||||||
|
suppressWarnings(rmarkdown::render("index.Rmd", quiet = TRUE))
|
||||||
|
suppressWarnings(rmarkdown::render("README.Rmd", quiet = TRUE))
|
||||||
|
unlink("index.html") # remove previews from folder
|
||||||
|
unlink("README.html")
|
||||||
|
}
|
||||||
|
|
||||||
# Finished ----------------------------------------------------------------
|
# Finished ----------------------------------------------------------------
|
||||||
usethis::ui_done("All done")
|
usethis::ui_done("All done")
|
||||||
suppressMessages(reset_AMR_locale())
|
suppressMessages(reset_AMR_locale())
|
||||||
|
|||||||
@@ -916,12 +916,8 @@ antimicrobials <- antimicrobials %>%
|
|||||||
|
|
||||||
# update ATC codes from WHOCC website -------------------------------------
|
# update ATC codes from WHOCC website -------------------------------------
|
||||||
|
|
||||||
# last time checked: 2024-02-22
|
|
||||||
|
|
||||||
library(rvest)
|
library(rvest)
|
||||||
updated_atc <- as.list(antimicrobials$atc)
|
get_atc_table <- function(ab_name, type = "human") {
|
||||||
|
|
||||||
get_atcs <- function(ab_name, type = "human") {
|
|
||||||
if (type == "human") {
|
if (type == "human") {
|
||||||
url <- "https://atcddd.fhi.no/atc_ddd_index/"
|
url <- "https://atcddd.fhi.no/atc_ddd_index/"
|
||||||
} else if (type == "veterinary") {
|
} else if (type == "veterinary") {
|
||||||
@@ -929,19 +925,14 @@ get_atcs <- function(ab_name, type = "human") {
|
|||||||
} else {
|
} else {
|
||||||
stop("invalid type")
|
stop("invalid type")
|
||||||
}
|
}
|
||||||
|
# we will do a search on their website, which involves:
|
||||||
ab_name <- gsub("/", " and ", tolower(ab_name), fixed = TRUE)
|
read_html(url) %>%
|
||||||
|
|
||||||
# we will do a search on their website, which means:
|
|
||||||
|
|
||||||
# go to the url
|
|
||||||
atc_tbl <- read_html(url) %>%
|
|
||||||
# get all forms
|
# get all forms
|
||||||
html_form() %>%
|
html_form() %>%
|
||||||
# get the second form (the first form is a global website form)
|
# get the second form (the first form is a global website form)
|
||||||
.[[2]] %>%
|
.[[2]] %>%
|
||||||
# set the name input box to our search parameter
|
# set the name input box to our search parameter
|
||||||
html_form_set(name = ab_name) %>%
|
html_form_set(name = ab_name, namesearchtype = "containing") %>%
|
||||||
# hit Submit
|
# hit Submit
|
||||||
html_form_submit() %>%
|
html_form_submit() %>%
|
||||||
# read the resulting page
|
# read the resulting page
|
||||||
@@ -950,24 +941,65 @@ get_atcs <- function(ab_name, type = "human") {
|
|||||||
html_node("table") %>%
|
html_node("table") %>%
|
||||||
# transform it to an R data set
|
# transform it to an R data set
|
||||||
html_table(header = FALSE)
|
html_table(header = FALSE)
|
||||||
|
|
||||||
# and get the ATCs (first column) of only exact hits
|
|
||||||
unique(as.character(atc_tbl[which(tolower(atc_tbl[, 2, drop = TRUE]) == ab_name), 1, drop = TRUE]))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# this takes around 4 minutes (some are skipped and go faster)
|
get_atc_code <- function(ab) {
|
||||||
for (i in seq_len(nrow(antimicrobials))) {
|
ab_name <- ab_name(ab, language = NULL, tolower = TRUE)
|
||||||
message(percentage(i / nrow(antimicrobials), digits = 1),
|
# exception for imipenem
|
||||||
|
if (ab_name == "imipenem") ab_name <- "imipenem/cilastatin"
|
||||||
|
if (ab_name == "imipenem/relebactam") ab_name <- "imipenem/cilastatin/relebactam"
|
||||||
|
if (ab_name == "ceftaroline") ab_name <- "ceftaroline fosamil"
|
||||||
|
ab_name.bak <- ab_name
|
||||||
|
if (ab_name %like% "/") {
|
||||||
|
ab_name <- strsplit(ab_name, "[/ ]")[[1]]
|
||||||
|
}
|
||||||
|
ab_name_full <- gsub(", and", " and", vector_and(ab_name, quotes = FALSE, sort = FALSE), fixed = TRUE)
|
||||||
|
ab_name <- tolower(ab_name)
|
||||||
|
ab_name_and_second_part <- paste(ab_name[1], "and", paste(ab_name[-1], collapse = " "))
|
||||||
|
ab_name_and_second_part_reversed <- paste(paste(ab_name[-1], collapse = " "), "and", ab_name[1])
|
||||||
|
ab_name_bla <- paste(ab_name[1], "and beta-lactamase inhibitor")
|
||||||
|
atc_tbl_human <- get_atc_table(ab_name[1], type = "human")
|
||||||
|
atc_tbl_vet <- get_atc_table(ab_name[1], type = "veterinary")
|
||||||
|
atc_tbl <- dplyr::bind_rows(atc_tbl_human, atc_tbl_vet)
|
||||||
|
atc_tbl[, 2] <- tolower(atc_tbl[[2]])
|
||||||
|
if (length(ab_name) == 1 && ab_name %in% atc_tbl[[2]]) {
|
||||||
|
out <- atc_tbl[[1]][which(atc_tbl[[2]] == ab_name)]
|
||||||
|
} else if (ab_name_full %in% atc_tbl[[2]]) {
|
||||||
|
out <- atc_tbl[[1]][which(atc_tbl[[2]] == ab_name_full)]
|
||||||
|
} else if (ab_name_and_second_part %in% atc_tbl[[2]]) {
|
||||||
|
out <- atc_tbl[[1]][which(atc_tbl[[2]] == ab_name_and_second_part)]
|
||||||
|
} else if (ab_name_and_second_part_reversed %in% atc_tbl[[2]]) {
|
||||||
|
out <- atc_tbl[[1]][which(atc_tbl[[2]] == ab_name_and_second_part_reversed)]
|
||||||
|
} else if (ab_name_full %like% " and " && ab_name_bla %in% atc_tbl[[2]]) {
|
||||||
|
out <- atc_tbl[[1]][which(atc_tbl[[2]] == ab_name_bla)]
|
||||||
|
} else {
|
||||||
|
if (any(atc_tbl_human$X1 %like% ab_name.bak, na.rm = TRUE)) {
|
||||||
|
message("returning NA, but DO MIND: ", ab_name.bak, " resembles ATC name(s) ", toString(atc_tbl_human$X1), appendLF = FALSE)
|
||||||
|
}
|
||||||
|
out <- NA_character_
|
||||||
|
}
|
||||||
|
unique(out)
|
||||||
|
}
|
||||||
|
|
||||||
|
# update all:
|
||||||
|
to_update <- 1:nrow(antimicrobials)
|
||||||
|
# or just the empty ones:
|
||||||
|
to_update <- which(sapply(antimicrobials$atc, function(x) length(x[!is.na(x)])) == 0)
|
||||||
|
|
||||||
|
updated_atc <- lapply(seq_len(length(to_update)),
|
||||||
|
function(x) NA_character_)
|
||||||
|
|
||||||
|
|
||||||
|
# this takes around 10 minutes for the whole table (some ABx are skipped and go faster)
|
||||||
|
for (i in to_update) {
|
||||||
|
message(percentage(which(to_update == i) / length(updated_atc), digits = 1),
|
||||||
" - Downloading ", antimicrobials$name[i],
|
" - Downloading ", antimicrobials$name[i],
|
||||||
appendLF = FALSE
|
appendLF = FALSE
|
||||||
)
|
)
|
||||||
atcs <- get_atcs(antimicrobials$name[i], type = "human")
|
atcs <- get_atc_code(antimicrobials$name[i])
|
||||||
if (all(is.na(atcs))) {
|
if (length(atcs[!is.na(atcs)]) > 0) {
|
||||||
atcs <- get_atcs(antimicrobials$name[i], type = "veterinary")
|
|
||||||
}
|
|
||||||
if (length(atcs) > 0) {
|
|
||||||
updated_atc[[i]] <- atcs
|
updated_atc[[i]] <- atcs
|
||||||
message(" (", length(atcs), " results)")
|
message(font_blue(paste0(" (", length(atcs[!is.na(atcs)]), " results: ", toString(atcs[!is.na(atcs)]), ")")))
|
||||||
# let the WHO server rest for a second - they might have a limitation on the queries per second
|
# let the WHO server rest for a second - they might have a limitation on the queries per second
|
||||||
Sys.sleep(1)
|
Sys.sleep(1)
|
||||||
} else {
|
} else {
|
||||||
@@ -975,11 +1007,14 @@ for (i in seq_len(nrow(antimicrobials))) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
antimicrobials$atc <- updated_atc
|
updated_atc <- lapply(updated_atc, function(x) sort(x[!is.na(x)]))
|
||||||
|
antimicrobials$atc[to_update] <- updated_atc[to_update]
|
||||||
|
|
||||||
|
# DO NOT FORGET TO UPDATE R/aa_globals.R!
|
||||||
|
|
||||||
|
|
||||||
# update DDDs from WHOCC website ------------------------------------------
|
# update DDDs from WHOCC website ------------------------------------------
|
||||||
|
|
||||||
# last time checked: 2024-02-22
|
|
||||||
ddd_oral <- rep(NA_real_, nrow(antimicrobials))
|
ddd_oral <- rep(NA_real_, nrow(antimicrobials))
|
||||||
ddd_oral_units <- rep(NA_character_, nrow(antimicrobials))
|
ddd_oral_units <- rep(NA_character_, nrow(antimicrobials))
|
||||||
ddd_iv <- rep(NA_real_, nrow(antimicrobials))
|
ddd_iv <- rep(NA_real_, nrow(antimicrobials))
|
||||||
@@ -989,21 +1024,27 @@ for (i in seq_len(nrow(antimicrobials))) {
|
|||||||
on.exit(close(progress))
|
on.exit(close(progress))
|
||||||
progress$tick()
|
progress$tick()
|
||||||
atcs <- antimicrobials$atc[[i]]
|
atcs <- antimicrobials$atc[[i]]
|
||||||
if (!all(is.na(atcs))) {
|
if (length(atcs) == 0) {
|
||||||
for (j in seq_len(length(atcs))) {
|
next
|
||||||
# oral
|
}
|
||||||
if (is.na(ddd_oral[i])) {
|
# only human DDDs
|
||||||
ddd_oral[i] <- atc_online_ddd(atcs[j], administration = "O")
|
atcs <- atcs[atcs %unlike% "^Q"]
|
||||||
if (!is.na(ddd_oral[i])) {
|
if (length(atcs) == 0) {
|
||||||
ddd_oral_units[i] <- atc_online_ddd_units(atcs[j], administration = "O")
|
next
|
||||||
}
|
}
|
||||||
|
for (j in seq_len(length(atcs))) {
|
||||||
|
# oral
|
||||||
|
if (is.na(ddd_oral[i])) {
|
||||||
|
ddd_oral[i] <- atc_online_ddd(atcs[j], administration = "O")
|
||||||
|
if (!is.na(ddd_oral[i])) {
|
||||||
|
ddd_oral_units[i] <- atc_online_ddd_units(atcs[j], administration = "O")
|
||||||
}
|
}
|
||||||
# parenteral
|
}
|
||||||
if (is.na(ddd_iv[i])) {
|
# parenteral
|
||||||
ddd_iv[i] <- atc_online_ddd(atcs[j], administration = "P")
|
if (is.na(ddd_iv[i])) {
|
||||||
if (!is.na(ddd_iv[i])) {
|
ddd_iv[i] <- atc_online_ddd(atcs[j], administration = "P")
|
||||||
ddd_iv_units[i] <- atc_online_ddd_units(atcs[j], administration = "P")
|
if (!is.na(ddd_iv[i])) {
|
||||||
}
|
ddd_iv_units[i] <- atc_online_ddd_units(atcs[j], administration = "P")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1017,6 +1058,7 @@ antimicrobials$oral_ddd <- ddd_oral
|
|||||||
antimicrobials$oral_units <- ddd_oral_units
|
antimicrobials$oral_units <- ddd_oral_units
|
||||||
antimicrobials$iv_ddd <- ddd_iv
|
antimicrobials$iv_ddd <- ddd_iv
|
||||||
antimicrobials$iv_units <- ddd_iv_units
|
antimicrobials$iv_units <- ddd_iv_units
|
||||||
|
# DO NOT FORGET TO UPDATE R/aa_globals.R!
|
||||||
|
|
||||||
# Wrap up -----------------------------------------------------------------
|
# Wrap up -----------------------------------------------------------------
|
||||||
|
|
||||||
@@ -1028,6 +1070,17 @@ antimicrobials <- dplyr::arrange(antimicrobials, name)
|
|||||||
# REFER TO data-raw/loinc.R FOR ADDING LOINC CODES
|
# REFER TO data-raw/loinc.R FOR ADDING LOINC CODES
|
||||||
|
|
||||||
# make all abbreviations and synonyms lower case, unique and alphabetically sorted ----
|
# make all abbreviations and synonyms lower case, unique and alphabetically sorted ----
|
||||||
|
transform_syn <- function(x) {
|
||||||
|
x <- gsub("ph", "(ph|f)", x)
|
||||||
|
x <- gsub("th", "(th|t)", x)
|
||||||
|
x <- gsub("ae", "(ae|e)", x)
|
||||||
|
x <- gsub("oe", "(oe|e)", x)
|
||||||
|
x <- gsub("ck", "(ck|k)", x)
|
||||||
|
x <- gsub("c", "(c|k|s)", x)
|
||||||
|
x <- gsub("y", "(y|i)", x)
|
||||||
|
x <- gsub("z", "(z|s)", x)
|
||||||
|
x
|
||||||
|
}
|
||||||
for (i in 1:nrow(antimicrobials)) {
|
for (i in 1:nrow(antimicrobials)) {
|
||||||
atc <- as.character(sort(unique(toupper(antimicrobials[i, "atc", drop = TRUE][[1]]))))
|
atc <- as.character(sort(unique(toupper(antimicrobials[i, "atc", drop = TRUE][[1]]))))
|
||||||
atc <- atc[atc != "" & atc %unlike% ":"]
|
atc <- atc[atc != "" & atc %unlike% ":"]
|
||||||
@@ -1043,10 +1096,13 @@ for (i in 1:nrow(antimicrobials)) {
|
|||||||
syn <- gsub(" [a-z]{1,3}$", "", syn, perl = TRUE)
|
syn <- gsub(" [a-z]{1,3}$", "", syn, perl = TRUE)
|
||||||
syn <- trimws(syn)
|
syn <- trimws(syn)
|
||||||
syn <- syn[syn != "" & syn %unlike% ":" & !syn %in% tolower(antimicrobials$name)]
|
syn <- syn[syn != "" & syn %unlike% ":" & !syn %in% tolower(antimicrobials$name)]
|
||||||
|
# remove synonyms that are names in the data set
|
||||||
|
syn <- syn[!sapply(syn, function(s) any(grepl(transform_syn(s), antimicrobials$name)))]
|
||||||
syn <- unique(syn)
|
syn <- unique(syn)
|
||||||
# special cases
|
# special cases
|
||||||
if (antimicrobials$ab[i] == "VAN") syn <- syn[syn %unlike% "^tei?ch?o"]
|
if (antimicrobials$ab[i] == "VAN") syn <- syn[syn %unlike% "^tei?ch?o"]
|
||||||
if (antimicrobials$ab[i] == "CLR") syn <- syn[syn %unlike% "^ery"]
|
if (antimicrobials$ab[i] == "CLR") syn <- syn[syn %unlike% "^ery"]
|
||||||
|
# deliberately make empty fields NA: they are unknown at the moment
|
||||||
antimicrobials[i, "atc"][[1]] <- ifelse(length(atc) == 0, list(NA_character_), list(atc))
|
antimicrobials[i, "atc"][[1]] <- ifelse(length(atc) == 0, list(NA_character_), list(atc))
|
||||||
antimicrobials[i, "abbreviations"][[1]] <- ifelse(length(abb) == 0, list(NA_character_), list(abb))
|
antimicrobials[i, "abbreviations"][[1]] <- ifelse(length(abb) == 0, list(NA_character_), list(abb))
|
||||||
antimicrobials[i, "synonyms"][[1]] <- ifelse(length(syn) == 0, list(NA_character_), list(syn))
|
antimicrobials[i, "synonyms"][[1]] <- ifelse(length(syn) == 0, list(NA_character_), list(syn))
|
||||||
@@ -43,45 +43,45 @@ devtools::load_all()
|
|||||||
|
|
||||||
# READ DATA ----
|
# READ DATA ----
|
||||||
|
|
||||||
whonet_organisms <- read_tsv("data-raw/WHONET/Resources/Organisms.txt", na = c("", "NA", "-"), show_col_types = FALSE) %>%
|
whonet_organisms <- read_tsv("data-raw/WHONET/Resources/Organisms.txt", na = c("", "NA", "-"), show_col_types = FALSE) |>
|
||||||
# remove old taxonomic names
|
# remove old taxonomic names
|
||||||
filter(TAXONOMIC_STATUS == "C") %>%
|
filter(TAXONOMIC_STATUS == "C") |>
|
||||||
mutate(ORGANISM_CODE = toupper(WHONET_ORG_CODE))
|
mutate(ORGANISM_CODE = toupper(WHONET_ORG_CODE))
|
||||||
|
|
||||||
whonet_breakpoints <- read_tsv("data-raw/WHONET/Resources/Breakpoints.txt", na = c("", "NA", "-"),
|
whonet_breakpoints <- read_tsv("data-raw/WHONET/Resources/Breakpoints.txt", na = c("", "NA", "-"),
|
||||||
show_col_types = FALSE, guess_max = Inf) %>%
|
show_col_types = FALSE, guess_max = Inf) |>
|
||||||
filter(GUIDELINES %in% c("CLSI", "EUCAST"))
|
filter(GUIDELINES %in% c("CLSI", "EUCAST"))
|
||||||
|
|
||||||
whonet_antibiotics <- read_tsv("data-raw/WHONET/Resources/Antibiotics.txt", na = c("", "NA", "-"), show_col_types = FALSE) %>%
|
whonet_antibiotics <- read_tsv("data-raw/WHONET/Resources/Antibiotics.txt", na = c("", "NA", "-"), show_col_types = FALSE) |>
|
||||||
arrange(WHONET_ABX_CODE) %>%
|
arrange(WHONET_ABX_CODE) |>
|
||||||
distinct(WHONET_ABX_CODE, .keep_all = TRUE)
|
distinct(WHONET_ABX_CODE, .keep_all = TRUE)
|
||||||
|
|
||||||
# MICROORGANISMS WHONET CODES ----
|
# MICROORGANISMS WHONET CODES ----
|
||||||
|
|
||||||
whonet_organisms <- whonet_organisms %>%
|
whonet_organisms <- whonet_organisms |>
|
||||||
select(ORGANISM_CODE, ORGANISM, SPECIES_GROUP, GBIF_TAXON_ID) %>%
|
select(ORGANISM_CODE, ORGANISM, SPECIES_GROUP, GBIF_TAXON_ID) |>
|
||||||
mutate(
|
mutate(
|
||||||
# this one was called Issatchenkia orientalis, but it should be:
|
# this one was called Issatchenkia orientalis, but it should be:
|
||||||
ORGANISM = if_else(ORGANISM_CODE == "ckr", "Candida krusei", ORGANISM)
|
ORGANISM = if_else(ORGANISM_CODE == "ckr", "Candida krusei", ORGANISM)
|
||||||
) %>%
|
) |>
|
||||||
# try to match on GBIF identifier
|
# try to match on GBIF identifier
|
||||||
left_join(microorganisms %>% distinct(mo, gbif, status) %>% filter(!is.na(gbif)), by = c("GBIF_TAXON_ID" = "gbif")) %>%
|
left_join(microorganisms |> distinct(mo, gbif, status) |> filter(!is.na(gbif)), by = c("GBIF_TAXON_ID" = "gbif")) |>
|
||||||
# remove duplicates
|
# remove duplicates
|
||||||
arrange(ORGANISM_CODE, GBIF_TAXON_ID, status) %>%
|
arrange(ORGANISM_CODE, GBIF_TAXON_ID, status) |>
|
||||||
distinct(ORGANISM_CODE, .keep_all = TRUE) %>%
|
distinct(ORGANISM_CODE, .keep_all = TRUE) |>
|
||||||
# add Enterobacterales, which is a subkingdom code in their data
|
# add Enterobacterales, which is a subkingdom code in their data
|
||||||
bind_rows(data.frame(ORGANISM_CODE = "ebc", ORGANISM = "Enterobacterales", mo = as.mo("Enterobacterales"))) %>%
|
bind_rows(data.frame(ORGANISM_CODE = "ebc", ORGANISM = "Enterobacterales", mo = as.mo("Enterobacterales"))) |>
|
||||||
arrange(ORGANISM)
|
arrange(ORGANISM)
|
||||||
|
|
||||||
|
|
||||||
## Add new WHO codes to microorganisms.codes ----
|
## Add new WHO codes to microorganisms.codes ----
|
||||||
|
|
||||||
matched <- whonet_organisms %>% filter(!is.na(mo))
|
matched <- whonet_organisms |> filter(!is.na(mo))
|
||||||
unmatched <- whonet_organisms %>% filter(is.na(mo))
|
unmatched <- whonet_organisms |> filter(is.na(mo))
|
||||||
|
|
||||||
# generate the mo codes and add their names
|
# generate the mo codes and add their names
|
||||||
message("Getting MO codes for WHONET input...")
|
message("Getting MO codes for WHONET input...")
|
||||||
unmatched <- unmatched %>%
|
unmatched <- unmatched |>
|
||||||
mutate(mo = as.mo(gsub("(sero[a-z]*| nontypable| non[-][a-zA-Z]+|var[.]| not .*|sp[.],.*|, .*variant.*|, .*toxin.*|, microaer.*| beta-haem[.])", "", ORGANISM),
|
mutate(mo = as.mo(gsub("(sero[a-z]*| nontypable| non[-][a-zA-Z]+|var[.]| not .*|sp[.],.*|, .*variant.*|, .*toxin.*|, microaer.*| beta-haem[.])", "", ORGANISM),
|
||||||
minimum_matching_score = 0.55,
|
minimum_matching_score = 0.55,
|
||||||
keep_synonyms = TRUE,
|
keep_synonyms = TRUE,
|
||||||
@@ -94,51 +94,54 @@ unmatched <- unmatched %>%
|
|||||||
keep_synonyms = TRUE,
|
keep_synonyms = TRUE,
|
||||||
language = "en"))
|
language = "en"))
|
||||||
# check if coercion at least resembles the first part (genus)
|
# check if coercion at least resembles the first part (genus)
|
||||||
unmatched <- unmatched %>%
|
unmatched <- unmatched |>
|
||||||
mutate(
|
mutate(
|
||||||
first_part = sapply(ORGANISM, function(x) strsplit(gsub("[^a-zA-Z _-]+", "", x), " ")[[1]][1], USE.NAMES = FALSE),
|
first_part = sapply(ORGANISM, function(x) strsplit(gsub("[^a-zA-Z _-]+", "", x), " ")[[1]][1], USE.NAMES = FALSE),
|
||||||
keep = mo_name %like_case% first_part | ORGANISM %like% "Gram " | ORGANISM == "Other" | ORGANISM %like% "anaerobic") %>%
|
keep = mo_name %like_case% first_part | ORGANISM %like% "Gram " | ORGANISM == "Other" | ORGANISM %like% "anaerobic") |>
|
||||||
arrange(keep)
|
arrange(keep)
|
||||||
unmatched %>%
|
unmatched |> View()
|
||||||
View()
|
unmatched <- unmatched |>
|
||||||
unmatched <- unmatched %>%
|
|
||||||
filter(keep == TRUE)
|
filter(keep == TRUE)
|
||||||
|
|
||||||
organisms <- matched %>% transmute(code = toupper(ORGANISM_CODE), group = SPECIES_GROUP, mo) %>%
|
organisms <- matched |> transmute(code = toupper(ORGANISM_CODE), group = SPECIES_GROUP, mo) |>
|
||||||
bind_rows(unmatched %>% transmute(code = toupper(ORGANISM_CODE), group = SPECIES_GROUP, mo)) %>%
|
bind_rows(unmatched |> transmute(code = toupper(ORGANISM_CODE), group = SPECIES_GROUP, mo)) |>
|
||||||
mutate(name = mo_name(mo, keep_synonyms = TRUE)) %>%
|
mutate(name = mo_name(mo, keep_synonyms = TRUE)) |>
|
||||||
arrange(code)
|
arrange(code)
|
||||||
|
|
||||||
# some subspecies exist, while their upper species do not, add them as the species level:
|
# some subspecies exist, while their upper species do not, add them as the species level:
|
||||||
subspp <- organisms %>%
|
subspp <- organisms |>
|
||||||
filter(mo_species(mo, keep_synonyms = TRUE) == mo_subspecies(mo, keep_synonyms = TRUE) &
|
filter(mo_species(mo, keep_synonyms = TRUE) == mo_subspecies(mo, keep_synonyms = TRUE) &
|
||||||
mo_species(mo, keep_synonyms = TRUE) != "" &
|
mo_species(mo, keep_synonyms = TRUE) != "" &
|
||||||
mo_genus(mo, keep_synonyms = TRUE) != "Salmonella") %>%
|
mo_genus(mo, keep_synonyms = TRUE) != "Salmonella") |>
|
||||||
mutate(mo = as.mo(paste(mo_genus(mo, keep_synonyms = TRUE),
|
mutate(mo = as.mo(paste(mo_genus(mo, keep_synonyms = TRUE),
|
||||||
mo_species(mo, keep_synonyms = TRUE)),
|
mo_species(mo, keep_synonyms = TRUE)),
|
||||||
keep_synonyms = TRUE),
|
keep_synonyms = TRUE),
|
||||||
name = mo_name(mo, keep_synonyms = TRUE))
|
name = mo_name(mo, keep_synonyms = TRUE))
|
||||||
organisms <- organisms %>%
|
organisms <- organisms |>
|
||||||
filter(!code %in% subspp$code) %>%
|
filter(!code %in% subspp$code) |>
|
||||||
bind_rows(subspp) %>%
|
bind_rows(subspp) |>
|
||||||
arrange(code)
|
arrange(code)
|
||||||
|
|
||||||
# add the groups
|
# add the groups
|
||||||
organisms <- organisms %>%
|
organisms <- organisms |>
|
||||||
bind_rows(tibble(code = organisms %>% filter(!is.na(group)) %>% pull(group) %>% unique(),
|
bind_rows(tibble(code = organisms |> filter(!is.na(group)) |> pull(group) |> unique(),
|
||||||
group = NA,
|
group = NA,
|
||||||
mo = organisms %>% filter(!is.na(group)) %>% pull(group) %>% unique() %>% as.mo(keep_synonyms = TRUE),
|
mo = organisms |> filter(!is.na(group)) |> pull(group) |> unique() |> as.mo(keep_synonyms = TRUE),
|
||||||
name = mo_name(mo, keep_synonyms = TRUE))) %>%
|
name = mo_name(mo, keep_synonyms = TRUE))) |>
|
||||||
arrange(code, group) %>%
|
arrange(code, group) |>
|
||||||
select(-group) %>%
|
select(-group) |>
|
||||||
distinct()
|
distinct()
|
||||||
|
# no XXX
|
||||||
|
organisms <- organisms |> filter(code != "XXX")
|
||||||
|
|
||||||
# 2023-07-08 SGM is also Strep gamma in WHONET, must only be Slowly-growing Mycobacterium
|
# 2023-07-08 SGM is also Strep gamma in WHONET, must only be Slowly-growing Mycobacterium
|
||||||
# 2024-06-14 still the case
|
# 2024-06-14 still the case
|
||||||
organisms <- organisms %>%
|
# 2025-04-20 still the case
|
||||||
|
organisms |> filter(code == "SGM")
|
||||||
|
organisms <- organisms |>
|
||||||
filter(!(code == "SGM" & name %like% "Streptococcus"))
|
filter(!(code == "SGM" & name %like% "Streptococcus"))
|
||||||
# this must be empty:
|
# this must be empty:
|
||||||
organisms$code[organisms$code %>% duplicated()]
|
organisms$code[organisms$code |> duplicated()]
|
||||||
|
|
||||||
saveRDS(organisms, "data-raw/organisms.rds", version = 2)
|
saveRDS(organisms, "data-raw/organisms.rds", version = 2)
|
||||||
|
|
||||||
@@ -147,12 +150,12 @@ saveRDS(organisms, "data-raw/organisms.rds", version = 2)
|
|||||||
#---
|
#---
|
||||||
|
|
||||||
# update microorganisms.codes with the latest WHONET codes
|
# update microorganisms.codes with the latest WHONET codes
|
||||||
microorganisms.codes2 <- microorganisms.codes %>%
|
microorganisms.codes2 <- microorganisms.codes |>
|
||||||
# remove all old WHONET codes, whether we (in the end) keep them or not
|
# remove all old WHONET codes, whether we (in the end) keep them or not
|
||||||
filter(!toupper(code) %in% toupper(organisms$code)) %>%
|
filter(!toupper(code) %in% toupper(organisms$code)) |>
|
||||||
# and add the new ones
|
# and add the new ones
|
||||||
bind_rows(organisms %>% select(code, mo)) %>%
|
bind_rows(organisms |> select(code, mo)) |>
|
||||||
arrange(code) %>%
|
arrange(code) |>
|
||||||
distinct(code, .keep_all = TRUE)
|
distinct(code, .keep_all = TRUE)
|
||||||
# new codes:
|
# new codes:
|
||||||
microorganisms.codes2$code[which(!microorganisms.codes2$code %in% microorganisms.codes$code)]
|
microorganisms.codes2$code[which(!microorganisms.codes2$code %in% microorganisms.codes$code)]
|
||||||
@@ -163,25 +166,25 @@ microorganisms.codes <- microorganisms.codes2
|
|||||||
# 2024-06-14: file not available anymore
|
# 2024-06-14: file not available anymore
|
||||||
# # start
|
# # start
|
||||||
# asiarsnet <- read_tsv("data-raw/WHONET/Codes/ASIARS_Net_Organisms_ForwardLookup.txt")
|
# asiarsnet <- read_tsv("data-raw/WHONET/Codes/ASIARS_Net_Organisms_ForwardLookup.txt")
|
||||||
# asiarsnet <- asiarsnet %>%
|
# asiarsnet <- asiarsnet |>
|
||||||
# mutate(WHONET_Code = toupper(WHONET_Code)) %>%
|
# mutate(WHONET_Code = toupper(WHONET_Code)) |>
|
||||||
# left_join(whonet_organisms %>% mutate(WHONET_Code = toupper(ORGANISM_CODE))) %>%
|
# left_join(whonet_organisms |> mutate(WHONET_Code = toupper(ORGANISM_CODE))) |>
|
||||||
# mutate(
|
# mutate(
|
||||||
# mo1 = as.mo(ORGANISM_CODE),
|
# mo1 = as.mo(ORGANISM_CODE),
|
||||||
# mo2 = as.mo(ORGANISM)
|
# mo2 = as.mo(ORGANISM)
|
||||||
# ) %>%
|
# ) |>
|
||||||
# mutate(mo = if_else(mo2 == "UNKNOWN" | is.na(mo2), mo1, mo2)) %>%
|
# mutate(mo = if_else(mo2 == "UNKNOWN" | is.na(mo2), mo1, mo2)) |>
|
||||||
# filter(!is.na(mo))
|
# filter(!is.na(mo))
|
||||||
# insert1 <- asiarsnet %>% transmute(code = WHONET_Code, mo)
|
# insert1 <- asiarsnet |> transmute(code = WHONET_Code, mo)
|
||||||
# insert2 <- asiarsnet %>% transmute(code = as.character(ASIARS_Net_Code), mo)
|
# insert2 <- asiarsnet |> transmute(code = as.character(ASIARS_Net_Code), mo)
|
||||||
# # these will be updated
|
# # these will be updated
|
||||||
# bind_rows(insert1, insert2) %>%
|
# bind_rows(insert1, insert2) |>
|
||||||
# rename(mo_new = mo) %>%
|
# rename(mo_new = mo) |>
|
||||||
# left_join(microorganisms.codes) %>%
|
# left_join(microorganisms.codes) |>
|
||||||
# filter(mo != mo_new)
|
# filter(mo != mo_new)
|
||||||
# microorganisms.codes <- microorganisms.codes %>%
|
# microorganisms.codes <- microorganisms.codes |>
|
||||||
# filter(!code %in% c(insert1$code, insert2$code)) %>%
|
# filter(!code %in% c(insert1$code, insert2$code)) |>
|
||||||
# bind_rows(insert1, insert2) %>%
|
# bind_rows(insert1, insert2) |>
|
||||||
# arrange(code)
|
# arrange(code)
|
||||||
# # end
|
# # end
|
||||||
|
|
||||||
@@ -196,52 +199,52 @@ devtools::load_all()
|
|||||||
|
|
||||||
# now that we have the correct MO codes, get the breakpoints and convert them
|
# now that we have the correct MO codes, get the breakpoints and convert them
|
||||||
|
|
||||||
whonet_breakpoints %>%
|
whonet_breakpoints |>
|
||||||
count(GUIDELINES, BREAKPOINT_TYPE) %>%
|
count(GUIDELINES, BREAKPOINT_TYPE) |>
|
||||||
pivot_wider(names_from = BREAKPOINT_TYPE, values_from = n) %>%
|
pivot_wider(names_from = BREAKPOINT_TYPE, values_from = n) |>
|
||||||
janitor::adorn_totals(where = c("row", "col"))
|
janitor::adorn_totals(where = c("row", "col"))
|
||||||
# compared to current
|
# compared to current
|
||||||
AMR::clinical_breakpoints %>%
|
AMR::clinical_breakpoints |>
|
||||||
count(GUIDELINES = gsub("[^a-zA-Z]", "", guideline), type) %>%
|
count(GUIDELINES = gsub("[^a-zA-Z]", "", guideline), type) |>
|
||||||
arrange(tolower(type)) %>%
|
arrange(tolower(type)) |>
|
||||||
pivot_wider(names_from = type, values_from = n) %>%
|
pivot_wider(names_from = type, values_from = n) |>
|
||||||
as.data.frame() %>%
|
as.data.frame() |>
|
||||||
janitor::adorn_totals(where = c("row", "col"))
|
janitor::adorn_totals(where = c("row", "col"))
|
||||||
|
|
||||||
breakpoints <- whonet_breakpoints %>%
|
breakpoints <- whonet_breakpoints |>
|
||||||
mutate(code = toupper(ORGANISM_CODE)) %>%
|
mutate(code = toupper(ORGANISM_CODE)) |>
|
||||||
left_join(bind_rows(microorganisms.codes %>% filter(!code %in% c("ALL", "GEN")),
|
left_join(bind_rows(microorganisms.codes |> filter(!code %in% c("ALL", "GEN")),
|
||||||
# GEN (Generic) and ALL (All) are PK/PD codes
|
# GEN (Generic) and ALL (All) are PK/PD codes
|
||||||
data.frame(code = c("ALL", "GEN"),
|
data.frame(code = c("ALL", "GEN"),
|
||||||
mo = rep(as.mo("UNKNOWN"), 2))))
|
mo = rep(as.mo("UNKNOWN"), 2))))
|
||||||
# these ones lack an MO name, they cannot be used:
|
# these ones lack an MO name, they cannot be used:
|
||||||
unknown <- breakpoints %>%
|
unknown <- breakpoints |>
|
||||||
filter(is.na(mo)) %>%
|
filter(is.na(mo)) |>
|
||||||
pull(code) %>%
|
pull(code) |>
|
||||||
unique()
|
unique()
|
||||||
breakpoints %>%
|
breakpoints |>
|
||||||
filter(code %in% unknown) %>%
|
filter(code %in% unknown) |>
|
||||||
count(GUIDELINES, YEAR, ORGANISM_CODE, BREAKPOINT_TYPE, sort = TRUE)
|
count(GUIDELINES, YEAR, ORGANISM_CODE, BREAKPOINT_TYPE, sort = TRUE)
|
||||||
# 2025-03-11: these codes are currently: clu, kma, fso, tyi. No clue (are not in MO list of WHONET), and they are only ECOFFs, so remove them:
|
# 2025-04-20: these codes are currently: cps, fso. No clue (are not in MO list of WHONET), and they are only ECOFFs, so remove them:
|
||||||
breakpoints <- breakpoints %>%
|
breakpoints <- breakpoints |>
|
||||||
filter(!is.na(mo))
|
filter(!is.na(mo))
|
||||||
|
|
||||||
# and these ones have unknown antibiotics according to WHONET itself:
|
# and these ones have unknown antibiotics according to WHONET itself:
|
||||||
breakpoints %>%
|
breakpoints |>
|
||||||
filter(!WHONET_ABX_CODE %in% whonet_antibiotics$WHONET_ABX_CODE) %>%
|
filter(!WHONET_ABX_CODE %in% whonet_antibiotics$WHONET_ABX_CODE) |>
|
||||||
count(YEAR, GUIDELINES, WHONET_ABX_CODE) %>%
|
count(GUIDELINES, WHONET_ABX_CODE) |>
|
||||||
arrange(desc(YEAR))
|
mutate(ab = as.ab(WHONET_ABX_CODE, fast_mode = TRUE),
|
||||||
breakpoints %>%
|
ab_name = ab_name(ab))
|
||||||
filter(!WHONET_ABX_CODE %in% whonet_antibiotics$WHONET_ABX_CODE) %>%
|
# 2025-04-20: these codes are currently: CFC, ROX, FIX, and N/A. All have the right replacements in `antimicrobials`, so we can safely use as.ab() later on
|
||||||
pull(WHONET_ABX_CODE) %>%
|
# the NAs are for M. tuberculosis, they are empty breakpoints
|
||||||
unique()
|
breakpoints <- breakpoints |>
|
||||||
# they are at the moment all old codes ("CFC", "ROX", "FIX") that have the right replacements in `antimicrobials`, so we can use as.ab()
|
filter(!is.na(WHONET_ABX_CODE))
|
||||||
|
|
||||||
|
|
||||||
## Build new breakpoints table ----
|
## Build new breakpoints table ----
|
||||||
|
|
||||||
breakpoints_new <- breakpoints %>%
|
breakpoints_new <- breakpoints |>
|
||||||
filter(!is.na(WHONET_ABX_CODE)) %>%
|
filter(!is.na(WHONET_ABX_CODE)) |>
|
||||||
transmute(
|
transmute(
|
||||||
guideline = paste(GUIDELINES, YEAR),
|
guideline = paste(GUIDELINES, YEAR),
|
||||||
type = ifelse(BREAKPOINT_TYPE == "ECOFF", "ECOFF", tolower(BREAKPOINT_TYPE)),
|
type = ifelse(BREAKPOINT_TYPE == "ECOFF", "ECOFF", tolower(BREAKPOINT_TYPE)),
|
||||||
@@ -266,20 +269,20 @@ breakpoints_new <- breakpoints %>%
|
|||||||
breakpoint_R = ifelse(type == "ECOFF" & is.na(R) & !is.na(ECV_ECOFF), ECV_ECOFF, R),
|
breakpoint_R = ifelse(type == "ECOFF" & is.na(R) & !is.na(ECV_ECOFF), ECV_ECOFF, R),
|
||||||
uti = ifelse(is.na(site), FALSE, gsub(".*(UTI|urinary|urine).*", "UTI", site) == "UTI"),
|
uti = ifelse(is.na(site), FALSE, gsub(".*(UTI|urinary|urine).*", "UTI", site) == "UTI"),
|
||||||
is_SDD = !is.na(SDD)
|
is_SDD = !is.na(SDD)
|
||||||
) %>%
|
) |>
|
||||||
# Greek symbols and EM dash symbols are not allowed by CRAN, so replace them with ASCII:
|
# Greek symbols and EM dash symbols are not allowed by CRAN, so replace them with ASCII:
|
||||||
mutate(disk_dose = disk_dose %>%
|
mutate(disk_dose = disk_dose %>%
|
||||||
gsub("μ", "mc", ., fixed = TRUE) %>% # this is 'mu', \u03bc
|
gsub("μ", "mc", ., fixed = TRUE) %>% # this is 'mu', \u03bc
|
||||||
gsub("µ", "mc", ., fixed = TRUE) %>% # this is 'micro', \u00b5 (yes, they look the same)
|
gsub("µ", "mc", ., fixed = TRUE) %>% # this is 'micro', \u00b5 (yes, they look the same)
|
||||||
gsub("–", "-", ., fixed = TRUE) %>%
|
gsub("–", "-", ., fixed = TRUE) %>%
|
||||||
gsub("(?<=\\d)(?=[a-zA-Z])", " ", ., perl = TRUE)) %>% # make sure we keep a space after a number, e.g. "1mcg" to "1 mcg"
|
gsub("(?<=\\d)(?=[a-zA-Z])", " ", ., perl = TRUE)) |> # make sure we keep a space after a number, e.g. "1mcg" to "1 mcg"
|
||||||
arrange(desc(guideline), mo, ab, type, method) %>%
|
arrange(desc(guideline), mo, ab, type, method) |>
|
||||||
filter(!(is.na(breakpoint_S) & is.na(breakpoint_R)) & !is.na(mo) & !is.na(ab)) %>%
|
filter(!(is.na(breakpoint_S) & is.na(breakpoint_R)) & !is.na(mo) & !is.na(ab)) |>
|
||||||
distinct(guideline, type, host, ab, mo, method, site, breakpoint_S, .keep_all = TRUE)
|
distinct(guideline, type, host, ab, mo, method, site, breakpoint_S, .keep_all = TRUE)
|
||||||
|
|
||||||
# fix reference table names
|
# fix reference table names
|
||||||
breakpoints_new %>% filter(guideline %like% "EUCAST", is.na(ref_tbl)) %>% View()
|
breakpoints_new |> filter(guideline %like% "EUCAST", is.na(ref_tbl)) |> View()
|
||||||
breakpoints_new <- breakpoints_new %>%
|
breakpoints_new <- breakpoints_new |>
|
||||||
mutate(ref_tbl = case_when(is.na(ref_tbl) & guideline %like% "EUCAST 202" ~ lead(ref_tbl),
|
mutate(ref_tbl = case_when(is.na(ref_tbl) & guideline %like% "EUCAST 202" ~ lead(ref_tbl),
|
||||||
is.na(ref_tbl) ~ "Unknown",
|
is.na(ref_tbl) ~ "Unknown",
|
||||||
TRUE ~ ref_tbl))
|
TRUE ~ ref_tbl))
|
||||||
@@ -289,11 +292,11 @@ breakpoints_new[which(breakpoints_new$method == "DISK"), "breakpoint_S"] <- as.d
|
|||||||
breakpoints_new[which(breakpoints_new$method == "DISK"), "breakpoint_R"] <- as.double(as.disk(breakpoints_new[which(breakpoints_new$method == "DISK"), "breakpoint_R", drop = TRUE]))
|
breakpoints_new[which(breakpoints_new$method == "DISK"), "breakpoint_R"] <- as.double(as.disk(breakpoints_new[which(breakpoints_new$method == "DISK"), "breakpoint_R", drop = TRUE]))
|
||||||
|
|
||||||
# regarding animal breakpoints, CLSI has adults and foals for horses, but only for amikacin - only keep adult horses
|
# regarding animal breakpoints, CLSI has adults and foals for horses, but only for amikacin - only keep adult horses
|
||||||
breakpoints_new %>%
|
breakpoints_new |>
|
||||||
filter(host %like% "foal") %>%
|
filter(host %like% "foal") |>
|
||||||
count(guideline, host)
|
count(guideline, host)
|
||||||
breakpoints_new <- breakpoints_new %>%
|
breakpoints_new <- breakpoints_new |>
|
||||||
filter(host %unlike% "foal") %>%
|
filter(host %unlike% "foal") |>
|
||||||
mutate(host = ifelse(host %like% "horse", "horse", host))
|
mutate(host = ifelse(host %like% "horse", "horse", host))
|
||||||
|
|
||||||
# FIXES FOR WHONET ERRORS ----
|
# FIXES FOR WHONET ERRORS ----
|
||||||
@@ -301,25 +304,22 @@ m <- unique(as.double(as.mic(levels(as.mic(1)))))
|
|||||||
|
|
||||||
# WHONET has no >1024 but instead uses 1025, 513, etc, so as.mic() cannot be used to clean.
|
# WHONET has no >1024 but instead uses 1025, 513, etc, so as.mic() cannot be used to clean.
|
||||||
# instead, raise these one higher valid MIC factor level:
|
# instead, raise these one higher valid MIC factor level:
|
||||||
|
breakpoints_new |> filter(method == "MIC" & (!breakpoint_S %in% c(m, NA))) |> distinct(breakpoint_S)
|
||||||
|
breakpoints_new |> filter(method == "MIC" & (!breakpoint_R %in% c(m, NA))) |> distinct(breakpoint_R)
|
||||||
breakpoints_new[which(breakpoints_new$breakpoint_R == 129), "breakpoint_R"] <- m[which(m == 128) + 1]
|
breakpoints_new[which(breakpoints_new$breakpoint_R == 129), "breakpoint_R"] <- m[which(m == 128) + 1]
|
||||||
breakpoints_new[which(breakpoints_new$breakpoint_R == 257), "breakpoint_R"] <- m[which(m == 256) + 1]
|
breakpoints_new[which(breakpoints_new$breakpoint_R == 257), "breakpoint_R"] <- m[which(m == 256) + 1]
|
||||||
breakpoints_new[which(breakpoints_new$breakpoint_R == 513), "breakpoint_R"] <- m[which(m == 512) + 1]
|
breakpoints_new[which(breakpoints_new$breakpoint_R == 513), "breakpoint_R"] <- m[which(m == 512) + 1]
|
||||||
breakpoints_new[which(breakpoints_new$breakpoint_R == 1025), "breakpoint_R"] <- m[which(m == 1024) + 1]
|
breakpoints_new[which(breakpoints_new$breakpoint_R == 1025), "breakpoint_R"] <- m[which(m == 1024) + 1]
|
||||||
|
|
||||||
# a lot of R breakpoints are missing, though none of the S breakpoints are missing:
|
# S breakpoints must never be missing:
|
||||||
anyNA(breakpoints_new$breakpoint_S)
|
anyNA(breakpoints_new$breakpoint_S)
|
||||||
|
|
||||||
breakpoints_new %>%
|
# a lot of R breakpoints are missing, but for CLSI this is required and can be set using as.sir(..., substitute_missing_r_breakpoint = TRUE/FALSE, ...)
|
||||||
filter(is.na(breakpoint_R)) %>%
|
# 2025-04-20/ For EUCAST, this should not be the case, only happens to old guideline now it seems
|
||||||
count(guideline, host) |>
|
breakpoints_new |>
|
||||||
pivot_wider(names_from = host,
|
filter(method == "MIC" & guideline %like% "EUCAST" & is.na(breakpoint_R)) |>
|
||||||
values_from = n,
|
count(guideline)
|
||||||
values_fill = list(n = 0)) |>
|
breakpoints_new[which(breakpoints_new$method == "MIC" & breakpoints_new$guideline %like% "EUCAST" & is.na(breakpoints_new$breakpoint_R)), "breakpoint_R"] <- breakpoints_new[which(breakpoints_new$method == "MIC" & breakpoints_new$guideline %like% "EUCAST" & is.na(breakpoints_new$breakpoint_R)), "breakpoint_S"]
|
||||||
View()
|
|
||||||
|
|
||||||
# 2025-03-12 don't do this anymore - we now use as.sir(..., substitute_missing_r_breakpoint = TRUE/FALSE, ...)
|
|
||||||
# breakpoints_new[which(breakpoints_new$method == "MIC" &
|
|
||||||
# is.na(breakpoints_new$breakpoint_R)), "breakpoint_R"] <- max(m)
|
|
||||||
|
|
||||||
|
|
||||||
# fix streptococci in WHONET table of EUCAST: Strep A, B, C and G must only include these groups and not all streptococci:
|
# fix streptococci in WHONET table of EUCAST: Strep A, B, C and G must only include these groups and not all streptococci:
|
||||||
@@ -327,32 +327,30 @@ breakpoints_new$mo[breakpoints_new$mo == "B_STRPT" & breakpoints_new$ref_tbl %li
|
|||||||
# Haemophilus same error (must only be H. influenzae)
|
# Haemophilus same error (must only be H. influenzae)
|
||||||
breakpoints_new$mo[breakpoints_new$mo == "B_HMPHL" & breakpoints_new$ref_tbl %like% "^h.* influenzae"] <- as.mo("B_HMPHL_INFL")
|
breakpoints_new$mo[breakpoints_new$mo == "B_HMPHL" & breakpoints_new$ref_tbl %like% "^h.* influenzae"] <- as.mo("B_HMPHL_INFL")
|
||||||
# EUCAST says that for H. parainfluenzae the H. influenza rules can be used, so add them
|
# EUCAST says that for H. parainfluenzae the H. influenza rules can be used, so add them
|
||||||
breakpoints_new <- breakpoints_new %>%
|
breakpoints_new <- breakpoints_new |>
|
||||||
bind_rows(
|
bind_rows(
|
||||||
breakpoints_new %>%
|
breakpoints_new |>
|
||||||
filter(guideline %like% "EUCAST", mo == "B_HMPHL_INFL") %>%
|
filter(guideline %like% "EUCAST", mo == "B_HMPHL_INFL") |>
|
||||||
mutate(mo = as.mo("B_HMPHL_PRNF"))
|
mutate(mo = as.mo("B_HMPHL_PRNF"))
|
||||||
) %>%
|
) |>
|
||||||
arrange(desc(guideline), mo, ab, type, host, method)
|
arrange(desc(guideline), mo, ab, type, host, method) |>
|
||||||
|
distinct()
|
||||||
# Achromobacter denitrificans is in WHONET included in their A. xylosoxidans table, must be removed
|
# Achromobacter denitrificans is in WHONET included in their A. xylosoxidans table, must be removed
|
||||||
breakpoints_new <- breakpoints_new %>% filter(mo != as.mo("Achromobacter denitrificans"))
|
breakpoints_new <- breakpoints_new |> filter(mo != as.mo("Achromobacter denitrificans"))
|
||||||
# WHONET contains gentamicin breakpoints for viridans streptocci, which are intrinsic R - they meant genta-high, which is ALSO in their table, so we just remove gentamicin in viridans streptococci
|
# WHONET contains gentamicin breakpoints for viridans streptocci, which are intrinsic R - they meant genta-high, which is ALSO in their table, so we just remove gentamicin in viridans streptococci
|
||||||
breakpoints_new <- breakpoints_new %>% filter(!(mo == as.mo("Streptococcus viridans") & ab == "GEN"))
|
breakpoints_new |> filter(mo == as.mo("Streptococcus viridans") & ab == "GEN")
|
||||||
|
breakpoints_new |> filter(mo == as.mo("Streptococcus viridans") & ab == "GEH")
|
||||||
|
breakpoints_new <- breakpoints_new |> filter(!(mo == as.mo("Streptococcus viridans") & ab == "GEN"))
|
||||||
# Nitrofurantoin in Staph (EUCAST) only applies to S. saprophyticus, while WHONET has the DISK correct but the MIC on genus level
|
# Nitrofurantoin in Staph (EUCAST) only applies to S. saprophyticus, while WHONET has the DISK correct but the MIC on genus level
|
||||||
breakpoints_new$mo[breakpoints_new$mo == "B_STPHY" & breakpoints_new$ab == "NIT" & breakpoints_new$guideline %like% "EUCAST"] <- as.mo("B_STPHY_SPRP")
|
breakpoints_new$mo[breakpoints_new$mo == "B_STPHY" & breakpoints_new$ab == "NIT" & breakpoints_new$guideline %like% "EUCAST"] <- as.mo("B_STPHY_SPRP")
|
||||||
# WHONET sets the 2023 breakpoints for SAM to MIC of 16/32 for Enterobacterales, should be MIC 8/32 like AMC (see issue #123 on github.com/msberends/AMR)
|
# WHONET sets the 2023 breakpoints for SAM to MIC of 16/32 for Enterobacterales, should be MIC 8/32 like AMC (see issue #123 on github.com/msberends/AMR)
|
||||||
# UPDATE 2024-02-22: fixed now
|
# 2024-02-22/ fixed now
|
||||||
|
|
||||||
# There's a problem with C. diff in EUCAST where breakpoint_R is missing - they are listed as normal human breakpoints but are ECOFF
|
# There's a problem with C. diff in EUCAST where breakpoint_R is missing - they are listed as normal human breakpoints but are ECOFF
|
||||||
rows <- which(breakpoints_new$guideline %like% "EUCAST" & breakpoints_new$mo == "B_CRDDS_DFFC" & is.na(breakpoints_new$breakpoint_R) & !is.na(breakpoints_new$breakpoint_S))
|
# 2025-04-20/ fixed now
|
||||||
breakpoints_new$type[rows] <- "ECOFF"
|
|
||||||
breakpoints_new$host[rows] <- "ECOFF"
|
|
||||||
breakpoints_new$ref_tbl[rows] <- "ECOFF"
|
|
||||||
breakpoints_new$breakpoint_R[rows] <- breakpoints_new$breakpoint_S[rows]
|
|
||||||
breakpoints_new <- distinct(breakpoints_new, .keep_all = TRUE)
|
|
||||||
|
|
||||||
# determine rank again now that some changes were made on taxonomic level (genus -> species)
|
# determine rank again now that some changes were made on taxonomic level (genus -> species)
|
||||||
breakpoints_new <- breakpoints_new %>%
|
breakpoints_new <- breakpoints_new |>
|
||||||
mutate(rank_index = case_when(
|
mutate(rank_index = case_when(
|
||||||
mo_rank(mo, keep_synonyms = TRUE) %like% "(infra|sub)" ~ 1,
|
mo_rank(mo, keep_synonyms = TRUE) %like% "(infra|sub)" ~ 1,
|
||||||
mo_rank(mo, keep_synonyms = TRUE) == "species" ~ 2,
|
mo_rank(mo, keep_synonyms = TRUE) == "species" ~ 2,
|
||||||
@@ -367,52 +365,50 @@ breakpoints_new <- breakpoints_new %>%
|
|||||||
# WHONET adds one log2 level to the R breakpoint for their software, e.g. in AMC in Enterobacterales:
|
# WHONET adds one log2 level to the R breakpoint for their software, e.g. in AMC in Enterobacterales:
|
||||||
# EUCAST 2023 guideline: S <= 8 and R > 8
|
# EUCAST 2023 guideline: S <= 8 and R > 8
|
||||||
# WHONET file: S <= 8 and R >= 16
|
# WHONET file: S <= 8 and R >= 16
|
||||||
breakpoints_new %>% filter(guideline == "EUCAST 2023", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
|
breakpoints_new |> filter(guideline == "EUCAST 2023", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
|
||||||
# but this will make an MIC of 12 I, which should be R according to EUCAST, so:
|
# but this logic only works for CLSI - for an MIC outside the log2 range (e.g., 12) you must round up (i.e., 16)
|
||||||
breakpoints_new <- breakpoints_new %>%
|
# but for EUCAST, an MIC of 12 would now be considered I, which should be R, so correct those values:
|
||||||
|
breakpoints_new <- breakpoints_new |>
|
||||||
mutate(breakpoint_R = ifelse(guideline %like% "EUCAST" & method == "MIC" & log2(breakpoint_R) - log2(breakpoint_S) != 0,
|
mutate(breakpoint_R = ifelse(guideline %like% "EUCAST" & method == "MIC" & log2(breakpoint_R) - log2(breakpoint_S) != 0,
|
||||||
pmax(breakpoint_S, breakpoint_R / 2),
|
pmax(breakpoint_S, breakpoint_R / 2),
|
||||||
breakpoint_R
|
breakpoint_R
|
||||||
))
|
))
|
||||||
# fix disks as well
|
# fix disks as well
|
||||||
breakpoints_new %>% filter(guideline == "EUCAST 2023", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "DISK")
|
breakpoints_new |> filter(guideline == "EUCAST 2023", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "DISK")
|
||||||
breakpoints_new <- breakpoints_new %>%
|
breakpoints_new <- breakpoints_new |>
|
||||||
mutate(breakpoint_R = ifelse(guideline %like% "EUCAST" & method == "DISK" & breakpoint_S - breakpoint_R != 0,
|
mutate(breakpoint_R = ifelse(guideline %like% "EUCAST" & method == "DISK" & breakpoint_S - breakpoint_R != 0,
|
||||||
breakpoint_R + 1,
|
breakpoint_R + 1,
|
||||||
breakpoint_R
|
breakpoint_R
|
||||||
))
|
))
|
||||||
# fill missing R breakpoint where there is an S breakpoint
|
|
||||||
# 2025-03-12 don't do this anymore - we now use as.sir(..., substitute_missing_r_breakpoint = TRUE/FALSE, ...)
|
|
||||||
# breakpoints_new[which(is.na(breakpoints_new$breakpoint_R)), "breakpoint_R"] <- breakpoints_new[which(is.na(breakpoints_new$breakpoint_R)), "breakpoint_S"]
|
|
||||||
|
|
||||||
|
|
||||||
# check the strange duplicates
|
# check the strange duplicates
|
||||||
breakpoints_new %>%
|
breakpoints_new |>
|
||||||
mutate(id = paste(guideline, type, host, method, site, mo, ab, uti)) %>%
|
mutate(id = paste(guideline, type, host, method, site, mo, ab, uti)) %>%
|
||||||
filter(id %in% .$id[which(duplicated(id))]) %>%
|
filter(id %in% .$id[which(duplicated(id))]) |>
|
||||||
arrange(desc(guideline))
|
arrange(desc(guideline)) |>
|
||||||
# 2024-06-19 mostly ECOFFs, but there's no explanation in the whonet_breakpoints file, we have to remove duplicates
|
View()
|
||||||
# remove duplicates
|
# 2024-06-19/ mostly ECOFFs, but there's no explanation in the whonet_breakpoints file, we have to remove duplicates
|
||||||
breakpoints_new <- breakpoints_new %>%
|
# 2025-04-20/ same, most important one seems M. tuberculosis in CLSI (also in 2025)
|
||||||
|
breakpoints_new <- breakpoints_new |>
|
||||||
distinct(guideline, type, host, method, site, mo, ab, uti, .keep_all = TRUE)
|
distinct(guideline, type, host, method, site, mo, ab, uti, .keep_all = TRUE)
|
||||||
|
|
||||||
|
|
||||||
# CHECKS AND SAVE TO PACKAGE ----
|
# CHECKS AND SAVE TO PACKAGE ----
|
||||||
|
|
||||||
# check again
|
# check again
|
||||||
breakpoints_new %>% filter(guideline == "EUCAST 2024", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
|
breakpoints_new |> filter(guideline == "EUCAST 2025", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
|
||||||
# compare with current version
|
# compare with current version
|
||||||
clinical_breakpoints %>% filter(guideline == "EUCAST 2024", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
|
clinical_breakpoints |> filter(guideline == "EUCAST 2024", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
|
||||||
|
|
||||||
# must have "human" and "ECOFF"
|
# must have "human" and "ECOFF"
|
||||||
breakpoints_new %>% filter(mo == "B_STRPT_PNMN", ab == "AMP", guideline == "EUCAST 2020", method == "MIC")
|
breakpoints_new |> filter(mo == "B_STRPT_PNMN", ab == "AMP", guideline == "EUCAST 2020", method == "MIC")
|
||||||
|
|
||||||
# check dimensions
|
# check dimensions
|
||||||
dim(breakpoints_new)
|
dim(breakpoints_new)
|
||||||
dim(clinical_breakpoints)
|
dim(clinical_breakpoints)
|
||||||
|
|
||||||
clinical_breakpoints <- breakpoints_new
|
clinical_breakpoints <- breakpoints_new
|
||||||
clinical_breakpoints <- clinical_breakpoints %>% dataset_UTF8_to_ASCII()
|
clinical_breakpoints <- clinical_breakpoints |> dataset_UTF8_to_ASCII()
|
||||||
usethis::use_data(clinical_breakpoints, overwrite = TRUE, compress = "xz", version = 2)
|
usethis::use_data(clinical_breakpoints, overwrite = TRUE, compress = "xz", version = 2)
|
||||||
rm(clinical_breakpoints)
|
rm(clinical_breakpoints)
|
||||||
devtools::load_all(".")
|
devtools::load_all(".")
|
||||||
@@ -31,12 +31,13 @@ library(dplyr)
|
|||||||
library(readxl)
|
library(readxl)
|
||||||
library(cleaner)
|
library(cleaner)
|
||||||
|
|
||||||
# URL:
|
breakpoint_file <- "data-raw/v_15.0_Breakpoint_Tables.xlsx"
|
||||||
# https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Breakpoint_tables/Dosages_v_13.0_Breakpoint_Tables.pdf
|
if (!file.exists(breakpoint_file)) {
|
||||||
# download the PDF file, open in Adobe Acrobat and export as Excel workbook
|
stop("Breakpoint file not found")
|
||||||
breakpoints_version <- 13
|
}
|
||||||
|
breakpoints_version <- as.double(gsub("[^0-9.]", "", gsub(".xlsx", "", breakpoint_file, fixed = TRUE)))
|
||||||
|
|
||||||
dosage_source <- read_excel("data-raw/Dosages_v_12.0_Breakpoint_Tables.xlsx", skip = 4, na = "None") %>%
|
dosage_source <- read_excel(breakpoint_file, skip = 6, sheet = "Dosages", na = "None") %>%
|
||||||
format_names(snake_case = TRUE, penicillins = "drug") %>%
|
format_names(snake_case = TRUE, penicillins = "drug") %>%
|
||||||
filter(!tolower(standard_dosage) %in% c("standard dosage", "standard dosage_source", "under review")) %>%
|
filter(!tolower(standard_dosage) %in% c("standard dosage", "standard dosage_source", "under review")) %>%
|
||||||
filter(!is.na(standard_dosage)) %>%
|
filter(!is.na(standard_dosage)) %>%
|
||||||
@@ -173,6 +174,12 @@ dosage_new <- bind_rows(
|
|||||||
# this makes it a tibble as well:
|
# this makes it a tibble as well:
|
||||||
dataset_UTF8_to_ASCII()
|
dataset_UTF8_to_ASCII()
|
||||||
|
|
||||||
dosage <- bind_rows(dosage_new, AMR::dosage)
|
dosage <- AMR::dosage |>
|
||||||
|
bind_rows(dosage_new) |>
|
||||||
|
arrange(desc(eucast_version), name) |>
|
||||||
|
distinct()
|
||||||
|
|
||||||
|
dosage <- dosage |> dataset_UTF8_to_ASCII()
|
||||||
usethis::use_data(dosage, internal = FALSE, overwrite = TRUE, version = 2, compress = "xz")
|
usethis::use_data(dosage, internal = FALSE, overwrite = TRUE, version = 2, compress = "xz")
|
||||||
|
rm(dosage)
|
||||||
|
devtools::load_all(".")
|
||||||
@@ -288,7 +288,7 @@ for (page in LETTERS) {
|
|||||||
url <- paste0("https://lpsn.dsmz.de/genus?page=", page)
|
url <- paste0("https://lpsn.dsmz.de/genus?page=", page)
|
||||||
x <- tryCatch(read_html(url),
|
x <- tryCatch(read_html(url),
|
||||||
error = function(e) {
|
error = function(e) {
|
||||||
message("Waiting 10 seconds because of error: ", e$message)
|
message("Waiting 10 seconds because of error: ", conditionMessage(e))
|
||||||
Sys.sleep(10)
|
Sys.sleep(10)
|
||||||
read_html(url)
|
read_html(url)
|
||||||
})
|
})
|
||||||
@@ -108,3 +108,18 @@ writeLines(contents, "R/aa_helper_pm_functions.R")
|
|||||||
|
|
||||||
# note: pm_left_join() will be overwritten by aaa_helper_functions.R, which contains a faster implementation
|
# note: pm_left_join() will be overwritten by aaa_helper_functions.R, which contains a faster implementation
|
||||||
# replace `res <- as.data.frame(res)` with `res <- as.data.frame(res, stringsAsFactors = FALSE)`
|
# replace `res <- as.data.frame(res)` with `res <- as.data.frame(res, stringsAsFactors = FALSE)`
|
||||||
|
|
||||||
|
# after running, pm_select must be altered. The line:
|
||||||
|
# col_pos <- pm_select_positions(.data, ..., .group_pos = TRUE)
|
||||||
|
# ... must be replaced with this to support tidyselect functionality such as `starts_with()`:
|
||||||
|
# col_pos <- tryCatch(pm_select_positions(.data, ..., .group_pos = TRUE), error = function(e) NULL)
|
||||||
|
# if (is.null(col_pos)) {
|
||||||
|
# # try with tidyverse
|
||||||
|
# select_dplyr <- import_fn("select", "dplyr", error_on_fail = FALSE)
|
||||||
|
# if (!is.null(select_dplyr)) {
|
||||||
|
# col_pos <- which(colnames(.data) %in% colnames(select_dplyr(.data, ...)))
|
||||||
|
# } else {
|
||||||
|
# # this will throw an error as it did, but dplyr is not available, so no other option
|
||||||
|
# col_pos <- pm_select_positions(.data, ..., .group_pos = TRUE)
|
||||||
|
# }
|
||||||
|
# }
|
||||||
@@ -1 +1 @@
|
|||||||
ae7b2da1015eb1eca2c6d1736db0f31f
|
228840b3941753c4adee2b781d901590
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
7bc41a5d92b1e98fbd6e2b8c077434b5
|
c7062e60fa4fbc2eee233044d15903ce
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,497 +1,498 @@
|
|||||||
"ab" "cid" "name" "group" "atc" "atc_group1" "atc_group2" "abbreviations" "synonyms" "oral_ddd" "oral_units" "iv_ddd" "iv_units" "loinc"
|
"ab" "cid" "name" "group" "atc" "atc_group1" "atc_group2" "abbreviations" "synonyms" "oral_ddd" "oral_units" "iv_ddd" "iv_units" "loinc"
|
||||||
"AMA" 4649 "4-aminosalicylic acid" "Antimycobacterials" "J04AA01" "Drugs for treatment of tuberculosis" "Aminosalicylic acid and derivatives" "NA" "aminacyl,aminopar,aminosalicylate,aminosalicylic,aminosalyl,aminox,apacil,deapasil,entepas,gabbropas,granupas,helipidyl,hellipidyl,nemasol,nippas,osacyl,pamacyl,pamisyl,paramisan,paramycin,parasal,parasalicil,parasalindon,pasade,pasalon,pasara,pascorbic,pasdium,pasem,paser,pasmed,pasnal,pasnodia,pasolac,passodico,pharmakon,propasa,rezipas,salvis,sanipirol,sanipriol,sodiopas,spectrum" 12 "g" "NA"
|
"AMA" 4649 "4-aminosalicylic acid" "Antimycobacterials" "J04AA01" "Drugs for treatment of tuberculosis" "Aminosalicylic acid and derivatives" "NA" "aminacyl,aminopar,aminosalyl,aminox,apacil,deapasil,entepas,gabbropas,granupas,helipidyl,hellipidyl,nemasol,nippas,osacyl,pamacyl,pamisyl,paramisan,paramycin,parasal,parasalicil,parasalindon,pasade,pasalon,pasara,pascorbic,pasdium,pasem,paser,pasmed,pasnal,pasnodia,pasolac,passodico,pharmakon,propasa,rezipas,salvis,sanipirol,sanipriol,sodiopas,spectrum" 12 "g" "NA"
|
||||||
"ACM" 6450012 "Acetylmidecamycin" "Macrolides/lincosamides" "NA" "NA" "NA" "NA"
|
"ACM" 6450012 "Acetylmidecamycin" "Macrolides/lincosamides" "NA" "NA" "NA" "NA"
|
||||||
"ASP" 49787020 "Acetylspiramycin" "Macrolides/lincosamides" "NA" "NA" "antibiotic,espiramicin,espiramicina,foromacidin,provamycin,rovamicina,rovamycin,rovamycine,selectomycin,sequamycin,spiramycine,spiramycinum" "NA"
|
"ASP" 49787020 "Acetylspiramycin" "Macrolides/lincosamides" "NA" "NA" "antibiotic,espiramicin,espiramicina,foromacidin,provamycin,rovamicina,rovamycin,rovamycine,selectomycin,sequamycin,spiramycine,spiramycinum" "NA"
|
||||||
"ALS" 8954 "Aldesulfone sodium" "Other antibacterials" "J04BA03" "Drugs for treatment of lepra" "Drugs for treatment of lepra" "NA" "adesulfone,aldapsone,aldesulfone,aldesulphone,diamidin,diason,diasone,diasoneenterab,diazon,didimethanesulfinate,novotrone,sulfoxone" 0.33 "g" "NA"
|
"ALS" 8954 "Aldesulfone sodium" "Other antibacterials" "J04BA03" "Drugs for treatment of lepra" "Drugs for treatment of lepra" "NA" "adesulfone,aldapsone,aldesulfone,aldesulphone,diamidin,diason,diasone,diasoneenterab,diazon,didimethanesulfinate,novotrone,sulfoxone" 0.33 "g" "NA"
|
||||||
"AMK" 37768 "Amikacin" "Aminoglycosides" "D06AX12,J01GB06,S01AA21" "Aminoglycoside antibacterials" "Other aminoglycosides" "ak,ami,amik,amk,an" "amicacin,amikacillin,amikacina,amikacine,amikacinum,amikavet,amikin,amikozit,amukin,arikace,briclin,butirosins,kaminax,lukadin,mikavir,potentox,prestwick" 1 "g" "101493-5,11-7,12-5,13-3,13546-7,14-1,15098-7,17798-0,18860-7,20373-7,23624-0,25174-4,25175-1,25176-9,25177-7,25178-5,25179-3,31097-9,31098-7,31099-5,3319-1,3320-9,3321-7,35669-1,42642-9,48169-7,50802-8,50803-6,56628-1,59378-0,60564-2,60565-9,6975-7,80972-3,89484-0"
|
"AMK" 37768 "Amikacin" "Aminoglycosides" "D06AX12,J01GB06,QD06AX12,QJ01GB06,QS01AA21,S01AA21" "Aminoglycoside antibacterials" "Other aminoglycosides" "ak,ami,amik,amikac,amk,an" "amikacillin,amikacina,amikacine,amikacinum,amikavet,amikin,amikozit,amukin,arikace,briclin,butirosins,kaminax,lukadin,mikavir,potentox,prestwick" 1 "g" "101493-5,11-7,12-5,13-3,13546-7,14-1,15098-7,17798-0,18860-7,20373-7,23624-0,25174-4,25175-1,25176-9,25177-7,25178-5,25179-3,31097-9,31098-7,31099-5,3319-1,3320-9,3321-7,35669-1,42642-9,48169-7,50802-8,50803-6,56628-1,59378-0,60564-2,60565-9,6975-7,80972-3,89484-0"
|
||||||
"AKF" "Amikacin/fosfomycin" "Aminoglycosides" "NA" "NA" "NA" "NA"
|
"AKF" "Amikacin/fosfomycin" "Aminoglycosides" "NA" "NA" "NA" "NA"
|
||||||
"AMO" 54260 "Amorolfine" "Antifungals/antimycotics" "D01AE16" "Antifungals for topical use" "Other antifungals for topical use" "amor" "amorolfina,amorolfinum,bekiron,corbel,curanail,fenpropemorph,fenpropimorph,fenpropimorphe,forbel,funbas,loceryl,locetar,mildofix,mistral,morpholine,odenil,omicur,pekiron" "NA"
|
"AMO" 54260 "Amorolfine" "Antifungals/antimycotics" "D01AE16,QD01AE16" "Antifungals for topical use" "Other antifungals for topical use" "amor" "amorolfina,amorolfinum,bekiron,corbel,curanail,fenpropemorph,fenpropimorph,fenpropimorphe,forbel,funbas,loceryl,locetar,mildofix,mistral,morpholine,odenil,omicur,pekiron" "NA"
|
||||||
"AMX" 33613 "Amoxicillin" "Beta-lactams/penicillins" "J01CA04" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "ac,amox,amx" "acuotricina,alfamox,alfida,amitron,amoclen,amodex,amoksicillin,amolin,amopen,amopenixin,amophar,amoran,amoxi,amoxicaps,amoxicilina,amoxicilline,amoxicillinum,amoxidal,amoxiden,amoxil,amoxillat,amoxina,amoxine,amoxipen,amoxivet,amoxycillin,amoxycillinsalt,amoxyke,anemolin,aspenil,atoksilin,bristamox,cemoxin,ciblor,clamoxyl,damoxy,danoxillin,delacillin,demoksil,dispermox,efpenix,eupen,flemoxin,flemoxine,galenamox,gramidil,hiconcil,himinomax,histocillin,ibiamox,imacillin,izoltil,kentrocyllin,lamoxy,largopen,larotid,matasedrin,metifarma,moksilin,moxacin,moxal,moxaline,moxatag,neotetranase,novabritine,ospamox,pacetocin,pamocil,paradroxil,pasetocin,penamox,piramox,promoxil,quimiopen,remoxil,riotapen,robamox,sawacillin,siganopen,simplamox,sintopen,sumox,topramoxin,trifamox,trimox,unicillin,utimox,velamox,vetramox,wymox,zamocillin,zamocilline,zimox" 1.5 "g" 3 "g" "101498-4,15-8,16-6,16365-9,17-4,18-2,18861-5,18862-3,19-0,20-8,21-6,22-4,25274-2,25310-4,3344-9,55614-2,55615-9,55616-7,6976-5,6977-3,80133-2"
|
"AMX" 33613 "Amoxicillin" "Beta-lactams/penicillins" "J01CA04,QG51AA03,QJ01CA04" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "ac,amox,amoxic,amx" "acuotricina,alfamox,alfida,amitron,amoclen,amodex,amoksicillin,amolin,amopen,amopenixin,amophar,amoran,amoxi,amoxicaps,amoxicilina,amoxicilline,amoxicillinum,amoxidal,amoxiden,amoxil,amoxillat,amoxina,amoxine,amoxipen,amoxivet,amoxycillin,amoxycillinsalt,amoxyke,anemolin,aspenil,atoksilin,bristamox,cemoxin,ciblor,clamoxyl,damoxy,danoxillin,delacillin,demoksil,dispermox,efpenix,eupen,flemoxin,flemoxine,galenamox,gramidil,hiconcil,himinomax,histocillin,ibiamox,imacillin,izoltil,kentrocyllin,lamoxy,largopen,larotid,matasedrin,metifarma,moksilin,moxacin,moxal,moxaline,moxatag,neotetranase,novabritine,ospamox,pacetocin,pamocil,paradroxil,pasetocin,penamox,piramox,promoxil,quimiopen,remoxil,riotapen,robamox,sawacillin,siganopen,simplamox,sintopen,sumox,topramoxin,trifamox,trimox,unicillin,utimox,velamox,vetramox,wymox,zamocillin,zamocilline,zimox" 1.5 "g" 3 "g" "101498-4,15-8,16-6,16365-9,17-4,18-2,18861-5,18862-3,19-0,20-8,21-6,22-4,25274-2,25310-4,3344-9,55614-2,55615-9,55616-7,6976-5,6977-3,80133-2"
|
||||||
"AMC" 23665637 "Amoxicillin/clavulanic acid" "Beta-lactams/penicillins" "J01CR02" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "a/c,amcl,aml,aug,xl" "amocla,amoclan,amoclav,amoksiclav,amoxsiklav,amoxyclav,ancla,augmentan,augmentin,augmentine,auspilic,clamentin,clamobit,clavam,clavamox,clavinex,clavumox,coamoxiclav,curam,eumetinex,kesium,kmoxilin,spectramox,synulox,viaclav,xiclav" 1.5 "g" 3 "g" "NA"
|
"AMC" 23665637 "Amoxicillin/clavulanic acid" "Beta-lactams/penicillins" "J01CR02,QJ01CR02" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "a/c,amcl,aml,amocla,aug,xl" "amocla,amoclan,amoclav,amoksiclav,amoxsiklav,amoxyclav,ancla,augmentan,augmentin,augmentine,auspilic,clamentin,clamobit,clavam,clavamox,clavinex,clavumox,coamoxiclav,curam,eumetinex,kesium,kmoxilin,spectramox,synulox,viaclav,xiclav" 1.5 "g" 3 "g" "NA"
|
||||||
"AXS" 465441 "Amoxicillin/sulbactam" "Beta-lactams/penicillins" "NA" "NA" "NA" "55614-2,55615-9,55616-7"
|
"AXS" 465441 "Amoxicillin/sulbactam" "Beta-lactams/penicillins" "J01CR02,QJ01CR02" "NA" "NA" 1.5 "g" 3 "g" "55614-2,55615-9,55616-7"
|
||||||
"AMB" 5280965 "Amphotericin B" "Antifungals/antimycotics" "A01AB04,A07AA07,G01AA03,J02AA01" "Antimycotics for systemic use" "Antibiotics" "amf,amfb,amph" "abelcet,abelecet,ambil,ambisome,amphocin,amphomoronal,amphotec,amphotericin,amphotocerin,amphozone,funganiline,fungilin,fungisome,fungisone,fungizone,halizon,nystatine,nystatinum,terrastatin" 40 "mg" 210 "mg" "16370-9,18863-1,23-2,24-0,25-7,26-5,3353-0,3354-8,40707-2,40757-7,49859-2,6978-1"
|
"AMB" 5280965 "Amphotericin B" "Antifungals/antimycotics" "A01AB04,A07AA07,G01AA03,J02AA01,QA01AB04,QA07AA07,QG01AA03,QJ02AA01" "Antimycotics for systemic use" "Antibiotics" "amf,amfb,amph,amphot" "abelcet,abelecet,ambil,ambisome,amphocin,amphomoronal,amphotec,amphotericin,amphotocerin,amphozone,funganiline,fungilin,fungisome,fungisone,fungizone,halizon,nystatine,nystatinum,terrastatin" 40 "mg" 210 "mg" "16370-9,18863-1,23-2,24-0,25-7,26-5,3353-0,3354-8,40707-2,40757-7,49859-2,6978-1"
|
||||||
"AMH" "Amphotericin B-high" "Antifungals/antimycotics" "NA" "amfo b high,amhl,ampho b high,amphotericin high" "NA" "NA"
|
"AMH" "Amphotericin B-high" "Antifungals/antimycotics" "NA" "amfo b high,amhl,ampho b high,amphotericin high" "NA" "NA"
|
||||||
"AMP" 6249 "Ampicillin" "Beta-lactams/penicillins" "J01CA01,S01AA19" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "am,amp,ampi" "acillin,adobacillin,alpen,amblosin,amcap,amcill,amfipen,ampen,amperil,ampichel,ampicil,ampicilina,ampicillina,ampicilline,ampicillinesalt,ampicillinsalt,ampicillinum,ampicin,ampifarm,ampikel,ampimed,ampinova,ampipenin,ampiscel,ampisyn,ampivax,ampivet,amplacilina,amplin,amplipenyl,amplisom,amplital,austrapen,bayer,binotal,bonapicillin,britacil,campicillin,cimex,citteral,copharcilin,cymbi,delcillin,deripen,divercillin,doktacillin,domicillin,duphacillin,grampenil,guicitrina,guicitrine,lifeampil,marcillin,morepen,norobrittin,nuvapen,omnipen,orbicilina,penbristol,penbritin,penbrock,penialmen,penicillin,penicline,penimic,penizillin,pensyn,pentrex,pentrexl,pentrexyl,pentritin,ponecil,princillin,principen,racenacillin,redicilin,rosampline,roscillin,semicillin,servicillin,sumipanto,supen,synpenin,texcillin,tokiocillin,tolomol,totacillin,totalciclina,totapen,trafarbiot,trifacilina,ukapen,ultrabion,ultrabron,vampen,viccillin,vidocillin,wypicil" 2 "g" 6 "g" "101477-8,101478-6,18864-9,18865-6,20374-5,21066-6,23618-2,27-3,28-1,29-9,30-7,31-5,32-3,33-1,3355-5,33562-0,33919-2,34-9,43883-8,43884-6,6979-9,6980-7,87604-5"
|
"AMP" 6249 "Ampicillin" "Beta-lactams/penicillins" "J01CA01,QJ01CA01,QJ51CA01,QS01AA19,S01AA19" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "am,amp,amp100,amp200,ampi,ampici" "adobacillin,alpen,amblosin,amcap,amcill,amfipen,ampen,amperil,ampichel,ampicilina,ampicillina,ampicilline,ampicillinesalt,ampicillinsalt,ampicillinum,ampifarm,ampikel,ampimed,ampinova,ampipenin,ampiscel,ampisyn,ampivax,ampivet,amplacilina,amplin,amplipenyl,amplisom,amplital,austrapen,bayer,binotal,bonapicillin,britacil,cimex,citteral,copharcilin,cymbi,delcillin,deripen,divercillin,doktacillin,domicillin,duphacillin,grampenil,guicitrina,guicitrine,lifeampil,marcillin,morepen,norobrittin,nuvapen,omnipen,orbicilina,penbristol,penbritin,penbrock,penialmen,penicline,penimic,penizillin,pensyn,pentrex,pentrexl,pentrexyl,pentritin,ponecil,princillin,principen,racenacillin,redicilin,rosampline,roscillin,semicillin,servicillin,sumipanto,supen,synpenin,texcillin,tokiocillin,tolomol,totacillin,totalciclina,totapen,trafarbiot,trifacilina,ukapen,ultrabion,ultrabron,vampen,viccillin,vidocillin,wypicil" 2 "g" 6 "g" "101477-8,101478-6,18864-9,18865-6,20374-5,21066-6,23618-2,27-3,28-1,29-9,30-7,31-5,32-3,33-1,3355-5,33562-0,33919-2,34-9,43883-8,43884-6,6979-9,6980-7,87604-5"
|
||||||
"SAM" 119561 "Ampicillin/sulbactam" "Beta-lactams/penicillins" "J01CR01" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "a/s,ab,ams,amsu,apsu,sam" "sulacillin" 6 "g" "101478-6,18865-6,20374-5,23618-2,31-5,32-3,33-1,34-9,6980-7"
|
"SAM" 119561 "Ampicillin/sulbactam" "Beta-lactams/penicillins" "J01CR01,QJ01CR01" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "a/s,ab,ampsul,ams,amsu,apsu,sam" "sulacillin" 6 "g" "101478-6,18865-6,20374-5,23618-2,31-5,32-3,33-1,34-9,6980-7"
|
||||||
"AMR" 73341 "Amprolium" "Other antibacterials" "QP51BX02" "NA" "amprol,amprolio,amprovine,anticoccid,cocciprol,corid,mepyrium,picolinium,pyridinium,thiacoccid" "NA"
|
"AMR" 73341 "Amprolium" "Other antibacterials" "QP51BX02" "NA" "amprol,amprolio,amprovine,anticoccid,cocciprol,corid,mepyrium,picolinium,pyridinium,thiacoccid" "NA"
|
||||||
"ANI" 166548 "Anidulafungin" "Antifungals/antimycotics" "J02AX06" "Antimycotics for systemic use" "Other antimycotics for systemic use" "anid" "anidulafungina,anidulafungine,anidulafunginum,biafungin,ecalta,eraxis" 0.1 "g" "55343-8,57095-2,58420-1,77162-6"
|
"ANI" 166548 "Anidulafungin" "Antifungals/antimycotics" "J02AX06,QJ02AX06" "Antimycotics for systemic use" "Other antimycotics for systemic use" "anid,anidul" "anidulafungina,anidulafungine,anidulafunginum,biafungin,ecalta,eraxis" 0.1 "g" "55343-8,57095-2,58420-1,77162-6"
|
||||||
"APL" 6602341 "Apalcillin" "Beta-lactams/penicillins" "NA" "NA" "apalcilina,apalcilline,apalcillinsalt,apalcillinum,lumota" "NA"
|
"APL" 6602341 "Apalcillin" "Beta-lactams/penicillins" "NA" "apalci" "apalcilina,apalcilline,apalcillinsalt,apalcillinum,lumota" "NA"
|
||||||
"APR" 3081545 "Apramycin" "Aminoglycosides" "QA07AA92,QJ01GB90,QJ51GB90" "NA" "ambylan,apralan,apramicina,apramycine,apramycinum" "23659-6,73652-0,73653-8"
|
"APR" 3081545 "Apramycin" "Aminoglycosides" "QA07AA92,QJ01GB90,QJ51GB90" "apramy" "ambylan,apralan,apramicina,apramycine,apramycinum" "23659-6,73652-0,73653-8"
|
||||||
"ARB" 68682 "Arbekacin" "Aminoglycosides" "J01GB12" "NA" "arbekacina,arbekacine,arbekacinum,haberacin" 0.2 "g" "32373-3,53818-1,54173-0"
|
"ARB" 68682 "Arbekacin" "Aminoglycosides" "J01GB12,QJ01GB12" "arbeka" "arbekacina,arbekacine,arbekacinum,haberacin" 0.2 "g" "32373-3,53818-1,54173-0"
|
||||||
"APX" 71961 "Aspoxicillin" "Beta-lactams/penicillins" "J01CA19" "NA" "aspoxicilina,aspoxicillan,aspoxicilline,aspoxicillinum,doyle" 4 "g" "NA"
|
"APX" 71961 "Aspoxicillin" "Beta-lactams/penicillins" "J01CA19,QJ01CA19" "apoxic,aspoxi" "aspoxicilina,aspoxicillan,aspoxicilline,aspoxicillinum,doyle" 4 "g" "NA"
|
||||||
"AST" 5284517 "Astromicin" "Aminoglycosides" "NA" "NA" "abbott,astromicina,astromicine,astromicinum,fortimicin,istamycin,istamycins" "NA"
|
"AST" 5284517 "Astromicin" "Aminoglycosides" "NA" "astrom" "abbott,astromicina,astromicine,astromicinum,fortimicin,istamycin,istamycins" "NA"
|
||||||
"AVB" 9835049 "Avibactam" "Beta-lactams/penicillins" "NA" "NA" "avibactamfreeacid" "NA"
|
"AVB" 9835049 "Avibactam" "Beta-lactams/penicillins" "NA" "NA" "avibactamfreeacid" "NA"
|
||||||
"AVI" 71674 "Avilamycin" "Other antibacterials" "QA07AA95" "NA" "avilamycina,avilamycine,avilamycinum,inteprity,kavault,surmax" "35754-1,35755-8,35756-6,55619-1"
|
"AVI" 71674 "Avilamycin" "Other antibacterials" "QA07AA95" "avilam" "avilamycina,avilamycine,avilamycinum,inteprity,kavault,surmax" "35754-1,35755-8,35756-6,55619-1"
|
||||||
"AVO" 16131159 "Avoparcin" "Glycopeptides" "NA" "NA" "firvanq,tagocid,targocid,targosid,tecoplanina,tecoplanine,tecoplaninum,teichomycin,teicoplanina,teicoplanine,teicoplaninum,teikoplanin,ticocin" "NA"
|
"AVO" 16131159 "Avoparcin" "Glycopeptides" "NA" "NA" "firvanq,tagocid,targocid,targosid,tecoplanina,tecoplanine,tecoplaninum,teichomycin,teicoplanina,teicoplanine,teicoplaninum,teikoplanin,ticocin" "NA"
|
||||||
"AZD" 15574941 "Azidocillin" "Beta-lactams/penicillins" "J01CE04" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "azidocilina,azidocillina,azidocilline,azidocillinum" 1.5 "g" "NA"
|
"AZD" 15574941 "Azidocillin" "Beta-lactams/penicillins" "J01CE04,QJ01CE04" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "azidocilina,azidocillina,azidocilline,azidocillinum" 1.5 "g" "NA"
|
||||||
"AZM" 447043 "Azithromycin" "Macrolides/lincosamides" "J01FA10,S01AA26" "Macrolides, lincosamides and streptogramins" "Macrolides" "az,azi,azit,azm" "aritromicina,aruzilina,azasite,azenil,azifast,azigram,azimakrol,azithramycine,azithrocin,azithromycine,azithromycinum,azitrocin,azitromax,azitromicina,azitromicine,azitromin,aziwin,aziwok,aztrin,azyter,hemomycin,macrozit,misultina,mixoterin,setron,sumamed,tobil,toraseptol,tromix,trozocina,trulimax,xithrone,zentavion,zifin,zithrax,zithromac,zithromax,zithromycin,zitrim,zitromax,zitrotek,zythromax" 0.3 "g" 0.5 "g" "100043-9,16420-2,16421-0,18866-4,23612-5,25233-8,35-6,36-4,37-2,38-0,6981-5,89480-8"
|
"AZM" 447043 "Azithromycin" "Macrolides/lincosamides" "J01FA10,QJ01FA10,QS01AA26,S01AA26" "Macrolides, lincosamides and streptogramins" "Macrolides" "az,azi,azit,azithr,azm" "aritromicina,aruzilina,azasite,azenil,azifast,azigram,azimakrol,azithramycine,azithrocin,azithromycine,azithromycinum,azitrocin,azitromax,azitromicina,azitromicine,azitromin,aziwin,aziwok,aztrin,azyter,hemomycin,macrozit,misultina,mixoterin,setron,sumamed,tobil,toraseptol,tromix,trozocina,trulimax,xithrone,zentavion,zifin,zithrax,zithromac,zithromax,zitrim,zitromax,zitrotek,zythromax" 0.3 "g" 0.5 "g" "100043-9,16420-2,16421-0,18866-4,23612-5,25233-8,35-6,36-4,37-2,38-0,6981-5,89480-8"
|
||||||
"AFC" "Azithromycin/fluconazole/secnidazole" "Other antibacterials" "J01RA07" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"AFC" "Azithromycin/fluconazole/secnidazole" "Other antibacterials" "J01RA07,QJ01RA07" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"AZL" 6479523 "Azlocillin" "Beta-lactams/penicillins" "J01CA09" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "az,azl,azlo" "azlin,azlocilina,azlocilline,azlocillinsalt,azlocillinum,securopen" 12 "g" "16422-8,18867-2,3368-8,39-8,40-6,41-4,41661-0,42-2"
|
"AZL" 6479523 "Azlocillin" "Beta-lactams/penicillins" "J01CA09,QJ01CA09" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "az,azl,azlo,azloci" "azlin,azlocilina,azlocilline,azlocillinsalt,azlocillinum,securopen" 12 "g" "16422-8,18867-2,3368-8,39-8,40-6,41-4,41661-0,42-2"
|
||||||
"ATM" 5742832 "Aztreonam" "Monobactams" "J01DF01" "Other beta-lactam antibacterials" "Monobactams" "at,atm,azm,azt,aztr" "azactam,azetreonam,azonam,azthreonam,aztreon,aztreonamum,cayston,dynabiotic,nebactam,primbactam,squibb" 4 "g" "101497-6,16423-6,18868-0,25234-6,3369-6,41662-8,41663-6,41664-4,41727-9,43-0,44-8,45-5,46-3,6982-3"
|
"ATM" 5742832 "Aztreonam" "Monobactams" "J01DF01,QJ01DF01" "Other beta-lactam antibacterials" "Monobactams" "at,atm,azm,azt,azt1,aztr,aztreo" "azactam,azetreonam,azonam,azthreonam,aztreon,aztreonamum,cayston,dynabiotic,nebactam,primbactam,squibb" 4 "g" "101497-6,16423-6,18868-0,25234-6,3369-6,41662-8,41663-6,41664-4,41727-9,43-0,44-8,45-5,46-3,6982-3"
|
||||||
"AZA" "Aztreonam/avibactam" "Monobactams" "NA" "NA" "NA" "NA"
|
"AZA" "Aztreonam/avibactam" "Monobactams" "J01DF51,QJ01DF51" "NA" "NA" "NA"
|
||||||
"ANC" "Aztreonam/nacubactam" "Monobactams" "NA" "NA" "NA" "NA"
|
"ANC" "Aztreonam/nacubactam" "Monobactams" "J01DF51,QJ01DF51" "NA" "NA" "NA"
|
||||||
"BAM" 441397 "Bacampicillin" "Beta-lactams/penicillins" "J01CA06" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "alphacilina,alphacillin,ambacamp,ambaxin,bacacil,bacampicilina,bacampicilline,bacampicillinum,bacampicine,berocillin,centurina,devonium,diancina,inacilin,maxifen,penglobe,pivatil,pondocil,pondocillin,pondocillina,sanguicillin,spectrobid,velbacil" 1.2 "g" "18869-8,47-1,48-9,49-7,50-5,55620-9"
|
"BAM" 441397 "Bacampicillin" "Beta-lactams/penicillins" "J01CA06,QJ01CA06" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "bacamp" "alphacilina,alphacillin,ambacamp,ambaxin,bacacil,bacampicilina,bacampicilline,bacampicillinum,bacampicine,berocillin,centurina,devonium,diancina,inacilin,maxifen,penglobe,pivatil,pondocil,pondocillin,pondocillina,sanguicillin,spectrobid,velbacil" 1.2 "g" "18869-8,47-1,48-9,49-7,50-5,55620-9"
|
||||||
"BAC" 78358334 "Bacitracin" "Other antibacterials" "D06AX05,J01XX10,R02AB04,S01AA32" "baci" "albac,altracin,ayfivin,baciferm,baciguent,baciim,baciliquin,bacilliquin,baciquent,bacitracina,bacitracine,bacitracinum,citracin,fortracin,mycitracin,parentracin,penitracin,septa,topitracin,topitrasin,tropitracin,zutracin" "10868-8,16428-5,18870-6,6827-0,6983-1,87603-7"
|
"BAC" 78358334 "Bacitracin" "Other antibacterials" "D06AX05,J01XX10,QA07AA93,QD06AX05,QJ01XX10,QR02AB04,QS01AA32,R02AB04,S01AA32" "baci,bacitr" "albac,altracin,ayfivin,baciferm,baciguent,baciim,baciliquin,bacilliquin,baciquent,bacitracina,bacitracine,bacitracinum,fortracin,mycitracin,parentracin,penitracin,septa,topitracin,topitrasin,tropitracin,zutracin" "10868-8,16428-5,18870-6,6827-0,6983-1,87603-7"
|
||||||
"BDQ" 5388906 "Bedaquiline" "Other antibacterials" "J04AK05" "NA" "NA" 86 "mg" "80637-2,88703-4,88704-2,94274-8,96107-8"
|
"BDQ" 5388906 "Bedaquiline" "Other antibacterials" "J04AK05,QJ04AK05" "NA" "NA" 86 "mg" "80637-2,88703-4,88704-2,94274-8,96107-8"
|
||||||
"BEK" 439318 "Bekanamycin" "Aminoglycosides" "J01GB13" "NA" "aminodeoxykanamycin,becanamicina,bekanamicina,bekanamycine,bekanamycinum" 0.6 "g" "NA"
|
"BEK" 439318 "Bekanamycin" "Aminoglycosides" "J01GB13,QJ01GB13" "NA" "aminodeoxykanamycin,becanamicina,bekanamicina,bekanamycine,bekanamycinum" 0.6 "g" "NA"
|
||||||
"BNB" "Benzathine benzylpenicillin" "Beta-lactams/penicillins" "J01CE08" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "NA" 3.6 "g" "NA"
|
"BNB" "Benzathine benzylpenicillin" "Beta-lactams/penicillins" "J01CE08,QJ01CE08" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "NA" 3.6 "g" "NA"
|
||||||
"BNP" 64725 "Benzathine phenoxymethylpenicillin" "Beta-lactams/penicillins" "J01CE10" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "bicillin,biphecillin" 2 "g" "NA"
|
"BNP" 64725 "Benzathine phenoxymethylpenicillin" "Beta-lactams/penicillins" "J01CE10,QJ01CE10" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "bicillin,biphecillin" 2 "g" "NA"
|
||||||
"PEN" 5904 "Benzylpenicillin" "Beta-lactams/penicillins" "J01CE01,S01AA14" "Combinations of antibacterials" "Combinations of antibacterials" "bepe,pen,peni,peni g,penicillin,penicillin g,pg" "bencilpenicilina,benzopenicillin,benzylpenicilline,benzylpenicillinum,capicillin,cillora,cilloral,cilopen,cintrisul,cosmopen,cristapen,crystapen,dropcillin,eskacillin,ethacillin,falapen,forpen,galofak,gelacillin,hipercilina,hyasorb,hylenta,lemopen,liquacillin,liquapen,monocillin,monopen,mycofarm,novocillin,penalev,penicillinum,penilaryn,penisem,pentid,pentids,pfizerpen,pharmacillin,pradupen,scotcil,sugracillin,sugracillinsalt,tabilin,ursopen,veticillin" 3.6 "g" "NA"
|
"PEN" 5904 "Benzylpenicillin" "Beta-lactams/penicillins" "J01CE01,QJ01CE01,QJ51CE01,QS01AA14,S01AA14" "Combinations of antibacterials" "Combinations of antibacterials" "bepe,pen,peni,peni g,penic8,penica,penici,penicillin,penicillin g,penora,pg" "bencilpenicilina,benzopenicillin,benzylpenicilline,benzylpenicillinum,capicillin,cillora,cilloral,cilopen,cintrisul,cosmopen,cristapen,crystapen,dropcillin,eskacillin,falapen,forpen,galofak,gelacillin,hipercilina,hyasorb,hylenta,lemopen,liquacillin,liquapen,monocillin,monopen,mycofarm,novocillin,penalev,penicillinum,penilaryn,penisem,pentid,pentids,pfizerpen,pharmacillin,pradupen,scotcil,sugracillin,sugracillinsalt,tabilin,ursopen,veticillin" 3.6 "g" "NA"
|
||||||
"PEN-S" "Benzylpenicillin screening test" "Beta-lactams/penicillins" "NA" "pen screen" "NA" "NA"
|
"PEN-S" "Benzylpenicillin screening test" "Beta-lactams/penicillins" "NA" "pen screen" "NA" "NA"
|
||||||
"BES" 10178705 "Besifloxacin" "Fluoroquinolones" "S01AE08" "NA" "besivance" "73606-6,73628-0,73651-2"
|
"BES" 10178705 "Besifloxacin" "Fluoroquinolones" "QS01AE08,S01AE08" "besifl" "besivance" "73606-6,73628-0,73651-2"
|
||||||
"BLA-S" "Beta-lactamase screening test" "Other" "NA" "beta-lactamase,betalactamase,bl screen,blt screen" "NA" "NA"
|
"BLA-S" "Beta-lactamase screening test" "Other" "NA" "beta-lactamase,betalactamase,bl screen,blt screen" "NA" "NA"
|
||||||
"BIA" 71339 "Biapenem" "Carbapenems" "J01DH05" "NA" "biapenern,omegacin" 1.2 "g" "41665-1,41666-9,41667-7,41728-7"
|
"BIA" 71339 "Biapenem" "Carbapenems" "J01DH05,QJ01DH05" "biapen" "biapenern,omegacin" 1.2 "g" "41665-1,41666-9,41667-7,41728-7"
|
||||||
"BCZ" 65807 "Bicyclomycin" "Other antibacterials" "NA" "bicozamycin" "aizumycin,bacfeed,bacteron,bicozamicina,bicozamycin,bicozamycine,bicozamycinum" "NA"
|
"BCZ" 65807 "Bicyclomycin" "Other antibacterials" "NA" "bicozamycin" "aizumycin,bacfeed,bacteron,bicozamicina,bicozamycin,bicozamycine,bicozamycinum" "NA"
|
||||||
"BLM" 5360373 "Bleomycin" "Glycopeptides" "L01DC01" "NA" "blenamax,blenoxane,bleocin,bleomicin,bleomicina,bleomycine,bleomycins,bleomycinum,blexane,nbleomycinamide" "NA"
|
"BLM" 5360373 "Bleomycin" "Glycopeptides" "L01DC01,QL01DC01" "NA" "blenamax,blenoxane,bleocin,bleomicin,bleomicina,bleomycine,bleomycins,bleomycinum,blexane,nbleomycinamide" "NA"
|
||||||
"BDP" 68760 "Brodimoprim" "Trimethoprims" "J01EA02" "Sulfonamides and trimethoprim" "Trimethoprim and derivatives" "NA" "brodimoprima,brodimoprime,brodimoprimum,bromdimoprim,hyprim,unitrim" 0.2 "g" "NA"
|
"BDP" 68760 "Brodimoprim" "Trimethoprims" "J01EA02,QJ01EA02" "Sulfonamides and trimethoprim" "Trimethoprim and derivatives" "NA" "brodimoprima,brodimoprime,brodimoprimum,bromdimoprim,hyprim,unitrim" 0.2 "g" "NA"
|
||||||
"BUT" 47472 "Butoconazole" "Antifungals/antimycotics" "G01AF15" "NA" "butaconazole,butoconazol,butoconazolum,gynofort" "NA"
|
"BUT" 47472 "Butoconazole" "Antifungals/antimycotics" "G01AF15,QG01AF15" "NA" "butaconazole,butoconazol,butoconazolum,gynofort" "NA"
|
||||||
"CDZ" 44242317 "Cadazolid" "Oxazolidinones" "NA" "NA" "NA" "NA"
|
"CDZ" 44242317 "Cadazolid" "Oxazolidinones" "NA" "NA" "NA" "NA"
|
||||||
"CLA" "Calcium aminosalicylate" "Antimycobacterials" "J04AA03" "Drugs for treatment of tuberculosis" "Aminosalicylic acid and derivatives" "NA" "NA" 15 "g" "NA"
|
"CLA" "Calcium aminosalicylate" "Antimycobacterials" "J04AA03,QJ04AA03" "Drugs for treatment of tuberculosis" "Aminosalicylic acid and derivatives" "NA" "NA" 15 "g" "NA"
|
||||||
"CAP" 135565060 "Capreomycin" "Antimycobacterials" "J04AB30" "Drugs for treatment of tuberculosis" "Antibiotics" "capr" "NA" 1 "g" "16545-6,18872-2,23607-5,25210-6,25211-4,25212-2,42643-7,48170-5,55-4,55623-3,56-2,57-0,58-8,61355-4,89483-2"
|
"CAP" 135565060 "Capreomycin" "Antimycobacterials" "J04AB30,QJ04AB30" "Drugs for treatment of tuberculosis" "Antibiotics" "capr,capreo" "NA" 1 "g" "16545-6,18872-2,23607-5,25210-6,25211-4,25212-2,42643-7,48170-5,55-4,55623-3,56-2,57-0,58-8,61355-4,89483-2"
|
||||||
"CRB" 20824 "Carbenicillin" "Beta-lactams/penicillins" "J01CA03" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "bar,carb,cb" "anabactyl,carbecin,carbenicilina,carbenicillina,carbenicilline,carbenicillinum,dicarbenicillin,dipenicillin,fugacillin,geopen,gripenin,hyoper,microcillin,piopen,pyocianil,pyoclox,pyopan,pyopen,pyopene" 12 "g" "18873-0,3434-8,41668-5,59-6,60-4,61-2,62-0"
|
"CRB" 20824 "Carbenicillin" "Beta-lactams/penicillins" "J01CA03,QJ01CA03" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "bar,carb,carben,cb" "anabactyl,carbecin,carbenicilina,carbenicillina,carbenicilline,carbenicillinum,dicarbenicillin,dipenicillin,fugacillin,geopen,gripenin,hyoper,microcillin,piopen,pyocianil,pyoclox,pyopan,pyopen,pyopene" 12 "g" "18873-0,3434-8,41668-5,59-6,60-4,61-2,62-0"
|
||||||
"CRN" 93184 "Carindacillin" "Beta-lactams/penicillins" "J01CA05" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "carindacilina,carindacilline,carindacillinsalt,carindacillinum,geocillin,indanylcarbinicillin,urobac" 4 "g" "NA"
|
"CRN" 93184 "Carindacillin" "Beta-lactams/penicillins" "J01CA05,QJ01CA05" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "carindacilina,carindacilline,carindacillinsalt,carindacillinum,geocillin,indanylcarbinicillin,urobac" 4 "g" "NA"
|
||||||
"CAR" 6540466 "Carumonam" "Monobactams" "J01DF02" "NA" "carumonamum" 2 "g" "51694-8"
|
"CAR" 6540466 "Carumonam" "Monobactams" "J01DF02,QJ01DF02" "NA" "carumonamum" 2 "g" "51694-8"
|
||||||
"CAS" 2826718 "Caspofungin" "Antifungals/antimycotics" "J02AX04" "Antimycotics for systemic use" "Other antimycotics for systemic use" "casp" "cancidas,caspofungina" 50 "mg" "32378-2,54175-5,54176-3,54185-4,58419-3"
|
"CAS" 2826718 "Caspofungin" "Antifungals/antimycotics" "J02AX04,QJ02AX04" "Antimycotics for systemic use" "Other antimycotics for systemic use" "casp,caspof" "cancidas,caspofungina" 50 "mg" "32378-2,54175-5,54176-3,54185-4,58419-3"
|
||||||
"CAC" 91562 "Cefacetrile" "Cephalosporins (1st gen.)" "J01DB10" "Other beta-lactam antibacterials" "First-generation cephalosporins" "NA" "cefacetril,cefacetrilo,cefacetrilum,celospor,cephacetrile,vetrimast" "55624-1,55625-8,55626-6,55627-4"
|
"CAC" 91562 "Cefacetrile" "Cephalosporins (1st gen.)" "J01DB10,QJ01DB10,QJ51DB10" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cephac" "cefacetril,cefacetrilo,cefacetrilum,celospor,cephacetrile,vetrimast" "55624-1,55625-8,55626-6,55627-4"
|
||||||
"CEC" 51039 "Cefaclor" "Cephalosporins (2nd gen.)" "J01DC04" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "ccl,cec,cf,cfac,cfc,cfcl,cfr,fac" "alenfral,alfacet,alfatil,ceclor,cefachlor,cefaclorum,cefeaclor,cephaclor,cephalexin,compound,distaclor,keflor,kefolor,kefral,keftab,keftid,lilly,lopac,panacef,panoral,raniclor" 1 "g" "16564-7,18874-8,21149-0,6986-4,83-6,84-4,85-1,86-9"
|
"CEC" 51039 "Cefaclor" "Cephalosporins (2nd gen.)" "J01DC04,QJ01DC04" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "ccl,cec,cefacl,cf,cfac,cfc,cfcl,cfr,fac" "alenfral,alfacet,alfatil,ceclor,cefachlor,cefaclorum,cefeaclor,cephaclor,compound,distaclor,keflor,kefolor,kefral,keftab,keftid,lilly,lopac,panacef,panoral,raniclor" 1 "g" "16564-7,18874-8,21149-0,6986-4,83-6,84-4,85-1,86-9"
|
||||||
"CFR" 47965 "Cefadroxil" "Cephalosporins (1st gen.)" "J01DB05" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cfdx,cfr,fad" "bidocel,cefadrops,cefadroxilo,cefadroxilum,cefradroxil,cefzil,cephadroxil,duracef,duricef,kefroxil,sumacef,ultracef" 2 "g" "16565-4,18875-5,55628-2,63-8,64-6,65-3,66-1"
|
"CFR" 47965 "Cefadroxil" "Cephalosporins (1st gen.)" "J01DB05,QJ01DB05" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cefadr,cfdx,cfr,fad" "bidocel,cefadrops,cefadroxilo,cefadroxilum,cefradroxil,cefzil,cephadroxil,duracef,duricef,kefroxil,sumacef,ultracef" 2 "g" "16565-4,18875-5,55628-2,63-8,64-6,65-3,66-1"
|
||||||
"LEX" 27447 "Cefalexin" "Cephalosporins (1st gen.)" "J01DB01" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cflx" "adcadina,alcephin,alexin,alsporin,ambal,amplex,aristosporin,azabort,bactopenor,beliam,biocef,carnosporin,cefablan,cefacet,cefadal,cefadin,cefadina,cefalekey,cefaleksin,cefalessina,cefalexgobens,cefalexina,cefalexine,cefalexinum,cefalin,cefalival,cefaloto,cefanex,cefaseptin,cefax,ceffanex,cefibacter,ceflax,ceforal,cefovit,celexin,cepastar,cepexin,cephacillin,cephalexine,cephalexinum,cephalobene,cephanasten,cephaxin,cephin,cepol,ceporex,ceporexin,ceporexine,cerexin,cerexins,check,cophalexin,domucef,doriman,durantel,efemida,erocetin,factagard,felexin,fexin,ibilex,ibrexin,inphalex,karilexina,kefalospes,keflet,keflex,kefolan,keforal,kekrinal,kidolex,lafarine,larixin,lenocef,lexibiotico,loisine,lonflex,lopilexin,losporal,madlexin,maksipor,mamalexin,mamlexin,medolexin,medoxine,neokef,neolexina,noveol,novolexin,nufex,optocef,oracef,oriphex,oroxin,ortisporina,ospexin,palitrex,panixine,pectril,prindex,pyassan,rilexine,roceph,rogevil,sanaxin,sartosona,sencephalin,sepexin,servicef,servispor,sialexin,sinthecillin,sintolexyn,sporicef,sporidex,syncl,syncle,synecl,taicelexin,tepaxin,theratrex,tokiolexin,uphalexin,viosporine,voxxim,winlex,zabytrex,zozarine" 2 "g" "NA"
|
"LEX" 27447 "Cefalexin" "Cephalosporins (1st gen.)" "J01DB01,QJ01DB01,QJ51DB01" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cepale,cflx" "adcadina,alcephin,alsporin,ambal,amplex,aristosporin,azabort,bactopenor,beliam,biocef,carnosporin,cefablan,cefacet,cefadal,cefadin,cefadina,cefalekey,cefaleksin,cefalessina,cefalexgobens,cefalexina,cefalexine,cefalexinum,cefalin,cefalival,cefaloto,cefanex,cefaseptin,cefax,ceffanex,cefibacter,ceflax,ceforal,cefovit,celexin,cepastar,cepexin,cephacillin,cephalexine,cephalexinum,cephalobene,cephanasten,cephaxin,cephin,cepol,ceporex,ceporexin,ceporexine,cerexin,cerexins,check,cophalexin,domucef,doriman,durantel,efemida,erocetin,factagard,felexin,fexin,ibilex,ibrexin,inphalex,karilexina,kefalospes,keflet,keflex,kefolan,keforal,kekrinal,kidolex,lafarine,larixin,lenocef,lexibiotico,loisine,lonflex,lopilexin,losporal,madlexin,maksipor,mamalexin,mamlexin,medolexin,medoxine,neokef,neolexina,noveol,novolexin,nufex,optocef,oracef,oriphex,oroxin,ortisporina,ospexin,palitrex,panixine,pectril,prindex,pyassan,rilexine,roceph,rogevil,sanaxin,sartosona,sencephalin,sepexin,servicef,servispor,sialexin,sinthecillin,sintolexyn,sporicef,sporidex,syncl,syncle,synecl,taicelexin,tepaxin,theratrex,tokiolexin,uphalexin,viosporine,voxxim,winlex,zabytrex,zozarine" 2 "g" "NA"
|
||||||
"RID" 5773 "Cefaloridine" "Cephalosporins (1st gen.)" "J01DB02" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cefa" "aliporina,ampligram,cefaloridin,cefaloridina,cefaloridinum,cefalorizin,ceflorin,cepaloridin,cepalorin,cephalomycine,cephaloridin,cephaloridine,cephaloridinum,ceporan,ceporin,ceporine,cilifor,deflorin,faredina,floridin,glaxoridin,intrasporin,keflodin,keflordin,kefloridin,kefspor,lloncefal,loridine,sasperin,sefacin,verolgin,vioviantine" 3 "g" "NA"
|
"RID" 5773 "Cefaloridine" "Cephalosporins (1st gen.)" "J01DB02,QJ01DB02" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cefa,ceplor" "aliporina,ampligram,cefaloridin,cefaloridina,cefaloridinum,cefalorizin,ceflorin,cepaloridin,cepalorin,cephalomycine,cephaloridin,cephaloridine,cephaloridinum,ceporan,ceporin,ceporine,cilifor,deflorin,faredina,floridin,glaxoridin,intrasporin,keflodin,keflordin,kefloridin,kefspor,lloncefal,sasperin,sefacin,verolgin,vioviantine" 3 "g" "NA"
|
||||||
"CEP" 6024 "Cefalotin" "Cephalosporins (1st gen.)" "J01DB03" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cfal,cflt" "averon,cefalothin,cefalothine,cefalothinsalt,cefalotina,cefalotine,cefalotinsalt,cefalotinum,cemastin,cephalothin,cephalothinsalt,cephalothinum,cephalotin,cephalotinsalt,ceporacin,cepovenin,coaxin,keflin,lospoven,microtin,seffin,synclotin,toricelocin" 4 "g" "NA"
|
"CEP" 6024 "Cefalotin" "Cephalosporins (1st gen.)" "J01DB03,QJ01DB03" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cephal,cfal,cflt" "averon,cefalothin,cefalothine,cefalothinsalt,cefalotina,cefalotine,cefalotinsalt,cefalotinum,cemastin,cephalothin,cephalothinsalt,cephalothinum,cephalotin,cephalotinsalt,ceporacin,cepovenin,coaxin,keflin,lospoven,microtin,seffin,synclotin,toricelocin" 4 "g" "NA"
|
||||||
"MAN" 456255 "Cefamandole" "Cephalosporins (2nd gen.)" "J01DC03" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cfam,cfmn" "cefadole,cefamandol,cefamandolum,cephadole,kefamandol,kefdole,mancef" 6 "g" "18876-3,3441-3,41669-3,55634-0,55635-7,55636-5,55637-3,67-9,68-7,69-5,70-3"
|
"MAN" 456255 "Cefamandole" "Cephalosporins (2nd gen.)" "J01DC03,QJ01DC03" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefama,cfam,cfmn" "cefadole,cefamandol,cefamandolum,cephadole,kefamandol,kefdole,mancef" 6 "g" "18876-3,3441-3,41669-3,55634-0,55635-7,55636-5,55637-3,67-9,68-7,69-5,70-3"
|
||||||
"HAP" 30699 "Cefapirin" "Cephalosporins (1st gen.)" "J01DB08" "Other beta-lactam antibacterials" "First-generation cephalosporins" "NA" "ambrocef,brisfirina,brisporin,bristocef,cefadyl,cefalak,cefaloject,cefapirina,cefapirine,cefapirinsalt,cefapirinum,cefaprin,cefatrex,cefatrexyl,cephapirin,cephapirine,cephapirinsalt,cephatrexil,cephatrexyl,metricure" 4 "g" "NA"
|
"HAP" 30699 "Cefapirin" "Cephalosporins (1st gen.)" "J01DB08,QG51AA05,QJ01DB08,QJ51DB08" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cephap" "ambrocef,brisfirina,brisporin,bristocef,cefadyl,cefalak,cefaloject,cefapirina,cefapirine,cefapirinsalt,cefapirinum,cefaprin,cefatrex,cefatrexyl,cephapirin,cephapirine,cephapirinsalt,cephatrexil,cephatrexyl,metricure" 4 "g" "NA"
|
||||||
"CTZ" 6410758 "Cefatrizine" "Cephalosporins (1st gen.)" "J01DB07" "Other beta-lactam antibacterials" "First-generation cephalosporins" "NA" "bricef,cefathiamidine,cefatrix,cefatrizino,cefatrizinum,cephatriazine,cepticol,cetrazil,latocef,orosporina,orotric,seapuron,trizina" 1 "g" "18877-1,55639-9,71-1,72-9,73-7,74-5"
|
"CTZ" 6410758 "Cefatrizine" "Cephalosporins (1st gen.)" "J01DB07,QJ01DB07" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cefatr" "bricef,cefathiamidine,cefatrix,cefatrizino,cefatrizinum,cephatriazine,cepticol,cetrazil,latocef,orosporina,orotric,seapuron,trizina" 1 "g" "18877-1,55639-9,71-1,72-9,73-7,74-5"
|
||||||
"CZD" 71736 "Cefazedone" "Cephalosporins (1st gen.)" "J01DB06" "Other beta-lactam antibacterials" "First-generation cephalosporins" "NA" "cefazedon,cefazedona,cefazedonesalt,cefazedonum,refosporen,refosporene,refosporin,refosporinsalt" 3 "g" "NA"
|
"CZD" 71736 "Cefazedone" "Cephalosporins (1st gen.)" "J01DB06,QJ01DB06" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cefaze" "cefazedon,cefazedona,cefazedonesalt,cefazedonum,refosporen,refosporene,refosporin,refosporinsalt" 3 "g" "NA"
|
||||||
"CZO" 33255 "Cefazolin" "Cephalosporins (1st gen.)" "J01DB04" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cfz,cfzl,cz,czol,faz,kz" "ancef,atirin,biazolina,cefabiozim,cefacidal,cefalomicina,cefamedin,cefamezin,cefazil,cefazina,cefazolina,cefazoline,cefazolinsalt,cefazolinum,cephamezine,cephazolidin,cephazolin,cephazoline,elzogram,firmacef,gramaxin,kefzol,lampocef,liviclina,neofazol,oprea,recef,totacef,zolicef,zolin,zolisint" 3 "g" "16566-2,18878-9,25235-3,3442-1,3443-9,41670-1,75-2,76-0,77-8,78-6,80962-4,85422-4"
|
"CZO" 33255 "Cefazolin" "Cephalosporins (1st gen.)" "J01DB04,QJ01DB04,QJ51DB04" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cefazo,cfz,cfzl,cz,czol,faz,kz" "ancef,atirin,biazolina,cefabiozim,cefacidal,cefalomicina,cefamedin,cefamezin,cefazil,cefazina,cefazolina,cefazoline,cefazolinsalt,cefazolinum,cephamezine,cephazolidin,cephazolin,cephazoline,elzogram,firmacef,gramaxin,kefzol,lampocef,liviclina,neofazol,oprea,recef,totacef,zolicef,zolisint" 3 "g" "16566-2,18878-9,25235-3,3442-1,3443-9,41670-1,75-2,76-0,77-8,78-6,80962-4,85422-4"
|
||||||
"CFB" 127527 "Cefbuperazone" "Other antibacterials" "J01DC13" "NA" "cefbuperazona,cefbuperazonesalt,cefbuperazonum,cefbuperzaone,cerbuperazone,keiperazon,tomiporan" 2 "g" "NA"
|
"CFB" 127527 "Cefbuperazone" "Other antibacterials" "J01DC13,QJ01DC13" "cefbup" "cefbuperazona,cefbuperazonesalt,cefbuperazonum,cefbuperzaone,cerbuperazone,keiperazon,tomiporan" 2 "g" "NA"
|
||||||
"CCP" 6436055 "Cefcapene" "Cephalosporins (3rd gen.)" "J01DD17" "NA" "flomox" 0.45 "g" "100044-7,76143-7"
|
"CCP" 6436055 "Cefcapene" "Cephalosporins (3rd gen.)" "J01DD17,QJ01DD17" "cefcap" "flomox" 0.45 "g" "100044-7,76143-7"
|
||||||
"CCX" 5282438 "Cefcapene pivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "cefcamate,flumax" "NA"
|
"CCX" 5282438 "Cefcapene pivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "cefcamate,flumax" "NA"
|
||||||
"CDR" 6915944 "Cefdinir" "Cephalosporins (3rd gen.)" "J01DD15" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cd,cdn,cdr,cfd,din" "cefdinirum,cefdinyl,cefdirnir,ceftinex,cefzon,omnicef" 0.6 "g" "23636-4,23637-2,35757-4,35758-2"
|
"CDR" 6915944 "Cefdinir" "Cephalosporins (3rd gen.)" "J01DD15,QJ01DD15" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cd,cdn,cdr,cefdin,cfd,din" "cefdinirum,cefdinyl,cefdirnir,ceftinex,cefzon,omnicef" 0.6 "g" "23636-4,23637-2,35757-4,35758-2"
|
||||||
"DIT" 9870843 "Cefditoren" "Cephalosporins (3rd gen.)" "J01DD16" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cdn" "cefditoreno,spectracef" 0.4 "g" "35759-0,35760-8,35761-6,35762-4"
|
"DIT" 9870843 "Cefditoren" "Cephalosporins (3rd gen.)" "J01DD16,QJ01DD16" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cdn,cefdit" "cefditoreno,spectracef" 0.4 "g" "35759-0,35760-8,35761-6,35762-4"
|
||||||
"DIX" 6437877 "Cefditoren pivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "cefditorin,meiact,pivaloyloxymethyl" "NA"
|
"DIX" 6437877 "Cefditoren pivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "cefditorin,meiact,pivaloyloxymethyl" "NA"
|
||||||
"FEP" 5479537 "Cefepime" "Cephalosporins (4th gen.)" "J01DE01" "Other beta-lactam antibacterials" "Fourth-generation cephalosporins" "cfep,cfpi,cpe,cpm,fep,pm,xpm" "anticefepime,axepim,cefepima,cefepimum,maxipime,pyrrolidinium,renapime" 4 "g" "101502-3,18879-7,31142-3,31143-1,35763-2,38363-8,42350-9,42351-7,42353-3,50631-1,58412-8,6643-1,6644-9,6645-7,6646-5,6987-2,8272-7,8273-5"
|
"FEP" 5479537 "Cefepime" "Cephalosporins (4th gen.)" "J01DE01,QJ01DE01" "Other beta-lactam antibacterials" "Fourth-generation cephalosporins" "cefep4,cefepi,cfep,cfpi,cpe,cpm,fep,pm,xpm" "anticefepime,axepim,cefepima,cefepimum,maxipime,pyrrolidinium,renapime" 4 "g" "101502-3,18879-7,31142-3,31143-1,35763-2,38363-8,42350-9,42351-7,42353-3,50631-1,58412-8,6643-1,6644-9,6645-7,6646-5,6987-2,8272-7,8273-5"
|
||||||
"CFA" "Cefepime/amikacin" "Cephalosporins (4th gen.)" "J01RA06" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"CFA" "Cefepime/amikacin" "Cephalosporins (4th gen.)" "J01DE51,QJ01DE51" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"CPC" 9567559 "Cefepime/clavulanic acid" "Cephalosporins (4th gen.)" "NA" "cicl,xpml" "NA" "NA"
|
"CPC" 9567559 "Cefepime/clavulanic acid" "Cephalosporins (4th gen.)" "J01DE51,QJ01DE51" "cefcla,cicl,xpml" "NA" "NA"
|
||||||
"FNC" "Cefepime/nacubactam" "Cephalosporins (4th gen.)" "NA" "NA" "NA" "NA"
|
"FPE" 23653540 "Cefepime/enmetazobactam" "Cephalosporins (4th gen.)" "J01DE51,QJ01DE51" "NA" "NA" "NA"
|
||||||
"FPT" 9567558 "Cefepime/tazobactam" "Cephalosporins (4th gen.)" "NA" "NA" "NA" "NA"
|
"FNC" "Cefepime/nacubactam" "Cephalosporins (4th gen.)" "J01DE51,QJ01DE51" "NA" "NA" "NA"
|
||||||
"FPZ" "Cefepime/zidebactam" "Cephalosporins (4th gen.)" "NA" "NA" "NA" "NA"
|
"FPT" 9567558 "Cefepime/tazobactam" "Cephalosporins (4th gen.)" "J01DE51,QJ01DE51" "NA" "NA" "NA"
|
||||||
"CAT" 5487888 "Cefetamet" "Cephalosporins (3rd gen.)" "J01DD10" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "NA" "cefetametum,deacetoxycefotaxime,epocelin" 1 "g" "32377-4,35764-0,35765-7,55640-7"
|
"FPZ" "Cefepime/zidebactam" "Cephalosporins (4th gen.)" "J01DE51,QJ01DE51" "NA" "NA" "NA"
|
||||||
|
"CAT" 5487888 "Cefetamet" "Cephalosporins (3rd gen.)" "J01DD10,QJ01DD10" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefeta,cefmtm" "cefetametum,deacetoxycefotaxime,epocelin" 1 "g" "32377-4,35764-0,35765-7,55640-7"
|
||||||
"CPI" 5486182 "Cefetamet pivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "cefetametpivoxil,cefyl,globocef" "NA"
|
"CPI" 5486182 "Cefetamet pivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "cefetametpivoxil,cefyl,globocef" "NA"
|
||||||
"CCL" 71719688 "Cefetecol" "Cephalosporins (4th gen.)" "NA" "cefcatacol" "NA" "NA"
|
"CCL" 71719688 "Cefetecol" "Cephalosporins (4th gen.)" "NA" "cefcatacol" "NA" "NA"
|
||||||
"CZL" 193956 "Cefetrizole" "Cephalosporins (unclassified gen.)" "NA" "NA" "cefetrizolum" "NA"
|
"CZL" 193956 "Cefetrizole" "Cephalosporins (unclassified gen.)" "NA" "NA" "cefetrizolum" "NA"
|
||||||
"FDC" 77843966 "Cefiderocol" "Cephalosporins (unclassified gen.)" "J01DI04" "NA" "fetcroja" 6 "g" "95767-0,99280-0,99503-5"
|
"FDC" 77843966 "Cefiderocol" "Cephalosporins (unclassified gen.)" "J01DI04,QJ01DI04" "NA" "fetcroja" 6 "g" "95767-0,99280-0,99503-5"
|
||||||
"CFM" 5362065 "Cefixime" "Cephalosporins (3rd gen.)" "J01DD08" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cfe,cfix,cfxm,dcfm,fix,ix" "cefixim,cefixima,cefiximum,cefixoral,cefspan,cephoral,citropen,denvar,necopen,oraken,oroken,suprax,tricef,unixime" 0.4 "g" "16567-0,18880-5,25236-1,35766-5,79-4,80-2,81-0,82-8"
|
"CFM" 5362065 "Cefixime" "Cephalosporins (3rd gen.)" "J01DD08,QJ01DD08" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefixi,cfe,cfix,cfxm,dcfm,fix,ix" "cefixim,cefixima,cefiximum,cefixoral,cefspan,cephoral,citropen,denvar,necopen,oraken,oroken,suprax,tricef,unixime" 0.4 "g" "16567-0,18880-5,25236-1,35766-5,79-4,80-2,81-0,82-8"
|
||||||
"CEO" "Cefixime/ornidazole" "Other antibacterials" "J01RA15" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"CEO" "Cefixime/ornidazole" "Other antibacterials" "J01DD58,QJ01DD58" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"CMX" 9570757 "Cefmenoxime" "Cephalosporins (3rd gen.)" "J01DD05,S01AA31,S02AA18" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "NA" "bestron,cefmenoxima,cefmenoximum,tacef" 2 "g" "32375-8,54174-8,54203-5,55641-5"
|
"CMX" 9570757 "Cefmenoxime" "Cephalosporins (3rd gen.)" "J01DD05,QJ01DD05,QS01AA31,QS02AA18,S01AA31,S02AA18" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefmen" "bestron,cefmenoxima,cefmenoximum,tacef" 2 "g" "32375-8,54174-8,54203-5,55641-5"
|
||||||
"CMZ" 42008 "Cefmetazole" "Cephalosporins (2nd gen.)" "J01DC09" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "NA" "cefmetazol,cefmetazolo,cefmetazolum,cefmetazon,metafar,zefazone" 4 "g" "11575-8,18881-3,25222-1,87-7,88-5,89-3,90-1"
|
"CMZ" 42008 "Cefmetazole" "Cephalosporins (2nd gen.)" "J01DC09,QJ01DC09" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefmet" "cefmetazol,cefmetazolo,cefmetazolum,cefmetazon,metafar,zefazone" 4 "g" "11575-8,18881-3,25222-1,87-7,88-5,89-3,90-1"
|
||||||
"CNX" 71141 "Cefminox" "Other antibacterials" "J01DC12" "NA" "alteporina,cefminoxhydrate,cefminoxum,meicelin,tencef" 4 "g" "54908-9"
|
"CNX" 71141 "Cefminox" "Other antibacterials" "J01DC12,QJ01DC12" "cefmin" "alteporina,cefminoxhydrate,cefminoxum,meicelin,tencef" 4 "g" "54908-9"
|
||||||
"DIZ" 5361871 "Cefodizime" "Cephalosporins (3rd gen.)" "J01DD09" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "NA" "cefodizima,cefodizimum,cefodizme,diezime,kenicef,modivid,neucef,timecef" 2 "g" "18882-1,6988-0,91-9,92-7,93-5,94-3"
|
"DIZ" 5361871 "Cefodizime" "Cephalosporins (3rd gen.)" "J01DD09,QJ01DD09" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "NA" "cefodizima,cefodizimum,cefodizme,diezime,kenicef,modivid,neucef,timecef" 2 "g" "18882-1,6988-0,91-9,92-7,93-5,94-3"
|
||||||
"CID" 43594 "Cefonicid" "Cephalosporins (2nd gen.)" "J01DC06" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "NA" "cefonicide,cefonicido,cefonicidsalt,cefonicidum,monocef,monocid" 1 "g" "18883-9,25237-9,3444-7,55642-3,95-0,96-8,97-6,98-4"
|
"CID" 43594 "Cefonicid" "Cephalosporins (2nd gen.)" "J01DC06,QJ01DC06" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefoni" "cefonicide,cefonicido,cefonicidsalt,cefonicidum,monocef,monocid" 1 "g" "18883-9,25237-9,3444-7,55642-3,95-0,96-8,97-6,98-4"
|
||||||
"CFP" 44187 "Cefoperazone" "Cephalosporins (3rd gen.)" "J01DD12" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cfp,cfpz,cp,cpz,fop,per" "bioperazone,cefob,cefobid,cefobis,cefoneg,cefoper,cefoperazin,cefoperazine,cefoperazon,cefoperazona,cefoperazonesalt,cefoperazono,cefoperazonum,cefozon,medocef,myticef,pathozone,peracef,tomabef" 4 "g" "100-8,101-6,102-4,18884-7,3445-4,35767-3,35768-1,54166-4,54167-2,54168-0,99-2"
|
"CFP" 44187 "Cefoperazone" "Cephalosporins (3rd gen.)" "J01DD12,QJ01DD12,QJ51DD12" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefope,cfp,cfpz,cp,cpz,fop,per" "bioperazone,cefob,cefobid,cefobis,cefoneg,cefoper,cefoperazin,cefoperazine,cefoperazon,cefoperazona,cefoperazonesalt,cefoperazono,cefoperazonum,cefozon,medocef,myticef,pathozone,peracef,tomabef" 4 "g" "100-8,101-6,102-4,18884-7,3445-4,35767-3,35768-1,54166-4,54167-2,54168-0,99-2"
|
||||||
"CSL" "Cefoperazone/sulbactam" "Cephalosporins (3rd gen.)" "J01DD62" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "NA" "NA" 4 "g" "35768-1,54166-4,54167-2,54168-0"
|
"CSL" "Cefoperazone/sulbactam" "Cephalosporins (3rd gen.)" "J01DD62,QJ01DD62" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "fopsul" "NA" 4 "g" "35768-1,54166-4,54167-2,54168-0"
|
||||||
"CND" 43507 "Ceforanide" "Cephalosporins (2nd gen.)" "J01DC11" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "NA" "ceforanido,ceforanidum,precef" 4 "g" "103-2,104-0,105-7,106-5,18885-4,55643-1"
|
"CND" 43507 "Ceforanide" "Cephalosporins (2nd gen.)" "J01DC11,QJ01DC11" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefora" "ceforanido,ceforanidum,precef" 4 "g" "103-2,104-0,105-7,106-5,18885-4,55643-1"
|
||||||
"CSE" 9830519 "Cefoselis" "Cephalosporins (4th gen.)" "NA" "NA" "winsef" "NA"
|
"CSE" 9830519 "Cefoselis" "Cephalosporins (4th gen.)" "NA" "cefose" "winsef" "NA"
|
||||||
"CTX" 5742673 "Cefotaxime" "Cephalosporins (3rd gen.)" "J01DD01" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cfot,cft,cftx,ct,ctx,fot,tax,xct" "anticefotaxime,cefotax,cefotaxim,cefotaxima,cefotaximesalt,cefotaximsalt,cefotaximum,cephotaxim,cephotaxime,claforan,kefotex,omnatax,pretor,ralopar,taxim,tolycar,tolycor,zariviz" 4 "g" "101479-4,101480-2,107-3,108-1,109-9,110-7,18886-2,25238-7,31138-1,31139-9,3446-2,35769-9,35770-7,35771-5,41671-9,50632-9,52128-6,54191-2,54192-0,54193-8,55189-5,55644-9,6989-8,80961-6"
|
"CTX" 5742673 "Cefotaxime" "Cephalosporins (3rd gen.)" "J01DD01,QJ01DD01" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefo32,cefota,cfot,cft,cftx,ct,ctx,fot,fot1,tax,taxmen,taxnme,xct" "anticefotaxime,cefotax,cefotaxim,cefotaxima,cefotaximesalt,cefotaximsalt,cefotaximum,cephotaxim,cephotaxime,claforan,kefotex,omnatax,pretor,ralopar,tolycar,tolycor,zariviz" 4 "g" "101479-4,101480-2,107-3,108-1,109-9,110-7,18886-2,25238-7,31138-1,31139-9,3446-2,35769-9,35770-7,35771-5,41671-9,50632-9,52128-6,54191-2,54192-0,54193-8,55189-5,55644-9,6989-8,80961-6"
|
||||||
"CTX-S" "Cefotaxime screening test" "Cephalosporins (3rd gen.)" "NA" "ctx screen" "NA" "NA"
|
"CTX-S" "Cefotaxime screening test" "Cephalosporins (3rd gen.)" "NA" "ctx screen" "NA" "NA"
|
||||||
"CTC" 9575353 "Cefotaxime/clavulanic acid" "Cephalosporins (3rd gen.)" "J01DD51" "cxcl,xctl" "NA" "NA"
|
"CTC" 9575353 "Cefotaxime/clavulanic acid" "Cephalosporins (3rd gen.)" "J01DD51,QJ01DD51" "cxcl,taxcla,xctl" "NA" "NA"
|
||||||
"CTS" 9574753 "Cefotaxime/sulbactam" "Cephalosporins (3rd gen.)" "NA" "NA" "NA" "54191-2,54192-0,54193-8,55644-9"
|
"CTS" 9574753 "Cefotaxime/sulbactam" "Cephalosporins (3rd gen.)" "J01DD51,QJ01DD51" "NA" "NA" "54191-2,54192-0,54193-8,55644-9"
|
||||||
"CTT" 53025 "Cefotetan" "Cephalosporins (2nd gen.)" "J01DC05" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cftt,cn,cte,ctn,ctt,tans" "apacef,apatef,cefotetanum" 4 "g" "111-5,112-3,113-1,114-9,18887-0,25239-5,3447-0,41672-7,41673-5,41674-3,41729-5,6990-6"
|
"CTT" 53025 "Cefotetan" "Cephalosporins (2nd gen.)" "J01DC05,QJ01DC05" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefote,cftt,cn,cte,ctn,ctt,tans" "apacef,apatef,cefotetanum" 4 "g" "111-5,112-3,113-1,114-9,18887-0,25239-5,3447-0,41672-7,41673-5,41674-3,41729-5,6990-6"
|
||||||
"CTF" 43708 "Cefotiam" "Cephalosporins (2nd gen.)" "J01DC07" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "NA" "aspil,cefotiamum,ceradon,halospor,pansporin,pansporine,spizef" 1.2 "g" 4 "g" "32374-1,35772-3,35773-1,55645-6,55737-1,55738-9,55739-7,55740-5"
|
"CTF" 43708 "Cefotiam" "Cephalosporins (2nd gen.)" "J01DC07,QJ01DC07" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefoti" "aspil,cefotiamum,ceradon,halospor,pansporin,pansporine,spizef" 1.2 "g" 4 "g" "32374-1,35772-3,35773-1,55645-6,55737-1,55738-9,55739-7,55740-5"
|
||||||
"CHE" 125846 "Cefotiam hexetil" "Cephalosporins (3rd gen.)" "NA" "NA" "taketiam,texodil" "55737-1,55738-9,55739-7,55740-5"
|
"CHE" 125846 "Cefotiam hexetil" "Cephalosporins (3rd gen.)" "NA" "NA" "taketiam,texodil" "55737-1,55738-9,55739-7,55740-5"
|
||||||
"FOV" 9578573 "Cefovecin" "Cephalosporins (3rd gen.)" "QJ01DD91" "NA" "cefovecinsalt,convenia" "76147-8,87792-8"
|
"FOV" 9578573 "Cefovecin" "Cephalosporins (3rd gen.)" "QJ01DD91" "cefove" "cefovecinsalt,convenia" "76147-8,87792-8"
|
||||||
"FOX" 441199 "Cefoxitin" "Cephalosporins (2nd gen.)" "J01DC01" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cfox,cfx,cfxt,cx,fox,fx" "betacef,cefoxil,cefoxitina,cefoxitine,cefoxitinsalt,cefoxitinum,cefoxotin,cenomycin,farmoxin,mefoxin,mefoxithin,mefoxitin,merxin,rephoxitin" 6 "g" "101492-7,115-6,116-4,117-2,118-0,18888-8,25220-5,25240-3,25366-6,3448-8,41675-0,41676-8,41677-6,41730-3,6991-4"
|
"FOX" 441199 "Cefoxitin" "Cephalosporins (2nd gen.)" "J01DC01,QJ01DC01" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefoxi,cfox,cfx,cfxt,cx,fox,fx" "betacef,cefoxil,cefoxitina,cefoxitine,cefoxitinsalt,cefoxitinum,cefoxotin,cenomycin,farmoxin,mefoxin,mefoxithin,mefoxitin,merxin,rephoxitin" 6 "g" "101492-7,115-6,116-4,117-2,118-0,18888-8,25220-5,25240-3,25366-6,3448-8,41675-0,41676-8,41677-6,41730-3,6991-4"
|
||||||
"FOX-S" "Cefoxitin screening test" "Cephalosporins (2nd gen.)" "NA" "cfsc,fox1" "NA" "NA"
|
"FOX-S" "Cefoxitin screening test" "Cephalosporins (2nd gen.)" "NA" "cfsc,fox1" "NA" "NA"
|
||||||
"ZOP" 9571080 "Cefozopran" "Cephalosporins (4th gen.)" "J01DE03" "NA" "firstcin,imidazo" 4 "g" "100045-4,53820-7"
|
"ZOP" 9571080 "Cefozopran" "Cephalosporins (4th gen.)" "J01DE03,QJ01DE03" "cefozo" "firstcin,imidazo" 4 "g" "100045-4,53820-7"
|
||||||
"CFZ" 68597 "Cefpimizole" "Cephalosporins (3rd gen.)" "NA" "NA" "ajicef,cefpimizol,cefpimizolesalt,cefpimizolum,renilan" "NA"
|
"CFZ" 68597 "Cefpimizole" "Cephalosporins (3rd gen.)" "NA" "cefpim" "ajicef,cefpimizol,cefpimizolesalt,cefpimizolum,renilan" "NA"
|
||||||
"CPM" 636405 "Cefpiramide" "Cephalosporins (3rd gen.)" "J01DD11" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "NA" "cefpiramida,cefpiramidesalt,cefpiramido,cefpiramidum,sepatren,suncefal,tamicin" 2 "g" "NA"
|
"CPM" 636405 "Cefpiramide" "Cephalosporins (3rd gen.)" "J01DD11,QJ01DD11" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefpam" "cefpiramida,cefpiramidesalt,cefpiramido,cefpiramidum,sepatren,suncefal" 2 "g" "NA"
|
||||||
"CPO" 5479539 "Cefpirome" "Cephalosporins (4th gen.)" "J01DE02" "Other beta-lactam antibacterials" "Fourth-generation cephalosporins" "cfpr" "broact,cefir,cefpiroma,cefpiromum,cefrom,keiten,romecef" 4 "g" "18889-6,6647-3,6648-1,6649-9,6650-6,6992-2,8274-3,8275-0,8276-8"
|
"CPO" 5479539 "Cefpirome" "Cephalosporins (4th gen.)" "J01DE02,QJ01DE02" "Other beta-lactam antibacterials" "Fourth-generation cephalosporins" "cefpom,cfpr" "broact,cefir,cefpiroma,cefpiromum,cefrom,keiten,romecef" 4 "g" "18889-6,6647-3,6648-1,6649-9,6650-6,6992-2,8274-3,8275-0,8276-8"
|
||||||
"CPD" 6335986 "Cefpodoxime" "Cephalosporins (3rd gen.)" "J01DD13" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cfpd,cfpo,cpd,pod,px" "cefpodoxima,cefpodoximum,epoxim" 0.4 "g" "119-8,120-6,121-4,122-2,18890-4,25241-1,41678-4,41679-2,41680-0,41731-1,6993-0,90849-1"
|
"CPD" 6335986 "Cefpodoxime" "Cephalosporins (3rd gen.)" "J01DD13,QJ01DD13" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefpod,cfpd,cfpo,cpd,pod,pod4,px" "cefpodoxima,cefpodoximum,epoxim" 0.4 "g" "119-8,120-6,121-4,122-2,18890-4,25241-1,41678-4,41679-2,41680-0,41731-1,6993-0,90849-1"
|
||||||
"CPX" 6526396 "Cefpodoxime proxetil" "Cephalosporins (3rd gen.)" "NA" "NA" "banan,cefodox,cefoprox,cefpoderm,cefpodoximproxetil,cepodem,doxef,orelox,otreon,podomexef,simplicef,vantin" "NA"
|
"CPX" 6526396 "Cefpodoxime proxetil" "Cephalosporins (3rd gen.)" "NA" "NA" "banan,cefodox,cefoprox,cefpoderm,cefpodoximproxetil,cepodem,doxef,orelox,otreon,podomexef,simplicef,vantin" "NA"
|
||||||
"CDC" "Cefpodoxime/clavulanic acid" "Cephalosporins (3rd gen.)" "NA" "cecl" "NA" "NA"
|
"CDC" "Cefpodoxime/clavulanic acid" "Cephalosporins (3rd gen.)" "J01DD64,QJ01DD64" "cecl,podcla" "NA" 0.4 "g" "NA"
|
||||||
"CPR" 5281006 "Cefprozil" "Cephalosporins (2nd gen.)" "J01DC10" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cpr,cpz,fp" "arzimol,brisoral,cefprozilo,cefprozilum,cronocef,procef,serozil" 1 "g" "123-0,124-8,125-5,126-3,18891-2,6994-8"
|
"CPR" 5281006 "Cefprozil" "Cephalosporins (2nd gen.)" "J01DC10,QJ01DC10" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefpro,cpr,cpz,fp" "arzimol,brisoral,cefprozilo,cefprozilum,cronocef,procef,serozil" 1 "g" "123-0,124-8,125-5,126-3,18891-2,6994-8"
|
||||||
"CEQ" 5464355 "Cefquinome" "Cephalosporins (4th gen.)" "QG51AA07,QJ01DE90,QJ51DE90" "NA" "cefquinoma,cefquinomum,cobactan,quinolinium" "100046-2,76150-2"
|
"CEQ" 5464355 "Cefquinome" "Cephalosporins (4th gen.)" "QG51AA07,QJ01DE90,QJ51DE90" "cefqui" "cefquinoma,cefquinomum,cobactan,quinolinium" "100046-2,76150-2"
|
||||||
"CRD" 5284529 "Cefroxadine" "Cephalosporins (1st gen.)" "J01DB11" "Other beta-lactam antibacterials" "First-generation cephalosporins" "NA" "cefroxadin,cefroxadino,cefroxadinum,oraspor" 2.1 "g" "NA"
|
"CRD" 5284529 "Cefroxadine" "Cephalosporins (1st gen.)" "J01DB11,QJ01DB11" "Other beta-lactam antibacterials" "First-generation cephalosporins" "ceftix" "cefroxadin,cefroxadino,cefroxadinum,oraspor" 2.1 "g" "NA"
|
||||||
"CFS" 656575 "Cefsulodin" "Cephalosporins (3rd gen.)" "J01DD03" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cfsl,cfsu" "cefomonil,cefonomil,cefsulodine,cefsulodinhydrate,cefsulodino,cefsulodinum,pseudocef,pseudomonil,pyocefal,sulcephalosporin,takesulin,tilmapor,ulfaret" 4 "g" "127-1,128-9,129-7,130-5,131-3,18892-0,25242-9,55647-2"
|
"CFS" 656575 "Cefsulodin" "Cephalosporins (3rd gen.)" "J01DD03,QJ01DD03" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefsul,cfsl,cfsu" "cefomonil,cefonomil,cefsulodine,cefsulodinhydrate,cefsulodino,cefsulodinum,pseudocef,pseudomonil,pyocefal,sulcephalosporin,takesulin,tilmapor,ulfaret" 4 "g" "127-1,128-9,129-7,130-5,131-3,18892-0,25242-9,55647-2"
|
||||||
"CSU" 68718 "Cefsumide" "Cephalosporins (unclassified gen.)" "NA" "NA" "cefsulmid,cefsumido,cefsumidum" "NA"
|
"CSU" 68718 "Cefsumide" "Cephalosporins (unclassified gen.)" "NA" "NA" "cefsulmid,cefsumido,cefsumidum" "NA"
|
||||||
"CPT" 56841980 "Ceftaroline" "Cephalosporins (5th gen.)" "J01DI02" "cfro" "ceftaroine,teflaro,zinforo" 1.2 "g" "73604-1,73605-8,73626-4,73627-2,73649-6,73650-4,74170-2"
|
"CPT" 56841980 "Ceftaroline" "Cephalosporins (5th gen.)" "J01DI02,QJ01DI02" "ceftar,cfro" "ceftaroine,teflaro,zinforo" "73604-1,73605-8,73626-4,73627-2,73649-6,73650-4,74170-2"
|
||||||
"CPA" "Ceftaroline/avibactam" "Cephalosporins (5th gen.)" "NA" "NA" "NA" "73604-1,73626-4,73649-6"
|
"CPA" "Ceftaroline/avibactam" "Cephalosporins (5th gen.)" "NA" "NA" "NA" "73604-1,73626-4,73649-6"
|
||||||
"CAZ" 5481173 "Ceftazidime" "Cephalosporins (3rd gen.)" "J01DD02" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "caz,cefta,cfta,cftz,taz,tz,xtz" "ceftazimide,ceptaz,fortam,fortaz,fortum,glazidim,kefazim,modacin,pentacef,tazicef,tazidime,tizime,zidim" 4 "g" "101481-0,101482-8,101483-6,132-1,133-9,134-7,135-4,18893-8,21151-6,3449-6,35774-9,35775-6,35776-4,42352-5,55648-0,55649-8,55650-6,55651-4,58705-5,6995-5,73603-3,73625-6,73648-8,80960-8,87734-0,90850-9"
|
"CAZ" 5481173 "Ceftazidime" "Cephalosporins (3rd gen.)" "J01DD02,QJ01DD02" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "caz,cefta,ceftaz,cfta,cftz,taz,tz,xtz" "ceftazimide,ceptaz,fortam,fortaz,fortum,glazidim,kefazim,modacin,pentacef,tazicef,tizime" 4 "g" "101481-0,101482-8,101483-6,132-1,133-9,134-7,135-4,18893-8,21151-6,3449-6,35774-9,35775-6,35776-4,42352-5,55648-0,55649-8,55650-6,55651-4,58705-5,6995-5,73603-3,73625-6,73648-8,80960-8,87734-0,90850-9"
|
||||||
"CZA" 90643431 "Ceftazidime/avibactam" "Cephalosporins (3rd gen.)" "NA" "cfav" "avycaz,zavicefta" "101483-6,73603-3,73625-6,73648-8,87734-0"
|
"CZA" 90643431 "Ceftazidime/avibactam" "Cephalosporins (3rd gen.)" "J01DD52,QJ01DD52" "cfav" "avycaz,zavicefta" 6 "g" "101483-6,73603-3,73625-6,73648-8,87734-0"
|
||||||
"CCV" 9575352 "Ceftazidime/clavulanic acid" "Cephalosporins (3rd gen.)" "J01DD52" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "czcl,xtzl" "NA" 6 "g" "NA"
|
"CCV" 9575352 "Ceftazidime/clavulanic acid" "Cephalosporins (3rd gen.)" "J01DD52,QJ01DD52" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "czcl,tazcla,xtzl" "NA" 6 "g" "NA"
|
||||||
"CEM" 6537431 "Cefteram" "Cephalosporins (3rd gen.)" "J01DD18" "NA" "cefterame,cefteramum,ceftetrame" 0.4 "g" "100047-0,76144-5"
|
"CEM" 6537431 "Cefteram" "Cephalosporins (3rd gen.)" "J01DD18,QJ01DD18" "cefter" "cefterame,cefteramum,ceftetrame" 0.4 "g" "100047-0,76144-5"
|
||||||
"CPL" 5362114 "Cefteram pivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "cefterampivoxil,tomiron" "NA"
|
"CPL" 5362114 "Cefteram pivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "cefterampivoxil,tomiron" "NA"
|
||||||
"CTL" 65755 "Ceftezole" "Cephalosporins (1st gen.)" "J01DB12" "Other beta-lactam antibacterials" "First-generation cephalosporins" "NA" "alomen,ceftezol,ceftezolesalt,ceftezolo,ceftezolum,celoslin,demethylcefazolin,falomesin" 3 "g" "NA"
|
"CTL" 65755 "Ceftezole" "Cephalosporins (1st gen.)" "J01DB12,QJ01DB12" "Other beta-lactam antibacterials" "First-generation cephalosporins" "ceftez" "alomen,ceftezol,ceftezolesalt,ceftezolo,ceftezolum,celoslin,demethylcefazolin,falomesin" 3 "g" "NA"
|
||||||
"CTB" 5282242 "Ceftibuten" "Cephalosporins (3rd gen.)" "J01DD14" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cb,cfbu,ctb,tib" "cedax,ceftem,ceftibutene,ceftibuteno,ceftibutenum,ceftibutin,ceprifran,isocef,keimax,seftem" 0.4 "g" "35777-2,35778-0,35779-8,6996-3"
|
"CTB" 5282242 "Ceftibuten" "Cephalosporins (3rd gen.)" "J01DD14,QJ01DD14" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cb,ceftib,cfbu,ctb,tib" "cedax,ceftem,ceftibutene,ceftibuteno,ceftibutenum,ceftibutin,ceprifran,isocef,keimax,seftem" 0.4 "g" "35777-2,35778-0,35779-8,6996-3"
|
||||||
"TIO" 6328657 "Ceftiofur" "Cephalosporins (3rd gen.)" "QJ01DD90,QJ51DD90" "NA" "ceftiofurum,excenel,naxcel" "23709-9,35780-6,35781-4,55652-2"
|
"TIO" 6328657 "Ceftiofur" "Cephalosporins (3rd gen.)" "QJ01DD90,QJ51DD90" "ceftif" "ceftiofurum,excenel,naxcel" "23709-9,35780-6,35781-4,55652-2"
|
||||||
"CZX" 6533629 "Ceftizoxime" "Cephalosporins (3rd gen.)" "J01DD07" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cfzx,ctz,cz,czx,tiz,zox" "cefizox,ceftix,ceftizoxima,ceftizoximesalt,ceftizoximum,eposerin" 4 "g" "136-2,137-0,138-8,139-6,18894-6,20378-6,23622-4,25243-7,3450-4,6997-1"
|
"CZX" 6533629 "Ceftizoxime" "Cephalosporins (3rd gen.)" "J01DD07,QJ01DD07" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "ceftiz,cfzx,ctz,cz,czx,tiz,zox" "cefizox,ceftix,ceftizoxima,ceftizoximesalt,ceftizoximum,eposerin" 4 "g" "136-2,137-0,138-8,139-6,18894-6,20378-6,23622-4,25243-7,3450-4,6997-1"
|
||||||
"CZP" 9578661 "Ceftizoxime alapivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "NA" "NA"
|
"CZP" 9578661 "Ceftizoxime alapivoxil" "Cephalosporins (3rd gen.)" "NA" "NA" "NA" "NA"
|
||||||
"BPR" 135413542 "Ceftobiprole" "Cephalosporins (5th gen.)" "NA" "NA" "NA" "43269-0,43270-8,43271-6,43272-4,85052-9"
|
"BPR" 135413542 "Ceftobiprole" "Cephalosporins (5th gen.)" "NA" "ceftob" "NA" "43269-0,43270-8,43271-6,43272-4,85052-9"
|
||||||
"CFM1" 135413544 "Ceftobiprole medocaril" "Cephalosporins (5th gen.)" "J01DI01" "Other beta-lactam antibacterials" "Other cephalosporins and penems" "NA" "zevtera" 1.5 "g" "NA"
|
"CFM1" 135413544 "Ceftobiprole medocaril" "Cephalosporins (5th gen.)" "J01DI01,QJ01DI01" "Other beta-lactam antibacterials" "Other cephalosporins and penems" "NA" "zevtera" 1.5 "g" "NA"
|
||||||
"CZT" 86291594 "Ceftolozane/tazobactam" "Cephalosporins (5th gen.)" "J01DI54" "Other beta-lactam antibacterials" "Other cephalosporins and penems" "cei" "zerbaxa" 3 "g" "101484-4,73602-5,73624-9,73647-0,87735-7"
|
"CZT" 86291594 "Ceftolozane/tazobactam" "Cephalosporins (5th gen.)" "J01DI54,QJ01DI54" "Other beta-lactam antibacterials" "Other cephalosporins and penems" "cei" "zerbaxa" 3 "g" "101484-4,73602-5,73624-9,73647-0,87735-7"
|
||||||
"CRO" 5479530 "Ceftriaxone" "Cephalosporins (3rd gen.)" "J01DD04" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "axo,cax,cftr,cro,ctr,frx,tx" "biotrakson,ceftriaxon,ceftriaxona,ceftriaxonum,ceftriazone,rocefin,rocephalin,rocephin,rocephine,rophex" 2 "g" "101485-1,140-4,141-2,142-0,143-8,18895-3,25244-5,25367-4,31140-7,31141-5,3451-2,41681-8,41682-6,41683-4,41732-9,50633-7,55190-3,6998-9,80957-4"
|
"CRO" 5479530 "Ceftriaxone" "Cephalosporins (3rd gen.)" "J01DD04,QJ01DD04" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "axo,cax,ceftri,cftr,cro,ctr,frx,trimen,trinme,tx" "biotrakson,ceftriaxon,ceftriaxona,ceftriaxonum,ceftriazone,rocefin,rocephalin,rocephin,rocephine,rophex" 2 "g" "101485-1,140-4,141-2,142-0,143-8,18895-3,25244-5,25367-4,31140-7,31141-5,3451-2,41681-8,41682-6,41683-4,41732-9,50633-7,55190-3,6998-9,80957-4"
|
||||||
"CEB" "Ceftriaxone/beta-lactamase inhibitor" "Cephalosporins (3rd gen.)" "J01DD63" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "NA" "NA" 2 "g" "NA"
|
"CEB" "Ceftriaxone/beta-lactamase inhibitor" "Cephalosporins (3rd gen.)" "J01DD63,QJ01DD63" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "NA" "NA" 2 "g" "NA"
|
||||||
"CXM" 5479529 "Cefuroxime" "Cephalosporins (2nd gen.)" "J01DC02,S01AA27" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cfrx,cfur,cfx,crm,cxm,fur,rox,xm" "anaptivan,biociclin,biofuroksym,bioxima,cefofix,cefumax,cefurex,cefuril,cefurox,cefuroxim,cefuroxima,cefuroximesalt,cefuroximine,cefuroximo,cefuroximum,cephuroxime,cetroxil,colifossim,curoxim,curoxima,curoxime,froxal,furoxil,kefurox,kesint,ketocef,lifurox,medoxim,sharox,spectrazolr,ultroxim,zinacef,zinnat" 0.5 "g" 3 "g" "101503-1,144-6,145-3,146-1,147-9,18896-1,20460-2,25245-2,3452-0,35782-2,35783-0,51724-3,51774-8,55653-0,55654-8,6999-7,74699-0,80608-3,80617-4"
|
"CXM" 5479529 "Cefuroxime" "Cephalosporins (2nd gen.)" "J01DC02,QJ01DC02,QJ51DC02,QS01AA27,S01AA27" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "cefaxe,cefrox,cefuro,cfrx,cfur,cfx,crm,cxm,fur,rox,xm" "anaptivan,biociclin,biofuroksym,bioxima,cefofix,cefumax,cefurex,cefuril,cefurox,cefuroxim,cefuroxima,cefuroximesalt,cefuroximine,cefuroximo,cefuroximum,cephuroxime,cetroxil,colifossim,curoxim,curoxima,curoxime,froxal,furoxil,kefurox,kesint,ketocef,lifurox,medoxim,sharox,spectrazolr,ultroxim,zinacef,zinnat" 0.5 "g" 3 "g" "101503-1,144-6,145-3,146-1,147-9,18896-1,20460-2,25245-2,3452-0,35782-2,35783-0,51724-3,51774-8,55653-0,55654-8,6999-7,74699-0,80608-3,80617-4"
|
||||||
"CXA" 6321416 "Cefuroxime axetil" "Cephalosporins (2nd gen.)" "NA" "cfax" "bioracef,ceftin,cefurax,cefuroximaxetil,celocid,cepazine,cethixim,cetoxil,coliofossim,curocef,elobact,furoxime,kalcef,maxitil,medoxm,nivador,novador,novocef,oraxim,zinat,zoref" "NA"
|
"CXA" 6321416 "Cefuroxime axetil" "Cephalosporins (2nd gen.)" "NA" "cfax" "bioracef,ceftin,cefurax,cefuroximaxetil,celocid,cepazine,cethixim,cetoxil,coliofossim,curocef,elobact,kalcef,maxitil,medoxm,nivador,novador,novocef,oraxim,zinat,zoref" "NA"
|
||||||
"CFM2" "Cefuroxime/metronidazole" "Other antibacterials" "J01RA03" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"CFM2" "Cefuroxime/metronidazole" "Other antibacterials" "J01DC52,QJ01DC52" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" 0.5 "g" "NA"
|
||||||
"ZON" 6336505 "Cefuzonam" "Other antibacterials" "NA" "NA" "cefuzoname,cefuzonamum,cefzoname,cosmosin" "NA"
|
"ZON" 6336505 "Cefuzonam" "Other antibacterials" "NA" "cefuzo" "cefuzoname,cefuzonamum,cefzoname,cosmosin" "NA"
|
||||||
"CED" 38103 "Cephradine" "Cephalosporins (1st gen.)" "J01DB09" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cfra,cfrd" "anspor,cefradin,cefradina,cefradine,cefradinum,cekodin,cephradin,ecosporina,eskacef,infexin,megacef,sefril,velocef,velosef" 2 "g" 2 "g" "168-5,169-3,170-1,171-9,18902-7,55646-4"
|
"CED" 38103 "Cephradine" "Cephalosporins (1st gen.)" "NA" "Other beta-lactam antibacterials" "First-generation cephalosporins" "cephra,cfra,cfrd" "anspor,cefradin,cefradina,cefradine,cefradinum,cekodin,cephradin,ecosporina,eskacef,infexin,megacef,sefril,velocef,velosef" "168-5,169-3,170-1,171-9,18902-7,55646-4"
|
||||||
"CTO" 71402 "Cetocycline" "Tetracyclines" "NA" "NA" "cetocyline,cetotetrine,chelocardin" "NA"
|
"CTO" 71402 "Cetocycline" "Tetracyclines" "NA" "NA" "cetocyline,cetotetrine,chelocardin" "NA"
|
||||||
"CHL" 5959 "Chloramphenicol" "Phenicols" "D06AX02,D10AF03,G01AA05,J01BA01,S01AA01,S02AA01,S03AA08" "Amphenicols" "Amphenicols" "c,chl,chlo,cl" "alficetyn,ambofen,amphenicol,amphicol,amseclor,anacetin,aquamycetin,austracil,austracol,biocetin,biophenicol,catilan,chemicetin,chemicetina,chlomin,chlomycol,chloramex,chloramfenikol,chloramficin,chloramfilin,chloramphenicole,chloramphenicolum,chloramsaar,chlorasol,chlorbiotic,chloricol,chlornitromycin,chloroamphenicol,chlorocaps,chlorocid,chlorocide,chlorocin,chlorocol,chlorofair,chloromax,chloromycetin,chloromycetny,chloromyxin,chloronitrin,chloroptic,chlorovules,cidocetine,ciplamycetin,cloramfen,cloramfenicol,cloramfenicolo,cloramficin,cloramicol,cloramidina,cloranfenicol,cloroamfenicolo,clorocyn,cloromisan,clorosintex,comycetin,cylphenicol,desphen,detreomycin,detreomycine,dextramycin,dextromycetin,doctamicina,econochlor,embacetin,emetren,enicol,enteromycetin,erbaplast,ertilen,farmicetina,fenicol,globenicol,glorous,gloveticol,halcetin,halomycetin,hortfenicol,intramycetin,isicetin,ismicetina,isophenicol,juvamycetin,kamaver,kemicetina,kemicetine,kloramfenikol,klorita,laevomycetinum,leukamycin,leukomyan,leukomycin,levocin,levomicetina,levomitsetin,levomycetin,levoplast,levosin,levovetin,loromisan,loromisin,mastiphen,maybridge,mediamycetine,medichol,micloretin,micochlorine,micoclorina,microcetina,mychel,mycinol,myclocin,mycochlorin,novochlorocap,novomycetin,novophenicol,ocuphenicol,oftalent,oleomycetin,opclor,opelor,ophthochlor,ophthocort,ophtochlor,optomycin,otachron,otophen,pantovernil,paraxin,pentamycetin,petnamycetin,quemicetina,rivomycin,romphenil,ronphenil,septicol,sificetina,sintomicetin,sintomicetina,soluthor,stanomycetin,synthomycetin,synthomycetine,synthomycine,syntomycin,tevcocin,tevcosin,tifomycin,tifomycine,tiromycetin,treomicetina,tyfomycine,unimycetin,veticol,viceton" 3 "g" 3 "g" "15101-9,16603-3,16604-1,172-7,173-5,174-3,175-0,18903-5,25247-8,29214-4,29346-4,29347-2,3455-3,7001-1"
|
"CHL" 5959 "Chloramphenicol" "Phenicols" "D06AX02,D10AF03,G01AA05,J01BA01,QD06AX02,QD10AF03,QG01AA05,QJ01BA01,QJ51BA01,QS01AA01,QS02AA01,QS03AA08,S01AA01,S02AA01,S03AA08" "Amphenicols" "Amphenicols" "c,chl,chlo,chlora,cl" "alficetyn,ambofen,amphicol,amseclor,anacetin,aquamycetin,austracil,austracol,biocetin,biophenicol,catilan,chemicetin,chemicetina,chlomin,chlomycol,chloramex,chloramfenikol,chloramficin,chloramfilin,chloramphenicole,chloramphenicolum,chloramsaar,chlorasol,chlorbiotic,chloricol,chlornitromycin,chloroamphenicol,chlorocaps,chlorocid,chlorocide,chlorocin,chlorocol,chlorofair,chloromax,chloromycetin,chloromycetny,chloromyxin,chloronitrin,chloroptic,chlorovules,cidocetine,ciplamycetin,cloramfen,cloramfenicol,cloramfenicolo,cloramficin,cloramicol,cloramidina,cloranfenicol,cloroamfenicolo,clorocyn,cloromisan,clorosintex,comycetin,cylphenicol,desphen,detreomycin,detreomycine,dextramycin,dextromycetin,doctamicina,econochlor,embacetin,emetren,enteromycetin,erbaplast,ertilen,farmicetina,globenicol,glorous,gloveticol,halcetin,halomycetin,hortfenicol,intramycetin,isicetin,ismicetina,isophenicol,juvamycetin,kamaver,kemicetina,kemicetine,kloramfenikol,klorita,laevomycetinum,leukamycin,leukomyan,leukomycin,levocin,levomicetina,levomitsetin,levomycetin,levoplast,levosin,levovetin,loromisan,loromisin,mastiphen,maybridge,mediamycetine,medichol,micloretin,micochlorine,micoclorina,microcetina,mychel,mycinol,myclocin,mycochlorin,novochlorocap,novomycetin,novophenicol,ocuphenicol,oftalent,oleomycetin,opclor,opelor,ophthochlor,ophthocort,ophtochlor,optomycin,otachron,otophen,pantovernil,paraxin,pentamycetin,petnamycetin,quemicetina,rivomycin,romphenil,ronphenil,septicol,sificetina,sintomicetin,sintomicetina,soluthor,stanomycetin,synthomycetin,synthomycetine,synthomycine,syntomycin,tevcocin,tevcosin,tifomycin,tifomycine,tiromycetin,treomicetina,tyfomycine,unimycetin,veticol,viceton" 3 "g" 3 "g" "15101-9,16603-3,16604-1,172-7,173-5,174-3,175-0,18903-5,25247-8,29214-4,29346-4,29347-2,3455-3,7001-1"
|
||||||
"CTE" 54675777 "Chlortetracycline" "Tetracyclines" "A01AB21,D06AA02,J01AA03,S01AA02" "Tetracyclines" "Tetracyclines" "NA" "acronize,alexomycin,aueromycin,aureocarmyl,aureociclina,aureocina,aureocycline,aureomycin,aureomykoin,aurofac,auxeomycin,biomitsin,biomycin,chlormax,chlorotetracycline,chlortetracyclinum,chrysomykine,clorocipan,clortetraciclina,clortetrin,declomycin,declostatin,deganol,demeclor,demeplus,demetraciclina,demetraclin,detracin,detravis,diuciclin,duomycin,elkamicina,flamycin,isphamycin,ledermicina,ledermycin,ledermycine,mexocine,novotriclina,pennchlor,perciclina,periciclina,sumaclina,tetra,uromycin,veraciclina" 1 "g" "176-8,177-6,178-4,179-2,18904-3,55655-5,87600-3"
|
"CTE" 54675777 "Chlortetracycline" "Tetracyclines" "A01AB21,D06AA02,J01AA03,QA01AB21,QD06AA02,QG51AA08,QJ01AA03,QJ51AA03,QS01AA02,S01AA02" "Tetracyclines" "Tetracyclines" "chltet" "acronize,alexomycin,aueromycin,aureocarmyl,aureociclina,aureocina,aureocycline,aureomycin,aureomykoin,aurofac,auxeomycin,biomitsin,biomycin,chlormax,chlorotetracycline,chlortetracyclinum,chrysomykine,clorocipan,clortetraciclina,clortetrin,declomycin,declostatin,deganol,demeclor,demeplus,demetraciclina,demetraclin,detracin,detravis,diuciclin,duomycin,elkamicina,flamycin,isphamycin,ledermicina,ledermycin,ledermycine,mexocine,novotriclina,pennchlor,perciclina,periciclina,sumaclina,uromycin,veraciclina" 1 "g" "176-8,177-6,178-4,179-2,18904-3,55655-5,87600-3"
|
||||||
"CIC" 19003 "Ciclacillin" "Beta-lactams/penicillins" "NA" "NA" "bastcillin,calthor,ciclacilina,ciclacilline,ciclacillinum,ciclacillum,citosarin,cyclacillin,cyclapen,noblicil,orfilina,peamezin,syngacillin,ultracillin,vastcillin,vipicil,wyvital" "NA"
|
"CIC" 19003 "Ciclacillin" "Beta-lactams/penicillins" "NA" "cyclac" "bastcillin,calthor,ciclacilina,ciclacilline,ciclacillinum,ciclacillum,citosarin,cyclacillin,cyclapen,noblicil,orfilina,peamezin,syngacillin,ultracillin,vastcillin,vipicil,wyvital" "NA"
|
||||||
"CIX" 47472 "Ciclopirox" "Antifungals/antimycotics" "D01AE14,G01AX12" "Antifungals for topical use" "Other antifungals for topical use" "cipx" "NA" "NA"
|
"CIX" 47472 "Ciclopirox" "Antifungals/antimycotics" "D01AE14,G01AX12,QD01AE14,QG01AX12" "Antifungals for topical use" "Other antifungals for topical use" "cipx" "NA" "NA"
|
||||||
"CIN" 2762 "Cinoxacin" "Quinolones" "J01MB06" "Quinolone antibacterials" "Other quinolones" "cino,cnox" "cinobac,cinobactin,cinoxacine,cinoxacino,cinoxacinum,clinoxacin,noxigram,uronorm" 1 "g" "180-0,181-8,182-6,183-4,18905-0,55656-3"
|
"CIN" 2762 "Cinoxacin" "Quinolones" "J01MB06,QJ01MB06" "Quinolone antibacterials" "Other quinolones" "cino,cinoxa,cnox" "cinobac,cinobactin,cinoxacine,cinoxacino,cinoxacinum,clinoxacin,noxigram,uronorm" 1 "g" "180-0,181-8,182-6,183-4,18905-0,55656-3"
|
||||||
"CIP" 2764 "Ciprofloxacin" "Fluoroquinolones" "J01MA02,S01AE03,S02AA15,S03AA07" "Quinolone antibacterials" "Fluoroquinolones" "ci,cip,cipr,cp" "alcipro,bacquinor,baflox,belmacina,bernoflox,catex,cenin,ceprimax,cetraxal,ciflan,ciflosin,ciflox,cifloxin,cilab,cilox,ciloxan,cipad,ciplus,ciprecu,ciprenit,ciprine,ciprinol,cipro,ciprobay,ciprocinal,ciprocinol,ciprodar,ciproflox,ciprofloxacina,ciprofloxacine,ciprofloxacino,ciprofloxacinum,ciprofur,ciprogis,ciproktan,ciprolin,ciprolon,cipromycin,cipronex,ciprooxacin,cipropol,ciproquinol,ciprowin,ciproxan,ciproxin,ciproxina,ciproxine,ciriax,citeral,citopcin,cixan,corsacin,cunesin,cycin,cyprobay,cyproxan,disfabac,felixene,fimoflox,flociprin,floxacipron,flunas,globuce,inkamil,ipiflox,italnik,keefloxin,linhaliq,loxacid,loxan,lypro,megaflox,microgan,nixin,novidat,novoquin,ofitin,oftacilox,ophaflox,otiprio,phaproxin,piprol,plenolyt,probiox,proflaxin,proksi,proquin,proxacin,quinoflox,quinolid,quintor,quipro,rancif,renator,roflazin,roxytal,sepcen,septicide,septocipro,siprogut,sophixin,spitacin,strox,suiflox,superocin,supraflox,uritent,utiminx,velmonit,zumaflox" 1 "g" 0.8 "g" "101500-7,14031-9,14032-7,14058-2,14059-0,184-2,185-9,186-7,187-5,18906-8,20377-8,23621-6,25180-1,25181-9,25188-4,25189-2,25248-6,34636-1,3484-3,42644-5,55194-5,7002-9"
|
"CIP" 2764 "Ciprofloxacin" "Fluoroquinolones" "J01MA02,QJ01MA02,QS01AE03,QS02AA15,QS03AA07,S01AE03,S02AA15,S03AA07" "Quinolone antibacterials" "Fluoroquinolones" "ci,cip,cipr,ciprof,cp" "alcipro,bacquinor,baflox,belmacina,bernoflox,catex,cenin,ceprimax,cetraxal,ciflan,ciflosin,cifloxin,cilab,cilox,ciloxan,cipad,ciplus,ciprecu,ciprenit,ciprine,ciprinol,cipro,ciprobay,ciprocinal,ciprocinol,ciprodar,ciproflox,ciprofloxacina,ciprofloxacine,ciprofloxacino,ciprofloxacinum,ciprofur,ciprogis,ciproktan,ciprolin,ciprolon,cipromycin,cipronex,ciprooxacin,cipropol,ciproquinol,ciprowin,ciproxan,ciproxin,ciproxina,ciproxine,ciriax,citeral,citopcin,cixan,corsacin,cunesin,cycin,cyprobay,cyproxan,disfabac,felixene,fimoflox,flociprin,floxacipron,flunas,globuce,inkamil,ipiflox,italnik,keefloxin,linhaliq,loxacid,loxan,lypro,megaflox,microgan,nixin,novidat,novoquin,ofitin,oftacilox,ophaflox,otiprio,phaproxin,piprol,plenolyt,probiox,proflaxin,proksi,proquin,proxacin,quinoflox,quinolid,quintor,quipro,rancif,renator,roflazin,roxytal,sepcen,septicide,septocipro,siprogut,sophixin,spitacin,strox,suiflox,superocin,supraflox,uritent,utiminx,velmonit,zumaflox" 1 "g" 0.8 "g" "101500-7,14031-9,14032-7,14058-2,14059-0,184-2,185-9,186-7,187-5,18906-8,20377-8,23621-6,25180-1,25181-9,25188-4,25189-2,25248-6,34636-1,3484-3,42644-5,55194-5,7002-9"
|
||||||
"CIM" "Ciprofloxacin/metronidazole" "Fluoroquinolones" "J01RA10" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"CIM" "Ciprofloxacin/metronidazole" "Fluoroquinolones" "J01RA10,QJ01RA10" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"CIO" "Ciprofloxacin/ornidazole" "Fluoroquinolones" "J01RA12" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"CIO" "Ciprofloxacin/ornidazole" "Fluoroquinolones" "J01RA12,QJ01RA12" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"CIT" "Ciprofloxacin/tinidazole" "Fluoroquinolones" "J01RA11" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"CIT" "Ciprofloxacin/tinidazole" "Fluoroquinolones" "J01RA11,QJ01RA11" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"CLR" 84029 "Clarithromycin" "Macrolides/lincosamides" "J01FA09" "Macrolides, lincosamides and streptogramins" "Macrolides" "ch,cla,clar,clm,clr" "abbotic,abboticine,astromen,biaxin,bicrolid,bristamycin,clacee,clacid,clacine,clambiotic,clarem,claribid,claricide,claridar,claripen,clarith,clarithromycine,clarithromycinum,claritromicina,clarosip,clathromycin,crixan,cyllid,cyllind,eratrex,esinol,ethril,fromilid,gallimycin,helas,heliclar,klabax,klacid,klaciped,klaricid,klarid,klarin,kofron,mabicrol,macladin,maclar,mavid,meberyt,pediamycin,qidmycin,veclam,wyamycin,zeclar" 0.5 "g" 1 "g" "100048-8,16619-9,16620-7,188-3,189-1,18907-6,190-9,191-7,20375-2,23619-0,25190-0,25191-8,25192-6,25253-6,34638-7,43987-7,43990-1,43991-9,7003-7,80559-8,89485-7"
|
"CLR" 84029 "Clarithromycin" "Macrolides/lincosamides" "J01FA09,QJ01FA09" "Macrolides, lincosamides and streptogramins" "Macrolides" "ch,cla,clar,claryt,clm,clr" "abbotic,abboticine,astromen,biaxin,bicrolid,bristamycin,clacee,clacid,clacine,clambiotic,clarem,claribid,claricide,claridar,claripen,clarith,clarithromycine,clarithromycinum,claritromicina,clarosip,clathromycin,crixan,cyllid,cyllind,eratrex,esinol,fromilid,gallimycin,helas,heliclar,klabax,klacid,klaciped,klaricid,klarid,klarin,kofron,mabicrol,macladin,maclar,mavid,meberyt,pediamycin,qidmycin,veclam,wyamycin,zeclar" 0.5 "g" 1 "g" "100048-8,16619-9,16620-7,188-3,189-1,18907-6,190-9,191-7,20375-2,23619-0,25190-0,25191-8,25192-6,25253-6,34638-7,43987-7,43990-1,43991-9,7003-7,80559-8,89485-7"
|
||||||
"CLA1" 5280980 "Clavulanic acid" "Other antibacterials" "NA" "NA" "amonate,clavulanate,clavulanateacid,clavulansaeure,clavulansaure,clavulox,serdaxin" "NA"
|
"CLA1" 5280980 "Clavulanic acid" "Other antibacterials" "NA" "NA" "amonate,clavulanate,clavulanateacid,clavulansaeure,clavulansaure,clavulox,serdaxin" "NA"
|
||||||
"CLX" 60063 "Clinafloxacin" "Fluoroquinolones" "NA" "NA" "NA" "32376-6,33284-1,35785-5,35786-3,7004-5"
|
"CLX" 60063 "Clinafloxacin" "Fluoroquinolones" "NA" "clinaf" "NA" "32376-6,33284-1,35785-5,35786-3,7004-5"
|
||||||
"CLI" 446598 "Clindamycin" "Macrolides/lincosamides" "D10AF01,G01AA10,J01FF01" "Macrolides, lincosamides and streptogramins" "Lincosamides" "cc,cd,cli,clin,cm,da" "antirobe,chlolincocin,chlorlincocin,cleocin,clindamicina,clindamycine,clindamycinum,clinimycin,clinsol,clintabs,dalacine,klimicin,klindan,sobelin" 1.2 "g" 1.8 "g" "16621-5,16622-3,18908-4,192-5,193-3,194-1,195-8,25249-4,3486-8,42720-3,55657-1,55658-9,55659-7,55660-5,61188-9,7005-2"
|
"CLI" 446598 "Clindamycin" "Macrolides/lincosamides" "D10AF01,G01AA10,J01FF01,QD10AF01,QG01AA10,QJ01FF01" "Macrolides, lincosamides and streptogramins" "Lincosamides" "cc,cd,cli,clin,clin32,clinda,cm,da" "antirobe,chlolincocin,chlorlincocin,cleocin,clindamicina,clindamycine,clindamycinum,clinimycin,clinsol,clintabs,dalacine,klimicin,klindan,sobelin" 1.2 "g" 1.8 "g" "16621-5,16622-3,18908-4,192-5,193-3,194-1,195-8,25249-4,3486-8,42720-3,55657-1,55658-9,55659-7,55660-5,61188-9,7005-2"
|
||||||
"CLI-S" "Clindamycin inducible screening test" "Macrolides/lincosamides" "NA" "clin inducible,clinda inducible,clindamycin inducible" "NA" "NA"
|
"CLI-S" "Clindamycin inducible screening test" "Macrolides/lincosamides" "NA" "clin inducible,clinda inducible,clindamycin inducible" "NA" "NA"
|
||||||
"CLF" 2794 "Clofazimine" "Antimycobacterials" "J04BA01" "Drugs for treatment of lepra" "Drugs for treatment of lepra" "clof" "chlofazimine,clofazimina,clofaziminum,colfazimine,lampren,lamprene,phenazine,riminophenazine" 0.1 "g" "16623-1,20376-0,23620-8,23627-3,43986-9,43988-5,43989-3,55661-3,55662-1,96108-6"
|
"CLF" 2794 "Clofazimine" "Antimycobacterials" "J04BA01,QJ04BA01" "Drugs for treatment of lepra" "Drugs for treatment of lepra" "clof,clofam" "chlofazimine,clofazimina,clofaziminum,colfazimine,lampren,lamprene,phenazine,riminophenazine" 0.1 "g" "16623-1,20376-0,23620-8,23627-3,43986-9,43988-5,43989-3,55661-3,55662-1,96108-6"
|
||||||
"CLF1" 2799 "Clofoctol" "Other antibacterials" "J01XX03" "Other antibacterials" "Other antibacterials" "NA" "clofoctolo,clofoctolum,gramplus,octofene,phenol" "NA"
|
"CLF1" 2799 "Clofoctol" "Other antibacterials" "J01XX03,QJ01XX03" "Other antibacterials" "Other antibacterials" "NA" "clofoctolo,clofoctolum,gramplus,octofene,phenol" "NA"
|
||||||
"CLM" 71807 "Clometocillin" "Beta-lactams/penicillins" "J01CE07" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "chlomethocillin,clometacillin,clomethacillin,clomethocillin,clometocilina,clometocilline,clometocillinsalt,clometocillinum,penicilline,rixapen" 1 "g" "NA"
|
"CLM" 71807 "Clometocillin" "Beta-lactams/penicillins" "J01CE07,QJ01CE07" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "chlomethocillin,clometacillin,clomethacillin,clomethocillin,clometocilina,clometocilline,clometocillinsalt,clometocillinum,penicilline,rixapen" 1 "g" "NA"
|
||||||
"CLM1" 54680675 "Clomocycline" "Tetracyclines" "J01AA11" "Tetracyclines" "Tetracyclines" "NA" "clomociclina,clomocyclinum,megaclor" 1 "g" "NA"
|
"CLM1" 54680675 "Clomocycline" "Tetracyclines" "J01AA11,QJ01AA11" "Tetracyclines" "Tetracyclines" "NA" "clomociclina,clomocyclinum,megaclor" 1 "g" "NA"
|
||||||
"CTR" 2812 "Clotrimazole" "Antifungals/antimycotics" "A01AB18,D01AC01,G01AF02" "clot" "alevazol,bisphenyl,canesten,canestene,canestine,canifug,chlotrimazole,clomatin,clotrimaderm,clotrimazol,clotrimazolum,coltrimazole,cutistad,diphenylmethane,empecid,esparol,femmesil,footlogix,fortinia,gynix,imidazole,jidesheng,klotrimazole,lakesia,lombazol,lombazole,lombazolum,lotrimax,lotrimin,monobaycuten,mycelax,mycelex,mycofug,mycosporin,mykosporin,nalbix,otomax,pedesil,pedisafe,rimazole,ringworm,stiemazol,tibatin,trimysten,trivagizole" "10653-4,10654-2,18909-2,54177-1,55663-9"
|
"CTR" 2812 "Clotrimazole" "Antifungals/antimycotics" "A01AB18,D01AC01,G01AF02,QA01AB18,QD01AC01,QG01AF02,QJ02AB90" "clot" "alevazol,bisphenyl,canesten,canestene,canestine,canifug,chlotrimazole,clomatin,clotrimaderm,clotrimazol,clotrimazolum,coltrimazole,cutistad,diphenylmethane,empecid,esparol,femmesil,footlogix,fortinia,gynix,imidazole,jidesheng,klotrimazole,lakesia,lombazol,lombazole,lombazolum,lotrimax,lotrimin,monobaycuten,mycelax,mycelex,mycofug,mycosporin,mykosporin,nalbix,otomax,pedesil,pedisafe,ringworm,stiemazol,tibatin,trimysten,trivagizole" "10653-4,10654-2,18909-2,54177-1,55663-9"
|
||||||
"CLO" 6098 "Cloxacillin" "Beta-lactams/penicillins" "J01CF02" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "clox" "ankerbin,austrastaph,biocloxin,brispen,chloroxacillin,ciclex,clocil,clossacillina,cloxacilina,cloxacillinanhydrous,cloxacilline,cloxacillinsalt,cloxacillinum,cloxapen,constaphyl,dariclox,dichlorstapenor,diclocil,dicloxacillinhydrate,diflor,digloxilline,dycill,dynapen,ekvacillin,gelstaph,novapen,noxaben,orbenin,pathocil,stampen,staphybiotic,syntarpen,syntarpensalt,tegopen" 2 "g" 2 "g" "16628-0,18910-0,196-6,197-4,198-2,199-0,25250-2,55664-7"
|
"CLO" 6098 "Cloxacillin" "Beta-lactams/penicillins" "J01CF02,QJ01CF02,QJ51CF02,QS01AA90" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "clox,cloxac" "ankerbin,austrastaph,biocloxin,brispen,chloroxacillin,ciclex,clocil,clossacillina,cloxacilina,cloxacillinanhydrous,cloxacilline,cloxacillinsalt,cloxacillinum,cloxapen,constaphyl,dariclox,dichlorstapenor,diclocil,dicloxacillinhydrate,diflor,digloxilline,dynapen,ekvacillin,gelstaph,novapen,noxaben,orbenin,pathocil,stampen,staphybiotic,syntarpen,syntarpensalt,tegopen" 2 "g" 2 "g" "16628-0,18910-0,196-6,197-4,198-2,199-0,25250-2,55664-7"
|
||||||
"COL" 5311054 "Colistin" "Polymyxins" "A07AA10,J01XB01" "Other antibacterials" "Polymyxins" "cl,coli,cs,cst,ct" "colimycin,colisticin,colisticina,colistina,colistine,colistinum,colobreathe,colomycin,kangdisu,kolimitsin,kolimycin,promixin,sogecoli,totazina" 9 "MU" 9 "MU" "16645-4,18912-6,204-8,205-5,206-3,207-1,29493-4,33333-6"
|
"COL" 5311054 "Colistin" "Polymyxins" "A07AA10,J01XB01,QA07AA10,QJ01XB01,QJ51XB01" "Other antibacterials" "Polymyxins" "cl,coli,colist,cs,cst,ct" "colimycin,colisticin,colisticina,colistina,colistine,colistinum,colobreathe,colomycin,kangdisu,kolimitsin,kolimycin,promixin,sogecoli,totazina" 9 "MU" 9 "MU" "16645-4,18912-6,204-8,205-5,206-3,207-1,29493-4,33333-6"
|
||||||
"COP" "Colistin/polysorbate" "Other antibacterials" "NA" "NA" "NA" "NA"
|
"COP" "Colistin/polysorbate" "Other antibacterials" "NA" "NA" "NA" "NA"
|
||||||
"CYC" 6234 "Cycloserine" "Oxazolidinones" "J04AB01" "Drugs for treatment of tuberculosis" "Antibiotics" "cycl" "cicloserina,closerin,closina,cyclorin,cycloserin,cycloserinum,farmiserina,levcicloserina,levcycloserine,levcycloserinum,micoserina,miroserina,miroseryn,novoserin,oxamicina,oxamycin,seromycin,tebemicina,tisomycin,wasserina" 0.75 "g" "16702-3,18914-2,212-1,213-9,214-7,215-4,23608-3,25207-2,25208-0,25209-8,25251-0,3519-6,55667-0"
|
"CYC" 6234 "Cycloserine" "Oxazolidinones" "J04AB01,QJ04AB01" "Drugs for treatment of tuberculosis" "Antibiotics" "cycl,cyclos" "cicloserina,closina,cyclorin,cycloserin,cycloserinum,farmiserina,levcicloserina,levcycloserine,levcycloserinum,micoserina,miroserina,miroseryn,novoserin,oxamicina,oxamycin,seromycin,tebemicina,wasserina" 0.75 "g" "16702-3,18914-2,212-1,213-9,214-7,215-4,23608-3,25207-2,25208-0,25209-8,25251-0,3519-6,55667-0"
|
||||||
"DAL" 23724878 "Dalbavancin" "Glycopeptides" "J01XA04" "Other antibacterials" "Glycopeptide antibacterials" "dalb" "dalbavancina,dalvance,xydalba,zeven" 1.5 "g" "41688-3,41689-1,41690-9,41734-5"
|
"DAL" 23724878 "Dalbavancin" "Glycopeptides" "J01XA04,QJ01XA04" "Other antibacterials" "Glycopeptide antibacterials" "dalb,dalbav" "dalbavancina,dalvance,xydalba,zeven" 1.5 "g" "41688-3,41689-1,41690-9,41734-5"
|
||||||
"DAN" 71335 "Danofloxacin" "Fluoroquinolones" "QJ01MA92" "NA" "advocin,danofloxacine,danofloxacino,danofloxacinum" "73601-7,73623-1,73646-2"
|
"DAN" 71335 "Danofloxacin" "Fluoroquinolones" "QJ01MA92" "danofl" "advocin,danofloxacine,danofloxacino,danofloxacinum" "73601-7,73623-1,73646-2"
|
||||||
"DPS" 2955 "Dapsone" "Other antibacterials" "D10AX05,J04BA02" "Drugs for treatment of lepra" "Drugs for treatment of lepra" "NA" "aczone,atrisone,avlosulfon,avlosulfone,avlosulphone,benzenamide,benzenamine,bissulfone,bissulphone,croysulfone,croysulphone,dapson,dapsona,dapsonum,daspone,diaphenylsulfon,diaphenylsulfone,diaphenylsulphon,diaphenylsulphone,diphenasone,diphone,disulfone,disulone,disulphone,dubronax,dumitone,eporal,medapsol,novophone,servidapson,sulfadione,sulfona,sulfonyldianiline,sulphadione,sulphonyldianiline,tarimyl,udolac,undolac" 50 "mg" "51698-9,9747-7"
|
"DPS" 2955 "Dapsone" "Other antibacterials" "D10AX05,J04BA02,QD10AX05,QJ04BA02" "Drugs for treatment of lepra" "Drugs for treatment of lepra" "NA" "aczone,atrisone,avlosulfon,avlosulfone,avlosulphone,benzenamide,benzenamine,bissulfone,bissulphone,croysulfone,croysulphone,dapson,dapsona,dapsonum,daspone,diaphenylsulfon,diaphenylsulfone,diaphenylsulphon,diaphenylsulphone,diphenasone,diphone,disulfone,disulone,disulphone,dubronax,dumitone,eporal,medapsol,novophone,servidapson,sulfadione,sulfona,sulfonyldianiline,sulphadione,sulphonyldianiline,tarimyl,udolac,undolac" 50 "mg" "51698-9,9747-7"
|
||||||
"DAP" 16134395 "Daptomycin" "Other antibacterials" "J01XX09" "Other antibacterials" "Other antibacterials" "dap,dapt" "cidecin,cubicin,dapcin,daptomicina,daptomycine,daptomycinum,deptomycin" 0.28 "g" "35787-1,35788-9,35789-7,41691-7"
|
"DAP" 16134395 "Daptomycin" "Other antibacterials" "J01XX09,QJ01XX09" "Other antibacterials" "Other antibacterials" "dap,dapt,dapt25,dapt50,daptom" "cidecin,cubicin,dapcin,daptomicina,daptomycine,daptomycinum,deptomycin" 0.28 "g" "35787-1,35788-9,35789-7,41691-7"
|
||||||
"DFX" 487101 "Delafloxacin" "Fluoroquinolones" "J01MA23" "NA" "baxdela,delafloxacinum,quofenix" 0.9 "g" 0.6 "g" "88885-9,90447-4,93790-4"
|
"DFX" 487101 "Delafloxacin" "Fluoroquinolones" "J01MA23,QJ01MA23" "NA" "baxdela,delafloxacinum,quofenix" 0.9 "g" 0.6 "g" "88885-9,90447-4,93790-4"
|
||||||
"DLM" 6480466 "Delamanid" "Antimycobacterials" "J04AK06" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "dela" "deltyba" 0.2 "g" "93851-4,96109-4"
|
"DLM" 6480466 "Delamanid" "Antimycobacterials" "J04AK06,QJ04AK06" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "dela" "deltyba" 0.2 "g" "93851-4,96109-4"
|
||||||
"DEM" 54680690 "Demeclocycline" "Tetracyclines" "D06AA01,J01AA01" "Tetracyclines" "Tetracyclines" "NA" "demeclociclina,demeclocyclinum" 0.6 "g" "10982-7,18915-9,216-2,217-0,218-8,219-6,29494-2,7006-0"
|
"DEM" 54680690 "Demeclocycline" "Tetracyclines" "D06AA01,J01AA01,QD06AA01,QJ01AA01" "Tetracyclines" "Tetracyclines" "demecy" "demeclociclina,demeclocyclinum" 0.6 "g" "10982-7,18915-9,216-2,217-0,218-8,219-6,29494-2,7006-0"
|
||||||
"DKB" 470999 "Dibekacin" "Aminoglycosides" "J01GB09,S01AA29" "Aminoglycoside antibacterials" "Other aminoglycosides" "NA" "debecacin,dibekacina,dibekacine,dibekacinum,kappati,panamicin" 0.14 "g" "55669-6,55670-4,55671-2,55672-0"
|
"DKB" 470999 "Dibekacin" "Aminoglycosides" "J01GB09,QJ01GB09,QS01AA29,S01AA29" "Aminoglycoside antibacterials" "Other aminoglycosides" "dibeka" "debecacin,dibekacina,dibekacine,dibekacinum,kappati,panamicin" 0.14 "g" "55669-6,55670-4,55671-2,55672-0"
|
||||||
"DIC" 18381 "Dicloxacillin" "Beta-lactams/penicillins" "J01CF01" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "dicl" "dichloroxacillin,diclossacillina,dicloxaciclin,dicloxacilin,dicloxacilina,dicloxacillina,dicloxacilline,dicloxacillinum,dicloxacycline,maclicine" 2 "g" 2 "g" "10984-3,16769-2,18916-7,220-4,221-2,222-0,223-8,25252-8,32380-8,55668-8"
|
"DIC" 18381 "Dicloxacillin" "Beta-lactams/penicillins" "J01CF01,QJ01CF01,QJ51CF01" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "dicl,diclox" "dichloroxacillin,diclossacillina,dicloxaciclin,dicloxacilin,dicloxacilina,dicloxacillina,dicloxacilline,dicloxacillinum,dicloxacycline,maclicine" 2 "g" 2 "g" "10984-3,16769-2,18916-7,220-4,221-2,222-0,223-8,25252-8,32380-8,55668-8"
|
||||||
"DIF" 56206 "Difloxacin" "Fluoroquinolones" "QJ01MA94" "NA" "dicural,difloxacine,pulsaflox" "35790-5,35791-3,35792-1"
|
"DIF" 56206 "Difloxacin" "Fluoroquinolones" "QJ01MA94" "diflox" "dicural,difloxacine,pulsaflox" "35790-5,35791-3,35792-1"
|
||||||
"DIR" 6473883 "Dirithromycin" "Macrolides/lincosamides" "J01FA13" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "dirithromycine,dirithromycinum,diritromicina,divitross,dynabac,noriclan,valodin" 0.5 "g" "35793-9,35794-7,35795-4,7007-8"
|
"DIR" 6473883 "Dirithromycin" "Macrolides/lincosamides" "J01FA13,QJ01FA13" "Macrolides, lincosamides and streptogramins" "Macrolides" "dirith" "dirithromycine,dirithromycinum,diritromicina,divitross,dynabac,noriclan,valodin" 0.5 "g" "35793-9,35794-7,35795-4,7007-8"
|
||||||
"DOR" 73303 "Doripenem" "Carbapenems" "J01DH04" "Other beta-lactam antibacterials" "Carbapenems" "dori" "doribax,dripenem,finibax" 1.5 "g" "56031-8,58711-3,60535-2,72893-1"
|
"DOR" 73303 "Doripenem" "Carbapenems" "J01DH04,QJ01DH04" "Other beta-lactam antibacterials" "Carbapenems" "dori,doripe" "doribax,dripenem,finibax" 1.5 "g" "56031-8,58711-3,60535-2,72893-1"
|
||||||
"DOX" 54671203 "Doxycycline" "Tetracyclines" "A01AB22,J01AA02" "Tetracyclines" "Tetracyclines" "dox,doxy" "abbocin,alamycin,aquacycline,biosolvomycin,biotet,bisolvomycin,chrysocin,dalimycin,dalinmycin,deoxymykoin,dossiciclina,doxiciclina,doxirobe,doxitard,doxivetin,doxycen,doxychel,doxycin,doxycyclin,doxycyclinum,doxylin,doxysol,doxytetracycline,elinton,engemycin,hydrocyclin,imperacin,intaloxin,investin,jenacyclin,liquachel,liviatin,macodyn,mepatar,microdox,mondoxyne,monodox,morgidox,ocudox,okebo,oracea,otetryn,oxacycline,oxamycen,oxatet,oxlopar,oxybiocycline,oxycycline,oxydon,oxyject,oxymykoin,oxysteclin,oxytet,oxytetral,oxytetrin,oxytracyl,oxyvet,stecsolin,supracyclin,terraject,terramycin,toxinal,unimycin,vendarcin,vibramycin,vibramycine,vivox,zenavod" 0.1 "g" 0.1 "g" "10986-8,18917-5,20379-4,21250-6,224-6,225-3,226-1,227-9,23623-2,25223-9,26902-7,7008-6"
|
"DOX" 54671203 "Doxycycline" "Tetracyclines" "A01AB22,J01AA02,QA01AB22,QJ01AA02" "Tetracyclines" "Tetracyclines" "dox,doxy,doxycy" "abbocin,alamycin,aquacycline,biosolvomycin,biotet,bisolvomycin,chrysocin,dalimycin,dalinmycin,deoxymykoin,dossiciclina,doxiciclina,doxirobe,doxitard,doxivetin,doxycen,doxychel,doxycin,doxycyclin,doxycyclinum,doxylin,doxysol,doxytetracycline,elinton,engemycin,hydrocyclin,imperacin,intaloxin,investin,jenacyclin,liquachel,liviatin,macodyn,mepatar,microdox,mondoxyne,monodox,morgidox,ocudox,okebo,oracea,otetryn,oxacycline,oxamycen,oxatet,oxlopar,oxybiocycline,oxydon,oxyject,oxymykoin,oxysteclin,oxytet,oxytetral,oxytetrin,oxytracyl,oxyvet,stecsolin,supracyclin,terraject,terramycin,toxinal,unimycin,vendarcin,vibramycin,vibramycine,vivox,zenavod" 0.1 "g" 0.1 "g" "10986-8,18917-5,20379-4,21250-6,224-6,225-3,226-1,227-9,23623-2,25223-9,26902-7,7008-6"
|
||||||
"ECO" 3198 "Econazole" "Antifungals/antimycotics" "D01AC03,G01AF05" "Antifungals for topical use" "Imidazole and triazole derivatives" "econ" "bromazil,chloramizol,clinafarm,deccosil,deccozil,econazol,econazolum,ecostatin,ekonazole,enilconazol,enilconazole,eniloconazol,fecundal,florasan,freshgard,freshguard,fungaflor,fungazil,imaverol,imaversol,imazalil,magnate,spectazole" "25595-0,25637-0,54178-9,55673-8"
|
"ECO" 3198 "Econazole" "Antifungals/antimycotics" "D01AC03,G01AF05,QD01AC03,QG01AF05" "Antifungals for topical use" "Imidazole and triazole derivatives" "econ" "bromazil,chloramizol,clinafarm,deccosil,deccozil,econazolum,ecostatin,ekonazole,enilconazol,enilconazole,eniloconazol,fecundal,florasan,freshgard,freshguard,fungaflor,fungazil,imaverol,imaversol,imazalil,magnate,spectazole" "25595-0,25637-0,54178-9,55673-8"
|
||||||
"EFF" "Efflux" "Other" "NA" "effflux pump" "NA" "NA"
|
"EFF" "Efflux" "Other" "NA" "effflux pump" "NA" "NA"
|
||||||
"ENX" 3229 "Enoxacin" "Fluoroquinolones" "J01MA04" "Quinolone antibacterials" "Fluoroquinolones" "enox" "abenox,almitil,bactidan,bactidron,comprecin,enofloxacine,enoksetin,enoram,enoxacina,enoxacine,enoxacino,enoxacinum,enoxen,enoxin,enoxor,flumark,penetrex" 0.8 "g" "16816-1,18918-3,228-7,229-5,230-3,231-1,3590-7,41692-5"
|
"ENX" 3229 "Enoxacin" "Fluoroquinolones" "J01MA04,QJ01MA04" "Quinolone antibacterials" "Fluoroquinolones" "enox,enoxa" "abenox,almitil,bactidan,bactidron,comprecin,enofloxacine,enoksetin,enoram,enoxacina,enoxacine,enoxacino,enoxacinum,enoxen,enoxin,enoxor,flumark,penetrex" 0.8 "g" "16816-1,18918-3,228-7,229-5,230-3,231-1,3590-7,41692-5"
|
||||||
"ENR" 71188 "Enrofloxacin" "Fluoroquinolones" "QJ01MA90" "NA" "baytril,enroflox,enrofloxacine,enrofloxacino,enrofloxacinum,enroquin,enrosite,enroxil,quellaxcin,tenotryl,zobuxa" "23712-3,35796-2,35797-0,35798-8"
|
"ENR" 71188 "Enrofloxacin" "Fluoroquinolones" "QJ01MA90" "enrofl" "baytril,enroflox,enrofloxacine,enrofloxacino,enrofloxacinum,enroquin,enrosite,enroxil,quellaxcin,tenotryl,zobuxa" "23712-3,35796-2,35797-0,35798-8"
|
||||||
"ENV" 135565326 "Enviomycin" "Antimycobacterials" "J04AB06" "tuberactinomycin" "enviomicina,enviomycina,enviomycine,enviomycinum,tuberactin" 1 "g" "NA"
|
"ENV" 135565326 "Enviomycin" "Antimycobacterials" "J04AB06,QJ04AB06" "tuberactinomycin" "enviomicina,enviomycina,enviomycine,enviomycinum,tuberactin" 1 "g" "NA"
|
||||||
"EPE" "Eperozolid" "Other antibacterials" "NA" "NA" "NA" "NA"
|
"EPE" "Eperozolid" "Other antibacterials" "NA" "NA" "NA" "NA"
|
||||||
"EPC" 71392 "Epicillin" "Beta-lactams/penicillins" "J01CA07" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "dexacillin,dihydroampicillin,epicilina,epicilline,epicillinum,spectacillin" 2 "g" 2 "g" "NA"
|
"EPC" 71392 "Epicillin" "Beta-lactams/penicillins" "J01CA07,QJ01CA07" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "dexacillin,dihydroampicillin,epicilina,epicilline,epicillinum,spectacillin" 2 "g" 2 "g" "NA"
|
||||||
"EPP" 68916 "Epiroprim" "Other antibacterials" "NA" "NA" "epiroprima,epiroprime,epiroprimum" "NA"
|
"EPP" 68916 "Epiroprim" "Other antibacterials" "NA" "NA" "epiroprima,epiroprime,epiroprimum" "NA"
|
||||||
"ERV" 54726192 "Eravacycline" "Tetracyclines" "J01AA13" "Tetracyclines" "Tetracyclines" "erav" "xerava" 0.14 "g" "100049-6,85423-2,93767-2"
|
"ERV" 54726192 "Eravacycline" "Tetracyclines" "J01AA13,QJ01AA13" "Tetracyclines" "Tetracyclines" "erav" "xerava" 0.14 "g" "100049-6,85423-2,93767-2"
|
||||||
"ETP" 150610 "Ertapenem" "Carbapenems" "J01DH03" "Other beta-lactam antibacterials" "Carbapenems" "erta,etp" "ertapenemsalt,invanz" 1 "g" "101486-9,35799-6,35800-2,35801-0,35802-8"
|
"ETP" 150610 "Ertapenem" "Carbapenems" "J01DH03,QJ01DH03" "Other beta-lactam antibacterials" "Carbapenems" "erta,ertape,etp" "ertapenemsalt,invanz" 1 "g" "101486-9,35799-6,35800-2,35801-0,35802-8"
|
||||||
"ERY" 12560 "Erythromycin" "Macrolides/lincosamides" "D10AF02,J01FA01,S01AA17" "Macrolides, lincosamides and streptogramins" "Macrolides" "e,em,ery,eryt" "abboticin,abomacetin,acneryne,acnesol,aknemycin,aknin,benzamycin,derimer,deripil,dotycin,dumotrycin,emgel,emuvin,emycin,endoeritrin,erecin,erisone,eritomicina,eritrocina,eritromicina,ermycin,eryacne,eryacnen,erycen,erycette,erycin,erycinum,eryderm,erydermer,erygel,eryhexal,erymax,erymed,erysafe,erytab,erythro,erythroderm,erythrogran,erythroguent,erythromast,erythromid,erythromycine,erythromycinum,erytop,erytrociclin,ilocaps,ilosone,iloticina,ilotycin,inderm,latotryd,lederpax,mephamycin,mercina,oftamolets,pantoderm,pantodrin,pantomicina,pharyngocin,primacine,propiocine,proterytrin,retcin,robimycin,romycin,sansac,spotex,staticin,stiemicyn,stiemycin,tiprocin,torlamicina,wemid" 2 "g" 1 "g" "100050-4,11576-6,12298-6,16829-4,16830-2,18919-1,18920-9,20380-2,232-9,233-7,234-5,235-2,236-0,23633-1,237-8,238-6,239-4,25224-7,25275-9,3597-2,7009-4"
|
"ERY" 12560 "Erythromycin" "Macrolides/lincosamides" "D10AF02,J01FA01,QD10AF02,QJ01FA01,QJ51FA01,QS01AA17,S01AA17" "Macrolides, lincosamides and streptogramins" "Macrolides" "e,em,ery,ery32,eryt,eryth" "abboticin,abomacetin,acneryne,acnesol,aknemycin,aknin,benzamycin,derimer,deripil,dotycin,dumotrycin,emgel,emuvin,emycin,endoeritrin,erecin,erisone,eritomicina,eritrocina,eritromicina,ermycin,eryacne,eryacnen,erycen,erycette,erycinum,eryderm,erydermer,erygel,eryhexal,erymax,erymed,erysafe,erytab,erythro,erythroderm,erythrogran,erythroguent,erythromast,erythromid,erythromycine,erythromycinum,erytop,erytrociclin,ilocaps,ilosone,iloticina,ilotycin,inderm,latotryd,lederpax,mephamycin,mercina,oftamolets,pantoderm,pantodrin,pantomicina,pharyngocin,primacine,propiocine,proterytrin,retcin,robimycin,sansac,spotex,staticin,stiemicyn,stiemycin,tiprocin,torlamicina,wemid" 2 "g" 1 "g" "100050-4,11576-6,12298-6,16829-4,16830-2,18919-1,18920-9,20380-2,232-9,233-7,234-5,235-2,236-0,23633-1,237-8,238-6,239-4,25224-7,25275-9,3597-2,7009-4"
|
||||||
"ETH" 14052 "Ethambutol" "Antimycobacterials" "J04AK02" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "etha" "aethambutolum,dadibutol,diambutol,etambutol,etambutolo,ethambutolum,myambutol,purderal,servambutol,tibutol" 1.2 "g" 1.2 "g" "100051-2,16841-9,18921-7,20381-0,23625-7,240-2,241-0,242-8,243-6,25187-6,25194-2,25195-9,25230-4,25404-5,3607-9,42645-2,42646-0,55154-9,55674-6,56025-0,7010-2,89491-5"
|
"ETH" 14052 "Ethambutol" "Antimycobacterials" "J04AK02,QJ04AK02" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "etha,ethamb" "aethambutolum,dadibutol,diambutol,etambutol,etambutolo,ethambutolum,myambutol,purderal,servambutol,tibutol" 1.2 "g" 1.2 "g" "100051-2,16841-9,18921-7,20381-0,23625-7,240-2,241-0,242-8,243-6,25187-6,25194-2,25195-9,25230-4,25404-5,3607-9,42645-2,42646-0,55154-9,55674-6,56025-0,7010-2,89491-5"
|
||||||
"ETI" 456476 "Ethambutol/isoniazid" "Antimycobacterials" "J04AM03" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
"ETI" 456476 "Ethambutol/isoniazid" "Antimycobacterials" "J04AM03,QJ04AM03" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
||||||
"ETI1" 2761171 "Ethionamide" "Antimycobacterials" "J04AD03" "Drugs for treatment of tuberculosis" "Thiocarbamide derivatives" "ethi" "aethionamidum,aetina,aetiva,amidazin,amidazine,atina,ethimide,ethina,ethinamide,ethionamidum,ethioniamide,ethylisothiamide,ethyonomide,etimid,etiocidan,etionamid,etionamida,etionamide,etioniamid,etionid,etionizin,etionizina,etionizine,fatoliamid,iridocin,iridozin,isothin,isotiamida,itiocide,nicotion,nisotin,nizotin,rigenicid,sertinon,teberus,thianid,thianide,thioamide,thiodine,thiomid,thioniden,tianid,tiomid,trecator,trekator,trescatyl,trescazide,tubenamide,tubermin,tuberoid,tuberoson" 0.75 "g" "16099-4,16845-0,18922-5,20382-8,23617-4,25183-5,25196-7,25198-3,25231-2,41693-3,42647-8,42648-6,7011-0,96110-2"
|
"ETI1" 2761171 "Ethionamide" "Antimycobacterials" "J04AD03,QJ04AD03" "Drugs for treatment of tuberculosis" "Thiocarbamide derivatives" "ethi,ethion" "aethionamidum,aetina,aetiva,amidazin,amidazine,atina,ethimide,ethina,ethinamide,ethionamidum,ethioniamide,ethylisothiamide,ethyonomide,etimid,etiocidan,etionamid,etionamida,etionamide,etioniamid,etionid,etionizin,etionizina,etionizine,fatoliamid,iridocin,iridozin,isothin,isotiamida,itiocide,nicotion,nisotin,nizotin,rigenicid,sertinon,teberus,thianid,thianide,thioamide,thiodine,thiomid,thioniden,tianid,tiomid,trecator,trekator,trescatyl,trescazide,tubenamide,tubermin,tuberoid,tuberoson" 0.75 "g" "16099-4,16845-0,18922-5,20382-8,23617-4,25183-5,25196-7,25198-3,25231-2,41693-3,42647-8,42648-6,7011-0,96110-2"
|
||||||
"ETO" 6034 "Ethopabate" "Other antibacterials" "QP51AX17" "NA" "ethopabat" "NA"
|
"ETO" 6034 "Ethopabate" "Other antibacterials" "QP51AX17" "NA" "ethopabat" "NA"
|
||||||
"EXE" "Exebacase" "NA" "NA" "NA" "NA"
|
"EXE" "Exebacase" "NA" "NA" "NA" "NA"
|
||||||
"FAR" 65894 "Faropenem" "Other antibacterials" "J01DI03" "Other beta-lactam antibacterials" "Other cephalosporins and penems" "NA" "farom,faropenemhydrate,faropenemsalt,fropenem,fropenum,furopenem" 0.75 "g" "73600-9,73622-3,73645-4"
|
"FAR" 65894 "Faropenem" "Other antibacterials" "J01DI03,QJ01DI03" "Other beta-lactam antibacterials" "Other cephalosporins and penems" "farope" "farom,faropenemhydrate,faropenemsalt,fropenem,fropenum,furopenem" 0.75 "g" "73600-9,73622-3,73645-4"
|
||||||
"FDX" 10034073 "Fidaxomicin" "Other antibacterials" "A07AA12" "NA" "dificid,dificlir,difimicin,fidaxomicina,lipiarmicin,lipiarmycin,lipiarrmycin" 0.4 "g" "73599-3,73621-5,73644-7"
|
"FDX" 10034073 "Fidaxomicin" "Other antibacterials" "A07AA12,QA07AA12" "NA" "dificid,dificlir,difimicin,fidaxomicina,lipiarmicin,lipiarmycin,lipiarrmycin" 0.4 "g" "73599-3,73621-5,73644-7"
|
||||||
"FIN" 11567473 "Finafloxacin" "Fluoroquinolones" "NA" "NA" "xtoro" "73598-5,73620-7,73643-9"
|
"FIN" 11567473 "Finafloxacin" "Fluoroquinolones" "NA" "NA" "xtoro" "73598-5,73620-7,73643-9"
|
||||||
"FLA" 46783781 "Flavomycin" "Other antibacterials" "NA" "NA" "bambermicina,bambermycine,bambermycinum,flavofosfolipol,flavophospholipol,gainpro,menomycin" "NA"
|
"FLA" 46783781 "Flavomycin" "Other antibacterials" "NA" "flavom" "bambermicina,bambermycine,bambermycinum,flavofosfolipol,flavophospholipol,gainpro,menomycin" "NA"
|
||||||
"FLE" 3357 "Fleroxacin" "Fluoroquinolones" "J01MA08" "Quinolone antibacterials" "Fluoroquinolones" "fler" "fleroxacine,fleroxacino,fleroxacinum,fleroxicin,megalocin,megalone,megalosin,quinodis" 0.4 "g" 0.4 "g" "25411-0,32372-5,35806-9,7012-8"
|
"FLE" 3357 "Fleroxacin" "Fluoroquinolones" "J01MA08,QJ01MA08" "Quinolone antibacterials" "Fluoroquinolones" "fler,flerox" "fleroxacine,fleroxacino,fleroxacinum,fleroxicin,megalocin,megalone,megalosin,quinodis" 0.4 "g" 0.4 "g" "25411-0,32372-5,35806-9,7012-8"
|
||||||
"FLO" 65864 "Flomoxef" "Other antibacterials" "J01DC14" "NA" "flomoxefo,flomoxefsalt,flomoxefum,flumarin" 2 "g" "100052-0,53822-3"
|
"FLO" 65864 "Flomoxef" "Other antibacterials" "J01DC14,QJ01DC14" "flomox" "flomoxefo,flomoxefsalt,flomoxefum,flumarin" 2 "g" "100052-0,53822-3"
|
||||||
"FLR" 114811 "Florfenicol" "Phenicols" "QJ01BA90,QJ51BA90" "NA" "aquafen,descocin,dexawin,efnicol,fricol,hyrazin,loncor,macphenicol,masatirin,neomyson,norfenicol,nuflor,racephenicol,rincrol,thiamcol,urfamicina,urophenyl" "23740-4,35807-7,35808-5,87599-7"
|
"FLR" 114811 "Florfenicol" "Phenicols" "QJ01BA90,QJ51BA90" "florfe" "aquafen,descocin,dexawin,efnicol,fricol,hyrazin,loncor,macphenicol,masatirin,neomyson,norfenicol,nuflor,racephenicol,rincrol,thiamcol,urfamicina,urophenyl" "23740-4,35807-7,35808-5,87599-7"
|
||||||
"FLC" 21319 "Flucloxacillin" "Beta-lactams/penicillins" "J01CF05" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "clox,flux" "bactopen,cloxacap,cloxacillinhydrate,cloxypen,floxacillin,floxacillinanhydrous,floxapen,floxapensalt,fluclomix,flucloxacilina,flucloxacilline,flucloxacillinum,flucloxin,fluorochloroxacillin,galfloxin,latocillin,orbeninhydrate,rimaflox,staphobristol,zoxin" 2 "g" 2 "g" "NA"
|
"FLC" 21319 "Flucloxacillin" "Beta-lactams/penicillins" "J01CF05,QJ01CF05,QJ51CF05" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "clox,fluclo,flux" "bactopen,cloxacap,cloxacillinhydrate,cloxypen,floxacillin,floxacillinanhydrous,floxapen,floxapensalt,fluclomix,flucloxacilina,flucloxacilline,flucloxacillinum,flucloxin,fluorochloroxacillin,galfloxin,latocillin,orbeninhydrate,rimaflox,staphobristol,zoxin" 2 "g" 2 "g" "NA"
|
||||||
"FLU" 3365 "Fluconazole" "Antifungals/antimycotics" "D01AC15,J02AC01" "Antimycotics for systemic use" "Triazole derivatives" "fluc,fluz,flz" "alflucoz,alkanazole,baten,biocanol,biozole,biozolene,canzol,cryptal,diflazon,diflucan,dimycon,elazor,flucazol,fluconazol,fluconazoli,fluconazolum,flucoral,flucostat,flukezol,flunazol,flunizol,fluzon,forcan,fuconal,fungata,loitin,mutum,oxifugol,pritenzol,syscan,trican,triconal,triflucan,zemyc,zoltec,zonal" 0.2 "g" 0.2 "g" "10987-6,16870-8,18924-1,248-5,249-3,250-1,251-9,25255-1,7013-6,80530-9"
|
"FLU" 3365 "Fluconazole" "Antifungals/antimycotics" "D01AC15,J02AC01,QD01AC15,QJ02AC01" "Antimycotics for systemic use" "Triazole derivatives" "fluc,flucon,fluz,flz" "alflucoz,alkanazole,baten,biocanol,biozole,biozolene,canzol,cryptal,diflazon,diflucan,dimycon,elazor,flucazol,fluconazoli,fluconazolum,flucoral,flucostat,flukezol,flunazol,flunizol,fluzon,forcan,fuconal,fungata,loitin,mutum,oxifugol,pritenzol,syscan,trican,triconal,triflucan,zemyc,zoltec,zonal" 0.2 "g" 0.2 "g" "10987-6,16870-8,18924-1,248-5,249-3,250-1,251-9,25255-1,7013-6,80530-9"
|
||||||
"FCT" 3366 "Flucytosine" "Antifungals/antimycotics" "D01AE21,J02AX01" "Antifungals for topical use" "Other antifungals for topical use" "5flc,fcu,fluo,fluy" "alcobon,ancoban,ancobon,ancotil,ancotyl,flourocytosine,flucitosina,flucytosin,flucytosinum,flucytosone,fluocytosine,fluorcytosine,fluorocytosine" 10 "g" 10 "g" "NA"
|
"FCT" 3366 "Flucytosine" "Antifungals/antimycotics" "D01AE21,J02AX01,QD01AE21,QJ02AX01" "Antifungals for topical use" "Other antifungals for topical use" "5flc,fcu,flucyt,fluo,fluy" "alcobon,ancoban,ancobon,ancotil,ancotyl,flourocytosine,flucitosina,flucytosin,flucytosinum,flucytosone,fluocytosine,fluorcytosine,fluorocytosine" 10 "g" 10 "g" "NA"
|
||||||
"FLM" 3374 "Flumequine" "Quinolones" "J01MB07" "Quinolone antibacterials" "Other quinolones" "NA" "apurone,fantacin,flumequina,flumequino,flumequinum,flumigal,flumiquil,flumisol,flumix,imequyl" 1.2 "g" "55675-3,55676-1,55677-9,55678-7"
|
"FLM" 3374 "Flumequine" "Quinolones" "J01MB07,QJ01MB07" "Quinolone antibacterials" "Other quinolones" "flumeq" "apurone,fantacin,flumequina,flumequino,flumequinum,flumigal,flumiquil,flumisol,flumix,imequyl" 1.2 "g" "55675-3,55676-1,55677-9,55678-7"
|
||||||
"FLR1" 71260 "Flurithromycin" "Macrolides/lincosamides" "J01FA14" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "abbot,beritromicina,berythromycin,berythromycine,berythromycinum,flurithromycine,flurithromycinum,fluritromicina,fluritromycinum,flurizic,mizar" 0.75 "g" "NA"
|
"FLR1" 71260 "Flurithromycin" "Macrolides/lincosamides" "J01FA14,QJ01FA14" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "abbot,beritromicina,berythromycin,berythromycine,berythromycinum,flurithromycine,flurithromycinum,fluritromicina,fluritromycinum,flurizic,mizar" 0.75 "g" "NA"
|
||||||
"FFL" 214356 "Fosfluconazole" "Antifungals/antimycotics" "NA" "NA" "fosfluconazol,procif,prodif" "NA"
|
"FFL" 214356 "Fosfluconazole" "Antifungals/antimycotics" "NA" "NA" "fosfluconazol,procif,prodif" "NA"
|
||||||
"FOS" 446987 "Fosfomycin" "Other antibacterials" "J01XX01,S02AA17" "Other antibacterials" "Other antibacterials" "ff,fm,fo,fof,fos,fosf" "fosfocina,fosfomicin,fosfomicina,fosfomycine,fosfomycinum,fosfonomycin,infectophos,phosphonemycin,phosphonomycin,veramina" 3 "g" 8 "g" "25596-8,25653-7,35809-3,35810-1"
|
"FOS" 446987 "Fosfomycin" "Other antibacterials" "J01XX01,QJ01XX01,QS02AA17,S02AA17" "Other antibacterials" "Other antibacterials" "ff,fm,fo,fof,fos,fosf,fosfom,fosmyc" "fosfocina,fosfomicin,fosfomicina,fosfomycine,fosfomycinum,fosfonomycin,infectophos,phosphonemycin,phosphonomycin,veramina" 3 "g" 8 "g" "25596-8,25653-7,35809-3,35810-1"
|
||||||
"FMD" 572 "Fosmidomycin" "Other antibacterials" "NA" "NA" "fosmidomicina,fosmidomycina,fosmidomycine,fosmidomycinsalt,fosmidomycinum" "NA"
|
"FMD" 572 "Fosmidomycin" "Other antibacterials" "NA" "NA" "fosmidomicina,fosmidomycina,fosmidomycine,fosmidomycinsalt,fosmidomycinum" "NA"
|
||||||
"FRM" 8378 "Framycetin" "Aminoglycosides" "D09AA01,R01AX08,S01AA07" "fram" "actilin,actiline,antibiotique,bycomycin,enterfram,fradiomycin,fradiomycinum,framicetina,framidal,framycetine,framycetinum,framycin,framygen,francetin,jernadex,myacyne,mycerin,mycifradin,neobrettin,neolate,neomas,neomcin,neomicina,neomin,neomycine,neomycinum,nivemycin,soframycin,soframycine" "18926-6,257-6,258-4,259-2,260-0,55679-5"
|
"FRM" 8378 "Framycetin" "Aminoglycosides" "D09AA01,QD09AA01,QJ01GB91,QR01AX08,QS01AA07,R01AX08,S01AA07" "fram,framyc" "actilin,actiline,antibiotique,bycomycin,enterfram,fradiomycin,fradiomycinum,framicetina,framidal,framycetine,framycetinum,framycin,framygen,francetin,jernadex,myacyne,mycerin,mycifradin,neobrettin,neolate,neomas,neomcin,neomicina,neomin,neomycine,neomycinum,nivemycin,soframycin,soframycine" "18926-6,257-6,258-4,259-2,260-0,55679-5"
|
||||||
"FUR" 6870646 "Furazidin" "Other antibacterials" "J01XE03" "Other antibacterials" "Nitrofuran derivatives" "NA" "akritoin,furagin,furaginum,furamag,furazidine,hydantoin" 0.3 "g" "NA"
|
"FUR" 6870646 "Furazidin" "Other antibacterials" "J01XE03,QJ01XE03" "Other antibacterials" "Nitrofuran derivatives" "NA" "akritoin,furagin,furaginum,furamag,furazidine,hydantoin" 0.3 "g" "NA"
|
||||||
"FRZ" 5323714 "Furazolidone" "Other antibacterials" "G01AX06" "NA" "bifuron,corizium,coryzium,diafuron,enterotoxon,furall,furanzolidone,furaxon,furaxone,furazol,furazolidine,furazolidon,furazolidona,furazolidonum,furazolum,furazon,furidon,furmethoxadone,furovag,furox,furoxal,furoxane,furoxon,furoxone,furozolidine,giardil,giarlam,medaron,neftin,nicolen,nifulidone,nifuran,nifurazolidone,nifurazolidonum,nitrofuradoxon,nitrofurazolidone,nitrofurazolidonum,nitrofuroxon,optazol,ortazol,puradin,roptazol,sclaventerol,tikofuran,topazone,trichofuron,tricofuron,tricoron,trifurox,viofuragyn" "69574-2,87794-4"
|
"FRZ" 5323714 "Furazolidone" "Other antibacterials" "G01AX06,QG01AX06,QJ01XE90" "furazo" "bifuron,corizium,coryzium,diafuron,enterotoxon,furall,furanzolidone,furaxon,furaxone,furazolidine,furazolidon,furazolidona,furazolidonum,furazolum,furidon,furmethoxadone,furovag,furoxal,furoxane,furoxon,furoxone,furozolidine,giardil,giarlam,medaron,neftin,nicolen,nifulidone,nifuran,nifurazolidone,nifurazolidonum,nitrofuradoxon,nitrofurazolidone,nitrofurazolidonum,nitrofuroxon,optazol,ortazol,puradin,roptazol,sclaventerol,tikofuran,topazone,trichofuron,tricofuron,tricoron,trifurox,viofuragyn" "69574-2,87794-4"
|
||||||
"FUS" 3000226 "Fusidic acid" "Other antibacterials" "D06AX01,D09AA02,J01XC01,S01AA13" "Other antibacterials" "Steroid antibacterials" "fa,fusi" "flucidin,fucidate,fucidina,fucidine,fucithalmic,fusidate,fusidicacid,fusidin,fusidine,ramycin,taksta" 1.5 "g" 1.5 "g" "NA"
|
"FUS" 3000226 "Fusidic acid" "Other antibacterials" "D06AX01,D09AA02,J01XC01,QD06AX01,QD09AA02,QJ01XC01,QS01AA13,S01AA13" "Other antibacterials" "Steroid antibacterials" "fa,fusaci,fusi" "flucidin,fucidate,fucidina,fucidine,fucithalmic,fusidate,fusidicacid,fusidin,fusidine,taksta" 1.5 "g" 1.5 "g" "NA"
|
||||||
"GAM" 59364992 "Gamithromycin" "Macrolides/lincosamides" "QJ01FA95" "NA" "zactran" "100054-6,88376-9,88378-5"
|
"GAM" 59364992 "Gamithromycin" "Macrolides/lincosamides" "QJ01FA95" "NA" "zactran" "100054-6,88376-9,88378-5"
|
||||||
"GRN" 124093 "Garenoxacin" "Fluoroquinolones" "J01MA19" "NA" "ganefloxacin,garenfloxacin" 0.4 "g" "35811-9,35812-7,35813-5"
|
"GRN" 124093 "Garenoxacin" "Fluoroquinolones" "J01MA19,QJ01MA19" "gareno" "ganefloxacin,garenfloxacin" 0.4 "g" "35811-9,35812-7,35813-5"
|
||||||
"GAT" 5379 "Gatifloxacin" "Fluoroquinolones" "J01MA16,S01AE06" "Quinolone antibacterials" "Fluoroquinolones" "gati" "acorafloxacin,avarofloxacin,balofloxacin,balofox,bazucin,bilimin,bonoq,gaity,gatiflo,gatifloxacine,gatifloxcin,gatilox,gatiquin,gatispan,kinome,tequin,tymer,zymar,zymaxid,zymer" 0.4 "g" 0.4 "g" "31036-7,31038-3,31040-9,31042-5,41494-6"
|
"GAT" 5379 "Gatifloxacin" "Fluoroquinolones" "J01MA16,QJ01MA16,QS01AE06,S01AE06" "Quinolone antibacterials" "Fluoroquinolones" "gati,gatifl" "acorafloxacin,avarofloxacin,balofloxacin,balofox,bazucin,bilimin,bonoq,gaity,gatiflo,gatifloxacine,gatifloxcin,gatilox,gatiquin,gatispan,kinome,tequin,tymer,zymar,zymaxid,zymer" 0.4 "g" 0.4 "g" "31036-7,31038-3,31040-9,31042-5,41494-6"
|
||||||
"GEM" 9571107 "Gemifloxacin" "Fluoroquinolones" "J01MA15" "Quinolone antibacterials" "Fluoroquinolones" "NA" "factiv,gemifioxacin,gemifloxacine,gemifloxacino,gemifloxacinum" 0.32 "g" 0.2 "g" "35814-3,35815-0,35816-8,41697-4"
|
"GEM" 9571107 "Gemifloxacin" "Fluoroquinolones" "J01MA15,QJ01MA15" "Quinolone antibacterials" "Fluoroquinolones" "gemifl" "factiv,gemifioxacin,gemifloxacine,gemifloxacino,gemifloxacinum" 0.32 "g" 0.2 "g" "35814-3,35815-0,35816-8,41697-4"
|
||||||
"GEN" 3467 "Gentamicin" "Aminoglycosides" "D06AX07,J01GB03,S01AA11,S02AA14,S03AA06" "Aminoglycoside antibacterials" "Other aminoglycosides" "cn,gen,gent,gm" "centicin,cidomycin,garamicin,garamycin,gentacycol,gentamicina,gentamicine,gentamicins,gentamicinum,gentamycins,gentamycinum,gentocin,lyramycin,oksitselanim,septigen,septocin" 0.24 "g" "101494-3,13561-6,13562-4,15106-8,18928-2,18929-0,22746-2,22747-0,266-7,267-5,268-3,269-1,31091-2,31092-0,31093-8,35668-3,35817-6,3663-2,3664-0,3665-7,39082-3,47109-4,50630-3,59379-8,7016-9,7017-7,7018-5,80971-5,88111-0,89481-6"
|
"GEN" 3467 "Gentamicin" "Aminoglycosides" "D06AX07,J01GB03,QA07AA91,QD06AX07,QG01AA91,QG51AA04,QJ01GB03,QJ51GB03,QS01AA11,QS02AA14,QS03AA06,S01AA11,S02AA14,S03AA06" "Aminoglycoside antibacterials" "Other aminoglycosides" "cn,ge1000,ge2000,gen,gen128,gen500,gent,genta1,gentam,gm" "centicin,cidomycin,garamicin,garamycin,gentacycol,gentamicina,gentamicine,gentamicins,gentamicinum,gentamycins,gentamycinum,gentocin,lyramycin,oksitselanim,septigen,septocin" 0.24 "g" "101494-3,13561-6,13562-4,15106-8,18928-2,18929-0,22746-2,22747-0,266-7,267-5,268-3,269-1,31091-2,31092-0,31093-8,35668-3,35817-6,3663-2,3664-0,3665-7,39082-3,47109-4,50630-3,59379-8,7016-9,7017-7,7018-5,80971-5,88111-0,89481-6"
|
||||||
"GEH" "Gentamicin-high" "Aminoglycosides" "NA" "gehi,gehl,genta high,gentamicin high" "NA" "18929-0,35817-6,7017-7,7018-5"
|
"GEH" "Gentamicin-high" "Aminoglycosides" "NA" "gehi,gehl,genta high,gentamicin high" "NA" "18929-0,35817-6,7017-7,7018-5"
|
||||||
"GEP" 25101874 "Gepotidacin" "Other antibacterials" "NA" "NA" "gepotidacina,gepotidacine" "NA"
|
"GEP" 25101874 "Gepotidacin" "Other antibacterials" "J01XX13,QJ01XX13" "NA" "gepotidacina,gepotidacine" "NA"
|
||||||
"GRX" 72474 "Grepafloxacin" "Fluoroquinolones" "J01MA11" "Quinolone antibacterials" "Fluoroquinolones" "grep" "grepafloxacine,grepafloxacino,lungaskin,raxar,vaxar" 0.4 "g" "21316-5,23638-0,23639-8,35818-4"
|
"GRX" 72474 "Grepafloxacin" "Fluoroquinolones" "J01MA11,QJ01MA11" "Quinolone antibacterials" "Fluoroquinolones" "grep,grepaf" "grepafloxacine,grepafloxacino,lungaskin,raxar,vaxar" 0.4 "g" "21316-5,23638-0,23639-8,35818-4"
|
||||||
"GRI" 441140 "Griseofulvin" "Antifungals/antimycotics" "D01AA08,D01BA01" "NA" "amudane,delmofulvina,epigriseofulvin,fulcin,fulcine,fulvicin,fulvidex,fulvina,fulvinil,fulvistatin,fungivin,greosin,gresfeed,gricin,grifulin,grifulvin,grisactin,griscofulvin,grisefuline,griseo,griseofulviin,griseofulvina,griseofulvine,griseofulvinum,griseomix,griseostatin,grisetin,grisofulvin,grisovin,grisowen,grizeofulvin,grysio,guservin,lamoryl,likuden,likunden,murfulvin,poncyl,spiro,spirofulvin,xuanjing" 0.5 "g" "12402-4,54200-1,54201-9,54202-7"
|
"GRI" 441140 "Griseofulvin" "Antifungals/antimycotics" "D01AA08,D01BA01,QD01AA08,QD01BA01" "NA" "amudane,delmofulvina,epigriseofulvin,fulcin,fulcine,fulvicin,fulvidex,fulvina,fulvinil,fulvistatin,fungivin,greosin,gresfeed,gricin,grifulin,grifulvin,grisactin,griscofulvin,grisefuline,griseo,griseofulviin,griseofulvina,griseofulvine,griseofulvinum,griseomix,griseostatin,grisetin,grisofulvin,grisovin,grisowen,grizeofulvin,grysio,guservin,lamoryl,likuden,likunden,murfulvin,poncyl,spiro,spirofulvin,xuanjing" 0.5 "g" "12402-4,54200-1,54201-9,54202-7"
|
||||||
"HAB" 175989 "Habekacin" "Aminoglycosides" "NA" "NA" "amikafur,amikan,amitrex,arikayce,biklin,biodacyn,chemacin,fabianol,habekacinxsulfate,likacin,pierami" "NA"
|
"HAB" 175989 "Habekacin" "Aminoglycosides" "NA" "NA" "amikafur,amikan,amitrex,arikayce,biklin,biodacyn,chemacin,fabianol,habekacinxsulfate,likacin,pierami" "NA"
|
||||||
"HCH" 11979956 "Hachimycin" "Antifungals/antimycotics" "D01AA03,G01AA06,J02AA02" "Antimycotics for systemic use" "Antibiotics" "NA" "cabimicina,hachimicina,hachimycine,hachimycinum,trichomycinum,trichonat" "NA"
|
"HCH" 11979956 "Hachimycin" "Antifungals/antimycotics" "D01AA03,G01AA06,J02AA02,QD01AA03,QG01AA06,QJ02AA02" "Antimycotics for systemic use" "Antibiotics" "NA" "cabimicina,hachimicina,hachimycine,hachimycinum,trichomycinum,trichonat" "NA"
|
||||||
"HET" 443387 "Hetacillin" "Beta-lactams/penicillins" "J01CA18" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "etacillina,hetacilina,hetacilline,hetacillinum,natacillin,phenazacillin,versapen,versatrex" 2 "g" "18931-6,274-1,275-8,276-6,277-4"
|
"HET" 443387 "Hetacillin" "Beta-lactams/penicillins" "J01CA18,QJ01CA18" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "hetaci" "etacillina,hetacilina,hetacilline,hetacillinum,natacillin,phenazacillin,versapen,versatrex" 2 "g" "18931-6,274-1,275-8,276-6,277-4"
|
||||||
"HYG" 56928061 "Hygromycin" "Aminoglycosides" "NA" "NA" "antihelmycin,destomysin,hyanthelmix,hygromix,hygrovectine,hygrovetine" "NA"
|
"HYG" 56928061 "Hygromycin" "Aminoglycosides" "NA" "NA" "antihelmycin,destomysin,hyanthelmix,hygromix,hygrovectine,hygrovetine" "NA"
|
||||||
"IBX" "Ibrexafungerp" "Antifungals" "J02AX07" "NA" "NA" "NA"
|
"IBX" "Ibrexafungerp" "Antifungals" "J02AX07,QJ02AX07" "NA" "NA" "NA"
|
||||||
"ICL" 213043 "Iclaprim" "Other antibacterials" "J01EA03" "NA" "iclaprime,mersarex" "73597-7,73619-9,73642-1"
|
"ICL" 213043 "Iclaprim" "Other antibacterials" "J01EA03,QJ01EA03" "iclapr" "iclaprime,mersarex" "73597-7,73619-9,73642-1"
|
||||||
"IPM" 104838 "Imipenem" "Carbapenems" "J01DH51" "Other beta-lactam antibacterials" "Carbapenems" "imci,imi,imip,imp" "imipemide,imipenemum,imipenen,primaxin,recarbrio,tienam,tienamycin" 2 "g" "101487-7,17010-0,18932-4,18933-2,23613-3,25221-3,25257-7,27331-8,278-2,279-0,280-8,281-6,282-4,283-2,284-0,285-7,35819-2,3688-9,54170-6,54171-4,54172-2,7019-3,85424-0,93232-7,96372-8"
|
"IPM" 104838 "Imipenem" "Carbapenems" "J01DH51,QJ01DH51" "Other beta-lactam antibacterials" "Carbapenems" "imci,imi,imip,imip32,imipen,imp" "imipemide,imipenemum,imipenen,primaxin,recarbrio,tienam,tienamycin" 2 "g" "101487-7,17010-0,18932-4,18933-2,23613-3,25221-3,25257-7,27331-8,278-2,279-0,280-8,281-6,282-4,283-2,284-0,285-7,35819-2,3688-9,54170-6,54171-4,54172-2,7019-3,85424-0,93232-7,96372-8"
|
||||||
"IPE" "Imipenem/EDTA" "Carbapenems" "NA" "NA" "NA" "35819-2,54170-6,54171-4,54172-2"
|
"IPE" "Imipenem/EDTA" "Carbapenems" "NA" "NA" "NA" "35819-2,54170-6,54171-4,54172-2"
|
||||||
"IMR" "Imipenem/relebactam" "Carbapenems" "J01DH56" "NA" "NA" 2 "g" "85424-0,93232-7,96372-8"
|
"IMR" "Imipenem/relebactam" "Carbapenems" "J01DH56,QJ01DH56" "NA" "NA" 2 "g" "85424-0,93232-7,96372-8"
|
||||||
"ISV" 6918485 "Isavuconazole" "Antifungals/antimycotics" "J02AC05" "isav" "benzonitrile,ravuconazole" 0.2 "g" 0.2 "g" "85381-2,88887-5"
|
"ISV" 6918485 "Isavuconazole" "Antifungals/antimycotics" "J02AC05,QJ02AC05" "isav" "benzonitrile,ravuconazole" 0.2 "g" 0.2 "g" "85381-2,88887-5"
|
||||||
"ISE" 3037209 "Isepamicin" "Aminoglycosides" "J01GB11" "Aminoglycoside antibacterials" "Other aminoglycosides" "NA" "isepacin,isepalline,isepamicina,isepamicine,isepamicinsulphate,isepamicinum" 0.4 "g" "32381-6,35820-0,35821-8,55680-3"
|
"ISE" 3037209 "Isepamicin" "Aminoglycosides" "J01GB11,QJ01GB11" "Aminoglycoside antibacterials" "Other aminoglycosides" "isepam" "isepacin,isepalline,isepamicina,isepamicine,isepamicinsulphate,isepamicinum" 0.4 "g" "32381-6,35820-0,35821-8,55680-3"
|
||||||
"ISO" 3760 "Isoconazole" "Antifungals/antimycotics" "D01AC05,G01AF07" "Antimycotics for topic use" "Triazole derivatives" "NA" "isoconazol,isoconazolum,travogen" "55681-1,55682-9,55683-7,55684-5"
|
"ISO" 3760 "Isoconazole" "Antifungals/antimycotics" "D01AC05,G01AF07,QD01AC05,QG01AF07" "Antimycotics for topic use" "Triazole derivatives" "NA" "isoconazol,isoconazolum,travogen" "55681-1,55682-9,55683-7,55684-5"
|
||||||
"INH" 3767 "Isoniazid" "Antimycobacterials" "J04AC01" "Drugs for treatment of tuberculosis" "Hydrazides" "inh" "abdizide,acetylisoniazide,andrazide,anidrasona,antimicina,antituberkulosum,armacide,armazid,armazide,atcotibine,azuren,cedin,cemidon,chemiazid,chemidon,continazine,cortinazine,cotinazin,cotinizin,defonin,dianicotyl,dibutin,diforin,dinacrin,dinocrin,ditubin,ebidene,eralon,ertuban,eutizon,evalon,fetefu,fimalene,hidranizil,hidrasonil,hidrulta,hidrun,hycozid,hydra,hydrazid,hyozid,hyzyd,idrazil,inizid,ipcazide,iscotin,isidrina,ismazide,isobicina,isocid,isocidene,isocotin,isohydrazide,isokin,isolyn,isonerit,isonex,isoniacid,isoniazida,isoniazide,isoniazidum,isonicazide,isonicid,isonico,isonicotan,isonicotil,isonicotinhydrazid,isonicotinohydrazide,isonide,isonidrin,isonikazid,isonilex,isonin,isonindon,isonirit,isoniton,isonizida,isonizide,isotamine,isotebe,isotebezid,isotinyl,isozid,isozide,isozyd,laniazid,laniozid,mayambutol,mybasan,neoteben,neoxin,neumandin,nevin,niadrin,nicazide,nicetal,nicizina,niconyl,nicotibina,nicotibine,nicotisan,nicozide,nidaton,nidrazid,nikozid,niplen,nitadon,niteban,nitebannsc,nydrazid,nyscozid,pelazid,percin,phthisen,preparation,pycazide,pyreazid,pyricidin,pyridicin,pyrizidin,raumanon,razide,retozide,rifater,rimicid,rimifon,rimiphone,rimitsid,robiselin,robisellin,roxifen,sanohidrazina,sauterazid,sauterzid,soniazid,stanozide,tebecid,tebenic,tebexin,tebilon,tebos,teebaconin,tekazin,tibazide,tibemid,tibiazide,tibinide,tibison,tibivis,tibizide,tibusan,tisin,tisiodrazida,tizide,tubazid,tubazide,tubeco,tubecotubercid,tuberian,tubicon,tubilysin,tubizid,tubomel,tyvid,unicocyde,unicozyde,vazadrine,vederon,zidafimia,zinadon,zonazide" 0.3 "g" 0.3 "g" "18934-0,20383-6,23947-5,25217-1,25218-9,25219-7,25451-6,26756-7,286-5,287-3,288-1,289-9,29315-9,3697-0,40371-7,42649-4,42650-2,42651-0,45215-1,48171-3,48172-1,55685-2,7020-1,89488-1"
|
"INH" 3767 "Isoniazid" "Antimycobacterials" "J04AC01,QJ04AC01" "Drugs for treatment of tuberculosis" "Hydrazides" "inh,isonia" "abdizide,acetylisoniazide,andrazide,anidrasona,antimicina,antituberkulosum,armacide,armazid,armazide,atcotibine,azuren,cedin,cemidon,chemiazid,chemidon,continazine,cortinazine,cotinazin,cotinizin,defonin,dianicotyl,dibutin,diforin,dinacrin,dinocrin,ditubin,ebidene,eralon,ertuban,eutizon,evalon,fetefu,fimalene,hidranizil,hidrasonil,hidrulta,hidrun,hycozid,hydra,hydrazid,hyozid,hyzyd,idrazil,inizid,ipcazide,iscotin,isidrina,ismazide,isobicina,isocid,isocidene,isocotin,isohydrazide,isokin,isolyn,isonerit,isonex,isoniacid,isoniazida,isoniazide,isoniazidum,isonicazide,isonicid,isonico,isonicotan,isonicotil,isonicotinhydrazid,isonicotinohydrazide,isonide,isonidrin,isonikazid,isonilex,isonin,isonindon,isonirit,isoniton,isonizida,isonizide,isotamine,isotebe,isotebezid,isotinyl,isozid,isozide,isozyd,laniazid,laniozid,mayambutol,mybasan,neoteben,neoxin,neumandin,nevin,niadrin,nicazide,nicetal,nicizina,niconyl,nicotibina,nicotibine,nicotisan,nicozide,nidaton,nidrazid,nikozid,niplen,nitadon,niteban,nitebannsc,nydrazid,nyscozid,pelazid,percin,phthisen,preparation,pycazide,pyreazid,pyricidin,pyridicin,pyrizidin,raumanon,razide,retozide,rifater,rimicid,rimifon,rimiphone,rimitsid,robiselin,robisellin,roxifen,sanohidrazina,sauterazid,sauterzid,stanozide,tebecid,tebenic,tebexin,tebilon,tebos,teebaconin,tekazin,tibazide,tibemid,tibiazide,tibinide,tibison,tibivis,tibizide,tibusan,tisin,tisiodrazida,tizide,tubazid,tubazide,tubeco,tubecotubercid,tuberian,tubicon,tubilysin,tubizid,tubomel,tyvid,unicocyde,unicozyde,vazadrine,vederon,zidafimia,zinadon,zonazide" 0.3 "g" 0.3 "g" "18934-0,20383-6,23947-5,25217-1,25218-9,25219-7,25451-6,26756-7,286-5,287-3,288-1,289-9,29315-9,3697-0,40371-7,42649-4,42650-2,42651-0,45215-1,48171-3,48172-1,55685-2,7020-1,89488-1"
|
||||||
"IST" "Isoniazid/sulfamethoxazole/trimethoprim/pyridoxine" "Antimycobacterials" "J04AM08" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
"IST" "Isoniazid/sulfamethoxazole/trimethoprim/pyridoxine" "Antimycobacterials" "NA" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
||||||
"ITR" 3793 "Itraconazole" "Antifungals/antimycotics" "J02AC02" "Antimycotics for systemic use" "Triazole derivatives" "itra" "candistat,canditral,cladosal,fungitraxx,intraconazole,itrac,itraconazol,itraconazolo,itraconazolum,itraconzaole,itrafungol,itralek,itrizole,lozanoc,onmel,oriconazole,sempera,sporamelt,sporanox,sporonox,traconal,triasporin" 0.2 "g" 0.2 "g" "10989-2,12392-7,25258-5,25452-4,27081-9,32184-4,32185-1,32603-3,54179-7,7021-9,80531-7"
|
"ITR" 3793 "Itraconazole" "Antifungals/antimycotics" "J02AC02,QJ02AC02" "Antimycotics for systemic use" "Triazole derivatives" "itra,itraco" "candistat,canditral,cladosal,fungitraxx,intraconazole,itraconazol,itraconazolo,itraconazolum,itraconzaole,itrafungol,itralek,itrizole,lozanoc,onmel,sempera,sporamelt,sporanox,sporonox,traconal,triasporin" 0.2 "g" 0.2 "g" "10989-2,12392-7,25258-5,25452-4,27081-9,32184-4,32185-1,32603-3,54179-7,7021-9,80531-7"
|
||||||
"JOS" 5282165 "Josamycin" "Macrolides/lincosamides" "J01FA07" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "jomybel,josamicina,josamycine,josamycinum" 2 "g" "25597-6,25702-2,41698-2,41699-0"
|
"JOS" 5282165 "Josamycin" "Macrolides/lincosamides" "J01FA07,QJ01FA07" "Macrolides, lincosamides and streptogramins" "Macrolides" "josamy" "jomybel,josamicina,josamycine,josamycinum" 2 "g" "25597-6,25702-2,41698-2,41699-0"
|
||||||
"KAN" 6032 "Kanamycin" "Aminoglycosides" "A07AA08,J01GB04,S01AA24" "Aminoglycoside antibacterials" "Other aminoglycosides" "hlk,k,kan,kana,km" "kanamicina,kanamycine,kanamycins,kanamycinum,kantrex,klebcil" 3 "g" 1 "g" "18935-7,18936-5,23609-1,23889-9,25182-7,25213-0,25214-8,290-7,291-5,292-3,293-1,3698-8,3699-6,3700-2,42652-8,47395-9,49080-5,7022-7,7023-5,7024-3,88002-1,88705-9,89482-4"
|
"KAN" 6032 "Kanamycin" "Aminoglycosides" "A07AA08,J01GB04,QA07AA08,QJ01GB04,QS01AA24,S01AA24" "Aminoglycoside antibacterials" "Other aminoglycosides" "hlk,k,kan,kana,kanamy,km" "kanamicina,kanamycine,kanamycins,kanamycinum,kantrex,klebcil" 3 "g" 1 "g" "18935-7,18936-5,23609-1,23889-9,25182-7,25213-0,25214-8,290-7,291-5,292-3,293-1,3698-8,3699-6,3700-2,42652-8,47395-9,49080-5,7022-7,7023-5,7024-3,88002-1,88705-9,89482-4"
|
||||||
"KAH" "Kanamycin-high" "Aminoglycosides" "NA" "k_h,kahl" "NA" "18936-5,7023-5,7024-3"
|
"KAH" "Kanamycin-high" "Aminoglycosides" "NA" "k_h,kahl" "NA" "18936-5,7023-5,7024-3"
|
||||||
"KAC" "Kanamycin/cephalexin" "Aminoglycosides" "NA" "NA" "NA" "NA"
|
"KAC" "Kanamycin/cephalexin" "Aminoglycosides" "NA" "NA" "NA" "NA"
|
||||||
"KET" 456201 "Ketoconazole" "Antifungals/antimycotics" "D01AC08,G01AF11,H02CA03,J02AB02" "Antimycotics for systemic use" "Imidazole derivatives" "keto,ktc" "brizoral,ethanone,extina,fungarest,fungoral,ketaconazole,ketocanazole,ketoconazol,ketoconazolum,ketodan,ketoderm,ketoisdin,ketozole,kuric,levoketoconazole,nizoral,normocort,panfungol,piperazine,recorlev,sebazole,teryzolin,terzolin,tocris,xolegel" 0.6 "g" "10990-0,12393-5,18937-3,25259-3,294-9,295-6,296-4,297-2,60091-6,60092-4,7025-0"
|
"KET" 456201 "Ketoconazole" "Antifungals/antimycotics" "D01AC08,G01AF11,H02CA03,J02AB02,QD01AC08,QG01AF11,QH02CA03,QJ02AB02" "Antimycotics for systemic use" "Imidazole derivatives" "keto,ketoco,ktc" "brizoral,ethanone,extina,fungarest,fungoral,ketaconazole,ketocanazole,ketoconazol,ketoconazolum,ketodan,ketoderm,ketoisdin,ketozole,kuric,levoketoconazole,nizoral,normocort,panfungol,piperazine,recorlev,sebazole,teryzolin,terzolin,tocris,xolegel" 0.6 "g" "10990-0,12393-5,18937-3,25259-3,294-9,295-6,296-4,297-2,60091-6,60092-4,7025-0"
|
||||||
"KIT" "Kitasamycin" "Macrolides/lincosamides" "QJ01FA93" "leucomycin" "NA" "NA"
|
"KIT" "Kitasamycin" "Macrolides/lincosamides" "QJ01FA93" "leucomycin" "NA" "NA"
|
||||||
"LAS" 5360807 "Lasalocid" "Other antibacterials" "QP51BB02" "NA" "avatec,bovate,bovatec,lasalocide,lasalocido,lasalocidsalt,lasalocidum" "87598-9"
|
"LAS" 5360807 "Lasalocid" "Other antibacterials" "QP51BB02" "NA" "avatec,bovate,bovatec,lasalocide,lasalocido,lasalocidsalt,lasalocidum" "87598-9"
|
||||||
"LSC" 71528768 "Lascufloxacin" "Fluoroquinolones" "J01MA25" "Quinolone antibacterials" "Fluoroquinolones" "NA" "lasvic" 75 "mg" "NA"
|
"LSC" 71528768 "Lascufloxacin" "Fluoroquinolones" "J01MA25,QJ01MA25" "Quinolone antibacterials" "Fluoroquinolones" "NA" "lasvic" 75 "mg" "NA"
|
||||||
"LTM" 47499 "Latamoxef" "Cephalosporins (3rd gen.)" "J01DD06" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "mox,moxa,moxalactam" "dilatamoxef,festamoxin,lamoxactam,latamoxefum,morrhuate,moxalactamsalt,moxam,shiomarin" 4 "g" "NA"
|
"LTM" 47499 "Latamoxef" "Cephalosporins (3rd gen.)" "J01DD06,QJ01DD06" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "mox,moxa,moxalactam" "dilatamoxef,festamoxin,lamoxactam,latamoxefum,morrhuate,moxalactamsalt,moxam,shiomarin" 4 "g" "NA"
|
||||||
"LMU" 25185057 "Lefamulin" "Other antibacterials" "J01XX12" "NA" "lefamulinacetate,xenleta" "85425-7,99281-8"
|
"LMU" 25185057 "Lefamulin" "Other antibacterials" "J01XX12,QJ01XX12" "NA" "lefamulinacetate,xenleta" "85425-7,99281-8"
|
||||||
"LEN" 65646 "Lenampicillin" "Beta-lactams/penicillins" "NA" "NA" "lenampicilina,lenampicilline,lenampicillinum,takacillin,valacillin,varacillin" "NA"
|
"LEN" 65646 "Lenampicillin" "Beta-lactams/penicillins" "NA" "NA" "lenampicilina,lenampicilline,lenampicillinum,takacillin,valacillin,varacillin" "NA"
|
||||||
"LVX" 149096 "Levofloxacin" "Fluoroquinolones" "J01MA12,S01AE05" "Quinolone antibacterials" "Fluoroquinolones" "le,lev,levo,lvx" "aeroquin,cravit,dextrofloxacin,dynaquin,elequine,floxacin,iquix,levaquin,levofiexacin,levofloxacine,levofloxacino,levofloxacinum,loxof,ofloxcacin,oftaquix,quinsair,quixin,tavanic,unibiotic,venaxan" 0.5 "g" 0.5 "g" "101501-5,20396-8,20629-2,21367-8,21368-6,30532-6,30533-4,48173-9,53716-7,7026-8,76040-5,76041-3,76042-1"
|
"LVX" 149096 "Levofloxacin" "Fluoroquinolones" "J01MA12,QJ01MA12,QS01AE05,S01AE05" "Quinolone antibacterials" "Fluoroquinolones" "le,lev,levo,levofl,lvx" "aeroquin,cravit,dextrofloxacin,dynaquin,elequine,iquix,levaquin,levofiexacin,levofloxacine,levofloxacino,levofloxacinum,loxof,ofloxcacin,oftaquix,quinsair,quixin,tavanic,unibiotic,venaxan" 0.5 "g" 0.5 "g" "101501-5,20396-8,20629-2,21367-8,21368-6,30532-6,30533-4,48173-9,53716-7,7026-8,76040-5,76041-3,76042-1"
|
||||||
"LEO" "Levofloxacin/ornidazole" "Fluoroquinolones" "J01RA05" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"LEO" "Levofloxacin/ornidazole" "Fluoroquinolones" "J01RA05,QJ01RA05" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"LND" 9850038 "Levonadifloxacin" "Fluoroquinolones" "J01MA24" "NA" "NA" "NA"
|
"LND" 9850038 "Levonadifloxacin" "Fluoroquinolones" "J01MA24,QJ01MA24" "NA" "NA" "NA"
|
||||||
"LSP" "Linco-spectin" "Other antibacterials" "NA" "lincomycin/spectinomycin" "NA" "NA"
|
"LSP" "Linco-spectin" "Other antibacterials" "NA" "lincomycin/spectinomycin" "NA" "NA"
|
||||||
"LIN" 3000540 "Lincomycin" "Macrolides/lincosamides" "J01FF02" "Macrolides, lincosamides and streptogramins" "Lincosamides" "linc" "albiotic,bactramycin,cillimycin,frademicina,jiemycin,lincocin,lincogap,lincolcina,lincolnensin,lincomicina,lincomix,lincomycine,lincomycinum,lincomyocin,lincorex,linocin,mycivin" 1.8 "g" 1.8 "g" "18938-1,298-0,299-8,300-4,301-2,41700-6,87597-1"
|
"LIN" 3000540 "Lincomycin" "Macrolides/lincosamides" "J01FF02,QJ01FF02,QJ51FF02" "Macrolides, lincosamides and streptogramins" "Lincosamides" "linc,lincom" "albiotic,bactramycin,cillimycin,frademicina,jiemycin,lincocin,lincogap,lincolcina,lincolnensin,lincomicina,lincomix,lincomycine,lincomycinum,lincomyocin,lincorex,linocin,mycivin" 1.8 "g" 1.8 "g" "18938-1,298-0,299-8,300-4,301-2,41700-6,87597-1"
|
||||||
"LNZ" 441401 "Linezolid" "Oxazolidinones" "J01XX08" "Other antibacterials" "Other antibacterials" "line,lnz,lz,lzd" "desfluorolinezolid,linezoid,linezolidum,zivoxid,zyvox,zyvoxa,zyvoxam,zyvoxid" 1.2 "g" 1.2 "g" "29254-0,29255-7,29258-1,33332-8,34202-2,41500-0,80609-1,88706-7,96111-0"
|
"LNZ" 441401 "Linezolid" "Oxazolidinones" "J01XX08,QJ01XX08" "Other antibacterials" "Other antibacterials" "line,linezo,lnz,lz,lzd" "desfluorolinezolid,linezoid,linezolidum,zivoxid,zyvox,zyvoxa,zyvoxam,zyvoxid" 1.2 "g" 1.2 "g" "29254-0,29255-7,29258-1,33332-8,34202-2,41500-0,80609-1,88706-7,96111-0"
|
||||||
"LFE" "Linoprist-flopristin" "Other antibacterials" "NA" "NA" "NA" "NA"
|
"LFE" "Linoprist-flopristin" "Other antibacterials" "NA" "linflo" "NA" "NA"
|
||||||
"LOM" 3948 "Lomefloxacin" "Fluoroquinolones" "J01MA07,S01AE04" "Quinolone antibacterials" "Fluoroquinolones" "lmf,lom,lome" "bareon,logiflox,lomebact,lomefloxacine,lomefloxacino,lomefloxacinum,maxaquin,maxaquine,mazaquin,okacin,okacyn,uniquin" 0.4 "g" "18939-9,302-0,303-8,304-6,305-3,41701-4"
|
"LOM" 3948 "Lomefloxacin" "Fluoroquinolones" "J01MA07,QJ01MA07,QS01AE04,S01AE04" "Quinolone antibacterials" "Fluoroquinolones" "lmf,lom,lome,lomefl" "bareon,logiflox,lomebact,lomefloxacine,lomefloxacino,lomefloxacinum,maxaquin,maxaquine,mazaquin,okacin,okacyn,uniquin" 0.4 "g" "18939-9,302-0,303-8,304-6,305-3,41701-4"
|
||||||
"LOR" 5284585 "Loracarbef" "Cephalosporins (2nd gen.)" "J01DC08" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "lora" "carbac,lorabid,loracarbefum,lorafem,lorbef,loribid" 0.6 "g" "18940-7,306-1,307-9,308-7,309-5,7027-6"
|
"LOR" 5284585 "Loracarbef" "Cephalosporins (2nd gen.)" "J01DC08,QJ01DC08" "Other beta-lactam antibacterials" "Second-generation cephalosporins" "lora,loraca" "carbac,lorabid,loracarbefum,lorafem,lorbef,loribid" 0.6 "g" "18940-7,306-1,307-9,308-7,309-5,7027-6"
|
||||||
"LYM" 54707177 "Lymecycline" "Tetracyclines" "J01AA04" "Tetracyclines" "Tetracyclines" "NA" "armyl,chlortetracyclin,ciclisin,ciclolysal,ciclolysine,eficiclina,infaciclina,limeciclina,lisinbiotic,lymecyclinum,mucomycin,ntetracycline,tetralisal,tetralysal,vebicyclysal" 0.6 "g" 0.6 "g" "18941-5,310-3,311-1,312-9,313-7"
|
"LYM" 54707177 "Lymecycline" "Tetracyclines" "J01AA04,QJ01AA04" "Tetracyclines" "Tetracyclines" "NA" "armyl,chlortetracyclin,ciclisin,ciclolysal,ciclolysine,eficiclina,infaciclina,limeciclina,lisinbiotic,lymecyclinum,mucomycin,ntetracycline,tetralisal,tetralysal,vebicyclysal" 0.6 "g" 0.6 "g" "18941-5,310-3,311-1,312-9,313-7"
|
||||||
"MNA" 1292 "Mandelic acid" "Other antibacterials" "B05CA06,J01XX06" "Other antibacterials" "Other antibacterials" "NA" "amygdalate,mandelsaeure,methyl,paramandelate,phenylglycolate,phenylhydroxyacetate,uromaline" 12 "g" "NA"
|
"MNA" 1292 "Mandelic acid" "Other antibacterials" "B05CA06,J01XX06,QB05CA06,QJ01XX06" "Other antibacterials" "Other antibacterials" "NA" "amygdalate,mandelsaeure,paramandelate,phenylglycolate,phenylhydroxyacetate,uromaline" 12 "g" "NA"
|
||||||
"MGX" "Manogepix" "Antifungals" "NA" "NA" "NA" "NA"
|
"MGX" "Manogepix" "Antifungals" "NA" "NA" "NA" "NA"
|
||||||
"MAR" 60651 "Marbofloxacin" "Fluoroquinolones" "QJ01MA93" "NA" "marbocyl,marbofloxacine,marbofloxacino,marbofloxacinum,marboquin,zeniquin" "73596-9,73618-1,73641-3"
|
"MAR" 60651 "Marbofloxacin" "Fluoroquinolones" "QJ01MA93" "marbof" "marbocyl,marbofloxacine,marbofloxacino,marbofloxacinum,marboquin,zeniquin" "73596-9,73618-1,73641-3"
|
||||||
"MEC" 36273 "Mecillinam" "Beta-lactams/penicillins" "J01CA11" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "amdinocillin" "amdinocillin,coactin,hexacillin,mecilinamo,mecillinamum,selexidin" 1.2 "g" "NA"
|
"MEC" 36273 "Mecillinam" "Beta-lactams/penicillins" "J01CA11,QJ01CA11" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "amdinocillin,mecill" "amdinocillin,coactin,hexacillin,mecilinamo,mecillinamum,selexidin" 1.2 "g" "NA"
|
||||||
"MEL" 71306732 "Meleumycin" "Macrolides/lincosamides" "NA" "NA" "NA" "NA"
|
"MEL" 71306732 "Meleumycin" "Macrolides/lincosamides" "NA" "NA" "NA" "NA"
|
||||||
"MEM" 441130 "Meropenem" "Carbapenems" "J01DH02" "Other beta-lactam antibacterials" "Carbapenems" "mem,mer,mero,mp,mrp" "meronem,meropen,meropenemum,merrem" 3 "g" "101222-8,101488-5,101489-3,18943-1,41406-0,6651-4,6652-2,6653-0,6654-8,7029-2,85426-5,85427-3,88892-5,90980-4"
|
"MEM" 441130 "Meropenem" "Carbapenems" "J01DH02,QJ01DH02" "Other beta-lactam antibacterials" "Carbapenems" "mem,mer,mero,merope,mp,mrp" "meronem,meropen,meropenemum,merrem" 3 "g" "101222-8,101488-5,101489-3,18943-1,41406-0,6651-4,6652-2,6653-0,6654-8,7029-2,85426-5,85427-3,88892-5,90980-4"
|
||||||
"MNC" "Meropenem/nacubactam" "Carbapenems" "NA" "NA" "NA" "NA"
|
"MNC" "Meropenem/nacubactam" "Carbapenems" "NA" "NA" "NA" "NA"
|
||||||
"MEV" "Meropenem/vaborbactam" "Carbapenems" "J01DH52" "Other beta-lactam antibacterials" "Carbapenems" "NA" "NA" 3 "g" "101222-8,101489-3,85427-3,88892-5,90980-4"
|
"MEV" "Meropenem/vaborbactam" "Carbapenems" "J01DH52,QJ01DH52" "Other beta-lactam antibacterials" "Carbapenems" "NA" "NA" 3 "g" "101222-8,101489-3,85427-3,88892-5,90980-4"
|
||||||
"MES" 176886 "Mesulfamide" "Other antibacterials" "NA" "NA" "mesulfamida,mesulfamido,mesulfamidum" "NA"
|
"MES" 176886 "Mesulfamide" "Other antibacterials" "NA" "NA" "mesulfamida,mesulfamido,mesulfamidum" "NA"
|
||||||
"MTC" 54675785 "Metacycline" "Tetracyclines" "J01AA05" "Tetracyclines" "Tetracyclines" "NA" "bialatan,metaciclina,metacyclinum,methacyclin,methacycline,methacyclinum,methylenecycline,physiomycine,rondomycin" 0.6 "g" "NA"
|
"MTC" 54675785 "Metacycline" "Tetracyclines" "J01AA05,QJ01AA05" "Tetracyclines" "Tetracyclines" "methcy" "bialatan,metaciclina,metacyclinum,methacyclin,methacycline,methacyclinum,methylenecycline,physiomycine,rondomycin" 0.6 "g" "NA"
|
||||||
"MTM" 6713928 "Metampicillin" "Beta-lactams/penicillins" "J01CA14" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "blomopen,bonopen,celinmicina,elatocilline,filorex,magnipen,metambac,metampen,metampicilina,metampicillina,metampicilline,metampicillinsalt,metampicillinum,micinovo,ocelina,pangocilin,probiotic,relyothenate,ruticina,rutizina,sedomycin,serfabiotic,suvipen,viderpen,viderpin,vioplex" 1.5 "g" 1.5 "g" "NA"
|
"MTM" 6713928 "Metampicillin" "Beta-lactams/penicillins" "J01CA14,QJ01CA14" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "blomopen,bonopen,celinmicina,elatocilline,filorex,magnipen,metambac,metampen,metampicilina,metampicillina,metampicilline,metampicillinsalt,metampicillinum,micinovo,ocelina,pangocilin,probiotic,relyothenate,ruticina,rutizina,sedomycin,serfabiotic,suvipen,viderpen,viderpin,vioplex" 1.5 "g" 1.5 "g" "NA"
|
||||||
"MTH" 4101 "Methenamine" "Other antibacterials" "J01XX05" "Other antibacterials" "Other antibacterials" "NA" "aminoform,aminoformaldehyde,ammoform,ammonioformaldehyde,antihydral,carin,cystamin,cystex,cystogen,duirexol,esametilentetramina,formamine,formin,grasselerator,heterin,hexaform,hexaloids,hexamethylamine,hexamethylenamine,hexamethyleneamine,hexamethylentetramin,hexamine,hexaminum,hexasan,hexilmethylenamine,metenamina,metenamine,methamin,methamine,methenamin,methenaminum,metramine,naphthamine,pellurin,resotropin,uramin,urasal,uratrine,urisol,uritone,urodeine,urotropin,urotropine,vesaloin,xametrin" 3 "g" "NA"
|
"MTH" 4101 "Methenamine" "Other antibacterials" "J01XX05,QJ01XX05" "Other antibacterials" "Other antibacterials" "NA" "aminoform,aminoformaldehyde,ammoform,ammonioformaldehyde,antihydral,carin,cystamin,cystex,cystogen,duirexol,esametilentetramina,formamine,formin,grasselerator,heterin,hexaform,hexaloids,hexamethylamine,hexamethylenamine,hexamethyleneamine,hexamethylentetramin,hexamine,hexaminum,hexasan,hexilmethylenamine,metenamina,metenamine,methamin,methamine,methenamin,methenaminum,metramine,naphthamine,pellurin,resotropin,uramin,urasal,uratrine,urisol,uritone,urodeine,urotropin,urotropine,vesaloin,xametrin" 3 "g" "NA"
|
||||||
"MET" 6087 "Meticillin" "Beta-lactams/penicillins" "J01CF03" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "meti" "belfacillin,celbenin,celpilline,cinopenil,dimocillin,estafcilina,flabelline,lucopenin,metacillin,methcillin,methicillin,methicillinanhydrous,methicillinhydrate,methicillinsalt,methicillinum,methycillin,meticilina,meticillina,meticilline,meticillinsalt,meticillinum,penaureus,penysol,staficyn,staphcillin,synticillin" 4 "g" "NA"
|
"MET" 6087 "Meticillin" "Beta-lactams/penicillins" "J01CF03,QJ01CF03,QJ51CF03" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "methic,meti" "belfacillin,celbenin,celpilline,cinopenil,dimocillin,estafcilina,flabelline,lucopenin,metacillin,methcillin,methicillin,methicillinanhydrous,methicillinhydrate,methicillinsalt,methicillinum,methycillin,meticilina,meticillina,meticilline,meticillinsalt,meticillinum,penaureus,penysol,staficyn,staphcillin,synticillin" 4 "g" "NA"
|
||||||
"MTP" 68590 "Metioprim" "Other antibacterials" "NA" "NA" "methioprim,metioprima,metioprime,metioprimum" "NA"
|
"MTP" 68590 "Metioprim" "Other antibacterials" "NA" "NA" "methioprim,metioprima,metioprime,metioprimum" "NA"
|
||||||
"MXT" 3047729 "Metioxate" "Fluoroquinolones" "NA" "NA" "metioxato,metioxatum" "NA"
|
"MXT" 3047729 "Metioxate" "Fluoroquinolones" "NA" "NA" "metioxato,metioxatum" "NA"
|
||||||
"MTR" 4173 "Metronidazole" "Other antibacterials" "A01AB17,D06BX01,G01AF01,J01XD01,P01AB01" "Other antibacterials" "Imidazole derivatives" "metr,mnz" "acromona,anagiardil,arilin,atrivyl,bexon,clont,danizol,deflamon,donnan,efloran,elyzol,entizol,eumin,flagemona,flagesol,flagil,flagyl,flazol,flegyl,florazole,fossyol,giatricol,gineflavir,givagil,hydroxydimetridazole,hydroxymetronidazole,izoklion,klion,klont,mepagyl,meronidal,methronidazole,metric,metrolag,metrolyl,metromidol,metronidaz,metronidazol,metronidazolo,metronidazolum,metroplex,metrotop,mexibol,monagyl,monasin,nalox,nidagyl,noritate,novonidazol,nuvessa,orvagil,polibiotic,protostat,rathimed,rosaced,rosased,sanatrichom,satric,takimetol,trichazol,trichex,trichobrol,trichocide,trichomol,trichopal,trichopol,tricocet,tricom,trikacide,trikamon,trikhopol,trikojol,trikozol,trimeks,trivazol,vagilen,vagimid,vandazole,vertisal,wagitran,zadstat,zidoval" 2 "g" 1.5 "g" "10991-8,18946-4,326-9,327-7,328-5,329-3,7031-8"
|
"MTR" 4173 "Metronidazole" "Other antibacterials" "A01AB17,D06BX01,G01AF01,J01XD01,P01AB01,QA01AB17,QD06BX01,QG01AF01,QJ01XD01,QP51CA01" "Other antibacterials" "Imidazole derivatives" "metr,metron,mnz" "acromona,anagiardil,arilin,atrivyl,bexon,clont,danizol,deflamon,donnan,efloran,elyzol,entizol,eumin,flagemona,flagesol,flagil,flagyl,flazol,flegyl,florazole,fossyol,giatricol,gineflavir,givagil,hydroxydimetridazole,hydroxymetronidazole,izoklion,klion,klont,mepagyl,meronidal,metric,metrolag,metrolyl,metromidol,metronidazolo,metronidazolum,metroplex,metrotop,mexibol,monagyl,monasin,nalox,nidagyl,noritate,novonidazol,nuvessa,orvagil,polibiotic,protostat,rathimed,rosaced,rosased,sanatrichom,satric,takimetol,trichazol,trichex,trichobrol,trichocide,trichomol,trichopal,trichopol,tricocet,tricom,trikacide,trikamon,trikhopol,trikojol,trikozol,trimeks,trivazol,vagilen,vagimid,vandazole,vertisal,wagitran,zadstat,zidoval" 2 "g" 1.5 "g" "10991-8,18946-4,326-9,327-7,328-5,329-3,7031-8"
|
||||||
"MEZ" 656511 "Mezlocillin" "Beta-lactams/penicillins" "J01CA10" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "mez,mezl,mz" "baycipen,baypen,mezlin,mezlocilina,mezlocilline,mezlocillinsalt,mezlocillinum,multocillin" 6 "g" "18947-2,330-1,331-9,332-7,333-5,3820-8,41702-2,54194-6,54195-3,54196-1"
|
"MEZ" 656511 "Mezlocillin" "Beta-lactams/penicillins" "J01CA10,QJ01CA10" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "mez,mezl,mezlo,mz" "baycipen,baypen,mezlin,mezlocilina,mezlocilline,mezlocillinsalt,mezlocillinum,multocillin" 6 "g" "18947-2,330-1,331-9,332-7,333-5,3820-8,41702-2,54194-6,54195-3,54196-1"
|
||||||
"MSU" "Mezlocillin/sulbactam" "Beta-lactams/penicillins" "NA" "NA" "NA" "54194-6,54195-3,54196-1"
|
"MSU" "Mezlocillin/sulbactam" "Beta-lactams/penicillins" "NA" "mezsul" "NA" "54194-6,54195-3,54196-1"
|
||||||
"MIF" 477468 "Micafungin" "Antifungals/antimycotics" "J02AX05" "Antimycotics for systemic use" "Other antimycotics for systemic use" "mica" "fungard,funguard,micafungina,micafunginsalt,mycamine" 0.1 "g" "53812-4,58418-5,65340-2,85048-7"
|
"MIF" 477468 "Micafungin" "Antifungals/antimycotics" "J02AX05,QJ02AX05" "Antimycotics for systemic use" "Other antimycotics for systemic use" "mica,micafu" "fungard,funguard,micafungina,micafunginsalt,mycamine" 0.1 "g" "53812-4,58418-5,65340-2,85048-7"
|
||||||
"MCZ" 4189 "Miconazole" "Antifungals/antimycotics" "A01AB09,A07AC01,D01AC02,G01AF04,J02AB01,S02AA13" "Antimycotics for systemic use" "Imidazole derivatives" "mico" "aflorix,albistat,andergin,brentan,conofite,dactarin,florid,micantin,miconazol,miconazolo,miconazolum,micozole,minostate,monazole,monista,monistat,oravig,vusion,zimybase,zimycan" 0.2 "g" 1 "g" "17278-3,25607-3,25722-0,54180-5,55686-0"
|
"MCZ" 4189 "Miconazole" "Antifungals/antimycotics" "A01AB09,A07AC01,D01AC02,G01AF04,J02AB01,QA01AB09,QA07AC01,QD01AC02,QG01AF04,QJ02AB01,QS02AA13,S02AA13" "Antimycotics for systemic use" "Imidazole derivatives" "mico" "aflorix,albistat,andergin,brentan,conofite,dactarin,florid,micantin,miconazol,miconazolo,miconazolum,micozole,minostate,monazole,monista,monistat,oravig,vusion,zimybase,zimycan" 0.2 "g" 1 "g" "17278-3,25607-3,25722-0,54180-5,55686-0"
|
||||||
"MCR" 3037206 "Micronomicin" "Aminoglycosides" "S01AA22" "NA" "micromicin,micromycin,micronomicina,micronomicine,micronomicinum,sagamicin,santemycin" "NA"
|
"MCR" 3037206 "Micronomicin" "Aminoglycosides" "QS01AA22,S01AA22" "micron" "micromicin,micromycin,micronomicina,micronomicine,micronomicinum,sagamicin,santemycin" "NA"
|
||||||
"MID" 5282169 "Midecamycin" "Macrolides/lincosamides" "J01FA03" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "macropen,madecacine,medemycin,midecamicina,midecamycine,midecamycinum,midecin,momicine,mydecamycin,myoxam,normicina,rubimycin" 1.2 "g" 1 "g" "NA"
|
"MID" 5282169 "Midecamycin" "Macrolides/lincosamides" "J01FA03,QJ01FA03" "Macrolides, lincosamides and streptogramins" "Macrolides" "mideka" "macropen,madecacine,medemycin,midecamicina,midecamycine,midecamycinum,midecin,momicine,myoxam,normicina,rubimycin" 1.2 "g" 1 "g" "NA"
|
||||||
"MIL" 37614 "Miloxacin" "Fluoroquinolones" "NA" "NA" "miloxacine,miloxacino,miloxacinum" "NA"
|
"MIL" 37614 "Miloxacin" "Fluoroquinolones" "NA" "amiflo" "miloxacine,miloxacino,miloxacinum" "NA"
|
||||||
"MNO" 54675783 "Minocycline" "Tetracyclines" "A01AB23,D10AF07,J01AA08" "Tetracyclines" "Tetracyclines" "mc,mh,mi,min,mino,mn,mno" "acnez,arestin,borymycin,dynacin,lederderm,minociclina,minocin,minocline,minocyclin,minocyclinum,minocyn,minomax,minomycin,minoz,mynocine,periocline,solodyn,vectrin,ximino" 1 "mg" 0.2 "g" "18948-0,25225-4,334-3,335-0,336-8,337-6,34606-4,3822-4,49757-8,55156-4,7032-6"
|
"MNO" 54675783 "Minocycline" "Tetracyclines" "A01AB23,D10AF07,J01AA08,QA01AB23,QD10AF07,QJ01AA08" "Tetracyclines" "Tetracyclines" "mc,mh,mi,min,mino,minocy,mn,mno" "acnez,arestin,borymycin,dynacin,lederderm,minociclina,minocin,minocline,minocyclin,minocyclinum,minocyn,minomax,minomycin,mynocine,periocline,solodyn,vectrin,ximino" 1 "mg" 0.2 "g" "18948-0,25225-4,334-3,335-0,336-8,337-6,34606-4,3822-4,49757-8,55156-4,7032-6"
|
||||||
"MCM" 5282188 "Miocamycin" "Macrolides/lincosamides" "J01FA11" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "acecamycin,macroral,miocamen,miocamycine,miokamycin,mosil,myocamicin,ponsinomycin" 1.2 "g" "18949-8,338-4,339-2,340-0,341-8,55687-8"
|
"MCM" 5282188 "Miocamycin" "Macrolides/lincosamides" "J01FA11,QJ01FA11" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "acecamycin,macroral,miocamen,miocamycine,miokamycin,mosil,myocamicin,ponsinomycin" 1.2 "g" "18949-8,338-4,339-2,340-0,341-8,55687-8"
|
||||||
"MON" 23667299 "Monensin sodium" "Other antibacterials" "NA" "NA" "coban,elancoban,monelan,monensin,monensina,monensine,monensinum,monovet,romensin,rumensin" "NA"
|
"MON" 23667299 "Monensin sodium" "Other antibacterials" "NA" "NA" "coban,elancoban,monelan,monensin,monensina,monensine,monensinum,monovet,romensin,rumensin" "NA"
|
||||||
"MRN" 70374 "Morinamide" "Antimycobacterials" "J04AK04" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "NA" "morfazinamide,morfazinammide,morfgazinamide,morinamida,morinamidum,morphazinamid,morphazinamide,piazofolina,piazolin,piazolina" "NA"
|
"MRN" 70374 "Morinamide" "Antimycobacterials" "J04AK04,QJ04AK04" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "NA" "morfazinamide,morfazinammide,morfgazinamide,morinamida,morinamidum,morphazinamid,morphazinamide,piazofolina,piazolin,piazolina" "NA"
|
||||||
"MFX" 152946 "Moxifloxacin" "Fluoroquinolones" "J01MA14,S01AE07" "Quinolone antibacterials" "Fluoroquinolones" "mox,moxi,mxf" "actira,actura,avalox,avelox,avolex,izilox,moxeza,moxifloxacine,moxifloxacino,octegra,vegamox,vigamox,zimoxin" 0.4 "g" 0.4 "g" "31037-5,31039-1,31041-7,31043-3,41502-6,43751-7,45223-5,76043-9,76044-7,76045-4,80540-8,88707-5,93497-6,96112-8"
|
"MFX" 152946 "Moxifloxacin" "Fluoroquinolones" "J01MA14,QJ01MA14,QS01AE07,S01AE07" "Quinolone antibacterials" "Fluoroquinolones" "mox,moxi,moxifl,mxf" "actira,actura,avalox,avelox,avolex,izilox,moxeza,moxifloxacine,moxifloxacino,octegra,vegamox,vigamox,zimoxin" 0.4 "g" 0.4 "g" "31037-5,31039-1,31041-7,31043-3,41502-6,43751-7,45223-5,76043-9,76044-7,76045-4,80540-8,88707-5,93497-6,96112-8"
|
||||||
"MUP" 446596 "Mupirocin" "Other antibacterials" "D06AX09,R01AX06" "mup,mupi" "bactoderm,bactroban,centany,mupirocina,mupirocine,mupirocinum,plasimine,turixin" "20389-3,35822-6,35823-4,60542-8,60543-6,7033-4"
|
"MUP" 446596 "Mupirocin" "Other antibacterials" "D06AX09,QD06AX09,QR01AX06,R01AX06" "mup,mupi,mupiro" "bactoderm,bactroban,centany,mupirocina,mupirocine,mupirocinum,plasimine,turixin" "20389-3,35822-6,35823-4,60542-8,60543-6,7033-4"
|
||||||
"NAC" 73386748 "Nacubactam" "Beta-lactams/penicillins" "NA" "NA" "NA" "NA"
|
"NAC" 73386748 "Nacubactam" "Beta-lactams/penicillins" "NA" "NA" "NA" "NA"
|
||||||
"NAD" 4410 "Nadifloxacin" "Fluoroquinolones" "D10AF05" "NA" "acuatim,nadifloxacine,nadifloxacino,nadifloxacinum,nadixa,nadoxin" "NA"
|
"NAD" 4410 "Nadifloxacin" "Fluoroquinolones" "D10AF05,QD10AF05" "NA" "acuatim,nadifloxacine,nadifloxacino,nadifloxacinum,nadixa,nadoxin" "NA"
|
||||||
"NAF" 8982 "Nafcillin" "Beta-lactams/penicillins" "J01CF06" "NA" "nafcil,nafcilin,nafcilina,nafcillinanhydrous,nafcilline,nafcillinhydrate,nafcillinmonohydrate,nafcillinsalt,nafcillinum,naftopen,nallpen,naphcillin,naphthicillin,unipen" 3 "g" "10993-4,18951-4,25232-0,346-7,347-5,348-3,349-1,41704-8"
|
"NAF" 8982 "Nafcillin" "Beta-lactams/penicillins" "J01CF06,QJ01CF06" "nafcil" "nafcil,nafcilin,nafcilina,nafcillinanhydrous,nafcilline,nafcillinhydrate,nafcillinmonohydrate,nafcillinsalt,nafcillinum,naftopen,nallpen,naphcillin,naphthicillin,unipen" 3 "g" "10993-4,18951-4,25232-0,346-7,347-5,348-3,349-1,41704-8"
|
||||||
"ZWK" 117587595 "Nafithromycin" "Macrolides/lincosamides" "NA" "NA" "NA" "NA"
|
"ZWK" 117587595 "Nafithromycin" "Macrolides/lincosamides" "NA" "NA" "NA" "NA"
|
||||||
"NAL" 4421 "Nalidixic acid" "Quinolones" "J01MB02" "Quinolone antibacterials" "Other quinolones" "na,nal,nali" "amfonelinsaeure,baktogram,betaxina,chemiurin,cybis,dixiben,dixilina,dixinal,eucisten,eucistin,innoxalomn,innoxalon,jicsron,kusnarin,nalidicron,nalidixan,nalidixane,nalidixate,nalidixateanhydrous,nalidixic,nalidixin,nalidixinsaure,nalitucsan,nalix,nalurin,narigix,naxuril,negram,nevigramon,nicelate,nogram,poleon,sicmylon,specifen,specifin,unaserus,uralgin,uriben,uriclar,urisal,urodixin,uroman,uroneg,uronidix,uropan,wintomylon,wintron" 4 "g" "NA"
|
"NAL" 4421 "Nalidixic acid" "Quinolones" "J01MB02,QJ01MB02" "Quinolone antibacterials" "Other quinolones" "na,nal,nalac,nali" "amfonelinsaeure,baktogram,betaxina,chemiurin,cybis,dixiben,dixilina,dixinal,eucisten,eucistin,innoxalomn,innoxalon,jicsron,kusnarin,nalidicron,nalidixan,nalidixane,nalidixate,nalidixateanhydrous,nalidixic,nalidixin,nalidixinsaure,nalitucsan,nalix,nalurin,narigix,naxuril,negram,nevigramon,nicelate,nogram,poleon,sicmylon,specifen,specifin,unaserus,uralgin,uriben,uriclar,urisal,urodixin,uroman,uroneg,uronidix,uropan,wintomylon,wintron" 4 "g" "NA"
|
||||||
"NAL-S" "Nalidixic acid screening test" "Quinolones" "NA" "nal screen" "NA" "NA"
|
"NAL-S" "Nalidixic acid screening test" "Quinolones" "NA" "nal screen" "NA" "NA"
|
||||||
"NAR" 65452 "Narasin" "Other antibacterials" "QP51BB04" "NA" "monteban,narasine,narasino,narasinum,skycis" "87570-8"
|
"NAR" 65452 "Narasin" "Other antibacterials" "QP51BB04" "narasi" "monteban,narasine,narasino,narasinum,skycis" "87570-8"
|
||||||
"NEM" 11993740 "Nemonoxacin" "Fluoroquinolones" "J01MB08" "Quinolone antibacterials" "Other quinolones" "NA" "NA" "NA"
|
"NEM" 11993740 "Nemonoxacin" "Fluoroquinolones" "J01MB08,QJ01MB08" "Quinolone antibacterials" "Other quinolones" "NA" "NA" "NA"
|
||||||
"NEO" 8378 "Neomycin" "Aminoglycosides" "A01AB08,A07AA01,B05CA09,D06AX04,J01GB05,R02AB01,S01AA03,S02AA07,S03AA01" "Aminoglycoside antibacterials" "Other aminoglycosides" "neom" "NA" 5 "g" 1 "g" "10995-9,18953-0,25262-7,354-1,355-8,356-6,357-4,41705-5"
|
"NEO" 8378 "Neomycin" "Aminoglycosides" "A01AB08,A07AA01,B05CA09,D06AX04,J01GB05,QA01AB08,QA07AA01,QB05CA09,QD06AX04,QJ01GB05,QR02AB01,QS01AA03,QS02AA07,QS03AA01,R02AB01,S01AA03,S02AA07,S03AA01" "Aminoglycoside antibacterials" "Other aminoglycosides" "neom,neomyc" "NA" 5 "g" 1 "g" "10995-9,18953-0,25262-7,354-1,355-8,356-6,357-4,41705-5"
|
||||||
"NET" 441306 "Netilmicin" "Aminoglycosides" "J01GB07,S01AA23" "Aminoglycoside antibacterials" "Other aminoglycosides" "neti" "netillin,netilmicina,netilmicine,netilmicinum,netilyn,netira,netromicine,netromycin,nettacin,ntromicine,ntromycin,vectacin,zetamicin" 0.35 "g" 0.35 "g" "18954-8,25263-5,358-2,359-0,360-8,361-6,3848-9,3849-7,3850-5,47385-0,59565-2,59566-0,59567-8,7035-9"
|
"NET" 441306 "Netilmicin" "Aminoglycosides" "J01GB07,QJ01GB07,QS01AA23,S01AA23" "Aminoglycoside antibacterials" "Other aminoglycosides" "neti,netilm" "netillin,netilmicina,netilmicine,netilmicinum,netilyn,netira,netromicine,netromycin,nettacin,ntromicine,ntromycin,vectacin,zetamicin" 0.35 "g" 0.35 "g" "18954-8,25263-5,358-2,359-0,360-8,361-6,3848-9,3849-7,3850-5,47385-0,59565-2,59566-0,59567-8,7035-9"
|
||||||
"NIC" 9507 "Nicarbazin" "Other antibacterials" "NA" "NA" "nicarb,nicarbasin,nicarbazine,nicarmix,nicoxin,nicrazin,nicrazine,nirazin" "NA"
|
"NIC" 9507 "Nicarbazin" "Other antibacterials" "NA" "NA" "nicarb,nicarbasin,nicarbazine,nicarmix,nicoxin,nicrazin,nicrazine,nirazin" "NA"
|
||||||
"NIF" 71946 "Nifuroquine" "Fluoroquinolones" "NA" "NA" "abimasten,nifuroquina,nifuroquinum,quinaldofur" "NA"
|
"NIF" 71946 "Nifuroquine" "Fluoroquinolones" "NA" "NA" "abimasten,nifuroquina,nifuroquinum,quinaldofur" "NA"
|
||||||
"NFR" 9571062 "Nifurtoinol" "Other antibacterials" "J01XE02" "Other antibacterials" "Nitrofuran derivatives" "NA" "levantin,nifurmazol,nifurmazole,nifurmazolo,nifurmazolum,nifurtoinolo,nifurtoinolum,urfadin,urfadine,urfadyn" 0.16 "g" "NA"
|
"NFR" 9571062 "Nifurtoinol" "Other antibacterials" "J01XE02,QJ01XE02" "Other antibacterials" "Nitrofuran derivatives" "NA" "levantin,nifurmazol,nifurmazole,nifurmazolo,nifurmazolum,nifurtoinolo,nifurtoinolum,urfadin,urfadine,urfadyn" 0.16 "g" "NA"
|
||||||
"NTZ" 41684 "Nitazoxanide" "Other antibacterials" "P01AX11" "NA" "alinia,benzamide,colufase,cryptaz,daxon,dexidex,heliton,kidonax,nitax,nitaxozanid,nitaxozanide,nitazox,nitazoxamide,nitazoxanid,nitazoxanida,nitazoxanidum,nitrazoxanide,pacovanton,paramix,phavic" 1 "g" "73595-1,73617-3,73640-5"
|
"NTZ" 41684 "Nitazoxanide" "Other antibacterials" "P01AX11" "NA" "alinia,benzamide,colufase,cryptaz,daxon,dexidex,heliton,kidonax,nitax,nitaxozanid,nitaxozanide,nitazox,nitazoxamide,nitazoxanid,nitazoxanida,nitazoxanidum,nitrazoxanide,pacovanton,paramix,phavic" 1 "g" "73595-1,73617-3,73640-5"
|
||||||
"NIT" 6604200 "Nitrofurantoin" "Other antibacterials" "J01XE01" "Other antibacterials" "Nitrofuran derivatives" "f,f/m,fd,ft,ni,nit,nitr" "alfuran,benkfuran,berkfuran,berkfurin,ceduran,chemiofuran,cistofuran,cyantin,cystit,dantafur,fuamed,furabid,furachel,furadantin,furadantine,furadantoin,furadoin,furadoine,furadonin,furadonine,furadoninum,furadontin,furalan,furaloid,furantoin,furantoina,furatoin,furedan,furina,furobactina,furodantin,gerofuran,ituran,macpac,macrobid,macrodantin,macrodantina,macrofuran,macrofurin,nierofu,nifuraden,nifuradene,nifuradeno,nifuradenum,nifuradine,nifurantin,nifuretten,nitoin,nitrex,nitrofuradantin,nitrofurantoina,nitrofurantoine,nitrofurantoinum,novofuran,orafuran,oxafuradene,oxafurandene,oxifuradene,oxyfuradene,parfuran,phenurin,renafur,siraliden,trantoin,uerineks,urantoin,urizept,urodin,urofuran,urofurin,urolisa,urolong,uvamin,welfurin,zoofurin" 0.2 "g" "18955-5,362-4,363-2,364-0,365-7,3860-4,7036-7"
|
"NIT" 6604200 "Nitrofurantoin" "Other antibacterials" "J01XE01,QJ01XE01" "Other antibacterials" "Nitrofuran derivatives" "f,f/m,fd,ft,ni,nit,nit16,nitr,nitro" "alfuran,benkfuran,berkfuran,berkfurin,ceduran,chemiofuran,cistofuran,cyantin,cystit,dantafur,fuamed,furabid,furachel,furadantin,furadantine,furadantoin,furadoin,furadoine,furadonin,furadonine,furadoninum,furadontin,furalan,furaloid,furantoina,furatoin,furedan,furina,furobactina,furodantin,gerofuran,ituran,macpac,macrobid,macrodantin,macrodantina,macrofuran,macrofurin,nierofu,nifuraden,nifuradene,nifuradeno,nifuradenum,nifuradine,nifurantin,nifuretten,nitoin,nitrex,nitrofuradantin,nitrofurantoina,nitrofurantoine,nitrofurantoinum,novofuran,orafuran,oxafuradene,oxafurandene,oxifuradene,oxyfuradene,parfuran,phenurin,renafur,siraliden,trantoin,uerineks,urizept,urodin,urofuran,urofurin,urolisa,urolong,uvamin,welfurin,zoofurin" 0.2 "g" "18955-5,362-4,363-2,364-0,365-7,3860-4,7036-7"
|
||||||
"NIZ" 5447130 "Nitrofurazone" "Other antibacterials" "NA" "NA" "acutol,aldomycin,alfucin,amifur,babrocid,becafurazone,biofuracina,biofurea,chemofuran,chixin,cocafurin,coxistat,dermofural,dymazone,dynazone,eldezol,fedacin,flavazone,fracine,furacilin,furacilinum,furacillin,furacin,furacine,furacinetten,furacoccid,furacort,furacycline,furaderm,furagent,furalcyn,furaldon,furalone,furametral,furaplast,furaseptyl,furaskin,furatsilin,furaziline,furazin,furazina,furazone,furazyme,furesol,furosem,fuvacillin,hemofuran,hydrazinecarboxamide,ibiofural,mammex,mastofuran,monafuracin,monafuracis,monofuracin,nefco,nifucin,nifurid,nifuzon,nitrofural,nitrofuralum,nitrofuran,nitrofurane,nitrofurazan,nitrofurazonum,nitrofurol,nitrozone,otofural,otofuran,rivafurazon,rivopon,sanfuran,semioxamazide,vabrocid,vadrocid,yatrocin" "20388-5,87793-6"
|
"NIZ" 5447130 "Nitrofurazone" "Other antibacterials" "NA" "nitfur" "acutol,aldomycin,alfucin,amifur,babrocid,becafurazone,biofuracina,biofurea,chemofuran,chixin,cocafurin,coxistat,dermofural,dymazone,dynazone,eldezol,fedacin,flavazone,fracine,furacilin,furacilinum,furacillin,furacin,furacine,furacinetten,furacoccid,furacort,furacycline,furaderm,furagent,furalcyn,furaldon,furalone,furametral,furaplast,furaseptyl,furaskin,furatsilin,furaziline,furazin,furazina,furazyme,furesol,furosem,fuvacillin,hemofuran,hydrazinecarboxamide,ibiofural,mammex,mastofuran,monafuracin,monafuracis,monofuracin,nefco,nifucin,nifurid,nifuzon,nitrofural,nitrofuralum,nitrofuran,nitrofurane,nitrofurazan,nitrofurazonum,nitrofurol,nitrozone,otofural,otofuran,rivafurazon,rivopon,sanfuran,semioxamazide,vabrocid,vadrocid,yatrocin" "20388-5,87793-6"
|
||||||
"NTR" 19910 "Nitroxoline" "Fluoroquinolones" "J01XX07" "Other antibacterials" "Other antibacterials" "NA" "galinok,isinok,nibiol,nicene,nitroxlina,nitroxolin,nitroxolina,nitroxolinum,noxibiol,noxin" 1 "g" "25608-1,25723-8,32382-4,54181-3,55688-6"
|
"NTR" 19910 "Nitroxoline" "Fluoroquinolones" "J01XX07,QJ01XX07" "Other antibacterials" "Other antibacterials" "NA" "galinok,isinok,nibiol,nicene,nitroxlina,nitroxolin,nitroxolina,nitroxolinum,noxibiol,noxin" 1 "g" "25608-1,25723-8,32382-4,54181-3,55688-6"
|
||||||
"NOR" 4539 "Norfloxacin" "Fluoroquinolones" "J01MA06,S01AE02" "Quinolone antibacterials" "Fluoroquinolones" "nor,norf,nx,nxn" "baccidal,barazan,chibroxin,chibroxine,chibroxol,fulgram,gonorcin,lexinor,noflo,nolicin,noracin,noraxin,norflo,norfloxacine,norfloxacino,norfloxacinum,norocin,noroxin,noroxine,norxacin,sebercim,uroxacin,utinor,zoroxin" 0.8 "g" "18956-3,366-5,367-3,368-1,369-9,3867-9,41504-2,7037-5"
|
"NOR" 4539 "Norfloxacin" "Fluoroquinolones" "J01MA06,QJ01MA06,QS01AE02,S01AE02" "Quinolone antibacterials" "Fluoroquinolones" "nor,norf,norflo,nx,nxn" "baccidal,barazan,chibroxin,chibroxine,chibroxol,fulgram,gonorcin,lexinor,nolicin,noracin,noraxin,norflo,norfloxacine,norfloxacino,norfloxacinum,norocin,noroxin,noroxine,norxacin,sebercim,uroxacin,utinor,zoroxin" 0.8 "g" "18956-3,366-5,367-3,368-1,369-9,3867-9,41504-2,7037-5"
|
||||||
"NOR-S" "Norfloxacin screening test" "Fluoroquinolones" "NA" "nor screen" "NA" "NA"
|
"NOR-S" "Norfloxacin screening test" "Fluoroquinolones" "NA" "nor screen" "NA" "NA"
|
||||||
"NME" "Norfloxacin/metronidazole" "Fluoroquinolones" "J01RA14" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"NME" "Norfloxacin/metronidazole" "Fluoroquinolones" "J01RA14,QJ01RA14" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"NTI" "Norfloxacin/tinidazole" "Fluoroquinolones" "J01RA13" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"NTI" "Norfloxacin/tinidazole" "Fluoroquinolones" "J01RA13,QJ01RA13" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"NVA" 10419027 "Norvancomycin" "Glycopeptides" "NA" "NA" "NA" "NA"
|
"NVA" 10419027 "Norvancomycin" "Glycopeptides" "NA" "NA" "NA" "NA"
|
||||||
"NOV" 54675769 "Novobiocin" "Other antibacterials" "QJ01XX95" "novo" "albadry,albamix,albamycin,biotexin,cardelmycin,cardelmycinsalt,cathocin,cathomycin,inabiocin,inamycin,novobiocina,novobiocine,novobiocinsalt,novobiocinum,robiocina,sirbiocina,spheromycin,stilbiocina,streptonivicin,streptonivicinsalt,vulcamicina,vulcamycin,vulkamycin" "17378-1,18957-1,370-7,371-5,372-3,373-1,41706-3"
|
"NOV" 54675769 "Novobiocin" "Other antibacterials" "QJ01XX95" "novo,novobi" "albadry,albamix,albamycin,biotexin,cardelmycin,cardelmycinsalt,cathocin,cathomycin,inabiocin,novobiocina,novobiocine,novobiocinsalt,novobiocinum,robiocina,sirbiocina,spheromycin,stilbiocina,streptonivicin,streptonivicinsalt,vulcamicina,vulcamycin,vulkamycin" "17378-1,18957-1,370-7,371-5,372-3,373-1,41706-3"
|
||||||
"NYS" 6433272 "Nystatin" "Antifungals/antimycotics" "A07AA02,D01AA01,G01AA01" "nyst" "biofanal,diastatin,herniocid,moronal,myconystatin,mycostatin,mykostatyna,nilstat,nistatin,nistatina,nyotran,nystan,nystatyna,nystavescent,nystex,stamycin" 1.5 "MU" "10697-1,10698-9,18958-9,35824-2,55689-4"
|
"NYS" 6433272 "Nystatin" "Antifungals/antimycotics" "A07AA02,D01AA01,G01AA01,QA07AA02,QD01AA01,QG01AA01" "nyst,nystan" "biofanal,diastatin,herniocid,moronal,myconystatin,mycostatin,mykostatyna,nilstat,nistatin,nistatina,nyotran,nystan,nystatyna,nystavescent,nystex" 1.5 "MU" "10697-1,10698-9,18958-9,35824-2,55689-4"
|
||||||
"OFX" 4583 "Ofloxacin" "Fluoroquinolones" "J01MA01,S01AE01,S02AA16" "Quinolone antibacterials" "Fluoroquinolones" "of,ofl,oflo,ofx" "exocin,exocine,flobacin,floxil,floxin,monoflocet,ocuflox,oflocet,ofloxacina,ofloxacine,ofloxacino,ofloxacinum,ofloxaxin,oxaldin,tarivid,visiren,zanocin" 0.4 "g" 0.4 "g" "18959-7,20384-4,23948-3,25264-3,374-9,375-6,376-4,377-2,3877-8,41408-6,41409-4,41410-2,42653-6,7038-3,72168-8"
|
"OFX" 4583 "Ofloxacin" "Fluoroquinolones" "J01MA01,QJ01MA01,QS01AE01,QS02AA16,S01AE01,S02AA16" "Quinolone antibacterials" "Fluoroquinolones" "of,ofl,oflo,ofloxa,ofx" "exocin,exocine,flobacin,floxil,floxin,monoflocet,oflocet,ofloxacina,ofloxacine,ofloxacino,ofloxacinum,ofloxaxin,oxaldin,tarivid,visiren,zanocin" 0.4 "g" 0.4 "g" "18959-7,20384-4,23948-3,25264-3,374-9,375-6,376-4,377-2,3877-8,41408-6,41409-4,41410-2,42653-6,7038-3,72168-8"
|
||||||
"OOR" "Ofloxacin/ornidazole" "Fluoroquinolones" "J01RA09" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"OOR" "Ofloxacin/ornidazole" "Fluoroquinolones" "J01RA09,QJ01RA09" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"OLE" 72493 "Oleandomycin" "Macrolides/lincosamides" "J01FA05" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "amimycin,landomycin,matromycin,oleandomicina,oleandomycine,oleandomycinum,romicil" 1 "g" "18960-5,378-0,379-8,380-6,381-4,55690-2"
|
"OLE" 72493 "Oleandomycin" "Macrolides/lincosamides" "J01FA05,QJ01FA05" "Macrolides, lincosamides and streptogramins" "Macrolides" "oleand" "amimycin,landomycin,matromycin,oleandomicina,oleandomycine,oleandomycinum,romicil" 1 "g" "18960-5,378-0,379-8,380-6,381-4,55690-2"
|
||||||
"OMC" 54697325 "Omadacycline" "Tetracyclines" "J01AA15" "NA" "amadacycline" 0.3 "g" 0.1 "g" "73594-4,73616-5,73639-7"
|
"OMC" 54697325 "Omadacycline" "Tetracyclines" "J01AA15,QJ01AA15" "NA" "amadacycline" 0.3 "g" 0.1 "g" "73594-4,73616-5,73639-7"
|
||||||
"OPT" 87880 "Optochin" "Other antibacterials" "NA" "NA" "aflukin,auriquin,biquinate,chinidin,chinidine,chinimetten,chinin,chinine,conchinin,conchinine,conquinine,dentojel,dihydrochinidin,dihydroquinidine,dihydroquinine,hydroconchinine,hydroconquinine,hydroquinidine,kinidin,numoquin,optochine,optoquine,pitayine,qualaquin,quinaglute,quine,quinicardine,quinidex,quinidine,quiniduran,quinindine,quinine,quinineanhydrous,quinora,quinsan,rezquin" "100055-3,73665-2"
|
"OPT" 87880 "Optochin" "Other antibacterials" "NA" "NA" "aflukin,auriquin,biquinate,chinidin,chinidine,chinimetten,chinin,chinine,conchinin,conchinine,conquinine,dentojel,dihydrochinidin,dihydroquinidine,dihydroquinine,hydroconchinine,hydroconquinine,hydroquinidine,kinidin,numoquin,optochine,optoquine,pitayine,qualaquin,quinaglute,quinicardine,quinidex,quinidine,quiniduran,quinindine,quinine,quinineanhydrous,quinora,quinsan,rezquin" "100055-3,73665-2"
|
||||||
"ORB" 60605 "Orbifloxacin" "Fluoroquinolones" "QJ01MA95" "NA" "orbax" "35825-9,35826-7,35827-5"
|
"ORB" 60605 "Orbifloxacin" "Fluoroquinolones" "QJ01MA95" "orbifl" "orbax" "35825-9,35826-7,35827-5"
|
||||||
"ORI" 16136912 "Oritavancin" "Glycopeptides" "J01XA05" "Other antibacterials" "Glycopeptide antibacterials" "orit" "NA" "41707-1,41708-9,41709-7,41736-0"
|
"ORI" 16136912 "Oritavancin" "Glycopeptides" "J01XA05,QJ01XA05" "Other antibacterials" "Glycopeptide antibacterials" "orit,oritav" "NA" "41707-1,41708-9,41709-7,41736-0"
|
||||||
"ORS" "Ormetroprim/sulfamethoxazole" "Other antibacterials" "NA" "NA" "NA" "73593-6,73615-7,73638-9"
|
"ORS" "Ormetroprim/sulfamethoxazole" "Other antibacterials" "NA" "NA" "NA" "73593-6,73615-7,73638-9"
|
||||||
"ORN" 28061 "Ornidazole" "Other antibacterials" "G01AF06,J01XD03,P01AB03" "Other antibacterials" "Imidazole derivatives" "NA" "levornidazole,madelen,ornidal,ornidazol,ornidazolum,tiberal" 1.5 "g" 1 "g" "55691-0,55692-8,55693-6,55694-4"
|
"ORN" 28061 "Ornidazole" "Other antibacterials" "G01AF06,J01XD03,P01AB03,QG01AF06,QJ01XD03,QP51AA03" "Other antibacterials" "Imidazole derivatives" "NA" "levornidazole,madelen,ornidal,ornidazolum,tiberal" 1.5 "g" 1 "g" "55691-0,55692-8,55693-6,55694-4"
|
||||||
"OTE" 77050711 "Oteseconazole" "Antifungals/antimycotics" "J02AC06" "Antimycotics for systemic use" "Triazole derivatives" "NA" "quilseconazole,vivijoa" 21 "mg" "NA"
|
"OTE" 77050711 "Oteseconazole" "Antifungals/antimycotics" "J02AC06,QJ02AC06" "Antimycotics for systemic use" "Triazole derivatives" "NA" "quilseconazole,vivijoa" 21 "mg" "NA"
|
||||||
"OXA" 6196 "Oxacillin" "Beta-lactams/penicillins" "J01CF04" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "ox,oxa,oxac,oxal,oxs" "bactocill,bristopen,cryptocillin,micropenin,ossacillina,oxabel,oxabelsalt,oxacilina,oxacillinanhydrous,oxacilline,oxacillinhydrate,oxacillinsalt,oxacillinum,oxazocillin,oxazocilline,penstapho,prostaphlin,prostaphlyn,resistopen,stapenor" 2 "g" 2 "g" "18961-3,25265-0,382-2,383-0,384-8,385-5,3882-8,7039-1"
|
"OXA" 6196 "Oxacillin" "Beta-lactams/penicillins" "J01CF04,QJ01CF04,QJ51CF04" "Beta-lactam antibacterials, penicillins" "Beta-lactamase resistant penicillins" "ox,oxa,oxac,oxacil,oxal,oxs" "bactocill,bristopen,cryptocillin,micropenin,ossacillina,oxabel,oxabelsalt,oxacilina,oxacillinanhydrous,oxacilline,oxacillinhydrate,oxacillinsalt,oxacillinum,oxazocillin,oxazocilline,penstapho,prostaphlin,prostaphlyn,resistopen,stapenor" 2 "g" 2 "g" "18961-3,25265-0,382-2,383-0,384-8,385-5,3882-8,7039-1"
|
||||||
"OXA-S" "Oxacillin screening test" "Beta-lactams/penicillins" "NA" "oxa screen" "NA" "NA"
|
"OXA-S" "Oxacillin screening test" "Beta-lactams/penicillins" "NA" "oxa screen" "NA" "NA"
|
||||||
"OXO" 4628 "Oxolinic acid" "Quinolones" "J01MB05" "Quinolone antibacterials" "Other quinolones" "NA" "aqualinic,cistopax,dioxacin,emyrenil,gramurin,inoxyl,nidantin,oksaren,orthurine,ossian,oxoboi,oxolinic,pietil,prodoxal,prodoxol,starner,tiurasin,ultibid,urinox,uritrate,urotrate,uroxol,utibid" 1 "g" "NA"
|
"OXO" 4628 "Oxolinic acid" "Quinolones" "J01MB05,QJ01MB05" "Quinolone antibacterials" "Other quinolones" "oxoaci" "aqualinic,cistopax,dioxacin,emyrenil,gramurin,inoxyl,nidantin,oksaren,orthurine,ossian,oxoboi,oxolinic,pietil,prodoxal,prodoxol,starner,tiurasin,ultibid,urinox,uritrate,urotrate,uroxol,utibid" 1 "g" "NA"
|
||||||
"OXY" 54675779 "Oxytetracycline" "Tetracyclines" "A01AB25,D06AA03,G01AA07,J01AA06,S01AA04" "Tetracyclines" "Tetracyclines" "NA" "achromycin,actisite,adamycin,artomycin,berkmycen,biostat,bristacycline,cancycline,cyclopar,dabicycline,diacycine,dumocyclin,embryostat,fanterrin,galsenomycin,geomycin,geotilin,hostacycline,hydroxytetracyclinum,lenocycline,macocyn,medamycin,mephacyclin,nitox,oksisyklin,ossitetraciclina,oxitetraciclina,oxitetracyclin,oxitetracycline,oxitetracyclinum,oxymycin,oxypam,oxyterracin,oxyterracine,oxyterracyne,oxytetracid,oxytetracyclin,oxytetracyclinum,paltet,partrex,pennox,piracaps,proteroxyna,qidtet,quadracycline,quatrex,remicyclin,retet,ricycline,riomitsin,ryomycin,solkaciclina,stevacin,stilciclina,subamycin,sumycin,supramycin,sustamycin,tarocyn,tarosin,tefilin,teline,telotrex,teravit,terrafungine,terramitsin,terramycine,tetrabakat,tetrabid,tetrablet,tetracaps,tetracompren,tetrakap,tetralution,tetramavan,tetramed,tetran,tetrosol,topicycline,triphacyclin,unicin,ursocyclin,ursocycline,vetquamycin" 1 "g" 1 "g" "17396-3,18962-1,25266-8,386-3,387-1,388-9,389-7,55699-3,87595-5"
|
"OXY" 54675779 "Oxytetracycline" "Tetracyclines" "A01AB25,D06AA03,G01AA07,J01AA06,QA01AB25,QD06AA03,QG01AA07,QG51AA01,QJ01AA06,QJ51AA06,QS01AA04,S01AA04" "Tetracyclines" "Tetracyclines" "oxytet" "achromycin,actisite,adamycin,artomycin,berkmycen,biostat,bristacycline,cancycline,cyclopar,dabicycline,diacycine,dumocyclin,embryostat,fanterrin,galsenomycin,geomycin,geotilin,hostacycline,hydroxytetracyclinum,lenocycline,macocyn,medamycin,mephacyclin,nitox,oksisyklin,ossitetraciclina,oxitetraciclina,oxitetracyclin,oxitetracycline,oxitetracyclinum,oxymycin,oxypam,oxyterracin,oxyterracine,oxyterracyne,oxytetracid,oxytetracyclin,oxytetracyclinum,paltet,partrex,pennox,piracaps,proteroxyna,qidtet,quadracycline,quatrex,remicyclin,retet,ricycline,riomitsin,ryomycin,solkaciclina,stevacin,stilciclina,subamycin,sumycin,supramycin,sustamycin,tarocyn,tarosin,tefilin,teline,telotrex,teravit,terrafungine,terramitsin,terramycine,tetrabakat,tetrabid,tetrablet,tetracaps,tetracompren,tetrakap,tetralution,tetramavan,tetramed,tetran,tetrosol,topicycline,triphacyclin,unicin,ursocyclin,ursocycline,vetquamycin" 1 "g" 1 "g" "17396-3,18962-1,25266-8,386-3,387-1,388-9,389-7,55699-3,87595-5"
|
||||||
"OZN" "Ozenoxacin" "D06AX14" "NA" "NA" "NA"
|
"OZN" "Ozenoxacin" "D06AX14,QD06AX14" "NA" "NA" "NA"
|
||||||
"PAS" 4649 "P-aminosalicylic acid" "Antimycobacterials" "NA" "NA" "NA" "NA"
|
"PAS" 4649 "P-aminosalicylic acid" "Antimycobacterials" "NA" "pasraa" "NA" "NA"
|
||||||
"PAN" 72015 "Panipenem" "Carbapenems" "J01DH55" "NA" "carbenin,panipenemum,penipanem" 2 "g" "100056-1,53823-1"
|
"PAN" 72015 "Panipenem" "Carbapenems" "NA" "NA" "carbenin,panipenemum,penipanem" "100056-1,53823-1"
|
||||||
"PAR" 165580 "Paromomycin" "Other antibacterials" "A07AA06" "NA" "aminosidin,amminosidin,crestomycin,estomycin,gabbromycin,gabromycin,humatin,humycin,hydroxymycin,monomycin,paramomycin,paromomicina,paromomycine,paromomycinum,paucimycin,paucimycinum" 3 "g" "51719-3,53824-9,55700-9,55701-7,55702-5"
|
"PAR" 165580 "Paromomycin" "Other antibacterials" "A07AA06,QA07AA06,QJ01GB92" "NA" "aminosidin,amminosidin,crestomycin,estomycin,gabbromycin,gabromycin,humatin,humycin,hydroxymycin,monomycin,paramomycin,paromomicina,paromomycine,paromomycinum,paucimycin,paucimycinum" 3 "g" "51719-3,53824-9,55700-9,55701-7,55702-5"
|
||||||
"PAZ" 65957 "Pazufloxacin" "Fluoroquinolones" "J01MA18" "Quinolone antibacterials" "Fluoroquinolones" "NA" "pazufloxacine,pazufloxacino,pazufloxacinum" 1 "g" "NA"
|
"PAZ" 65957 "Pazufloxacin" "Fluoroquinolones" "J01MA18,QJ01MA18" "Quinolone antibacterials" "Fluoroquinolones" "NA" "pazufloxacine,pazufloxacino,pazufloxacinum" 1 "g" "NA"
|
||||||
"PEF" 51081 "Pefloxacin" "Fluoroquinolones" "J01MA03" "Quinolone antibacterials" "Fluoroquinolones" "pefl" "labocton,pefbid,pefloxacine,pefloxacinium,pefloxacino,pefloxacinum,pefocin,pefran,pelox" 0.8 "g" 0.8 "g" "18963-9,35828-3,390-5,3906-5,7040-9"
|
"PEF" 51081 "Pefloxacin" "Fluoroquinolones" "J01MA03,QJ01MA03" "Quinolone antibacterials" "Fluoroquinolones" "pefl,perflo" "labocton,pefbid,pefloxacine,pefloxacinium,pefloxacino,pefloxacinum,pefocin,pefran,pelox" 0.8 "g" 0.8 "g" "18963-9,35828-3,390-5,3906-5,7040-9"
|
||||||
"PEF-S" "Pefloxacin screening test" "Fluoroquinolones" "NA" "pef screen" "NA" "NA"
|
"PEF-S" "Pefloxacin screening test" "Fluoroquinolones" "NA" "pef screen" "NA" "NA"
|
||||||
"PNM" 10250769 "Penamecillin" "Beta-lactams/penicillins" "J01CE06" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "havapen,hydroxymethyl,penamecilina,penamecillina,penamecilline,penamecillinum" 1.05 "g" "NA"
|
"PNM" 10250769 "Penamecillin" "Beta-lactams/penicillins" "J01CE06,QJ01CE06" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "havapen,hydroxymethyl,penamecilina,penamecillina,penamecilline,penamecillinum" 1.05 "g" "NA"
|
||||||
"PNO" "Penicillin/novobiocin" "Beta-lactams/penicillins" "NA" "NA" "NA" "35872-1,35873-9,35874-7"
|
"PNO" "Penicillin/novobiocin" "Beta-lactams/penicillins" "NA" "pennov" "NA" "35872-1,35873-9,35874-7"
|
||||||
"PSU" "Penicillin/sulbactam" "Beta-lactams/penicillins" "NA" "NA" "NA" "NA"
|
"PSU" "Penicillin/sulbactam" "Beta-lactams/penicillins" "NA" "NA" "NA" "NA"
|
||||||
"PNM1" 54686187 "Penimepicycline" "Tetracyclines" "J01AA10" "Tetracyclines" "Tetracyclines" "NA" "criseocil,duamine,geotricyn,hydrocycline,penetracyne,penimepiciclina,penimepicyclinum" "NA"
|
"PNM1" 54686187 "Penimepicycline" "Tetracyclines" "J01AA10,QJ01AA10" "Tetracyclines" "Tetracyclines" "NA" "criseocil,duamine,geotricyn,hydrocycline,penetracyne,penimepiciclina,penimepicyclinum" "NA"
|
||||||
"PIM" 65453 "Pentisomicin" "Aminoglycosides" "NA" "NA" "mutamicin,mutamycin,pentisomicina,pentisomicine,pentisomicinum" "NA"
|
"PIM" 65453 "Pentisomicin" "Aminoglycosides" "NA" "NA" "mutamicin,mutamycin,pentisomicina,pentisomicine,pentisomicinum" "NA"
|
||||||
"PTZ" 55250256 "Pentizidone" "Other antibacterials" "NA" "NA" "pentizidona,pentizidonum" "NA"
|
"PTZ" 55250256 "Pentizidone" "Other antibacterials" "NA" "NA" "pentizidona,pentizidonum" "NA"
|
||||||
"PEX" 16132253 "Pexiganan" "Other antibacterials" "NA" "NA" "cytolex,mangainin" "NA"
|
"PEX" 16132253 "Pexiganan" "Other antibacterials" "NA" "NA" "cytolex,mangainin" "NA"
|
||||||
"PHE" 272833 "Pheneticillin" "Beta-lactams/penicillins" "J01CE05" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "fene" "alfacillin,alticina,antibiocin,arcacil,arcasin,astracillin,bendralan,beromycin,brocsil,broxil,chemipen,cliacil,darcil,feneticilina,feneticillin,feneticillina,feneticilline,fenocin,icipen,isocillin,ispenoral,kavepenin,maxipen,optipen,oralopen,orapen,ospeneff,pedipen,penagen,pencompren,penemve,peniplus,penova,pensig,penvikal,phenethicilin,phenethicillin,phenethicillinum,pheneticilline,pheneticillinum,primcillin,priospen,roscopenin,semopen,suspen,synapen,syncillin,synerpenin,synthecillin,synthecilline,synthepen,triospen,vamosyn,veetids,vepen" 1 "g" "NA"
|
"PHE" 272833 "Pheneticillin" "Beta-lactams/penicillins" "J01CE05,QJ01CE05" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "fene" "alfacillin,alticina,antibiocin,arcacil,arcasin,astracillin,bendralan,beromycin,brocsil,broxil,chemipen,cliacil,darcil,feneticilina,feneticillin,feneticillina,feneticilline,fenocin,icipen,isocillin,ispenoral,kavepenin,maxipen,optipen,oralopen,orapen,ospeneff,pedipen,penagen,pencompren,penemve,peniplus,penova,pensig,penvikal,phenethicilin,phenethicillin,phenethicillinum,pheneticilline,pheneticillinum,primcillin,priospen,roscopenin,semopen,suspen,synapen,syncillin,synerpenin,synthecillin,synthecilline,synthepen,triospen,vamosyn,veetids,vepen" 1 "g" "NA"
|
||||||
"PHN" 6869 "Phenoxymethylpenicillin" "Beta-lactams/penicillins" "J01CE02" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "fepe,peni v,penicillin v,pnv,pv" "apopen,calcipen,fenacilin,fenospen,meropenin,oracillin,oracilline,oratren,orocillin,ospen,phenocillin,phenomycilline,phenopenicillin,rocilin,stabicillin,vebecillin" 2 "g" "NA"
|
"PHN" 6869 "Phenoxymethylpenicillin" "Beta-lactams/penicillins" "J01CE02,QJ01CE02" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "fepe,peni v,penicillin v,phepen,pnv,pv" "apopen,calcipen,fenacilin,fenospen,meropenin,oracillin,oracilline,oratren,orocillin,ospen,phenocillin,phenomycilline,phenopenicillin,rocilin,stabicillin,vebecillin" 2 "g" "NA"
|
||||||
"PMR" 5284447 "Pimaricin" "Antifungals/antimycotics" "NA" "natamycin" "delvocid,delvolan,delvopos,mycophyt,myprozine,natacyn,natafucin,natajen,natamatrix,natamax,natamicina,natamycin,natamycine,natamycinum,pimafucin,pimaracin,pimaricine,pimarizin,synogil,tennecetin" "NA"
|
"PMR" 5284447 "Pimaricin" "Antifungals/antimycotics" "NA" "natamycin" "delvocid,delvolan,delvopos,mycophyt,myprozine,natacyn,natafucin,natajen,natamatrix,natamax,natamicina,natamycin,natamycine,natamycinum,pimafucin,pimaracin,pimaricine,pimarizin,synogil,tennecetin" "NA"
|
||||||
"PPA" 4831 "Pipemidic acid" "Quinolones" "J01MB04" "Quinolone antibacterials" "Other quinolones" "pipz,pizu" "deblaston,dolcol,filtrax,karunomazin,memento,nuril,palin,pipedac,pipemid,pipemidate,pipemidic,pipemidicacid,pipram,pipurin,pyrido,tractur,uromidin,urosten,uroval" 0.8 "g" "NA"
|
"PPA" 4831 "Pipemidic acid" "Quinolones" "J01MB04,QJ01MB04" "Quinolone antibacterials" "Other quinolones" "pipaci,pipz,pizu" "deblaston,dolcol,filtrax,karunomazin,memento,nuril,palin,pipedac,pipemid,pipemidate,pipemidic,pipemidicacid,pipram,pipurin,tractur,uromidin,urosten,uroval" 0.8 "g" "NA"
|
||||||
"PIP" 43672 "Piperacillin" "Beta-lactams/penicillins" "J01CA12" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "pi,pip,pipc,pipe,pp" "penmalin,pentcillin,peperacillin,peracin,piperacilina,piperacillina,piperacilline,piperacillinhydrate,piperacillinum,pipercillin,pipracil,tazocin" 14 "g" "101490-1,101491-9,18969-6,18970-4,25268-4,3972-7,407-7,408-5,409-3,410-1,411-9,412-7,413-5,414-3,54197-9,54198-7,54199-5,55704-1,7043-3,7044-1"
|
"PIP" 43672 "Piperacillin" "Beta-lactams/penicillins" "J01CA12,QJ01CA12" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "pi,pip,pipc,pipe,pipera,pp" "penmalin,pentcillin,peperacillin,peracin,piperacilina,piperacillina,piperacilline,piperacillinhydrate,piperacillinum,pipercillin,pipracil,tazocin" 14 "g" "101490-1,101491-9,18969-6,18970-4,25268-4,3972-7,407-7,408-5,409-3,410-1,411-9,412-7,413-5,414-3,54197-9,54198-7,54199-5,55704-1,7043-3,7044-1"
|
||||||
"PIS" "Piperacillin/sulbactam" "Beta-lactams/penicillins" "NA" "NA" "NA" "54197-9,54198-7,54199-5,55704-1"
|
"PIS" "Piperacillin/sulbactam" "Beta-lactams/penicillins" "J01CR05,QJ01CR05" "NA" "NA" 14 "g" "54197-9,54198-7,54199-5,55704-1"
|
||||||
"TZP" 461573 "Piperacillin/tazobactam" "Beta-lactams/penicillins" "J01CR05" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "p/t,piptaz,piptazo,pit,pita,pt,ptc,ptz,tzp" "piptazobactam,tazobac,tazonam,zobactin,zosyn" 14 "g" "101491-9,18970-4,411-9,412-7,413-5,414-3,7044-1"
|
"TZP" 461573 "Piperacillin/tazobactam" "Beta-lactams/penicillins" "J01CR05,QJ01CR05" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "p/t,piptaz,piptazo,pit,pita,pt,ptc,ptz,tzp" "piptazobactam,tazonam,zobactin,zosyn" 14 "g" "101491-9,18970-4,411-9,412-7,413-5,414-3,7044-1"
|
||||||
"PRC" 71978 "Piridicillin" "Beta-lactams/penicillins" "NA" "NA" "NA" "NA"
|
"PRC" 71978 "Piridicillin" "Beta-lactams/penicillins" "NA" "NA" "NA" "NA"
|
||||||
"PRL" 157385 "Pirlimycin" "Macrolides/lincosamides" "QJ51FF90" "NA" "pirlimycina,pirlimycine,pirlimycinum,pirsue" "35829-1,35830-9,35831-7"
|
"PRL" 157385 "Pirlimycin" "Macrolides/lincosamides" "QJ51FF90" "pirlim" "pirlimycina,pirlimycine,pirlimycinum,pirsue" "35829-1,35830-9,35831-7"
|
||||||
"PIR" 4855 "Piromidic acid" "Quinolones" "J01MB03" "Quinolone antibacterials" "Other quinolones" "NA" "bactramyl,enterol,gastrurol,panacid,pirodal,piromidate,reelon,septural,urisept,uropir,zaomeal" 2 "g" "NA"
|
"PIR" 4855 "Piromidic acid" "Quinolones" "J01MB03,QJ01MB03" "Quinolone antibacterials" "Other quinolones" "NA" "bactramyl,enterol,gastrurol,panacid,pirodal,piromidate,reelon,septural,urisept,uropir,zaomeal" 2 "g" "NA"
|
||||||
"PVM" 33478 "Pivampicillin" "Beta-lactams/penicillins" "J01CA02" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "pivaloylampicillin,pivampicilina,pivampicilline,pivampicillinum" 1.05 "g" "18971-2,415-0,416-8,417-6,418-4"
|
"PVM" 33478 "Pivampicillin" "Beta-lactams/penicillins" "J01CA02,QJ01CA02" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "pivaloylampicillin,pivampicilina,pivampicilline,pivampicillinum" 1.05 "g" "18971-2,415-0,416-8,417-6,418-4"
|
||||||
"PME" 115163 "Pivmecillinam" "Beta-lactams/penicillins" "J01CA08" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "coactabs,melysin,pivamdinocillin,pivmecilinamo,pivmecillinamum,selexid" 0.6 "g" "NA"
|
"PME" 115163 "Pivmecillinam" "Beta-lactams/penicillins" "J01CA08,QJ01CA08" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "pivmec" "coactabs,melysin,pivamdinocillin,pivmecilinamo,pivmecillinamum,selexid" 0.6 "g" "NA"
|
||||||
"PLZ" 42613186 "Plazomicin" "Aminoglycosides" "J01GB14" "NA" "zemdri" "73592-8,73614-0,73637-1,92024-9,94719-2"
|
"PLZ" 42613186 "Plazomicin" "Aminoglycosides" "J01GB14,QJ01GB14" "NA" "zemdri" "73592-8,73614-0,73637-1,92024-9,94719-2"
|
||||||
"PLB" 49800004 "Polymyxin B" "Polymyxins" "A07AA05,J01XB02,S01AA18,S02AA11,S03AA03" "Other antibacterials" "Polymyxins" "pb,pol,polb,poly,poly b,polymixin,polymixin b" "aerosporin" 3 "MU" 0.15 "g" "17473-0,18972-0,25269-2,35832-5,419-2,420-0,421-8,422-6"
|
"PLB" 49800004 "Polymyxin B" "Polymyxins" "A07AA05,J01XB02,QA07AA05,QJ01XB02,QJ51XB02,QS01AA18,QS02AA11,QS03AA03,S01AA18,S02AA11,S03AA03" "Other antibacterials" "Polymyxins" "pb,pol,polb,poly,poly b,polyb,polymixin,polymixin b" "aerosporin" 3 "MU" 0.15 "g" "17473-0,18972-0,25269-2,35832-5,419-2,420-0,421-8,422-6"
|
||||||
"POP" "Polymyxin B/polysorbate 80" "Polymyxins" "NA" "NA" "NA" "NA"
|
"POP" "Polymyxin B/polysorbate 80" "Polymyxins" "NA" "NA" "NA" "NA"
|
||||||
"POS" 468595 "Posaconazole" "Antifungals/antimycotics" "J02AC04" "Antimycotics for systemic use" "Triazole derivatives" "posa" "noxafil,schering,spriafil" 0.3 "g" 0.3 "g" "53731-6,54186-2,54187-0,54188-8,54189-6,80545-7"
|
"POS" 468595 "Posaconazole" "Antifungals/antimycotics" "J02AC04,QJ02AC04" "Antimycotics for systemic use" "Triazole derivatives" "posa,posaco" "noxafil,schering,spriafil" 0.3 "g" 0.3 "g" "53731-6,54186-2,54187-0,54188-8,54189-6,80545-7"
|
||||||
"PRA" 9802884 "Pradofloxacin" "Fluoroquinolones" "QJ01MA97" "NA" "pudofloxacin,veraflox" "76148-6,87800-9"
|
"PRA" 9802884 "Pradofloxacin" "Fluoroquinolones" "QJ01MA97" "NA" "pudofloxacin,veraflox" "76148-6,87800-9"
|
||||||
"PRX" 71455 "Premafloxacin" "Fluoroquinolones" "NA" "NA" "premafloxacine,premafloxacino,remafloxacin" "73591-0,73613-2,73636-3"
|
"PRX" 71455 "Premafloxacin" "Fluoroquinolones" "NA" "premaf" "premafloxacine,premafloxacino" "73591-0,73613-2,73636-3"
|
||||||
"PMD" 456199 "Pretomanid" "Antimycobacterials" "J04AK08" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "NA" "NA" 0.2 "g" "93850-6"
|
"PMD" 456199 "Pretomanid" "Antimycobacterials" "J04AK08,QJ04AK08" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "NA" "NA" 0.2 "g" "93850-6"
|
||||||
"PRM" 6446787 "Primycin" "Macrolides/lincosamides" "NA" "NA" "chinopricin,debrycin,primicina,primycine" "NA"
|
"PRM" 6446787 "Primycin" "Macrolides/lincosamides" "NA" "NA" "chinopricin,debrycin,primicina,primycine" "NA"
|
||||||
"PRI" 11979535 "Pristinamycin" "Macrolides/lincosamides" "J01FG01" "Macrolides, lincosamides and streptogramins" "Streptogramins" "pris" "eskalin,micamicina,mikamycin,mikamycine,mikamycinum,ostreogricina,ostreogrycin,ostreogrycine,ostreogrycinum,pristinamicina,pristinamycine,pristinamycinum,pyostacine,stafac,stafytracine,stajac,staphylomycin,stapyocine,starfac,virgimycin,virgimycine,virginiamicina,virginiamycin,virginiamycina,virginiamycinum" 2 "g" "32383-2,35833-3,35834-1,55709-0"
|
"PRI" 11979535 "Pristinamycin" "Macrolides/lincosamides" "J01FG01,QJ01FG01" "Macrolides, lincosamides and streptogramins" "Streptogramins" "pris,pristi" "eskalin,micamicina,mikamycin,mikamycine,mikamycinum,ostreogricina,ostreogrycin,ostreogrycine,ostreogrycinum,pristinamicina,pristinamycine,pristinamycinum,pyostacine,stafac,stafytracine,stajac,staphylomycin,stapyocine,starfac,virgimycin,virgimycine,virginiamicina,virginiamycin,virginiamycina,virginiamycinum" 2 "g" "32383-2,35833-3,35834-1,55709-0"
|
||||||
"PRB" 5903 "Procaine benzylpenicillin" "Beta-lactams/penicillins" "J01CE09" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "afsillin,aquacilina,aquacillin,aquasuspen,avloprocil,cilicaine,crysticillin,depocillin,despacilina,distaquaine,duphapen,duracillin,hostacillin,hydracillin,kabipenin,ledercillin,millicillin,mylipen,neoproc,nopcaine,parencillin,premocillin,procanodia,prostabillin,retardillin,sharcillin,vetspen,vitablend,wycillin" 0.6 "g" "NA"
|
"PRB" 5903 "Procaine benzylpenicillin" "Beta-lactams/penicillins" "J01CE09,QJ01CE09,QJ51CE09" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "afsillin,aquacilina,aquacillin,aquasuspen,avloprocil,cilicaine,crysticillin,depocillin,despacilina,distaquaine,duphapen,duracillin,hostacillin,hydracillin,kabipenin,ledercillin,millicillin,mylipen,neoproc,nopcaine,parencillin,premocillin,procanodia,prostabillin,retardillin,sharcillin,vetspen,vitablend,wycillin" 0.6 "g" "NA"
|
||||||
"PRP" 92879 "Propicillin" "Beta-lactams/penicillins" "J01CE03" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "baycillin,propicilina,propicilline,propicillinum" 0.9 "g" "NA"
|
"PRP" 92879 "Propicillin" "Beta-lactams/penicillins" "J01CE03,QJ01CE03" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "NA" "baycillin,propicilina,propicilline,propicillinum" 0.9 "g" "NA"
|
||||||
"PKA" 9872451 "Propikacin" "Aminoglycosides" "NA" "NA" "propikacina,propikacine,propikacinum" "NA"
|
"PKA" 9872451 "Propikacin" "Aminoglycosides" "NA" "NA" "propikacina,propikacine,propikacinum" "NA"
|
||||||
"PTH" 666418 "Protionamide" "Antimycobacterials" "J04AD01" "Drugs for treatment of tuberculosis" "Thiocarbamide derivatives" "prot" "ektebin,peteha,prothionamide,prothionamidum,protion,protionamid,protionamida,protionamidum,protionizina,tebeform,trevintix,tuberex" 0.75 "g" "NA"
|
"PTH" 666418 "Protionamide" "Antimycobacterials" "J04AD01,QJ04AD01" "Drugs for treatment of tuberculosis" "Thiocarbamide derivatives" "prot" "ektebin,peteha,prothionamide,prothionamidum,protion,protionamid,protionamida,protionamidum,protionizina,tebeform,trevintix,tuberex" 0.75 "g" "NA"
|
||||||
"PRU" 65947 "Prulifloxacin" "Fluoroquinolones" "J01MA17" "Quinolone antibacterials" "Fluoroquinolones" "NA" "pruvel,quisnon,sword" 0.6 "g" "100058-7,76145-2"
|
"PRU" 65947 "Prulifloxacin" "Fluoroquinolones" "J01MA17,QJ01MA17" "Quinolone antibacterials" "Fluoroquinolones" "NA" "pruvel,quisnon,sword" 0.6 "g" "100058-7,76145-2"
|
||||||
"PZA" 1046 "Pyrazinamide" "Antimycobacterials" "J04AK01" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "pyra" "aldinamid,aldinamide,eprazin,farmizina,isopas,novamid,pezetamid,piraldina,pirazimida,pirazinamid,pirazinamida,pirazinamide,pirazinecarboxamide,pyrafat,pyrazide,pyrazinamdie,pyrazinamid,pyrazinamidum,pyrazineamide,pyrizinamide,rifafour,rozide,tebrazid,tisamid,unipyranamide,zinamide" 1.5 "g" "11001-5,18973-8,20461-0,23632-3,25186-8,25229-6,25270-0,423-4,424-2,425-9,426-7,42935-7,55710-8,55711-6,56026-8,92242-7"
|
"PZA" 1046 "Pyrazinamide" "Antimycobacterials" "J04AK01,QJ04AK01" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "pyra" "aldinamid,aldinamide,eprazin,farmizina,isopas,novamid,pezetamid,piraldina,pirazimida,pirazinamid,pirazinamida,pirazinamide,pirazinecarboxamide,pyrafat,pyrazide,pyrazinamdie,pyrazinamidum,pyrazineamide,pyrizinamide,rifafour,rozide,tebrazid,tisamid,unipyranamide" 1.5 "g" "11001-5,18973-8,20461-0,23632-3,25186-8,25229-6,25270-0,423-4,424-2,425-9,426-7,42935-7,55710-8,55711-6,56026-8,92242-7"
|
||||||
"QDA" 11979418 "Quinupristin/dalfopristin" "Macrolides/lincosamides" "QJ01FG02" "Macrolides, lincosamides and streptogramins" "Streptogramins" "q/d,qda,qida,quda,rp,syn" "synercid" "23640-6,23641-4,33334-4,35835-8,58712-1"
|
"QDA" 11979418 "Quinupristin/dalfopristin" "Macrolides/lincosamides" "QJ01FG02" "Macrolides, lincosamides and streptogramins" "Streptogramins" "q/d,qda,qida,quda,rp,syn,synerc" "synercid" "23640-6,23641-4,33334-4,35835-8,58712-1"
|
||||||
"RAC" 56052 "Ractopamine" "Other antibacterials" "NA" "NA" "bufenina,bufenine,buphenin,buphenine,bupheninum,luteonin,nilidrine,nylidrinum,optaflexx,paylean,prepar,ractopamina,ractopaminum,ritodrina,ritodrine,ritodrinium,tomax,utopar,yutopar" "NA"
|
"RAC" 56052 "Ractopamine" "Other antibacterials" "NA" "NA" "bufenina,bufenine,buphenin,buphenine,bupheninum,luteonin,nilidrine,nylidrinum,optaflexx,paylean,prepar,ractopamina,ractopaminum,ritodrina,ritodrine,ritodrinium,tomax,utopar,yutopar" "NA"
|
||||||
"RAM" 16132338 "Ramoplanin" "Glycopeptides" "NA" "NA" "NA" "41710-5,41711-3,41712-1,41737-8"
|
"RAM" 16132338 "Ramoplanin" "Glycopeptides" "NA" "ramopl" "NA" "41710-5,41711-3,41712-1,41737-8"
|
||||||
"RZM" 10993211 "Razupenem" "Carbapenems" "NA" "NA" "NA" "73590-2,73612-4,73635-5"
|
"RZM" 10993211 "Razupenem" "Carbapenems" "NA" "razupe" "NA" "73590-2,73612-4,73635-5"
|
||||||
"RTP" 6918462 "Retapamulin" "Other antibacterials" "D06AX13" "Antibiotics for topical use" "Other antibiotics for topical use" "ret" "altabax,altargo,rebapamulin,retapamulina" "NA"
|
"RTP" 6918462 "Retapamulin" "Other antibacterials" "D06AX13,QD06AX13" "Antibiotics for topical use" "Other antibiotics for topical use" "ret" "altabax,altargo,rebapamulin,retapamulina" "NA"
|
||||||
"RZF" "Rezafungin" "Antifungals" "NA" "NA" "NA" "NA"
|
"RZF" "Rezafungin" "Antifungals" "NA" "NA" "NA" "NA"
|
||||||
"RBC" 44631912 "Ribociclib" "Antifungals/antimycotics" "L01EF02" "Antimycotics for systemic use" "Triazole derivatives" "ribo" "kisqali" 0.45 "g" "NA"
|
"RBC" 44631912 "Ribociclib" "Antifungals/antimycotics" "L01EF02,QL01EF02" "Antimycotics for systemic use" "Triazole derivatives" "ribo" "kisqali" 0.45 "g" "NA"
|
||||||
"RST" 33042 "Ribostamycin" "Aminoglycosides" "J01GB10" "Aminoglycoside antibacterials" "Other aminoglycosides" "NA" "exaluren,hetangmycin,ribastamin,ribostamicina,ribostamycine,ribostamycinum,vistamycin,xylostatin" 1 "g" "NA"
|
"RST" 33042 "Ribostamycin" "Aminoglycosides" "J01GB10,QJ01GB10" "Aminoglycoside antibacterials" "Other aminoglycosides" "NA" "exaluren,hetangmycin,ribastamin,ribostamicina,ribostamycine,ribostamycinum,vistamycin,xylostatin" 1 "g" "NA"
|
||||||
"RID1" 16659285 "Ridinilazole" "Other antibacterials" "NA" "NA" "ridinilazol" "NA"
|
"RID1" 16659285 "Ridinilazole" "Other antibacterials" "NA" "NA" "ridinilazol" "NA"
|
||||||
"RIB" 135398743 "Rifabutin" "Antimycobacterials" "J04AB04" "Drugs for treatment of tuberculosis" "Antibiotics" "rifb" "alfacid,ansamicin,ansamycins,ansatipin,ansatipine,assatipin,mycobutin,rifabutinum" 0.15 "g" "100699-8,16100-0,16386-5,16387-3,19149-4,20386-9,23630-7,24032-5,25199-1,25200-7,25201-5,42655-1,42656-9,54183-9,96113-6"
|
"RIB" 135398743 "Rifabutin" "Antimycobacterials" "J04AB04,QJ04AB04" "Drugs for treatment of tuberculosis" "Antibiotics" "ansamy,rifb" "alfacid,ansamicin,ansamycins,ansatipin,ansatipine,assatipin,mycobutin,rifabutinum" 0.15 "g" "100699-8,16100-0,16386-5,16387-3,19149-4,20386-9,23630-7,24032-5,25199-1,25200-7,25201-5,42655-1,42656-9,54183-9,96113-6"
|
||||||
"RIF" 135398735 "Rifampicin" "Antimycobacterials" "J04AB02" "Drugs for treatment of tuberculosis" "Antibiotics" "rifa" "abrifam,archidyn,arficin,arzide,benemicin,doloresum,eremfat,famcin,fenampicin,rifadin,rifadine,rifagen,rifaldazin,rifaldazine,rifaldin,rifam,rifamor,rifampicina,rifampicine,rifampicinum,rifampin,rifamsolin,rifapiam,rifaprodin,rifcin,rifinah,rifobac,rifoldin,rifoldine,riforal,rimactan,rimactane,rimactazid,rimactizid,rimazid,sinerdol,tubocin" 0.6 "g" 0.6 "g" "NA"
|
"RIF" 135398735 "Rifampicin" "Antimycobacterials" "J04AB02,QJ04AB02,QJ54AB02" "Drugs for treatment of tuberculosis" "Antibiotics" "rifa,rifamp" "abrifam,archidyn,arficin,arzide,benemicin,doloresum,eremfat,famcin,fenampicin,rifadin,rifadine,rifagen,rifaldazin,rifaldazine,rifaldin,rifam,rifamor,rifampicina,rifampicine,rifampicinum,rifampin,rifamsolin,rifapiam,rifaprodin,rifcin,rifinah,rifobac,rifoldin,rifoldine,riforal,rimactan,rimactane,rimactazid,rimactizid,rimazid,sinerdol,tubocin" 0.6 "g" 0.6 "g" "NA"
|
||||||
"REI" 135483893 "Rifampicin/ethambutol/isoniazid" "Antimycobacterials" "J04AM07" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "isonarif,rifamate,rifamazid" "NA"
|
"REI" 135483893 "Rifampicin/ethambutol/isoniazid" "Antimycobacterials" "J04AM07,QJ04AM07" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "isonarif,rifamate,rifamazid" "NA"
|
||||||
"RFI" "Rifampicin/isoniazid" "Antimycobacterials" "J04AM02" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
"RFI" "Rifampicin/isoniazid" "Antimycobacterials" "J04AM02,QJ04AM02" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
||||||
"RPEI" "Rifampicin/pyrazinamide/ethambutol/isoniazid" "Antimycobacterials" "J04AM06" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
"RPEI" "Rifampicin/pyrazinamide/ethambutol/isoniazid" "Antimycobacterials" "J04AM06,QJ04AM06" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
||||||
"RPI" "Rifampicin/pyrazinamide/isoniazid" "Antimycobacterials" "J04AM05" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
"RPI" "Rifampicin/pyrazinamide/isoniazid" "Antimycobacterials" "J04AM05,QJ04AM05" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
||||||
"RFM" 6324616 "Rifamycin" "Antimycobacterials" "A07AA13,D06AX15,J04AB03,S01AA16,S02AA12" "Drugs for treatment of tuberculosis" "Antibiotics" "NA" "aemcolo,nacimycin,nancimycin,otofa,rifamastene,rifamicina,rifamycine,rifamycinum,rifocin,rifocyn,tuborin" 0.8 "g" 0.6 "g" "NA"
|
"RFM" 6324616 "Rifamycin" "Antimycobacterials" "A07AA13,D06AX15,J04AB03,QA07AA13,QD06AX15,QJ04AB03,QJ54AB03,QS01AA16,QS02AA12,S01AA16,S02AA12" "Drugs for treatment of tuberculosis" "Antibiotics" "rifmyc" "aemcolo,nacimycin,nancimycin,otofa,rifamastene,rifamicina,rifamycine,rifamycinum,rifocin,rifocyn,tuborin" 0.8 "g" 0.6 "g" "NA"
|
||||||
"RFP" 135403821 "Rifapentine" "Antimycobacterials" "J04AB05" "Drugs for treatment of tuberculosis" "Antibiotics" "rifp,rpt" "prifitin,priftin,rifapentin,rifapentina,rifapentinum" 0.11 "g" "100059-5,76627-9"
|
"RFP" 135403821 "Rifapentine" "Antimycobacterials" "J04AB05,QJ04AB05" "Drugs for treatment of tuberculosis" "Antibiotics" "rifp,rpt" "prifitin,priftin,rifapentin,rifapentina,rifapentinum" 0.11 "g" "100059-5,76627-9"
|
||||||
"RFX" 6436173 "Rifaximin" "Other antibacterials" "A07AA11,D06AX11" "Intestinal antiinfectives" "Antibiotics" "NA" "fatroximin,flonorm,lormyx,lumenax,normix,rifacol,rifamixin,rifaxidin,rifaximina,rifaximine,rifaximinum,rifaxin,ritacol,spiraxin,xifaxan,xifaxsan" 0.6 "g" "73589-4,73611-6,73634-8"
|
"RFX" 6436173 "Rifaximin" "Other antibacterials" "A07AA11,D06AX11,QA07AA11,QD06AX11,QG51AA06,QJ51XX01" "Intestinal antiinfectives" "Antibiotics" "NA" "fatroximin,flonorm,lormyx,lumenax,normix,rifacol,rifamixin,rifaxidin,rifaximina,rifaximine,rifaximinum,rifaxin,ritacol,spiraxin,xifaxan,xifaxsan" 0.6 "g" "73589-4,73611-6,73634-8"
|
||||||
"RIT" 65633 "Ritipenem" "Carbapenems" "NA" "NA" "ritipenemsalt" "NA"
|
"RIT" 65633 "Ritipenem" "Carbapenems" "NA" "NA" "ritipenemsalt" "NA"
|
||||||
"RIA" 163692 "Ritipenem acoxil" "Carbapenems" "NA" "NA" "penemac" "NA"
|
"RIA" 163692 "Ritipenem acoxil" "Carbapenems" "NA" "NA" "penemac" "NA"
|
||||||
"ROK" 5282211 "Rokitamycin" "Macrolides/lincosamides" "J01FA12" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "propionylleucomycin,ricamycin,rokicid,rokital,rokitamicina,rokitamycine,rokitamycinum" 0.8 "g" "NA"
|
"ROK" 5282211 "Rokitamycin" "Macrolides/lincosamides" "J01FA12,QJ01FA12" "Macrolides, lincosamides and streptogramins" "Macrolides" "rokita" "propionylleucomycin,ricamycin,rokicid,rokital,rokitamicina,rokitamycine,rokitamycinum" 0.8 "g" "NA"
|
||||||
"RLT" 54682938 "Rolitetracycline" "Tetracyclines" "J01AA09" "Tetracyclines" "Tetracyclines" "NA" "bristacin,colbiocin,kinteto,reverin,revrin,rolitetraciclina,rolitetracyclinum,solvocillin,superciclin,synotodecin,synterin,syntetrex,syntetrin,tetraverin,transcycline,velacicline,velacycline" 0.35 "g" "18976-1,435-8,436-6,437-4,438-2"
|
"RLT" 54682938 "Rolitetracycline" "Tetracyclines" "J01AA09,QJ01AA09" "Tetracyclines" "Tetracyclines" "NA" "bristacin,colbiocin,kinteto,reverin,revrin,rolitetraciclina,rolitetracyclinum,solvocillin,superciclin,synotodecin,synterin,syntetrex,syntetrin,tetraverin,transcycline,velacicline,velacycline" 0.35 "g" "18976-1,435-8,436-6,437-4,438-2"
|
||||||
"ROS" 287180 "Rosoxacin" "Quinolones" "J01MB01" "Quinolone antibacterials" "Other quinolones" "NA" "acrosoxacin,eracine,eradacil,eradacin,eradicin,rosoxacine,rosoxacino,rosoxacinum,roxadyl,winoxacin,winuron" 0.3 "g" "18977-9,439-0,440-8,441-6,442-4,55713-2"
|
"ROS" 287180 "Rosoxacin" "Quinolones" "J01MB01,QJ01MB01" "Quinolone antibacterials" "Other quinolones" "NA" "acrosoxacin,eracine,eradacil,eradacin,eradicin,rosoxacine,rosoxacino,rosoxacinum,roxadyl,winoxacin,winuron" 0.3 "g" "18977-9,439-0,440-8,441-6,442-4,55713-2"
|
||||||
"RXT" "Roxithromycin" "Macrolides/lincosamides" "J01FA06" "Macrolides, lincosamides and streptogramins" "Macrolides" "roxi" "NA" 0.3 "g" "18978-7,443-2,444-0,445-7,446-5,7046-6"
|
"RXT" "Roxithromycin" "Macrolides/lincosamides" "J01FA06,QJ01FA06" "Macrolides, lincosamides and streptogramins" "Macrolides" "roxi,roxith" "NA" 0.3 "g" "18978-7,443-2,444-0,445-7,446-5,7046-6"
|
||||||
"RFL" 58258 "Rufloxacin" "Fluoroquinolones" "J01MA10" "Quinolone antibacterials" "Fluoroquinolones" "NA" "monos,rufloxacine,rufloxacino,rufloxacinum,tebraxin,uroflox" 0.2 "g" "NA"
|
"RFL" 58258 "Rufloxacin" "Fluoroquinolones" "J01MA10,QJ01MA10" "Quinolone antibacterials" "Fluoroquinolones" "NA" "monos,rufloxacine,rufloxacino,rufloxacinum,tebraxin,uroflox" 0.2 "g" "NA"
|
||||||
"SAL" 3085092 "Salinomycin" "Other antibacterials" "QP51BB01" "NA" "coxistac,procoxacin,salinomicina,salinomycine,salinomycinum" "35836-6,35837-4,35838-2,87593-0"
|
"SAL" 3085092 "Salinomycin" "Other antibacterials" "QP51BB01" "salino" "coxistac,procoxacin,salinomicina,salinomycine,salinomycinum" "35836-6,35837-4,35838-2,87593-0"
|
||||||
"SAR" 56208 "Sarafloxacin" "Fluoroquinolones" "QJ01MA98" "NA" "difloxacino,difloxacinum,difloxcine,sarafin,saraflox,sarafloxacine,sarafloxacino,sarafloxacinum" "73588-6,73610-8,73633-0"
|
"SAR" 56208 "Sarafloxacin" "Fluoroquinolones" "QJ01MA98" "sarafl" "difloxacino,difloxacinum,difloxcine,sarafin,saraflox,sarafloxacine,sarafloxacino,sarafloxacinum" "73588-6,73610-8,73633-0"
|
||||||
"SRC" 54681908 "Sarecycline" "Tetracyclines" "J01AA14" "Tetracyclines" "Tetracyclines" "NA" "sareciclina,seysara" 0.1 "g" "NA"
|
"SRC" 54681908 "Sarecycline" "Tetracyclines" "J01AA14,QJ01AA14" "Tetracyclines" "Tetracyclines" "NA" "sareciclina,seysara" 0.1 "g" "NA"
|
||||||
"SRX" 9933415 "Sarmoxicillin" "Beta-lactams/penicillins" "NA" "NA" "sarmoxillina,sarmoxilline,sarmoxillinum" "NA"
|
"SRX" 9933415 "Sarmoxicillin" "Beta-lactams/penicillins" "NA" "NA" "sarmoxillina,sarmoxilline,sarmoxillinum" "NA"
|
||||||
"SEC" 71815 "Secnidazole" "Other antibacterials" "P01AB07" "NA" "flagentyl,secnidal,secnidazol,secnidazolum,secnil,sindose,solosec" 2 "g" "NA"
|
"SEC" 71815 "Secnidazole" "Other antibacterials" "P01AB07" "NA" "flagentyl,secnidal,secnidazolum,secnil,sindose,solosec" 2 "g" "NA"
|
||||||
"SMF" "Simvastatin/fenofibrate" "Antimycobacterials" "C10BA04" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "simv" "NA" "NA"
|
"SMF" "Simvastatin/fenofibrate" "Antimycobacterials" "C10BA04,QC10BA04" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "simv" "NA" "NA"
|
||||||
"SIS" 36119 "Sisomicin" "Aminoglycosides" "J01GB08" "Aminoglycoside antibacterials" "Other aminoglycosides" "siso" "rickamicin,salvamina,sisomicina,sisomicine,sisomicinum,sisomin,sisomycin,sissomicin,sizomycin" 0.24 "g" "18979-5,447-3,448-1,449-9,450-7,55714-0"
|
"SIS" 36119 "Sisomicin" "Aminoglycosides" "J01GB08,QJ01GB08" "Aminoglycoside antibacterials" "Other aminoglycosides" "siso,sisomy" "rickamicin,salvamina,sisomicina,sisomicine,sisomicinum,sisomin,sisomycin,sissomicin,sizomycin" 0.24 "g" "18979-5,447-3,448-1,449-9,450-7,55714-0"
|
||||||
"SIT" 461399 "Sitafloxacin" "Fluoroquinolones" "J01MA21" "NA" "gracevit" 0.1 "g" "NA"
|
"SIT" 461399 "Sitafloxacin" "Fluoroquinolones" "J01MA21,QJ01MA21" "sitafl" "gracevit" 0.1 "g" "NA"
|
||||||
"SDA" 2724368 "Sodium aminosalicylate" "Antimycobacterials" "J04AA02" "Drugs for treatment of tuberculosis" "Aminosalicylic acid and derivatives" "NA" "bactylan,lepasen,monopas,tubersan" 14 "g" 14 "g" "NA"
|
"SDA" 2724368 "Sodium aminosalicylate" "Antimycobacterials" "J04AA02,QJ04AA02" "Drugs for treatment of tuberculosis" "Aminosalicylic acid and derivatives" "NA" "bactylan,lepasen,monopas,tubersan" 14 "g" 14 "g" "NA"
|
||||||
"SOL" 25242512 "Solithromycin" "Macrolides/lincosamides" "J01FA16" "NA" "solithera" "73587-8,73609-0,73632-2"
|
"SOL" 25242512 "Solithromycin" "Macrolides/lincosamides" "J01FA16,QJ01FA16" "NA" "solithera" "73587-8,73609-0,73632-2"
|
||||||
"SPX" 60464 "Sparfloxacin" "Fluoroquinolones" "J01MA09" "Quinolone antibacterials" "Fluoroquinolones" "spa,spar" "esparfloxacino,parox,spara,sparfloxacine,sparfloxacinum,zagam" 0.2 "g" "20397-6,23610-9,23628-1,35839-0,7047-4"
|
"SPX" 60464 "Sparfloxacin" "Fluoroquinolones" "J01MA09,QJ01MA09" "Quinolone antibacterials" "Fluoroquinolones" "spa,spar,sparfl" "esparfloxacino,parox,spara,sparfloxacine,sparfloxacinum,zagam" 0.2 "g" "20397-6,23610-9,23628-1,35839-0,7047-4"
|
||||||
"SPT" 15541 "Spectinomycin" "Other antibacterials" "J01XX04" "Other antibacterials" "Other antibacterials" "sc,spe,spec,spt" "actinospectacina,adspec,espectinomicina,prospec,spectam,spectinomicina,spectinomycine,spectinomycinhydrate,spectinomycinum,spectogard,stanilo,togamycin,trobicin" 3 "g" "18980-3,35840-8,451-5,452-3,453-1,454-9"
|
"SPT" 15541 "Spectinomycin" "Other antibacterials" "J01XX04,QJ01XX04" "Other antibacterials" "Other antibacterials" "sc,spe,spec,spect,spt" "actinospectacina,adspec,espectinomicina,prospec,spectam,spectinomicina,spectinomycine,spectinomycinhydrate,spectinomycinum,spectogard,stanilo,togamycin,trobicin" 3 "g" "18980-3,35840-8,451-5,452-3,453-1,454-9"
|
||||||
"SPI" 6419898 "Spiramycin" "Macrolides/lincosamides" "J01FA02" "Macrolides, lincosamides and streptogramins" "Macrolides" "spir" "formacidine" 3 "g" "18981-1,455-6,456-4,457-2,458-0,55715-7"
|
"SPI" 6419898 "Spiramycin" "Macrolides/lincosamides" "J01FA02,QJ01FA02,QJ51FA02" "Macrolides, lincosamides and streptogramins" "Macrolides" "sipram,spir,spiram" "formacidine" 3 "g" "18981-1,455-6,456-4,457-2,458-0,55715-7"
|
||||||
"SPM" "Spiramycin/metronidazole" "Other antibacterials" "J01RA04" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"SPM" "Spiramycin/metronidazole" "Other antibacterials" "J01RA04,QJ01RA04" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"STR" "Streptoduocin" "Aminoglycosides" "J01GA02" "Aminoglycoside antibacterials" "Streptomycins" "NA" "NA" 1 "g" "NA"
|
"STR" "Streptoduocin" "Aminoglycosides" "J01GA02,QJ01GA02" "Aminoglycoside antibacterials" "Streptomycins" "NA" "NA" 1 "g" "NA"
|
||||||
"STR1" 19649 "Streptomycin" "Aminoglycosides" "A07AA04,J01GA01" "Aminoglycoside antibacterials" "Streptomycins" "s,stm,str,stre" "agrept,agrimycin,chemform,estreptomicina,gerox,neodiestreptopab,strepcen,streptomicina,streptomycine,streptomycinum,streptomyzin" 1 "g" "18982-9,18983-7,20462-8,23626-5,25185-0,25205-6,25206-4,35841-6,4039-4,42658-5,42659-3,459-8,460-6,461-4,462-2,46719-1,48177-0,6933-6,7048-2,7049-0,96114-4"
|
"STR1" 19649 "Streptomycin" "Aminoglycosides" "A07AA04,J01GA01,QA07AA04,QJ01GA01" "Aminoglycoside antibacterials" "Streptomycins" "s,st1000,st2000,stm,str,stre,strept" "agrept,agrimycin,chemform,estreptomicina,gerox,neodiestreptopab,strepcen,streptomicina,streptomycine,streptomycinum,streptomyzin" 1 "g" "18982-9,18983-7,20462-8,23626-5,25185-0,25205-6,25206-4,35841-6,4039-4,42658-5,42659-3,459-8,460-6,461-4,462-2,46719-1,48177-0,6933-6,7048-2,7049-0,96114-4"
|
||||||
"STH" "Streptomycin-high" "Aminoglycosides" "NA" "sthi,sthl,strepto high,streptomycin high" "NA" "18983-7,35841-6,6933-6,7049-0"
|
"STH" "Streptomycin-high" "Aminoglycosides" "NA" "sthi,sthl,strepto high,streptomycin high" "NA" "18983-7,35841-6,6933-6,7049-0"
|
||||||
"STI" "Streptomycin/isoniazid" "Antimycobacterials" "J04AM01" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
"STI" "Streptomycin/isoniazid" "Antimycobacterials" "J04AM01,QJ04AM01" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
||||||
"SUL" 130313 "Sulbactam" "Beta-lactams/penicillins" "J01CG01" "Beta-lactam antibacterials, penicillins" "Beta-lactamase inhibitors" "NA" "betamaze,sulbactamum" 1 "g" "41716-2,41717-0,41718-8,41739-4"
|
"SUL" 130313 "Sulbactam" "Beta-lactams/penicillins" "J01CG01,QJ01CG01" "Beta-lactam antibacterials, penicillins" "Beta-lactamase inhibitors" "sulbac" "betamaze,sulbactamum" 1 "g" "41716-2,41717-0,41718-8,41739-4"
|
||||||
"SBC" 20055036 "Sulbenicillin" "Beta-lactams/penicillins" "J01CA16" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "kedacillin,kedacillina,sulbenicilina,sulbenicilline,sulbenicillinum,sulpelin" 15 "g" "NA"
|
"SBC" 20055036 "Sulbenicillin" "Beta-lactams/penicillins" "J01CA16,QJ01CA16" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "sulben" "kedacillin,kedacillina,sulbenicilina,sulbenicilline,sulbenicillinum,sulpelin" 15 "g" "NA"
|
||||||
"SUC" 5318 "Sulconazole" "Antifungals/antimycotics" "D01AC09" "NA" "sulconazol,sulconazolum" "NA"
|
"SUC" 5318 "Sulconazole" "Antifungals/antimycotics" "D01AC09,QD01AC09" "NA" "sulconazol,sulconazolum" "NA"
|
||||||
"SUP" 6634 "Sulfachlorpyridazine" "Other antibacterials" "QJ01EQ12" "NA" "cluricol,cosulid,cosumix,durasulf,nefrosul,nsulfanilamide,prinzone,solfaclorpiridazina,sonilyn,sulfacloropiridazina,sulfaclorpiridazina,vetisulid" "NA"
|
"SUP" 6634 "Sulfachlorpyridazine" "Other antibacterials" "QJ01EQ12" "sulchl" "cluricol,cosulid,cosumix,durasulf,nefrosul,nsulfanilamide,prinzone,solfaclorpiridazina,sonilyn,sulfacloropiridazina,sulfaclorpiridazina,vetisulid" "NA"
|
||||||
"SDI" 5215 "Sulfadiazine" "Trimethoprims" "J01EC02" "Sulfonamides and trimethoprim" "Intermediate-acting sulfonamides" "NA" "adiazin,adiazine,codiazine,cremodiazine,cremotres,debenal,deltazina,dermazin,dermazine,diazin,diazolone,diazovit,eskadiazine,flamazine,geben,liquadiazine,microsulfon,neazine,neotrizine,palatrize,piridisir,pirimal,pyrimal,quadetts,quadramoid,sanodiazine,silbertone,sildaflo,silvadene,silvazine,silver,silveramide,sliverex,solfadiazina,spofadrizine,sterazine,sulfacombin,sulfadiazene,sulfadiazin,sulfadiazina,sulfadiazinum,sulfapirimidin,sulfapyrimidin,sulfapyrimidine,sulfatryl,sulfazine,sulfolex,sulfonsol,sulfose,sulphadiazine,terfonyl,theradiazine,thermazene,trifonamide,trisem,truozine" 0.6 "g" "18984-5,27216-1,463-0,464-8,465-5,466-3,59742-7,6907-0,7050-8"
|
"SDI" 5215 "Sulfadiazine" "Trimethoprims" "J01EC02,QJ01EQ10" "Sulfonamides and trimethoprim" "Intermediate-acting sulfonamides" "suldia" "codiazine,cremodiazine,cremotres,debenal,deltazina,dermazin,dermazine,diazolone,diazovit,eskadiazine,flamazine,geben,liquadiazine,microsulfon,neazine,neotrizine,palatrize,piridisir,pirimal,pyrimal,quadetts,quadramoid,sanodiazine,silbertone,sildaflo,silvadene,silvazine,silver,silveramide,sliverex,solfadiazina,spofadrizine,sterazine,sulfacombin,sulfadiazene,sulfadiazin,sulfadiazina,sulfadiazinum,sulfapirimidin,sulfapyrimidin,sulfapyrimidine,sulfatryl,sulfazine,sulfolex,sulfonsol,sulfose,sulphadiazine,terfonyl,theradiazine,thermazene,trifonamide,trisem,truozine" 0.6 "g" "18984-5,27216-1,463-0,464-8,465-5,466-3,59742-7,6907-0,7050-8"
|
||||||
"SLT" 122284 "Sulfadiazine/tetroxoprim" "Trimethoprims" "J01EE06" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "berlocombin,cotetroxazine,potesept,trimerazine" "NA"
|
"SLT" 122284 "Sulfadiazine/tetroxoprim" "Trimethoprims" "J01EE06" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "berlocombin,cotetroxazine,potesept,trimerazine" "NA"
|
||||||
"SLT1" 64932 "Sulfadiazine/trimethoprim" "Trimethoprims" "J01EE02" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "antastmon,astra,ditrim,ditrivet,sultrisan,triglobe,trimin,tucoprim,uniprim" "NA"
|
"SLT1" 64932 "Sulfadiazine/trimethoprim" "Trimethoprims" "J01EE02,QJ01EW10,QJ51RE01" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "antastmon,astra,ditrim,ditrivet,sultrisan,triglobe,trimin,tucoprim,uniprim" "NA"
|
||||||
"SUD" 5323 "Sulfadimethoxine" "Trimethoprims" "J01ED01" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "abcid,agribon,albon,arnosulfan,bactotril,bactrovet,deposul,diasulfa,diasulfyl,dimetazina,dinosol,dorisul,fuxal,lasibon,madribon,madrigid,madriqid,madroxin,madroxine,maxulvet,mecozine,memcozine,metoxidon,neostrepal,neostreptal,nsulfanilamidesalt,omnibon,persulfen,radonin,redifal,rofenaid,roscosulf,scandisil,solfadimetossina,sudine,suldixine,sulfabon,sulfadimethoxin,sulfadimethoxinesalt,sulfadimethoxinum,sulfadimetossina,sulfadimetoxin,sulfadimetoxina,sulfadimetoxine,sulfadimoxine,sulfastop,sulfoplan,sulforal,sulphadimethoxine,sulxin,sumbio,symbio,theracanzan,ultrasulfon" 0.5 "g" "87799-3,87803-3"
|
"SUD" 5323 "Sulfadimethoxine" "Trimethoprims" "J01ED01,QJ01EQ09,QP51BA01" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "sdimet" "abcid,agribon,albon,arnosulfan,bactotril,bactrovet,deposul,diasulfa,diasulfyl,dimetazina,dinosol,dorisul,fuxal,lasibon,madribon,madrigid,madriqid,madroxin,madroxine,maxulvet,mecozine,memcozine,metoxidon,neostrepal,neostreptal,nsulfanilamidesalt,omnibon,persulfen,radonin,redifal,rofenaid,roscosulf,scandisil,solfadimetossina,sudine,suldixine,sulfabon,sulfadimethoxin,sulfadimethoxinesalt,sulfadimethoxinum,sulfadimetossina,sulfadimetoxin,sulfadimetoxina,sulfadimetoxine,sulfadimoxine,sulfastop,sulfoplan,sulforal,sulphadimethoxine,sulxin,sumbio,symbio,theracanzan,ultrasulfon" 0.5 "g" "87799-3,87803-3"
|
||||||
"SDM" 5327 "Sulfadimidine" "Trimethoprims" "J01EB03" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "azolmetazin,bovibol,calfspan,cremomethazine,diazil,diazilsulfadine,diazyl,dimezathine,intradine,kelametazine,mermeth,neasina,neazina,panazin,pirmazin,primazin,solfadimidina,spanbolet,sulfadimerazine,sulfadimesin,sulfadimesine,sulfadimethyldiazine,sulfadimezin,sulfadimezine,sulfadimezinum,sulfadimidin,sulfadimidina,sulfadimidinum,sulfadimidinun,sulfadine,sulfametazina,sulfametazyny,sulfamethiazine,sulfamezathine,sulfamidine,sulfodimesin,sulfodimezine,sulmet,sulphadimidine,sulphamethasine,sulphamethazine,sulphamezathine,sulphamidine,sulphodimezine,superseptil,superseptyl,vertolan,vesadin" 4 "g" "NA"
|
"SDM" 5327 "Sulfadimidine" "Trimethoprims" "J01EB03,QJ01EQ03,QP51AG01" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "suldim" "azolmetazin,bovibol,calfspan,cremomethazine,diazil,diazilsulfadine,diazyl,dimezathine,intradine,kelametazine,mermeth,neasina,neazina,panazin,pirmazin,primazin,solfadimidina,spanbolet,sulfadimerazine,sulfadimesin,sulfadimesine,sulfadimethyldiazine,sulfadimezin,sulfadimezine,sulfadimezinum,sulfadimidin,sulfadimidina,sulfadimidinum,sulfadimidinun,sulfadine,sulfametazina,sulfametazyny,sulfamethiazine,sulfamezathine,sulfamidine,sulfodimesin,sulfodimezine,sulmet,sulphadimidine,sulphamethasine,sulphamethazine,sulphamezathine,sulphamidine,sulphodimezine,superseptil,superseptyl,vertolan,vesadin" 4 "g" "NA"
|
||||||
"SLT2" "Sulfadimidine/trimethoprim" "Trimethoprims" "J01EE05" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "NA" "NA"
|
"SLT2" "Sulfadimidine/trimethoprim" "Trimethoprims" "J01EE05,QJ01EW03" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "NA" "NA"
|
||||||
"SLF" 5344 "Sulfafurazole" "Trimethoprims" "J01EB05,S01AB02" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "sfsz" "accuzole,alphazole,amidoxal,astrazolo,azosulfizin,bactesulf,barazae,chemouag,cosoxazole,dorsulfan,entusil,entusul,ganda,gantrisin,gantrisine,gantrisona,gantrizin,gantrosan,isoxamin,neazolin,neoxazol,novazolo,novosaxazole,nsulphanilamide,pancid,pediazole,renosulfan,resoxol,roxosul,roxoxol,saxosozine,sodizole,solfafurazolo,sosol,soxamide,soxazole,soxisol,soxitabs,soxomide,stansin,sulbio,sulfafurazol,sulfafurazolum,sulfagan,sulfagen,sulfaisoxazole,sulfalar,sulfapolar,sulfasol,sulfasoxazole,sulfasoxizole,sulfazin,sulfisin,sulfisonazole,sulfisoxasole,sulfisoxazol,sulfisoxazolum,sulfizin,sulfizol,sulfizole,sulfofurazole,sulfoxol,suloxsol,sulphafuraz,sulphafurazol,sulphafurazole,sulphafurazolum,sulphaisoxazole,sulphisoxazol,sulphisoxazole,sulphofurazole,sulsoxin,thiasin,unisulf,urisoxin,uritrisin,urogan" 4 "g" 4 "g" "NA"
|
"SLF" 5344 "Sulfafurazole" "Trimethoprims" "J01EB05,QJ01EQ05,QS01AB02,S01AB02" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "sfsz" "accuzole,alphazole,amidoxal,astrazolo,azosulfizin,bactesulf,barazae,chemouag,cosoxazole,dorsulfan,entusil,entusul,ganda,gantrisin,gantrisine,gantrisona,gantrizin,gantrosan,isoxamin,neazolin,neoxazol,novazolo,novosaxazole,nsulphanilamide,pancid,pediazole,renosulfan,resoxol,roxosul,roxoxol,saxosozine,sodizole,solfafurazolo,sosol,soxamide,soxisol,soxitabs,soxomide,stansin,sulbio,sulfafurazol,sulfafurazolum,sulfagan,sulfagen,sulfaisoxazole,sulfalar,sulfapolar,sulfasol,sulfasoxazole,sulfasoxizole,sulfazin,sulfisin,sulfisonazole,sulfisoxasole,sulfisoxazol,sulfisoxazolum,sulfizin,sulfizol,sulfizole,sulfofurazole,sulfoxol,suloxsol,sulphafuraz,sulphafurazol,sulphafurazole,sulphafurazolum,sulphaisoxazole,sulphisoxazol,sulphisoxazole,sulphofurazole,sulsoxin,thiasin,unisulf,urisoxin,uritrisin,urogan" 4 "g" 4 "g" "NA"
|
||||||
"SLF1" 5343 "Sulfaisodimidine" "Trimethoprims" "J01EB01" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "aristamid,aristamide,aristogyn,domain,domian,elcosin,elcosine,elkosil,elkosin,elkosine,erycon,isosulf,mefenal,solfisomidina,sulfadimetine,sulfaisodimerazine,sulfaisodimidinum,sulfaisomidine,sulfasomidine,sulfisomidin,sulfisomidina,sulfisomidine,sulfisomidinum,sulphasomidine" 4 "g" 4 "g" "NA"
|
"SLF1" 5343 "Sulfaisodimidine" "Trimethoprims" "J01EB01" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "aristamid,aristamide,aristogyn,domain,domian,elcosin,elcosine,elkosil,elkosin,elkosine,erycon,isosulf,mefenal,solfisomidina,sulfadimetine,sulfaisodimerazine,sulfaisodimidinum,sulfaisomidine,sulfasomidine,sulfisomidin,sulfisomidina,sulfisomidine,sulfisomidinum,sulphasomidine" 4 "g" 4 "g" "NA"
|
||||||
"SLF2" 9047 "Sulfalene" "Trimethoprims" "J01ED02" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "dalysep,farmitalia,kelfizin,kelfizina,kelfizine,policydal,solfametopirazina,sulfalen,sulfaleno,sulfalenum,sulfamethopyrazine,sulfamethoxypyrazine,sulfametopyrazine,sulfametoxypyridazin,sulphalene,sulphametopyrazine,vetkelfizina" 0.1 "g" "NA"
|
"SLF2" 9047 "Sulfalene" "Trimethoprims" "J01ED02,QJ01EQ19" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "dalysep,farmitalia,kelfizin,kelfizina,kelfizine,policydal,solfametopirazina,sulfalen,sulfaleno,sulfalenum,sulfamethopyrazine,sulfamethoxypyrazine,sulfametopyrazine,sulfametoxypyridazin,sulphalene,sulphametopyrazine,vetkelfizina" 0.1 "g" "NA"
|
||||||
"SZO" 187764 "Sulfamazone" "Trimethoprims" "J01ED09" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "sulfamazona,sulfamazonum,sulfenazone" 1.5 "g" "NA"
|
"SZO" 187764 "Sulfamazone" "Trimethoprims" "J01ED09" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "sulfamazona,sulfamazonum,sulfenazone" 1.5 "g" "NA"
|
||||||
"SLF3" 5325 "Sulfamerazine" "Trimethoprims" "D06BA06,J01ED07" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "cremomerazine,kelamerazine,mebacid,mesulfa,methylpyrimal,methylsulfazin,methylsulfazine,metilsulfadiazin,metilsulfazin,percoccide,pyralcid,romezin,septacil,septosyl,solfamerazina,solumedin,solumedine,sulfameradine,sulfamerazin,sulfamerazina,sulfamerazinum,sulfamethyldiazine,sulphamerazine,sumedine" 3 "g" "NA"
|
"SLF3" 5325 "Sulfamerazine" "Trimethoprims" "D06BA06,J01ED07,QD06BA06,QJ01EQ17" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "sulmet" "cremomerazine,kelamerazine,mebacid,mesulfa,methylpyrimal,methylsulfazin,methylsulfazine,metilsulfadiazin,metilsulfazin,percoccide,pyralcid,romezin,septacil,septosyl,solfamerazina,solumedin,solumedine,sulfameradine,sulfamerazin,sulfamerazina,sulfamerazinum,sulfamethyldiazine,sulphamerazine,sumedine" 3 "g" "NA"
|
||||||
"SLT3" "Sulfamerazine/trimethoprim" "Trimethoprims" "J01EE07" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "NA" "NA"
|
"SLT3" "Sulfamerazine/trimethoprim" "Trimethoprims" "J01EE07,QJ01EW18" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "NA" "NA"
|
||||||
"SUM" 5327 "Sulfamethazine" "Other antibacterials" "NA" "NA" "NA" "87592-2"
|
"SUM" 5327 "Sulfamethazine" "Other antibacterials" "NA" "NA" "NA" "87592-2"
|
||||||
"SLF4" 5328 "Sulfamethizole" "Trimethoprims" "B05CA04,D06BA04,J01EB02,S01AB01" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "sfmz" "aethazol,aethazolum,ayerlucil,berlophen,etazol,etazole,ethazole,famet,gliprotiazol,globucid,globucin,globuzid,glyprothiazol,glyprothiazole,glyprothiazolum,glyprothizolum,lucosil,methazol,microsul,proklar,renasul,rufol,salimol,sethadil,solfametizolo,solfetidolo,sulfaethidiole,sulfaethidol,sulfaethidole,sulfaethidolum,sulfaetidol,sulfamethizol,sulfamethizolum,sulfametizol,sulfapyelon,sulfstat,sulfurine,sulphaethidole,sulphamethizole,tardipyrine,tetracid,thidicur,thiosulfil,ultrasul,urocydal,urodiaton,urolucosil,urosulfin" 4 "g" "60175-7,60176-5,60177-3"
|
"SLF4" 5328 "Sulfamethizole" "Trimethoprims" "B05CA04,D06BA04,J01EB02,QB05CA04,QD06BA04,QJ01EQ02,QS01AB01,S01AB01" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "sfmz" "aethazolum,ayerlucil,berlophen,gliprotiazol,globucid,globucin,globuzid,glyprothiazol,glyprothiazole,glyprothiazolum,glyprothizolum,lucosil,microsul,proklar,renasul,rufol,salimol,sethadil,solfametizolo,solfetidolo,sulfaethidiole,sulfaethidol,sulfaethidole,sulfaethidolum,sulfaetidol,sulfamethizol,sulfamethizolum,sulfametizol,sulfapyelon,sulfstat,sulfurine,sulphaethidole,sulphamethizole,tardipyrine,tetracid,thidicur,thiosulfil,ultrasul,urocydal,urodiaton,urolucosil,urosulfin" 4 "g" "60175-7,60176-5,60177-3"
|
||||||
"SMX" 5329 "Sulfamethoxazole" "Trimethoprims" "J01EC01" "Sulfonamides and trimethoprim" "Intermediate-acting sulfonamides" "sfmx,sulf" "septran,septrin,simsinomin,sinomin,solfametossazolo,sulfamethalazole,sulfamethoxazol,sulfamethoxazolum,sulfamethoxizole,sulfamethylisoxazole,sulfametoxazol,sulfiodizole,sulfisomezole,sulphamethoxazol,sulphamethoxazole,sulphisomezole,urobak" 2 "g" "10342-4,11577-4,18985-2,25271-8,39772-9,467-1,468-9,469-7,470-5,59971-2,59972-0,60333-2,72674-5,80549-9,80974-9"
|
"SMX" 5329 "Sulfamethoxazole" "Trimethoprims" "J01EC01,QJ01EQ11" "Sulfonamides and trimethoprim" "Intermediate-acting sulfonamides" "sfmx,sulf,sulfam" "septran,septrin,simsinomin,sinomin,solfametossazolo,sulfamethalazole,sulfamethoxazolum,sulfamethoxizole,sulfamethylisoxazole,sulfametoxazol,sulfiodizole,sulfisomezole,sulphisomezole,urobak" 2 "g" "10342-4,11577-4,18985-2,25271-8,39772-9,467-1,468-9,469-7,470-5,59971-2,59972-0,60333-2,72674-5,80549-9,80974-9"
|
||||||
"SLF5" 5330 "Sulfamethoxypyridazine" "Trimethoprims" "J01ED05" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "altezol,cysul,davosin,depovernil,durox,kineks,kinex,kynex,lederkyn,lentac,lisulfen,longin,medicel,midicel,midikel,myasul,opinsul,paramid,petrisul,piridolo,quinoseptyl,retamid,retasulfin,retasulphine,slosul,spofadazine,succinylsulfathi,sulfalex,sulfapiridazin,sulfapyridazine,sulfdurazin,sulfozona,sultirene,vinces" 0.5 "g" "NA"
|
"SLF5" 5330 "Sulfamethoxypyridazine" "Trimethoprims" "J01ED05,QJ01EQ15" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "altezol,cysul,davosin,depovernil,durox,kineks,kinex,kynex,lederkyn,lentac,lisulfen,longin,medicel,midicel,midikel,myasul,opinsul,paramid,petrisul,piridolo,quinoseptyl,retamid,retasulfin,retasulphine,slosul,spofadazine,succinylsulfathi,sulfalex,sulfapiridazin,sulfapyridazine,sulfdurazin,sulfozona,sultirene,vinces" 0.5 "g" "NA"
|
||||||
"SLF6" 19596 "Sulfametomidine" "Trimethoprims" "J01ED03" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "duroprocin,methofadin,methofazine,solfametomidina,sulfametomidin,sulfametomidina,sulfametomidinum,telemid" "NA"
|
"SLF6" 19596 "Sulfametomidine" "Trimethoprims" "J01ED03" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "duroprocin,methofadin,methofazine,solfametomidina,sulfametomidin,sulfametomidina,sulfametomidinum,telemid" "NA"
|
||||||
"SLF7" 5326 "Sulfametoxydiazine" "Trimethoprims" "J01ED04" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "bayrena,berlicid,dairena,durenat,juvoxin,kinecid,kirocid,kiron,longasulf,methoxypyrimal,solfametossidiazina,sulfameter,sulfametersalt,sulfamethorine,sulfamethoxine,sulfamethoxydiazin,sulfamethoxydiazine,sulfamethoxydin,sulfamethoxydine,sulfametin,sulfametinum,sulfametorine,sulfametorinum,sulfametoxidiazina,sulfametoxidine,sulfametoxydiazinum,sulla,sulphameter,sulphamethoxydiazine,supramid,ultrax" 0.5 "g" "NA"
|
"SLF7" 5326 "Sulfametoxydiazine" "Trimethoprims" "J01ED04" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "bayrena,berlicid,dairena,durenat,juvoxin,kinecid,kirocid,kiron,longasulf,methoxypyrimal,solfametossidiazina,sulfameter,sulfametersalt,sulfamethorine,sulfamethoxine,sulfamethoxydiazin,sulfamethoxydiazine,sulfamethoxydin,sulfamethoxydine,sulfametin,sulfametinum,sulfametorine,sulfametorinum,sulfametoxidiazina,sulfametoxidine,sulfametoxydiazinum,sulla,sulphameter,sulphamethoxydiazine,supramid,ultrax" 0.5 "g" "NA"
|
||||||
"SLT4" "Sulfametrole/trimethoprim" "Trimethoprims" "J01EE03" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "trsm" "NA" "NA"
|
"SLT4" "Sulfametrole/trimethoprim" "Trimethoprims" "J01EE03" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "trsm" "NA" "NA"
|
||||||
"SLF8" 12894 "Sulfamoxole" "Trimethoprims" "J01EC03" "Sulfonamides and trimethoprim" "Intermediate-acting sulfonamides" "NA" "enterocura,justamil,oxasulfa,solfaguanolo,solfamossolo,sulfadimethyloxazole,sulfaguanol,sulfaguanole,sulfaguanolum,sulfamoxol,sulfamoxolum,sulfano,sulfavigor,sulfmidil,sulfono,sulfune,sulfuno,sulphamoxole,tardamid,tardamide" 1 "g" 1 "g" "NA"
|
"SLF8" 12894 "Sulfamoxole" "Trimethoprims" "J01EC03" "Sulfonamides and trimethoprim" "Intermediate-acting sulfonamides" "NA" "enterocura,justamil,oxasulfa,solfaguanolo,solfamossolo,sulfadimethyloxazole,sulfaguanol,sulfaguanole,sulfaguanolum,sulfamoxol,sulfamoxolum,sulfano,sulfavigor,sulfmidil,sulfono,sulfune,sulfuno,sulphamoxole,tardamid,tardamide" 1 "g" 1 "g" "NA"
|
||||||
"SLT5" "Sulfamoxole/trimethoprim" "Trimethoprims" "J01EE04" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "NA" "NA"
|
"SLT5" "Sulfamoxole/trimethoprim" "Trimethoprims" "J01EE04" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "NA" "NA" "NA"
|
||||||
"SLF9" 5333 "Sulfanilamide" "Trimethoprims" "D06BA05,J01EB06" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "albexan,albosal,ambeside,antistrept,astreptine,astrocid,bacteramid,bactesid,collomide,colsulanyde,copticide,deseptyl,dipron,ergaseptine,erysipan,estreptocida,exoseptoplix,fourneau,gerison,gombardol,hydroxysulfonamide,infepan,lusil,lysococcine,neococcyl,orgaseptine,prontalbin,prontylin,proseptal,proseptine,proseptol,pysococcine,sanamid,septanilam,septinal,septolix,septoplex,septoplix,solfanilamide,stramid,strepamide,strepsan,streptagol,streptamid,streptamin,streptasol,streptocid,streptocide,streptocidum,streptoclase,streptocom,strepton,streptopan,streptosil,streptozol,streptozone,streptrocide,sulfamidyl,sulfamine,sulfana,sulfanalone,sulfanidyl,sulfanil,sulfanilamida,sulfanilamidomethan,sulfanilamidum,sulfanimide,sulfocidin,sulfocidine,sulfonylamide,sulphanilamide,sulphanilamidum,sulphonamide,therapol,tolder" "NA"
|
"SLF9" 5333 "Sulfanilamide" "Trimethoprims" "D06BA05,J01EB06,QD06BA05,QJ01EQ06" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "albexan,albosal,ambeside,antistrept,astreptine,astrocid,bacteramid,bactesid,collomide,colsulanyde,copticide,deseptyl,dipron,ergaseptine,erysipan,estreptocida,exoseptoplix,fourneau,gerison,gombardol,hydroxysulfonamide,infepan,lusil,lysococcine,neococcyl,orgaseptine,prontalbin,prontylin,proseptal,proseptine,proseptol,pysococcine,sanamid,septanilam,septinal,septolix,septoplex,septoplix,solfanilamide,stramid,strepamide,strepsan,streptagol,streptamid,streptamin,streptasol,streptocid,streptocide,streptocidum,streptoclase,streptocom,strepton,streptopan,streptosil,streptozol,streptozone,streptrocide,sulfamidyl,sulfamine,sulfana,sulfanalone,sulfanidyl,sulfanil,sulfanilamida,sulfanilamidomethan,sulfanilamidum,sulfanimide,sulfocidin,sulfocidine,sulfonylamide,sulphanilamide,sulphanilamidum,sulphonamide,therapol,tolder" "NA"
|
||||||
"SLF10" 68933 "Sulfaperin" "Trimethoprims" "J01ED06" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "anastaf,archisulfa,archisulpha,avissul,chemiopen,demosulfan,demosulphan,durisan,isosulfamerazine,isosulphamerazine,methylsulfadiazin,methylsulfadiazine,methylsulphadiazine,novosul,orosulfan,pallidin,retardon,risulfasens,sulfaperina,sulfaperine,sulfaperinum,sulfatreis,sulfopirimidine,sulpenta,sulphaperin,sulphaperina,sulphaperinum" 0.5 "g" "NA"
|
"SLF10" 68933 "Sulfaperin" "Trimethoprims" "J01ED06" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "anastaf,archisulfa,archisulpha,avissul,chemiopen,demosulfan,demosulphan,durisan,isosulfamerazine,isosulphamerazine,methylsulfadiazin,methylsulfadiazine,methylsulphadiazine,novosul,orosulfan,pallidin,retardon,risulfasens,sulfaperina,sulfaperine,sulfaperinum,sulfatreis,sulfopirimidine,sulpenta,sulphaperin,sulphaperina,sulphaperinum" 0.5 "g" "NA"
|
||||||
"SLF11" 5335 "Sulfaphenazole" "Trimethoprims" "J01ED08" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "depocid,depotsulfonamide,eftolon,firmazolo,inamil,isarol,merian,orisul,orisulf,paidazolo,phenylsulfapyrazole,plisulfan,raziosulfa,solfafenazolo,sulfabid,sulfafenazol,sulfafenazolo,sulfaphenazol,sulfaphenazolum,sulfaphenazon,sulfaphenylpipazol,sulfaphenylpyrazol,sulfaphenylpyrazole,sulfonylpyrazol,sulphaphenazole,sulphenazole" 1 "g" "NA"
|
"SLF11" 5335 "Sulfaphenazole" "Trimethoprims" "J01ED08,QJ01EQ08" "Sulfonamides and trimethoprim" "Long-acting sulfonamides" "NA" "depocid,depotsulfonamide,eftolon,firmazolo,inamil,isarol,merian,orisul,orisulf,paidazolo,phenylsulfapyrazole,plisulfan,raziosulfa,solfafenazolo,sulfabid,sulfafenazol,sulfafenazolo,sulfaphenazol,sulfaphenazolum,sulfaphenazon,sulfaphenylpipazol,sulfaphenylpyrazol,sulfaphenylpyrazole,sulfonylpyrazol,sulphaphenazole,sulphenazole" 1 "g" "NA"
|
||||||
"SLF12" 5336 "Sulfapyridine" "Trimethoprims" "J01EB04" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "adiplon,coccoclase,dagenan,eubasin,eubasinum,haptocil,piridazol,plurazol,pyriamid,pyridazol,relbapiridina,ronin,septipulmon,solfapiridina,soludagenan,streptosilpyridine,sulfapiridina,sulfapyridin,sulfapyridinum,sulfidin,sulfidine,sulphapyridin,sulphapyridine,thioseptal,trianon" 1 "g" "14075-6,55580-5"
|
"SLF12" 5336 "Sulfapyridine" "Trimethoprims" "J01EB04,QJ01EQ04" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "adiplon,coccoclase,dagenan,eubasin,eubasinum,haptocil,piridazol,plurazol,pyriamid,pyridazol,relbapiridina,ronin,septipulmon,solfapiridina,soludagenan,streptosilpyridine,sulfapiridina,sulfapyridin,sulfapyridinum,sulfidin,sulfidine,sulphapyridin,sulphapyridine,thioseptal,trianon" 1 "g" "14075-6,55580-5"
|
||||||
"SNA" 60582 "Sulfasuccinamide" "Other antibacterials" "NA" "NA" "sulfasuccinamid,sulfasuccinamida,sulfasuccinamidum" "NA"
|
"SNA" 60582 "Sulfasuccinamide" "Other antibacterials" "NA" "NA" "sulfasuccinamid,sulfasuccinamida,sulfasuccinamidum" "NA"
|
||||||
"SUT" 5340 "Sulfathiazole" "Trimethoprims" "D06BA02,J01EB07" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "azoquimiol,azoseptale,cerazol,cerazole,chemosept,cibazol,duatok,dulana,eleudron,enterobiocine,estafilol,formosulfathiazole,neostrepsan,norsulfasol,norsulfazol,norsulfazole,norsulfazolum,planomide,poliseptil,sanotiazol,septozol,solfatiazolo,soluthiazomide,streptosilthiazole,sulfamul,sulfaplex,sulfathiazol,sulfathiazolesalt,sulfathiazolum,sulfatiazol,sulfavitina,sulfocerol,sulphathiazole,sulzol,thiacoccine,thiasulfol,thiazamide,thiozamide,wintrazole" "87591-4,87796-9,87797-7"
|
"SUT" 5340 "Sulfathiazole" "Trimethoprims" "D06BA02,J01EB07,QD06BA02,QJ01EQ07" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "sulthi" "azoquimiol,azoseptale,cerazol,cerazole,chemosept,cibazol,duatok,dulana,eleudron,enterobiocine,estafilol,formosulfathiazole,neostrepsan,norsulfasol,norsulfazol,norsulfazole,norsulfazolum,planomide,poliseptil,sanotiazol,septozol,solfatiazolo,soluthiazomide,streptosilthiazole,sulfamul,sulfaplex,sulfathiazol,sulfathiazolesalt,sulfathiazolum,sulfatiazol,sulfavitina,sulfocerol,sulphathiazole,sulzol,thiacoccine,thiasulfol,thiazamide,thiozamide,wintrazole" "87591-4,87796-9,87797-7"
|
||||||
"SLF13" 3000579 "Sulfathiourea" "Trimethoprims" "J01EB08" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "badional,baldinol,fontamide,salvoseptyl,solfatiourea,solufontamide,sulfanilthiourea,sulfathiocarbamid,sulfathiocarbamide,sulfathiocarbamidum,sulfathioureasalt,sulfathiouree,sulfatiourea,sulphathiourea" 6 "g" "NA"
|
"SLF13" 3000579 "Sulfathiourea" "Trimethoprims" "J01EB08" "Sulfonamides and trimethoprim" "Short-acting sulfonamides" "NA" "badional,baldinol,fontamide,salvoseptyl,solfatiourea,solufontamide,sulfanilthiourea,sulfathiocarbamid,sulfathiocarbamide,sulfathiocarbamidum,sulfathioureasalt,sulfathiouree,sulfatiourea,sulphathiourea" 6 "g" "NA"
|
||||||
"SOX" 5344 "Sulfisoxazole" "Other antibacterials" "NA" "NA" "NA" "11578-2,18986-0,25226-2,471-3,472-1,473-9,474-7,9701-4"
|
"SOX" 5344 "Sulfisoxazole" "Other antibacterials" "NA" "sulfiz" "NA" "11578-2,18986-0,25226-2,471-3,472-1,473-9,474-7,9701-4"
|
||||||
"SSS" 86225 "Sulfonamide" "Other antibacterials" "NA" "sfna" "NA" "17674-3,17675-0,18987-8,35842-4,4040-2,4041-0,4042-8,475-4,476-2,477-0,478-8,75650-2"
|
"SSS" 86225 "Sulfonamide" "Other antibacterials" "NA" "sfna,sulami" "NA" "17674-3,17675-0,18987-8,35842-4,4040-2,4041-0,4042-8,475-4,476-2,477-0,478-8,75650-2"
|
||||||
"SLP" 9950244 "Sulopenem" "Other antibacterials" "NA" "NA" "orlynvah" "55289-3,55290-1,55291-9"
|
"SLP" 9950244 "Sulopenem" "Other antibacterials" "NA" "sulope" "orlynvah" "55289-3,55290-1,55291-9"
|
||||||
"SLT6" 444022 "Sultamicillin" "Beta-lactams/penicillins" "J01CR04" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "NA" "combisid,sultamicilina,sultamicilline,sultamicillinum,unacid" 1.5 "g" "NA"
|
"SLT6" 444022 "Sultamicillin" "Beta-lactams/penicillins" "J01CR04,QJ01CR04" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "sultos" "combisid,sultamicilina,sultamicilline,sultamicillinum,unacid" 1.5 "g" "NA"
|
||||||
"SUR" 46700778 "Surotomycin" "Other antibacterials" "NA" "NA" "surotomicina,surotomycine" "NA"
|
"SUR" 46700778 "Surotomycin" "Other antibacterials" "NA" "NA" "surotomicina,surotomycine" "NA"
|
||||||
"TAL" 71447 "Talampicillin" "Beta-lactams/penicillins" "J01CA15" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "aseocillin,phthalidyl,talampicilina,talampicilline,talampicillinum,talpen,yamacillin" 2 "g" "18988-6,479-6,480-4,481-2,482-0"
|
"TAL" 71447 "Talampicillin" "Beta-lactams/penicillins" "J01CA15,QJ01CA15" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "NA" "aseocillin,phthalidyl,talampicilina,talampicilline,talampicillinum,talpen,yamacillin" 2 "g" "18988-6,479-6,480-4,481-2,482-0"
|
||||||
"TLP" 163307 "Talmetoprim" "Other antibacterials" "NA" "NA" "NA" "NA"
|
"TLP" 163307 "Talmetoprim" "Other antibacterials" "NA" "NA" "NA" "NA"
|
||||||
"TAZ" 123630 "Tazobactam" "Beta-lactams/penicillins" "J01CG02" "Beta-lactam antibacterials, penicillins" "Beta-lactamase inhibitors" "tazo" "enmetazobactam,exblifep,tazobactamsalt,tazobactamum,tazobactum" "41719-6,41720-4,41721-2,41740-2"
|
"TAZ" 123630 "Tazobactam" "Beta-lactams/penicillins" "J01CG02,QJ01CG02" "Beta-lactam antibacterials, penicillins" "Beta-lactamase inhibitors" "tazo,tazoba" "exblifep,tazobactamsalt,tazobactamum,tazobactum" "41719-6,41720-4,41721-2,41740-2"
|
||||||
"TBP" 9800194 "Tebipenem" "Carbapenems" "J01DH06" "NA" "NA" 0.56 "g" "NA"
|
"TBP" 9800194 "Tebipenem" "Carbapenems" "NA" "NA" "NA" "NA"
|
||||||
"TZD" 11234049 "Tedizolid" "Oxazolidinones" "J01XX11" "Other antibacterials" "Other antibacterials" "tedi" "torezolid" 0.2 "g" 0.2 "g" "73586-0,73608-2,73631-4"
|
"TZD" 11234049 "Tedizolid" "Oxazolidinones" "J01XX11,QJ01XX11" "Other antibacterials" "Other antibacterials" "tedi" "torezolid" 0.2 "g" 0.2 "g" "73586-0,73608-2,73631-4"
|
||||||
"TEC" 16131923 "Teicoplanin" "Glycopeptides" "J01XA02" "Other antibacterials" "Glycopeptide antibacterials" "tec,tei,teic,tp,tpl,tpn" "NA" 0.4 "g" "18989-4,25534-9,25535-6,34378-0,34379-8,4043-6,483-8,484-6,485-3,486-1,7051-6,80968-1"
|
"TEC" 16131923 "Teicoplanin" "Glycopeptides" "J01XA02,QJ01XA02" "Other antibacterials" "Glycopeptide antibacterials" "tec,tei,teic,teicop,tp,tpl,tpn" "NA" 0.4 "g" "18989-4,25534-9,25535-6,34378-0,34379-8,4043-6,483-8,484-6,485-3,486-1,7051-6,80968-1"
|
||||||
"TCM" "Teicoplanin-macromethod" "Glycopeptides" "NA" "NA" "NA" "NA"
|
"TCM" "Teicoplanin-macromethod" "Glycopeptides" "NA" "NA" "NA" "NA"
|
||||||
"TLV" 3081362 "Telavancin" "Glycopeptides" "J01XA03" "Other antibacterials" "Glycopeptide antibacterials" "tela" "arbelic,nvancomycin,televancin" "72894-9,73630-6,85051-1,88886-7"
|
"TLV" 3081362 "Telavancin" "Glycopeptides" "J01XA03,QJ01XA03" "Other antibacterials" "Glycopeptide antibacterials" "tela,telava" "arbelic,nvancomycin,televancin" "72894-9,73630-6,85051-1,88886-7"
|
||||||
"TLT" 3002190 "Telithromycin" "Macrolides/lincosamides" "J01FA15" "Macrolides, lincosamides and streptogramins" "Macrolides" "teli" "ketek,levviax" 0.8 "g" "35843-2,35844-0,35845-7,41722-0"
|
"TLT" 3002190 "Telithromycin" "Macrolides/lincosamides" "J01FA15,QJ01FA15" "Macrolides, lincosamides and streptogramins" "Macrolides" "teli,telith" "ketek,levviax" 0.8 "g" "35843-2,35844-0,35845-7,41722-0"
|
||||||
"TMX" 60021 "Temafloxacin" "Fluoroquinolones" "J01MA05" "Quinolone antibacterials" "Fluoroquinolones" "tema" "omniflox,temafloxacina,temafloxacine,temafloxacino,temafloxacinum" 0.8 "g" "18990-2,487-9,488-7,489-5,490-3"
|
"TMX" 60021 "Temafloxacin" "Fluoroquinolones" "J01MA05,QJ01MA05" "Quinolone antibacterials" "Fluoroquinolones" "tema,temafl" "omniflox,temafloxacina,temafloxacine,temafloxacino,temafloxacinum" 0.8 "g" "18990-2,487-9,488-7,489-5,490-3"
|
||||||
"TEM" 171758 "Temocillin" "Beta-lactams/penicillins" "J01CA17" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "temo" "negaban,temocilina,temocillina,temocilline,temocillinum" 4 "g" "18991-0,491-1,492-9,493-7,494-5,54190-4"
|
"TEM" 171758 "Temocillin" "Beta-lactams/penicillins" "J01CA17,QJ01CA17" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "temo,temoci" "negaban,temocilina,temocillina,temocilline,temocillinum" 4 "g" "18991-0,491-1,492-9,493-7,494-5,54190-4"
|
||||||
"TRB" 1549008 "Terbinafine" "Antifungals/antimycotics" "D01AE15,D01BA02" "Antifungals for systemic use" "Antifungals for systemic use" "terb" "afogan,bramazil,bramizil,corbinal,lamasil,lamisil,muzonal,shoprite,terbina,terbinafina,terbinafinum,terbine,terbinex,terbisil,zabel" 0.25 "g" "10720-1,10721-9,18992-8"
|
"TRB" 1549008 "Terbinafine" "Antifungals/antimycotics" "D01AE15,D01BA02,QD01AE15,QD01BA02" "Antifungals for systemic use" "Antifungals for systemic use" "terb" "afogan,bramazil,bramizil,corbinal,lamasil,lamisil,muzonal,shoprite,terbina,terbinafina,terbinafinum,terbine,terbinex,terbisil,zabel" 0.25 "g" "10720-1,10721-9,18992-8"
|
||||||
"TRC" 441383 "Terconazole" "Antifungals/antimycotics" "G01AG02" "NA" "fungistat,panlomyc,terazol,terconazol,terconazolum,tercospor,tetrazol,triaconazole,zazole" "55196-0"
|
"TRC" 441383 "Terconazole" "Antifungals/antimycotics" "G01AG02,QG01AG02" "NA" "fungistat,panlomyc,terazol,terconazol,terconazolum,tercospor,tetrazol,triaconazole,zazole" "55196-0"
|
||||||
"TRZ" 65720 "Terizidone" "Antimycobacterials" "J04AK03" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "NA" "terivalidin,terizidona,terizidonum" "NA"
|
"TRZ" 65720 "Terizidone" "Antimycobacterials" "J04AK03,QJ04AK03" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "NA" "terivalidin,terizidona,terizidonum" "NA"
|
||||||
"TCY" 54675776 "Tetracycline" "Tetracyclines" "A01AB13,D06AA04,J01AA07,S01AA09,S02AA08,S03AA02" "Tetracyclines" "Tetracyclines" "tc,te,tet,tetr" "abramycin,abricycline,agromicina,ambramicina,ambramycin,amycin,biocycline,brodspec,cefracycline,centet,ciclibion,copharlan,criseociclina,cyclomycin,democracin,deschlorobiomycin,economycin,hostacyclin,lexacycline,limecycline,liquamycin,mericycline,micycline,neocycline,omegamycin,orlycycline,panmycin,purocyclina,roviciclina,solvocin,tetrabon,tetraciclina,tetracycl,tetracyclin,tetracyclinehydrate,tetracyclinum,tetracyn,tetradecin,tetrafil,tetraverine,tetrazyklin,tsiklomistsin,tsiklomitsin,veracin,vetacyclinum" 1 "g" 1 "g" "101504-9,18993-6,25272-6,4045-1,495-2,496-0,497-8,498-6,7052-4,87590-6"
|
"TCY" 54675776 "Tetracycline" "Tetracyclines" "A01AB13,D06AA04,J01AA07,QA01AB13,QD06AA04,QG01AA90,QG51AA02,QJ01AA07,QJ51AA07,QS01AA09,QS02AA08,QS03AA02,S01AA09,S02AA08,S03AA02" "Tetracyclines" "Tetracyclines" "tc,te,tet,tetcyc,tetr,tetra" "abramycin,abricycline,agromicina,ambramicina,ambramycin,biocycline,brodspec,cefracycline,centet,ciclibion,copharlan,criseociclina,democracin,deschlorobiomycin,economycin,hostacyclin,lexacycline,limecycline,liquamycin,mericycline,micycline,neocycline,omegamycin,orlycycline,panmycin,purocyclina,roviciclina,solvocin,tetrabon,tetraciclina,tetracyclinehydrate,tetracyclinum,tetracyn,tetradecin,tetrafil,tetraverine,tetrazyklin,tsiklomistsin,tsiklomitsin,veracin,vetacyclinum" 1 "g" 1 "g" "101504-9,18993-6,25272-6,4045-1,495-2,496-0,497-8,498-6,7052-4,87590-6"
|
||||||
"TCY-S" "Tetracycline screening test" "Tetracyclines" "NA" "tcy screen" "NA" "NA"
|
"TCY-S" "Tetracycline screening test" "Tetracyclines" "NA" "tcy screen" "NA" "NA"
|
||||||
"TOL" 54691494 "Tetracycline/oleandomycin" "Other antibacterials" "J01RA08" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
"TOL" 54691494 "Tetracycline/oleandomycin" "Other antibacterials" "J01RA08,QJ01RA08" "Combinations of antibacterials" "Combinations of antibacterials" "NA" "NA" "NA"
|
||||||
"TET" 65450 "Tetroxoprim" "Other antibacterials" "NA" "NA" "primsol,tetroxoprima,tetroxoprime,tetroxoprimum,trimpex,trimplex" "NA"
|
"TET" 65450 "Tetroxoprim" "Other antibacterials" "NA" "NA" "primsol,tetroxoprima,tetroxoprime,tetroxoprimum,trimpex,trimplex" "NA"
|
||||||
"THA" 9568512 "Thiacetazone" "Oxazolidinones" "NA" "NA" "acetanilide,aktivan,ambathizon,amitiozon,antib,benthiozone,benzothiozane,benzothiozon,berkazon,citazone,conteben,diasan,domakol,ilbion,livazone,mivizon,myvizone,neotibil,neustab,novakol,panrone,parazone,seroden,siocarbazone,tebalon,tebecure,tebemar,tebethion,tebethione,tebezon,thiacetone,thiacetozone,thibon,thibone,thioacetazon,thioacetazonum,thioazetazone,thiocarbazil,thiomicid,thionicid,thioparamizon,thioparamizone,thiosemicarbarzone,thiosemicarbazone,thiotebesin,thiotebezin,thiotebicina,thizone,tiacetazon,tibicur,tibion,tibione,tibizan,tibon,tibone,tioacetazon,tioacetazona,tioatsetazon,tiobicina,tiocarone,tiosecolo,tubercazon,tubigal,tubin" "32384-0,54184-7,54204-3"
|
"THA" 9568512 "Thiacetazone" "Oxazolidinones" "NA" "NA" "acetanilide,aktivan,ambathizon,amitiozon,antib,benthiozone,benzothiozane,benzothiozon,berkazon,citazone,conteben,diasan,domakol,ilbion,livazone,mivizon,myvizone,neotibil,neustab,novakol,panrone,parazone,seroden,siocarbazone,tebalon,tebecure,tebemar,tebethion,tebethione,tebezon,thiacetone,thiacetozone,thibon,thibone,thioacetazon,thioacetazonum,thioazetazone,thiocarbazil,thiomicid,thionicid,thioparamizon,thioparamizone,thiosemicarbarzone,thiosemicarbazone,thiotebesin,thiotebezin,thiotebicina,thizone,tiacetazon,tibicur,tibion,tibione,tibizan,tibon,tibone,tioacetazon,tioacetazona,tioatsetazon,tiobicina,tiocarone,tiosecolo,tubercazon,tubigal,tubin" "32384-0,54184-7,54204-3"
|
||||||
"THI" 27200 "Thiamphenicol" "Phenicols" "J01BA02" "Amphenicols" "Amphenicols" "NA" "armai,dextrosulfenidol,dextrosulphenidol,igralin,racefenicol,racefenicolo,racefenicolum,raceophenidol,thiamphenicolum,thiocymetin,thiophenicol,tiamfenicol,tiamfenicolo,urfamycine" 1.5 "g" 1.5 "g" "41723-8,41724-6,41725-3,54169-8"
|
"THI" 27200 "Thiamphenicol" "Phenicols" "J01BA02,QJ01BA02,QJ51BA02" "Amphenicols" "Amphenicols" "thiaph" "armai,dextrosulfenidol,dextrosulphenidol,igralin,racefenicol,racefenicolo,racefenicolum,raceophenidol,thiamphenicolum,thiocymetin,thiophenicol,tiamfenicol,tiamfenicolo,urfamycine" 1.5 "g" 1.5 "g" "41723-8,41724-6,41725-3,54169-8"
|
||||||
"TAT" 9568512 "Thioacetazone" "Antimycobacterials" "J04AK07" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
"TAT" 9568512 "Thioacetazone" "Antimycobacterials" "J04AK07,QJ04AK07" "Drugs for treatment of tuberculosis" "Other drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
||||||
"THI1" "Thioacetazone/isoniazid" "Antimycobacterials" "J04AM04" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
"THI1" "Thioacetazone/isoniazid" "Antimycobacterials" "J04AM04,QJ04AM04" "Drugs for treatment of tuberculosis" "Combinations of drugs for treatment of tuberculosis" "NA" "NA" "NA"
|
||||||
"TIA" 656958 "Tiamulin" "Other antibacterials" "QJ01XQ01" "NA" "denagard,thiamutilin,tiamulina,tiamuline,tiamulinum" "35846-5,35847-3,35848-1,87589-8"
|
"TIA" 656958 "Tiamulin" "Other antibacterials" "QJ01XQ01" "tiamul" "denagard,thiamutilin,tiamulina,tiamuline,tiamulinum" "35846-5,35847-3,35848-1,87589-8"
|
||||||
"TIC" 36921 "Ticarcillin" "Beta-lactams/penicillins" "J01CA13" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "tc,ti,tic,tica" "ticar,ticarcilina,ticarcilline,ticarcillinum,ticillin,timentin" 15 "g" "18994-4,18995-1,25254-4,4054-3,4055-0,499-4,500-9,501-7,502-5,503-3,504-1,505-8,506-6,55716-5,55717-3,55718-1,55719-9,7053-2,7054-0"
|
"TIC" 36921 "Ticarcillin" "Beta-lactams/penicillins" "J01CA13,QJ01CA13" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "tc,ti,tic,tica,ticarc" "ticar,ticarcilina,ticarcilline,ticarcillinum,timentin" 15 "g" "18994-4,18995-1,25254-4,4054-3,4055-0,499-4,500-9,501-7,502-5,503-3,504-1,505-8,506-6,55716-5,55717-3,55718-1,55719-9,7053-2,7054-0"
|
||||||
"TCC" 6437075 "Ticarcillin/clavulanic acid" "Beta-lactams/penicillins" "J01CR03" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "t/c,tcc,ticl,tim,tlc" "augpenin" 15 "g" "NA"
|
"TCC" 6437075 "Ticarcillin/clavulanic acid" "Beta-lactams/penicillins" "J01CR03,QJ01CR03" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "t/c,tcc,ticcla,ticl,tim,tlc" "augpenin" 15 "g" "NA"
|
||||||
"TGC" 54686904 "Tigecycline" "Tetracyclines" "J01AA12" "Tetracyclines" "Tetracyclines" "tgc,tig,tige" "tigeciclina,tigecyclin,tigecyclinehydrate,tigilcycline,tygacil" 0.1 "g" "101499-2,42354-1,42355-8,42356-6,42357-4,55158-0"
|
"TGC" 54686904 "Tigecycline" "Tetracyclines" "J01AA12,QJ01AA12" "Tetracyclines" "Tetracyclines" "tgc,tig,tige,tigecy" "tigeciclina,tigecyclin,tigecyclinehydrate,tigilcycline,tygacil" 0.1 "g" "101499-2,42354-1,42355-8,42356-6,42357-4,55158-0"
|
||||||
"TMN" "Tigemonam" "Monobactams" "NA" "NA" "NA" "NA"
|
"TMN" "Tigemonam" "Monobactams" "NA" "NA" "NA" "NA"
|
||||||
"TBQ" 65592 "Tilbroquinol" "Fluoroquinolones" "P01AA05" "NA" "tilbroquinolum" "NA"
|
"TBQ" 65592 "Tilbroquinol" "Fluoroquinolones" "P01AA05" "NA" "tilbroquinolum" "NA"
|
||||||
"TIP" 24860548 "Tildipirosin" "Macrolides/lincosamides" "QJ01FA96" "NA" "zuprevo" "100060-3,88375-1,88377-7"
|
"TIP" 24860548 "Tildipirosin" "Macrolides/lincosamides" "QJ01FA96" "NA" "zuprevo" "100060-3,88375-1,88377-7"
|
||||||
"TIL" 5282521 "Tilmicosin" "Macrolides/lincosamides" "QJ01FA91" "NA" "micotil,pulmotil,tilmicosina,tilmicosine,tilmicosinum,tilmovet" "35849-9,35850-7,35851-5,87588-0"
|
"TIL" 5282521 "Tilmicosin" "Macrolides/lincosamides" "QJ01FA91" "tilmic" "micotil,pulmotil,tilmicosina,tilmicosine,tilmicosinum,tilmovet" "35849-9,35850-7,35851-5,87588-0"
|
||||||
"TIN" 5479 "Tinidazole" "Other antibacterials" "G01AF21,J01XD02,P01AB02" "Other antibacterials" "Imidazole derivatives" "tini" "amtiba,bioshik,fasigin,fasigyn,glongyn,haisigyn,isotinidazole,pletil,protozol,simplotan,sorquetan,symplotan,tindamax,tindazole,tinidazol,tinidazolum,tricolam,trimonase" 2 "g" 1.5 "g" "54928-7,55720-7,55721-5,55722-3"
|
"TIN" 5479 "Tinidazole" "Other antibacterials" "G01AF21,J01XD02,P01AB02,QG01AF21,QJ01XD02,QP51AA02" "Other antibacterials" "Imidazole derivatives" "tini" "amtiba,bioshik,fasigin,fasigyn,glongyn,haisigyn,isotinidazole,pletil,protozol,simplotan,sorquetan,symplotan,tindamax,tindazole,tinidazolum,tricolam,trimonase" 2 "g" 1.5 "g" "54928-7,55720-7,55721-5,55722-3"
|
||||||
"TCR" 3001386 "Tiocarlide" "Antimycobacterials" "J04AD02" "Drugs for treatment of tuberculosis" "Thiocarbamide derivatives" "NA" "aethoksid,aethoxyd,aethoxydum,amixyl,datanil,disocarban,disoxyl,ethoxide,ethoxyd,etocarlid,etocarlida,etocarlide,etocarlidum,etoksid,thiocarlide,tiocarlid,tiocarlida,tiocarlidum" 7 "g" "NA"
|
"TCR" 3001386 "Tiocarlide" "Antimycobacterials" "J04AD02,QJ04AD02" "Drugs for treatment of tuberculosis" "Thiocarbamide derivatives" "NA" "aethoksid,aethoxydum,amixyl,datanil,disocarban,disoxyl,ethoxide,etocarlid,etocarlida,etocarlide,etocarlidum,etoksid,thiocarlide,tiocarlid,tiocarlida,tiocarlidum" 7 "g" "NA"
|
||||||
"TDC" 10247721 "Tiodonium chloride" "Other antibacterials" "NA" "NA" "tiodonium" "NA"
|
"TDC" 10247721 "Tiodonium chloride" "Other antibacterials" "NA" "NA" "tiodonium" "NA"
|
||||||
"TXC" 65788 "Tioxacin" "Fluoroquinolones" "NA" "NA" "tioxacine,tioxacino,tioxacinum" "NA"
|
"TXC" 65788 "Tioxacin" "Fluoroquinolones" "NA" "NA" "tioxacine,tioxacino,tioxacinum" "NA"
|
||||||
"TIZ" 394397 "Tizoxanide" "Other antibacterials" "NA" "NA" "NA" "73585-2,73607-4,73629-8"
|
"TIZ" 394397 "Tizoxanide" "Other antibacterials" "NA" "NA" "NA" "73585-2,73607-4,73629-8"
|
||||||
"TOB" 36294 "Tobramycin" "Aminoglycosides" "J01GB01,S01AA12" "Aminoglycoside antibacterials" "Other aminoglycosides" "nn,tm,to,tob,tobr" "aktob,bethkis,distobram,gotabiotic,kitabis,nebcin,nebicin,nebramycin,obramycin,tenebrimycin,tenemycin,tobacin,tobracin,tobradex,tobradistin,tobralex,tobramaxin,tobramicin,tobramicina,tobramitsetin,tobramycetin,tobramycine,tobramycinum,tobrased,tobrex" 0.24 "g" "101496-8,13584-8,17808-7,18996-9,22750-4,22751-2,22752-0,25227-0,25800-4,31094-6,31095-3,31096-1,35239-3,35670-9,4057-6,4058-4,4059-2,507-4,508-2,509-0,50927-3,510-8,52962-8,59380-6,7055-7,80966-5"
|
"TOB" 36294 "Tobramycin" "Aminoglycosides" "J01GB01,QJ01GB01,QS01AA12,S01AA12" "Aminoglycoside antibacterials" "Other aminoglycosides" "nn,tm,to,tob,tobr,tobram" "aktob,bethkis,distobram,gotabiotic,kitabis,nebcin,nebicin,nebramycin,tenebrimycin,tenemycin,tobacin,tobracin,tobradex,tobradistin,tobralex,tobramaxin,tobramicin,tobramicina,tobramitsetin,tobramycetin,tobramycine,tobramycinum,tobrased,tobrex" 0.24 "g" "101496-8,13584-8,17808-7,18996-9,22750-4,22751-2,22752-0,25227-0,25800-4,31094-6,31095-3,31096-1,35239-3,35670-9,4057-6,4058-4,4059-2,507-4,508-2,509-0,50927-3,510-8,52962-8,59380-6,7055-7,80966-5"
|
||||||
"TOH" "Tobramycin-high" "Aminoglycosides" "NA" "tobra high,tobramycin high,tohl" "NA" "NA"
|
"TOH" "Tobramycin-high" "Aminoglycosides" "NA" "tobra high,tobramycin high,tohl" "NA" "NA"
|
||||||
"TFX" 5517 "Tosufloxacin" "Fluoroquinolones" "J01MA22,S01AE09" "NA" "NA" 0.45 "g" "100061-1,76146-0"
|
"TFX" 5517 "Tosufloxacin" "Fluoroquinolones" "J01MA22,QJ01MA22,QS01AE09,S01AE09" "tosufl" "NA" 0.45 "g" "100061-1,76146-0"
|
||||||
"TMP" 5578 "Trimethoprim" "Trimethoprims" "J01EA01" "Sulfonamides and trimethoprim" "Trimethoprim and derivatives" "t,tmp,tr,tri,trim,w" "abaprim,anitrim,antrima,antrimox,bacdan,bacidal,bacide,bacin,bacta,bacterial,bacticel,bactifor,bactoprim,bactramin,bencole,bethaprim,biosulten,briscotrim,chemotrin,colizole,conprim,cotrimel,deprim,dosulfin,duocide,esbesul,espectrin,euctrim,exbesul,fermagex,fortrim,futin,ikaprim,infectotrimet,instalac,kombinax,lagatrim,lastrim,lescot,metoprim,monoprim,monotrim,monotrimin,novotrimel,omstat,pancidim,proloprim,protrin,purbal,resprim,roubac,roubal,salvatrim,setprin,sinotrim,stopan,streptoplus,sugaprim,sulfamar,sulfoxaprim,sulthrim,sultrex,syraprim,tiempe,toprim,trimethioprim,trimethoprime,trimethoprimum,trimethopriom,trimetoprim,trimetoprima,trimexol,trimezol,trimogal,trimono,trimopan,triprim,trisul,trisulcom,trisulfam,trisural,uretrim,urobactrim,utetrin,velaten,wellcoprim,wellcoprin,xeroprim,zamboprim" 0.4 "g" 0.4 "g" "101495-0,11005-6,17747-7,18997-7,18998-5,20387-7,23614-1,23631-5,25273-4,32342-8,4079-0,4080-8,4081-6,511-6,512-4,513-2,514-0,515-7,516-5,517-3,518-1,55584-7,7056-5,7057-3,80552-3,80973-1"
|
"TMP" 5578 "Trimethoprim" "Trimethoprims" "J01EA01,QJ01EA01,QJ51EA01" "Sulfonamides and trimethoprim" "Trimethoprim and derivatives" "t,tmp,tr,tri,trim,w" "abaprim,anitrim,antrima,antrimox,bacdan,bacidal,bacide,bacin,bacterial,bacticel,bactifor,bactoprim,bactramin,bencole,bethaprim,biosulten,briscotrim,chemotrin,colizole,conprim,cotrimel,deprim,dosulfin,duocide,esbesul,espectrin,euctrim,exbesul,fermagex,fortrim,futin,ikaprim,infectotrimet,instalac,kombinax,lagatrim,lastrim,lescot,monoprim,monotrim,monotrimin,novotrimel,omstat,pancidim,proloprim,protrin,purbal,resprim,roubac,roubal,salvatrim,setprin,sinotrim,stopan,streptoplus,sugaprim,sulfamar,sulfoxaprim,sulthrim,sultrex,syraprim,tiempe,trimethioprim,trimethoprime,trimethoprimum,trimethopriom,trimetoprim,trimetoprima,trimexol,trimezol,trimogal,trimono,trimopan,triprim,trisul,trisulcom,trisulfam,trisural,uretrim,urobactrim,utetrin,velaten,wellcoprim,wellcoprin,xeroprim,zamboprim" 0.4 "g" 0.4 "g" "101495-0,11005-6,17747-7,18997-7,18998-5,20387-7,23614-1,23631-5,25273-4,32342-8,4079-0,4080-8,4081-6,511-6,512-4,513-2,514-0,515-7,516-5,517-3,518-1,55584-7,7056-5,7057-3,80552-3,80973-1"
|
||||||
"SXT" 358641 "Trimethoprim/sulfamethoxazole" "Trimethoprims" "J01EE01" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "cot,cotrim,sxt,t/s,tms,trsu,trsx,ts" "abacin,abactrim,agoprim,alfatrim,aposulfatrim,bacteral,bactilen,bactiver,bacton,bactoreduct,bactrim,bactrizol,bactromin,bactropin,baktar,benzenesulfonamide,berlocid,bibacrim,biseptol,centran,centrin,chemitrim,chemotrim,ciplin,comox,cotribene,cotrim,cotrimhexal,cotrimoxazol,cotrimoxazole,cotrimstada,cotriver,dibaprim,drylin,duratrimet,eltrianyl,escoprim,eslectin,esteprim,eusaprim,fectrim,gamazole,gantanol,gantaprim,gantaprin,gantrim,groprim,helveprim,imexim,insozalin,jenamoxazol,kemoprim,kepinol,laratrim,linaris,maxtrim,metoxal,microtrim,mikrosid,momentol,nopil,oecotrim,omsat,oriprim,oxaprim,pantoprim,potrox,primazole,radonil,septra,septrim,servitrim,sigaprim,sigaprin,sulfatrim,sulfotrim,sulfotrimin,sulmeprim,sulprim,sumetrolim,supracombin,suprim,tacumil,teleprim,teleprin,thiocuran,tribakin,trifen,trigonyl,trimedin,trimesulf,trimethoprimsulfa,trimetoger,trimexazol,trimezole,trimforte,trimosulfa,uroplus" "101495-0,18998-5,20387-7,23631-5,25273-4,32342-8,4081-6,515-7,516-5,517-3,518-1,7057-3"
|
"SXT" 358641 "Trimethoprim/sulfamethoxazole" "Trimethoprims" "J01EE01" "Sulfonamides and trimethoprim" "Combinations of sulfonamides and trimethoprim, incl. derivatives" "cot,cotrim,sxt,t/s,tms,trisul,trsu,trsx,ts" "abacin,abactrim,agoprim,alfatrim,aposulfatrim,bacteral,bactilen,bactiver,bacton,bactoreduct,bactrim,bactrizol,bactromin,bactropin,baktar,benzenesulfonamide,berlocid,bibacrim,biseptol,centran,centrin,chemitrim,chemotrim,ciplin,comox,cotribene,cotrim,cotrimhexal,cotrimoxazol,cotrimoxazole,cotrimstada,cotriver,dibaprim,drylin,duratrimet,eltrianyl,escoprim,eslectin,esteprim,eusaprim,fectrim,gamazole,gantanol,gantaprim,gantaprin,gantrim,groprim,helveprim,imexim,insozalin,jenamoxazol,kemoprim,kepinol,laratrim,linaris,maxtrim,metoxal,microtrim,mikrosid,momentol,nopil,oecotrim,omsat,oriprim,oxaprim,pantoprim,potrox,primazole,radonil,septra,septrim,servitrim,sigaprim,sigaprin,sulfatrim,sulfotrim,sulfotrimin,sulmeprim,sulprim,sumetrolim,supracombin,suprim,tacumil,teleprim,teleprin,thiocuran,tribakin,trifen,trigonyl,trimedin,trimesulf,trimethoprimsulfa,trimetoger,trimexazol,trimezole,trimforte,trimosulfa,uroplus" "101495-0,18998-5,20387-7,23631-5,25273-4,32342-8,4081-6,515-7,516-5,517-3,518-1,7057-3"
|
||||||
"TRL" 202225 "Troleandomycin" "Macrolides/lincosamides" "J01FA08" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "aovine,cyclamycin,evramicina,matromicina,oleandocetin,oleandocetine,tekmisin,treolmicina,tribiocillina,triocetin,triolan,troleandomicina,troleandomycine,troleandomycinum,viamicina,wytrion" 1 "g" "18999-3,519-9,520-7,521-5,522-3"
|
"TRL" 202225 "Troleandomycin" "Macrolides/lincosamides" "J01FA08,QJ01FA08" "Macrolides, lincosamides and streptogramins" "Macrolides" "NA" "aovine,cyclamycin,evramicina,matromicina,oleandocetin,oleandocetine,tekmisin,treolmicina,tribiocillina,triocetin,triolan,troleandomicina,troleandomycine,troleandomycinum,viamicina,wytrion" 1 "g" "18999-3,519-9,520-7,521-5,522-3"
|
||||||
"TRO" 55886 "Trospectomycin" "Other antibacterials" "NA" "NA" "trospectinomycin,trospectomicina,trospectomycine,trospectomycinum" "NA"
|
"TRO" 55886 "Trospectomycin" "Other antibacterials" "NA" "trospe" "trospectinomycin,trospectomicina,trospectomycine,trospectomycinum" "NA"
|
||||||
"TVA" 62959 "Trovafloxacin" "Fluoroquinolones" "J01MA13" "Quinolone antibacterials" "Fluoroquinolones" "trov" "trovan,turvel" 0.2 "g" 0.2 "g" "23642-2,23643-0,35855-6,7058-1"
|
"TVA" 62959 "Trovafloxacin" "Fluoroquinolones" "J01MA13,QJ01MA13" "Quinolone antibacterials" "Fluoroquinolones" "trov,trovaf" "trovan,turvel" 0.2 "g" 0.2 "g" "23642-2,23643-0,35855-6,7058-1"
|
||||||
"TUL" 9832301 "Tulathromycin" "Macrolides/lincosamides" "QJ01FA94" "NA" "arovyn,draxxin,increxxa,macrosyn,tulieve,tulissin" "76149-4,87798-5"
|
"TUL" 9832301 "Tulathromycin" "Macrolides/lincosamides" "QJ01FA94" "tulath" "arovyn,draxxin,increxxa,macrosyn,tulieve,tulissin" "76149-4,87798-5"
|
||||||
"TYL" 5280440 "Tylosin" "Macrolides/lincosamides" "QJ01FA90,QJ51FA90" "NA" "fradizine,tilosina,tylan,tylocine,tylosine,tylosinum,vubityl" "35856-4,35857-2,35858-0,87587-2"
|
"TYL" 5280440 "Tylosin" "Macrolides/lincosamides" "QJ01FA90,QJ51FA90" "tylo" "fradizine,tilosina,tylan,tylocine,tylosine,tylosinum,vubityl" "35856-4,35857-2,35858-0,87587-2"
|
||||||
"TYL1" 6441094 "Tylvalosin" "Macrolides/lincosamides" "QJ01FA92" "tvn" "aivlosin" "101526-2,87586-4"
|
"TYL1" 6441094 "Tylvalosin" "Macrolides/lincosamides" "QJ01FA92" "tvn" "aivlosin" "101526-2,87586-4"
|
||||||
"PRU1" 124225 "Ulifloxacin (Prulifloxacin)" "Other antibacterials" "NA" "NA" "ulifloxacin" "NA"
|
"PRU1" 124225 "Ulifloxacin (Prulifloxacin)" "Other antibacterials" "NA" "NA" "NA" "NA"
|
||||||
"VAN" 14969 "Vancomycin" "Glycopeptides" "A07AA09,J01XA01,S01AA28" "Other antibacterials" "Glycopeptide antibacterials" "va,van,vanc" "vancocin,vancoled,vancomicina,vancomycine,vancomycinum" 2 "g" 2 "g" "13586-3,13587-1,19000-9,20578-1,23615-8,25228-8,31012-8,39092-2,39796-8,39797-6,4089-9,4090-7,4091-5,4092-3,50938-0,523-1,524-9,525-6,526-4,59381-4,7059-9,92241-9,97657-1"
|
"VAN" 14969 "Vancomycin" "Glycopeptides" "A07AA09,J01XA01,QA07AA09,QJ01XA01,QS01AA28,S01AA28" "Other antibacterials" "Glycopeptide antibacterials" "va,van,vanc,vancom" "vancocin,vancoled,vancomicina,vancomycine,vancomycinum" 2 "g" 2 "g" "13586-3,13587-1,19000-9,20578-1,23615-8,25228-8,31012-8,39092-2,39796-8,39797-6,4089-9,4090-7,4091-5,4092-3,50938-0,523-1,524-9,525-6,526-4,59381-4,7059-9,92241-9,97657-1"
|
||||||
"VAM" "Vancomycin-macromethod" "Glycopeptides" "NA" "NA" "NA" "NA"
|
"VAM" "Vancomycin-macromethod" "Glycopeptides" "NA" "NA" "NA" "NA"
|
||||||
"VIO" 135398671 "Viomycin" "Antimycobacterials" "NA" "NA" "florimycin,floromycin,vioactane,viocin,viomicin,viomicina,viomycine,viomycinum" "19001-7,23616-6,527-2,528-0,529-8,530-6"
|
"VIO" 135398671 "Viomycin" "Antimycobacterials" "NA" "NA" "florimycin,floromycin,vioactane,viocin,viomicin,viomicina,viomycine,viomycinum" "19001-7,23616-6,527-2,528-0,529-8,530-6"
|
||||||
"VIR" 11979535 "Virginiamycine" "Other antibacterials" "NA" "NA" "NA" "NA"
|
"VIR" 11979535 "Virginiamycine" "Other antibacterials" "NA" "NA" "NA" "NA"
|
||||||
"VOR" 71616 "Voriconazole" "Antifungals/antimycotics" "J02AC03" "Antimycotics for systemic use" "Triazole derivatives" "vori,vrc" "vfend,voriconazol,voriconazolum,voriconzole,vorikonazole" 0.4 "g" 0.4 "g" "32379-0,35862-2,35863-0,38370-3,41199-1,41200-7,53902-3,73676-9,80553-1,80651-3"
|
"VOR" 71616 "Voriconazole" "Antifungals/antimycotics" "J02AC03,QJ02AC03" "Antimycotics for systemic use" "Triazole derivatives" "vori,vorico,vrc" "vfend,voriconazol,voriconazolum,voriconzole,vorikonazole" 0.4 "g" 0.4 "g" "32379-0,35862-2,35863-0,38370-3,41199-1,41200-7,53902-3,73676-9,80553-1,80651-3"
|
||||||
"XBR" 72144 "Xibornol" "Other antibacterials" "J01XX02" "Other antibacterials" "Other antibacterials" "NA" "bactacine,bracen,nanbacine,xibornolo,xibornolum" "NA"
|
"XBR" 72144 "Xibornol" "Other antibacterials" "J01XX02,QJ01XX02" "Other antibacterials" "Other antibacterials" "NA" "bactacine,bracen,nanbacine,xibornolo,xibornolum" "NA"
|
||||||
"ZID" 77846445 "Zidebactam" "Other antibacterials" "NA" "NA" "zidebactamsalt" "NA"
|
"ZID" 77846445 "Zidebactam" "Other antibacterials" "NA" "NA" "zidebactamsalt" "NA"
|
||||||
"ZFD" "Zoliflodacin" "NA" "NA" "NA" "NA"
|
"ZFD" "Zoliflodacin" "NA" "NA" "NA" "NA"
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,171 +1,431 @@
|
|||||||
"ab" "name" "type" "dose" "dose_times" "administration" "notes" "original_txt" "eucast_version"
|
"ab" "name" "type" "dose" "dose_times" "administration" "notes" "original_txt" "eucast_version"
|
||||||
"AMK" "Amikacin" "standard_dosage" "25-30 mg/kg" 1 "iv" "" "25-30 mg/kg x 1 iv" 13
|
"AMK" "Amikacin" "standard_dosage" "25-30 mg/kg" 1 "iv" "" "25-30 mg/kg x 1 iv" 15
|
||||||
"AMX" "Amoxicillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 13
|
"AMX" "Amoxicillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 15
|
||||||
"AMX" "Amoxicillin" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3-4 iv" 13
|
"AMX" "Amoxicillin" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3-4 iv
|
||||||
"AMX" "Amoxicillin" "high_dosage" "0.75-1 g" 3 "oral" "" "0.75-1 g x 3 oral" 13
|
" 15
|
||||||
"AMX" "Amoxicillin" "standard_dosage" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 13
|
"AMX" "Amoxicillin" "high_dosage" "0.75-1 g" 3 "oral" "" "0.75-1 g x 3 oral" 15
|
||||||
"AMX" "Amoxicillin" "uncomplicated_uti" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 13
|
"AMX" "Amoxicillin" "standard_dosage" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 15
|
||||||
"AMC" "Amoxicillin/clavulanic acid" "high_dosage" "2 g + 0.2 g" 3 "iv" "" "(2 g amoxicillin + 0.2 g clavulanic acid) x 3 iv" 13
|
"AMX" "Amoxicillin" "uncomplicated_uti" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 15
|
||||||
"AMC" "Amoxicillin/clavulanic acid" "standard_dosage" "1 g + 0.2 g" 3 "iv" "" "(1 g amoxicillin + 0.2 g clavulanic acid) x 3-4 iv" 13
|
"AMC" "Amoxicillin/clavulanic acid" "high_dosage" "2 g + 0.2 g" 3 "iv" "" "(2 g amoxicillin + 0.2 g clavulanic acid) x 3 iv" 15
|
||||||
"AMC" "Amoxicillin/clavulanic acid" "high_dosage" "0.875 g + 0.125 g" 3 "oral" "" "(0.875 g amoxicillin + 0.125 g clavulanic acid) x 3 oral" 13
|
"AMC" "Amoxicillin/clavulanic acid" "standard_dosage" "1 g + 0.2 g" 3 "iv" "" "(1 g amoxicillin + 0.2 g clavulanic acid) x 3-4 iv" 15
|
||||||
"AMC" "Amoxicillin/clavulanic acid" "standard_dosage" "0.5 g + 0.125 g" 3 "oral" "" "(0.5 g amoxicillin + 0.125 g clavulanic acid) x 3 oral" 13
|
"AMC" "Amoxicillin/clavulanic acid" "high_dosage" "0.875 g + 0.125 g" 3 "oral" "" "(0.875 g amoxicillin + 0.125 g clavulanic acid) x 3 oral" 15
|
||||||
"AMC" "Amoxicillin/clavulanic acid" "uncomplicated_uti" "0.5 g + 0.125 g" 3 "oral" "" "(0.5 g amoxicillin + 0.125 g clavulanic acid) x 3 oral" 13
|
"AMC" "Amoxicillin/clavulanic acid" "standard_dosage" "0.5 g + 0.125 g" 3 "oral" "" "(0.5 g amoxicillin + 0.125 g
|
||||||
"AMP" "Ampicillin" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 13
|
clavulanic acid) x 3 oral" 15
|
||||||
"AMP" "Ampicillin" "standard_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13
|
"AMC" "Amoxicillin/clavulanic acid" "uncomplicated_uti" "0.5 g + 0.125 g" 3 "oral" "" "(0.5 g amoxicillin + 0.125 g
|
||||||
"SAM" "Ampicillin/sulbactam" "high_dosage" "2 g + 1 g" 4 "iv" "" "(2 g ampicillin + 1 g sulbactam) x 4 iv" 13
|
clavulanic acid) x 3 oral" 15
|
||||||
"SAM" "Ampicillin/sulbactam" "standard_dosage" "2 g + 1 g" 3 "iv" "" "(2 g ampicillin + 1 g sulbactam) x 3 iv" 13
|
"AMP" "Ampicillin" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv
|
||||||
"AZM" "Azithromycin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 13
|
" 15
|
||||||
"AZM" "Azithromycin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 13
|
"AMP" "Ampicillin" "standard_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 15
|
||||||
"ATM" "Aztreonam" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 13
|
"SAM" "Ampicillin/sulbactam" "high_dosage" "2 g + 1 g" 4 "iv" "" "(2 g ampicillin + 1 g sulbactam) x 4 iv" 15
|
||||||
"ATM" "Aztreonam" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 13
|
"SAM" "Ampicillin/sulbactam" "standard_dosage" "2 g + 1 g" 3 "iv" "" "(2 g ampicillin + 1 g sulbactam) x 3 iv" 15
|
||||||
"PEN" "Benzylpenicillin" "high_dosage" "1.2 g" 4 "iv" "" "1.2 g (2 MU) x 4-6 iv" 13
|
"AZM" "Azithromycin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 15
|
||||||
"PEN" "Benzylpenicillin" "standard_dosage" "0.6 g" 4 "iv" "" "0.6 g (1 MU) x 4 iv" 13
|
"AZM" "Azithromycin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 15
|
||||||
"CEC" "Cefaclor" "high_dosage" "1 g" 3 "oral" "" "1 g x 3 oral" 13
|
"ATM" "Aztreonam" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 15
|
||||||
"CEC" "Cefaclor" "standard_dosage" "0.25-0.5 g" 3 "oral" "" "0.25-0.5 g x 3 oral" 13
|
"ATM" "Aztreonam" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 15
|
||||||
"CFR" "Cefadroxil" "standard_dosage" "0.5-1 g" 2 "oral" "" "0.5-1 g x 2 oral" 13
|
"AZA" "Aztreonam/avibactam" "standard_dosage" "2 g + 0.67 g" 1 "" "over 3 hours" "(2 g aztreonam + 0.67 g avibactam) x 1
|
||||||
"CFR" "Cefadroxil" "uncomplicated_uti" "0.5-1 g" 2 "oral" "" "0.5-1 g x 2 oral" 13
|
followed by (1.5 g aztreonam + 0.5 g avibactam) x 4 iv over 3 hours" 15
|
||||||
"LEX" "Cefalexin" "standard_dosage" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 13
|
"PEN" "Benzylpenicillin" "high_dosage" "1.2 g" 6 "iv" "" "1.2 g (2 MU) x 6 iv" 15
|
||||||
"LEX" "Cefalexin" "uncomplicated_uti" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 13
|
"PEN" "Benzylpenicillin" "standard_dosage" "0.6 g" 4 "iv" "" "0.6 g (1 MU) x 4 iv" 15
|
||||||
"CZO" "Cefazolin" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13
|
"CEC" "Cefaclor" "high_dosage" "1 g" 3 "oral" "" 15
|
||||||
"CZO" "Cefazolin" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 13
|
"CEC" "Cefaclor" "standard_dosage" "0.25-0.5 g" 3 "oral" "" "0.25-0.5 g x 3 oral" 15
|
||||||
"FEP" "Cefepime" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13
|
"CFR" "Cefadroxil" "standard_dosage" "0.5-1 g" 2 "oral" "" "0.5-1 g x 2 oral" 15
|
||||||
"FEP" "Cefepime" "standard_dosage" "2 g" 2 "iv" "" "2 g x 2 iv" 13
|
"CFR" "Cefadroxil" "uncomplicated_uti" "0.5-1 g" 2 "oral" "" "0.5-1 g x 2 oral" 15
|
||||||
"FDC" "Cefiderocol" "standard_dosage" "2 g" 3 "iv" "over 3 hours" "2 g x 3 iv over 3 hours" 13
|
"LEX" "Cefalexin" "standard_dosage" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 15
|
||||||
"CFM" "Cefixime" "standard_dosage" "0.2-0.4 g" 2 "oral" "" "0.2-0.4 g x 2 oral" 13
|
"LEX" "Cefalexin" "uncomplicated_uti" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 15
|
||||||
"CFM" "Cefixime" "uncomplicated_uti" "0.2-0.4 g" 2 "oral" "" "0.2-0.4 g x 2 oral" 13
|
"CZO" "Cefazolin" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 15
|
||||||
"CTX" "Cefotaxime" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13
|
"CZO" "Cefazolin" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 15
|
||||||
"CTX" "Cefotaxime" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 13
|
"FEP" "Cefepime" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 15
|
||||||
"CPD" "Cefpodoxime" "standard_dosage" "0.1-0.2 g" 2 "oral" "" "0.1-0.2 g x 2 oral" 13
|
"FEP" "Cefepime" "standard_dosage" "2 g" 2 "iv" "" "2 g x 2 iv" 15
|
||||||
"CPD" "Cefpodoxime" "uncomplicated_uti" "0.1-0.2 g" 2 "oral" "" "0.1-0.2 g x 2 oral" 13
|
"FPE" "Cefepime/enmetazobactam" "standard_dosage" "2 g + 0.5 g" 3 "iv" "over 4 hours" "(2 g cefepime + 0.5 g enmetazobactam) x 3 iv over 4 hours" 15
|
||||||
"CPT" "Ceftaroline" "high_dosage" "0.6 g" 3 "iv" "over 2 hours" "0.6 g x 3 iv over 2 hours" 13
|
"FPE" "Cefepime/enmetazobactam" "standard_dosage" "2 g + 0.5 g" 3 "iv" "over 2 hours" "(2 g cefepime + 0.5 g enmetazobactam) x 3 iv over 2 hours" 15
|
||||||
"CPT" "Ceftaroline" "standard_dosage" "0.6 g" 2 "iv" "over 1 hour" "0.6 g x 2 iv over 1 hour" 13
|
"FDC" "Cefiderocol" "standard_dosage" "2 g" 3 "iv" "over 3 hours" "2 g x 3 iv over 3 hours" 15
|
||||||
"CAZ" "Ceftazidime" "high_dosage" "1 g" 6 "iv" "" "1 g x 6 iv" 13
|
"CFM" "Cefixime" "standard_dosage" "0.2-0.4 g" 2 "oral" "" "0.2-0.4 g x 2 oral" 15
|
||||||
"CAZ" "Ceftazidime" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 13
|
"CFM" "Cefixime" "uncomplicated_uti" "0.2-0.4 g" 2 "oral" "" "0.2-0.4 g x 2 oral" 15
|
||||||
"CZA" "Ceftazidime/avibactam" "standard_dosage" "2 g + 0.5 g" 3 "iv" "over 2 hours" "(2 g ceftazidime + 0.5 g avibactam) x 3 iv over 2 hours" 13
|
"CTX" "Cefotaxime" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 15
|
||||||
"CTB" "Ceftibuten" "standard_dosage" "0.4 g" 1 "oral" "" "0.4 g x 1 oral" 13
|
"CTX" "Cefotaxime" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 15
|
||||||
"BPR" "Ceftobiprole" "standard_dosage" "0.5 g" 3 "iv" "over 2 hours" "0.5 g x 3 iv over 2 hours" 13
|
"CPD" "Cefpodoxime" "standard_dosage" "0.1-0.2 g" 2 "oral" "" "0.1-0.2 g x 2 oral" 15
|
||||||
"CZT" "Ceftolozane/tazobactam" "standard_dosage" "1 g + 0.5 g" 3 "iv" "over 1 hour" "(1 g ceftolozane + 0.5 g tazobactam) x 3 iv over 1 hour" 13
|
"CPD" "Cefpodoxime" "uncomplicated_uti" "0.1-0.2 g" 2 "oral" "" "0.1-0.2 g x 2 oral" 15
|
||||||
"CZT" "Ceftolozane/tazobactam" "standard_dosage" "2 g + 1 g" 3 "iv" "over 1 hour" "(2 g ceftolozane + 1 g tazobactam) x 3 iv over 1 hour" 13
|
"CPT" "Ceftaroline" "high_dosage" "0.6 g" 3 "iv" "over 2 hours" "0.6 g x 3 iv over 2 hours" 15
|
||||||
"CRO" "Ceftriaxone" "high_dosage" "4 g" 1 "iv" "" "4 g x 1 iv" 13
|
"CPT" "Ceftaroline" "standard_dosage" "0.6 g" 2 "iv" "over 1 hour" "0.6 g x 2 iv over 1 hour" 15
|
||||||
"CRO" "Ceftriaxone" "standard_dosage" "2 g" 1 "iv" "" "2 g x 1 iv" 13
|
"CAZ" "Ceftazidime" "high_dosage" "1 g" 6 "iv" "" "1 g x 6 iv" 15
|
||||||
"CXM" "Cefuroxime" "high_dosage" "1.5 g" 3 "iv" "" "1.5 g x 3 iv" 13
|
"CAZ" "Ceftazidime" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 15
|
||||||
"CXM" "Cefuroxime" "standard_dosage" "0.75 g" 3 "iv" "" "0.75 g x 3 iv" 13
|
"CZA" "Ceftazidime/avibactam" "standard_dosage" "2 g + 0.5 g" 3 "iv" "over 2 hours" "(2 g ceftazidime + 0.5 g avibactam) x 3 iv over 2 hours" 15
|
||||||
"CXM" "Cefuroxime" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13
|
"CTB" "Ceftibuten" "standard_dosage" "0.4 g" 1 "oral" "" "0.4 g x 1 oral" 15
|
||||||
"CXM" "Cefuroxime" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 13
|
"BPR" "Ceftobiprole" "standard_dosage" "0.5 g" 3 "iv" "over 2 hours" "0.5 g x 3 iv over 2 hours" 15
|
||||||
"CXM" "Cefuroxime" "uncomplicated_uti" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 13
|
"CZT" "Ceftolozane/tazobactam" "standard_dosage" "1 g + 0.5 g" 3 "iv" "over 1 hour" "(1 g ceftolozane + 0.5 g tazobactam) x 3 iv over 1 hour" 15
|
||||||
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 13
|
"CZT" "Ceftolozane/tazobactam" "standard_dosage" "2 g + 1 g" 3 "iv" "over 1 hour" "(2 g ceftolozane + 1 g tazobactam)
|
||||||
"CHL" "Chloramphenicol" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 13
|
x 3 iv over 1 hour" 15
|
||||||
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "oral" "" "2 g x 4 oral" 13
|
"CRO" "Ceftriaxone" "high_dosage" "4 g" 1 "iv" "" "4 g x 1 iv" 15
|
||||||
"CHL" "Chloramphenicol" "standard_dosage" "1 g" 4 "oral" "" "1 g x 4 oral" 13
|
"CRO" "Ceftriaxone" "standard_dosage" "2 g" 1 "iv" "" "2 g x 1 iv" 15
|
||||||
"CIP" "Ciprofloxacin" "high_dosage" "0.4 g" 3 "iv" "" "0.4 g x 3 iv" 13
|
"CXM" "Cefuroxime" "high_dosage" "1.5 g" 3 "iv" "" "1.5 g x 3 iv" 15
|
||||||
"CIP" "Ciprofloxacin" "standard_dosage" "0.4 g" 2 "iv" "" "0.4 g x 2 iv" 13
|
"CXM" "Cefuroxime" "standard_dosage" "0.75 g" 3 "iv" "" "0.75 g x 3 iv" 15
|
||||||
"CIP" "Ciprofloxacin" "high_dosage" "0.75 g" 2 "oral" "" "0.75 g x 2 oral" 13
|
"CXM" "Cefuroxime" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 15
|
||||||
"CIP" "Ciprofloxacin" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13
|
"CXM" "Cefuroxime" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 15
|
||||||
"CLR" "Clarithromycin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13
|
"CXM" "Cefuroxime" "uncomplicated_uti" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 15
|
||||||
"CLR" "Clarithromycin" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 13
|
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 15
|
||||||
"CLI" "Clindamycin" "high_dosage" "0.9 g" 3 "iv" "" "0.9 g x 3 iv" 13
|
"CHL" "Chloramphenicol" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 15
|
||||||
"CLI" "Clindamycin" "standard_dosage" "0.6 g" 3 "iv" "" "0.6 g x 3 iv" 13
|
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "oral" "" "2 g x 4 oral" 15
|
||||||
"CLI" "Clindamycin" "high_dosage" "0.3 g" 4 "oral" "" "0.3 g x 4 oral" 13
|
"CHL" "Chloramphenicol" "standard_dosage" "1 g" 4 "oral" "" "1 g x 4 oral" 15
|
||||||
"CLI" "Clindamycin" "standard_dosage" "0.3 g" 2 "oral" "" "0.3 g x 2 oral" 13
|
"CIP" "Ciprofloxacin" "high_dosage" "0.4 g" 3 "iv" "" "0.4 g x 3 iv" 15
|
||||||
"CLO" "Cloxacillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 13
|
"CIP" "Ciprofloxacin" "standard_dosage" "0.4 g" 2 "iv" "" "0.4 g x 2 iv" 15
|
||||||
"CLO" "Cloxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 13
|
"CIP" "Ciprofloxacin" "high_dosage" "0.75 g" 2 "oral" "" "0.75 g x 2 oral" 15
|
||||||
"CLO" "Cloxacillin" "high_dosage" "1 g" 4 "oral" "" "1 g x 4 oral" 13
|
"CIP" "Ciprofloxacin" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 15
|
||||||
"CLO" "Cloxacillin" "standard_dosage" "0.5 g" 4 "oral" "" "0.5 g x 4 oral" 13
|
"CLR" "Clarithromycin" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 15
|
||||||
"COL" "Colistin" "standard_dosage" "4.5 MU" 2 "iv" "loading dose of 9 MU" "4.5 MU x 2 iv with a loading dose of 9 MU" 13
|
"CLI" "Clindamycin" "standard_dosage" "0.6 g" 3 "iv" "" "0.6 g x 3 iv" 15
|
||||||
"DAL" "Dalbavancin" "standard_dosage" "1 g" 1 "iv" "over 30 minutes on day 8" "1 g x 1 iv over 30 minutes on day 1 If needed, 0.5 g x 1 iv over 30 minutes on day 8" 13
|
"CLI" "Clindamycin" "standard_dosage" "0.3 g" 2 "oral" "" "0.3 g x 2 oral" 15
|
||||||
"DAP" "Daptomycin" "standard_dosage" "4 mg/kg" 1 "iv" "" "4 mg/kg x 1 iv" 13
|
"CLO" "Cloxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 15
|
||||||
"DAP" "Daptomycin" "standard_dosage" "6 mg/kg" 1 "iv" "" "6 mg/kg x 1 iv" 13
|
"CLO" "Cloxacillin" "standard_dosage" "0.5 g" 4 "oral" "" "0.5 g x 4 oral" 15
|
||||||
"DFX" "Delafloxacin" "standard_dosage" "0.3 g" 2 "iv" "" "0.3 g x 2 iv" 13
|
"COL" "Colistin" "standard_dosage" "4.5 MU" 2 "iv" "loading dose of 9 MU" "4.5 MU x 2 iv
|
||||||
"DFX" "Delafloxacin" "standard_dosage" "0.45 g" 2 "oral" "" "0.45 g x 2 oral" 13
|
with a loading dose of 9 MU" 15
|
||||||
"DIC" "Dicloxacillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 13
|
"DAL" "Dalbavancin" "standard_dosage" "1 g" 1 "iv" "over 30 minutes on day 8" "1 g x 1 iv over 30 minutes on day 1
|
||||||
"DIC" "Dicloxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 13
|
If needed, 0.5 g x 1 iv over 30 minutes on day 8" 15
|
||||||
"DIC" "Dicloxacillin" "high_dosage" "2 g" 4 "oral" "" "2 g x 4 oral" 13
|
"DAP" "Daptomycin" "standard_dosage" "4 mg/kg" 1 "iv" "" "4 mg/kg x 1 iv" 15
|
||||||
"DIC" "Dicloxacillin" "standard_dosage" "0.5-1 g" 4 "oral" "" "0.5-1 g x 4 oral" 13
|
"DAP" "Daptomycin" "standard_dosage" "6 mg/kg" 1 "iv" "" "6 mg/kg x 1 iv" 15
|
||||||
"DOR" "Doripenem" "high_dosage" "1 g" 3 "iv" "over 1 hour" "1 g x 3 iv over 1 hour" 13
|
"DFX" "Delafloxacin" "standard_dosage" "0.3 g" 2 "iv" "" "0.3 g x 2 iv" 15
|
||||||
"DOR" "Doripenem" "standard_dosage" "0.5 g" 3 "iv" "over 1 hour" "0.5 g x 3 iv over 1 hour" 13
|
"DFX" "Delafloxacin" "standard_dosage" "0.45 g" 2 "oral" "" "0.45 g x 2 oral" 15
|
||||||
"DOX" "Doxycycline" "high_dosage" "0.2 g" 1 "oral" "" "0.2 g x 1 oral" 13
|
"DIC" "Dicloxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 15
|
||||||
"DOX" "Doxycycline" "standard_dosage" "0.1 g" 1 "oral" "" "0.1 g x 1 oral" 13
|
"DIC" "Dicloxacillin" "standard_dosage" "0.5-1 g" 4 "oral" "" "0.5-1 g x 4 oral" 15
|
||||||
"ERV" "Eravacycline" "standard_dosage" "1 mg/kg" 2 "iv" "" "1 mg/kg x 2 iv" 13
|
"DOR" "Doripenem" "high_dosage" "1 g" 3 "iv" "over 1 hour" "1 g x 3 iv over 1 hour" 15
|
||||||
"ETP" "Ertapenem" "standard_dosage" "1 g" 1 "iv" "over 30 minutes" "1 g x 1 iv over 30 minutes" 13
|
"DOR" "Doripenem" "standard_dosage" "0.5 g" 3 "iv" "over 1 hour" "0.5 g x 3 iv over 1 hour" 15
|
||||||
"ERY" "Erythromycin" "high_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 13
|
"DOX" "Doxycycline" "standard_dosage" "0.1 g" 1 "oral" "" "0.1 g x 1 oral" 15
|
||||||
"ERY" "Erythromycin" "standard_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2-4 iv" 13
|
"ERV" "Eravacycline" "standard_dosage" "1 mg/kg" 2 "iv" "" "1 mg/kg x 2 iv" 15
|
||||||
"ERY" "Erythromycin" "high_dosage" "1 g" 4 "oral" "" "1 g x 4 oral" 13
|
"ETP" "Ertapenem" "standard_dosage" "1 g" 1 "iv" "over 30 minutes" "1 g x 1 iv over 30 minutes" 15
|
||||||
"ERY" "Erythromycin" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2-4 oral" 13
|
"ERY" "Erythromycin" "standard_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2-4 iv" 15
|
||||||
"FDX" "Fidaxomicin" "standard_dosage" "0.2 g" 2 "oral" "" "0.2 g x 2 oral" 13
|
"ERY" "Erythromycin" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2-4 oral" 15
|
||||||
"FLC" "Flucloxacillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 13
|
"FDX" "Fidaxomicin" "standard_dosage" "0.2 g" 2 "oral" "" "0.2 g x 2 oral" 15
|
||||||
"FLC" "Flucloxacillin" "standard_dosage" "2 g" 4 "iv" "" "2 g x 4 iv (or 1 g x 6 iv)" 13
|
"FLC" "Flucloxacillin" "standard_dosage" "2 g" 4 "iv" "" "2 g x 4 iv
|
||||||
"FLC" "Flucloxacillin" "high_dosage" "1 g" 4 "oral" "" "1 g x 4 oral" 13
|
(or 1 g x 6 iv)" 15
|
||||||
"FLC" "Flucloxacillin" "standard_dosage" "1 g" 3 "oral" "" "1 g x 3 oral" 13
|
"FLC" "Flucloxacillin" "standard_dosage" "1 g" 3 "oral" "" "1 g x 3 oral" 15
|
||||||
"FOS" "Fosfomycin" "high_dosage" "8 g" 3 "iv" "" "8 g x 3 iv" 13
|
"FUS" "Fusidic acid" "standard_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 15
|
||||||
"FOS" "Fosfomycin" "standard_dosage" "4 g" 3 "iv" "" "4 g x 3 iv" 13
|
"FUS" "Fusidic acid" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 15
|
||||||
"FUS" "Fusidic acid" "high_dosage" "0.5 g" 3 "iv" "" "0.5 g x 3 iv" 13
|
"GEN" "Gentamicin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 15
|
||||||
"FUS" "Fusidic acid" "standard_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 13
|
"IPM" "Imipenem" "high_dosage" "1 g" 4 "iv" "over 30 minutes" "1 g x 4 iv over 30 minutes" 15
|
||||||
"FUS" "Fusidic acid" "high_dosage" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 13
|
"IPM" "Imipenem" "standard_dosage" "0.5 g" 4 "iv" "over 30 minutes" "0.5 g x 4 iv over 30 minutes" 15
|
||||||
"FUS" "Fusidic acid" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13
|
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam)
|
||||||
"GEN" "Gentamicin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 13
|
x 4 iv over 30 minutes" 15
|
||||||
"IPM" "Imipenem" "high_dosage" "1 g" 4 "iv" "over 30 minutes" "1 g x 4 iv over 30 minutes" 13
|
"LMU" "Lefamulin" "standard_dosage" "0.15 g" 2 "iv" "or 0.6 g x 2 oral" "0.15 g x 2 iv or 0.6 g x 2 oral" 15
|
||||||
"IPM" "Imipenem" "standard_dosage" "0.5 g" 4 "iv" "over 30 minutes" "0.5 g x 4 iv over 30 minutes" 13
|
"LMU" "Lefamulin" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 15
|
||||||
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam) x 4 iv over 30 minutes" 13
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 15
|
||||||
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam) x 4 iv over 30 minutes" 13
|
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 15
|
||||||
"LMU" "Lefamulin" "standard_dosage" "0.15 g" 2 "iv" "or 0.6 g x 2 oral" "0.15 g x 2 iv or 0.6 g x 2 oral" 13
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 15
|
||||||
"LMU" "Lefamulin" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 13
|
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 15
|
||||||
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 13
|
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "iv" "" "0.6 g x 2 iv" 15
|
||||||
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 13
|
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 15
|
||||||
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13
|
"MEM" "Meropenem" "high_dosage" "2 g" 3 "iv" "over 3 hours" "2 g x 3 iv over 3 hours" 15
|
||||||
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 13
|
"MEM" "Meropenem" "standard_dosage" "1 g" 3 "iv" "over 30 minutes" "1 g x 3 iv over 30 minutes" 15
|
||||||
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "iv" "" "0.6 g x 2 iv" 13
|
"MEV" "Meropenem/vaborbactam" "standard_dosage" "2 g + 2 g" 3 "iv" "over 3 hours" "(2 g meropenem + 2 g vaborbactam) x 3 iv over 3 hours" 15
|
||||||
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 13
|
"MTR" "Metronidazole" "standard_dosage" "0.4 g" 3 "iv" "" "0.4 g x 3 iv" 15
|
||||||
"MEM" "Meropenem" "high_dosage" "2 g" 3 "iv" "over 3 hours" "2 g x 3 iv over 3 hours" 13
|
"MTR" "Metronidazole" "standard_dosage" "0.4 g" 3 "oral" "" "0.4 g x 3 oral" 15
|
||||||
"MEM" "Meropenem" "standard_dosage" "1 g" 3 "iv" "over 30 minutes" "1 g x 3 iv over 30 minutes" 13
|
"MNO" "Minocycline" "standard_dosage" "0.1 g" 2 "oral" "" "0.1 g x 2 oral" 15
|
||||||
"MEV" "Meropenem/vaborbactam" "standard_dosage" "2 g + 2 g" 3 "iv" "over 3 hours" "(2 g meropenem + 2 g vaborbactam) x 3 iv over 3 hours" 13
|
"MFX" "Moxifloxacin" "standard_dosage" "0.4 g" 1 "iv" "" "0.4 g x 1 iv" 15
|
||||||
"MTR" "Metronidazole" "high_dosage" "0.5 g" 3 "iv" "" "0.5 g x 3 iv" 13
|
"MFX" "Moxifloxacin" "standard_dosage" "0.4 g" 1 "oral" "" "0.4 g x 1 oral" 15
|
||||||
"MTR" "Metronidazole" "standard_dosage" "0.4 g" 3 "iv" "" "0.4 g x 3 iv" 13
|
"NET" "Netilmicin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 15
|
||||||
"MTR" "Metronidazole" "high_dosage" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 13
|
"OFX" "Ofloxacin" "high_dosage" "0.4 g" 2 "iv" "" "0.4 g x 2 iv" 15
|
||||||
"MTR" "Metronidazole" "standard_dosage" "0.4 g" 3 "oral" "" "0.4 g x 3 oral" 13
|
"OFX" "Ofloxacin" "standard_dosage" "0.2 g" 2 "iv" "" "0.2 g x 2 iv" 15
|
||||||
"MNO" "Minocycline" "standard_dosage" "0.1 g" 2 "oral" "" "0.1 g x 2 oral" 13
|
"OFX" "Ofloxacin" "high_dosage" "0.4 g" 2 "oral" "" "0.4 g x 2 oral" 15
|
||||||
"MFX" "Moxifloxacin" "standard_dosage" "0.4 g" 1 "iv" "" "0.4 g x 1 iv" 13
|
"OFX" "Ofloxacin" "standard_dosage" "0.2 g" 2 "oral" "" "0.2 g x 2 oral" 15
|
||||||
"MFX" "Moxifloxacin" "standard_dosage" "0.4 g" 1 "oral" "" "0.4 g x 1 oral" 13
|
"ORI" "Oritavancin" "standard_dosage" "1.2 g" 1 "iv" "" "1.2 g x 1 (single dose) iv
|
||||||
"OFX" "Ofloxacin" "high_dosage" "0.4 g" 2 "iv" "" "0.4 g x 2 iv" 13
|
over 3 hours" 15
|
||||||
"OFX" "Ofloxacin" "standard_dosage" "0.2 g" 2 "iv" "" "0.2 g x 2 iv" 13
|
"OXA" "Oxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 15
|
||||||
"OFX" "Ofloxacin" "high_dosage" "0.4 g" 2 "oral" "" "0.4 g x 2 oral" 13
|
"PHN" "Phenoxymethylpenicillin" "standard_dosage" "0.5-2 g" 3 "oral" "" "0.5-2 g x 3-4 oral" 15
|
||||||
"OFX" "Ofloxacin" "standard_dosage" "0.2 g" 2 "oral" "" "0.2 g x 2 oral" 13
|
"PIP" "Piperacillin" "high_dosage" "4 g" 4 "iv" "" "4 g x 4 iv
|
||||||
"ORI" "Oritavancin" "standard_dosage" "1.2 g" 1 "iv" "" "1.2 g x 1 (single dose) iv over 3 hours" 13
|
by extended 3-hour infusion" 15
|
||||||
"OXA" "Oxacillin" "high_dosage" "1 g" 6 "iv" "" "1 g x 6 iv" 13
|
"PIP" "Piperacillin" "standard_dosage" "4 g" 4 "iv" "" "4 g x 4 iv" 15
|
||||||
"OXA" "Oxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 13
|
"TZP" "Piperacillin/tazobactam" "high_dosage" "4 g + 0.5 g" 4 "iv" "" "(4 g piperacillin + 0.5 g tazobactam)
|
||||||
"PHN" "Phenoxymethylpenicillin" "standard_dosage" "0.5-2 g" 3 "oral" "" "0.5-2 g x 3-4 oral" 13
|
x 4 iv by extended 3-hour infusion" 15
|
||||||
"PIP" "Piperacillin" "high_dosage" "4 g" 4 "iv" "" "4 g x 4 iv by extended 3-hour infusion" 13
|
"TZP" "Piperacillin/tazobactam" "standard_dosage" "" 3 "iv" "" "
|
||||||
"PIP" "Piperacillin" "standard_dosage" "4 g" 4 "iv" "" "4 g x 4 iv" 13
|
x 3 iv by extended 4-hour infusion" 15
|
||||||
"TZP" "Piperacillin/tazobactam" "high_dosage" "4 g + 0.5 g" 4 "iv" "" "(4 g piperacillin + 0.5 g tazobactam) x 4 iv by extended 3-hour infusion" 13
|
"QDA" "Quinupristin/dalfopristin" "standard_dosage" "7.5 mg/kg" 2 "iv" "" "7.5 mg/kg x 2 iv" 15
|
||||||
"TZP" "Piperacillin/tazobactam" "standard_dosage" "4 g + 0.5 g" 4 "iv" "" "(4 g piperacillin + 0.5 g tazobactam) x 4 iv 30-minute infusion or x 3 iv by extended 4-hour infusion" 13
|
"RIF" "Rifampicin" "standard_dosage" "0.6 g" 1 "iv" "" "0.6 g x 1 iv" 15
|
||||||
"QDA" "Quinupristin/dalfopristin" "high_dosage" "7.5 mg/kg" 3 "iv" "" "7.5 mg/kg x 3 iv" 13
|
"RIF" "Rifampicin" "standard_dosage" "0.6 g" 1 "oral" "" "0.6 g x 1 oral" 15
|
||||||
"QDA" "Quinupristin/dalfopristin" "standard_dosage" "7.5 mg/kg" 2 "iv" "" "7.5 mg/kg x 2 iv" 13
|
"RXT" "Roxithromycin" "standard_dosage" "0.15 g" 2 "oral" "" "0.15 g x 2 oral" 15
|
||||||
"RIF" "Rifampicin" "standard_dosage" "0.6 g" 1 "iv" "" "0.6 g x 1 iv" 13
|
"SPT" "Spectinomycin" "standard_dosage" "2 g" 1 "im" "" "2 g x 1 im" 15
|
||||||
"RIF" "Rifampicin" "standard_dosage" "0.6 g" 1 "oral" "" "0.6 g x 1 oral" 13
|
"TZD" "Tedizolid" "standard_dosage" "0.2 g" 1 "iv" "" "0.2 g x 1 iv" 15
|
||||||
"RXT" "Roxithromycin" "standard_dosage" "0.15 g" 2 "oral" "" "0.15 g x 2 oral" 13
|
"TZD" "Tedizolid" "standard_dosage" "0.2 g" 1 "oral" "" "0.2 g x 1 oral" 15
|
||||||
"SPT" "Spectinomycin" "standard_dosage" "2 g" 1 "im" "" "2 g x 1 im" 13
|
"TEC" "Teicoplanin" "standard_dosage" "0.4 g" 1 "iv" "" "0.4 g x 1 iv" 15
|
||||||
"TZD" "Tedizolid" "standard_dosage" "0.2 g" 1 "iv" "" "0.2 g x 1 iv" 13
|
"TLV" "Telavancin" "standard_dosage" "10 mg/kg" 1 "iv" "over 1 hour" "10 mg/kg x 1 iv over 1 hour" 15
|
||||||
"TZD" "Tedizolid" "standard_dosage" "0.2 g" 1 "oral" "" "0.2 g x 1 oral" 13
|
"TEM" "Temocillin" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 15
|
||||||
"TEC" "Teicoplanin" "high_dosage" "0.8 g" 1 "iv" "" "0.8 g x 1 iv" 13
|
"TEM" "Temocillin" "standard_dosage" "2 g" 2 "iv" "" "2 g x 2 iv" 15
|
||||||
"TEC" "Teicoplanin" "standard_dosage" "0.4 g" 1 "iv" "" "0.4 g x 1 iv" 13
|
"TCY" "Tetracycline" "standard_dosage" "0.25 g" 4 "oral" "" "0.25 g x 4 oral" 15
|
||||||
"TLV" "Telavancin" "standard_dosage" "10 mg/kg" 1 "iv" "over 1 hour" "10 mg/kg x 1 iv over 1 hour" 13
|
"TCC" "Ticarcillin/clavulanic acid" "high_dosage" "3 g + 0.1 g" 6 "iv" "" "(3 g ticarcillin + 0.1 g clavulanic acid) x 6 iv" 15
|
||||||
"TLT" "Telithromycin" "standard_dosage" "0.8 g" 1 "oral" "" "0.8 g x 1 oral" 13
|
"TCC" "Ticarcillin/clavulanic acid" "standard_dosage" "3 g + 0.1-0.2 g" 4 "iv" "" "(3 g ticarcillin + 0.1-0.2 g clavulanic acid) x 4 iv" 15
|
||||||
"TEM" "Temocillin" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13
|
"TGC" "Tigecycline" "standard_dosage" "0.1 g" "loading dose
|
||||||
"TEM" "Temocillin" "standard_dosage" "2 g" 2 "iv" "" "2 g x 2 iv" 13
|
followed by 50 mg x 2 iv" "0.1 g loading dose
|
||||||
"TCY" "Tetracycline" "high_dosage" "0.5 g" 4 "oral" "" "0.5 g x 4 oral" 13
|
followed by 50 mg x 2 iv" 15
|
||||||
"TCY" "Tetracycline" "standard_dosage" "0.25 g" 4 "oral" "" "0.25 g x 4 oral" 13
|
"TOB" "Tobramycin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 15
|
||||||
"TIC" "Ticarcillin" "high_dosage" "3 g" 6 "iv" "" "3 g x 6 iv" 13
|
"SXT" "Trimethoprim/sulfamethoxazole" "high_dosage" "0.24 g + 1.2 g" 2 "oral" "" "(0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 oral" 15
|
||||||
"TIC" "Ticarcillin" "standard_dosage" "3 g" 4 "iv" "" "3 g x 4 iv" 13
|
"SXT" "Trimethoprim/sulfamethoxazole" "high_dosage" "0.24 g + 1.2 g" 2 "oral" "" "(0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 oral
|
||||||
"TCC" "Ticarcillin/clavulanic acid" "high_dosage" "3 g + 0.1 g" 6 "iv" "" "(3 g ticarcillin + 0.1 g clavulanic acid) x 6 iv" 13
|
or (0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 iv" 15
|
||||||
"TCC" "Ticarcillin/clavulanic acid" "standard_dosage" "3 g + 0.1-0.2 g" 4 "iv" "" "(3 g ticarcillin + 0.1-0.2 g clavulanic acid) x 4 iv" 13
|
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 15
|
||||||
"TGC" "Tigecycline" "standard_dosage" "0.1 g" "loading dose followed by 50 mg x 2 iv" "0.1 g loading dose followed by 50 mg x 2 iv" 13
|
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral
|
||||||
"TOB" "Tobramycin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 13
|
or (0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 iv" 15
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "high_dosage" "0.24 g + 1.2 g" 2 "oral" "" "(0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 oral" 13
|
"SXT" "Trimethoprim/sulfamethoxazole" "uncomplicated_uti" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 15
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "high_dosage" "0.24 g + 1.2 g" 2 "oral" "" "(0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 oral or (0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 iv" 13
|
"VAN" "Vancomycin" "standard_dosage" "1 g" 2 "iv" "" "1 g x 2 iv
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 13
|
or 2 g x 1 by continuous infusion" 15
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral or (0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 iv" 13
|
"AMK" "Amikacin" "standard_dosage" "25-30 mg/kg" 1 "iv" "" "25-30 mg/kg x 1 iv" 14
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "uncomplicated_uti" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 13
|
"AMX" "Amoxicillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 14
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "uncomplicated_uti" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 13
|
"AMX" "Amoxicillin" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3-4 iv
|
||||||
"VAN" "Vancomycin" "standard_dosage" "1 g" 2 "iv" "" "1 g x 2 iv or 2 g x 1 by continuous infusion" 13
|
" 14
|
||||||
|
"AMX" "Amoxicillin" "high_dosage" "0.75-1 g" 3 "oral" "" "0.75-1 g x 3 oral" 14
|
||||||
|
"AMX" "Amoxicillin" "standard_dosage" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 14
|
||||||
|
"AMX" "Amoxicillin" "uncomplicated_uti" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 14
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "high_dosage" "2 g + 0.2 g" 3 "iv" "" "(2 g amoxicillin + 0.2 g clavulanic acid) x 3 iv" 14
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "standard_dosage" "1 g + 0.2 g" 3 "iv" "" "(1 g amoxicillin + 0.2 g clavulanic acid) x 3-4 iv" 14
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "high_dosage" "0.875 g + 0.125 g" 3 "oral" "" "(0.875 g amoxicillin + 0.125 g clavulanic acid) x 3 oral" 14
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "standard_dosage" "0.5 g + 0.125 g" 3 "oral" "" "(0.5 g amoxicillin + 0.125 g
|
||||||
|
clavulanic acid) x 3 oral" 14
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "uncomplicated_uti" "0.5 g + 0.125 g" 3 "oral" "" "(0.5 g amoxicillin + 0.125 g
|
||||||
|
clavulanic acid) x 3 oral" 14
|
||||||
|
"AMP" "Ampicillin" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv
|
||||||
|
" 14
|
||||||
|
"AMP" "Ampicillin" "standard_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 14
|
||||||
|
"SAM" "Ampicillin/sulbactam" "high_dosage" "2 g + 1 g" 4 "iv" "" "(2 g ampicillin + 1 g sulbactam) x 4 iv" 14
|
||||||
|
"SAM" "Ampicillin/sulbactam" "standard_dosage" "2 g + 1 g" 3 "iv" "" "(2 g ampicillin + 1 g sulbactam) x 3 iv" 14
|
||||||
|
"AZM" "Azithromycin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 14
|
||||||
|
"AZM" "Azithromycin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 14
|
||||||
|
"ATM" "Aztreonam" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 14
|
||||||
|
"ATM" "Aztreonam" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 14
|
||||||
|
"PEN" "Benzylpenicillin" "high_dosage" "1.2 g" 4 "iv" "" "1.2 g (2 MU) x 4-6 iv" 14
|
||||||
|
"PEN" "Benzylpenicillin" "standard_dosage" "0.6 g" 4 "iv" "" "0.6 g (1 MU) x 4 iv" 14
|
||||||
|
"CEC" "Cefaclor" "high_dosage" "1 g" 3 "oral" "" 14
|
||||||
|
"CEC" "Cefaclor" "standard_dosage" "0.25-0.5 g" 3 "oral" "" "0.25-0.5 g x 3 oral" 14
|
||||||
|
"CFR" "Cefadroxil" "standard_dosage" "0.5-1 g" 2 "oral" "" "0.5-1 g x 2 oral" 14
|
||||||
|
"CFR" "Cefadroxil" "uncomplicated_uti" "0.5-1 g" 2 "oral" "" "0.5-1 g x 2 oral" 14
|
||||||
|
"LEX" "Cefalexin" "standard_dosage" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 14
|
||||||
|
"LEX" "Cefalexin" "uncomplicated_uti" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 14
|
||||||
|
"CZO" "Cefazolin" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 14
|
||||||
|
"CZO" "Cefazolin" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 14
|
||||||
|
"FEP" "Cefepime" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 14
|
||||||
|
"FEP" "Cefepime" "standard_dosage" "2 g" 2 "iv" "" "2 g x 2 iv" 14
|
||||||
|
"FDC" "Cefiderocol" "standard_dosage" "2 g" 3 "iv" "over 3 hours" "2 g x 3 iv over 3 hours" 14
|
||||||
|
"CFM" "Cefixime" "standard_dosage" "0.2-0.4 g" 2 "oral" "" "0.2-0.4 g x 2 oral" 14
|
||||||
|
"CFM" "Cefixime" "uncomplicated_uti" "0.2-0.4 g" 2 "oral" "" "0.2-0.4 g x 2 oral" 14
|
||||||
|
"CTX" "Cefotaxime" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 14
|
||||||
|
"CTX" "Cefotaxime" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 14
|
||||||
|
"CPD" "Cefpodoxime" "standard_dosage" "0.1-0.2 g" 2 "oral" "" "0.1-0.2 g x 2 oral" 14
|
||||||
|
"CPD" "Cefpodoxime" "uncomplicated_uti" "0.1-0.2 g" 2 "oral" "" "0.1-0.2 g x 2 oral" 14
|
||||||
|
"CPT" "Ceftaroline" "high_dosage" "0.6 g" 3 "iv" "over 2 hours" "0.6 g x 3 iv over 2 hours" 14
|
||||||
|
"CPT" "Ceftaroline" "standard_dosage" "0.6 g" 2 "iv" "over 1 hour" "0.6 g x 2 iv over 1 hour" 14
|
||||||
|
"CAZ" "Ceftazidime" "high_dosage" "1 g" 6 "iv" "" "1 g x 6 iv" 14
|
||||||
|
"CAZ" "Ceftazidime" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 14
|
||||||
|
"CZA" "Ceftazidime/avibactam" "standard_dosage" "2 g + 0.5 g" 3 "iv" "over 2 hours" "(2 g ceftazidime + 0.5 g avibactam) x 3 iv over 2 hours" 14
|
||||||
|
"CTB" "Ceftibuten" "standard_dosage" "0.4 g" 1 "oral" "" "0.4 g x 1 oral" 14
|
||||||
|
"BPR" "Ceftobiprole" "standard_dosage" "0.5 g" 3 "iv" "over 2 hours" "0.5 g x 3 iv over 2 hours" 14
|
||||||
|
"CZT" "Ceftolozane/tazobactam" "standard_dosage" "1 g + 0.5 g" 3 "iv" "over 1 hour" "(1 g ceftolozane + 0.5 g tazobactam) x 3 iv over 1 hour" 14
|
||||||
|
"CZT" "Ceftolozane/tazobactam" "standard_dosage" "2 g + 1 g" 3 "iv" "over 1 hour" "(2 g ceftolozane + 1 g tazobactam)
|
||||||
|
x 3 iv over 1 hour" 14
|
||||||
|
"CRO" "Ceftriaxone" "high_dosage" "4 g" 1 "iv" "" "4 g x 1 iv" 14
|
||||||
|
"CRO" "Ceftriaxone" "standard_dosage" "2 g" 1 "iv" "" "2 g x 1 iv" 14
|
||||||
|
"CXM" "Cefuroxime" "high_dosage" "1.5 g" 3 "iv" "" "1.5 g x 3 iv" 14
|
||||||
|
"CXM" "Cefuroxime" "standard_dosage" "0.75 g" 3 "iv" "" "0.75 g x 3 iv" 14
|
||||||
|
"CXM" "Cefuroxime" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 14
|
||||||
|
"CXM" "Cefuroxime" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 14
|
||||||
|
"CXM" "Cefuroxime" "uncomplicated_uti" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 14
|
||||||
|
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 14
|
||||||
|
"CHL" "Chloramphenicol" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 14
|
||||||
|
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "oral" "" "2 g x 4 oral" 14
|
||||||
|
"CHL" "Chloramphenicol" "standard_dosage" "1 g" 4 "oral" "" "1 g x 4 oral" 14
|
||||||
|
"CIP" "Ciprofloxacin" "high_dosage" "0.4 g" 3 "iv" "" "0.4 g x 3 iv" 14
|
||||||
|
"CIP" "Ciprofloxacin" "standard_dosage" "0.4 g" 2 "iv" "" "0.4 g x 2 iv" 14
|
||||||
|
"CIP" "Ciprofloxacin" "high_dosage" "0.75 g" 2 "oral" "" "0.75 g x 2 oral" 14
|
||||||
|
"CIP" "Ciprofloxacin" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 14
|
||||||
|
"CLR" "Clarithromycin" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 14
|
||||||
|
"CLI" "Clindamycin" "standard_dosage" "0.6 g" 3 "iv" "" "0.6 g x 3 iv" 14
|
||||||
|
"CLI" "Clindamycin" "standard_dosage" "0.3 g" 2 "oral" "" "0.3 g x 2 oral" 14
|
||||||
|
"CLO" "Cloxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 14
|
||||||
|
"CLO" "Cloxacillin" "standard_dosage" "0.5 g" 4 "oral" "" "0.5 g x 4 oral" 14
|
||||||
|
"COL" "Colistin" "standard_dosage" "4.5 MU" 2 "iv" "loading dose of 9 MU" "4.5 MU x 2 iv
|
||||||
|
with a loading dose of 9 MU" 14
|
||||||
|
"DAL" "Dalbavancin" "standard_dosage" "1 g" 1 "iv" "over 30 minutes on day 8" "1 g x 1 iv over 30 minutes on day 1
|
||||||
|
If needed, 0.5 g x 1 iv over 30 minutes on day 8" 14
|
||||||
|
"DAP" "Daptomycin" "standard_dosage" "4 mg/kg" 1 "iv" "" "4 mg/kg x 1 iv" 14
|
||||||
|
"DAP" "Daptomycin" "standard_dosage" "6 mg/kg" 1 "iv" "" "6 mg/kg x 1 iv" 14
|
||||||
|
"DFX" "Delafloxacin" "standard_dosage" "0.3 g" 2 "iv" "" "0.3 g x 2 iv" 14
|
||||||
|
"DFX" "Delafloxacin" "standard_dosage" "0.45 g" 2 "oral" "" "0.45 g x 2 oral" 14
|
||||||
|
"DIC" "Dicloxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 14
|
||||||
|
"DIC" "Dicloxacillin" "standard_dosage" "0.5-1 g" 4 "oral" "" "0.5-1 g x 4 oral" 14
|
||||||
|
"DOR" "Doripenem" "high_dosage" "1 g" 3 "iv" "over 1 hour" "1 g x 3 iv over 1 hour" 14
|
||||||
|
"DOR" "Doripenem" "standard_dosage" "0.5 g" 3 "iv" "over 1 hour" "0.5 g x 3 iv over 1 hour" 14
|
||||||
|
"DOX" "Doxycycline" "standard_dosage" "0.1 g" 1 "oral" "" "0.1 g x 1 oral" 14
|
||||||
|
"ERV" "Eravacycline" "standard_dosage" "1 mg/kg" 2 "iv" "" "1 mg/kg x 2 iv" 14
|
||||||
|
"ETP" "Ertapenem" "standard_dosage" "1 g" 1 "iv" "over 30 minutes" "1 g x 1 iv over 30 minutes" 14
|
||||||
|
"ERY" "Erythromycin" "standard_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2-4 iv" 14
|
||||||
|
"ERY" "Erythromycin" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2-4 oral" 14
|
||||||
|
"FDX" "Fidaxomicin" "standard_dosage" "0.2 g" 2 "oral" "" "0.2 g x 2 oral" 14
|
||||||
|
"FLC" "Flucloxacillin" "standard_dosage" "2 g" 4 "iv" "" "2 g x 4 iv
|
||||||
|
(or 1 g x 6 iv)" 14
|
||||||
|
"FLC" "Flucloxacillin" "standard_dosage" "1 g" 3 "oral" "" "1 g x 3 oral" 14
|
||||||
|
"FUS" "Fusidic acid" "standard_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 14
|
||||||
|
"FUS" "Fusidic acid" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 14
|
||||||
|
"GEN" "Gentamicin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 14
|
||||||
|
"IPM" "Imipenem" "high_dosage" "1 g" 4 "iv" "over 30 minutes" "1 g x 4 iv over 30 minutes" 14
|
||||||
|
"IPM" "Imipenem" "standard_dosage" "0.5 g" 4 "iv" "over 30 minutes" "0.5 g x 4 iv over 30 minutes" 14
|
||||||
|
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam)
|
||||||
|
x 4 iv over 30 minutes" 14
|
||||||
|
"LMU" "Lefamulin" "standard_dosage" "0.15 g" 2 "iv" "or 0.6 g x 2 oral" "0.15 g x 2 iv or 0.6 g x 2 oral" 14
|
||||||
|
"LMU" "Lefamulin" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 14
|
||||||
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 14
|
||||||
|
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 14
|
||||||
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 14
|
||||||
|
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 14
|
||||||
|
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "iv" "" "0.6 g x 2 iv" 14
|
||||||
|
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 14
|
||||||
|
"MEM" "Meropenem" "high_dosage" "2 g" 3 "iv" "over 3 hours" "2 g x 3 iv over 3 hours" 14
|
||||||
|
"MEM" "Meropenem" "standard_dosage" "1 g" 3 "iv" "over 30 minutes" "1 g x 3 iv over 30 minutes" 14
|
||||||
|
"MEV" "Meropenem/vaborbactam" "standard_dosage" "2 g + 2 g" 3 "iv" "over 3 hours" "(2 g meropenem + 2 g vaborbactam) x 3 iv over 3 hours" 14
|
||||||
|
"MTR" "Metronidazole" "standard_dosage" "0.4 g" 3 "iv" "" "0.4 g x 3 iv" 14
|
||||||
|
"MTR" "Metronidazole" "standard_dosage" "0.4 g" 3 "oral" "" "0.4 g x 3 oral" 14
|
||||||
|
"MNO" "Minocycline" "standard_dosage" "0.1 g" 2 "oral" "" "0.1 g x 2 oral" 14
|
||||||
|
"MFX" "Moxifloxacin" "standard_dosage" "0.4 g" 1 "iv" "" "0.4 g x 1 iv" 14
|
||||||
|
"MFX" "Moxifloxacin" "standard_dosage" "0.4 g" 1 "oral" "" "0.4 g x 1 oral" 14
|
||||||
|
"NET" "Netilmicin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 14
|
||||||
|
"OFX" "Ofloxacin" "high_dosage" "0.4 g" 2 "iv" "" "0.4 g x 2 iv" 14
|
||||||
|
"OFX" "Ofloxacin" "standard_dosage" "0.2 g" 2 "iv" "" "0.2 g x 2 iv" 14
|
||||||
|
"OFX" "Ofloxacin" "high_dosage" "0.4 g" 2 "oral" "" "0.4 g x 2 oral" 14
|
||||||
|
"OFX" "Ofloxacin" "standard_dosage" "0.2 g" 2 "oral" "" "0.2 g x 2 oral" 14
|
||||||
|
"ORI" "Oritavancin" "standard_dosage" "1.2 g" 1 "iv" "" "1.2 g x 1 (single dose) iv
|
||||||
|
over 3 hours" 14
|
||||||
|
"OXA" "Oxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 14
|
||||||
|
"PHN" "Phenoxymethylpenicillin" "standard_dosage" "0.5-2 g" 3 "oral" "" "0.5-2 g x 3-4 oral" 14
|
||||||
|
"PIP" "Piperacillin" "high_dosage" "4 g" 4 "iv" "" "4 g x 4 iv
|
||||||
|
by extended 3-hour infusion" 14
|
||||||
|
"PIP" "Piperacillin" "standard_dosage" "4 g" 4 "iv" "" "4 g x 4 iv" 14
|
||||||
|
"TZP" "Piperacillin/tazobactam" "high_dosage" "4 g + 0.5 g" 4 "iv" "" "(4 g piperacillin + 0.5 g tazobactam)
|
||||||
|
x 4 iv by extended 3-hour infusion" 14
|
||||||
|
"TZP" "Piperacillin/tazobactam" "standard_dosage" "" 3 "iv" "" "
|
||||||
|
x 3 iv by extended 4-hour infusion" 14
|
||||||
|
"QDA" "Quinupristin/dalfopristin" "standard_dosage" "7.5 mg/kg" 2 "iv" "" "7.5 mg/kg x 2 iv" 14
|
||||||
|
"RIF" "Rifampicin" "standard_dosage" "0.6 g" 1 "iv" "" "0.6 g x 1 iv" 14
|
||||||
|
"RIF" "Rifampicin" "standard_dosage" "0.6 g" 1 "oral" "" "0.6 g x 1 oral" 14
|
||||||
|
"RXT" "Roxithromycin" "standard_dosage" "0.15 g" 2 "oral" "" "0.15 g x 2 oral" 14
|
||||||
|
"SPT" "Spectinomycin" "standard_dosage" "2 g" 1 "im" "" "2 g x 1 im" 14
|
||||||
|
"TZD" "Tedizolid" "standard_dosage" "0.2 g" 1 "iv" "" "0.2 g x 1 iv" 14
|
||||||
|
"TZD" "Tedizolid" "standard_dosage" "0.2 g" 1 "oral" "" "0.2 g x 1 oral" 14
|
||||||
|
"TEC" "Teicoplanin" "standard_dosage" "0.4 g" 1 "iv" "" "0.4 g x 1 iv" 14
|
||||||
|
"TLV" "Telavancin" "standard_dosage" "10 mg/kg" 1 "iv" "over 1 hour" "10 mg/kg x 1 iv over 1 hour" 14
|
||||||
|
"TEM" "Temocillin" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 14
|
||||||
|
"TEM" "Temocillin" "standard_dosage" "2 g" 2 "iv" "" "2 g x 2 iv" 14
|
||||||
|
"TCY" "Tetracycline" "standard_dosage" "0.25 g" 4 "oral" "" "0.25 g x 4 oral" 14
|
||||||
|
"TCC" "Ticarcillin/clavulanic acid" "high_dosage" "3 g + 0.1 g" 6 "iv" "" "(3 g ticarcillin + 0.1 g clavulanic acid) x 6 iv" 14
|
||||||
|
"TCC" "Ticarcillin/clavulanic acid" "standard_dosage" "3 g + 0.1-0.2 g" 4 "iv" "" "(3 g ticarcillin + 0.1-0.2 g clavulanic acid) x 4 iv" 14
|
||||||
|
"TGC" "Tigecycline" "standard_dosage" "0.1 g" "loading dose
|
||||||
|
followed by 50 mg x 2 iv" "0.1 g loading dose
|
||||||
|
followed by 50 mg x 2 iv" 14
|
||||||
|
"TOB" "Tobramycin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 14
|
||||||
|
"SXT" "Trimethoprim/sulfamethoxazole" "high_dosage" "0.24 g + 1.2 g" 2 "oral" "" "(0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 oral" 14
|
||||||
|
"SXT" "Trimethoprim/sulfamethoxazole" "high_dosage" "0.24 g + 1.2 g" 2 "oral" "" "(0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 oral
|
||||||
|
or (0.24 g trimethoprim + 1.2 g sulfamethoxazole) x 2 iv" 14
|
||||||
|
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 14
|
||||||
|
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral
|
||||||
|
or (0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 iv" 14
|
||||||
|
"SXT" "Trimethoprim/sulfamethoxazole" "uncomplicated_uti" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 14
|
||||||
|
"VAN" "Vancomycin" "standard_dosage" "1 g" 2 "iv" "" "1 g x 2 iv
|
||||||
|
or 2 g x 1 by continuous infusion" 14
|
||||||
|
"AMK" "Amikacin" "standard_dosage" "25-30 mg/kg" 1 "iv" "" "25-30 mg/kg x 1 iv" 13.1
|
||||||
|
"AMX" "Amoxicillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 13.1
|
||||||
|
"AMX" "Amoxicillin" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3-4 iv
|
||||||
|
" 13.1
|
||||||
|
"AMX" "Amoxicillin" "high_dosage" "0.75-1 g" 3 "oral" "" "0.75-1 g x 3 oral" 13.1
|
||||||
|
"AMX" "Amoxicillin" "standard_dosage" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 13.1
|
||||||
|
"AMX" "Amoxicillin" "uncomplicated_uti" "0.5 g" 3 "oral" "" "0.5 g x 3 oral" 13.1
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "high_dosage" "2 g + 0.2 g" 3 "iv" "" "(2 g amoxicillin + 0.2 g clavulanic acid) x 3 iv" 13.1
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "standard_dosage" "1 g + 0.2 g" 3 "iv" "" "(1 g amoxicillin + 0.2 g clavulanic acid) x 3-4 iv" 13.1
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "high_dosage" "0.875 g + 0.125 g" 3 "oral" "" "(0.875 g amoxicillin + 0.125 g clavulanic acid) x 3 oral" 13.1
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "standard_dosage" "0.5 g + 0.125 g" 3 "oral" "" "(0.5 g amoxicillin + 0.125 g
|
||||||
|
clavulanic acid) x 3 oral" 13.1
|
||||||
|
"AMC" "Amoxicillin/clavulanic acid" "uncomplicated_uti" "0.5 g + 0.125 g" 3 "oral" "" "(0.5 g amoxicillin + 0.125 g
|
||||||
|
clavulanic acid) x 3 oral" 13.1
|
||||||
|
"AMP" "Ampicillin" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv
|
||||||
|
" 13.1
|
||||||
|
"AMP" "Ampicillin" "standard_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13.1
|
||||||
|
"SAM" "Ampicillin/sulbactam" "high_dosage" "2 g + 1 g" 4 "iv" "" "(2 g ampicillin + 1 g sulbactam) x 4 iv" 13.1
|
||||||
|
"SAM" "Ampicillin/sulbactam" "standard_dosage" "2 g + 1 g" 3 "iv" "" "(2 g ampicillin + 1 g sulbactam) x 3 iv" 13.1
|
||||||
|
"AZM" "Azithromycin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 13.1
|
||||||
|
"AZM" "Azithromycin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 13.1
|
||||||
|
"ATM" "Aztreonam" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 13.1
|
||||||
|
"ATM" "Aztreonam" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 13.1
|
||||||
|
"PEN" "Benzylpenicillin" "high_dosage" "1.2 g" 4 "iv" "" "1.2 g (2 MU) x 4-6 iv" 13.1
|
||||||
|
"PEN" "Benzylpenicillin" "standard_dosage" "0.6 g" 4 "iv" "" "0.6 g (1 MU) x 4 iv" 13.1
|
||||||
|
"CEC" "Cefaclor" "high_dosage" "1 g" 3 "oral" "" 13.1
|
||||||
|
"CEC" "Cefaclor" "standard_dosage" "0.25-0.5 g" 3 "oral" "" "0.25-0.5 g x 3 oral" 13.1
|
||||||
|
"CFR" "Cefadroxil" "standard_dosage" "0.5-1 g" 2 "oral" "" "0.5-1 g x 2 oral" 13.1
|
||||||
|
"CFR" "Cefadroxil" "uncomplicated_uti" "0.5-1 g" 2 "oral" "" "0.5-1 g x 2 oral" 13.1
|
||||||
|
"LEX" "Cefalexin" "standard_dosage" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 13.1
|
||||||
|
"LEX" "Cefalexin" "uncomplicated_uti" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 13.1
|
||||||
|
"CZO" "Cefazolin" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13.1
|
||||||
|
"CZO" "Cefazolin" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 13.1
|
||||||
|
"FEP" "Cefepime" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13.1
|
||||||
|
"FEP" "Cefepime" "standard_dosage" "2 g" 2 "iv" "" "2 g x 2 iv" 13.1
|
||||||
|
"FDC" "Cefiderocol" "standard_dosage" "2 g" 3 "iv" "over 3 hours" "2 g x 3 iv over 3 hours" 13.1
|
||||||
|
"CFM" "Cefixime" "standard_dosage" "0.2-0.4 g" 2 "oral" "" "0.2-0.4 g x 2 oral" 13.1
|
||||||
|
"CFM" "Cefixime" "uncomplicated_uti" "0.2-0.4 g" 2 "oral" "" "0.2-0.4 g x 2 oral" 13.1
|
||||||
|
"CTX" "Cefotaxime" "high_dosage" "2 g" 3 "iv" "" "2 g x 3 iv" 13.1
|
||||||
|
"CTX" "Cefotaxime" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 13.1
|
||||||
|
"CPD" "Cefpodoxime" "standard_dosage" "0.1-0.2 g" 2 "oral" "" "0.1-0.2 g x 2 oral" 13.1
|
||||||
|
"CPD" "Cefpodoxime" "uncomplicated_uti" "0.1-0.2 g" 2 "oral" "" "0.1-0.2 g x 2 oral" 13.1
|
||||||
|
"CPT" "Ceftaroline" "high_dosage" "0.6 g" 3 "iv" "over 2 hours" "0.6 g x 3 iv over 2 hours" 13.1
|
||||||
|
"CPT" "Ceftaroline" "standard_dosage" "0.6 g" 2 "iv" "over 1 hour" "0.6 g x 2 iv over 1 hour" 13.1
|
||||||
|
"CAZ" "Ceftazidime" "high_dosage" "1 g" 6 "iv" "" "1 g x 6 iv" 13.1
|
||||||
|
"CAZ" "Ceftazidime" "standard_dosage" "1 g" 3 "iv" "" "1 g x 3 iv" 13.1
|
||||||
|
"CZA" "Ceftazidime/avibactam" "standard_dosage" "2 g + 0.5 g" 3 "iv" "over 2 hours" "(2 g ceftazidime + 0.5 g avibactam) x 3 iv over 2 hours" 13.1
|
||||||
|
"CTB" "Ceftibuten" "standard_dosage" "0.4 g" 1 "oral" "" "0.4 g x 1 oral" 13.1
|
||||||
|
"BPR" "Ceftobiprole" "standard_dosage" "0.5 g" 3 "iv" "over 2 hours" "0.5 g x 3 iv over 2 hours" 13.1
|
||||||
|
"CZT" "Ceftolozane/tazobactam" "standard_dosage" "1 g + 0.5 g" 3 "iv" "over 1 hour" "(1 g ceftolozane + 0.5 g tazobactam) x 3 iv over 1 hour" 13.1
|
||||||
|
"CZT" "Ceftolozane/tazobactam" "standard_dosage" "2 g + 1 g" 3 "iv" "over 1 hour" "(2 g ceftolozane + 1 g tazobactam)
|
||||||
|
x 3 iv over 1 hour" 13.1
|
||||||
|
"CRO" "Ceftriaxone" "high_dosage" "4 g" 1 "iv" "" "4 g x 1 iv" 13.1
|
||||||
|
"CRO" "Ceftriaxone" "standard_dosage" "2 g" 1 "iv" "" "2 g x 1 iv" 13.1
|
||||||
|
"CXM" "Cefuroxime" "high_dosage" "1.5 g" 3 "iv" "" "1.5 g x 3 iv" 13.1
|
||||||
|
"CXM" "Cefuroxime" "standard_dosage" "0.75 g" 3 "iv" "" "0.75 g x 3 iv" 13.1
|
||||||
|
"CXM" "Cefuroxime" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13.1
|
||||||
|
"CXM" "Cefuroxime" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 13.1
|
||||||
|
"CXM" "Cefuroxime" "uncomplicated_uti" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 13.1
|
||||||
|
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 13.1
|
||||||
|
"CHL" "Chloramphenicol" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 13.1
|
||||||
|
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "oral" "" "2 g x 4 oral" 13.1
|
||||||
|
"CHL" "Chloramphenicol" "standard_dosage" "1 g" 4 "oral" "" "1 g x 4 oral" 13.1
|
||||||
|
"CIP" "Ciprofloxacin" "high_dosage" "0.4 g" 3 "iv" "" "0.4 g x 3 iv" 13.1
|
||||||
|
"CIP" "Ciprofloxacin" "standard_dosage" "0.4 g" 2 "iv" "" "0.4 g x 2 iv" 13.1
|
||||||
|
"CIP" "Ciprofloxacin" "high_dosage" "0.75 g" 2 "oral" "" "0.75 g x 2 oral" 13.1
|
||||||
|
"CIP" "Ciprofloxacin" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13.1
|
||||||
|
"CLR" "Clarithromycin" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 13.1
|
||||||
|
"CLI" "Clindamycin" "standard_dosage" "0.6 g" 3 "iv" "" "0.6 g x 3 iv" 13.1
|
||||||
|
"CLI" "Clindamycin" "standard_dosage" "0.3 g" 2 "oral" "" "0.3 g x 2 oral" 13.1
|
||||||
|
"CLO" "Cloxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 13.1
|
||||||
|
"CLO" "Cloxacillin" "standard_dosage" "0.5 g" 4 "oral" "" "0.5 g x 4 oral" 13.1
|
||||||
|
"COL" "Colistin" "standard_dosage" "4.5 MU" 2 "iv" "loading dose of 9 MU" "4.5 MU x 2 iv
|
||||||
|
with a loading dose of 9 MU" 13.1
|
||||||
|
"DAL" "Dalbavancin" "standard_dosage" "1 g" 1 "iv" "over 30 minutes on day 8" "1 g x 1 iv over 30 minutes on day 1
|
||||||
|
If needed, 0.5 g x 1 iv over 30 minutes on day 8" 13.1
|
||||||
|
"DAP" "Daptomycin" "standard_dosage" "4 mg/kg" 1 "iv" "" "4 mg/kg x 1 iv" 13.1
|
||||||
|
"DAP" "Daptomycin" "standard_dosage" "6 mg/kg" 1 "iv" "" "6 mg/kg x 1 iv" 13.1
|
||||||
|
"DFX" "Delafloxacin" "standard_dosage" "0.3 g" 2 "iv" "" "0.3 g x 2 iv" 13.1
|
||||||
|
"DFX" "Delafloxacin" "standard_dosage" "0.45 g" 2 "oral" "" "0.45 g x 2 oral" 13.1
|
||||||
|
"DIC" "Dicloxacillin" "standard_dosage" "1 g" 4 "iv" "" "1 g x 4 iv" 13.1
|
||||||
|
"DIC" "Dicloxacillin" "standard_dosage" "0.5-1 g" 4 "oral" "" "0.5-1 g x 4 oral" 13.1
|
||||||
|
"DOR" "Doripenem" "high_dosage" "1 g" 3 "iv" "over 1 hour" "1 g x 3 iv over 1 hour" 13.1
|
||||||
|
"DOR" "Doripenem" "standard_dosage" "0.5 g" 3 "iv" "over 1 hour" "0.5 g x 3 iv over 1 hour" 13.1
|
||||||
|
"DOX" "Doxycycline" "standard_dosage" "0.1 g" 1 "oral" "" "0.1 g x 1 oral" 13.1
|
||||||
|
"ERV" "Eravacycline" "standard_dosage" "1 mg/kg" 2 "iv" "" "1 mg/kg x 2 iv" 13.1
|
||||||
|
"ETP" "Ertapenem" "standard_dosage" "1 g" 1 "iv" "over 30 minutes" "1 g x 1 iv over 30 minutes" 13.1
|
||||||
|
"ERY" "Erythromycin" "standard_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2-4 iv" 13.1
|
||||||
|
"ERY" "Erythromycin" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2-4 oral" 13.1
|
||||||
|
"FDX" "Fidaxomicin" "standard_dosage" "0.2 g" 2 "oral" "" "0.2 g x 2 oral" 13.1
|
||||||
|
"FLC" "Flucloxacillin" "standard_dosage" "2 g" 4 "iv" "" "2 g x 4 iv
|
||||||
|
(or 1 g x 6 iv)" 13.1
|
||||||
|
"FLC" "Flucloxacillin" "standard_dosage" "1 g" 3 "oral" "" "1 g x 3 oral" 13.1
|
||||||
|
"FUS" "Fusidic acid" "standard_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 13.1
|
||||||
|
"FUS" "Fusidic acid" "standard_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13.1
|
||||||
|
"GEN" "Gentamicin" "standard_dosage" "6-7 mg/kg" 1 "iv" "" "6-7 mg/kg x 1 iv" 13.1
|
||||||
|
"IPM" "Imipenem" "high_dosage" "1 g" 4 "iv" "over 30 minutes" "1 g x 4 iv over 30 minutes" 13.1
|
||||||
|
"IPM" "Imipenem" "standard_dosage" "0.5 g" 4 "iv" "over 30 minutes" "0.5 g x 4 iv over 30 minutes" 13.1
|
||||||
|
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam)
|
||||||
|
x 4 iv over 30 minutes" 13.1
|
||||||
|
"LMU" "Lefamulin" "standard_dosage" "0.15 g" 2 "iv" "or 0.6 g x 2 oral" "0.15 g x 2 iv or 0.6 g x 2 oral" 13.1
|
||||||
|
"LMU" "Lefamulin" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 13.1
|
||||||
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 13.1
|
||||||
|
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 13.1
|
||||||
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 13.1
|
||||||
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 13.1
|
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "oral" "" "0.5 g x 1 oral" 13.1
|
||||||
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "iv" "" "0.6 g x 2 iv" 13.1
|
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "iv" "" "0.6 g x 2 iv" 13.1
|
||||||
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 13.1
|
"LNZ" "Linezolid" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 13.1
|
||||||
@@ -273,7 +533,6 @@
|
|||||||
"CXM" "Cefuroxime" "high_dosage" "1.5 g" 3 "iv" "" "1.5 g x 3 iv" 12
|
"CXM" "Cefuroxime" "high_dosage" "1.5 g" 3 "iv" "" "1.5 g x 3 iv" 12
|
||||||
"CXM" "Cefuroxime" "standard_dosage" "0.75 g" 3 "iv" "" "0.75 g x 3 iv" 12
|
"CXM" "Cefuroxime" "standard_dosage" "0.75 g" 3 "iv" "" "0.75 g x 3 iv" 12
|
||||||
"CXM" "Cefuroxime" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 12
|
"CXM" "Cefuroxime" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 12
|
||||||
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam) x 4 iv over 30 minutes" 12
|
|
||||||
"CXM" "Cefuroxime" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 12
|
"CXM" "Cefuroxime" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 12
|
||||||
"CXM" "Cefuroxime" "uncomplicated_uti" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 12
|
"CXM" "Cefuroxime" "uncomplicated_uti" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 12
|
||||||
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 12
|
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 12
|
||||||
@@ -331,7 +590,6 @@
|
|||||||
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam) x 4 iv over 30 minutes" 12
|
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam) x 4 iv over 30 minutes" 12
|
||||||
"LMU" "Lefamulin" "standard_dosage" "0.15 g" 2 "iv" "or 0.6 g x 2 oral" "0.15 g x 2 iv or 0.6 g x 2 oral" 12
|
"LMU" "Lefamulin" "standard_dosage" "0.15 g" 2 "iv" "or 0.6 g x 2 oral" "0.15 g x 2 iv or 0.6 g x 2 oral" 12
|
||||||
"LMU" "Lefamulin" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 12
|
"LMU" "Lefamulin" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 12
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "uncomplicated_uti" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 12
|
|
||||||
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 12
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 12
|
||||||
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 12
|
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 12
|
||||||
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 12
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 12
|
||||||
@@ -358,6 +616,8 @@
|
|||||||
"PHN" "Phenoxymethylpenicillin" "standard_dosage" "0.5-2 g" 3 "oral" "" "0.5-2 g x 3-4 oral" 12
|
"PHN" "Phenoxymethylpenicillin" "standard_dosage" "0.5-2 g" 3 "oral" "" "0.5-2 g x 3-4 oral" 12
|
||||||
"PIP" "Piperacillin" "high_dosage" "4 g" 4 "iv" "" "4 g x 4 iv by extended 3-hour infusion" 12
|
"PIP" "Piperacillin" "high_dosage" "4 g" 4 "iv" "" "4 g x 4 iv by extended 3-hour infusion" 12
|
||||||
"PIP" "Piperacillin" "standard_dosage" "4 g" 4 "iv" "" "4 g x 4 iv" 12
|
"PIP" "Piperacillin" "standard_dosage" "4 g" 4 "iv" "" "4 g x 4 iv" 12
|
||||||
|
"TZP" "Piperacillin/tazobactam" "high_dosage" "4 g + 0.5 g" 4 "iv" "" "(4 g piperacillin + 0.5 g tazobactam) x 4 iv by extended 3-hour infusion" 12
|
||||||
|
"TZP" "Piperacillin/tazobactam" "standard_dosage" "4 g + 0.5 g" 4 "iv" "" "(4 g piperacillin + 0.5 g tazobactam) x 4 iv 30-minute infusion or x 3 iv by extended 4-hour infusion" 12
|
||||||
"QDA" "Quinupristin/dalfopristin" "high_dosage" "7.5 mg/kg" 3 "iv" "" "7.5 mg/kg x 3 iv" 12
|
"QDA" "Quinupristin/dalfopristin" "high_dosage" "7.5 mg/kg" 3 "iv" "" "7.5 mg/kg x 3 iv" 12
|
||||||
"QDA" "Quinupristin/dalfopristin" "standard_dosage" "7.5 mg/kg" 2 "iv" "" "7.5 mg/kg x 2 iv" 12
|
"QDA" "Quinupristin/dalfopristin" "standard_dosage" "7.5 mg/kg" 2 "iv" "" "7.5 mg/kg x 2 iv" 12
|
||||||
"RIF" "Rifampicin" "standard_dosage" "0.6 g" 1 "iv" "" "0.6 g x 1 iv" 12
|
"RIF" "Rifampicin" "standard_dosage" "0.6 g" 1 "iv" "" "0.6 g x 1 iv" 12
|
||||||
@@ -385,8 +645,6 @@
|
|||||||
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 12
|
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 12
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral or (0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 iv" 12
|
"SXT" "Trimethoprim/sulfamethoxazole" "standard_dosage" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral or (0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 iv" 12
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "uncomplicated_uti" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 12
|
"SXT" "Trimethoprim/sulfamethoxazole" "uncomplicated_uti" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 12
|
||||||
"LEX" "Cefalexin" "standard_dosage" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 11
|
|
||||||
"LEX" "Cefalexin" "uncomplicated_uti" "0.25-1 g" 2 "oral" "" "0.25-1 g x 2-3 oral" 11
|
|
||||||
"VAN" "Vancomycin" "standard_dosage" "1 g" 2 "iv" "" "1 g x 2 iv or 2 g x 1 by continuous infusion" 12
|
"VAN" "Vancomycin" "standard_dosage" "1 g" 2 "iv" "" "1 g x 2 iv or 2 g x 1 by continuous infusion" 12
|
||||||
"AMK" "Amikacin" "standard_dosage" "25-30 mg/kg" 1 "iv" "" "25-30 mg/kg x 1 iv" 11
|
"AMK" "Amikacin" "standard_dosage" "25-30 mg/kg" 1 "iv" "" "25-30 mg/kg x 1 iv" 11
|
||||||
"AMX" "Amoxicillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 11
|
"AMX" "Amoxicillin" "high_dosage" "2 g" 6 "iv" "" "2 g x 6 iv" 11
|
||||||
@@ -440,7 +698,6 @@
|
|||||||
"CXM" "Cefuroxime" "high_dosage" "1.5 g" 3 "iv" "" "1.5 g x 3 iv" 11
|
"CXM" "Cefuroxime" "high_dosage" "1.5 g" 3 "iv" "" "1.5 g x 3 iv" 11
|
||||||
"CXM" "Cefuroxime" "standard_dosage" "0.75 g" 3 "iv" "" "0.75 g x 3 iv" 11
|
"CXM" "Cefuroxime" "standard_dosage" "0.75 g" 3 "iv" "" "0.75 g x 3 iv" 11
|
||||||
"CXM" "Cefuroxime" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 11
|
"CXM" "Cefuroxime" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 11
|
||||||
"IMR" "Imipenem/relebactam" "standard_dosage" "0.5 g + 0.25 g" 4 "iv" "over 30 minutes" "(0.5 g imipenem + 0.25 g relebactam) x 4 iv over 30 minutes" 11
|
|
||||||
"CXM" "Cefuroxime" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 11
|
"CXM" "Cefuroxime" "standard_dosage" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 11
|
||||||
"CXM" "Cefuroxime" "uncomplicated_uti" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 11
|
"CXM" "Cefuroxime" "uncomplicated_uti" "0.25 g" 2 "oral" "" "0.25 g x 2 oral" 11
|
||||||
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 11
|
"CHL" "Chloramphenicol" "high_dosage" "2 g" 4 "iv" "" "2 g x 4 iv" 11
|
||||||
@@ -500,5 +757,4 @@
|
|||||||
"LMU" "Lefamulin" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 11
|
"LMU" "Lefamulin" "standard_dosage" "0.6 g" 2 "oral" "" "0.6 g x 2 oral" 11
|
||||||
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 11
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "iv" "" "0.5 g x 2 iv" 11
|
||||||
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 11
|
"LVX" "Levofloxacin" "standard_dosage" "0.5 g" 1 "iv" "" "0.5 g x 1 iv" 11
|
||||||
"SXT" "Trimethoprim/sulfamethoxazole" "uncomplicated_uti" "0.16 g + 0.8 g" 2 "oral" "" "(0.16 g trimethoprim + 0.8 g sulfamethoxazole) x 2 oral" 11
|
|
||||||
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 11
|
"LVX" "Levofloxacin" "high_dosage" "0.5 g" 2 "oral" "" "0.5 g x 2 oral" 11
|
||||||
|
|||||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user