Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2e3fa9184 | ||
|
|
205bfb053c | ||
|
|
553d074b96 | ||
|
|
4cc1967eab | ||
|
|
491cd94189 | ||
|
|
976d5292c7 | ||
|
|
1a10d0f4ee | ||
|
|
a1d8ec7d4a | ||
|
|
4f02b97c70 | ||
|
|
fee4bb45b1 | ||
|
|
2d869c2796 | ||
|
|
d2ff8027d1 | ||
|
|
cfc4fd0c0c | ||
|
|
f3f4586286 | ||
|
|
3f99e4a668 | ||
|
|
97c789d01f | ||
|
|
ac481f348b | ||
|
|
50592d10f1 | ||
|
|
a62a35d91d | ||
|
|
44b99f8875 | ||
|
|
964b71aedb | ||
|
|
f08c645b0c | ||
|
|
bcd6e333f0 | ||
|
|
cb53936bd3 | ||
|
|
37f397b1f3 |
@@ -0,0 +1,184 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<title>Page not found (404) • AMR (for R)</title>
|
||||||
|
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="https://msberends.github.io/AMR/favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="https://msberends.github.io/AMR/favicon-32x32.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="https://msberends.github.io/AMR/apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="https://msberends.github.io/AMR/apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="https://msberends.github.io/AMR/apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="https://msberends.github.io/AMR/apple-touch-icon-60x60.png">
|
||||||
|
<script src="https://msberends.github.io/AMR/deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link href="https://msberends.github.io/AMR/deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="https://msberends.github.io/AMR/deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="https://msberends.github.io/AMR/deps/Fira_Code-0.4.2/font.css" rel="stylesheet">
|
||||||
|
<!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
|
||||||
|
<!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="https://msberends.github.io/AMR/pkgdown.js"></script><link href="https://msberends.github.io/AMR/extra.css" rel="stylesheet">
|
||||||
|
<script src="https://msberends.github.io/AMR/extra.js"></script><meta property="og:title" content="Page not found (404)">
|
||||||
|
<meta property="og:image" content="https://msberends.github.io/AMR/logo.svg">
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:creator" content="@msberends">
|
||||||
|
<meta name="twitter:site" content="@msberends">
|
||||||
|
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="https://msberends.github.io/AMR/#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="https://msberends.github.io/AMR/index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="https://msberends.github.io/AMR/index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="https://msberends.github.io/AMR/#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="https://msberends.github.io/AMR/reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="https://msberends.github.io/AMR/reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="https://msberends.github.io/AMR/authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="https://msberends.github.io/AMR/news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="search.json" id="search-input" placeholder="Search for" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-title-body">
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="https://msberends.github.io/AMR/logo.svg" class="logo" alt=""><h1>Page not found (404)</h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Content not found. Please use links in the navbar.
|
||||||
|
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p>
|
||||||
|
<p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p>
|
||||||
|
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,254 +0,0 @@
|
|||||||
Metadata-Version: 2.4
|
|
||||||
Name: AMR
|
|
||||||
Version: 3.0.1.9091
|
|
||||||
Summary: A Python wrapper for the AMR R package
|
|
||||||
Home-page: https://github.com/msberends/AMR
|
|
||||||
Author: Matthijs Berends
|
|
||||||
Author-email: m.s.berends@umcg.nl
|
|
||||||
License: GPL 2
|
|
||||||
Project-URL: Bug Tracker, https://github.com/msberends/AMR/issues
|
|
||||||
Classifier: Programming Language :: Python :: 3
|
|
||||||
Classifier: Operating System :: OS Independent
|
|
||||||
Requires-Python: >=3.6
|
|
||||||
Description-Content-Type: text/markdown
|
|
||||||
Requires-Dist: rpy2
|
|
||||||
Requires-Dist: numpy
|
|
||||||
Requires-Dist: pandas
|
|
||||||
Dynamic: author
|
|
||||||
Dynamic: author-email
|
|
||||||
Dynamic: classifier
|
|
||||||
Dynamic: description
|
|
||||||
Dynamic: description-content-type
|
|
||||||
Dynamic: home-page
|
|
||||||
Dynamic: license
|
|
||||||
Dynamic: project-url
|
|
||||||
Dynamic: requires-dist
|
|
||||||
Dynamic: requires-python
|
|
||||||
Dynamic: summary
|
|
||||||
|
|
||||||
|
|
||||||
The `AMR` package for R is a powerful tool for antimicrobial resistance (AMR) analysis. It provides extensive features for handling microbial and antimicrobial data. However, for those who work primarily in Python, we now have a more intuitive option available: the [`AMR` Python package](https://pypi.org/project/AMR/).
|
|
||||||
|
|
||||||
This Python package is a wrapper around the `AMR` R package. It uses the `rpy2` package internally. Despite the need to have R installed, Python users can now easily work with AMR data directly through Python code.
|
|
||||||
|
|
||||||
# Prerequisites
|
|
||||||
|
|
||||||
This package was only tested with a [virtual environment (venv)](https://docs.python.org/3/library/venv.html). You can set up such an environment by running:
|
|
||||||
|
|
||||||
```python
|
|
||||||
# linux and macOS:
|
|
||||||
python -m venv /path/to/new/virtual/environment
|
|
||||||
|
|
||||||
# Windows:
|
|
||||||
python -m venv C:\path\to\new\virtual\environment
|
|
||||||
```
|
|
||||||
|
|
||||||
Then you can [activate the environment](https://docs.python.org/3/library/venv.html#how-venvs-work), after which the venv is ready to work with.
|
|
||||||
|
|
||||||
# Install AMR
|
|
||||||
|
|
||||||
1. Since the Python package is available on the official [Python Package Index](https://pypi.org/project/AMR/), you can just run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pip install AMR
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Make sure you have R installed. There is **no need to install the `AMR` R package**, as it will be installed automatically.
|
|
||||||
|
|
||||||
For Linux:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Ubuntu / Debian
|
|
||||||
sudo apt install r-base
|
|
||||||
# Fedora:
|
|
||||||
sudo dnf install R
|
|
||||||
# CentOS/RHEL
|
|
||||||
sudo yum install R
|
|
||||||
```
|
|
||||||
|
|
||||||
For macOS (using [Homebrew](https://brew.sh)):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
brew install r
|
|
||||||
```
|
|
||||||
|
|
||||||
For Windows, visit the [CRAN download page](https://cran.r-project.org) to download and install R.
|
|
||||||
|
|
||||||
# Examples of Usage
|
|
||||||
|
|
||||||
## Cleaning Taxonomy
|
|
||||||
|
|
||||||
Here’s an example that demonstrates how to clean microorganism and drug names using the `AMR` Python package:
|
|
||||||
|
|
||||||
```python
|
|
||||||
import pandas as pd
|
|
||||||
import AMR
|
|
||||||
|
|
||||||
# Sample data
|
|
||||||
data = {
|
|
||||||
"MOs": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'],
|
|
||||||
"Drug": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin']
|
|
||||||
}
|
|
||||||
df = pd.DataFrame(data)
|
|
||||||
|
|
||||||
# Use AMR functions to clean microorganism and drug names
|
|
||||||
df['MO_clean'] = AMR.mo_name(df['MOs'])
|
|
||||||
df['Drug_clean'] = AMR.ab_name(df['Drug'])
|
|
||||||
|
|
||||||
# Display the results
|
|
||||||
print(df)
|
|
||||||
```
|
|
||||||
|
|
||||||
| MOs | Drug | MO_clean | Drug_clean |
|
|
||||||
|-------------|-----------|--------------------|---------------|
|
|
||||||
| E. coli | Cipro | Escherichia coli | Ciprofloxacin |
|
|
||||||
| ESCCOL | CIP | Escherichia coli | Ciprofloxacin |
|
|
||||||
| esco | J01MA02 | Escherichia coli | Ciprofloxacin |
|
|
||||||
| Esche coli | Ciproxin | Escherichia coli | Ciprofloxacin |
|
|
||||||
|
|
||||||
### Explanation
|
|
||||||
|
|
||||||
* **mo_name:** This function standardises microorganism names. Here, different variations of *Escherichia coli* (such as "E. coli", "ESCCOL", "esco", and "Esche coli") are all converted into the correct, standardised form, "Escherichia coli".
|
|
||||||
|
|
||||||
* **ab_name**: Similarly, this function standardises antimicrobial names. The different representations of ciprofloxacin (e.g., "Cipro", "CIP", "J01MA02", and "Ciproxin") are all converted to the standard name, "Ciprofloxacin".
|
|
||||||
|
|
||||||
## Calculating AMR
|
|
||||||
|
|
||||||
```python
|
|
||||||
import AMR
|
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
df = AMR.example_isolates
|
|
||||||
result = AMR.resistance(df["AMX"])
|
|
||||||
print(result)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
[0.59555556]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Generating Antibiograms
|
|
||||||
|
|
||||||
One of the core functions of the `AMR` package is generating an antibiogram, a table that summarises the antimicrobial susceptibility of bacterial isolates. Here’s how you can generate an antibiogram from Python:
|
|
||||||
|
|
||||||
```python
|
|
||||||
result2a = AMR.antibiogram(df[["mo", "AMX", "CIP", "TZP"]])
|
|
||||||
print(result2a)
|
|
||||||
```
|
|
||||||
|
|
||||||
| Pathogen | Amoxicillin | Ciprofloxacin | Piperacillin/tazobactam |
|
|
||||||
|-----------------|-----------------|-----------------|--------------------------|
|
|
||||||
| CoNS | 7% (10/142) | 73% (183/252) | 30% (10/33) |
|
|
||||||
| E. coli | 50% (196/392) | 88% (399/456) | 94% (393/416) |
|
|
||||||
| K. pneumoniae | 0% (0/58) | 96% (53/55) | 89% (47/53) |
|
|
||||||
| P. aeruginosa | 0% (0/30) | 100% (30/30) | None |
|
|
||||||
| P. mirabilis | None | 94% (34/36) | None |
|
|
||||||
| S. aureus | 6% (8/131) | 90% (171/191) | None |
|
|
||||||
| S. epidermidis | 1% (1/91) | 64% (87/136) | None |
|
|
||||||
| S. hominis | None | 80% (56/70) | None |
|
|
||||||
| S. pneumoniae | 100% (112/112) | None | 100% (112/112) |
|
|
||||||
|
|
||||||
|
|
||||||
```python
|
|
||||||
result2b = AMR.antibiogram(df[["mo", "AMX", "CIP", "TZP"]], mo_transform = "gramstain")
|
|
||||||
print(result2b)
|
|
||||||
```
|
|
||||||
|
|
||||||
| Pathogen | Amoxicillin | Ciprofloxacin | Piperacillin/tazobactam |
|
|
||||||
|----------------|-----------------|------------------|--------------------------|
|
|
||||||
| Gram-negative | 36% (226/631) | 91% (621/684) | 88% (565/641) |
|
|
||||||
| Gram-positive | 43% (305/703) | 77% (560/724) | 86% (296/345) |
|
|
||||||
|
|
||||||
|
|
||||||
In this example, we generate an antibiogram by selecting various antibiotics.
|
|
||||||
|
|
||||||
## Taxonomic Data Sets Now in Python!
|
|
||||||
|
|
||||||
As a Python user, you might like that the most important data sets of the `AMR` R package, `microorganisms`, `antimicrobials`, `clinical_breakpoints`, and `example_isolates`, are now available as regular Python data frames:
|
|
||||||
|
|
||||||
```python
|
|
||||||
AMR.microorganisms
|
|
||||||
```
|
|
||||||
|
|
||||||
| mo | fullname | status | kingdom | gbif | gbif_parent | gbif_renamed_to | prevalence |
|
|
||||||
|--------------|------------------------------------|----------|----------|-----------|-------------|-----------------|------------|
|
|
||||||
| B_GRAMN | (unknown Gram-negatives) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_GRAMP | (unknown Gram-positives) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_ANAER-NEG | (unknown anaerobic Gram-negatives) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_ANAER-POS | (unknown anaerobic Gram-positives) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_ANAER | (unknown anaerobic bacteria) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| ... | ... | ... | ... | ... | ... | ... | ... |
|
|
||||||
| B_ZYMMN_POMC | Zymomonas pomaceae | accepted | Bacteria | 10744418 | 3221412 | None | 2.0 |
|
|
||||||
| B_ZYMPH | Zymophilus | synonym | Bacteria | None | 9475166 | None | 2.0 |
|
|
||||||
| B_ZYMPH_PCVR | Zymophilus paucivorans | synonym | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_ZYMPH_RFFN | Zymophilus raffinosivorans | synonym | Bacteria | None | None | None | 2.0 |
|
|
||||||
| F_ZYZYG | Zyzygomyces | unknown | Fungi | None | 7581 | None | 2.0 |
|
|
||||||
|
|
||||||
```python
|
|
||||||
AMR.antimicrobials
|
|
||||||
```
|
|
||||||
|
|
||||||
| ab | cid | name | group | oral_ddd | oral_units | iv_ddd | iv_units |
|
|
||||||
|-----|-------------|----------------------|----------------------------|----------|------------|--------|----------|
|
|
||||||
| AMA | 4649.0 | 4-aminosalicylic acid| Antimycobacterials | 12.00 | g | NaN | None |
|
|
||||||
| ACM | 6450012.0 | Acetylmidecamycin | Macrolides/lincosamides | NaN | None | NaN | None |
|
|
||||||
| ASP | 49787020.0 | Acetylspiramycin | Macrolides/lincosamides | NaN | None | NaN | None |
|
|
||||||
| ALS | 8954.0 | Aldesulfone sodium | Other antibacterials | 0.33 | g | NaN | None |
|
|
||||||
| AMK | 37768.0 | Amikacin | Aminoglycosides | NaN | None | 1.0 | g |
|
|
||||||
| ... | ... | ... | ... | ... | ... | ... | ... |
|
|
||||||
| VIR | 11979535.0 | Virginiamycine | Other antibacterials | NaN | None | NaN | None |
|
|
||||||
| VOR | 71616.0 | Voriconazole | Antifungals/antimycotics | 0.40 | g | 0.4 | g |
|
|
||||||
| XBR | 72144.0 | Xibornol | Other antibacterials | NaN | None | NaN | None |
|
|
||||||
| ZID | 77846445.0 | Zidebactam | Other antibacterials | NaN | None | NaN | None |
|
|
||||||
| ZFD | NaN | Zoliflodacin | None | NaN | None | NaN | None |
|
|
||||||
|
|
||||||
|
|
||||||
# Installation Channels
|
|
||||||
|
|
||||||
## Stable Release (CRAN)
|
|
||||||
|
|
||||||
The default `AMR` Python package uses the latest stable version of the `AMR` R package, published on CRAN. After running `pip install AMR`, import it as usual:
|
|
||||||
|
|
||||||
```python
|
|
||||||
import AMR
|
|
||||||
|
|
||||||
AMR.example_isolates
|
|
||||||
```
|
|
||||||
|
|
||||||
## Development Version (GitHub)
|
|
||||||
|
|
||||||
To use the latest development version of the `AMR` R package (sourced directly from GitHub), import the `beta` sub-package and alias it as `AMR`:
|
|
||||||
|
|
||||||
```python
|
|
||||||
import AMR.beta as AMR
|
|
||||||
|
|
||||||
AMR.example_isolates
|
|
||||||
```
|
|
||||||
|
|
||||||
Aliasing with `as AMR` keeps all downstream code identical to the stable import. Switching between the stable release and the development version requires changing only the import line — nothing else in your script needs to change.
|
|
||||||
|
|
||||||
# SIR Classification with `as_sir()`
|
|
||||||
|
|
||||||
## Using `enforce_method`
|
|
||||||
|
|
||||||
The `as_sir()` function in R uses S3 method dispatch to select the correct calculation method based on the input class: `<mic>` for MIC values and `<disk>` for disk diffusion values. Because Python objects do not carry R class attributes through the `rpy2` bridge, this automatic dispatch may not resolve correctly.
|
|
||||||
|
|
||||||
To explicitly specify the input type, use the `enforce_method` argument:
|
|
||||||
|
|
||||||
```python
|
|
||||||
# Treat the column as MIC values — maps to R's as.sir.mic()
|
|
||||||
AMR.as_sir(df["MIC_col"], mo="E. coli", ab="AMX", guideline="EUCAST", enforce_method="mic")
|
|
||||||
|
|
||||||
# Treat the column as disk diffusion values — maps to R's as.sir.disk()
|
|
||||||
AMR.as_sir(df["disk_col"], mo="E. coli", ab="AMX", guideline="EUCAST", enforce_method="disk")
|
|
||||||
```
|
|
||||||
|
|
||||||
Without `enforce_method`, R falls back to class-based dispatch on the raw Python input, which may fail or return unexpected results. Always supply `enforce_method` when calling `as_sir()` from Python.
|
|
||||||
|
|
||||||
# Conclusion
|
|
||||||
|
|
||||||
With the `AMR` Python package, Python users can now effortlessly call R functions from the `AMR` R package. This eliminates the need for complex `rpy2` configurations and provides a clean, easy-to-use interface for antimicrobial resistance analysis. The examples provided above demonstrate how this can be applied to typical workflows, such as standardising microorganism and antimicrobial names or calculating resistance.
|
|
||||||
|
|
||||||
By just running `import AMR`, users can seamlessly integrate the robust features of the R `AMR` package into Python workflows.
|
|
||||||
|
|
||||||
Whether you're cleaning data or analysing resistance patterns, the `AMR` Python package makes it easy to work with AMR data in Python.
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
README.md
|
|
||||||
setup.py
|
|
||||||
AMR/__init__.py
|
|
||||||
AMR/_engine.py
|
|
||||||
AMR/beta.py
|
|
||||||
AMR/datasets.py
|
|
||||||
AMR/functions.py
|
|
||||||
AMR.egg-info/PKG-INFO
|
|
||||||
AMR.egg-info/SOURCES.txt
|
|
||||||
AMR.egg-info/dependency_links.txt
|
|
||||||
AMR.egg-info/requires.txt
|
|
||||||
AMR.egg-info/top_level.txt
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
rpy2
|
|
||||||
numpy
|
|
||||||
pandas
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
AMR
|
|
||||||
@@ -1,249 +0,0 @@
|
|||||||
import sys
|
|
||||||
|
|
||||||
_DATASETS = frozenset({
|
|
||||||
'example_isolates', 'microorganisms',
|
|
||||||
'antimicrobials', 'clinical_breakpoints'
|
|
||||||
})
|
|
||||||
|
|
||||||
class _AMRModule(type(sys.modules[__name__])):
|
|
||||||
"""Lazy-loading module: nothing runs until an attribute is accessed."""
|
|
||||||
|
|
||||||
def __getattr__(self, name):
|
|
||||||
if name in _DATASETS:
|
|
||||||
from .datasets import get
|
|
||||||
return get(name, source="cran")
|
|
||||||
try:
|
|
||||||
from . import functions
|
|
||||||
return getattr(functions, name)
|
|
||||||
except AttributeError:
|
|
||||||
raise AttributeError(
|
|
||||||
f"module 'AMR' has no attribute '{name}'")
|
|
||||||
|
|
||||||
sys.modules[__name__].__class__ = _AMRModule
|
|
||||||
from .functions import custom_eucast_rules
|
|
||||||
from .functions import ab_class
|
|
||||||
from .functions import ab_selector
|
|
||||||
from .functions import ab_from_text
|
|
||||||
from .functions import ab_name
|
|
||||||
from .functions import ab_cid
|
|
||||||
from .functions import ab_synonyms
|
|
||||||
from .functions import ab_tradenames
|
|
||||||
from .functions import ab_group
|
|
||||||
from .functions import ab_atc
|
|
||||||
from .functions import ab_atc_group1
|
|
||||||
from .functions import ab_atc_group2
|
|
||||||
from .functions import ab_loinc
|
|
||||||
from .functions import ab_ddd
|
|
||||||
from .functions import ab_ddd_units
|
|
||||||
from .functions import ab_info
|
|
||||||
from .functions import ab_url
|
|
||||||
from .functions import ab_property
|
|
||||||
from .functions import add_custom_antimicrobials
|
|
||||||
from .functions import clear_custom_antimicrobials
|
|
||||||
from .functions import add_custom_microorganisms
|
|
||||||
from .functions import clear_custom_microorganisms
|
|
||||||
from .functions import age
|
|
||||||
from .functions import age_groups
|
|
||||||
from .functions import all_sir
|
|
||||||
from .functions import all_sir_predictors
|
|
||||||
from .functions import all_mic
|
|
||||||
from .functions import all_mic_predictors
|
|
||||||
from .functions import all_disk
|
|
||||||
from .functions import all_disk_predictors
|
|
||||||
from .functions import step_mic_log2
|
|
||||||
from .functions import step_sir_numeric
|
|
||||||
from .functions import amr_course
|
|
||||||
from .functions import wisca
|
|
||||||
from .functions import antibiogram
|
|
||||||
from .functions import retrieve_wisca_parameters
|
|
||||||
from .functions import wisca_plot
|
|
||||||
from .functions import aminoglycosides
|
|
||||||
from .functions import aminopenicillins
|
|
||||||
from .functions import antifungals
|
|
||||||
from .functions import antimycobacterials
|
|
||||||
from .functions import betalactams
|
|
||||||
from .functions import betalactams_with_inhibitor
|
|
||||||
from .functions import carbapenems
|
|
||||||
from .functions import cephalosporins
|
|
||||||
from .functions import cephalosporins_1st
|
|
||||||
from .functions import cephalosporins_2nd
|
|
||||||
from .functions import cephalosporins_3rd
|
|
||||||
from .functions import cephalosporins_4th
|
|
||||||
from .functions import cephalosporins_5th
|
|
||||||
from .functions import fluoroquinolones
|
|
||||||
from .functions import glycopeptides
|
|
||||||
from .functions import ionophores
|
|
||||||
from .functions import isoxazolylpenicillins
|
|
||||||
from .functions import lincosamides
|
|
||||||
from .functions import lipoglycopeptides
|
|
||||||
from .functions import macrolides
|
|
||||||
from .functions import monobactams
|
|
||||||
from .functions import nitrofurans
|
|
||||||
from .functions import oxazolidinones
|
|
||||||
from .functions import penicillins
|
|
||||||
from .functions import peptides
|
|
||||||
from .functions import phenicols
|
|
||||||
from .functions import phosphonics
|
|
||||||
from .functions import polymyxins
|
|
||||||
from .functions import quinolones
|
|
||||||
from .functions import rifamycins
|
|
||||||
from .functions import spiropyrimidinetriones
|
|
||||||
from .functions import streptogramins
|
|
||||||
from .functions import sulfonamides
|
|
||||||
from .functions import tetracyclines
|
|
||||||
from .functions import trimethoprims
|
|
||||||
from .functions import ureidopenicillins
|
|
||||||
from .functions import amr_class
|
|
||||||
from .functions import amr_selector
|
|
||||||
from .functions import administrable_per_os
|
|
||||||
from .functions import administrable_iv
|
|
||||||
from .functions import not_intrinsic_resistant
|
|
||||||
from .functions import as_ab
|
|
||||||
from .functions import is_ab
|
|
||||||
from .functions import ab_reset_session
|
|
||||||
from .functions import as_av
|
|
||||||
from .functions import is_av
|
|
||||||
from .functions import as_disk
|
|
||||||
from .functions import is_disk
|
|
||||||
from .functions import as_mic
|
|
||||||
from .functions import is_mic
|
|
||||||
from .functions import rescale_mic
|
|
||||||
from .functions import mic_p50
|
|
||||||
from .functions import mic_p90
|
|
||||||
from .functions import as_mo
|
|
||||||
from .functions import is_mo
|
|
||||||
from .functions import mo_uncertainties
|
|
||||||
from .functions import mo_renamed
|
|
||||||
from .functions import mo_failures
|
|
||||||
from .functions import mo_reset_session
|
|
||||||
from .functions import mo_cleaning_regex
|
|
||||||
from .functions import as_sir
|
|
||||||
from .functions import is_sir
|
|
||||||
from .functions import is_sir_eligible
|
|
||||||
from .functions import sir_interpretation_history
|
|
||||||
from .functions import atc_online_property
|
|
||||||
from .functions import atc_online_groups
|
|
||||||
from .functions import atc_online_ddd
|
|
||||||
from .functions import atc_online_ddd_units
|
|
||||||
from .functions import av_from_text
|
|
||||||
from .functions import av_name
|
|
||||||
from .functions import av_cid
|
|
||||||
from .functions import av_synonyms
|
|
||||||
from .functions import av_tradenames
|
|
||||||
from .functions import av_group
|
|
||||||
from .functions import av_atc
|
|
||||||
from .functions import av_loinc
|
|
||||||
from .functions import av_ddd
|
|
||||||
from .functions import av_ddd_units
|
|
||||||
from .functions import av_info
|
|
||||||
from .functions import av_url
|
|
||||||
from .functions import av_property
|
|
||||||
from .functions import availability
|
|
||||||
from .functions import bug_drug_combinations
|
|
||||||
from .functions import count_resistant
|
|
||||||
from .functions import count_susceptible
|
|
||||||
from .functions import count_S
|
|
||||||
from .functions import count_SI
|
|
||||||
from .functions import count_I
|
|
||||||
from .functions import count_IR
|
|
||||||
from .functions import count_R
|
|
||||||
from .functions import count_all
|
|
||||||
from .functions import n_sir
|
|
||||||
from .functions import count_df
|
|
||||||
from .functions import custom_interpretive_rules
|
|
||||||
from .functions import custom_mdro_guideline
|
|
||||||
from .functions import export_ncbi_biosample
|
|
||||||
from .functions import first_isolate
|
|
||||||
from .functions import filter_first_isolate
|
|
||||||
from .functions import g_test
|
|
||||||
from .functions import is_new_episode
|
|
||||||
from .functions import ggplot_pca
|
|
||||||
from .functions import ggplot_sir
|
|
||||||
from .functions import geom_sir
|
|
||||||
from .functions import guess_ab_col
|
|
||||||
from .functions import interpretive_rules
|
|
||||||
from .functions import eucast_rules
|
|
||||||
from .functions import clsi_rules
|
|
||||||
from .functions import eucast_dosage
|
|
||||||
from .functions import italicise_taxonomy
|
|
||||||
from .functions import italicize_taxonomy
|
|
||||||
from .functions import inner_join_microorganisms
|
|
||||||
from .functions import left_join_microorganisms
|
|
||||||
from .functions import right_join_microorganisms
|
|
||||||
from .functions import full_join_microorganisms
|
|
||||||
from .functions import semi_join_microorganisms
|
|
||||||
from .functions import anti_join_microorganisms
|
|
||||||
from .functions import key_antimicrobials
|
|
||||||
from .functions import all_antimicrobials
|
|
||||||
from .functions import kurtosis
|
|
||||||
from .functions import like
|
|
||||||
from .functions import mdro
|
|
||||||
from .functions import brmo
|
|
||||||
from .functions import mrgn
|
|
||||||
from .functions import mdr_tb
|
|
||||||
from .functions import mdr_cmi2012
|
|
||||||
from .functions import eucast_exceptional_phenotypes
|
|
||||||
from .functions import mean_amr_distance
|
|
||||||
from .functions import amr_distance_from_row
|
|
||||||
from .functions import mo_matching_score
|
|
||||||
from .functions import mo_name
|
|
||||||
from .functions import mo_fullname
|
|
||||||
from .functions import mo_shortname
|
|
||||||
from .functions import mo_subspecies
|
|
||||||
from .functions import mo_species
|
|
||||||
from .functions import mo_genus
|
|
||||||
from .functions import mo_family
|
|
||||||
from .functions import mo_order
|
|
||||||
from .functions import mo_class
|
|
||||||
from .functions import mo_phylum
|
|
||||||
from .functions import mo_kingdom
|
|
||||||
from .functions import mo_domain
|
|
||||||
from .functions import mo_type
|
|
||||||
from .functions import mo_status
|
|
||||||
from .functions import mo_pathogenicity
|
|
||||||
from .functions import mo_gramstain
|
|
||||||
from .functions import mo_is_gram_negative
|
|
||||||
from .functions import mo_is_gram_positive
|
|
||||||
from .functions import mo_is_yeast
|
|
||||||
from .functions import mo_is_intrinsic_resistant
|
|
||||||
from .functions import mo_oxygen_tolerance
|
|
||||||
from .functions import mo_is_anaerobic
|
|
||||||
from .functions import mo_morphology
|
|
||||||
from .functions import mo_snomed
|
|
||||||
from .functions import mo_ref
|
|
||||||
from .functions import mo_authors
|
|
||||||
from .functions import mo_year
|
|
||||||
from .functions import mo_lpsn
|
|
||||||
from .functions import mo_mycobank
|
|
||||||
from .functions import mo_gbif
|
|
||||||
from .functions import mo_rank
|
|
||||||
from .functions import mo_taxonomy
|
|
||||||
from .functions import mo_synonyms
|
|
||||||
from .functions import mo_current
|
|
||||||
from .functions import mo_group_members
|
|
||||||
from .functions import mo_info
|
|
||||||
from .functions import mo_url
|
|
||||||
from .functions import mo_property
|
|
||||||
from .functions import pca
|
|
||||||
from .functions import theme_sir
|
|
||||||
from .functions import labels_sir_count
|
|
||||||
from .functions import resistance
|
|
||||||
from .functions import susceptibility
|
|
||||||
from .functions import sir_confidence_interval
|
|
||||||
from .functions import proportion_R
|
|
||||||
from .functions import proportion_IR
|
|
||||||
from .functions import proportion_I
|
|
||||||
from .functions import proportion_SI
|
|
||||||
from .functions import proportion_S
|
|
||||||
from .functions import proportion_df
|
|
||||||
from .functions import sir_df
|
|
||||||
from .functions import random_mic
|
|
||||||
from .functions import random_disk
|
|
||||||
from .functions import random_sir
|
|
||||||
from .functions import resistance_predict
|
|
||||||
from .functions import sir_predict
|
|
||||||
from .functions import ggplot_sir_predict
|
|
||||||
from .functions import skewness
|
|
||||||
from .functions import top_n_microorganisms
|
|
||||||
from .functions import reset_AMR_locale
|
|
||||||
from .functions import translate_AMR
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
import os
|
|
||||||
import sys
|
|
||||||
import importlib.metadata as metadata
|
|
||||||
|
|
||||||
# Get the path to the virtual environment
|
|
||||||
venv_path = sys.prefix
|
|
||||||
r_lib_path = os.path.join(venv_path, "R_libs")
|
|
||||||
os.makedirs(r_lib_path, exist_ok=True)
|
|
||||||
|
|
||||||
# Set environment variable before importing rpy2
|
|
||||||
os.environ['R_LIBS_SITE'] = r_lib_path
|
|
||||||
|
|
||||||
from rpy2 import robjects
|
|
||||||
from rpy2.robjects.vectors import StrVector
|
|
||||||
from rpy2.robjects.packages import importr, isinstalled
|
|
||||||
|
|
||||||
# Import base and utils once
|
|
||||||
base = importr('base')
|
|
||||||
utils = importr('utils')
|
|
||||||
|
|
||||||
# Silence R console output entirely
|
|
||||||
robjects.r('suppressMessages(suppressWarnings(sink(tempfile())))')
|
|
||||||
base._libPaths(r_lib_path)
|
|
||||||
|
|
||||||
_installed_source = None
|
|
||||||
|
|
||||||
def _r_version():
|
|
||||||
"""Return the currently installed AMR R package version, or None."""
|
|
||||||
try:
|
|
||||||
return str(robjects.r(
|
|
||||||
f'as.character(packageVersion("AMR", lib.loc = "{r_lib_path}"))')[0])
|
|
||||||
except Exception:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def _py_version():
|
|
||||||
"""Return the Python AMR package version from metadata, or empty string."""
|
|
||||||
try:
|
|
||||||
return str(metadata.version('AMR'))
|
|
||||||
except metadata.PackageNotFoundError:
|
|
||||||
return ''
|
|
||||||
|
|
||||||
def _install_cran():
|
|
||||||
"""Install AMR from CRAN into the isolated library."""
|
|
||||||
print("AMR: Installing from CRAN...", flush=True)
|
|
||||||
utils.install_packages(
|
|
||||||
'AMR',
|
|
||||||
repos='https://cloud.r-project.org',
|
|
||||||
lib=r_lib_path,
|
|
||||||
quiet=True
|
|
||||||
)
|
|
||||||
|
|
||||||
def _install_github():
|
|
||||||
"""Install AMR development version from GitHub into the isolated library."""
|
|
||||||
print("AMR: Installing development version from GitHub...", flush=True)
|
|
||||||
utils.install_packages(
|
|
||||||
StrVector(['remotes', 'desc']),
|
|
||||||
repos='https://cloud.r-project.org',
|
|
||||||
lib=r_lib_path,
|
|
||||||
quiet=True
|
|
||||||
)
|
|
||||||
remotes = importr('remotes', lib_loc=r_lib_path)
|
|
||||||
remotes.install_github('msberends/AMR', lib=r_lib_path, quiet=True)
|
|
||||||
|
|
||||||
def ensure_amr(source="cran"):
|
|
||||||
"""Ensure AMR is installed from the requested source. Idempotent per source."""
|
|
||||||
global _installed_source
|
|
||||||
|
|
||||||
if _installed_source == source:
|
|
||||||
return
|
|
||||||
|
|
||||||
install_fn = _install_github if source == "github" else _install_cran
|
|
||||||
|
|
||||||
if not isinstalled('AMR', lib_loc=r_lib_path):
|
|
||||||
install_fn()
|
|
||||||
else:
|
|
||||||
# Check for version mismatch and update if needed
|
|
||||||
r_ver = _r_version()
|
|
||||||
py_ver = _py_version()
|
|
||||||
if r_ver != py_ver:
|
|
||||||
try:
|
|
||||||
install_fn()
|
|
||||||
except Exception as e:
|
|
||||||
print(f"AMR: Could not update ({e})", flush=True)
|
|
||||||
|
|
||||||
print(f"AMR: R package version {_r_version()} ready.", flush=True)
|
|
||||||
_installed_source = source
|
|
||||||
|
|
||||||
def restore_sink():
|
|
||||||
"""Restore R console output after setup is complete."""
|
|
||||||
try:
|
|
||||||
robjects.r('sink()')
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
import sys
|
|
||||||
|
|
||||||
_DATASETS = frozenset({
|
|
||||||
'example_isolates', 'microorganisms',
|
|
||||||
'antimicrobials', 'clinical_breakpoints'
|
|
||||||
})
|
|
||||||
|
|
||||||
class _BetaModule(type(sys.modules[__name__])):
|
|
||||||
"""Lazy-loading module: installs AMR from GitHub on first access."""
|
|
||||||
|
|
||||||
def __getattr__(self, name):
|
|
||||||
if name in _DATASETS:
|
|
||||||
from .datasets import get
|
|
||||||
return get(name, source="github")
|
|
||||||
try:
|
|
||||||
from . import functions
|
|
||||||
return getattr(functions, name)
|
|
||||||
except AttributeError:
|
|
||||||
raise AttributeError(
|
|
||||||
f"module 'AMR.beta' has no attribute '{name}'")
|
|
||||||
|
|
||||||
sys.modules[__name__].__class__ = _BetaModule
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
import pandas as pd
|
|
||||||
from rpy2 import robjects
|
|
||||||
from rpy2.robjects.conversion import localconverter
|
|
||||||
from rpy2.robjects import default_converter, numpy2ri, pandas2ri
|
|
||||||
|
|
||||||
from ._engine import ensure_amr, restore_sink
|
|
||||||
|
|
||||||
_cache = {}
|
|
||||||
_loaded_source = None
|
|
||||||
|
|
||||||
def _load_datasets(source="cran"):
|
|
||||||
"""Load all AMR datasets into the module cache."""
|
|
||||||
global _loaded_source
|
|
||||||
|
|
||||||
if _cache and _loaded_source == source:
|
|
||||||
return
|
|
||||||
|
|
||||||
if _cache and _loaded_source != source:
|
|
||||||
_cache.clear()
|
|
||||||
|
|
||||||
ensure_amr(source)
|
|
||||||
|
|
||||||
with localconverter(default_converter + numpy2ri.converter + pandas2ri.converter):
|
|
||||||
_cache['example_isolates'] = _load_example_isolates()
|
|
||||||
_cache['microorganisms'] = robjects.r(
|
|
||||||
'AMR::microorganisms[, !sapply(AMR::microorganisms, is.list)]')
|
|
||||||
_cache['antimicrobials'] = robjects.r(
|
|
||||||
'AMR::antimicrobials[, !sapply(AMR::antimicrobials, is.list)]')
|
|
||||||
_cache['clinical_breakpoints'] = robjects.r(
|
|
||||||
'AMR::clinical_breakpoints[, !sapply(AMR::clinical_breakpoints, is.list)]')
|
|
||||||
|
|
||||||
restore_sink()
|
|
||||||
_loaded_source = source
|
|
||||||
|
|
||||||
def _load_example_isolates():
|
|
||||||
df = 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
|
|
||||||
''')
|
|
||||||
df['date'] = pd.to_datetime(df['date'])
|
|
||||||
return df
|
|
||||||
|
|
||||||
def get(name, source="cran"):
|
|
||||||
"""Retrieve a dataset by name, installing AMR if needed."""
|
|
||||||
_load_datasets(source)
|
|
||||||
return _cache[name]
|
|
||||||
@@ -1,984 +0,0 @@
|
|||||||
import functools
|
|
||||||
import rpy2.robjects as robjects
|
|
||||||
from rpy2.robjects.packages import importr
|
|
||||||
from rpy2.robjects.vectors import StrVector, FactorVector, IntVector, FloatVector, DataFrame
|
|
||||||
from rpy2.robjects.conversion import localconverter
|
|
||||||
from rpy2.robjects import default_converter, numpy2ri, pandas2ri
|
|
||||||
import pandas as pd
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
from ._engine import ensure_amr
|
|
||||||
|
|
||||||
# Ensure AMR is available before importing it in R
|
|
||||||
ensure_amr("cran")
|
|
||||||
amr_r = importr('AMR')
|
|
||||||
|
|
||||||
def convert_to_r(value):
|
|
||||||
"""Convert Python lists/tuples to typed R vectors.
|
|
||||||
|
|
||||||
rpy2's default_converter passes Python lists to R as R lists, not as
|
|
||||||
character/numeric vectors. This causes element-wise type-check functions
|
|
||||||
such as is.mic(), is.sir(), and is.disk() to return a logical vector
|
|
||||||
rather than a single logical, breaking R's scalar && operator.
|
|
||||||
|
|
||||||
This helper converts Python lists and tuples to the appropriate R vector
|
|
||||||
type based on the element types, so R always receives a proper vector."""
|
|
||||||
if isinstance(value, (list, tuple)):
|
|
||||||
if len(value) == 0:
|
|
||||||
return StrVector([])
|
|
||||||
# bool must be checked before int because bool is a subclass of int
|
|
||||||
if all(isinstance(v, bool) for v in value):
|
|
||||||
return robjects.vectors.BoolVector(value)
|
|
||||||
if all(isinstance(v, int) for v in value):
|
|
||||||
return IntVector(value)
|
|
||||||
if all(isinstance(v, float) for v in value):
|
|
||||||
return FloatVector(value)
|
|
||||||
if all(isinstance(v, str) for v in value):
|
|
||||||
return StrVector(value)
|
|
||||||
# Mixed types: coerce all to string
|
|
||||||
return StrVector([str(v) for v in value])
|
|
||||||
return value
|
|
||||||
|
|
||||||
def convert_to_python(r_output):
|
|
||||||
# Check if it's a StrVector (R character vector)
|
|
||||||
if isinstance(r_output, StrVector):
|
|
||||||
return list(r_output) # Convert to a Python list of strings
|
|
||||||
|
|
||||||
# Check if it's a FactorVector (R factor)
|
|
||||||
elif isinstance(r_output, FactorVector):
|
|
||||||
return list(r_output) # Convert to a list of integers (factor levels)
|
|
||||||
|
|
||||||
# Check if it's an IntVector or FloatVector (numeric R vectors)
|
|
||||||
elif isinstance(r_output, (IntVector, FloatVector)):
|
|
||||||
return list(r_output) # Convert to a Python list of integers or floats
|
|
||||||
|
|
||||||
# Check if it's a pandas-compatible R data frame
|
|
||||||
elif isinstance(r_output, (pd.DataFrame, DataFrame)):
|
|
||||||
return r_output # Return as pandas DataFrame (already converted by pandas2ri)
|
|
||||||
|
|
||||||
# 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_):
|
|
||||||
return r_output.tolist() # Convert to a regular Python list
|
|
||||||
|
|
||||||
# Fall-back
|
|
||||||
return r_output
|
|
||||||
|
|
||||||
def r_to_python(r_func):
|
|
||||||
"""Decorator that converts Python list/tuple inputs to typed R vectors,
|
|
||||||
runs the rpy2 function under a localconverter, and converts the output
|
|
||||||
to a Python type."""
|
|
||||||
@functools.wraps(r_func)
|
|
||||||
def wrapper(*args, **kwargs):
|
|
||||||
args = tuple(convert_to_r(a) for a in args)
|
|
||||||
kwargs = {k: convert_to_r(v) for k, v in kwargs.items()}
|
|
||||||
with localconverter(default_converter + numpy2ri.converter + pandas2ri.converter):
|
|
||||||
return convert_to_python(r_func(*args, **kwargs))
|
|
||||||
return wrapper
|
|
||||||
@r_to_python
|
|
||||||
def custom_eucast_rules(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.custom_eucast_rules(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_class(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_class(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_selector(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_selector(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_from_text(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_from_text(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_name(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_name(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_cid(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_cid(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_synonyms(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_synonyms(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_tradenames(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_tradenames(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_group(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_group(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_atc(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_atc(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_atc_group1(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_atc_group1(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_atc_group2(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_atc_group2(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_loinc(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_loinc(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_ddd(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_ddd(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_ddd_units(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_ddd_units(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_info(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_info(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_url(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_url(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ab_property(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_property(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def add_custom_antimicrobials(x):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.add_custom_antimicrobials(x)
|
|
||||||
@r_to_python
|
|
||||||
def clear_custom_antimicrobials(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.clear_custom_antimicrobials(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def add_custom_microorganisms(x):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.add_custom_microorganisms(x)
|
|
||||||
@r_to_python
|
|
||||||
def clear_custom_microorganisms(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.clear_custom_microorganisms(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def age(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.age(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def age_groups(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.age_groups(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def all_sir(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.all_sir(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def all_sir_predictors(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.all_sir_predictors(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def all_mic(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.all_mic(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def all_mic_predictors(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.all_mic_predictors(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def all_disk(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.all_disk(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def all_disk_predictors(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.all_disk_predictors(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def step_mic_log2(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.step_mic_log2(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def step_sir_numeric(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.step_sir_numeric(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def amr_course(github_repo, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.amr_course(github_repo, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def wisca(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.wisca(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def antibiogram(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.antibiogram(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def retrieve_wisca_parameters(wisca_model, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.retrieve_wisca_parameters(wisca_model, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def wisca_plot(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.wisca_plot(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def aminoglycosides(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.aminoglycosides(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def aminopenicillins(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.aminopenicillins(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def antifungals(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.antifungals(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def antimycobacterials(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.antimycobacterials(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def betalactams(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.betalactams(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def betalactams_with_inhibitor(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.betalactams_with_inhibitor(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def carbapenems(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.carbapenems(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def cephalosporins(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.cephalosporins(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def cephalosporins_1st(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.cephalosporins_1st(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def cephalosporins_2nd(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.cephalosporins_2nd(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def cephalosporins_3rd(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.cephalosporins_3rd(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def cephalosporins_4th(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.cephalosporins_4th(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def cephalosporins_5th(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.cephalosporins_5th(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def fluoroquinolones(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.fluoroquinolones(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def glycopeptides(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.glycopeptides(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ionophores(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ionophores(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def isoxazolylpenicillins(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.isoxazolylpenicillins(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def lincosamides(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.lincosamides(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def lipoglycopeptides(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.lipoglycopeptides(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def macrolides(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.macrolides(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def monobactams(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.monobactams(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def nitrofurans(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.nitrofurans(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def oxazolidinones(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.oxazolidinones(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def penicillins(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.penicillins(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def peptides(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.peptides(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def phenicols(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.phenicols(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def phosphonics(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.phosphonics(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def polymyxins(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.polymyxins(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def quinolones(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.quinolones(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def rifamycins(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.rifamycins(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def spiropyrimidinetriones(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.spiropyrimidinetriones(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def streptogramins(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.streptogramins(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def sulfonamides(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.sulfonamides(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def tetracyclines(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.tetracyclines(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def trimethoprims(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.trimethoprims(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ureidopenicillins(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ureidopenicillins(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def amr_class(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.amr_class(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def amr_selector(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.amr_selector(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def administrable_per_os(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.administrable_per_os(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def administrable_iv(only_sir_columns = False, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.administrable_iv(only_sir_columns = False, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def not_intrinsic_resistant(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.not_intrinsic_resistant(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def as_ab(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.as_ab(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def is_ab(x):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.is_ab(x)
|
|
||||||
@r_to_python
|
|
||||||
def ab_reset_session(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ab_reset_session(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def as_av(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.as_av(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def is_av(x):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.is_av(x)
|
|
||||||
@r_to_python
|
|
||||||
def as_disk(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.as_disk(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def is_disk(x):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.is_disk(x)
|
|
||||||
@r_to_python
|
|
||||||
def as_mic(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.as_mic(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def is_mic(x):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.is_mic(x)
|
|
||||||
@r_to_python
|
|
||||||
def rescale_mic(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.rescale_mic(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mic_p50(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mic_p50(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mic_p90(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mic_p90(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def as_mo(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.as_mo(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def is_mo(x):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.is_mo(x)
|
|
||||||
@r_to_python
|
|
||||||
def mo_uncertainties(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_uncertainties(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_renamed(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_renamed(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_failures(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_failures(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_reset_session(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_reset_session(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_cleaning_regex(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_cleaning_regex(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def as_sir(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.as_sir(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def is_sir(x):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.is_sir(x)
|
|
||||||
@r_to_python
|
|
||||||
def is_sir_eligible(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.is_sir_eligible(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def sir_interpretation_history(clean):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.sir_interpretation_history(clean)
|
|
||||||
@r_to_python
|
|
||||||
def atc_online_property(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.atc_online_property(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def atc_online_groups(atc_code, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.atc_online_groups(atc_code, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def atc_online_ddd(atc_code, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.atc_online_ddd(atc_code, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def atc_online_ddd_units(atc_code, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.atc_online_ddd_units(atc_code, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_from_text(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_from_text(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_name(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_name(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_cid(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_cid(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_synonyms(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_synonyms(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_tradenames(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_tradenames(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_group(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_group(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_atc(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_atc(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_loinc(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_loinc(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_ddd(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_ddd(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_ddd_units(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_ddd_units(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_info(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_info(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_url(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_url(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def av_property(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.av_property(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def availability(tbl, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.availability(tbl, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def bug_drug_combinations(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.bug_drug_combinations(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_resistant(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_resistant(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_susceptible(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_susceptible(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_S(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_S(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_SI(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_SI(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_I(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_I(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_IR(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_IR(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_R(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_R(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_all(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_all(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def n_sir(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.n_sir(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def count_df(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.count_df(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def custom_interpretive_rules(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.custom_interpretive_rules(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def custom_mdro_guideline(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.custom_mdro_guideline(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def export_ncbi_biosample(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.export_ncbi_biosample(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def first_isolate(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.first_isolate(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def filter_first_isolate(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.filter_first_isolate(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def g_test(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.g_test(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def is_new_episode(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.is_new_episode(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ggplot_pca(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ggplot_pca(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ggplot_sir(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ggplot_sir(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def geom_sir(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.geom_sir(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def guess_ab_col(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.guess_ab_col(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def interpretive_rules(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.interpretive_rules(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def eucast_rules(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.eucast_rules(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def clsi_rules(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.clsi_rules(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def eucast_dosage(ab, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.eucast_dosage(ab, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def italicise_taxonomy(string, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.italicise_taxonomy(string, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def italicize_taxonomy(string, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.italicize_taxonomy(string, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def inner_join_microorganisms(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.inner_join_microorganisms(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def left_join_microorganisms(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.left_join_microorganisms(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def right_join_microorganisms(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.right_join_microorganisms(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def full_join_microorganisms(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.full_join_microorganisms(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def semi_join_microorganisms(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.semi_join_microorganisms(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def anti_join_microorganisms(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.anti_join_microorganisms(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def key_antimicrobials(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.key_antimicrobials(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def all_antimicrobials(x = None, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.all_antimicrobials(x = None, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def kurtosis(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.kurtosis(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def like(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.like(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mdro(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mdro(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def brmo(x = None, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.brmo(x = None, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mrgn(x = None, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mrgn(x = None, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mdr_tb(x = None, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mdr_tb(x = None, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mdr_cmi2012(x = None, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mdr_cmi2012(x = None, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def eucast_exceptional_phenotypes(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.eucast_exceptional_phenotypes(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mean_amr_distance(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mean_amr_distance(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def amr_distance_from_row(amr_distance, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.amr_distance_from_row(amr_distance, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_matching_score(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_matching_score(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_name(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_name(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_fullname(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_fullname(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_shortname(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_shortname(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_subspecies(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_subspecies(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_species(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_species(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_genus(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_genus(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_family(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_family(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_order(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_order(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_class(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_class(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_phylum(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_phylum(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_kingdom(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_kingdom(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_domain(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_domain(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_type(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_type(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_status(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_status(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_pathogenicity(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_pathogenicity(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_gramstain(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_gramstain(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_is_gram_negative(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_is_gram_negative(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_is_gram_positive(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_is_gram_positive(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_is_yeast(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_is_yeast(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_is_intrinsic_resistant(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_is_intrinsic_resistant(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_oxygen_tolerance(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_oxygen_tolerance(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_is_anaerobic(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_is_anaerobic(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_morphology(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_morphology(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_snomed(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_snomed(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_ref(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_ref(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_authors(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_authors(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_year(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_year(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_lpsn(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_lpsn(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_mycobank(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_mycobank(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_gbif(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_gbif(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_rank(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_rank(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_taxonomy(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_taxonomy(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_synonyms(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_synonyms(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_current(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_current(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_group_members(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_group_members(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_info(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_info(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_url(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_url(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def mo_property(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.mo_property(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def pca(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.pca(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def theme_sir(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.theme_sir(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def labels_sir_count(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.labels_sir_count(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def resistance(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.resistance(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def susceptibility(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.susceptibility(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def sir_confidence_interval(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.sir_confidence_interval(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def proportion_R(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.proportion_R(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def proportion_IR(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.proportion_IR(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def proportion_I(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.proportion_I(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def proportion_SI(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.proportion_SI(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def proportion_S(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.proportion_S(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def proportion_df(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.proportion_df(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def sir_df(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.sir_df(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def random_mic(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.random_mic(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def random_disk(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.random_disk(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def random_sir(size = None, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.random_sir(size = None, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def resistance_predict(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.resistance_predict(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def sir_predict(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.sir_predict(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def ggplot_sir_predict(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.ggplot_sir_predict(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def skewness(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.skewness(x, *args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def top_n_microorganisms(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.top_n_microorganisms(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def reset_AMR_locale(*args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.reset_AMR_locale(*args, **kwargs)
|
|
||||||
@r_to_python
|
|
||||||
def translate_AMR(x, *args, **kwargs):
|
|
||||||
"""Please see our website of the R package for the full manual: https://amr-for-r.org"""
|
|
||||||
return amr_r.translate_AMR(x, *args, **kwargs)
|
|
||||||
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 245 KiB |
@@ -0,0 +1,397 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>License • AMR (for R)</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="apple-touch-icon-60x60.png"><script src="deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet"><script src="deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="deps/Fira_Code-0.4.2/font.css" rel="stylesheet"><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="pkgdown.js"></script><link href="extra.css" rel="stylesheet"><script src="extra.js"></script><meta property="og:title" content="License"><meta property="og:image" content="https://msberends.github.io/AMR/logo.svg"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:creator" content="@msberends"><meta name="twitter:site" content="@msberends"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]--></head><body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto"><li class="nav-item">
|
||||||
|
<a class="nav-link" href="index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul><form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="search.json" id="search-input" placeholder="Search for" autocomplete="off"></form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav"><li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-title-body">
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="logo.svg" class="logo" alt=""><h1>License</h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<pre>GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
A SUMMARY OF THIS LICENSE BY THE ORIGINAL AUTHORS OF THE AMR R PACKAGE
|
||||||
|
|
||||||
|
This R package, with package name 'AMR':
|
||||||
|
- May be used for commercial purposes
|
||||||
|
- May be used for private purposes
|
||||||
|
- May NOT be used for patent purposes
|
||||||
|
- May be modified, although:
|
||||||
|
- Modifications MUST be released under the same license when distributing the package
|
||||||
|
- Changes made to the code MUST be documented
|
||||||
|
- May be distributed, although:
|
||||||
|
- Source code MUST be made available when the package is distributed
|
||||||
|
- A copy of the license and copyright notice MUST be included with the package.
|
||||||
|
- Comes with a LIMITATION of liability
|
||||||
|
- Comes with NO warranty
|
||||||
|
|
||||||
|
END OF THE SUMMARY
|
||||||
|
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</main></div>
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p><p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p><p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
|
|
||||||
@@ -1,226 +0,0 @@
|
|||||||
|
|
||||||
The `AMR` package for R is a powerful tool for antimicrobial resistance (AMR) analysis. It provides extensive features for handling microbial and antimicrobial data. However, for those who work primarily in Python, we now have a more intuitive option available: the [`AMR` Python package](https://pypi.org/project/AMR/).
|
|
||||||
|
|
||||||
This Python package is a wrapper around the `AMR` R package. It uses the `rpy2` package internally. Despite the need to have R installed, Python users can now easily work with AMR data directly through Python code.
|
|
||||||
|
|
||||||
# Prerequisites
|
|
||||||
|
|
||||||
This package was only tested with a [virtual environment (venv)](https://docs.python.org/3/library/venv.html). You can set up such an environment by running:
|
|
||||||
|
|
||||||
```python
|
|
||||||
# linux and macOS:
|
|
||||||
python -m venv /path/to/new/virtual/environment
|
|
||||||
|
|
||||||
# Windows:
|
|
||||||
python -m venv C:\path\to\new\virtual\environment
|
|
||||||
```
|
|
||||||
|
|
||||||
Then you can [activate the environment](https://docs.python.org/3/library/venv.html#how-venvs-work), after which the venv is ready to work with.
|
|
||||||
|
|
||||||
# Install AMR
|
|
||||||
|
|
||||||
1. Since the Python package is available on the official [Python Package Index](https://pypi.org/project/AMR/), you can just run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pip install AMR
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Make sure you have R installed. There is **no need to install the `AMR` R package**, as it will be installed automatically.
|
|
||||||
|
|
||||||
For Linux:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Ubuntu / Debian
|
|
||||||
sudo apt install r-base
|
|
||||||
# Fedora:
|
|
||||||
sudo dnf install R
|
|
||||||
# CentOS/RHEL
|
|
||||||
sudo yum install R
|
|
||||||
```
|
|
||||||
|
|
||||||
For macOS (using [Homebrew](https://brew.sh)):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
brew install r
|
|
||||||
```
|
|
||||||
|
|
||||||
For Windows, visit the [CRAN download page](https://cran.r-project.org) to download and install R.
|
|
||||||
|
|
||||||
# Examples of Usage
|
|
||||||
|
|
||||||
## Cleaning Taxonomy
|
|
||||||
|
|
||||||
Here’s an example that demonstrates how to clean microorganism and drug names using the `AMR` Python package:
|
|
||||||
|
|
||||||
```python
|
|
||||||
import pandas as pd
|
|
||||||
import AMR
|
|
||||||
|
|
||||||
# Sample data
|
|
||||||
data = {
|
|
||||||
"MOs": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'],
|
|
||||||
"Drug": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin']
|
|
||||||
}
|
|
||||||
df = pd.DataFrame(data)
|
|
||||||
|
|
||||||
# Use AMR functions to clean microorganism and drug names
|
|
||||||
df['MO_clean'] = AMR.mo_name(df['MOs'])
|
|
||||||
df['Drug_clean'] = AMR.ab_name(df['Drug'])
|
|
||||||
|
|
||||||
# Display the results
|
|
||||||
print(df)
|
|
||||||
```
|
|
||||||
|
|
||||||
| MOs | Drug | MO_clean | Drug_clean |
|
|
||||||
|-------------|-----------|--------------------|---------------|
|
|
||||||
| E. coli | Cipro | Escherichia coli | Ciprofloxacin |
|
|
||||||
| ESCCOL | CIP | Escherichia coli | Ciprofloxacin |
|
|
||||||
| esco | J01MA02 | Escherichia coli | Ciprofloxacin |
|
|
||||||
| Esche coli | Ciproxin | Escherichia coli | Ciprofloxacin |
|
|
||||||
|
|
||||||
### Explanation
|
|
||||||
|
|
||||||
* **mo_name:** This function standardises microorganism names. Here, different variations of *Escherichia coli* (such as "E. coli", "ESCCOL", "esco", and "Esche coli") are all converted into the correct, standardised form, "Escherichia coli".
|
|
||||||
|
|
||||||
* **ab_name**: Similarly, this function standardises antimicrobial names. The different representations of ciprofloxacin (e.g., "Cipro", "CIP", "J01MA02", and "Ciproxin") are all converted to the standard name, "Ciprofloxacin".
|
|
||||||
|
|
||||||
## Calculating AMR
|
|
||||||
|
|
||||||
```python
|
|
||||||
import AMR
|
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
df = AMR.example_isolates
|
|
||||||
result = AMR.resistance(df["AMX"])
|
|
||||||
print(result)
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
[0.59555556]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Generating Antibiograms
|
|
||||||
|
|
||||||
One of the core functions of the `AMR` package is generating an antibiogram, a table that summarises the antimicrobial susceptibility of bacterial isolates. Here’s how you can generate an antibiogram from Python:
|
|
||||||
|
|
||||||
```python
|
|
||||||
result2a = AMR.antibiogram(df[["mo", "AMX", "CIP", "TZP"]])
|
|
||||||
print(result2a)
|
|
||||||
```
|
|
||||||
|
|
||||||
| Pathogen | Amoxicillin | Ciprofloxacin | Piperacillin/tazobactam |
|
|
||||||
|-----------------|-----------------|-----------------|--------------------------|
|
|
||||||
| CoNS | 7% (10/142) | 73% (183/252) | 30% (10/33) |
|
|
||||||
| E. coli | 50% (196/392) | 88% (399/456) | 94% (393/416) |
|
|
||||||
| K. pneumoniae | 0% (0/58) | 96% (53/55) | 89% (47/53) |
|
|
||||||
| P. aeruginosa | 0% (0/30) | 100% (30/30) | None |
|
|
||||||
| P. mirabilis | None | 94% (34/36) | None |
|
|
||||||
| S. aureus | 6% (8/131) | 90% (171/191) | None |
|
|
||||||
| S. epidermidis | 1% (1/91) | 64% (87/136) | None |
|
|
||||||
| S. hominis | None | 80% (56/70) | None |
|
|
||||||
| S. pneumoniae | 100% (112/112) | None | 100% (112/112) |
|
|
||||||
|
|
||||||
|
|
||||||
```python
|
|
||||||
result2b = AMR.antibiogram(df[["mo", "AMX", "CIP", "TZP"]], mo_transform = "gramstain")
|
|
||||||
print(result2b)
|
|
||||||
```
|
|
||||||
|
|
||||||
| Pathogen | Amoxicillin | Ciprofloxacin | Piperacillin/tazobactam |
|
|
||||||
|----------------|-----------------|------------------|--------------------------|
|
|
||||||
| Gram-negative | 36% (226/631) | 91% (621/684) | 88% (565/641) |
|
|
||||||
| Gram-positive | 43% (305/703) | 77% (560/724) | 86% (296/345) |
|
|
||||||
|
|
||||||
|
|
||||||
In this example, we generate an antibiogram by selecting various antibiotics.
|
|
||||||
|
|
||||||
## Taxonomic Data Sets Now in Python!
|
|
||||||
|
|
||||||
As a Python user, you might like that the most important data sets of the `AMR` R package, `microorganisms`, `antimicrobials`, `clinical_breakpoints`, and `example_isolates`, are now available as regular Python data frames:
|
|
||||||
|
|
||||||
```python
|
|
||||||
AMR.microorganisms
|
|
||||||
```
|
|
||||||
|
|
||||||
| mo | fullname | status | kingdom | gbif | gbif_parent | gbif_renamed_to | prevalence |
|
|
||||||
|--------------|------------------------------------|----------|----------|-----------|-------------|-----------------|------------|
|
|
||||||
| B_GRAMN | (unknown Gram-negatives) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_GRAMP | (unknown Gram-positives) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_ANAER-NEG | (unknown anaerobic Gram-negatives) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_ANAER-POS | (unknown anaerobic Gram-positives) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_ANAER | (unknown anaerobic bacteria) | unknown | Bacteria | None | None | None | 2.0 |
|
|
||||||
| ... | ... | ... | ... | ... | ... | ... | ... |
|
|
||||||
| B_ZYMMN_POMC | Zymomonas pomaceae | accepted | Bacteria | 10744418 | 3221412 | None | 2.0 |
|
|
||||||
| B_ZYMPH | Zymophilus | synonym | Bacteria | None | 9475166 | None | 2.0 |
|
|
||||||
| B_ZYMPH_PCVR | Zymophilus paucivorans | synonym | Bacteria | None | None | None | 2.0 |
|
|
||||||
| B_ZYMPH_RFFN | Zymophilus raffinosivorans | synonym | Bacteria | None | None | None | 2.0 |
|
|
||||||
| F_ZYZYG | Zyzygomyces | unknown | Fungi | None | 7581 | None | 2.0 |
|
|
||||||
|
|
||||||
```python
|
|
||||||
AMR.antimicrobials
|
|
||||||
```
|
|
||||||
|
|
||||||
| ab | cid | name | group | oral_ddd | oral_units | iv_ddd | iv_units |
|
|
||||||
|-----|-------------|----------------------|----------------------------|----------|------------|--------|----------|
|
|
||||||
| AMA | 4649.0 | 4-aminosalicylic acid| Antimycobacterials | 12.00 | g | NaN | None |
|
|
||||||
| ACM | 6450012.0 | Acetylmidecamycin | Macrolides/lincosamides | NaN | None | NaN | None |
|
|
||||||
| ASP | 49787020.0 | Acetylspiramycin | Macrolides/lincosamides | NaN | None | NaN | None |
|
|
||||||
| ALS | 8954.0 | Aldesulfone sodium | Other antibacterials | 0.33 | g | NaN | None |
|
|
||||||
| AMK | 37768.0 | Amikacin | Aminoglycosides | NaN | None | 1.0 | g |
|
|
||||||
| ... | ... | ... | ... | ... | ... | ... | ... |
|
|
||||||
| VIR | 11979535.0 | Virginiamycine | Other antibacterials | NaN | None | NaN | None |
|
|
||||||
| VOR | 71616.0 | Voriconazole | Antifungals/antimycotics | 0.40 | g | 0.4 | g |
|
|
||||||
| XBR | 72144.0 | Xibornol | Other antibacterials | NaN | None | NaN | None |
|
|
||||||
| ZID | 77846445.0 | Zidebactam | Other antibacterials | NaN | None | NaN | None |
|
|
||||||
| ZFD | NaN | Zoliflodacin | None | NaN | None | NaN | None |
|
|
||||||
|
|
||||||
|
|
||||||
# Installation Channels
|
|
||||||
|
|
||||||
## Stable Release (CRAN)
|
|
||||||
|
|
||||||
The default `AMR` Python package uses the latest stable version of the `AMR` R package, published on CRAN. After running `pip install AMR`, import it as usual:
|
|
||||||
|
|
||||||
```python
|
|
||||||
import AMR
|
|
||||||
|
|
||||||
AMR.example_isolates
|
|
||||||
```
|
|
||||||
|
|
||||||
## Development Version (GitHub)
|
|
||||||
|
|
||||||
To use the latest development version of the `AMR` R package (sourced directly from GitHub), import the `beta` sub-package and alias it as `AMR`:
|
|
||||||
|
|
||||||
```python
|
|
||||||
import AMR.beta as AMR
|
|
||||||
|
|
||||||
AMR.example_isolates
|
|
||||||
```
|
|
||||||
|
|
||||||
Aliasing with `as AMR` keeps all downstream code identical to the stable import. Switching between the stable release and the development version requires changing only the import line — nothing else in your script needs to change.
|
|
||||||
|
|
||||||
# SIR Classification with `as_sir()`
|
|
||||||
|
|
||||||
## Using `enforce_method`
|
|
||||||
|
|
||||||
The `as_sir()` function in R uses S3 method dispatch to select the correct calculation method based on the input class: `<mic>` for MIC values and `<disk>` for disk diffusion values. Because Python objects do not carry R class attributes through the `rpy2` bridge, this automatic dispatch may not resolve correctly.
|
|
||||||
|
|
||||||
To explicitly specify the input type, use the `enforce_method` argument:
|
|
||||||
|
|
||||||
```python
|
|
||||||
# Treat the column as MIC values — maps to R's as.sir.mic()
|
|
||||||
AMR.as_sir(df["MIC_col"], mo="E. coli", ab="AMX", guideline="EUCAST", enforce_method="mic")
|
|
||||||
|
|
||||||
# Treat the column as disk diffusion values — maps to R's as.sir.disk()
|
|
||||||
AMR.as_sir(df["disk_col"], mo="E. coli", ab="AMX", guideline="EUCAST", enforce_method="disk")
|
|
||||||
```
|
|
||||||
|
|
||||||
Without `enforce_method`, R falls back to class-based dispatch on the raw Python input, which may fail or return unexpected results. Always supply `enforce_method` when calling `as_sir()` from Python.
|
|
||||||
|
|
||||||
# Conclusion
|
|
||||||
|
|
||||||
With the `AMR` Python package, Python users can now effortlessly call R functions from the `AMR` R package. This eliminates the need for complex `rpy2` configurations and provides a clean, easy-to-use interface for antimicrobial resistance analysis. The examples provided above demonstrate how this can be applied to typical workflows, such as standardising microorganism and antimicrobial names or calculating resistance.
|
|
||||||
|
|
||||||
By just running `import AMR`, users can seamlessly integrate the robust features of the R `AMR` package into Python workflows.
|
|
||||||
|
|
||||||
Whether you're cleaning data or analysing resistance patterns, the `AMR` Python package makes it easy to work with AMR data in Python.
|
|
||||||
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 49 KiB |
@@ -0,0 +1,392 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="description" content="AMR">
|
||||||
|
<title>How to apply EUCAST rules • AMR (for R)</title>
|
||||||
|
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png">
|
||||||
|
<script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link href="../deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="../deps/Fira_Code-0.4.2/font.css" rel="stylesheet">
|
||||||
|
<!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
|
||||||
|
<!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||||
|
<script src="../extra.js"></script><meta property="og:title" content="How to apply EUCAST rules">
|
||||||
|
<meta property="og:description" content="AMR">
|
||||||
|
<meta property="og:image" content="https://msberends.github.io/AMR/logo.svg">
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:creator" content="@msberends">
|
||||||
|
<meta name="twitter:site" content="@msberends">
|
||||||
|
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="active nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="../articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="../logo.svg" class="logo" alt=""><h1>How to apply EUCAST rules</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/vignettes/EUCAST.Rmd" class="external-link"><code>vignettes/EUCAST.Rmd</code></a></small>
|
||||||
|
<div class="d-none name"><code>EUCAST.Rmd</code></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="introduction">Introduction<a class="anchor" aria-label="anchor" href="#introduction"></a>
|
||||||
|
</h2>
|
||||||
|
<p>What are EUCAST rules? The European Committee on Antimicrobial Susceptibility Testing (EUCAST) states <a href="https://www.eucast.org/expert_rules_and_intrinsic_resistance/" class="external-link">on their website</a>:</p>
|
||||||
|
<blockquote>
|
||||||
|
<p><em>EUCAST expert rules are a tabulated collection of expert knowledge on intrinsic resistances, exceptional resistance phenotypes and interpretive rules that may be applied to antimicrobial susceptibility testing in order to reduce errors and make appropriate recommendations for reporting particular resistances.</em></p>
|
||||||
|
</blockquote>
|
||||||
|
<p>In Europe, a lot of medical microbiological laboratories already apply these rules (<a href="https://www.eurosurveillance.org/content/10.2807/1560-7917.ES2015.20.2.21008" class="external-link">Brown <em>et al.</em>, 2015</a>). Our package features their latest insights on intrinsic resistance and unusual phenotypes (v3.3, 2021).</p>
|
||||||
|
<p>Moreover, the <code><a href="../reference/eucast_rules.html">eucast_rules()</a></code> function we use for this purpose can also apply additional rules, like forcing <help title="ATC: J01CA01">ampicillin</help> = R in isolates when <help title="ATC: J01CR02">amoxicillin/clavulanic acid</help> = R.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="examples">Examples<a class="anchor" aria-label="anchor" href="#examples"></a>
|
||||||
|
</h2>
|
||||||
|
<p>These rules can be used to discard impossible bug-drug combinations in your data. For example, <em>Klebsiella</em> produces beta-lactamase that prevents ampicillin (or amoxicillin) from working against it. In other words, practically every strain of <em>Klebsiella</em> is resistant to ampicillin.</p>
|
||||||
|
<p>Sometimes, laboratory data can still contain such strains with ampicillin being susceptible to ampicillin. This could be because an antibiogram is available before an identification is available, and the antibiogram is then not re-interpreted based on the identification (namely, <em>Klebsiella</em>). EUCAST expert rules solve this, that can be applied using <code><a href="../reference/eucast_rules.html">eucast_rules()</a></code>:</p>
|
||||||
|
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">oops</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span></span>
|
||||||
|
<span> mo <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span></span>
|
||||||
|
<span> <span class="st">"Klebsiella"</span>,</span>
|
||||||
|
<span> <span class="st">"Escherichia"</span></span>
|
||||||
|
<span> <span class="op">)</span>,</span>
|
||||||
|
<span> ampicillin <span class="op">=</span> <span class="st">"S"</span></span>
|
||||||
|
<span><span class="op">)</span></span>
|
||||||
|
<span><span class="va">oops</span></span>
|
||||||
|
<span><span class="co"># mo ampicillin</span></span>
|
||||||
|
<span><span class="co"># 1 Klebsiella S</span></span>
|
||||||
|
<span><span class="co"># 2 Escherichia S</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/eucast_rules.html">eucast_rules</a></span><span class="op">(</span><span class="va">oops</span>, info <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># mo ampicillin</span></span>
|
||||||
|
<span><span class="co"># 1 Klebsiella R</span></span>
|
||||||
|
<span><span class="co"># 2 Escherichia S</span></span></code></pre></div>
|
||||||
|
<p>A more convenient function is <code><a href="../reference/mo_property.html">mo_is_intrinsic_resistant()</a></code> that uses the same guideline, but allows to check for one or more specific microorganisms or antibiotics:</p>
|
||||||
|
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="../reference/mo_property.html">mo_is_intrinsic_resistant</a></span><span class="op">(</span></span>
|
||||||
|
<span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"Klebsiella"</span>, <span class="st">"Escherichia"</span><span class="op">)</span>,</span>
|
||||||
|
<span> <span class="st">"ampicillin"</span></span>
|
||||||
|
<span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># [1] TRUE FALSE</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/mo_property.html">mo_is_intrinsic_resistant</a></span><span class="op">(</span></span>
|
||||||
|
<span> <span class="st">"Klebsiella"</span>,</span>
|
||||||
|
<span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"ampicillin"</span>, <span class="st">"kanamycin"</span><span class="op">)</span></span>
|
||||||
|
<span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># [1] TRUE FALSE</span></span></code></pre></div>
|
||||||
|
<p>EUCAST rules can not only be used for correction, they can also be used for filling in known resistance and susceptibility based on results of other antimicrobials drugs. This process is called <em>interpretive reading</em>, is basically a form of imputation, and is part of the <code><a href="../reference/eucast_rules.html">eucast_rules()</a></code> function as well:</p>
|
||||||
|
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">data</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span></span>
|
||||||
|
<span> mo <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span></span>
|
||||||
|
<span> <span class="st">"Staphylococcus aureus"</span>,</span>
|
||||||
|
<span> <span class="st">"Enterococcus faecalis"</span>,</span>
|
||||||
|
<span> <span class="st">"Escherichia coli"</span>,</span>
|
||||||
|
<span> <span class="st">"Klebsiella pneumoniae"</span>,</span>
|
||||||
|
<span> <span class="st">"Pseudomonas aeruginosa"</span></span>
|
||||||
|
<span> <span class="op">)</span>,</span>
|
||||||
|
<span> VAN <span class="op">=</span> <span class="st">"-"</span>, <span class="co"># Vancomycin</span></span>
|
||||||
|
<span> AMX <span class="op">=</span> <span class="st">"-"</span>, <span class="co"># Amoxicillin</span></span>
|
||||||
|
<span> COL <span class="op">=</span> <span class="st">"-"</span>, <span class="co"># Colistin</span></span>
|
||||||
|
<span> CAZ <span class="op">=</span> <span class="st">"-"</span>, <span class="co"># Ceftazidime</span></span>
|
||||||
|
<span> CXM <span class="op">=</span> <span class="st">"-"</span>, <span class="co"># Cefuroxime</span></span>
|
||||||
|
<span> PEN <span class="op">=</span> <span class="st">"S"</span>, <span class="co"># Benzylenicillin</span></span>
|
||||||
|
<span> FOX <span class="op">=</span> <span class="st">"S"</span>, <span class="co"># Cefoxitin</span></span>
|
||||||
|
<span> stringsAsFactors <span class="op">=</span> <span class="cn">FALSE</span></span>
|
||||||
|
<span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">data</span></span></code></pre></div>
|
||||||
|
<table class="table">
|
||||||
|
<thead><tr class="header">
|
||||||
|
<th align="left">mo</th>
|
||||||
|
<th align="center">VAN</th>
|
||||||
|
<th align="center">AMX</th>
|
||||||
|
<th align="center">COL</th>
|
||||||
|
<th align="center">CAZ</th>
|
||||||
|
<th align="center">CXM</th>
|
||||||
|
<th align="center">PEN</th>
|
||||||
|
<th align="center">FOX</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">Staphylococcus aureus</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">Enterococcus faecalis</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">Escherichia coli</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">Klebsiella pneumoniae</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">Pseudomonas aeruginosa</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="../reference/eucast_rules.html">eucast_rules</a></span><span class="op">(</span><span class="va">data</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<table class="table">
|
||||||
|
<thead><tr class="header">
|
||||||
|
<th align="left">mo</th>
|
||||||
|
<th align="center">VAN</th>
|
||||||
|
<th align="center">AMX</th>
|
||||||
|
<th align="center">COL</th>
|
||||||
|
<th align="center">CAZ</th>
|
||||||
|
<th align="center">CXM</th>
|
||||||
|
<th align="center">PEN</th>
|
||||||
|
<th align="center">FOX</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">Staphylococcus aureus</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">Enterococcus faecalis</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">Escherichia coli</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">Klebsiella pneumoniae</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">Pseudomonas aeruginosa</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">-</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||||
|
</nav></aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p>
|
||||||
|
<p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p>
|
||||||
|
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,424 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="description" content="AMR">
|
||||||
|
<title>How to determine multi-drug resistance (MDR) • AMR (for R)</title>
|
||||||
|
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png">
|
||||||
|
<script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link href="../deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="../deps/Fira_Code-0.4.2/font.css" rel="stylesheet">
|
||||||
|
<!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
|
||||||
|
<!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||||
|
<script src="../extra.js"></script><meta property="og:title" content="How to determine multi-drug resistance (MDR)">
|
||||||
|
<meta property="og:description" content="AMR">
|
||||||
|
<meta property="og:image" content="https://msberends.github.io/AMR/logo.svg">
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:creator" content="@msberends">
|
||||||
|
<meta name="twitter:site" content="@msberends">
|
||||||
|
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="active nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="../articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="../logo.svg" class="logo" alt=""><h1>How to determine multi-drug resistance (MDR)</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/vignettes/MDR.Rmd" class="external-link"><code>vignettes/MDR.Rmd</code></a></small>
|
||||||
|
<div class="d-none name"><code>MDR.Rmd</code></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>With the function <code><a href="../reference/mdro.html">mdro()</a></code>, you can determine which micro-organisms are multi-drug resistant organisms (MDRO).</p>
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="type-of-input">Type of input<a class="anchor" aria-label="anchor" href="#type-of-input"></a>
|
||||||
|
</h3>
|
||||||
|
<p>The <code><a href="../reference/mdro.html">mdro()</a></code> function takes a data set as input, such as a regular <code>data.frame</code>. It tries to automatically determine the right columns for info about your isolates, such as the name of the species and all columns with results of antimicrobial agents. See the help page for more info about how to set the right settings for your data with the command <code><a href="../reference/mdro.html">?mdro</a></code>.</p>
|
||||||
|
<p>For WHONET data (and most other data), all settings are automatically set correctly.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="guidelines">Guidelines<a class="anchor" aria-label="anchor" href="#guidelines"></a>
|
||||||
|
</h3>
|
||||||
|
<p>The <code><a href="../reference/mdro.html">mdro()</a></code> function support multiple guidelines. You can select a guideline with the <code>guideline</code> parameter. Currently supported guidelines are (case-insensitive):</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p><code>guideline = "CMI2012"</code> (default)</p>
|
||||||
|
<p>Magiorakos AP, Srinivasan A <em>et al.</em> “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) (<a href="https://www.clinicalmicrobiologyandinfection.com/article/S1198-743X(14)61632-3/fulltext" class="external-link">link</a>)</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><code>guideline = "EUCAST3.2"</code> (or simply <code>guideline = "EUCAST"</code>)</p>
|
||||||
|
<p>The European international guideline - EUCAST Expert Rules Version 3.2 “Intrinsic Resistance and Unusual Phenotypes” (<a href="https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/2020/Intrinsic_Resistance_and_Unusual_Phenotypes_Tables_v3.2_20200225.pdf" class="external-link">link</a>)</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><code>guideline = "EUCAST3.1"</code></p>
|
||||||
|
<p>The European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance and Exceptional Phenotypes Tables” (<a href="https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/Expert_rules_intrinsic_exceptional_V3.1.pdf" class="external-link">link</a>)</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><code>guideline = "TB"</code></p>
|
||||||
|
<p>The international guideline for multi-drug resistant tuberculosis - World Health Organization “Companion handbook to the WHO guidelines for the programmatic management of drug-resistant tuberculosis” (<a href="https://www.who.int/tb/publications/pmdt_companionhandbook/en/" class="external-link">link</a>)</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><code>guideline = "MRGN"</code></p>
|
||||||
|
<p>The German national guideline - Mueller <em>et al.</em> (2015) Antimicrobial Resistance and Infection Control 4:7. DOI: 10.1186/s13756-015-0047-6</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><code>guideline = "BRMO"</code></p>
|
||||||
|
<p>The Dutch national guideline - Rijksinstituut voor Volksgezondheid en Milieu “WIP-richtlijn BRMO (Bijzonder Resistente Micro-Organismen) (ZKH)” (<a href="https://www.rivm.nl/wip-richtlijn-brmo-bijzonder-resistente-micro-organismen-zkh" class="external-link">link</a>)</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>Please suggest your own (country-specific) guidelines by letting us know: <a href="https://github.com/msberends/AMR/issues/new" class="external-link uri">https://github.com/msberends/AMR/issues/new</a>.</p>
|
||||||
|
<div class="section level4">
|
||||||
|
<h4 id="custom-guidelines">Custom Guidelines<a class="anchor" aria-label="anchor" href="#custom-guidelines"></a>
|
||||||
|
</h4>
|
||||||
|
<p>You can also use your own custom guideline. Custom guidelines can be set with the <code><a href="../reference/mdro.html">custom_mdro_guideline()</a></code> 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.</p>
|
||||||
|
<p>If you are familiar with <code><a href="https://dplyr.tidyverse.org/reference/case_when.html" class="external-link">case_when()</a></code> of the <code>dplyr</code> 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’:</p>
|
||||||
|
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">custom</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mdro.html">custom_mdro_guideline</a></span><span class="op">(</span></span>
|
||||||
|
<span> <span class="va">CIP</span> <span class="op">==</span> <span class="st">"R"</span> <span class="op">&</span> <span class="va">age</span> <span class="op">></span> <span class="fl">60</span> <span class="op">~</span> <span class="st">"Elderly Type A"</span>,</span>
|
||||||
|
<span> <span class="va">ERY</span> <span class="op">==</span> <span class="st">"R"</span> <span class="op">&</span> <span class="va">age</span> <span class="op">></span> <span class="fl">60</span> <span class="op">~</span> <span class="st">"Elderly Type B"</span></span>
|
||||||
|
<span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>If a row/an isolate matches the first rule, the value after the first <code>~</code> (in this case <em>‘Elderly Type A’</em>) will be set as MDRO value. Otherwise, the second rule will be tried and so on. The maximum number of rules is unlimited.</p>
|
||||||
|
<p>You can print the rules set in the console for an overview. Colours will help reading it if your console supports colours.</p>
|
||||||
|
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">custom</span></span>
|
||||||
|
<span><span class="co"># A set of custom MDRO rules:</span></span>
|
||||||
|
<span><span class="co"># 1. If CIP is "R" and age is higher than 60 then: Elderly Type A</span></span>
|
||||||
|
<span><span class="co"># 2. If ERY is "R" and age is higher than 60 then: Elderly Type B</span></span>
|
||||||
|
<span><span class="co"># 3. Otherwise: Negative</span></span>
|
||||||
|
<span><span class="co"># </span></span>
|
||||||
|
<span><span class="co"># Unmatched rows will return NA.</span></span>
|
||||||
|
<span><span class="co"># Results will be of class 'factor', with ordered levels: Negative < Elderly Type A < Elderly Type B</span></span></code></pre></div>
|
||||||
|
<p>The outcome of the function can be used for the <code>guideline</code> argument in the <code><a href="../reference/mdro.html">mdro()</a></code> function:</p>
|
||||||
|
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">x</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mdro.html">mdro</a></span><span class="op">(</span><span class="va">example_isolates</span>, guideline <span class="op">=</span> <span class="va">custom</span><span class="op">)</span></span>
|
||||||
|
<span><span class="fu"><a href="https://rdrr.io/r/base/table.html" class="external-link">table</a></span><span class="op">(</span><span class="va">x</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># x</span></span>
|
||||||
|
<span><span class="co"># Negative Elderly Type A Elderly Type B </span></span>
|
||||||
|
<span><span class="co"># 1070 198 732</span></span></code></pre></div>
|
||||||
|
<p>The rules set (the <code>custom</code> object in this case) could be exported to a shared file location using <code><a href="https://rdrr.io/r/base/readRDS.html" class="external-link">saveRDS()</a></code> if you collaborate with multiple users. The custom rules set could then be imported using <code><a href="https://rdrr.io/r/base/readRDS.html" class="external-link">readRDS()</a></code>.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="examples">Examples<a class="anchor" aria-label="anchor" href="#examples"></a>
|
||||||
|
</h3>
|
||||||
|
<p>The <code><a href="../reference/mdro.html">mdro()</a></code> function always returns an ordered <code>factor</code> for predefined guidelines. For example, the output of the default guideline by Magiorakos <em>et al.</em> returns a <code>factor</code> with levels ‘Negative’, ‘MDR’, ‘XDR’ or ‘PDR’ in that order.</p>
|
||||||
|
<p>The next example uses the <code>example_isolates</code> data set. This is a data set included with this package and contains full antibiograms of 2,000 microbial isolates. It reflects reality and can be used to practise AMR data analysis. If we test the MDR/XDR/PDR guideline on this data set, we get:</p>
|
||||||
|
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span> <span class="co"># to support pipes: %>%</span></span>
|
||||||
|
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://github.com/msberends/cleaner" class="external-link">cleaner</a></span><span class="op">)</span> <span class="co"># to create frequency tables</span></span></code></pre></div>
|
||||||
|
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">example_isolates</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="../reference/mdro.html">mdro</a></span><span class="op">(</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="https://rdrr.io/pkg/cleaner/man/freq.html" class="external-link">freq</a></span><span class="op">(</span><span class="op">)</span> <span class="co"># show frequency table of the result</span></span>
|
||||||
|
<span><span class="co"># Warning: in `mdro()`: NA introduced for isolates where the available percentage of</span></span>
|
||||||
|
<span><span class="co"># antimicrobial classes was below 50% (set with `pct_required_classes`)</span></span></code></pre></div>
|
||||||
|
<p>(16 isolates had no test results)</p>
|
||||||
|
<p><strong>Frequency table</strong></p>
|
||||||
|
<p>Class: factor > ordered (numeric)<br>
|
||||||
|
Length: 2,000<br>
|
||||||
|
Levels: 4: Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant …<br>
|
||||||
|
Available: 1,729 (86.45%, NA: 271 = 13.55%)<br>
|
||||||
|
Unique: 2</p>
|
||||||
|
<table class="table">
|
||||||
|
<thead><tr class="header">
|
||||||
|
<th align="left"></th>
|
||||||
|
<th align="left">Item</th>
|
||||||
|
<th align="right">Count</th>
|
||||||
|
<th align="right">Percent</th>
|
||||||
|
<th align="right">Cum. Count</th>
|
||||||
|
<th align="right">Cum. Percent</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">1</td>
|
||||||
|
<td align="left">Negative</td>
|
||||||
|
<td align="right">1601</td>
|
||||||
|
<td align="right">92.60%</td>
|
||||||
|
<td align="right">1601</td>
|
||||||
|
<td align="right">92.60%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">2</td>
|
||||||
|
<td align="left">Multi-drug-resistant (MDR)</td>
|
||||||
|
<td align="right">128</td>
|
||||||
|
<td align="right">7.40%</td>
|
||||||
|
<td align="right">1729</td>
|
||||||
|
<td align="right">100.00%</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>For another example, I will create a data set to determine multi-drug resistant TB:</p>
|
||||||
|
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># random_rsi() is a helper function to generate</span></span>
|
||||||
|
<span><span class="co"># a random vector with values S, I and R</span></span>
|
||||||
|
<span><span class="va">my_TB_data</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span></span>
|
||||||
|
<span> rifampicin <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> isoniazid <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> gatifloxacin <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> ethambutol <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> pyrazinamide <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> moxifloxacin <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> kanamycin <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span></span>
|
||||||
|
<span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>Because all column names are automatically verified for valid drug names or codes, this would have worked exactly the same way:</p>
|
||||||
|
<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">my_TB_data</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span></span>
|
||||||
|
<span> RIF <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> INH <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> GAT <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> ETH <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> PZA <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> MFX <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span>,</span>
|
||||||
|
<span> KAN <span class="op">=</span> <span class="fu"><a href="../reference/random.html">random_rsi</a></span><span class="op">(</span><span class="fl">5000</span><span class="op">)</span></span>
|
||||||
|
<span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>The data set now looks like this:</p>
|
||||||
|
<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/utils/head.html" class="external-link">head</a></span><span class="op">(</span><span class="va">my_TB_data</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin</span></span>
|
||||||
|
<span><span class="co"># 1 R S I S I S</span></span>
|
||||||
|
<span><span class="co"># 2 R R I R R I</span></span>
|
||||||
|
<span><span class="co"># 3 R I S I I I</span></span>
|
||||||
|
<span><span class="co"># 4 R R S I S S</span></span>
|
||||||
|
<span><span class="co"># 5 R R S R I R</span></span>
|
||||||
|
<span><span class="co"># 6 S S R I S S</span></span>
|
||||||
|
<span><span class="co"># kanamycin</span></span>
|
||||||
|
<span><span class="co"># 1 R</span></span>
|
||||||
|
<span><span class="co"># 2 S</span></span>
|
||||||
|
<span><span class="co"># 3 R</span></span>
|
||||||
|
<span><span class="co"># 4 I</span></span>
|
||||||
|
<span><span class="co"># 5 S</span></span>
|
||||||
|
<span><span class="co"># 6 I</span></span></code></pre></div>
|
||||||
|
<p>We can now add the interpretation of MDR-TB to our data set. You can use:</p>
|
||||||
|
<div class="sourceCode" id="cb9"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="../reference/mdro.html">mdro</a></span><span class="op">(</span><span class="va">my_TB_data</span>, guideline <span class="op">=</span> <span class="st">"TB"</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>or its shortcut <code><a href="../reference/mdro.html">mdr_tb()</a></code>:</p>
|
||||||
|
<div class="sourceCode" id="cb10"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">my_TB_data</span><span class="op">$</span><span class="va">mdr</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mdro.html">mdr_tb</a></span><span class="op">(</span><span class="va">my_TB_data</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># ℹ No column found as input for `col_mo`, assuming all rows contain</span></span>
|
||||||
|
<span><span class="co"># Mycobacterium tuberculosis.</span></span></code></pre></div>
|
||||||
|
<p>Create a frequency table of the results:</p>
|
||||||
|
<div class="sourceCode" id="cb11"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/cleaner/man/freq.html" class="external-link">freq</a></span><span class="op">(</span><span class="va">my_TB_data</span><span class="op">$</span><span class="va">mdr</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><strong>Frequency table</strong></p>
|
||||||
|
<p>Class: factor > ordered (numeric)<br>
|
||||||
|
Length: 5,000<br>
|
||||||
|
Levels: 5: Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant <…<br>
|
||||||
|
Available: 5,000 (100.0%, NA: 0 = 0.0%)<br>
|
||||||
|
Unique: 5</p>
|
||||||
|
<table class="table">
|
||||||
|
<thead><tr class="header">
|
||||||
|
<th align="left"></th>
|
||||||
|
<th align="left">Item</th>
|
||||||
|
<th align="right">Count</th>
|
||||||
|
<th align="right">Percent</th>
|
||||||
|
<th align="right">Cum. Count</th>
|
||||||
|
<th align="right">Cum. Percent</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">1</td>
|
||||||
|
<td align="left">Mono-resistant</td>
|
||||||
|
<td align="right">3161</td>
|
||||||
|
<td align="right">63.22%</td>
|
||||||
|
<td align="right">3161</td>
|
||||||
|
<td align="right">63.22%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">2</td>
|
||||||
|
<td align="left">Negative</td>
|
||||||
|
<td align="right">1035</td>
|
||||||
|
<td align="right">20.70%</td>
|
||||||
|
<td align="right">4196</td>
|
||||||
|
<td align="right">83.92%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">3</td>
|
||||||
|
<td align="left">Multi-drug-resistant</td>
|
||||||
|
<td align="right">452</td>
|
||||||
|
<td align="right">9.04%</td>
|
||||||
|
<td align="right">4648</td>
|
||||||
|
<td align="right">92.96%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">4</td>
|
||||||
|
<td align="left">Poly-resistant</td>
|
||||||
|
<td align="right">241</td>
|
||||||
|
<td align="right">4.82%</td>
|
||||||
|
<td align="right">4889</td>
|
||||||
|
<td align="right">97.78%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">5</td>
|
||||||
|
<td align="left">Extensively drug-resistant</td>
|
||||||
|
<td align="right">111</td>
|
||||||
|
<td align="right">2.22%</td>
|
||||||
|
<td align="right">5000</td>
|
||||||
|
<td align="right">100.00%</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||||
|
</nav></aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p>
|
||||||
|
<p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p>
|
||||||
|
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,319 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="description" content="AMR">
|
||||||
|
<title>How to conduct principal component analysis (PCA) for AMR • AMR (for R)</title>
|
||||||
|
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png">
|
||||||
|
<script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link href="../deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="../deps/Fira_Code-0.4.2/font.css" rel="stylesheet">
|
||||||
|
<!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
|
||||||
|
<!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||||
|
<script src="../extra.js"></script><meta property="og:title" content="How to conduct principal component analysis (PCA) for AMR">
|
||||||
|
<meta property="og:description" content="AMR">
|
||||||
|
<meta property="og:image" content="https://msberends.github.io/AMR/logo.svg">
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:creator" content="@msberends">
|
||||||
|
<meta name="twitter:site" content="@msberends">
|
||||||
|
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="active nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="../articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="../logo.svg" class="logo" alt=""><h1>How to conduct principal component analysis (PCA) for AMR</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/vignettes/PCA.Rmd" class="external-link"><code>vignettes/PCA.Rmd</code></a></small>
|
||||||
|
<div class="d-none name"><code>PCA.Rmd</code></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p><strong>NOTE: This page will be updated soon, as the pca() function is currently being developed.</strong></p>
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="introduction">Introduction<a class="anchor" aria-label="anchor" href="#introduction"></a>
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="transforming">Transforming<a class="anchor" aria-label="anchor" href="#transforming"></a>
|
||||||
|
</h2>
|
||||||
|
<p>For PCA, we need to transform our AMR data first. This is what the <code>example_isolates</code> data set in this package looks like:</p>
|
||||||
|
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/AMR/">AMR</a></span><span class="op">)</span></span>
|
||||||
|
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span></span>
|
||||||
|
<span><span class="fu"><a href="https://pillar.r-lib.org/reference/glimpse.html" class="external-link">glimpse</a></span><span class="op">(</span><span class="va">example_isolates</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># Rows: 2,000</span></span>
|
||||||
|
<span><span class="co"># Columns: 46</span></span>
|
||||||
|
<span><span class="co"># $ date <span style="color: #949494; font-style: italic;"><date></span> 2002-01-02, 2002-01-03, 2002-01-07, 2002-01-07, 2002-01-13, 2…</span></span>
|
||||||
|
<span><span class="co"># $ patient <span style="color: #949494; font-style: italic;"><chr></span> "A77334", "A77334", "067927", "067927", "067927", "067927", "4…</span></span>
|
||||||
|
<span><span class="co"># $ age <span style="color: #949494; font-style: italic;"><dbl></span> 65, 65, 45, 45, 45, 45, 78, 78, 45, 79, 67, 67, 71, 71, 75, 50…</span></span>
|
||||||
|
<span><span class="co"># $ gender <span style="color: #949494; font-style: italic;"><chr></span> "F", "F", "F", "F", "F", "F", "M", "M", "F", "F", "M", "M", "M…</span></span>
|
||||||
|
<span><span class="co"># $ ward <span style="color: #949494; font-style: italic;"><chr></span> "Clinical", "Clinical", "ICU", "ICU", "ICU", "ICU", "Clinical"…</span></span>
|
||||||
|
<span><span class="co"># $ mo <span style="color: #949494; font-style: italic;"><mo></span> "B_ESCHR_COLI", "B_ESCHR_COLI", "B_STPHY_EPDR", "B_STPHY_EPDR",…</span></span>
|
||||||
|
<span><span class="co"># $ PEN <span style="color: #949494; font-style: italic;"><rsi></span> R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, S,…</span></span>
|
||||||
|
<span><span class="co"># $ OXA <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ FLC <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, R, R, R, R, S, S, R, S, S, S, NA, NA, NA, NA, NA, R, R…</span></span>
|
||||||
|
<span><span class="co"># $ AMX <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N…</span></span>
|
||||||
|
<span><span class="co"># $ AMC <span style="color: #949494; font-style: italic;"><rsi></span> I, I, NA, NA, NA, NA, S, S, NA, NA, S, S, I, I, R, I, I, NA, N…</span></span>
|
||||||
|
<span><span class="co"># $ AMP <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N…</span></span>
|
||||||
|
<span><span class="co"># $ TZP <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ CZO <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,…</span></span>
|
||||||
|
<span><span class="co"># $ FEP <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ CXM <span style="color: #949494; font-style: italic;"><rsi></span> I, I, R, R, R, R, S, S, R, S, S, S, S, S, NA, S, S, R, R, S, S…</span></span>
|
||||||
|
<span><span class="co"># $ FOX <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,…</span></span>
|
||||||
|
<span><span class="co"># $ CTX <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S…</span></span>
|
||||||
|
<span><span class="co"># $ CAZ <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, S, S, R, R, …</span></span>
|
||||||
|
<span><span class="co"># $ CRO <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S…</span></span>
|
||||||
|
<span><span class="co"># $ GEN <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ TOB <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, S, S, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ AMK <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ KAN <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ TMP <span style="color: #949494; font-style: italic;"><rsi></span> R, R, S, S, R, R, R, R, S, S, NA, NA, S, S, S, S, S, R, R, R, …</span></span>
|
||||||
|
<span><span class="co"># $ SXT <span style="color: #949494; font-style: italic;"><rsi></span> R, R, S, S, NA, NA, NA, NA, S, S, NA, NA, S, S, S, S, S, NA, N…</span></span>
|
||||||
|
<span><span class="co"># $ NIT <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R,…</span></span>
|
||||||
|
<span><span class="co"># $ FOS <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ LNZ <span style="color: #949494; font-style: italic;"><rsi></span> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N…</span></span>
|
||||||
|
<span><span class="co"># $ CIP <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, NA, S, S…</span></span>
|
||||||
|
<span><span class="co"># $ MFX <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ VAN <span style="color: #949494; font-style: italic;"><rsi></span> R, R, S, S, S, S, S, S, S, S, NA, NA, R, R, R, R, R, S, S, S, …</span></span>
|
||||||
|
<span><span class="co"># $ TEC <span style="color: #949494; font-style: italic;"><rsi></span> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N…</span></span>
|
||||||
|
<span><span class="co"># $ TCY <span style="color: #949494; font-style: italic;"><rsi></span> R, R, S, S, S, S, S, S, S, I, S, S, NA, NA, I, R, R, S, I, R, …</span></span>
|
||||||
|
<span><span class="co"># $ TGC <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA…</span></span>
|
||||||
|
<span><span class="co"># $ DOX <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA…</span></span>
|
||||||
|
<span><span class="co"># $ ERY <span style="color: #949494; font-style: italic;"><rsi></span> R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,…</span></span>
|
||||||
|
<span><span class="co"># $ CLI <span style="color: #949494; font-style: italic;"><rsi></span> R, R, NA, NA, NA, R, NA, NA, NA, NA, NA, NA, R, R, R, R, R, NA…</span></span>
|
||||||
|
<span><span class="co"># $ AZM <span style="color: #949494; font-style: italic;"><rsi></span> R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,…</span></span>
|
||||||
|
<span><span class="co"># $ IPM <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S…</span></span>
|
||||||
|
<span><span class="co"># $ MEM <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ MTR <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ CHL <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ COL <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, R, R, R, R, …</span></span>
|
||||||
|
<span><span class="co"># $ MUP <span style="color: #949494; font-style: italic;"><rsi></span> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…</span></span>
|
||||||
|
<span><span class="co"># $ RIF <span style="color: #949494; font-style: italic;"><rsi></span> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N…</span></span></code></pre></div>
|
||||||
|
<p>Now to transform this to a data set with only resistance percentages per taxonomic order and genus:</p>
|
||||||
|
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">resistance_data</span> <span class="op"><-</span> <span class="va">example_isolates</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/group_by.html" class="external-link">group_by</a></span><span class="op">(</span></span>
|
||||||
|
<span> order <span class="op">=</span> <span class="fu"><a href="../reference/mo_property.html">mo_order</a></span><span class="op">(</span><span class="va">mo</span><span class="op">)</span>, <span class="co"># group on anything, like order</span></span>
|
||||||
|
<span> genus <span class="op">=</span> <span class="fu"><a href="../reference/mo_property.html">mo_genus</a></span><span class="op">(</span><span class="va">mo</span><span class="op">)</span></span>
|
||||||
|
<span> <span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span> <span class="co"># and genus as we do here</span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/summarise_all.html" class="external-link">summarise_if</a></span><span class="op">(</span><span class="va">is.rsi</span>, <span class="va">resistance</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span> <span class="co"># then get resistance of all drugs</span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/select.html" class="external-link">select</a></span><span class="op">(</span></span>
|
||||||
|
<span> <span class="va">order</span>, <span class="va">genus</span>, <span class="va">AMC</span>, <span class="va">CXM</span>, <span class="va">CTX</span>,</span>
|
||||||
|
<span> <span class="va">CAZ</span>, <span class="va">GEN</span>, <span class="va">TOB</span>, <span class="va">TMP</span>, <span class="va">SXT</span></span>
|
||||||
|
<span> <span class="op">)</span> <span class="co"># and select only relevant columns</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="fu"><a href="https://rdrr.io/r/utils/head.html" class="external-link">head</a></span><span class="op">(</span><span class="va">resistance_data</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># <span style="color: #949494;"># A tibble: 6 × 10</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #949494;"># Groups: order [5]</span></span></span>
|
||||||
|
<span><span class="co"># order genus AMC CXM CTX CAZ GEN TOB TMP SXT</span></span>
|
||||||
|
<span><span class="co"># <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;">1</span> (unknown order) (unknown ge… <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;">2</span> Actinomycetales Schaalia <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;">3</span> Bacteroidales Bacteroides <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;">4</span> Campylobacterales Campylobact… <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;">5</span> Caryophanales Gemella <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;">6</span> Caryophanales Listeria <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span></span></span></code></pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="perform-principal-component-analysis">Perform principal component analysis<a class="anchor" aria-label="anchor" href="#perform-principal-component-analysis"></a>
|
||||||
|
</h2>
|
||||||
|
<p>The new <code><a href="../reference/pca.html">pca()</a></code> function will automatically filter on rows that contain numeric values in all selected variables, so we now only need to do:</p>
|
||||||
|
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">pca_result</span> <span class="op"><-</span> <span class="fu"><a href="../reference/pca.html">pca</a></span><span class="op">(</span><span class="va">resistance_data</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># ℹ Columns selected for PCA: "AMC", "CAZ", "CTX", "CXM", "GEN", "SXT", "TMP"</span></span>
|
||||||
|
<span><span class="co"># and "TOB". Total observations available: 7.</span></span></code></pre></div>
|
||||||
|
<p>The result can be reviewed with the good old <code><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary()</a></code> function:</p>
|
||||||
|
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">pca_result</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># Groups (n=4, named as 'order'):</span></span>
|
||||||
|
<span><span class="co"># [1] "Caryophanales" "Enterobacterales" "Lactobacillales" "Pseudomonadales"</span></span>
|
||||||
|
<span><span class="co"># Importance of components:</span></span>
|
||||||
|
<span><span class="co"># PC1 PC2 PC3 PC4 PC5 PC6 PC7</span></span>
|
||||||
|
<span><span class="co"># Standard deviation 2.1539 1.6807 0.6138 0.33879 0.20808 0.03140 5.121e-17</span></span>
|
||||||
|
<span><span class="co"># Proportion of Variance 0.5799 0.3531 0.0471 0.01435 0.00541 0.00012 0.000e+00</span></span>
|
||||||
|
<span><span class="co"># Cumulative Proportion 0.5799 0.9330 0.9801 0.99446 0.99988 1.00000 1.000e+00</span></span></code></pre></div>
|
||||||
|
<pre><code><span><span class="co"># Groups (n=4, named as 'order'):</span></span>
|
||||||
|
<span><span class="co"># [1] "Caryophanales" "Enterobacterales" "Lactobacillales" "Pseudomonadales"</span></span></code></pre>
|
||||||
|
<p>Good news. The first two components explain a total of 93.3% of the variance (see the PC1 and PC2 values of the <em>Proportion of Variance</em>. We can create a so-called biplot with the base R <code><a href="https://rdrr.io/r/stats/biplot.html" class="external-link">biplot()</a></code> function, to see which antimicrobial resistance per drug explain the difference per microorganism.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="plotting-the-results">Plotting the results<a class="anchor" aria-label="anchor" href="#plotting-the-results"></a>
|
||||||
|
</h2>
|
||||||
|
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/biplot.html" class="external-link">biplot</a></span><span class="op">(</span><span class="va">pca_result</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><img src="PCA_files/figure-html/unnamed-chunk-5-1.png" width="750"></p>
|
||||||
|
<p>But we can’t see the explanation of the points. Perhaps this works better with our new <code><a href="../reference/ggplot_pca.html">ggplot_pca()</a></code> function, that automatically adds the right labels and even groups:</p>
|
||||||
|
<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="../reference/ggplot_pca.html">ggplot_pca</a></span><span class="op">(</span><span class="va">pca_result</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><img src="PCA_files/figure-html/unnamed-chunk-6-1.png" width="750"></p>
|
||||||
|
<p>You can also print an ellipse per group, and edit the appearance:</p>
|
||||||
|
<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="../reference/ggplot_pca.html">ggplot_pca</a></span><span class="op">(</span><span class="va">pca_result</span>, ellipse <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span> <span class="op">+</span></span>
|
||||||
|
<span> <span class="fu">ggplot2</span><span class="fu">::</span><span class="fu"><a href="https://ggplot2.tidyverse.org/reference/labs.html" class="external-link">labs</a></span><span class="op">(</span>title <span class="op">=</span> <span class="st">"An AMR/PCA biplot!"</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><img src="PCA_files/figure-html/unnamed-chunk-7-1.png" width="750"></p>
|
||||||
|
</div>
|
||||||
|
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||||
|
</nav></aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p>
|
||||||
|
<p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p>
|
||||||
|
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 91 KiB |
@@ -0,0 +1,394 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="description" content="AMR">
|
||||||
|
<title>How to import data from SPSS / SAS / Stata • AMR (for R)</title>
|
||||||
|
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png">
|
||||||
|
<script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link href="../deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="../deps/Fira_Code-0.4.2/font.css" rel="stylesheet">
|
||||||
|
<!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
|
||||||
|
<!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||||
|
<script src="../extra.js"></script><meta property="og:title" content="How to import data from SPSS / SAS / Stata">
|
||||||
|
<meta property="og:description" content="AMR">
|
||||||
|
<meta property="og:image" content="https://msberends.github.io/AMR/logo.svg">
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:creator" content="@msberends">
|
||||||
|
<meta name="twitter:site" content="@msberends">
|
||||||
|
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="active nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="../articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="../logo.svg" class="logo" alt=""><h1>How to import data from SPSS / SAS / Stata</h1>
|
||||||
|
<h4 data-toc-skip class="author">Dr. Matthijs Berends</h4>
|
||||||
|
|
||||||
|
<h4 data-toc-skip class="date">19 October 2022</h4>
|
||||||
|
|
||||||
|
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/vignettes/SPSS.Rmd" class="external-link"><code>vignettes/SPSS.Rmd</code></a></small>
|
||||||
|
<div class="d-none name"><code>SPSS.Rmd</code></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="spss-sas-stata">SPSS / SAS / Stata<a class="anchor" aria-label="anchor" href="#spss-sas-stata"></a>
|
||||||
|
</h2>
|
||||||
|
<p>SPSS (Statistical Package for the Social Sciences) is probably the most well-known software package for statistical analysis. SPSS is easier to learn than R, because in SPSS you only have to click a menu to run parts of your analysis. Because of its user-friendliness, it is taught at universities and particularly useful for students who are new to statistics. From my experience, I would guess that pretty much all (bio)medical students know it at the time they graduate. SAS and Stata are comparable statistical packages popular in big industries.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="compared-to-r">Compared to R<a class="anchor" aria-label="anchor" href="#compared-to-r"></a>
|
||||||
|
</h2>
|
||||||
|
<p>As said, SPSS is easier to learn than R. But SPSS, SAS and Stata come with major downsides when comparing it with R:</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p><strong>R is highly modular.</strong></p>
|
||||||
|
<p>The <a href="https://cran.r-project.org/" class="external-link">official R network (CRAN)</a> features more than 16,000 packages at the time of writing, our <code>AMR</code> package being one of them. All these packages were peer-reviewed before publication. Aside from this official channel, there are also developers who choose not to submit to CRAN, but rather keep it on their own public repository, like GitHub. So there may even be a lot more than 14,000 packages out there.</p>
|
||||||
|
<p>Bottom line is, you can really extend it yourself or ask somebody to do this for you. Take for example our <code>AMR</code> package. Among other things, it adds reliable reference data to R to help you with the data cleaning and analysis. SPSS, SAS and Stata will never know what a valid MIC value is or what the Gram stain of <em>E. coli</em> is. Or that all species of <em>Klebiella</em> are resistant to amoxicillin and that Floxapen<sup>®</sup> is a trade name of flucloxacillin. These facts and properties are often needed to clean existing data, which would be very inconvenient in a software package without reliable reference data. See below for a demonstration.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>R is extremely flexible.</strong></p>
|
||||||
|
<p>Because you write the syntax yourself, you can do anything you want. The flexibility in transforming, arranging, grouping and summarising data, or drawing plots, is endless - with SPSS, SAS or Stata you are bound to their algorithms and format styles. They may be a bit flexible, but you can probably never create that very specific publication-ready plot without using other (paid) software. If you sometimes write syntaxes in SPSS to run a complete analysis or to ‘automate’ some of your work, you could do this a lot less time in R. You will notice that writing syntaxes in R is a lot more nifty and clever than in SPSS. Still, as working with any statistical package, you will have to have knowledge about what you are doing (statistically) and what you are willing to accomplish.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>R can be easily automated.</strong></p>
|
||||||
|
<p>Over the last years, <a href="https://rmarkdown.rstudio.com/" class="external-link">R Markdown</a> has really made an interesting development. With R Markdown, you can very easily produce reports, whether the format has to be Word, PowerPoint, a website, a PDF document or just the raw data to Excel. It even allows the use of a reference file containing the layout style (e.g. fonts and colours) of your organisation. I use this a lot to generate weekly and monthly reports automatically. Just write the code once and enjoy the automatically updated reports at any interval you like.</p>
|
||||||
|
<p>For an even more professional environment, you could create <a href="https://shiny.rstudio.com/" class="external-link">Shiny apps</a>: live manipulation of data using a custom made website. The webdesign knowledge needed (JavaScript, CSS, HTML) is almost <em>zero</em>.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>R has a huge community.</strong></p>
|
||||||
|
<p>Many R users just ask questions on websites like <a href="https://stackoverflow.com" class="external-link">StackOverflow.com</a>, the largest online community for programmers. At the time of writing, <a href="https://stackoverflow.com/questions/tagged/r?sort=votes" class="external-link">466,988 R-related questions</a> have already been asked on this platform (that covers questions and answers for any programming language). In my own experience, most questions are answered within a couple of minutes.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>R understands any data type, including SPSS/SAS/Stata.</strong></p>
|
||||||
|
<p>And that’s not vice versa I’m afraid. You can import data from any source into R. For example from SPSS, SAS and Stata (<a href="https://haven.tidyverse.org/" class="external-link">link</a>), from Minitab, Epi Info and EpiData (<a href="https://cran.r-project.org/package=foreign" class="external-link">link</a>), from Excel (<a href="https://readxl.tidyverse.org/" class="external-link">link</a>), from flat files like CSV, TXT or TSV (<a href="https://readr.tidyverse.org/" class="external-link">link</a>), or directly from databases and datawarehouses from anywhere on the world (<a href="https://dbplyr.tidyverse.org/" class="external-link">link</a>). You can even scrape websites to download tables that are live on the internet (<a href="https://github.com/hadley/rvest" class="external-link">link</a>) or get the results of an API call and transform it into data in only one command (<a href="https://github.com/Rdatatable/data.table/wiki/Convenience-features-of-fread" class="external-link">link</a>).</p>
|
||||||
|
<p>And the best part - you can export from R to most data formats as well. So you can import an SPSS file, do your analysis neatly in R and export the resulting tables to Excel files for sharing.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>R is completely free and open-source.</strong></p>
|
||||||
|
<p>No strings attached. It was created and is being maintained by volunteers who believe that (data) science should be open and publicly available to everybody. SPSS, SAS and Stata are quite expensive. IBM SPSS Staticstics only comes with subscriptions nowadays, varying <a href="https://www.ibm.com/products/spss-statistics/pricing" class="external-link">between USD 1,300 and USD 8,500</a> per user <em>per year</em>. SAS Analytics Pro costs <a href="https://www.sas.com/store/products-solutions/sas-analytics-pro/prodPERSANL.html" class="external-link">around USD 10,000</a> per computer. Stata also has a business model with subscription fees, varying <a href="https://www.stata.com/order/new/bus/single-user-licenses/dl/" class="external-link">between USD 600 and USD 2,800</a> per computer per year, but lower prices come with a limitation of the number of variables you can work with. And still they do not offer the above benefits of R.</p>
|
||||||
|
<p>If you are working at a midsized or small company, you can save it tens of thousands of dollars by using R instead of e.g. SPSS - gaining even more functions and flexibility. And all R enthousiasts can do as much PR as they want (like I do here), because nobody is officially associated with or affiliated by R. It is really free.</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>R is (nowadays) the preferred analysis software in academic papers.</strong></p>
|
||||||
|
<p>At present, R is among the world most powerful statistical languages, and it is generally very popular in science (Bollmann <em>et al.</em>, 2017). For all the above reasons, the number of references to R as an analysis method in academic papers <a href="https://r4stats.com/2014/08/20/r-passes-spss-in-scholarly-use-stata-growing-rapidly/" class="external-link">is rising continuously</a> and has even surpassed SPSS for academic use (Muenchen, 2014).</p>
|
||||||
|
<p>I believe that the thing with SPSS is, that it has always had a great user interface which is very easy to learn and use. Back when they developed it, they had very little competition, let alone from R. R didn’t even had a professional user interface until the last decade (called RStudio, see below). How people used R between the nineties and 2010 is almost completely incomparable to how R is being used now. The language itself <a href="https://www.tidyverse.org/packages/" class="external-link">has been restyled completely</a> by volunteers who are dedicated professionals in the field of data science. SPSS was great when there was nothing else that could compete. But now in 2022, I don’t see any reason why SPSS would be of any better use than R.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>To demonstrate the first point:</p>
|
||||||
|
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># not all values are valid MIC values:</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/as.mic.html">as.mic</a></span><span class="op">(</span><span class="fl">0.125</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># Class 'mic'</span></span>
|
||||||
|
<span><span class="co"># [1] 0.125</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/as.mic.html">as.mic</a></span><span class="op">(</span><span class="st">"testvalue"</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># Class 'mic'</span></span>
|
||||||
|
<span><span class="co"># [1] <NA></span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># the Gram stain is available for all bacteria:</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/mo_property.html">mo_gramstain</a></span><span class="op">(</span><span class="st">"E. coli"</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># [1] "Gram-negative"</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># Klebsiella is intrinsic resistant to amoxicillin, according to EUCAST:</span></span>
|
||||||
|
<span><span class="va">klebsiella_test</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span></span>
|
||||||
|
<span> mo <span class="op">=</span> <span class="st">"klebsiella"</span>,</span>
|
||||||
|
<span> amox <span class="op">=</span> <span class="st">"S"</span>,</span>
|
||||||
|
<span> stringsAsFactors <span class="op">=</span> <span class="cn">FALSE</span></span>
|
||||||
|
<span><span class="op">)</span></span>
|
||||||
|
<span><span class="va">klebsiella_test</span> <span class="co"># (our original data)</span></span>
|
||||||
|
<span><span class="co"># mo amox</span></span>
|
||||||
|
<span><span class="co"># 1 klebsiella S</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/eucast_rules.html">eucast_rules</a></span><span class="op">(</span><span class="va">klebsiella_test</span>, info <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span> <span class="co"># (the edited data by EUCAST rules)</span></span>
|
||||||
|
<span><span class="co"># mo amox</span></span>
|
||||||
|
<span><span class="co"># 1 klebsiella R</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># hundreds of trade names can be translated to a name, trade name or an ATC code:</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/ab_property.html">ab_name</a></span><span class="op">(</span><span class="st">"floxapen"</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># [1] "Flucloxacillin"</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/ab_property.html">ab_tradenames</a></span><span class="op">(</span><span class="st">"floxapen"</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># [1] "floxacillin" "floxapen" "floxapen sodium salt"</span></span>
|
||||||
|
<span><span class="co"># [4] "fluclox" "flucloxacilina" "flucloxacillin" </span></span>
|
||||||
|
<span><span class="co"># [7] "flucloxacilline" "flucloxacillinum" "fluorochloroxacillin"</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/ab_property.html">ab_atc</a></span><span class="op">(</span><span class="st">"floxapen"</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># [1] "J01CF05"</span></span></code></pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="import-data-from-spsssasstata">Import data from SPSS/SAS/Stata<a class="anchor" aria-label="anchor" href="#import-data-from-spsssasstata"></a>
|
||||||
|
</h2>
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="rstudio">RStudio<a class="anchor" aria-label="anchor" href="#rstudio"></a>
|
||||||
|
</h3>
|
||||||
|
<p>To work with R, probably the best option is to use <a href="https://www.rstudio.com/products/rstudio/" class="external-link">RStudio</a>. It is an open-source and free desktop environment which not only allows you to run R code, but also supports project management, version management, package management and convenient import menus to work with other data sources. You can also install <a href="https://www.rstudio.com/products/rstudio/" class="external-link">RStudio Server</a> on a private or corporate server, which brings nothing less than the complete RStudio software to you as a website (at home or at work).</p>
|
||||||
|
<p>To import a data file, just click <em>Import Dataset</em> in the Environment tab:</p>
|
||||||
|
<p><img src="https://github.com/msberends/AMR/raw/main/docs/import1.png"></p>
|
||||||
|
<p>If additional packages are needed, RStudio will ask you if they should be installed on beforehand.</p>
|
||||||
|
<p>In the the window that opens, you can define all options (parameters) that should be used for import and you’re ready to go:</p>
|
||||||
|
<p><img src="https://github.com/msberends/AMR/raw/main/docs/import2.png"></p>
|
||||||
|
<p>If you want named variables to be imported as factors so it resembles SPSS more, use <code>as_factor()</code>.</p>
|
||||||
|
<p>The difference is this:</p>
|
||||||
|
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">SPSS_data</span></span>
|
||||||
|
<span><span class="co"># # A tibble: 4,203 x 4</span></span>
|
||||||
|
<span><span class="co"># v001 sex status statusage</span></span>
|
||||||
|
<span><span class="co"># <dbl> <dbl+lbl> <dbl+lbl> <dbl></span></span>
|
||||||
|
<span><span class="co"># 1 10002 1 1 76.6</span></span>
|
||||||
|
<span><span class="co"># 2 10004 0 1 59.1</span></span>
|
||||||
|
<span><span class="co"># 3 10005 1 1 54.5</span></span>
|
||||||
|
<span><span class="co"># 4 10006 1 1 54.1</span></span>
|
||||||
|
<span><span class="co"># 5 10007 1 1 57.7</span></span>
|
||||||
|
<span><span class="co"># 6 10008 1 1 62.8</span></span>
|
||||||
|
<span><span class="co"># 7 10010 0 1 63.7</span></span>
|
||||||
|
<span><span class="co"># 8 10011 1 1 73.1</span></span>
|
||||||
|
<span><span class="co"># 9 10017 1 1 56.7</span></span>
|
||||||
|
<span><span class="co"># 10 10018 0 1 66.6</span></span>
|
||||||
|
<span><span class="co"># # ... with 4,193 more rows</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="fu">as_factor</span><span class="op">(</span><span class="va">SPSS_data</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># # A tibble: 4,203 x 4</span></span>
|
||||||
|
<span><span class="co"># v001 sex status statusage</span></span>
|
||||||
|
<span><span class="co"># <dbl> <fct> <fct> <dbl></span></span>
|
||||||
|
<span><span class="co"># 1 10002 Male alive 76.6</span></span>
|
||||||
|
<span><span class="co"># 2 10004 Female alive 59.1</span></span>
|
||||||
|
<span><span class="co"># 3 10005 Male alive 54.5</span></span>
|
||||||
|
<span><span class="co"># 4 10006 Male alive 54.1</span></span>
|
||||||
|
<span><span class="co"># 5 10007 Male alive 57.7</span></span>
|
||||||
|
<span><span class="co"># 6 10008 Male alive 62.8</span></span>
|
||||||
|
<span><span class="co"># 7 10010 Female alive 63.7</span></span>
|
||||||
|
<span><span class="co"># 8 10011 Male alive 73.1</span></span>
|
||||||
|
<span><span class="co"># 9 10017 Male alive 56.7</span></span>
|
||||||
|
<span><span class="co"># 10 10018 Female alive 66.6</span></span>
|
||||||
|
<span><span class="co"># # ... with 4,193 more rows</span></span></code></pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="base-r">Base R<a class="anchor" aria-label="anchor" href="#base-r"></a>
|
||||||
|
</h3>
|
||||||
|
<p>To import data from SPSS, SAS or Stata, you can use the <a href="https://haven.tidyverse.org/" class="external-link">great <code>haven</code> package</a> yourself:</p>
|
||||||
|
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># download and install the latest version:</span></span>
|
||||||
|
<span><span class="fu"><a href="https://rdrr.io/r/utils/install.packages.html" class="external-link">install.packages</a></span><span class="op">(</span><span class="st">"haven"</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># load the package you just installed:</span></span>
|
||||||
|
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://haven.tidyverse.org" class="external-link">haven</a></span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>You can now import files as follows:</p>
|
||||||
|
<div class="section level4">
|
||||||
|
<h4 id="spss">SPSS<a class="anchor" aria-label="anchor" href="#spss"></a>
|
||||||
|
</h4>
|
||||||
|
<p>To read files from SPSS into R:</p>
|
||||||
|
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># read any SPSS file based on file extension (best way):</span></span>
|
||||||
|
<span><span class="fu">read_spss</span><span class="op">(</span>file <span class="op">=</span> <span class="st">"path/to/file"</span><span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># read .sav or .zsav file:</span></span>
|
||||||
|
<span><span class="fu">read_sav</span><span class="op">(</span>file <span class="op">=</span> <span class="st">"path/to/file"</span><span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># read .por file:</span></span>
|
||||||
|
<span><span class="fu">read_por</span><span class="op">(</span>file <span class="op">=</span> <span class="st">"path/to/file"</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>Do not forget about <code>as_factor()</code>, as mentioned above.</p>
|
||||||
|
<p>To export your R objects to the SPSS file format:</p>
|
||||||
|
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># save as .sav file:</span></span>
|
||||||
|
<span><span class="fu">write_sav</span><span class="op">(</span>data <span class="op">=</span> <span class="va">yourdata</span>, path <span class="op">=</span> <span class="st">"path/to/file"</span><span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># save as compressed .zsav file:</span></span>
|
||||||
|
<span><span class="fu">write_sav</span><span class="op">(</span>data <span class="op">=</span> <span class="va">yourdata</span>, path <span class="op">=</span> <span class="st">"path/to/file"</span>, compress <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="section level4">
|
||||||
|
<h4 id="sas">SAS<a class="anchor" aria-label="anchor" href="#sas"></a>
|
||||||
|
</h4>
|
||||||
|
<p>To read files from SAS into R:</p>
|
||||||
|
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># read .sas7bdat + .sas7bcat files:</span></span>
|
||||||
|
<span><span class="fu">read_sas</span><span class="op">(</span>data_file <span class="op">=</span> <span class="st">"path/to/file"</span>, catalog_file <span class="op">=</span> <span class="cn">NULL</span><span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># read SAS transport files (version 5 and version 8):</span></span>
|
||||||
|
<span><span class="fu">read_xpt</span><span class="op">(</span>file <span class="op">=</span> <span class="st">"path/to/file"</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>To export your R objects to the SAS file format:</p>
|
||||||
|
<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># save as regular SAS file:</span></span>
|
||||||
|
<span><span class="fu">write_sas</span><span class="op">(</span>data <span class="op">=</span> <span class="va">yourdata</span>, path <span class="op">=</span> <span class="st">"path/to/file"</span><span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># the SAS transport format is an open format</span></span>
|
||||||
|
<span><span class="co"># (required for submission of the data to the FDA)</span></span>
|
||||||
|
<span><span class="fu">write_xpt</span><span class="op">(</span>data <span class="op">=</span> <span class="va">yourdata</span>, path <span class="op">=</span> <span class="st">"path/to/file"</span>, version <span class="op">=</span> <span class="fl">8</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="section level4">
|
||||||
|
<h4 id="stata">Stata<a class="anchor" aria-label="anchor" href="#stata"></a>
|
||||||
|
</h4>
|
||||||
|
<p>To read files from Stata into R:</p>
|
||||||
|
<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># read .dta file:</span></span>
|
||||||
|
<span><span class="fu">read_stata</span><span class="op">(</span>file <span class="op">=</span> <span class="st">"/path/to/file"</span><span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># works exactly the same:</span></span>
|
||||||
|
<span><span class="fu">read_dta</span><span class="op">(</span>file <span class="op">=</span> <span class="st">"/path/to/file"</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>To export your R objects to the Stata file format:</p>
|
||||||
|
<div class="sourceCode" id="cb9"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># save as .dta file, Stata version 14:</span></span>
|
||||||
|
<span><span class="co"># (supports Stata v8 until v15 at the time of writing)</span></span>
|
||||||
|
<span><span class="fu">write_dta</span><span class="op">(</span>data <span class="op">=</span> <span class="va">yourdata</span>, path <span class="op">=</span> <span class="st">"/path/to/file"</span>, version <span class="op">=</span> <span class="fl">14</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||||
|
</nav></aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p>
|
||||||
|
<p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p>
|
||||||
|
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,393 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="description" content="AMR">
|
||||||
|
<title>How to work with WHONET data • AMR (for R)</title>
|
||||||
|
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png">
|
||||||
|
<script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link href="../deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="../deps/Fira_Code-0.4.2/font.css" rel="stylesheet">
|
||||||
|
<!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
|
||||||
|
<!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||||
|
<script src="../extra.js"></script><meta property="og:title" content="How to work with WHONET data">
|
||||||
|
<meta property="og:description" content="AMR">
|
||||||
|
<meta property="og:image" content="https://msberends.github.io/AMR/logo.svg">
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:creator" content="@msberends">
|
||||||
|
<meta name="twitter:site" content="@msberends">
|
||||||
|
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="active nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="../articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="../logo.svg" class="logo" alt=""><h1>How to work with WHONET data</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/vignettes/WHONET.Rmd" class="external-link"><code>vignettes/WHONET.Rmd</code></a></small>
|
||||||
|
<div class="d-none name"><code>WHONET.Rmd</code></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="import-of-data">Import of data<a class="anchor" aria-label="anchor" href="#import-of-data"></a>
|
||||||
|
</h3>
|
||||||
|
<p>This tutorial assumes you already imported the WHONET data with e.g. the <a href="https://readxl.tidyverse.org/" class="external-link"><code>readxl</code> package</a>. In RStudio, this can be done using the menu button ‘Import Dataset’ in the tab ‘Environment’. Choose the option ‘From Excel’ and select your exported file. Make sure date fields are imported correctly.</p>
|
||||||
|
<p>An example syntax could look like this:</p>
|
||||||
|
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://readxl.tidyverse.org" class="external-link">readxl</a></span><span class="op">)</span></span>
|
||||||
|
<span><span class="va">data</span> <span class="op"><-</span> <span class="fu"><a href="https://readxl.tidyverse.org/reference/read_excel.html" class="external-link">read_excel</a></span><span class="op">(</span>path <span class="op">=</span> <span class="st">"path/to/your/file.xlsx"</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>This package comes with an <a href="https://msberends.github.io/AMR/reference/WHONET.html">example data set <code>WHONET</code></a>. We will use it for this analysis.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="preparation">Preparation<a class="anchor" aria-label="anchor" href="#preparation"></a>
|
||||||
|
</h3>
|
||||||
|
<p>First, load the relevant packages if you did not yet did this. I use the tidyverse for all of my analyses. All of them. If you don’t know it yet, I suggest you read about it on their website: <a href="https://www.tidyverse.org/" class="external-link uri">https://www.tidyverse.org/</a>.</p>
|
||||||
|
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span> <span class="co"># part of tidyverse</span></span>
|
||||||
|
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://ggplot2.tidyverse.org" class="external-link">ggplot2</a></span><span class="op">)</span> <span class="co"># part of tidyverse</span></span>
|
||||||
|
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/AMR/">AMR</a></span><span class="op">)</span> <span class="co"># this package</span></span>
|
||||||
|
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://github.com/msberends/cleaner" class="external-link">cleaner</a></span><span class="op">)</span> <span class="co"># to create frequency tables</span></span></code></pre></div>
|
||||||
|
<p>We will have to transform some variables to simplify and automate the analysis:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Microorganisms should be transformed to our own microorganism codes (called an <code>mo</code>) using <a href="https://msberends.github.io/AMR/reference/catalogue_of_life">our Catalogue of Life reference data set</a>, which contains all ~70,000 microorganisms from the taxonomic kingdoms Bacteria, Fungi and Protozoa. We do the tranformation with <code><a href="../reference/as.mo.html">as.mo()</a></code>. This function also recognises almost all WHONET abbreviations of microorganisms.</li>
|
||||||
|
<li>Antimicrobial results or interpretations have to be clean and valid. In other words, they should only contain values <code>"S"</code>, <code>"I"</code> or <code>"R"</code>. That is exactly where the <code><a href="../reference/as.rsi.html">as.rsi()</a></code> function is for.</li>
|
||||||
|
</ul>
|
||||||
|
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># transform variables</span></span>
|
||||||
|
<span><span class="va">data</span> <span class="op"><-</span> <span class="va">WHONET</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="co"># get microbial ID based on given organism</span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate.html" class="external-link">mutate</a></span><span class="op">(</span>mo <span class="op">=</span> <span class="fu"><a href="../reference/as.mo.html">as.mo</a></span><span class="op">(</span><span class="va">Organism</span><span class="op">)</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="co"># transform everything from "AMP_ND10" to "CIP_EE" to the new `rsi` class</span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate_all.html" class="external-link">mutate_at</a></span><span class="op">(</span><span class="fu"><a href="https://dplyr.tidyverse.org/reference/vars.html" class="external-link">vars</a></span><span class="op">(</span><span class="va">AMP_ND10</span><span class="op">:</span><span class="va">CIP_EE</span><span class="op">)</span>, <span class="va">as.rsi</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>No errors or warnings, so all values are transformed succesfully.</p>
|
||||||
|
<p>We also created a package dedicated to data cleaning and checking, called the <code>cleaner</code> package. Its <code><a href="https://rdrr.io/pkg/cleaner/man/freq.html" class="external-link">freq()</a></code> function can be used to create frequency tables.</p>
|
||||||
|
<p>So let’s check our data, with a couple of frequency tables:</p>
|
||||||
|
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># our newly created `mo` variable, put in the mo_name() function</span></span>
|
||||||
|
<span><span class="va">data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span> <span class="fu"><a href="https://rdrr.io/pkg/cleaner/man/freq.html" class="external-link">freq</a></span><span class="op">(</span><span class="fu"><a href="../reference/mo_property.html">mo_name</a></span><span class="op">(</span><span class="va">mo</span><span class="op">)</span>, nmax <span class="op">=</span> <span class="fl">10</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><strong>Frequency table</strong></p>
|
||||||
|
<p>Class: character<br>
|
||||||
|
Length: 500<br>
|
||||||
|
Available: 500 (100.0%, NA: 0 = 0.0%)<br>
|
||||||
|
Unique: 37</p>
|
||||||
|
<p>Shortest: 11<br>
|
||||||
|
Longest: 40</p>
|
||||||
|
<table class="table">
|
||||||
|
<thead><tr class="header">
|
||||||
|
<th align="left"></th>
|
||||||
|
<th align="left">Item</th>
|
||||||
|
<th align="right">Count</th>
|
||||||
|
<th align="right">Percent</th>
|
||||||
|
<th align="right">Cum. Count</th>
|
||||||
|
<th align="right">Cum. Percent</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">1</td>
|
||||||
|
<td align="left">Escherichia coli</td>
|
||||||
|
<td align="right">245</td>
|
||||||
|
<td align="right">49.0%</td>
|
||||||
|
<td align="right">245</td>
|
||||||
|
<td align="right">49.0%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">2</td>
|
||||||
|
<td align="left">Coagulase-negative Staphylococcus (CoNS)</td>
|
||||||
|
<td align="right">74</td>
|
||||||
|
<td align="right">14.8%</td>
|
||||||
|
<td align="right">319</td>
|
||||||
|
<td align="right">63.8%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">3</td>
|
||||||
|
<td align="left">Staphylococcus epidermidis</td>
|
||||||
|
<td align="right">38</td>
|
||||||
|
<td align="right">7.6%</td>
|
||||||
|
<td align="right">357</td>
|
||||||
|
<td align="right">71.4%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">4</td>
|
||||||
|
<td align="left">Streptococcus pneumoniae</td>
|
||||||
|
<td align="right">31</td>
|
||||||
|
<td align="right">6.2%</td>
|
||||||
|
<td align="right">388</td>
|
||||||
|
<td align="right">77.6%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">5</td>
|
||||||
|
<td align="left">Staphylococcus hominis</td>
|
||||||
|
<td align="right">21</td>
|
||||||
|
<td align="right">4.2%</td>
|
||||||
|
<td align="right">409</td>
|
||||||
|
<td align="right">81.8%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">6</td>
|
||||||
|
<td align="left">Proteus mirabilis</td>
|
||||||
|
<td align="right">9</td>
|
||||||
|
<td align="right">1.8%</td>
|
||||||
|
<td align="right">418</td>
|
||||||
|
<td align="right">83.6%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">7</td>
|
||||||
|
<td align="left">Enterococcus faecium</td>
|
||||||
|
<td align="right">8</td>
|
||||||
|
<td align="right">1.6%</td>
|
||||||
|
<td align="right">426</td>
|
||||||
|
<td align="right">85.2%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">8</td>
|
||||||
|
<td align="left">Staphylococcus capitis</td>
|
||||||
|
<td align="right">8</td>
|
||||||
|
<td align="right">1.6%</td>
|
||||||
|
<td align="right">434</td>
|
||||||
|
<td align="right">86.8%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">9</td>
|
||||||
|
<td align="left">Enterobacter cloacae</td>
|
||||||
|
<td align="right">5</td>
|
||||||
|
<td align="right">1.0%</td>
|
||||||
|
<td align="right">439</td>
|
||||||
|
<td align="right">87.8%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">10</td>
|
||||||
|
<td align="left">Streptococcus anginosus</td>
|
||||||
|
<td align="right">5</td>
|
||||||
|
<td align="right">1.0%</td>
|
||||||
|
<td align="right">444</td>
|
||||||
|
<td align="right">88.8%</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>(omitted 27 entries, n = 56 [11.20%])</p>
|
||||||
|
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># our transformed antibiotic columns</span></span>
|
||||||
|
<span><span class="co"># amoxicillin/clavulanic acid (J01CR02) as an example</span></span>
|
||||||
|
<span><span class="va">data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span> <span class="fu"><a href="https://rdrr.io/pkg/cleaner/man/freq.html" class="external-link">freq</a></span><span class="op">(</span><span class="va">AMC_ND2</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><strong>Frequency table</strong></p>
|
||||||
|
<p>Class: factor > ordered > rsi (numeric)<br>
|
||||||
|
Length: 500<br>
|
||||||
|
Levels: 3: S < I < R<br>
|
||||||
|
Available: 481 (96.2%, NA: 19 = 3.8%)<br>
|
||||||
|
Unique: 3</p>
|
||||||
|
<p>Drug: Amoxicillin/clavulanic acid (AMC, J01CR02)<br>
|
||||||
|
Drug group: Beta-lactams/penicillins<br>
|
||||||
|
%SI: 78.59%</p>
|
||||||
|
<table class="table">
|
||||||
|
<thead><tr class="header">
|
||||||
|
<th align="left"></th>
|
||||||
|
<th align="left">Item</th>
|
||||||
|
<th align="right">Count</th>
|
||||||
|
<th align="right">Percent</th>
|
||||||
|
<th align="right">Cum. Count</th>
|
||||||
|
<th align="right">Cum. Percent</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">1</td>
|
||||||
|
<td align="left">S</td>
|
||||||
|
<td align="right">356</td>
|
||||||
|
<td align="right">74.01%</td>
|
||||||
|
<td align="right">356</td>
|
||||||
|
<td align="right">74.01%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="left">2</td>
|
||||||
|
<td align="left">R</td>
|
||||||
|
<td align="right">103</td>
|
||||||
|
<td align="right">21.41%</td>
|
||||||
|
<td align="right">459</td>
|
||||||
|
<td align="right">95.43%</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="left">3</td>
|
||||||
|
<td align="left">I</td>
|
||||||
|
<td align="right">22</td>
|
||||||
|
<td align="right">4.57%</td>
|
||||||
|
<td align="right">481</td>
|
||||||
|
<td align="right">100.00%</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="a-first-glimpse-at-results">A first glimpse at results<a class="anchor" aria-label="anchor" href="#a-first-glimpse-at-results"></a>
|
||||||
|
</h3>
|
||||||
|
<p>An easy <code>ggplot</code> will already give a lot of information, using the included <code><a href="../reference/ggplot_rsi.html">ggplot_rsi()</a></code> function:</p>
|
||||||
|
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/group_by.html" class="external-link">group_by</a></span><span class="op">(</span><span class="va">Country</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/select.html" class="external-link">select</a></span><span class="op">(</span><span class="va">Country</span>, <span class="va">AMP_ND2</span>, <span class="va">AMC_ED20</span>, <span class="va">CAZ_ED10</span>, <span class="va">CIP_ED5</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="../reference/ggplot_rsi.html">ggplot_rsi</a></span><span class="op">(</span>translate_ab <span class="op">=</span> <span class="st">"ab"</span>, facet <span class="op">=</span> <span class="st">"Country"</span>, datalabels <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><img src="WHONET_files/figure-html/unnamed-chunk-7-1.png" width="720"></p>
|
||||||
|
</div>
|
||||||
|
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||||
|
</nav></aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p>
|
||||||
|
<p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p>
|
||||||
|
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
After Width: | Height: | Size: 73 KiB |
@@ -0,0 +1,169 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Articles • AMR (for R)</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="../deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="../deps/Fira_Code-0.4.2/font.css" rel="stylesheet"><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet"><script src="../extra.js"></script><meta property="og:title" content="Articles"><meta property="og:image" content="https://msberends.github.io/AMR/logo.svg"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:creator" content="@msberends"><meta name="twitter:site" content="@msberends"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]--></head><body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto"><li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="../articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul><form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off"></form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav"><li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-article-index">
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="../logo.svg" class="logo" alt=""><h1>Articles</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="section ">
|
||||||
|
<h3>All vignettes</h3>
|
||||||
|
<p class="section-desc"></p>
|
||||||
|
|
||||||
|
<dl><dt><a href="AMR.html">How to conduct AMR data analysis</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd><dt><a href="EUCAST.html">How to apply EUCAST rules</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd><dt><a href="MDR.html">How to determine multi-drug resistance (MDR)</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd><dt><a href="PCA.html">How to conduct principal component analysis (PCA) for AMR</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd><dt><a href="SPSS.html">How to import data from SPSS / SAS / Stata</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd><dt><a href="WHONET.html">How to work with WHONET data</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd><dt><a href="datasets.html">Data sets for download / own use</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd><dt><a href="resistance_predict.html">How to predict antimicrobial resistance</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd><dt><a href="welcome_to_AMR.html">Welcome to the `AMR` package</a></dt>
|
||||||
|
<dd>
|
||||||
|
</dd></dl></div>
|
||||||
|
</main></div>
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p><p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p><p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
|
|
||||||
@@ -0,0 +1,335 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="description" content="AMR">
|
||||||
|
<title>How to predict antimicrobial resistance • AMR (for R)</title>
|
||||||
|
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png">
|
||||||
|
<script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link href="../deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="../deps/Fira_Code-0.4.2/font.css" rel="stylesheet">
|
||||||
|
<!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
|
||||||
|
<!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||||
|
<script src="../extra.js"></script><meta property="og:title" content="How to predict antimicrobial resistance">
|
||||||
|
<meta property="og:description" content="AMR">
|
||||||
|
<meta property="og:image" content="https://msberends.github.io/AMR/logo.svg">
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:creator" content="@msberends">
|
||||||
|
<meta name="twitter:site" content="@msberends">
|
||||||
|
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="active nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="../articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="../logo.svg" class="logo" alt=""><h1>How to predict antimicrobial resistance</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/vignettes/resistance_predict.Rmd" class="external-link"><code>vignettes/resistance_predict.Rmd</code></a></small>
|
||||||
|
<div class="d-none name"><code>resistance_predict.Rmd</code></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="needed-r-packages">Needed R packages<a class="anchor" aria-label="anchor" href="#needed-r-packages"></a>
|
||||||
|
</h2>
|
||||||
|
<p>As with many uses in R, we need some additional packages for AMR data analysis. Our package works closely together with the <a href="https://www.tidyverse.org" class="external-link">tidyverse packages</a> <a href="https://dplyr.tidyverse.org/" class="external-link"><code>dplyr</code></a> and <a href="https://ggplot2.tidyverse.org" class="external-link"><code>ggplot2</code></a>. The tidyverse tremendously improves the way we conduct data science - it allows for a very natural way of writing syntaxes and creating beautiful plots in R.</p>
|
||||||
|
<p>Our <code>AMR</code> package depends on these packages and even extends their use and functions.</p>
|
||||||
|
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span></span>
|
||||||
|
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://ggplot2.tidyverse.org" class="external-link">ggplot2</a></span><span class="op">)</span></span>
|
||||||
|
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/AMR/">AMR</a></span><span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># (if not yet installed, install with:)</span></span>
|
||||||
|
<span><span class="co"># install.packages(c("tidyverse", "AMR"))</span></span></code></pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="section level2">
|
||||||
|
<h2 id="prediction-analysis">Prediction analysis<a class="anchor" aria-label="anchor" href="#prediction-analysis"></a>
|
||||||
|
</h2>
|
||||||
|
<p>Our package contains a function <code><a href="../reference/resistance_predict.html">resistance_predict()</a></code>, which takes the same input as functions for <a href="./AMR.html">other AMR data analysis</a>. Based on a date column, it calculates cases per year and uses a regression model to predict antimicrobial resistance.</p>
|
||||||
|
<p>It is basically as easy as:</p>
|
||||||
|
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="co"># resistance prediction of piperacillin/tazobactam (TZP):</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/resistance_predict.html">resistance_predict</a></span><span class="op">(</span>tbl <span class="op">=</span> <span class="va">example_isolates</span>, col_date <span class="op">=</span> <span class="st">"date"</span>, col_ab <span class="op">=</span> <span class="st">"TZP"</span>, model <span class="op">=</span> <span class="st">"binomial"</span><span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># or:</span></span>
|
||||||
|
<span><span class="va">example_isolates</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="../reference/resistance_predict.html">resistance_predict</a></span><span class="op">(</span></span>
|
||||||
|
<span> col_ab <span class="op">=</span> <span class="st">"TZP"</span>,</span>
|
||||||
|
<span> model <span class="op">=</span> <span class="st">"binomial"</span></span>
|
||||||
|
<span> <span class="op">)</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="co"># to bind it to object 'predict_TZP' for example:</span></span>
|
||||||
|
<span><span class="va">predict_TZP</span> <span class="op"><-</span> <span class="va">example_isolates</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="../reference/resistance_predict.html">resistance_predict</a></span><span class="op">(</span></span>
|
||||||
|
<span> col_ab <span class="op">=</span> <span class="st">"TZP"</span>,</span>
|
||||||
|
<span> model <span class="op">=</span> <span class="st">"binomial"</span></span>
|
||||||
|
<span> <span class="op">)</span></span></code></pre></div>
|
||||||
|
<p>The function will look for a date column itself if <code>col_date</code> is not set.</p>
|
||||||
|
<p>When running any of these commands, a summary of the regression model will be printed unless using <code>resistance_predict(..., info = FALSE)</code>.</p>
|
||||||
|
<p>This text is only a printed summary - the actual result (output) of the function is a <code>data.frame</code> containing for each year: the number of observations, the actual observed resistance, the estimated resistance and the standard error below and above the estimation:</p>
|
||||||
|
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">predict_TZP</span></span>
|
||||||
|
<span><span class="co"># <span style="color: #949494;"># A tibble: 31 × 7</span></span></span>
|
||||||
|
<span><span class="co"># year value se_min se_max observations observed estimated</span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;">*</span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><int></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 1</span> <span style="text-decoration: underline;">2</span>002 0.2 <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 15 0.2 0.056<span style="text-decoration: underline;">2</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 2</span> <span style="text-decoration: underline;">2</span>003 0.062<span style="text-decoration: underline;">5</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 32 0.062<span style="text-decoration: underline;">5</span> 0.061<span style="text-decoration: underline;">6</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 3</span> <span style="text-decoration: underline;">2</span>004 0.085<span style="text-decoration: underline;">4</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 82 0.085<span style="text-decoration: underline;">4</span> 0.067<span style="text-decoration: underline;">6</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 4</span> <span style="text-decoration: underline;">2</span>005 0.05 <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 60 0.05 0.074<span style="text-decoration: underline;">1</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 5</span> <span style="text-decoration: underline;">2</span>006 0.050<span style="text-decoration: underline;">8</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 59 0.050<span style="text-decoration: underline;">8</span> 0.081<span style="text-decoration: underline;">2</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 6</span> <span style="text-decoration: underline;">2</span>007 0.121 <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 66 0.121 0.088<span style="text-decoration: underline;">9</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 7</span> <span style="text-decoration: underline;">2</span>008 0.041<span style="text-decoration: underline;">7</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 72 0.041<span style="text-decoration: underline;">7</span> 0.097<span style="text-decoration: underline;">2</span></span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 8</span> <span style="text-decoration: underline;">2</span>009 0.016<span style="text-decoration: underline;">4</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 61 0.016<span style="text-decoration: underline;">4</span> 0.106 </span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;"> 9</span> <span style="text-decoration: underline;">2</span>010 0.056<span style="text-decoration: underline;">6</span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 53 0.056<span style="text-decoration: underline;">6</span> 0.116 </span></span>
|
||||||
|
<span><span class="co"># <span style="color: #BCBCBC;">10</span> <span style="text-decoration: underline;">2</span>011 0.183 <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> 93 0.183 0.127 </span></span>
|
||||||
|
<span><span class="co"># <span style="color: #949494;"># … with 21 more rows</span></span></span></code></pre></div>
|
||||||
|
<p>The function <code>plot</code> is available in base R, and can be extended by other packages to depend the output based on the type of input. We extended its function to cope with resistance predictions:</p>
|
||||||
|
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="../reference/plot.html">plot</a></span><span class="op">(</span><span class="va">predict_TZP</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><img src="resistance_predict_files/figure-html/unnamed-chunk-4-1.png" width="720"></p>
|
||||||
|
<p>This is the fastest way to plot the result. It automatically adds the right axes, error bars, titles, number of available observations and type of model.</p>
|
||||||
|
<p>We also support the <code>ggplot2</code> package with our custom function <code><a href="../reference/resistance_predict.html">ggplot_rsi_predict()</a></code> to create more appealing plots:</p>
|
||||||
|
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="fu"><a href="../reference/resistance_predict.html">ggplot_rsi_predict</a></span><span class="op">(</span><span class="va">predict_TZP</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><img src="resistance_predict_files/figure-html/unnamed-chunk-5-1.png" width="720"></p>
|
||||||
|
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span></span>
|
||||||
|
<span><span class="co"># choose for error bars instead of a ribbon</span></span>
|
||||||
|
<span><span class="fu"><a href="../reference/resistance_predict.html">ggplot_rsi_predict</a></span><span class="op">(</span><span class="va">predict_TZP</span>, ribbon <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div>
|
||||||
|
<p><img src="resistance_predict_files/figure-html/unnamed-chunk-5-2.png" width="720"></p>
|
||||||
|
<div class="section level3">
|
||||||
|
<h3 id="choosing-the-right-model">Choosing the right model<a class="anchor" aria-label="anchor" href="#choosing-the-right-model"></a>
|
||||||
|
</h3>
|
||||||
|
<p>Resistance is not easily predicted; if we look at vancomycin resistance in Gram-positive bacteria, the spread (i.e. standard error) is enormous:</p>
|
||||||
|
<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">example_isolates</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/filter.html" class="external-link">filter</a></span><span class="op">(</span><span class="fu"><a href="../reference/mo_property.html">mo_gramstain</a></span><span class="op">(</span><span class="va">mo</span>, language <span class="op">=</span> <span class="cn">NULL</span><span class="op">)</span> <span class="op">==</span> <span class="st">"Gram-positive"</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="../reference/resistance_predict.html">resistance_predict</a></span><span class="op">(</span>col_ab <span class="op">=</span> <span class="st">"VAN"</span>, year_min <span class="op">=</span> <span class="fl">2010</span>, info <span class="op">=</span> <span class="cn">FALSE</span>, model <span class="op">=</span> <span class="st">"binomial"</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="../reference/resistance_predict.html">ggplot_rsi_predict</a></span><span class="op">(</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># ℹ Using column 'date' as input for `col_date`.</span></span></code></pre></div>
|
||||||
|
<p><img src="resistance_predict_files/figure-html/unnamed-chunk-6-1.png" width="720"></p>
|
||||||
|
<p>Vancomycin resistance could be 100% in ten years, but might remain very low.</p>
|
||||||
|
<p>You can define the model with the <code>model</code> parameter. The model chosen above is a generalised linear regression model using a binomial distribution, assuming that a period of zero resistance was followed by a period of increasing resistance leading slowly to more and more resistance.</p>
|
||||||
|
<p>Valid values are:</p>
|
||||||
|
<table class="table">
|
||||||
|
<colgroup>
|
||||||
|
<col width="32%">
|
||||||
|
<col width="25%">
|
||||||
|
<col width="42%">
|
||||||
|
</colgroup>
|
||||||
|
<thead><tr class="header">
|
||||||
|
<th>Input values</th>
|
||||||
|
<th>Function used by R</th>
|
||||||
|
<th>Type of model</th>
|
||||||
|
</tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>
|
||||||
|
<code>"binomial"</code> or <code>"binom"</code> or <code>"logit"</code>
|
||||||
|
</td>
|
||||||
|
<td><code>glm(..., family = binomial)</code></td>
|
||||||
|
<td>Generalised linear model with binomial distribution</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>
|
||||||
|
<code>"loglin"</code> or <code>"poisson"</code>
|
||||||
|
</td>
|
||||||
|
<td><code>glm(..., family = poisson)</code></td>
|
||||||
|
<td>Generalised linear model with poisson distribution</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>
|
||||||
|
<code>"lin"</code> or <code>"linear"</code>
|
||||||
|
</td>
|
||||||
|
<td><code><a href="https://rdrr.io/r/stats/lm.html" class="external-link">lm()</a></code></td>
|
||||||
|
<td>Linear model</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>For the vancomycin resistance in Gram-positive bacteria, a linear model might be more appropriate:</p>
|
||||||
|
<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">example_isolates</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/filter.html" class="external-link">filter</a></span><span class="op">(</span><span class="fu"><a href="../reference/mo_property.html">mo_gramstain</a></span><span class="op">(</span><span class="va">mo</span>, language <span class="op">=</span> <span class="cn">NULL</span><span class="op">)</span> <span class="op">==</span> <span class="st">"Gram-positive"</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="../reference/resistance_predict.html">resistance_predict</a></span><span class="op">(</span>col_ab <span class="op">=</span> <span class="st">"VAN"</span>, year_min <span class="op">=</span> <span class="fl">2010</span>, info <span class="op">=</span> <span class="cn">FALSE</span>, model <span class="op">=</span> <span class="st">"linear"</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span>
|
||||||
|
<span> <span class="fu"><a href="../reference/resistance_predict.html">ggplot_rsi_predict</a></span><span class="op">(</span><span class="op">)</span></span>
|
||||||
|
<span><span class="co"># ℹ Using column 'date' as input for `col_date`.</span></span></code></pre></div>
|
||||||
|
<p><img src="resistance_predict_files/figure-html/unnamed-chunk-7-1.png" width="720"></p>
|
||||||
|
<p>The model itself is also available from the object, as an <code>attribute</code>:</p>
|
||||||
|
<div class="sourceCode" id="cb9"><pre class="downlit sourceCode r">
|
||||||
|
<code class="sourceCode R"><span><span class="va">model</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/attributes.html" class="external-link">attributes</a></span><span class="op">(</span><span class="va">predict_TZP</span><span class="op">)</span><span class="op">$</span><span class="va">model</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">model</span><span class="op">)</span><span class="op">$</span><span class="va">family</span></span>
|
||||||
|
<span><span class="co"># </span></span>
|
||||||
|
<span><span class="co"># Family: binomial </span></span>
|
||||||
|
<span><span class="co"># Link function: logit</span></span>
|
||||||
|
<span></span>
|
||||||
|
<span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">model</span><span class="op">)</span><span class="op">$</span><span class="va">coefficients</span></span>
|
||||||
|
<span><span class="co"># Estimate Std. Error z value Pr(>|z|)</span></span>
|
||||||
|
<span><span class="co"># (Intercept) -200.67944891 46.17315349 -4.346237 1.384932e-05</span></span>
|
||||||
|
<span><span class="co"># year 0.09883005 0.02295317 4.305725 1.664395e-05</span></span></code></pre></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||||
|
</nav></aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p>
|
||||||
|
<p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p>
|
||||||
|
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 67 KiB |
@@ -0,0 +1,224 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="description" content="AMR">
|
||||||
|
<title>Welcome to the `AMR` package • AMR (for R)</title>
|
||||||
|
<!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png">
|
||||||
|
<script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link href="../deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="../deps/Fira_Code-0.4.2/font.css" rel="stylesheet">
|
||||||
|
<!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous">
|
||||||
|
<!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||||
|
<script src="../extra.js"></script><meta property="og:title" content="Welcome to the `AMR` package">
|
||||||
|
<meta property="og:description" content="AMR">
|
||||||
|
<meta property="og:image" content="https://msberends.github.io/AMR/logo.svg">
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:creator" content="@msberends">
|
||||||
|
<meta name="twitter:site" content="@msberends">
|
||||||
|
<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="../articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="../reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="../news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="../search.json" id="search-input" placeholder="Search for" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="../logo.svg" class="logo" alt=""><h1>Welcome to the `AMR` package</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/vignettes/welcome_to_AMR.Rmd" class="external-link"><code>vignettes/welcome_to_AMR.Rmd</code></a></small>
|
||||||
|
<div class="d-none name"><code>welcome_to_AMR.Rmd</code></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>Note: to keep the package size as small as possible, we only included this vignette on CRAN. You can read more vignettes on our website about how to conduct AMR data analysis, determine MDROs, find explanation of EUCAST rules, and much more: <a href="https://msberends.github.io/AMR/articles/" class="uri">https://msberends.github.io/AMR/articles/</a>.</p>
|
||||||
|
<hr>
|
||||||
|
<p>The <code>AMR</code> package is a <a href="https://msberends.github.io/AMR/#copyright">free and open-source</a> R package with <a href="https://en.wikipedia.org/wiki/Dependency_hell" class="external-link">zero dependencies</a> 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. <strong>Our aim is to provide a standard</strong> for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting.</p>
|
||||||
|
<p>This work was published in the Journal of Statistical Software (Volume 104(3); <a href="https://doi.org/10.18637/jss.v104.i03" class="external-link">DOI 10.18637/jss.v104.i03</a>) and formed the basis of two PhD theses (<a href="https://doi.org/10.33612/diss.177417131" class="external-link">DOI 10.33612/diss.177417131</a> and <a href="https://doi.org/10.33612/diss.192486375" class="external-link">DOI 10.33612/diss.192486375</a>).</p>
|
||||||
|
<p>After installing this package, R knows ~49,000 distinct microbial species and all ~570 antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. It supports any data format, including WHONET/EARS-Net data.</p>
|
||||||
|
<p>The <code>AMR</code> package is available in English, Chinese, Danish, Dutch, French, German, Greek, Italian, Japanese, Polish, Portuguese, Russian, Spanish, Swedish, Turkish and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.</p>
|
||||||
|
<p>This package is fully independent of any other R package and works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). <strong>It was designed to work in any setting, including those with very limited resources</strong>. Since its first public release in early 2018, this package has been downloaded from more than 175 countries.</p>
|
||||||
|
<p>This package can be used for:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Reference for the taxonomy of microorganisms, since the package contains all microbial (sub)species from the List of Prokaryotic names with Standing in Nomenclature (LPSN) and the Global Biodiversity Information Facility (GBIF)</li>
|
||||||
|
<li>Interpreting raw MIC and disk diffusion values, based on the latest CLSI or EUCAST guidelines</li>
|
||||||
|
<li>Retrieving antimicrobial drug names, doses and forms of administration from clinical health care records</li>
|
||||||
|
<li>Determining first isolates to be used for AMR data analysis</li>
|
||||||
|
<li>Calculating antimicrobial resistance</li>
|
||||||
|
<li>Determining multi-drug resistance (MDR) / multi-drug resistant organisms (MDRO)</li>
|
||||||
|
<li>Calculating (empirical) susceptibility of both mono therapy and combination therapies</li>
|
||||||
|
<li>Predicting future antimicrobial resistance using regression models</li>
|
||||||
|
<li>Getting properties for any microorganism (like Gram stain, species, genus or family)</li>
|
||||||
|
<li>Getting properties for any antibiotic (like name, code of EARS-Net/ATC/LOINC/PubChem, defined daily dose or trade name)</li>
|
||||||
|
<li>Plotting antimicrobial resistance</li>
|
||||||
|
<li>Applying EUCAST expert rules</li>
|
||||||
|
<li>Getting SNOMED codes of a microorganism, or getting properties of a microorganism based on a SNOMED code</li>
|
||||||
|
<li>Getting LOINC codes of an antibiotic, or getting properties of an antibiotic based on a LOINC code</li>
|
||||||
|
<li>Machine reading the EUCAST and CLSI guidelines from 2011-2020 to translate MIC values and disk diffusion diameters to R/SI</li>
|
||||||
|
<li>Principal component analysis for AMR</li>
|
||||||
|
</ul>
|
||||||
|
<p>All reference data sets (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) in this <code>AMR</code> package are publicly and freely available. We continually export our data sets to formats for use in R, SPSS, SAS, Stata and Excel. We also supply flat files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please find <a href="https://msberends.github.io/AMR/articles/datasets.html">all download links on our website</a>, which is automatically updated with every code change.</p>
|
||||||
|
<p>This R package was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the <a href="https://www.rug.nl" class="external-link">University of Groningen</a>, in collaboration with non-profit organisations <a href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>, and is being <a href="./news">actively and durably maintained</a> by two public healthcare organisations in the Netherlands.</p>
|
||||||
|
<hr>
|
||||||
|
<p><small> This AMR package for R is free, open-source software and licensed under the <a href="https://msberends.github.io/AMR/LICENSE-text.html">GNU General Public License v2.0 (GPL-2)</a>. 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></p>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p>
|
||||||
|
<p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p>
|
||||||
|
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,248 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Authors and Citation • AMR (for R)</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="apple-touch-icon-60x60.png"><script src="deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="deps/bootstrap-5.1.3/bootstrap.min.css" rel="stylesheet"><script src="deps/bootstrap-5.1.3/bootstrap.bundle.min.js"></script><link href="deps/Fira_Code-0.4.2/font.css" rel="stylesheet"><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- bootstrap-toc --><script src="https://cdn.rawgit.com/afeld/bootstrap-toc/v1.0.1/dist/bootstrap-toc.min.js"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- search --><script src="https://cdnjs.cloudflare.com/ajax/libs/fuse.js/6.4.6/fuse.js" integrity="sha512-zv6Ywkjyktsohkbp9bb45V6tEMoWhzFzXis+LrMehmJZZSys19Yxf1dopHx7WzIKxr5tK2dVcYmaCk2uqdjF4A==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.0/autocomplete.jquery.min.js" integrity="sha512-GU9ayf+66Xx2TmpxqJpliWbT5PiGYxpaG8rfnBEk1LL8l1KGkRShhngwdXK1UgqhAzWpZHSiYPc09/NwDQIGyg==" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js" integrity="sha512-5CYOlHXGh6QpOFA/TeTylKLWfB3ftPsde7AnmhuitiTX4K5SqCLBeKro6sPS8ilsz1Q4NRx3v8Ko2IBiszzdww==" crossorigin="anonymous"></script><!-- pkgdown --><script src="pkgdown.js"></script><link href="extra.css" rel="stylesheet"><script src="extra.js"></script><meta property="og:title" content="Authors and Citation"><meta property="og:image" content="https://msberends.github.io/AMR/logo.svg"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:creator" content="@msberends"><meta name="twitter:site" content="@msberends"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]--></head><body>
|
||||||
|
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||||
|
|
||||||
|
<a class="navbar-brand me-2" href="index.html">AMR (for R)</a>
|
||||||
|
|
||||||
|
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">1.8.2.9023</small>
|
||||||
|
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="navbar" class="collapse navbar-collapse ms-3">
|
||||||
|
<ul class="navbar-nav me-auto"><li class="nav-item">
|
||||||
|
<a class="nav-link" href="index.html">
|
||||||
|
<span class="fa fa-home"></span>
|
||||||
|
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true" id="dropdown--how-to">
|
||||||
|
<span class="fa fa-question-circle"></span>
|
||||||
|
|
||||||
|
How to
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdown--how-to">
|
||||||
|
<a class="dropdown-item" href="articles/AMR.html">
|
||||||
|
<span class="fa fa-directions"></span>
|
||||||
|
|
||||||
|
Conduct AMR analysis
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/resistance_predict.html">
|
||||||
|
<span class="fa fa-dice"></span>
|
||||||
|
|
||||||
|
Predict antimicrobial resistance
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/datasets.html">
|
||||||
|
<span class="fa fa-database"></span>
|
||||||
|
|
||||||
|
Data sets for download / own use
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/PCA.html">
|
||||||
|
<span class="fa fa-compress"></span>
|
||||||
|
|
||||||
|
Conduct principal component analysis for AMR
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/MDR.html">
|
||||||
|
<span class="fa fa-skull-crossbones"></span>
|
||||||
|
|
||||||
|
Determine multi-drug resistance (MDR)
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/WHONET.html">
|
||||||
|
<span class="fa fa-globe-americas"></span>
|
||||||
|
|
||||||
|
Work with WHONET data
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/SPSS.html">
|
||||||
|
<span class="fa fa-file-upload"></span>
|
||||||
|
|
||||||
|
Import data from SPSS/SAS/Stata
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="articles/EUCAST.html">
|
||||||
|
<span class="fa fa-exchange-alt"></span>
|
||||||
|
|
||||||
|
Apply EUCAST rules
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="reference/mo_property.html">
|
||||||
|
<span class="fa fa-bug"></span>
|
||||||
|
|
||||||
|
Get properties of a microorganism
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="reference/ab_property.html">
|
||||||
|
<span class="fa fa-capsules"></span>
|
||||||
|
|
||||||
|
Get properties of an antibiotic
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="reference/index.html">
|
||||||
|
<span class="fa fa-book-open"></span>
|
||||||
|
|
||||||
|
Manual
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="active nav-item">
|
||||||
|
<a class="nav-link" href="authors.html">
|
||||||
|
<span class="fa fa-users"></span>
|
||||||
|
|
||||||
|
Authors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="news/index.html">
|
||||||
|
<span class="far fa far fa-newspaper"></span>
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul><form class="form-inline my-2 my-lg-0" role="search">
|
||||||
|
<input type="search" class="form-control me-sm-2" aria-label="Toggle navigation" name="search-input" data-search-index="search.json" id="search-input" placeholder="Search for" autocomplete="off"></form>
|
||||||
|
|
||||||
|
<ul class="navbar-nav"><li class="nav-item">
|
||||||
|
<a class="external-link nav-link" href="https://github.com/msberends/AMR">
|
||||||
|
<span class="fab fa fab fa-github"></span>
|
||||||
|
|
||||||
|
Source Code
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav><div class="container template-citation-authors">
|
||||||
|
<div class="row">
|
||||||
|
<main id="main" class="col-md-9"><div class="page-header">
|
||||||
|
<img src="logo.svg" class="logo" alt=""><h1>Authors and Citation</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="section level2 citation">
|
||||||
|
<h2>Authors</h2>
|
||||||
|
|
||||||
|
<ul class="list-unstyled"><li>
|
||||||
|
<p><strong>Matthijs S. Berends</strong>. Author, maintainer. <a href="https://orcid.org/0000-0001-7620-1800" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Christian F. Luz</strong>. Author, contributor. <a href="https://orcid.org/0000-0001-5809-5995" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Dennis Souverein</strong>. Author, contributor. <a href="https://orcid.org/0000-0003-0455-0336" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Erwin E. A. Hassing</strong>. Author, contributor.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Casper J. Albers</strong>. Thesis advisor. <a href="https://orcid.org/0000-0002-9213-6743" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Peter Dutey-Magni</strong>. Contributor. <a href="https://orcid.org/0000-0002-8942-9836" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Judith M. Fonville</strong>. Contributor.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Alex W. Friedrich</strong>. Thesis advisor. <a href="https://orcid.org/0000-0003-4881-038X" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Corinna Glasner</strong>. Thesis advisor. <a href="https://orcid.org/0000-0003-1241-1328" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Eric H. L. C. M. Hazenberg</strong>. Contributor.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Gwen Knight</strong>. Contributor. <a href="https://orcid.org/0000-0002-7263-9896" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Annick Lenglet</strong>. Contributor. <a href="https://orcid.org/0000-0003-2013-8405" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Bart C. Meijer</strong>. Contributor.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Dmytro Mykhailenko</strong>. Contributor.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Anton Mymrikov</strong>. Contributor.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Sofia Ny</strong>. Contributor. <a href="https://orcid.org/0000-0002-2017-1363" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Rogier P. Schade</strong>. Contributor.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Bhanu N. M. Sinha</strong>. Thesis advisor. <a href="https://orcid.org/0000-0003-1634-0010" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p><strong>Anthony Underwood</strong>. Contributor. <a href="https://orcid.org/0000-0002-8547-4277" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ul></div>
|
||||||
|
|
||||||
|
<div class="section level2 citation">
|
||||||
|
<h2 id="citation">Citation</h2>
|
||||||
|
<p><small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/inst/CITATION" class="external-link"><code>inst/CITATION</code></a></small></p>
|
||||||
|
|
||||||
|
<p>Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022).
|
||||||
|
“AMR: An R Package for Working with Antimicrobial Resistance Data.”
|
||||||
|
<em>Journal of Statistical Software</em>, <b>104</b>(3), 1–31.
|
||||||
|
<a href="https://doi.org/10.18637/jss.v104.i03" class="external-link">doi:10.18637/jss.v104.i03</a>.
|
||||||
|
</p>
|
||||||
|
<pre>@Article{,
|
||||||
|
title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data},
|
||||||
|
author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner},
|
||||||
|
journal = {Journal of Statistical Software},
|
||||||
|
year = {2022},
|
||||||
|
volume = {104},
|
||||||
|
number = {3},
|
||||||
|
pages = {1--31},
|
||||||
|
doi = {10.18637/jss.v104.i03},
|
||||||
|
}</pre>
|
||||||
|
</div>
|
||||||
|
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||||
|
</nav></aside></div>
|
||||||
|
|
||||||
|
|
||||||
|
<footer><div class="pkgdown-footer-left">
|
||||||
|
<p></p><p><code>AMR</code> (for R). Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> in collaboration with non-profit organisations<br><a target="_blank" href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pkgdown-footer-right">
|
||||||
|
<p></p><p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://github.com/msberends/AMR/raw/main/pkgdown/logos/logo_rug.svg" style="max-width: 150px;"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body></html>
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/mstile-150x150.png?v=2"/>
|
||||||
|
<square310x310logo src="/mstile-310x310.png?v=2"/>
|
||||||
|
<TileColor>#eeeeee</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
||||||
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 1.2 MiB |
@@ -0,0 +1,7 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Fira Code';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: swap;
|
||||||
|
src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sFVQ.woff) format('woff');
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Lato';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: swap;
|
||||||
|
src: url(fonts/S6u8w4BMUTPHjxswWA.woff) format('woff');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Lato';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: swap;
|
||||||
|
src: url(fonts/S6uyw4BMUTPHvxo.woff) format('woff');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Lato';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
font-display: swap;
|
||||||
|
src: url(fonts/S6u9w4BMUTPHh6UVeww.woff) format('woff');
|
||||||
|
}
|
||||||