Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
681ed77a20 | ||
|
|
abec62e8ef | ||
|
|
32b45faeac | ||
|
|
9a21a80414 | ||
|
|
8fbf4f8f0b | ||
|
|
8b8bb6a2c6 | ||
|
|
3f29ba1e23 | ||
|
|
91acb769c9 | ||
|
|
2fc13ce76c | ||
|
|
400965f4d0 | ||
|
|
c4b2718c5c | ||
|
|
76f7401c43 | ||
|
|
35262bb822 | ||
|
|
2556c457ce | ||
|
|
169659837d | ||
|
|
108afaca6f | ||
|
|
f17152b9da | ||
|
|
a7dc3ed0d7 | ||
|
|
ebfb414ab1 | ||
|
|
3a960de6ea | ||
|
|
d5b7929b36 | ||
|
|
3802119599 | ||
|
|
8f9d658c13 | ||
|
|
99f55f2ec2 | ||
|
|
c89dafb556 | ||
|
|
b3b6a798ae | ||
|
|
2a7bfb9ffb | ||
|
|
9447e0f2c2 | ||
|
|
6fbd9e4b9f | ||
|
|
3a3027f171 | ||
|
|
425f4ad827 | ||
|
|
e12355b4a8 | ||
|
|
cc4e9bab4b | ||
|
|
fdef91486c | ||
|
|
5dec3cfd25 | ||
|
|
86b5ebf61f | ||
|
|
f2e56dbc61 | ||
|
|
6d9934ac04 | ||
|
|
59b2ce5621 | ||
|
|
d0fd6aa2cc | ||
|
|
d6c59896e9 | ||
|
|
d55d073ae9 | ||
|
|
330f1a9dfe | ||
|
|
c95646d39c | ||
|
|
3560dfd611 | ||
|
|
ba003f3e23 | ||
|
|
33e262ed9b | ||
|
|
86a53a0901 | ||
|
|
e7e8aa636e | ||
|
|
1e81c2a013 | ||
|
|
ab5ce59112 | ||
|
|
599302f0bd | ||
|
|
acc807a02c | ||
|
|
3c74d99480 | ||
|
|
6f0dc96d0d | ||
|
|
f0ec851466 | ||
|
|
c149bb1f65 | ||
|
|
8b71d0eb99 | ||
|
|
0551ea51cb | ||
|
|
86f19c7576 | ||
|
|
39894d56c9 | ||
|
|
a4edc69618 | ||
|
|
e2ba695c2c | ||
|
|
bb2e68890c | ||
|
|
70d4d19168 | ||
|
|
46858ec0a2 | ||
|
|
01880ee020 | ||
|
|
1227e2c60c | ||
|
|
7c8d0f82f9 | ||
|
|
141fc468f8 | ||
|
|
7d16891987 | ||
|
|
0d195202fd | ||
|
|
2d20ac1a7d | ||
|
|
dc9493d2d8 | ||
|
|
a33b95eb3d | ||
|
|
f4ce3570ff | ||
|
|
32361053f1 | ||
|
|
660bcf00e5 | ||
|
|
cf182a28f1 | ||
|
|
ccfe6caf58 | ||
|
|
be9c71b572 | ||
|
|
d1f9877a8e | ||
|
|
75b8c2485a | ||
|
|
43285cb936 | ||
|
|
4542802e26 | ||
|
|
e8a82b62b7 | ||
|
|
501395d46e | ||
|
|
a09b81fb58 | ||
|
|
3be689a8db | ||
|
|
7f9aacb56b | ||
|
|
5791bfb45d | ||
|
|
b993fdd12f | ||
|
|
eb889b5de5 | ||
|
|
7d4c4ecffc | ||
|
|
758fc341e8 | ||
|
|
07bc8c2004 | ||
|
|
bf7668e26f | ||
|
|
327130f5b6 | ||
|
|
b2cbb64ac9 | ||
|
|
af466f6f80 | ||
|
|
30a07c0128 | ||
|
|
e128e9cb57 | ||
|
|
02d1b619ce | ||
|
|
37856aa66f | ||
|
|
384690a1d1 | ||
|
|
6a46452c67 | ||
|
|
9084efe334 | ||
|
|
9f654e4c24 | ||
|
|
a7bbc3ea9c | ||
|
|
11b4f3ac31 | ||
|
|
da2f868615 | ||
|
|
16aa35c2cd | ||
|
|
2266fa7c29 | ||
|
|
2118d4ea5f | ||
|
|
0f8fdaa2cb | ||
|
|
8ca7c05e80 | ||
|
|
bb8c39a64e | ||
|
|
12070624fb | ||
|
|
ac714f6778 | ||
|
|
dd091f606e | ||
|
|
0f3f86c0e0 | ||
|
|
eb5d938435 | ||
|
|
b2e33669e6 | ||
|
|
2b01809862 | ||
|
|
6e63d9fa4f | ||
|
|
b72df4d23d | ||
|
|
e9c6e5e2e9 | ||
|
|
8817a4bbb4 | ||
|
|
9481aa9987 | ||
|
|
6f158d57f9 | ||
|
|
409fe1d197 | ||
|
|
f12cfeeac0 | ||
|
|
4733a75b8c | ||
|
|
cf40234c88 | ||
|
|
1edc1c4b4f | ||
|
|
1e0f9662a5 | ||
|
|
b3ff0d9941 | ||
|
|
1f5b2f341f | ||
|
|
80b584cd20 | ||
|
|
cfc9269348 | ||
|
|
1c78ad4a99 | ||
|
|
349e224e07 | ||
|
|
1428bda0ea | ||
|
|
70d680994f | ||
|
|
db3c671dde | ||
|
|
159bbecc7f | ||
|
|
6535e981d8 | ||
|
|
62e8b90f69 | ||
|
|
763def34da | ||
|
|
35badd628d | ||
|
|
d91fe18ca5 | ||
|
|
3545229978 | ||
|
|
5b2e2c9477 | ||
|
|
4dfe96b8ed | ||
|
|
09d9ab0bce | ||
|
|
1b88841880 | ||
|
|
5c912497a1 | ||
|
|
d2f56c540f | ||
|
|
fbf5e7fed3 | ||
|
|
7b50a54fd5 | ||
|
|
fdab4a7cc4 | ||
|
|
61c6f7a130 | ||
|
|
c02bb6e324 | ||
|
|
ba9682adf4 | ||
|
|
9f1de52753 | ||
|
|
78fcd845f5 | ||
|
|
af8fd79274 | ||
|
|
edf94d29e6 | ||
|
|
581f2e05ab | ||
|
|
95135f6352 | ||
|
|
ab52cfcb22 | ||
|
|
57dca59004 | ||
|
|
a57178bf4d | ||
|
|
793bb176ef | ||
|
|
b923119b5c | ||
|
|
7260225470 | ||
|
|
61dbb43388 | ||
|
|
c1d512a0a8 | ||
|
|
11522b294c | ||
|
|
040af225ad | ||
|
|
03c11fc829 | ||
|
|
1a2e318d5f | ||
|
|
302f4aa3b4 | ||
|
|
d6c2f972b0 | ||
|
|
740a04330a | ||
|
|
2eb7407a4b | ||
|
|
8a29e934c9 | ||
|
|
a4384adaa6 | ||
|
|
1db1147c91 | ||
|
|
0aa031ce16 | ||
|
|
225c17677d | ||
|
|
e31adf4b92 | ||
|
|
0a7c89fb0b | ||
|
|
b4135f3f76 | ||
|
|
7ef2312236 | ||
|
|
bc66bdfd98 | ||
|
|
ea26e87acb | ||
|
|
07ef22c924 | ||
|
|
20f99d2b5c | ||
|
|
573ad78d64 | ||
|
|
b3c44cbc69 | ||
|
|
7bdc3e8702 | ||
|
|
6b6bfdb736 | ||
|
|
8a9facd800 | ||
|
|
a76fb41a53 | ||
|
|
a38d79b77b | ||
|
|
3616ac49c3 | ||
|
|
df4b0e7e48 | ||
|
|
892b43a567 | ||
|
|
026593f316 | ||
|
|
e672d889c9 | ||
|
|
9694bcf9b0 | ||
|
|
31e255491c | ||
|
|
db65f851b3 | ||
|
|
eb5d5ad09f | ||
|
|
dc8269dad0 | ||
|
|
6d225ab56e | ||
|
|
97df961c58 | ||
|
|
32399fd133 | ||
|
|
bc6e17ff98 | ||
|
|
3301f9a98a | ||
|
|
41c3e0d687 | ||
|
|
93d36df3a8 | ||
|
|
af2c21b5fa | ||
|
|
49c61d7fd3 | ||
|
|
033d6fe9df | ||
|
|
9c6ec954fa | ||
|
|
15660eb423 | ||
|
|
cf81d59a10 | ||
|
|
20c26cd21b | ||
|
|
be20858eae | ||
|
|
20d0d4d3e5 | ||
|
|
322b29a823 | ||
|
|
c3f2517428 | ||
|
|
71ff130527 | ||
|
|
a49e633c9c | ||
|
|
e0542b9b1c | ||
|
|
62b90c777c | ||
|
|
fa577c3071 | ||
|
|
367c8e38b7 | ||
|
|
9a8d9ff1f2 | ||
|
|
350e6e4c50 | ||
|
|
5def32a932 | ||
|
|
95b6c9295f | ||
|
|
8a7fcc217d | ||
|
|
0d24681106 | ||
|
|
d63b10a2a7 | ||
|
|
94ecdb9614 | ||
|
|
ec77702529 | ||
|
|
19d75dd4e4 | ||
|
|
4c4a60b950 | ||
|
|
31a5475cc7 | ||
|
|
37cf2f059d | ||
|
|
a7d458e21d | ||
|
|
05af6888f2 | ||
|
|
943ca7c7de | ||
|
|
8cca90250b | ||
|
|
4ddb872f23 | ||
|
|
a9017a57bd | ||
|
|
ee18760cfa | ||
|
|
c26c85c21a | ||
|
|
74bb1abb0c | ||
|
|
4762d07c22 | ||
|
|
c99168b4a6 | ||
|
|
75d3c3aadc | ||
|
|
1f01704397 | ||
|
|
2550023f81 | ||
|
|
1c32c669a0 | ||
|
|
62f6837a98 | ||
|
|
f769324f08 | ||
|
|
2f239e59c4 | ||
|
|
fd917ad2bb | ||
|
|
230bbd3722 | ||
|
|
1ffdce6eeb | ||
|
|
dba1186b76 | ||
|
|
3c6ea5dbb1 | ||
|
|
7b8d4eee83 | ||
|
|
12a9c6f82c | ||
|
|
67acf7984e | ||
|
|
06dde43311 | ||
|
|
74e5d17657 | ||
|
|
72f312843f | ||
|
|
de6c43b84a | ||
|
|
fa715b9e44 | ||
|
|
236ec09721 | ||
|
|
51f4d0e546 | ||
|
|
8e108a2243 | ||
|
|
122d0c536c | ||
|
|
a96b1c7684 | ||
|
|
79ff526e9c | ||
|
|
98c6dedd1c | ||
|
|
271ab5b1ae | ||
|
|
374627273f | ||
|
|
062a7eba40 | ||
|
|
83fdd7b9a0 | ||
|
|
0f7643dd96 | ||
|
|
0182344680 | ||
|
|
82ec49a31f | ||
|
|
0b0a4b6a51 | ||
|
|
704eb041fa | ||
|
|
bb51c7b8b3 | ||
|
|
fad0489eed | ||
|
|
eb326fa2fa | ||
|
|
25024fa1d8 | ||
|
|
6eb417125c | ||
|
|
158b328929 | ||
|
|
62d8ae3b8a | ||
|
|
d1a90f83ff | ||
|
|
d6ec56c776 | ||
|
|
9b631f2607 | ||
|
|
cd0d80903b | ||
|
|
0b8e89c845 | ||
|
|
ab367558fe | ||
|
|
d707152fc2 | ||
|
|
430d460276 | ||
|
|
8611815e20 | ||
|
|
1460fadf40 | ||
|
|
4720b842e6 | ||
|
|
d65eb144db | ||
|
|
09881c5781 | ||
|
|
3440c43dc4 | ||
|
|
3c05a8bfc8 | ||
|
|
8fe9437f7c | ||
|
|
d7a1dbb2b9 | ||
|
|
8c3ab46914 | ||
|
|
9f32027abc | ||
|
|
bc0fb5bd03 | ||
|
|
faed08a2c9 | ||
|
|
7e5894fcd4 | ||
|
|
9bc1b49ea6 | ||
|
|
be8832a827 | ||
|
|
822244837d | ||
|
|
645974fb29 | ||
|
|
363db948a2 | ||
|
|
619bcd7ee9 | ||
|
|
b5e161a822 | ||
|
|
be187041ab | ||
|
|
c04e1e825d | ||
|
|
3d586f1328 | ||
|
|
a617bbf941 | ||
|
|
d8d9452d24 | ||
|
|
97037aa011 | ||
|
|
958f761af3 | ||
|
|
967c45ea9f | ||
|
|
f566ec1603 | ||
|
|
9fabe8ad02 | ||
|
|
a061a2a482 | ||
|
|
53b7f76c86 | ||
|
|
19c2925a0a | ||
|
|
e0222b5d61 | ||
|
|
0470e7935b | ||
|
|
37a66e6447 | ||
|
|
3bfb473562 | ||
|
|
c08773dd0b | ||
|
|
456f60ceaa | ||
|
|
9c8a5eae2c | ||
|
|
b7bbc5c384 | ||
|
|
dd75cf872c | ||
|
|
9d1e78f897 | ||
|
|
e382efa66b | ||
|
|
5491fb7088 | ||
|
|
cc245a41a0 | ||
|
|
4f0b1843a3 | ||
|
|
bd4f12016d | ||
|
|
f56524ba9c | ||
|
|
e72c161f5f | ||
|
|
cb279602b6 | ||
|
|
2f947f2a87 | ||
|
|
cf002cfefa | ||
|
|
7cc570249b | ||
|
|
7f1c20a0e8 | ||
|
|
0484d7ab4d | ||
|
|
0be2d50036 | ||
|
|
074df34e9a | ||
|
|
9857914f74 | ||
|
|
82ad5d095f | ||
|
|
09b3187184 | ||
|
|
fefbb46ec6 | ||
|
|
705ab0e847 | ||
|
|
1fe0350d15 | ||
|
|
69dc8795ae | ||
|
|
8685119254 | ||
|
|
cdada2f940 | ||
|
|
2183549fea | ||
|
|
550fd47250 | ||
|
|
dee759ef9c | ||
|
|
259fe07455 | ||
|
|
d5f778add6 | ||
|
|
7d4de8eb35 | ||
|
|
e0b5911d41 | ||
|
|
39d838ee3d | ||
|
|
a15da467b3 | ||
|
|
7c0ad08c8a | ||
|
|
48896ee426 | ||
|
|
31fd5db33b | ||
|
|
62f3d29455 | ||
|
|
d6a21b332a | ||
|
|
769ace0b66 | ||
|
|
c43e91eaee | ||
|
|
f31bb7259e | ||
|
|
21650ffec3 | ||
|
|
93271b2c07 | ||
|
|
59c39dc5d1 | ||
|
|
9950851ea8 | ||
|
|
a7dcf5719c | ||
|
|
e289d2568d | ||
|
|
d18dc71c10 | ||
|
|
2b13d43a3f | ||
|
|
deed569722 | ||
|
|
805dcaf92e | ||
|
|
d37dc49b96 | ||
|
|
32eee46345 | ||
|
|
84a6877c99 | ||
|
|
6151d3f729 | ||
|
|
32bfbe9286 | ||
|
|
3feb675608 | ||
|
|
e96db55bc2 | ||
|
|
49cc52e916 | ||
|
|
e665f73c92 | ||
|
|
72f176330e | ||
|
|
8ae4799471 | ||
|
|
784ee0812f | ||
|
|
d3e437e13a | ||
|
|
ec8f871100 | ||
|
|
6a000be49b | ||
|
|
d81e09bddd | ||
|
|
2c1a204ab6 | ||
|
|
e731388cb5 | ||
|
|
b3effa8a4e | ||
|
|
e81f9bcf5e | ||
|
|
8cd53d7ba4 | ||
|
|
fe6945bfad | ||
|
|
c5a5383b7b | ||
|
|
29c310e535 | ||
|
|
d247365476 | ||
|
|
64384886d7 | ||
|
|
7b50c6e9f7 | ||
|
|
100f3d6fe0 | ||
|
|
4dff2dbe6b | ||
|
|
09ffdc91e6 | ||
|
|
d6a732817a | ||
|
|
a153eb2626 | ||
|
|
0bc2afafe9 | ||
|
|
8c6795ca53 | ||
|
|
a994768452 | ||
|
|
4b476d056c | ||
|
|
eb998f6989 | ||
|
|
bdc43910ae | ||
|
|
6fd5ff2a24 | ||
|
|
68a0b3f94a | ||
|
|
d31b599825 | ||
|
|
7fe29a8401 | ||
|
|
f74da6c86a | ||
|
|
863a83ee08 | ||
|
|
b248bcc62a | ||
|
|
40b8ed3a1a | ||
|
|
90b951a48a | ||
|
|
05ea686a1e | ||
|
|
ec6f7db383 | ||
|
|
0d936e8905 | ||
|
|
f988c3273a | ||
|
|
9a91fdfb99 | ||
|
|
8438e68df5 | ||
|
|
8211647fb0 | ||
|
|
560396124f | ||
|
|
b45431b86c | ||
|
|
9667f42d3b | ||
|
|
49a3324340 | ||
|
|
ca3fb70197 | ||
|
|
f137d1a9e0 | ||
|
|
e2e3fa9184 | ||
|
|
205bfb053c | ||
|
|
553d074b96 | ||
|
|
4cc1967eab |
@@ -6,37 +6,32 @@
|
||||
<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]-->
|
||||
<!-- favicons --><link rel="icon" type="image/png" sizes="96x96" href="https://amr-for-r.org/favicon-96x96.png">
|
||||
<link rel="icon" type="”image/svg+xml”" href="https://amr-for-r.org/favicon.svg">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="https://amr-for-r.org/apple-touch-icon.png">
|
||||
<link rel="icon" sizes="any" href="https://amr-for-r.org/favicon.ico">
|
||||
<link rel="manifest" href="https://amr-for-r.org/site.webmanifest">
|
||||
<script src="https://amr-for-r.org/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://amr-for-r.org/deps/bootstrap-5.3.8/bootstrap.min.css" rel="stylesheet">
|
||||
<script src="https://amr-for-r.org/deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="https://amr-for-r.org/deps/Lato-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="https://amr-for-r.org/deps/Fira_Code-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="https://amr-for-r.org/deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet">
|
||||
<link href="https://amr-for-r.org/deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet">
|
||||
<script src="https://amr-for-r.org/deps/headroom-0.11.0/headroom.min.js"></script><script src="https://amr-for-r.org/deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="https://amr-for-r.org/deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="https://amr-for-r.org/deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="https://amr-for-r.org/deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="https://amr-for-r.org/deps/search-1.0.0/fuse.min.js"></script><script src="https://amr-for-r.org/deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="https://amr-for-r.org/pkgdown.js"></script><link href="https://amr-for-r.org/extra.css" rel="stylesheet">
|
||||
<script src="https://amr-for-r.org/extra.js"></script><meta property="og:title" content="Page not found (404)">
|
||||
<meta property="og:image" content="https://amr-for-r.org/logo.svg">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||
</head>
|
||||
<body>
|
||||
<a href="https://msberends.github.io/AMR/#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||
<a href="https://amr-for-r.org/#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||
|
||||
|
||||
<nav class="navbar fixed-top navbar-dark navbar-expand-lg bg-primary"><div class="container">
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><div class="container">
|
||||
|
||||
<a class="navbar-brand me-2" href="https://msberends.github.io/AMR/index.html">AMR (for R)</a>
|
||||
<a class="navbar-brand me-2" href="https://amr-for-r.org/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.9018</small>
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9091</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">
|
||||
@@ -45,106 +40,33 @@
|
||||
|
||||
<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>
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to">
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="https://amr-for-r.org/reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link" href="https://amr-for-r.org/articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="https://amr-for-r.org/reference/index.html"><span class="fa fa-book-open"></span> Manual</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="https://amr-for-r.org/authors.html"><span class="fa fa-users"></span> Authors</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 class="navbar-nav">
|
||||
<li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="search.json">
|
||||
</form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="https://amr-for-r.org/news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa fa-github"></span> Source Code</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -153,7 +75,7 @@
|
||||
</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>
|
||||
<img src="https://amr-for-r.org/logo.svg" class="logo" alt=""><h1>Page not found (404)</h1>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -164,13 +86,11 @@ Content not found. Please use links in the navbar.
|
||||
|
||||
|
||||
<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>
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</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>
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
Content not found. Please use links in the navbar.
|
||||
|
||||
# Page not found (404)
|
||||
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 245 KiB |
|
After Width: | Height: | Size: 296 KiB |
|
After Width: | Height: | Size: 296 KiB |
@@ -0,0 +1,300 @@
|
||||
<!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>CLAUDE.md — AMR R Package • AMR (for R)</title><!-- favicons --><link rel="icon" type="image/png" sizes="96x96" href="favicon-96x96.png"><link rel="icon" type="”image/svg+xml”" href="favicon.svg"><link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png"><link rel="icon" sizes="any" href="favicon.ico"><link rel="manifest" href="site.webmanifest"><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.3.8/bootstrap.min.css" rel="stylesheet"><script src="deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="deps/Lato-0.4.10/font.css" rel="stylesheet"><link href="deps/Fira_Code-0.4.10/font.css" rel="stylesheet"><link href="deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet"><link href="deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet"><script src="deps/headroom-0.11.0/headroom.min.js"></script><script src="deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="deps/search-1.0.0/fuse.min.js"></script><script src="deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="pkgdown.js"></script><link href="extra.css" rel="stylesheet"><script src="extra.js"></script><meta property="og:title" content="CLAUDE.md — AMR R Package"><meta property="og:image" content="https://amr-for-r.org/logo.svg"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous"><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script></head><body>
|
||||
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||
|
||||
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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="">3.0.1.9091</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 dropdown">
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to"><li><a class="dropdown-item" href="articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul></li>
|
||||
<li class="nav-item"><a class="nav-link" href="articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</ul><ul class="navbar-nav"><li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="search.json"></form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa 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>CLAUDE.md — AMR R Package</h1>
|
||||
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/CLAUDE.md" class="external-link"><code>CLAUDE.md</code></a></small>
|
||||
</div>
|
||||
|
||||
<div id="claudemd--amr-r-package" class="section level1">
|
||||
|
||||
<p>This file provides context for Claude Code when working in this repository.</p>
|
||||
<div class="section level2">
|
||||
<h2 id="project-overview">Project Overview<a class="anchor" aria-label="anchor" href="#project-overview"></a></h2>
|
||||
<p><strong>AMR</strong> is a zero-dependency R package for antimicrobial resistance (AMR) data analysis using a One Health approach. It is peer-reviewed, used in 175+ countries, and supports 28 languages.</p>
|
||||
<p>Key capabilities: - SIR (Susceptible/Intermediate/Resistant) classification using EUCAST 2011–2025 and CLSI 2011–2025 breakpoints - Antibiogram generation: traditional, combined, syndromic, and WISCA - Microorganism taxonomy database (~79,000 species) - Antimicrobial drug database (~620 drugs) - Multi-drug resistant organism (MDRO) classification - First-isolate identification - Minimum Inhibitory Concentration (MIC) and disk diffusion handling - Multilingual output (28 languages)</p>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="common-commands">Common Commands<a class="anchor" aria-label="anchor" href="#common-commands"></a></h2>
|
||||
<p>All commands run inside an R session:</p>
|
||||
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="co"># Rebuild documentation (roxygen2 → .Rd files + NAMESPACE)</span></span>
|
||||
<span><span class="fu">devtools</span><span class="fu">::</span><span class="fu">document</span><span class="op">(</span><span class="op">)</span></span>
|
||||
<span></span>
|
||||
<span><span class="co"># Run all tests</span></span>
|
||||
<span><span class="fu">devtools</span><span class="fu">::</span><span class="fu">test</span><span class="op">(</span><span class="op">)</span></span>
|
||||
<span></span>
|
||||
<span><span class="co"># Full package check (CRAN-level: docs + tests + checks)</span></span>
|
||||
<span><span class="fu">devtools</span><span class="fu">::</span><span class="fu">check</span><span class="op">(</span><span class="op">)</span></span>
|
||||
<span></span>
|
||||
<span><span class="co"># Build pkgdown website locally</span></span>
|
||||
<span><span class="fu">pkgdown</span><span class="fu">::</span><span class="fu"><a href="https://pkgdown.r-lib.org/reference/build_site.html" class="external-link">build_site</a></span><span class="op">(</span><span class="op">)</span></span>
|
||||
<span></span>
|
||||
<span><span class="co"># Code coverage report</span></span>
|
||||
<span><span class="fu">covr</span><span class="fu">::</span><span class="fu"><a href="http://covr.r-lib.org/reference/package_coverage.html" class="external-link">package_coverage</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div>
|
||||
<p>From the shell:</p>
|
||||
<div class="sourceCode" id="cb2"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" tabindex="-1"></a><span class="co"># CRAN check from parent directory</span></span>
|
||||
<span id="cb2-2"><a href="#cb2-2" tabindex="-1"></a><span class="ex">R</span> CMD check AMR</span></code></pre></div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="repository-structure">Repository Structure<a class="anchor" aria-label="anchor" href="#repository-structure"></a></h2>
|
||||
<pre><code>R/ # All R source files (62 files, ~28,000 lines)
|
||||
man/ # Auto-generated .Rd documentation (do not edit manually)
|
||||
tests/testthat/ # testthat test files (test-*.R) and helper-functions.R
|
||||
data/ # Pre-compiled .rda datasets
|
||||
data-raw/ # Scripts used to generate data/ files
|
||||
vignettes/ # Rmd vignette articles
|
||||
inst/ # Installed files (translations, etc.)
|
||||
_pkgdown.yml # pkgdown website configuration</code></pre>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="r-source-file-conventions">R Source File Conventions<a class="anchor" aria-label="anchor" href="#r-source-file-conventions"></a></h2>
|
||||
<p><strong>Naming conventions in <code>R/</code>:</strong></p>
|
||||
<table class="table"><thead><tr><th>Prefix/Name</th>
|
||||
<th>Purpose</th>
|
||||
</tr></thead><tbody><tr><td><code>aa_*.R</code></td>
|
||||
<td>Loaded first (helpers, globals, options, package docs)</td>
|
||||
</tr><tr><td><code>zz_deprecated.R</code></td>
|
||||
<td>Deprecated function wrappers</td>
|
||||
</tr><tr><td><code>zzz.R</code></td>
|
||||
<td>
|
||||
<code>.onLoad</code> / <code>.onAttach</code> initialization</td>
|
||||
</tr></tbody></table><p><strong>Key source files:</strong></p>
|
||||
<ul><li>
|
||||
<code>aa_helper_functions.R</code> / <code>aa_helper_pm_functions.R</code> — internal utility functions (large; ~63 KB and ~37 KB)</li>
|
||||
<li>
|
||||
<code>aa_globals.R</code> — global constants and breakpoint lookup structures</li>
|
||||
<li>
|
||||
<code>aa_options.R</code> — <code>amr_options()</code> / <code>get_AMR_option()</code> system</li>
|
||||
<li>
|
||||
<code>mo.R</code> / <code>mo_property.R</code> — microorganism lookup and properties</li>
|
||||
<li>
|
||||
<code>ab.R</code> / <code>ab_property.R</code> — antimicrobial drug functions</li>
|
||||
<li>
|
||||
<code>av.R</code> / <code>av_property.R</code> — antiviral drug functions</li>
|
||||
<li>
|
||||
<code>sir.R</code> / <code>sir_calc.R</code> / <code>sir_df.R</code> — SIR classification engine</li>
|
||||
<li>
|
||||
<code>mic.R</code> / <code>disk.R</code> — MIC and disk diffusion classes</li>
|
||||
<li>
|
||||
<code>antibiogram.R</code> — antibiogram generation (traditional, combined, syndromic, WISCA)</li>
|
||||
<li>
|
||||
<code>first_isolate.R</code> — first-isolate identification algorithms</li>
|
||||
<li>
|
||||
<code>mdro.R</code> — MDRO classification (EUCAST, CLSI, CDC, custom guidelines)</li>
|
||||
<li>
|
||||
<code>amr_selectors.R</code> — tidyselect helpers for selecting AMR columns</li>
|
||||
<li>
|
||||
<code>interpretive_rules.R</code> / <code>custom_eucast_rules.R</code> — clinical interpretation rules</li>
|
||||
<li>
|
||||
<code>translate.R</code> — 28-language translation system</li>
|
||||
<li>
|
||||
<code>ggplot_sir.R</code> / <code>ggplot_pca.R</code> / <code>plotting.R</code> — visualisation functions</li>
|
||||
</ul></div>
|
||||
<div class="section level2">
|
||||
<h2 id="code-style">Code Style<a class="anchor" aria-label="anchor" href="#code-style"></a></h2>
|
||||
<p>Follow the <a href="https://style.tidyverse.org/" class="external-link">tidyverse style guide</a> precisely. Key rules:</p>
|
||||
<ul><li>2-space indentation; no tabs</li>
|
||||
<li>
|
||||
<code><-</code> for assignment, not <code>=</code>
|
||||
</li>
|
||||
<li>Spaces around all binary operators and after commas; no spaces inside parentheses</li>
|
||||
<li>When a function call must break across lines, place the first argument on a new line indented by 2 spaces, and put the closing <code>)</code> on its own line — <strong>never align arguments to the opening parenthesis</strong> (no hanging/forced mid-line indentation)</li>
|
||||
</ul><div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="co"># good</span></span>
|
||||
<span><span class="fu">stop_</span><span class="op">(</span></span>
|
||||
<span> <span class="st">"some long message part one "</span>,</span>
|
||||
<span> <span class="st">"part two"</span></span>
|
||||
<span><span class="op">)</span></span>
|
||||
<span></span>
|
||||
<span><span class="co"># bad — forces indentation to match the opening parenthesis</span></span>
|
||||
<span><span class="fu">stop_</span><span class="op">(</span><span class="st">"some long message part one "</span>,</span>
|
||||
<span> <span class="st">"part two"</span><span class="op">)</span></span></code></pre></div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="custom-s3-classes">Custom S3 Classes<a class="anchor" aria-label="anchor" href="#custom-s3-classes"></a></h2>
|
||||
<p>The package defines five S3 classes with full print/format/plot/vctrs support:</p>
|
||||
<table class="table"><thead><tr><th>Class</th>
|
||||
<th>Created by</th>
|
||||
<th>Represents</th>
|
||||
</tr></thead><tbody><tr><td><code><mo></code></td>
|
||||
<td><code><a href="reference/as.mo.html">as.mo()</a></code></td>
|
||||
<td>Microorganism code</td>
|
||||
</tr><tr><td><code><ab></code></td>
|
||||
<td><code><a href="reference/as.ab.html">as.ab()</a></code></td>
|
||||
<td>Antimicrobial drug code</td>
|
||||
</tr><tr><td><code><av></code></td>
|
||||
<td><code><a href="reference/as.av.html">as.av()</a></code></td>
|
||||
<td>Antiviral drug code</td>
|
||||
</tr><tr><td><code><sir></code></td>
|
||||
<td><code><a href="reference/as.sir.html">as.sir()</a></code></td>
|
||||
<td>SIR value (S/I/R/SDD)</td>
|
||||
</tr><tr><td><code><mic></code></td>
|
||||
<td><code><a href="reference/as.mic.html">as.mic()</a></code></td>
|
||||
<td>Minimum inhibitory concentration</td>
|
||||
</tr><tr><td><code><disk></code></td>
|
||||
<td><code><a href="reference/as.disk.html">as.disk()</a></code></td>
|
||||
<td>Disk diffusion diameter</td>
|
||||
</tr></tbody></table></div>
|
||||
<div class="section level2">
|
||||
<h2 id="data-files">Data Files<a class="anchor" aria-label="anchor" href="#data-files"></a></h2>
|
||||
<p>Pre-compiled in <code>data/</code> (do not edit directly; regenerate via <code>data-raw/</code> scripts):</p>
|
||||
<table class="table"><colgroup><col width="50%"><col width="50%"></colgroup><thead><tr><th>File</th>
|
||||
<th>Contents</th>
|
||||
</tr></thead><tbody><tr><td><code>microorganisms.rda</code></td>
|
||||
<td>~79,000 microbial species with full taxonomy</td>
|
||||
</tr><tr><td><code>antimicrobials.rda</code></td>
|
||||
<td>~620 antimicrobial drugs with ATC codes</td>
|
||||
</tr><tr><td><code>antivirals.rda</code></td>
|
||||
<td>Antiviral drugs</td>
|
||||
</tr><tr><td><code>clinical_breakpoints.rda</code></td>
|
||||
<td>EUCAST + CLSI breakpoints (2011–2025)</td>
|
||||
</tr><tr><td><code>intrinsic_resistant.rda</code></td>
|
||||
<td>Intrinsic resistance patterns</td>
|
||||
</tr><tr><td><code>example_isolates.rda</code></td>
|
||||
<td>Example AMR dataset for documentation/testing</td>
|
||||
</tr><tr><td><code>WHONET.rda</code></td>
|
||||
<td>Example WHONET-format dataset</td>
|
||||
</tr></tbody></table></div>
|
||||
<div class="section level2">
|
||||
<h2 id="zero-dependency-design">Zero-Dependency Design<a class="anchor" aria-label="anchor" href="#zero-dependency-design"></a></h2>
|
||||
<p>The package has <strong>no <code>Imports</code></strong> in <code>DESCRIPTION</code>. All optional integrations (ggplot2, dplyr, data.table, tidymodels, cli, crayon, etc.) are listed in <code>Suggests</code> and guarded with:</p>
|
||||
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="kw">if</span> <span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/ns-load.html" class="external-link">requireNamespace</a></span><span class="op">(</span><span class="st">"pkg"</span>, quietly <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span><span class="op">)</span> <span class="op">{</span> <span class="va">...</span> <span class="op">}</span></span></code></pre></div>
|
||||
<p>Never add packages to <code>Imports</code>. If new functionality requires an external package, add it to <code>Suggests</code> and guard usage appropriately.</p>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="testing">Testing<a class="anchor" aria-label="anchor" href="#testing"></a></h2>
|
||||
<ul><li>
|
||||
<strong>Framework:</strong> <code>testthat</code> (R ≥ 3.1); legacy <code>tinytest</code> used for R 3.0–3.6 CI</li>
|
||||
<li>
|
||||
<strong>Test files:</strong> <code>tests/testthat/test-*.R</code>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Helpers:</strong> <code>tests/testthat/helper-functions.R</code>
|
||||
</li>
|
||||
<li>
|
||||
<strong>CI matrix:</strong> GitHub Actions across Windows / macOS / Linux × R devel / release / oldrel-1 through oldrel-4</li>
|
||||
<li>
|
||||
<strong>Coverage:</strong> <code>covr</code> (some files excluded: <code>atc_online.R</code>, <code>mo_source.R</code>, <code>translate.R</code>, <code>resistance_predict.R</code>, <code>zz_deprecated.R</code>, helper files, <code>zzz.R</code>)</li>
|
||||
</ul></div>
|
||||
<div class="section level2">
|
||||
<h2 id="documentation">Documentation<a class="anchor" aria-label="anchor" href="#documentation"></a></h2>
|
||||
<ul><li>All exported functions use <strong>roxygen2</strong> blocks (<code>RoxygenNote: 7.3.3</code>, markdown enabled)</li>
|
||||
<li>Run <code>devtools::document()</code> after any change to roxygen comments</li>
|
||||
<li>Never edit files in <code>man/</code> directly — they are auto-generated</li>
|
||||
<li>Vignettes live in <code>vignettes/</code> as <code>.Rmd</code> files</li>
|
||||
<li>The pkgdown website is configured in <code>_pkgdown.yml</code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section level2">
|
||||
<h2 id="versioning">Versioning<a class="anchor" aria-label="anchor" href="#versioning"></a></h2>
|
||||
<p>Version format: <code>major.minor.patch.dev</code> (e.g., <code>3.0.1.9021</code>)</p>
|
||||
<ul><li>Development versions use a <code>.9xxx</code> suffix</li>
|
||||
<li>Stable CRAN releases drop the dev suffix (e.g., <code>3.0.1</code>)</li>
|
||||
<li>
|
||||
<code>NEWS.md</code> uses sections <strong>New</strong>, <strong>Fixes</strong>, <strong>Updates</strong> with GitHub issue references (<code>#NNN</code>)</li>
|
||||
</ul><div class="section level3">
|
||||
<h3 id="version-and-date-bump-required-for-every-pr">Version and date bump required for every PR<a class="anchor" aria-label="anchor" href="#version-and-date-bump-required-for-every-pr"></a></h3>
|
||||
<p>All PRs are <strong>squash-merged</strong>, so each PR lands as exactly <strong>one commit</strong> on the default branch. Version numbers are kept in sync with the cumulative commit count since the last released tag. Therefore <strong>exactly one version bump is allowed per PR</strong>, regardless of how many intermediate commits are made on the branch.</p>
|
||||
<div class="section level4">
|
||||
<h4 id="computing-the-correct-version-number">Computing the correct version number<a class="anchor" aria-label="anchor" href="#computing-the-correct-version-number"></a></h4>
|
||||
<p><strong>First, ensure <code>git</code> and <code>gh</code> are installed</strong> — both are required for the version computation and for pushing changes. Install them if missing before doing anything else:</p>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" tabindex="-1"></a><span class="fu">which</span> git <span class="kw">||</span> <span class="ex">apt-get</span> install <span class="at">-y</span> git</span>
|
||||
<span id="cb6-2"><a href="#cb6-2" tabindex="-1"></a><span class="fu">which</span> gh <span class="kw">||</span> <span class="ex">apt-get</span> install <span class="at">-y</span> gh</span>
|
||||
<span id="cb6-3"><a href="#cb6-3" tabindex="-1"></a><span class="co"># Also ensure all tags are fetched so git describe works</span></span>
|
||||
<span id="cb6-4"><a href="#cb6-4" tabindex="-1"></a><span class="fu">git</span> fetch <span class="at">--tags</span></span></code></pre></div>
|
||||
<p>Then run the following from the repo root to determine the version string to use:</p>
|
||||
<div class="sourceCode" id="cb7"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" tabindex="-1"></a><span class="va">currenttag</span><span class="op">=</span><span class="va">$(</span><span class="fu">git</span> describe <span class="at">--tags</span> <span class="at">--abbrev</span><span class="op">=</span>0 <span class="kw">|</span> <span class="fu">sed</span> <span class="st">'s/v//'</span><span class="va">)</span></span>
|
||||
<span id="cb7-2"><a href="#cb7-2" tabindex="-1"></a><span class="va">currenttagfull</span><span class="op">=</span><span class="va">$(</span><span class="fu">git</span> describe <span class="at">--tags</span> <span class="at">--abbrev</span><span class="op">=</span>0<span class="va">)</span></span>
|
||||
<span id="cb7-3"><a href="#cb7-3" tabindex="-1"></a><span class="va">defaultbranch</span><span class="op">=</span><span class="va">$(</span><span class="fu">git</span> branch <span class="kw">|</span> <span class="fu">cut</span> <span class="at">-c</span> 3- <span class="kw">|</span> <span class="fu">grep</span> <span class="at">-E</span> <span class="st">'^master$|^main$'</span><span class="va">)</span></span>
|
||||
<span id="cb7-4"><a href="#cb7-4" tabindex="-1"></a><span class="fu">git</span> fetch origin <span class="va">${defaultbranch}</span> <span class="at">--quiet</span></span>
|
||||
<span id="cb7-5"><a href="#cb7-5" tabindex="-1"></a><span class="va">currentcommit</span><span class="op">=</span><span class="va">$(</span><span class="fu">git</span> rev-list <span class="at">--count</span> <span class="va">${currenttagfull}</span>..origin/<span class="va">${defaultbranch})</span></span>
|
||||
<span id="cb7-6"><a href="#cb7-6" tabindex="-1"></a><span class="va">currentversion</span><span class="op">=</span><span class="st">"</span><span class="va">${currenttag}</span><span class="st">.</span><span class="va">$((currentcommit</span> <span class="op">+</span> <span class="dv">9001</span> <span class="op">+</span> <span class="dv">1</span><span class="va">))</span><span class="st">"</span></span>
|
||||
<span id="cb7-7"><a href="#cb7-7" tabindex="-1"></a><span class="bu">echo</span> <span class="st">"</span><span class="va">$currentversion</span><span class="st">"</span></span></code></pre></div>
|
||||
<p>The <code>+ 1</code> accounts for the fact that this PR’s squash commit is not yet on the default branch. Set <strong>both</strong> of these files to the resulting version string (and only once per PR, even across multiple commits):</p>
|
||||
<ol style="list-style-type: decimal"><li><p><strong><code>DESCRIPTION</code></strong> — the <code>Version:</code> field</p></li>
|
||||
<li>
|
||||
<p><strong><code>NEWS.md</code></strong> — <strong>only replace line 1</strong> (the <code># AMR <version></code> heading) with the new version number; do <strong>not</strong> create a new section. <code>NEWS.md</code> is a <strong>continuous log</strong> for the entire current <code>x.y.z.9nnn</code> development series: all changes since the last stable release accumulate under that single heading. After updating line 1, append the new change as a bullet under the appropriate sub-heading (<code>### New</code>, <code>### Fixes</code>, or <code>### Updates</code>).</p>
|
||||
<p>Style rules for <code>NEWS.md</code> entries:</p>
|
||||
<ul><li>Be <strong>extremely concise</strong> — one short line per item</li>
|
||||
<li>Do <strong>not</strong> end with a full stop (period)</li>
|
||||
<li>No verbose explanations; just the essential fact</li>
|
||||
</ul></li>
|
||||
</ol><p>If <code>git describe</code> fails (e.g. no tags exist in the environment), fall back to reading the current version from <code>DESCRIPTION</code> and adding 1 to the last numeric component — but only if no bump has already been made in this PR.</p>
|
||||
</div>
|
||||
<div class="section level4">
|
||||
<h4 id="date-field">Date field<a class="anchor" aria-label="anchor" href="#date-field"></a></h4>
|
||||
<p>The <code>Date:</code> field in <code>DESCRIPTION</code> must reflect the date of the <strong>last commit to the PR</strong> (not the first), in ISO format. Update it with every commit so it is always current:</p>
|
||||
<pre><code><span><span class="va">Date</span><span class="op">:</span> <span class="fl">2026</span><span class="op">-</span><span class="fl">03</span><span class="op">-</span><span class="fl">07</span></span></code></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="internal-state">Internal State<a class="anchor" aria-label="anchor" href="#internal-state"></a></h2>
|
||||
<p>The package uses a private <code>AMR_env</code> environment (created in <code>aa_globals.R</code>) for caching expensive lookups (e.g., microorganism matching scores, breakpoint tables). This avoids re-computation within a session.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2>
|
||||
</nav></aside></div>
|
||||
|
||||
|
||||
<footer><div class="pkgdown-footer-left">
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</a>.</p>
|
||||
</div>
|
||||
|
||||
<div class="pkgdown-footer-right">
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body></html>
|
||||
|
||||
@@ -0,0 +1,265 @@
|
||||
# CLAUDE.md — AMR R Package
|
||||
|
||||
This file provides context for Claude Code when working in this
|
||||
repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
**AMR** is a zero-dependency R package for antimicrobial resistance
|
||||
(AMR) data analysis using a One Health approach. It is peer-reviewed,
|
||||
used in 175+ countries, and supports 28 languages.
|
||||
|
||||
Key capabilities: - SIR (Susceptible/Intermediate/Resistant)
|
||||
classification using EUCAST 2011–2025 and CLSI 2011–2025 breakpoints -
|
||||
Antibiogram generation: traditional, combined, syndromic, and WISCA -
|
||||
Microorganism taxonomy database (~79,000 species) - Antimicrobial drug
|
||||
database (~620 drugs) - Multi-drug resistant organism (MDRO)
|
||||
classification - First-isolate identification - Minimum Inhibitory
|
||||
Concentration (MIC) and disk diffusion handling - Multilingual output
|
||||
(28 languages)
|
||||
|
||||
## Common Commands
|
||||
|
||||
All commands run inside an R session:
|
||||
|
||||
``` r
|
||||
|
||||
# Rebuild documentation (roxygen2 → .Rd files + NAMESPACE)
|
||||
devtools::document()
|
||||
|
||||
# Run all tests
|
||||
devtools::test()
|
||||
|
||||
# Full package check (CRAN-level: docs + tests + checks)
|
||||
devtools::check()
|
||||
|
||||
# Build pkgdown website locally
|
||||
pkgdown::build_site()
|
||||
|
||||
# Code coverage report
|
||||
covr::package_coverage()
|
||||
```
|
||||
|
||||
From the shell:
|
||||
|
||||
``` bash
|
||||
# CRAN check from parent directory
|
||||
R CMD check AMR
|
||||
```
|
||||
|
||||
## Repository Structure
|
||||
|
||||
R/ # All R source files (62 files, ~28,000 lines)
|
||||
man/ # Auto-generated .Rd documentation (do not edit manually)
|
||||
tests/testthat/ # testthat test files (test-*.R) and helper-functions.R
|
||||
data/ # Pre-compiled .rda datasets
|
||||
data-raw/ # Scripts used to generate data/ files
|
||||
vignettes/ # Rmd vignette articles
|
||||
inst/ # Installed files (translations, etc.)
|
||||
_pkgdown.yml # pkgdown website configuration
|
||||
|
||||
## R Source File Conventions
|
||||
|
||||
**Naming conventions in `R/`:**
|
||||
|
||||
| Prefix/Name | Purpose |
|
||||
|-------------------|--------------------------------------------------------|
|
||||
| `aa_*.R` | Loaded first (helpers, globals, options, package docs) |
|
||||
| `zz_deprecated.R` | Deprecated function wrappers |
|
||||
| `zzz.R` | `.onLoad` / `.onAttach` initialization |
|
||||
|
||||
**Key source files:**
|
||||
|
||||
- `aa_helper_functions.R` / `aa_helper_pm_functions.R` — internal
|
||||
utility functions (large; ~63 KB and ~37 KB)
|
||||
- `aa_globals.R` — global constants and breakpoint lookup structures
|
||||
- `aa_options.R` — `amr_options()` / `get_AMR_option()` system
|
||||
- `mo.R` / `mo_property.R` — microorganism lookup and properties
|
||||
- `ab.R` / `ab_property.R` — antimicrobial drug functions
|
||||
- `av.R` / `av_property.R` — antiviral drug functions
|
||||
- `sir.R` / `sir_calc.R` / `sir_df.R` — SIR classification engine
|
||||
- `mic.R` / `disk.R` — MIC and disk diffusion classes
|
||||
- `antibiogram.R` — antibiogram generation (traditional, combined,
|
||||
syndromic, WISCA)
|
||||
- `first_isolate.R` — first-isolate identification algorithms
|
||||
- `mdro.R` — MDRO classification (EUCAST, CLSI, CDC, custom guidelines)
|
||||
- `amr_selectors.R` — tidyselect helpers for selecting AMR columns
|
||||
- `interpretive_rules.R` / `custom_eucast_rules.R` — clinical
|
||||
interpretation rules
|
||||
- `translate.R` — 28-language translation system
|
||||
- `ggplot_sir.R` / `ggplot_pca.R` / `plotting.R` — visualisation
|
||||
functions
|
||||
|
||||
## Code Style
|
||||
|
||||
Follow the [tidyverse style guide](https://style.tidyverse.org/)
|
||||
precisely. Key rules:
|
||||
|
||||
- 2-space indentation; no tabs
|
||||
- `<-` for assignment, not `=`
|
||||
- Spaces around all binary operators and after commas; no spaces inside
|
||||
parentheses
|
||||
- When a function call must break across lines, place the first argument
|
||||
on a new line indented by 2 spaces, and put the closing `)` on its own
|
||||
line — **never align arguments to the opening parenthesis** (no
|
||||
hanging/forced mid-line indentation)
|
||||
|
||||
``` r
|
||||
|
||||
# good
|
||||
stop_(
|
||||
"some long message part one ",
|
||||
"part two"
|
||||
)
|
||||
|
||||
# bad — forces indentation to match the opening parenthesis
|
||||
stop_("some long message part one ",
|
||||
"part two")
|
||||
```
|
||||
|
||||
## Custom S3 Classes
|
||||
|
||||
The package defines five S3 classes with full print/format/plot/vctrs
|
||||
support:
|
||||
|
||||
| Class | Created by | Represents |
|
||||
|----|----|----|
|
||||
| `<mo>` | [`as.mo()`](https://amr-for-r.org/reference/as.mo.md) | Microorganism code |
|
||||
| `<ab>` | [`as.ab()`](https://amr-for-r.org/reference/as.ab.md) | Antimicrobial drug code |
|
||||
| `<av>` | [`as.av()`](https://amr-for-r.org/reference/as.av.md) | Antiviral drug code |
|
||||
| `<sir>` | [`as.sir()`](https://amr-for-r.org/reference/as.sir.md) | SIR value (S/I/R/SDD) |
|
||||
| `<mic>` | [`as.mic()`](https://amr-for-r.org/reference/as.mic.md) | Minimum inhibitory concentration |
|
||||
| `<disk>` | [`as.disk()`](https://amr-for-r.org/reference/as.disk.md) | Disk diffusion diameter |
|
||||
|
||||
## Data Files
|
||||
|
||||
Pre-compiled in `data/` (do not edit directly; regenerate via
|
||||
`data-raw/` scripts):
|
||||
|
||||
| File | Contents |
|
||||
|----------------------------|-----------------------------------------------|
|
||||
| `microorganisms.rda` | ~79,000 microbial species with full taxonomy |
|
||||
| `antimicrobials.rda` | ~620 antimicrobial drugs with ATC codes |
|
||||
| `antivirals.rda` | Antiviral drugs |
|
||||
| `clinical_breakpoints.rda` | EUCAST + CLSI breakpoints (2011–2025) |
|
||||
| `intrinsic_resistant.rda` | Intrinsic resistance patterns |
|
||||
| `example_isolates.rda` | Example AMR dataset for documentation/testing |
|
||||
| `WHONET.rda` | Example WHONET-format dataset |
|
||||
|
||||
## Zero-Dependency Design
|
||||
|
||||
The package has **no `Imports`** in `DESCRIPTION`. All optional
|
||||
integrations (ggplot2, dplyr, data.table, tidymodels, cli, crayon, etc.)
|
||||
are listed in `Suggests` and guarded with:
|
||||
|
||||
``` r
|
||||
|
||||
if (requireNamespace("pkg", quietly = TRUE)) { ... }
|
||||
```
|
||||
|
||||
Never add packages to `Imports`. If new functionality requires an
|
||||
external package, add it to `Suggests` and guard usage appropriately.
|
||||
|
||||
## Testing
|
||||
|
||||
- **Framework:** `testthat` (R ≥ 3.1); legacy `tinytest` used for R
|
||||
3.0–3.6 CI
|
||||
- **Test files:** `tests/testthat/test-*.R`
|
||||
- **Helpers:** `tests/testthat/helper-functions.R`
|
||||
- **CI matrix:** GitHub Actions across Windows / macOS / Linux × R devel
|
||||
/ release / oldrel-1 through oldrel-4
|
||||
- **Coverage:** `covr` (some files excluded: `atc_online.R`,
|
||||
`mo_source.R`, `translate.R`, `resistance_predict.R`,
|
||||
`zz_deprecated.R`, helper files, `zzz.R`)
|
||||
|
||||
## Documentation
|
||||
|
||||
- All exported functions use **roxygen2** blocks (`RoxygenNote: 7.3.3`,
|
||||
markdown enabled)
|
||||
- Run `devtools::document()` after any change to roxygen comments
|
||||
- Never edit files in `man/` directly — they are auto-generated
|
||||
- Vignettes live in `vignettes/` as `.Rmd` files
|
||||
- The pkgdown website is configured in `_pkgdown.yml`
|
||||
|
||||
## Versioning
|
||||
|
||||
Version format: `major.minor.patch.dev` (e.g., `3.0.1.9021`)
|
||||
|
||||
- Development versions use a `.9xxx` suffix
|
||||
- Stable CRAN releases drop the dev suffix (e.g., `3.0.1`)
|
||||
- `NEWS.md` uses sections **New**, **Fixes**, **Updates** with GitHub
|
||||
issue references (`#NNN`)
|
||||
|
||||
### Version and date bump required for every PR
|
||||
|
||||
All PRs are **squash-merged**, so each PR lands as exactly **one
|
||||
commit** on the default branch. Version numbers are kept in sync with
|
||||
the cumulative commit count since the last released tag. Therefore
|
||||
**exactly one version bump is allowed per PR**, regardless of how many
|
||||
intermediate commits are made on the branch.
|
||||
|
||||
#### Computing the correct version number
|
||||
|
||||
**First, ensure `git` and `gh` are installed** — both are required for
|
||||
the version computation and for pushing changes. Install them if missing
|
||||
before doing anything else:
|
||||
|
||||
``` bash
|
||||
which git || apt-get install -y git
|
||||
which gh || apt-get install -y gh
|
||||
# Also ensure all tags are fetched so git describe works
|
||||
git fetch --tags
|
||||
```
|
||||
|
||||
Then run the following from the repo root to determine the version
|
||||
string to use:
|
||||
|
||||
``` bash
|
||||
currenttag=$(git describe --tags --abbrev=0 | sed 's/v//')
|
||||
currenttagfull=$(git describe --tags --abbrev=0)
|
||||
defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$')
|
||||
git fetch origin ${defaultbranch} --quiet
|
||||
currentcommit=$(git rev-list --count ${currenttagfull}..origin/${defaultbranch})
|
||||
currentversion="${currenttag}.$((currentcommit + 9001 + 1))"
|
||||
echo "$currentversion"
|
||||
```
|
||||
|
||||
The `+ 1` accounts for the fact that this PR’s squash commit is not yet
|
||||
on the default branch. Set **both** of these files to the resulting
|
||||
version string (and only once per PR, even across multiple commits):
|
||||
|
||||
1. **`DESCRIPTION`** — the `Version:` field
|
||||
|
||||
2. **`NEWS.md`** — **only replace line 1** (the `# AMR <version>`
|
||||
heading) with the new version number; do **not** create a new
|
||||
section. `NEWS.md` is a **continuous log** for the entire current
|
||||
`x.y.z.9nnn` development series: all changes since the last stable
|
||||
release accumulate under that single heading. After updating line 1,
|
||||
append the new change as a bullet under the appropriate sub-heading
|
||||
(`### New`, `### Fixes`, or `### Updates`).
|
||||
|
||||
Style rules for `NEWS.md` entries:
|
||||
|
||||
- Be **extremely concise** — one short line per item
|
||||
- Do **not** end with a full stop (period)
|
||||
- No verbose explanations; just the essential fact
|
||||
|
||||
If `git describe` fails (e.g. no tags exist in the environment), fall
|
||||
back to reading the current version from `DESCRIPTION` and adding 1 to
|
||||
the last numeric component — but only if no bump has already been made
|
||||
in this PR.
|
||||
|
||||
#### Date field
|
||||
|
||||
The `Date:` field in `DESCRIPTION` must reflect the date of the **last
|
||||
commit to the PR** (not the first), in ISO format. Update it with every
|
||||
commit so it is always current:
|
||||
|
||||
Date: 2026-03-07
|
||||
|
||||
## Internal State
|
||||
|
||||
The package uses a private `AMR_env` environment (created in
|
||||
`aa_globals.R`) for caching expensive lookups (e.g., microorganism
|
||||
matching scores, breakpoint tables). This avoids re-computation within a
|
||||
session.
|
||||
@@ -1,16 +1,13 @@
|
||||
<!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>
|
||||
<!-- 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="96x96" href="favicon-96x96.png"><link rel="icon" type="”image/svg+xml”" href="favicon.svg"><link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png"><link rel="icon" sizes="any" href="favicon.ico"><link rel="manifest" href="site.webmanifest"><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.3.8/bootstrap.min.css" rel="stylesheet"><script src="deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="deps/Lato-0.4.10/font.css" rel="stylesheet"><link href="deps/Fira_Code-0.4.10/font.css" rel="stylesheet"><link href="deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet"><link href="deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet"><script src="deps/headroom-0.11.0/headroom.min.js"></script><script src="deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="deps/search-1.0.0/fuse.min.js"></script><script src="deps/search-1.0.0/mark.min.js"></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://amr-for-r.org/logo.svg"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous"><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script></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">
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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.9018</small>
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9091</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">
|
||||
@@ -18,103 +15,28 @@
|
||||
</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 class="navbar-nav me-auto"><li class="nav-item dropdown">
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to"><li><a class="dropdown-item" href="articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul></li>
|
||||
<li class="nav-item"><a class="nav-link" href="articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</ul><ul class="navbar-nav"><li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="search.json"></form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa fa-github"></span> Source Code</a></li>
|
||||
</ul></div>
|
||||
|
||||
|
||||
@@ -380,11 +302,11 @@ END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
<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>
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</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>
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer></div>
|
||||
|
||||
@@ -0,0 +1,250 @@
|
||||
# License
|
||||
|
||||
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
|
||||
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 750 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 72 KiB |
@@ -0,0 +1,713 @@
|
||||
<!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>AMR for Python • AMR (for R)</title>
|
||||
<!-- favicons --><link rel="icon" type="image/png" sizes="96x96" href="../favicon-96x96.png">
|
||||
<link rel="icon" type="”image/svg+xml”" href="../favicon.svg">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon.png">
|
||||
<link rel="icon" sizes="any" href="../favicon.ico">
|
||||
<link rel="manifest" href="../site.webmanifest">
|
||||
<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.3.8/bootstrap.min.css" rel="stylesheet">
|
||||
<script src="../deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="../deps/Lato-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/Fira_Code-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet">
|
||||
<script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||
<script src="../extra.js"></script><meta property="og:title" content="AMR for Python">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||
</head>
|
||||
<body>
|
||||
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||
|
||||
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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="">3.0.1.9091</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 dropdown">
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to">
|
||||
<li><a class="dropdown-item" href="../articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="active nav-item"><a class="nav-link" href="../articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</ul>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json">
|
||||
</form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="../news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa 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>AMR for Python</h1>
|
||||
|
||||
|
||||
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/vignettes/AMR_for_Python.Rmd" class="external-link"><code>vignettes/AMR_for_Python.Rmd</code></a></small>
|
||||
<div class="d-none name"><code>AMR_for_Python.Rmd</code></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section level2">
|
||||
<h2 id="introduction">Introduction<a class="anchor" aria-label="anchor" href="#introduction"></a>
|
||||
</h2>
|
||||
<p>The <code>AMR</code> 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 <a href="https://pypi.org/project/AMR/" class="external-link"><code>AMR</code> Python
|
||||
package</a>.</p>
|
||||
<p>This Python package is a wrapper around the <code>AMR</code> R
|
||||
package. It uses the <code>rpy2</code> package internally. Despite the
|
||||
need to have R installed, Python users can now easily work with AMR data
|
||||
directly through Python code.</p>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="prerequisites">Prerequisites<a class="anchor" aria-label="anchor" href="#prerequisites"></a>
|
||||
</h2>
|
||||
<p>This package was only tested with a <a href="https://docs.python.org/3/library/venv.html" class="external-link">virtual environment
|
||||
(venv)</a>. You can set up such an environment by running:</p>
|
||||
<div class="sourceCode" id="cb1"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb1-1"><a href="#cb1-1" tabindex="-1"></a><span class="co"># linux and macOS:</span></span>
|
||||
<span id="cb1-2"><a href="#cb1-2" tabindex="-1"></a>python <span class="op">-</span>m venv <span class="op">/</span>path<span class="op">/</span>to<span class="op">/</span>new<span class="op">/</span>virtual<span class="op">/</span>environment</span>
|
||||
<span id="cb1-3"><a href="#cb1-3" tabindex="-1"></a></span>
|
||||
<span id="cb1-4"><a href="#cb1-4" tabindex="-1"></a><span class="co"># Windows:</span></span>
|
||||
<span id="cb1-5"><a href="#cb1-5" tabindex="-1"></a>python <span class="op">-</span>m venv C:\path\to\new\virtual\environment</span></code></pre></div>
|
||||
<p>Then you can <a href="https://docs.python.org/3/library/venv.html#how-venvs-work" class="external-link">activate
|
||||
the environment</a>, after which the venv is ready to work with.</p>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="install-amr">Install AMR<a class="anchor" aria-label="anchor" href="#install-amr"></a>
|
||||
</h2>
|
||||
<ol style="list-style-type: decimal">
|
||||
<li>
|
||||
<p>Since the Python package is available on the official <a href="https://pypi.org/project/AMR/" class="external-link">Python Package Index</a>, you can
|
||||
just run:</p>
|
||||
<div class="sourceCode" id="cb2"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" tabindex="-1"></a><span class="ex">pip</span> install AMR</span></code></pre></div>
|
||||
</li>
|
||||
<li>
|
||||
<p>Make sure you have R installed. There is <strong>no need to
|
||||
install the <code>AMR</code> R package</strong>, as it will be installed
|
||||
automatically.</p>
|
||||
<p>For Linux:</p>
|
||||
<div class="sourceCode" id="cb3"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" tabindex="-1"></a><span class="co"># Ubuntu / Debian</span></span>
|
||||
<span id="cb3-2"><a href="#cb3-2" tabindex="-1"></a><span class="fu">sudo</span> apt install r-base</span>
|
||||
<span id="cb3-3"><a href="#cb3-3" tabindex="-1"></a><span class="co"># Fedora:</span></span>
|
||||
<span id="cb3-4"><a href="#cb3-4" tabindex="-1"></a><span class="fu">sudo</span> dnf install R</span>
|
||||
<span id="cb3-5"><a href="#cb3-5" tabindex="-1"></a><span class="co"># CentOS/RHEL</span></span>
|
||||
<span id="cb3-6"><a href="#cb3-6" tabindex="-1"></a><span class="fu">sudo</span> yum install R</span></code></pre></div>
|
||||
<p>For macOS (using <a href="https://brew.sh" class="external-link">Homebrew</a>):</p>
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" tabindex="-1"></a><span class="ex">brew</span> install r</span></code></pre></div>
|
||||
<p>For Windows, visit the <a href="https://cran.r-project.org" class="external-link">CRAN
|
||||
download page</a> to download and install R.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="examples-of-usage">Examples of Usage<a class="anchor" aria-label="anchor" href="#examples-of-usage"></a>
|
||||
</h2>
|
||||
<div class="section level3">
|
||||
<h3 id="cleaning-taxonomy">Cleaning Taxonomy<a class="anchor" aria-label="anchor" href="#cleaning-taxonomy"></a>
|
||||
</h3>
|
||||
<p>Here’s an example that demonstrates how to clean microorganism and
|
||||
drug names using the <code>AMR</code> Python package:</p>
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb5-1"><a href="#cb5-1" tabindex="-1"></a><span class="im">import</span> pandas <span class="im">as</span> pd</span>
|
||||
<span id="cb5-2"><a href="#cb5-2" tabindex="-1"></a><span class="im">import</span> AMR</span>
|
||||
<span id="cb5-3"><a href="#cb5-3" tabindex="-1"></a></span>
|
||||
<span id="cb5-4"><a href="#cb5-4" tabindex="-1"></a><span class="co"># Sample data</span></span>
|
||||
<span id="cb5-5"><a href="#cb5-5" tabindex="-1"></a>data <span class="op">=</span> {</span>
|
||||
<span id="cb5-6"><a href="#cb5-6" tabindex="-1"></a> <span class="st">"MOs"</span>: [<span class="st">'E. coli'</span>, <span class="st">'ESCCOL'</span>, <span class="st">'esco'</span>, <span class="st">'Esche coli'</span>],</span>
|
||||
<span id="cb5-7"><a href="#cb5-7" tabindex="-1"></a> <span class="st">"Drug"</span>: [<span class="st">'Cipro'</span>, <span class="st">'CIP'</span>, <span class="st">'J01MA02'</span>, <span class="st">'Ciproxin'</span>]</span>
|
||||
<span id="cb5-8"><a href="#cb5-8" tabindex="-1"></a>}</span>
|
||||
<span id="cb5-9"><a href="#cb5-9" tabindex="-1"></a>df <span class="op">=</span> pd.DataFrame(data)</span>
|
||||
<span id="cb5-10"><a href="#cb5-10" tabindex="-1"></a></span>
|
||||
<span id="cb5-11"><a href="#cb5-11" tabindex="-1"></a><span class="co"># Use AMR functions to clean microorganism and drug names</span></span>
|
||||
<span id="cb5-12"><a href="#cb5-12" tabindex="-1"></a>df[<span class="st">'MO_clean'</span>] <span class="op">=</span> AMR.mo_name(df[<span class="st">'MOs'</span>])</span>
|
||||
<span id="cb5-13"><a href="#cb5-13" tabindex="-1"></a>df[<span class="st">'Drug_clean'</span>] <span class="op">=</span> AMR.ab_name(df[<span class="st">'Drug'</span>])</span>
|
||||
<span id="cb5-14"><a href="#cb5-14" tabindex="-1"></a></span>
|
||||
<span id="cb5-15"><a href="#cb5-15" tabindex="-1"></a><span class="co"># Display the results</span></span>
|
||||
<span id="cb5-16"><a href="#cb5-16" tabindex="-1"></a><span class="bu">print</span>(df)</span></code></pre></div>
|
||||
<table class="table">
|
||||
<thead><tr class="header">
|
||||
<th>MOs</th>
|
||||
<th>Drug</th>
|
||||
<th>MO_clean</th>
|
||||
<th>Drug_clean</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>E. coli</td>
|
||||
<td>Cipro</td>
|
||||
<td>Escherichia coli</td>
|
||||
<td>Ciprofloxacin</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>ESCCOL</td>
|
||||
<td>CIP</td>
|
||||
<td>Escherichia coli</td>
|
||||
<td>Ciprofloxacin</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>esco</td>
|
||||
<td>J01MA02</td>
|
||||
<td>Escherichia coli</td>
|
||||
<td>Ciprofloxacin</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Esche coli</td>
|
||||
<td>Ciproxin</td>
|
||||
<td>Escherichia coli</td>
|
||||
<td>Ciprofloxacin</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="section level4">
|
||||
<h4 id="explanation">Explanation<a class="anchor" aria-label="anchor" href="#explanation"></a>
|
||||
</h4>
|
||||
<ul>
|
||||
<li><p><strong>mo_name:</strong> This function standardises
|
||||
microorganism names. Here, different variations of <em>Escherichia
|
||||
coli</em> (such as “E. coli”, “ESCCOL”, “esco”, and “Esche coli”) are
|
||||
all converted into the correct, standardised form, “Escherichia
|
||||
coli”.</p></li>
|
||||
<li><p><strong>ab_name</strong>: 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”.</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="calculating-amr">Calculating AMR<a class="anchor" aria-label="anchor" href="#calculating-amr"></a>
|
||||
</h3>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb6-1"><a href="#cb6-1" tabindex="-1"></a><span class="im">import</span> AMR</span>
|
||||
<span id="cb6-2"><a href="#cb6-2" tabindex="-1"></a><span class="im">import</span> pandas <span class="im">as</span> pd</span>
|
||||
<span id="cb6-3"><a href="#cb6-3" tabindex="-1"></a></span>
|
||||
<span id="cb6-4"><a href="#cb6-4" tabindex="-1"></a>df <span class="op">=</span> AMR.example_isolates</span>
|
||||
<span id="cb6-5"><a href="#cb6-5" tabindex="-1"></a>result <span class="op">=</span> AMR.resistance(df[<span class="st">"AMX"</span>])</span>
|
||||
<span id="cb6-6"><a href="#cb6-6" tabindex="-1"></a><span class="bu">print</span>(result)</span></code></pre></div>
|
||||
<pre><code>[0.59555556]</code></pre>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="generating-antibiograms">Generating Antibiograms<a class="anchor" aria-label="anchor" href="#generating-antibiograms"></a>
|
||||
</h3>
|
||||
<p>One of the core functions of the <code>AMR</code> 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:</p>
|
||||
<div class="sourceCode" id="cb8"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb8-1"><a href="#cb8-1" tabindex="-1"></a>result2a <span class="op">=</span> AMR.antibiogram(df[[<span class="st">"mo"</span>, <span class="st">"AMX"</span>, <span class="st">"CIP"</span>, <span class="st">"TZP"</span>]])</span>
|
||||
<span id="cb8-2"><a href="#cb8-2" tabindex="-1"></a><span class="bu">print</span>(result2a)</span></code></pre></div>
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col width="22%">
|
||||
<col width="22%">
|
||||
<col width="22%">
|
||||
<col width="33%">
|
||||
</colgroup>
|
||||
<thead><tr class="header">
|
||||
<th>Pathogen</th>
|
||||
<th>Amoxicillin</th>
|
||||
<th>Ciprofloxacin</th>
|
||||
<th>Piperacillin/tazobactam</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>CoNS</td>
|
||||
<td>7% (10/142)</td>
|
||||
<td>73% (183/252)</td>
|
||||
<td>30% (10/33)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>E. coli</td>
|
||||
<td>50% (196/392)</td>
|
||||
<td>88% (399/456)</td>
|
||||
<td>94% (393/416)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>K. pneumoniae</td>
|
||||
<td>0% (0/58)</td>
|
||||
<td>96% (53/55)</td>
|
||||
<td>89% (47/53)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>P. aeruginosa</td>
|
||||
<td>0% (0/30)</td>
|
||||
<td>100% (30/30)</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>P. mirabilis</td>
|
||||
<td>None</td>
|
||||
<td>94% (34/36)</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>S. aureus</td>
|
||||
<td>6% (8/131)</td>
|
||||
<td>90% (171/191)</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>S. epidermidis</td>
|
||||
<td>1% (1/91)</td>
|
||||
<td>64% (87/136)</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>S. hominis</td>
|
||||
<td>None</td>
|
||||
<td>80% (56/70)</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>S. pneumoniae</td>
|
||||
<td>100% (112/112)</td>
|
||||
<td>None</td>
|
||||
<td>100% (112/112)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="sourceCode" id="cb9"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb9-1"><a href="#cb9-1" tabindex="-1"></a>result2b <span class="op">=</span> AMR.antibiogram(df[[<span class="st">"mo"</span>, <span class="st">"AMX"</span>, <span class="st">"CIP"</span>, <span class="st">"TZP"</span>]], mo_transform <span class="op">=</span> <span class="st">"gramstain"</span>)</span>
|
||||
<span id="cb9-2"><a href="#cb9-2" tabindex="-1"></a><span class="bu">print</span>(result2b)</span></code></pre></div>
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col width="20%">
|
||||
<col width="22%">
|
||||
<col width="23%">
|
||||
<col width="33%">
|
||||
</colgroup>
|
||||
<thead><tr class="header">
|
||||
<th>Pathogen</th>
|
||||
<th>Amoxicillin</th>
|
||||
<th>Ciprofloxacin</th>
|
||||
<th>Piperacillin/tazobactam</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Gram-negative</td>
|
||||
<td>36% (226/631)</td>
|
||||
<td>91% (621/684)</td>
|
||||
<td>88% (565/641)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Gram-positive</td>
|
||||
<td>43% (305/703)</td>
|
||||
<td>77% (560/724)</td>
|
||||
<td>86% (296/345)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>In this example, we generate an antibiogram by selecting various
|
||||
antibiotics.</p>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="taxonomic-data-sets-now-in-python">Taxonomic Data Sets Now in Python!<a class="anchor" aria-label="anchor" href="#taxonomic-data-sets-now-in-python"></a>
|
||||
</h3>
|
||||
<p>As a Python user, you might like that the most important data sets of
|
||||
the <code>AMR</code> R package, <code>microorganisms</code>,
|
||||
<code>antimicrobials</code>, <code>clinical_breakpoints</code>, and
|
||||
<code>example_isolates</code>, are now available as regular Python data
|
||||
frames:</p>
|
||||
<div class="sourceCode" id="cb10"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb10-1"><a href="#cb10-1" tabindex="-1"></a>AMR.microorganisms</span></code></pre></div>
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col width="11%">
|
||||
<col width="29%">
|
||||
<col width="8%">
|
||||
<col width="8%">
|
||||
<col width="8%">
|
||||
<col width="10%">
|
||||
<col width="13%">
|
||||
<col width="9%">
|
||||
</colgroup>
|
||||
<thead><tr class="header">
|
||||
<th>mo</th>
|
||||
<th>fullname</th>
|
||||
<th>status</th>
|
||||
<th>kingdom</th>
|
||||
<th>gbif</th>
|
||||
<th>gbif_parent</th>
|
||||
<th>gbif_renamed_to</th>
|
||||
<th>prevalence</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>B_GRAMN</td>
|
||||
<td>(unknown Gram-negatives)</td>
|
||||
<td>unknown</td>
|
||||
<td>Bacteria</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>B_GRAMP</td>
|
||||
<td>(unknown Gram-positives)</td>
|
||||
<td>unknown</td>
|
||||
<td>Bacteria</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>B_ANAER-NEG</td>
|
||||
<td>(unknown anaerobic Gram-negatives)</td>
|
||||
<td>unknown</td>
|
||||
<td>Bacteria</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>B_ANAER-POS</td>
|
||||
<td>(unknown anaerobic Gram-positives)</td>
|
||||
<td>unknown</td>
|
||||
<td>Bacteria</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>B_ANAER</td>
|
||||
<td>(unknown anaerobic bacteria)</td>
|
||||
<td>unknown</td>
|
||||
<td>Bacteria</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>B_ZYMMN_POMC</td>
|
||||
<td>Zymomonas pomaceae</td>
|
||||
<td>accepted</td>
|
||||
<td>Bacteria</td>
|
||||
<td>10744418</td>
|
||||
<td>3221412</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>B_ZYMPH</td>
|
||||
<td>Zymophilus</td>
|
||||
<td>synonym</td>
|
||||
<td>Bacteria</td>
|
||||
<td>None</td>
|
||||
<td>9475166</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>B_ZYMPH_PCVR</td>
|
||||
<td>Zymophilus paucivorans</td>
|
||||
<td>synonym</td>
|
||||
<td>Bacteria</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>B_ZYMPH_RFFN</td>
|
||||
<td>Zymophilus raffinosivorans</td>
|
||||
<td>synonym</td>
|
||||
<td>Bacteria</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>F_ZYZYG</td>
|
||||
<td>Zyzygomyces</td>
|
||||
<td>unknown</td>
|
||||
<td>Fungi</td>
|
||||
<td>None</td>
|
||||
<td>7581</td>
|
||||
<td>None</td>
|
||||
<td>2.0</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="sourceCode" id="cb11"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb11-1"><a href="#cb11-1" tabindex="-1"></a>AMR.antimicrobials</span></code></pre></div>
|
||||
<table style="width:100%;" class="table">
|
||||
<colgroup>
|
||||
<col width="4%">
|
||||
<col width="12%">
|
||||
<col width="20%">
|
||||
<col width="25%">
|
||||
<col width="9%">
|
||||
<col width="11%">
|
||||
<col width="7%">
|
||||
<col width="9%">
|
||||
</colgroup>
|
||||
<thead><tr class="header">
|
||||
<th>ab</th>
|
||||
<th>cid</th>
|
||||
<th>name</th>
|
||||
<th>group</th>
|
||||
<th>oral_ddd</th>
|
||||
<th>oral_units</th>
|
||||
<th>iv_ddd</th>
|
||||
<th>iv_units</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>AMA</td>
|
||||
<td>4649.0</td>
|
||||
<td>4-aminosalicylic acid</td>
|
||||
<td>Antimycobacterials</td>
|
||||
<td>12.00</td>
|
||||
<td>g</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>ACM</td>
|
||||
<td>6450012.0</td>
|
||||
<td>Acetylmidecamycin</td>
|
||||
<td>Macrolides/lincosamides</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>ASP</td>
|
||||
<td>49787020.0</td>
|
||||
<td>Acetylspiramycin</td>
|
||||
<td>Macrolides/lincosamides</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>ALS</td>
|
||||
<td>8954.0</td>
|
||||
<td>Aldesulfone sodium</td>
|
||||
<td>Other antibacterials</td>
|
||||
<td>0.33</td>
|
||||
<td>g</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>AMK</td>
|
||||
<td>37768.0</td>
|
||||
<td>Amikacin</td>
|
||||
<td>Aminoglycosides</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
<td>1.0</td>
|
||||
<td>g</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
<td>…</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>VIR</td>
|
||||
<td>11979535.0</td>
|
||||
<td>Virginiamycine</td>
|
||||
<td>Other antibacterials</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>VOR</td>
|
||||
<td>71616.0</td>
|
||||
<td>Voriconazole</td>
|
||||
<td>Antifungals/antimycotics</td>
|
||||
<td>0.40</td>
|
||||
<td>g</td>
|
||||
<td>0.4</td>
|
||||
<td>g</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>XBR</td>
|
||||
<td>72144.0</td>
|
||||
<td>Xibornol</td>
|
||||
<td>Other antibacterials</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>ZID</td>
|
||||
<td>77846445.0</td>
|
||||
<td>Zidebactam</td>
|
||||
<td>Other antibacterials</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>ZFD</td>
|
||||
<td>NaN</td>
|
||||
<td>Zoliflodacin</td>
|
||||
<td>None</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
<td>NaN</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="installation-channels">Installation Channels<a class="anchor" aria-label="anchor" href="#installation-channels"></a>
|
||||
</h2>
|
||||
<div class="section level3">
|
||||
<h3 id="stable-release-cran">Stable Release (CRAN)<a class="anchor" aria-label="anchor" href="#stable-release-cran"></a>
|
||||
</h3>
|
||||
<p>The default <code>AMR</code> Python package uses the latest stable
|
||||
version of the <code>AMR</code> R package, published on CRAN. After
|
||||
running <code>pip install AMR</code>, import it as usual:</p>
|
||||
<div class="sourceCode" id="cb12"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb12-1"><a href="#cb12-1" tabindex="-1"></a><span class="im">import</span> AMR</span>
|
||||
<span id="cb12-2"><a href="#cb12-2" tabindex="-1"></a></span>
|
||||
<span id="cb12-3"><a href="#cb12-3" tabindex="-1"></a>AMR.example_isolates</span></code></pre></div>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="development-version-github">Development Version (GitHub)<a class="anchor" aria-label="anchor" href="#development-version-github"></a>
|
||||
</h3>
|
||||
<p>To use the latest development version of the <code>AMR</code> R
|
||||
package (sourced directly from GitHub), import the <code>beta</code>
|
||||
sub-package and alias it as <code>AMR</code>:</p>
|
||||
<div class="sourceCode" id="cb13"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb13-1"><a href="#cb13-1" tabindex="-1"></a><span class="im">import</span> AMR.beta <span class="im">as</span> AMR</span>
|
||||
<span id="cb13-2"><a href="#cb13-2" tabindex="-1"></a></span>
|
||||
<span id="cb13-3"><a href="#cb13-3" tabindex="-1"></a>AMR.example_isolates</span></code></pre></div>
|
||||
<p>Aliasing with <code>as AMR</code> 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.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="sir-classification-with-as_sir">SIR Classification with <code>as_sir()</code><a class="anchor" aria-label="anchor" href="#sir-classification-with-as_sir"></a>
|
||||
</h2>
|
||||
<div class="section level3">
|
||||
<h3 id="using-enforce_method">Using <code>enforce_method</code><a class="anchor" aria-label="anchor" href="#using-enforce_method"></a>
|
||||
</h3>
|
||||
<p>The <code>as_sir()</code> function in R uses S3 method dispatch to
|
||||
select the correct calculation method based on the input class:
|
||||
<code><mic></code> for MIC values and <code><disk></code>
|
||||
for disk diffusion values. Because Python objects do not carry R class
|
||||
attributes through the <code>rpy2</code> bridge, this automatic dispatch
|
||||
may not resolve correctly.</p>
|
||||
<p>To explicitly specify the input type, use the
|
||||
<code>enforce_method</code> argument:</p>
|
||||
<div class="sourceCode" id="cb14"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb14-1"><a href="#cb14-1" tabindex="-1"></a><span class="co"># Treat the column as MIC values — maps to R's as.sir.mic()</span></span>
|
||||
<span id="cb14-2"><a href="#cb14-2" tabindex="-1"></a>AMR.as_sir(df[<span class="st">"MIC_col"</span>], mo<span class="op">=</span><span class="st">"E. coli"</span>, ab<span class="op">=</span><span class="st">"AMX"</span>, guideline<span class="op">=</span><span class="st">"EUCAST"</span>, enforce_method<span class="op">=</span><span class="st">"mic"</span>)</span>
|
||||
<span id="cb14-3"><a href="#cb14-3" tabindex="-1"></a></span>
|
||||
<span id="cb14-4"><a href="#cb14-4" tabindex="-1"></a><span class="co"># Treat the column as disk diffusion values — maps to R's as.sir.disk()</span></span>
|
||||
<span id="cb14-5"><a href="#cb14-5" tabindex="-1"></a>AMR.as_sir(df[<span class="st">"disk_col"</span>], mo<span class="op">=</span><span class="st">"E. coli"</span>, ab<span class="op">=</span><span class="st">"AMX"</span>, guideline<span class="op">=</span><span class="st">"EUCAST"</span>, enforce_method<span class="op">=</span><span class="st">"disk"</span>)</span></code></pre></div>
|
||||
<p>Without <code>enforce_method</code>, R falls back to class-based
|
||||
dispatch on the raw Python input, which may fail or return unexpected
|
||||
results. Always supply <code>enforce_method</code> when calling
|
||||
<code>as_sir()</code> from Python.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="conclusion">Conclusion<a class="anchor" aria-label="anchor" href="#conclusion"></a>
|
||||
</h2>
|
||||
<p>With the <code>AMR</code> Python package, Python users can now
|
||||
effortlessly call R functions from the <code>AMR</code> R package. This
|
||||
eliminates the need for complex <code>rpy2</code> 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.</p>
|
||||
<p>By just running <code>import AMR</code>, users can seamlessly
|
||||
integrate the robust features of the R <code>AMR</code> package into
|
||||
Python workflows.</p>
|
||||
<p>Whether you’re cleaning data or analysing resistance patterns, the
|
||||
<code>AMR</code> Python package makes it easy to work with AMR data in
|
||||
Python.</p>
|
||||
</div>
|
||||
</main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2>
|
||||
</nav></aside>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<footer><div class="pkgdown-footer-left">
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</a>.</p>
|
||||
</div>
|
||||
|
||||
<div class="pkgdown-footer-right">
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,272 @@
|
||||
# AMR for Python
|
||||
|
||||
## Introduction
|
||||
|
||||
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.
|
||||
@@ -0,0 +1,899 @@
|
||||
# AMR with tidymodels
|
||||
|
||||
> This page was almost entirely written by our [AMR for R
|
||||
> Assistant](https://chat.amr-for-r.org), a ChatGPT manually-trained
|
||||
> model able to answer any question about the `AMR` package.
|
||||
|
||||
Antimicrobial resistance (AMR) is a global health crisis, and
|
||||
understanding resistance patterns is crucial for managing effective
|
||||
treatments. The `AMR` R package provides robust tools for analysing AMR
|
||||
data, including convenient antimicrobial selector functions like
|
||||
[`aminoglycosides()`](https://amr-for-r.org/reference/antimicrobial_selectors.md)
|
||||
and
|
||||
[`betalactams()`](https://amr-for-r.org/reference/antimicrobial_selectors.md).
|
||||
|
||||
In this post, we will explore how to use the `tidymodels` framework to
|
||||
predict resistance patterns in the `example_isolates` dataset in two
|
||||
examples.
|
||||
|
||||
This post contains the following examples:
|
||||
|
||||
1. Using Antimicrobial Selectors
|
||||
2. Predicting ESBL Presence Using Raw MICs
|
||||
3. Predicting AMR Over Time
|
||||
|
||||
## Example 1: Using Antimicrobial Selectors
|
||||
|
||||
By leveraging the power of `tidymodels` and the `AMR` package, we’ll
|
||||
build a reproducible machine learning workflow to predict the Gramstain
|
||||
of the microorganism to two important antibiotic classes:
|
||||
aminoglycosides and beta-lactams.
|
||||
|
||||
### **Objective**
|
||||
|
||||
Our goal is to build a predictive model using the `tidymodels` framework
|
||||
to determine the Gramstain of the microorganism based on microbial data.
|
||||
We will:
|
||||
|
||||
1. Preprocess data using the selector functions
|
||||
[`aminoglycosides()`](https://amr-for-r.org/reference/antimicrobial_selectors.md)
|
||||
and
|
||||
[`betalactams()`](https://amr-for-r.org/reference/antimicrobial_selectors.md).
|
||||
2. Define a logistic regression model for prediction.
|
||||
3. Use a structured `tidymodels` workflow to preprocess, train, and
|
||||
evaluate the model.
|
||||
|
||||
### **Data Preparation**
|
||||
|
||||
We begin by loading the required libraries and preparing the
|
||||
`example_isolates` dataset from the `AMR` package.
|
||||
|
||||
``` r
|
||||
|
||||
# Load required libraries
|
||||
library(AMR) # For AMR data analysis
|
||||
library(tidymodels) # For machine learning workflows, and data manipulation (dplyr, tidyr, ...)
|
||||
```
|
||||
|
||||
Prepare the data:
|
||||
|
||||
``` r
|
||||
|
||||
# Your data could look like this:
|
||||
example_isolates
|
||||
#> # A tibble: 2,000 × 46
|
||||
#> date patient age gender ward mo PEN OXA FLC AMX
|
||||
#> <date> <chr> <dbl> <chr> <chr> <mo> <sir> <sir> <sir> <sir>
|
||||
#> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA
|
||||
#> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA
|
||||
#> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R
|
||||
#> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R
|
||||
#> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA
|
||||
#> # ℹ 1,990 more rows
|
||||
#> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>,
|
||||
#> # CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>,
|
||||
#> # TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>,
|
||||
#> # FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>,
|
||||
#> # TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>,
|
||||
#> # IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …
|
||||
|
||||
# Select relevant columns for prediction
|
||||
data <- example_isolates %>%
|
||||
# select AB results dynamically
|
||||
select(mo, aminoglycosides(), betalactams()) %>%
|
||||
# replace NAs with NI (not-interpretable)
|
||||
mutate(
|
||||
across(
|
||||
where(is.sir),
|
||||
~ replace_na(.x, "NI")
|
||||
),
|
||||
# make factors of SIR columns
|
||||
across(
|
||||
where(is.sir),
|
||||
as.integer
|
||||
),
|
||||
# get Gramstain of microorganisms
|
||||
mo = as.factor(mo_gramstain(mo))
|
||||
) %>%
|
||||
# drop NAs - the ones without a Gramstain (fungi, etc.)
|
||||
drop_na()
|
||||
#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK
|
||||
#> (amikacin), and KAN (kanamycin)
|
||||
#> ℹ For `betalactams()` using columns PEN (benzylpenicillin), OXA (oxacillin),
|
||||
#> FLC (flucloxacillin), AMX (amoxicillin), AMC (amoxicillin/clavulanic acid),
|
||||
#> AMP (ampicillin), TZP (piperacillin/tazobactam), CZO (cefazolin), FEP
|
||||
#> (cefepime), CXM (cefuroxime), FOX (cefoxitin), CTX (cefotaxime), CAZ
|
||||
#> (ceftazidime), CRO (ceftriaxone), IPM (imipenem), and MEM (meropenem)
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- [`aminoglycosides()`](https://amr-for-r.org/reference/antimicrobial_selectors.md)
|
||||
and
|
||||
[`betalactams()`](https://amr-for-r.org/reference/antimicrobial_selectors.md)
|
||||
dynamically select columns for antimicrobials in these classes.
|
||||
- `drop_na()` ensures the model receives complete cases for training.
|
||||
|
||||
### **Defining the Workflow**
|
||||
|
||||
We now define the `tidymodels` workflow, which consists of three steps:
|
||||
preprocessing, model specification, and fitting.
|
||||
|
||||
#### 1. Preprocessing with a Recipe
|
||||
|
||||
We create a recipe to preprocess the data for modelling.
|
||||
|
||||
``` r
|
||||
|
||||
# Define the recipe for data preprocessing
|
||||
resistance_recipe <- recipe(mo ~ ., data = data) %>%
|
||||
step_corr(c(aminoglycosides(), betalactams()), threshold = 0.9)
|
||||
resistance_recipe
|
||||
#>
|
||||
#> ── Recipe ──────────────────────────────────────────────────────────────────────
|
||||
#>
|
||||
#> ── Inputs
|
||||
#> Number of variables by role
|
||||
#> outcome: 1
|
||||
#> predictor: 20
|
||||
#>
|
||||
#> ── Operations
|
||||
#> • Correlation filter on: c(aminoglycosides(), betalactams())
|
||||
```
|
||||
|
||||
For a recipe that includes at least one preprocessing operation, like we
|
||||
have with `step_corr()`, the necessary parameters can be estimated from
|
||||
a training set using `prep()`:
|
||||
|
||||
``` r
|
||||
|
||||
prep(resistance_recipe)
|
||||
#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK
|
||||
#> (amikacin), and KAN (kanamycin)
|
||||
#> ℹ For `betalactams()` using columns PEN (benzylpenicillin), OXA (oxacillin),
|
||||
#> FLC (flucloxacillin), AMX (amoxicillin), AMC (amoxicillin/clavulanic acid),
|
||||
#> AMP (ampicillin), TZP (piperacillin/tazobactam), CZO (cefazolin), FEP
|
||||
#> (cefepime), CXM (cefuroxime), FOX (cefoxitin), CTX (cefotaxime), CAZ
|
||||
#> (ceftazidime), CRO (ceftriaxone), IPM (imipenem), and MEM (meropenem)
|
||||
#>
|
||||
#>
|
||||
#> ── Recipe ──────────────────────────────────────────────────────────────────────
|
||||
#>
|
||||
#>
|
||||
#>
|
||||
#> ── Inputs
|
||||
#>
|
||||
#> Number of variables by role
|
||||
#>
|
||||
#> outcome: 1
|
||||
#> predictor: 20
|
||||
#>
|
||||
#>
|
||||
#>
|
||||
#> ── Training information
|
||||
#>
|
||||
#> Training data contained 1968 data points and no incomplete rows.
|
||||
#>
|
||||
#>
|
||||
#>
|
||||
#> ── Operations
|
||||
#>
|
||||
#> • Correlation filter on: AMX CTX | Trained
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `recipe(mo ~ ., data = data)` will take the `mo` column as outcome and
|
||||
all other columns as predictors.
|
||||
- `step_corr()` removes predictors (i.e., antibiotic columns) that have
|
||||
a higher correlation than 90%.
|
||||
|
||||
Notice how the recipe contains just the antimicrobial selector
|
||||
functions - no need to define the columns specifically. In the
|
||||
preparation (retrieved with `prep()`) we can see that the columns or
|
||||
variables ‘AMX’ and ‘CTX’ were removed as they correlate too much with
|
||||
existing, other variables.
|
||||
|
||||
#### 2. Specifying the Model
|
||||
|
||||
We define a logistic regression model since resistance prediction is a
|
||||
binary classification task.
|
||||
|
||||
``` r
|
||||
|
||||
# Specify a logistic regression model
|
||||
logistic_model <- logistic_reg() %>%
|
||||
set_engine("glm") # Use the Generalised Linear Model engine
|
||||
logistic_model
|
||||
#> Logistic Regression Model Specification (classification)
|
||||
#>
|
||||
#> Computational engine: glm
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `logistic_reg()` sets up a logistic regression model.
|
||||
- `set_engine("glm")` specifies the use of R’s built-in GLM engine.
|
||||
|
||||
#### 3. Building the Workflow
|
||||
|
||||
We bundle the recipe and model together into a `workflow`, which
|
||||
organises the entire modelling process.
|
||||
|
||||
``` r
|
||||
|
||||
# Combine the recipe and model into a workflow
|
||||
resistance_workflow <- workflow() %>%
|
||||
add_recipe(resistance_recipe) %>% # Add the preprocessing recipe
|
||||
add_model(logistic_model) # Add the logistic regression model
|
||||
resistance_workflow
|
||||
#> ══ Workflow ════════════════════════════════════════════════════════════════════
|
||||
#> Preprocessor: Recipe
|
||||
#> Model: logistic_reg()
|
||||
#>
|
||||
#> ── Preprocessor ────────────────────────────────────────────────────────────────
|
||||
#> 1 Recipe Step
|
||||
#>
|
||||
#> • step_corr()
|
||||
#>
|
||||
#> ── Model ───────────────────────────────────────────────────────────────────────
|
||||
#> Logistic Regression Model Specification (classification)
|
||||
#>
|
||||
#> Computational engine: glm
|
||||
```
|
||||
|
||||
### **Training and Evaluating the Model**
|
||||
|
||||
To train the model, we split the data into training and testing sets.
|
||||
Then, we fit the workflow on the training set and evaluate its
|
||||
performance.
|
||||
|
||||
``` r
|
||||
|
||||
# Split data into training and testing sets
|
||||
set.seed(123) # For reproducibility
|
||||
data_split <- initial_split(data, prop = 0.8) # 80% training, 20% testing
|
||||
training_data <- training(data_split) # Training set
|
||||
testing_data <- testing(data_split) # Testing set
|
||||
|
||||
# Fit the workflow to the training data
|
||||
fitted_workflow <- resistance_workflow %>%
|
||||
fit(training_data) # Train the model
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `initial_split()` splits the data into training and testing sets.
|
||||
- `fit()` trains the workflow on the training set.
|
||||
|
||||
Notice how in `fit()`, the antimicrobial selector functions are
|
||||
internally called again. For training, these functions are called since
|
||||
they are stored in the recipe.
|
||||
|
||||
Next, we evaluate the model on the testing data.
|
||||
|
||||
``` r
|
||||
|
||||
# Make predictions on the testing set
|
||||
predictions <- fitted_workflow %>%
|
||||
predict(testing_data) # Generate predictions
|
||||
probabilities <- fitted_workflow %>%
|
||||
predict(testing_data, type = "prob") # Generate probabilities
|
||||
|
||||
predictions <- predictions %>%
|
||||
bind_cols(probabilities) %>%
|
||||
bind_cols(testing_data) # Combine with true labels
|
||||
|
||||
predictions
|
||||
#> # A tibble: 394 × 24
|
||||
#> .pred_class `.pred_Gram-negative` `.pred_Gram-positive` mo GEN TOB
|
||||
#> <fct> <dbl> <dbl> <fct> <int> <int>
|
||||
#> 1 Gram-positive 1.07e- 1 8.93 e- 1 Gram-p… 5 5
|
||||
#> 2 Gram-positive 3.17e- 8 1.000e+ 0 Gram-p… 5 1
|
||||
#> 3 Gram-negative 9.99e- 1 1.42 e- 3 Gram-n… 5 5
|
||||
#> 4 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 5 5
|
||||
#> 5 Gram-negative 9.46e- 1 5.42 e- 2 Gram-n… 5 5
|
||||
#> 6 Gram-positive 1.07e- 1 8.93 e- 1 Gram-p… 5 5
|
||||
#> 7 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 1 5
|
||||
#> 8 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 4 4
|
||||
#> 9 Gram-negative 1 e+ 0 2.22 e-16 Gram-n… 1 1
|
||||
#> 10 Gram-positive 6.05e-11 1.000e+ 0 Gram-p… 4 4
|
||||
#> # ℹ 384 more rows
|
||||
#> # ℹ 18 more variables: AMK <int>, KAN <int>, PEN <int>, OXA <int>, FLC <int>,
|
||||
#> # AMX <int>, AMC <int>, AMP <int>, TZP <int>, CZO <int>, FEP <int>,
|
||||
#> # CXM <int>, FOX <int>, CTX <int>, CAZ <int>, CRO <int>, IPM <int>, MEM <int>
|
||||
|
||||
# Evaluate model performance
|
||||
metrics <- predictions %>%
|
||||
metrics(truth = mo, estimate = .pred_class) # Calculate performance metrics
|
||||
|
||||
metrics
|
||||
#> # A tibble: 2 × 3
|
||||
#> .metric .estimator .estimate
|
||||
#> <chr> <chr> <dbl>
|
||||
#> 1 accuracy binary 0.995
|
||||
#> 2 kap binary 0.989
|
||||
|
||||
|
||||
# To assess some other model properties, you can make our own `metrics()` function
|
||||
our_metrics <- metric_set(accuracy, kap, ppv, npv) # add Positive Predictive Value and Negative Predictive Value
|
||||
metrics2 <- predictions %>%
|
||||
our_metrics(truth = mo, estimate = .pred_class) # run again on our `our_metrics()` function
|
||||
|
||||
metrics2
|
||||
#> # A tibble: 4 × 3
|
||||
#> .metric .estimator .estimate
|
||||
#> <chr> <chr> <dbl>
|
||||
#> 1 accuracy binary 0.995
|
||||
#> 2 kap binary 0.989
|
||||
#> 3 ppv binary 0.987
|
||||
#> 4 npv binary 1
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- [`predict()`](https://rdrr.io/r/stats/predict.html) generates
|
||||
predictions on the testing set.
|
||||
- `metrics()` computes evaluation metrics like accuracy and kappa.
|
||||
|
||||
It appears we can predict the Gram stain with a 99.5% accuracy based on
|
||||
AMR results of only aminoglycosides and beta-lactam antibiotics. The ROC
|
||||
curve looks like this:
|
||||
|
||||
``` r
|
||||
|
||||
predictions %>%
|
||||
roc_curve(mo, `.pred_Gram-negative`) %>%
|
||||
autoplot()
|
||||
```
|
||||
|
||||

|
||||
|
||||
### **Conclusion**
|
||||
|
||||
In this example, we demonstrated how to build a machine learning
|
||||
pipeline with the `tidymodels` framework and the `AMR` package. By
|
||||
combining selector functions like
|
||||
[`aminoglycosides()`](https://amr-for-r.org/reference/antimicrobial_selectors.md)
|
||||
and
|
||||
[`betalactams()`](https://amr-for-r.org/reference/antimicrobial_selectors.md)
|
||||
with `tidymodels`, we efficiently prepared data, trained a model, and
|
||||
evaluated its performance.
|
||||
|
||||
This workflow is extensible to other antimicrobial classes and
|
||||
resistance patterns, empowering users to analyse AMR data systematically
|
||||
and reproducibly.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Example 2: Predicting ESBL Presence Using Raw MICs
|
||||
|
||||
In this second example, we demonstrate how to use `<mic>` columns
|
||||
directly in `tidymodels` workflows using AMR-specific recipe steps. This
|
||||
includes a transformation to `log2` scale using
|
||||
[`step_mic_log2()`](https://amr-for-r.org/reference/amr-tidymodels.md),
|
||||
which prepares MIC values for use in classification models.
|
||||
|
||||
This approach and idea formed the basis for the publication [DOI:
|
||||
10.3389/fmicb.2025.1582703](https://doi.org/10.3389/fmicb.2025.1582703)
|
||||
to model the presence of extended-spectrum beta-lactamases (ESBL) based
|
||||
on MIC values.
|
||||
|
||||
### **Objective**
|
||||
|
||||
Our goal is to:
|
||||
|
||||
1. Use raw MIC values to predict whether a bacterial isolate produces
|
||||
ESBL.
|
||||
2. Apply AMR-aware preprocessing in a `tidymodels` recipe.
|
||||
3. Train a classification model and evaluate its predictive
|
||||
performance.
|
||||
|
||||
### **Data Preparation**
|
||||
|
||||
We use the `esbl_isolates` dataset that comes with the AMR package.
|
||||
|
||||
``` r
|
||||
|
||||
# Load required libraries
|
||||
library(AMR)
|
||||
library(tidymodels)
|
||||
|
||||
# View the esbl_isolates data set
|
||||
esbl_isolates
|
||||
#> # A tibble: 500 × 19
|
||||
#> esbl genus AMC AMP TZP CXM FOX CTX CAZ GEN TOB TMP SXT
|
||||
#> <lgl> <chr> <mic> <mic> <mic> <mic> <mic> <mic> <mic> <mic> <mic> <mic> <mic>
|
||||
#> 1 FALSE Esch… 32 32 4 64 64 8.00 8.00 1 1 16.0 20
|
||||
#> 2 FALSE Esch… 32 32 4 64 64 4.00 8.00 1 1 16.0 320
|
||||
#> 3 FALSE Esch… 4 2 64 8 4 8.00 0.12 16 16 0.5 20
|
||||
#> 4 FALSE Kleb… 32 32 16 64 64 8.00 8.00 1 1 0.5 20
|
||||
#> 5 FALSE Esch… 32 32 4 4 4 0.25 2.00 1 1 16.0 320
|
||||
#> 6 FALSE Citr… 32 32 16 64 64 64.00 32.00 1 1 0.5 20
|
||||
#> 7 FALSE Morg… 32 32 4 64 64 16.00 2.00 1 1 0.5 20
|
||||
#> 8 FALSE Prot… 16 32 4 1 4 8.00 0.12 1 1 16.0 320
|
||||
#> 9 FALSE Ente… 32 32 8 64 64 32.00 4.00 1 1 0.5 20
|
||||
#> 10 FALSE Citr… 32 32 32 64 64 8.00 64.00 1 1 16.0 320
|
||||
#> # ℹ 490 more rows
|
||||
#> # ℹ 6 more variables: NIT <mic>, FOS <mic>, CIP <mic>, IPM <mic>, MEM <mic>,
|
||||
#> # COL <mic>
|
||||
|
||||
# Prepare a binary outcome and convert to ordered factor
|
||||
data <- esbl_isolates %>%
|
||||
mutate(esbl = factor(esbl, levels = c(FALSE, TRUE), ordered = TRUE))
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `esbl_isolates`: Contains MIC test results and ESBL status for each
|
||||
isolate.
|
||||
- `mutate(esbl = ...)`: Converts the target column to an ordered factor
|
||||
for classification.
|
||||
|
||||
### **Defining the Workflow**
|
||||
|
||||
#### 1. Preprocessing with a Recipe
|
||||
|
||||
We use our
|
||||
[`step_mic_log2()`](https://amr-for-r.org/reference/amr-tidymodels.md)
|
||||
function to log2-transform MIC values, ensuring that MICs are numeric
|
||||
and properly scaled. All MIC predictors can easily and agnostically
|
||||
selected using the new
|
||||
[`all_mic_predictors()`](https://amr-for-r.org/reference/amr-tidymodels.md):
|
||||
|
||||
``` r
|
||||
|
||||
# Split into training and testing sets
|
||||
set.seed(123)
|
||||
split <- initial_split(data)
|
||||
training_data <- training(split)
|
||||
testing_data <- testing(split)
|
||||
|
||||
# Define the recipe
|
||||
mic_recipe <- recipe(esbl ~ ., data = training_data) %>%
|
||||
remove_role(genus, old_role = "predictor") %>% # Remove non-informative variable
|
||||
step_mic_log2(all_mic_predictors()) # Log2 transform all MIC predictors
|
||||
|
||||
prep(mic_recipe)
|
||||
#>
|
||||
#> ── Recipe ──────────────────────────────────────────────────────────────────────
|
||||
#>
|
||||
#> ── Inputs
|
||||
#> Number of variables by role
|
||||
#> outcome: 1
|
||||
#> predictor: 17
|
||||
#> undeclared role: 1
|
||||
#>
|
||||
#> ── Training information
|
||||
#> Training data contained 375 data points and no incomplete rows.
|
||||
#>
|
||||
#> ── Operations
|
||||
#> • Log2 transformation of MIC columns: AMC, AMP, TZP, CXM, FOX, ... | Trained
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `remove_role()`: Removes irrelevant variables like genus.
|
||||
- [`step_mic_log2()`](https://amr-for-r.org/reference/amr-tidymodels.md):
|
||||
Applies `log2(as.numeric(...))` to all MIC predictors in one go.
|
||||
- `prep()`: Finalises the recipe based on training data.
|
||||
|
||||
#### 2. Specifying the Model
|
||||
|
||||
We use a simple logistic regression to model ESBL presence, though
|
||||
recent models such as xgboost ([link to `parsnip`
|
||||
manual](https://parsnip.tidymodels.org/reference/details_boost_tree_xgboost.html))
|
||||
could be much more precise.
|
||||
|
||||
``` r
|
||||
|
||||
# Define the model
|
||||
model <- logistic_reg(mode = "classification") %>%
|
||||
set_engine("glm")
|
||||
|
||||
model
|
||||
#> Logistic Regression Model Specification (classification)
|
||||
#>
|
||||
#> Computational engine: glm
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `logistic_reg()`: Specifies a binary classification model.
|
||||
- `set_engine("glm")`: Uses the base R GLM engine.
|
||||
|
||||
#### 3. Building the Workflow
|
||||
|
||||
``` r
|
||||
|
||||
# Create workflow
|
||||
workflow_model <- workflow() %>%
|
||||
add_recipe(mic_recipe) %>%
|
||||
add_model(model)
|
||||
|
||||
workflow_model
|
||||
#> ══ Workflow ════════════════════════════════════════════════════════════════════
|
||||
#> Preprocessor: Recipe
|
||||
#> Model: logistic_reg()
|
||||
#>
|
||||
#> ── Preprocessor ────────────────────────────────────────────────────────────────
|
||||
#> 1 Recipe Step
|
||||
#>
|
||||
#> • step_mic_log2()
|
||||
#>
|
||||
#> ── Model ───────────────────────────────────────────────────────────────────────
|
||||
#> Logistic Regression Model Specification (classification)
|
||||
#>
|
||||
#> Computational engine: glm
|
||||
```
|
||||
|
||||
### **Training and Evaluating the Model**
|
||||
|
||||
``` r
|
||||
|
||||
# Fit the model
|
||||
fitted <- fit(workflow_model, training_data)
|
||||
|
||||
# Generate predictions
|
||||
predictions <- predict(fitted, testing_data) %>%
|
||||
bind_cols(predict(fitted, testing_data, type = "prob")) %>% # add probabilities
|
||||
bind_cols(testing_data)
|
||||
|
||||
# Evaluate model performance
|
||||
our_metrics <- metric_set(accuracy, recall, precision, sensitivity, specificity, ppv, npv)
|
||||
metrics <- our_metrics(predictions, truth = esbl, estimate = .pred_class)
|
||||
|
||||
metrics
|
||||
#> # A tibble: 7 × 3
|
||||
#> .metric .estimator .estimate
|
||||
#> <chr> <chr> <dbl>
|
||||
#> 1 accuracy binary 0.92
|
||||
#> 2 recall binary 0.921
|
||||
#> 3 precision binary 0.921
|
||||
#> 4 sensitivity binary 0.921
|
||||
#> 5 specificity binary 0.919
|
||||
#> 6 ppv binary 0.921
|
||||
#> 7 npv binary 0.919
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `fit()`: Trains the model on the processed training data.
|
||||
- [`predict()`](https://rdrr.io/r/stats/predict.html): Produces
|
||||
predictions for unseen test data.
|
||||
- `metric_set()`: Allows evaluating multiple classification metrics.
|
||||
This will make `our_metrics` to become a function that we can use to
|
||||
check the predictions with.
|
||||
|
||||
It appears we can predict ESBL gene presence with a positive predictive
|
||||
value (PPV) of 92.1% and a negative predictive value (NPV) of 91.9%
|
||||
using a simplistic logistic regression model.
|
||||
|
||||
### **Visualising Predictions**
|
||||
|
||||
We can visualise predictions by comparing predicted and actual ESBL
|
||||
status.
|
||||
|
||||
``` r
|
||||
|
||||
library(ggplot2)
|
||||
|
||||
ggplot(predictions, aes(x = esbl, fill = .pred_class)) +
|
||||
geom_bar(position = "stack") +
|
||||
labs(
|
||||
title = "Predicted vs Actual ESBL Status",
|
||||
x = "Actual ESBL",
|
||||
y = "Count"
|
||||
) +
|
||||
theme_minimal()
|
||||
```
|
||||
|
||||

|
||||
|
||||
And plot the certainties too - how certain were the actual predictions?
|
||||
|
||||
``` r
|
||||
|
||||
predictions %>%
|
||||
mutate(
|
||||
certainty = ifelse(.pred_class == "FALSE",
|
||||
.pred_FALSE,
|
||||
.pred_TRUE
|
||||
),
|
||||
correct = ifelse(esbl == .pred_class, "Right", "Wrong")
|
||||
) %>%
|
||||
ggplot(aes(
|
||||
x = seq_len(nrow(predictions)),
|
||||
y = certainty,
|
||||
colour = correct
|
||||
)) +
|
||||
scale_colour_manual(
|
||||
values = c(Right = "green3", Wrong = "red2"),
|
||||
name = "Correct?"
|
||||
) +
|
||||
geom_point() +
|
||||
scale_y_continuous(
|
||||
labels = function(x) paste0(x * 100, "%"),
|
||||
limits = c(0.5, 1)
|
||||
) +
|
||||
theme_minimal()
|
||||
```
|
||||
|
||||

|
||||
|
||||
### **Conclusion**
|
||||
|
||||
In this example, we showcased how the new `AMR`-specific recipe steps
|
||||
simplify working with `<mic>` columns in `tidymodels`. The
|
||||
[`step_mic_log2()`](https://amr-for-r.org/reference/amr-tidymodels.md)
|
||||
transformation converts MICs (with or without operators) to
|
||||
log2-transformed numerics, improving compatibility with classification
|
||||
models.
|
||||
|
||||
This pipeline enables realistic, reproducible, and interpretable
|
||||
modelling of antimicrobial resistance data.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## Example 3: Predicting AMR Over Time
|
||||
|
||||
In this third example, we aim to predict antimicrobial resistance (AMR)
|
||||
trends over time using `tidymodels`. We will model resistance to three
|
||||
antibiotics (amoxicillin `AMX`, amoxicillin-clavulanic acid `AMC`, and
|
||||
ciprofloxacin `CIP`), based on historical data grouped by year and
|
||||
hospital ward.
|
||||
|
||||
### **Objective**
|
||||
|
||||
Our goal is to:
|
||||
|
||||
1. Prepare the dataset by aggregating resistance data over time.
|
||||
2. Define a regression model to predict AMR trends.
|
||||
3. Use `tidymodels` to preprocess, train, and evaluate the model.
|
||||
|
||||
### **Data Preparation**
|
||||
|
||||
We start by transforming the `example_isolates` dataset into a
|
||||
structured time-series format.
|
||||
|
||||
``` r
|
||||
|
||||
# Load required libraries
|
||||
library(AMR)
|
||||
library(tidymodels)
|
||||
|
||||
# Transform dataset
|
||||
data_time <- example_isolates %>%
|
||||
top_n_microorganisms(n = 10) %>% # Filter on the top #10 species
|
||||
mutate(
|
||||
year = as.integer(format(date, "%Y")), # Extract year from date
|
||||
gramstain = mo_gramstain(mo)
|
||||
) %>% # Get taxonomic names
|
||||
group_by(year, gramstain) %>%
|
||||
summarise(
|
||||
across(c(AMX, AMC, CIP),
|
||||
function(x) resistance(x, minimum = 0),
|
||||
.names = "res_{.col}"
|
||||
),
|
||||
.groups = "drop"
|
||||
) %>%
|
||||
filter(!is.na(res_AMX) & !is.na(res_AMC) & !is.na(res_CIP)) # Drop missing values
|
||||
#> ℹ Using column mo as input for `col_mo`.
|
||||
|
||||
data_time
|
||||
#> # A tibble: 32 × 5
|
||||
#> year gramstain res_AMX res_AMC res_CIP
|
||||
#> <int> <chr> <dbl> <dbl> <dbl>
|
||||
#> 1 2002 Gram-negative 1 0.105 0.0606
|
||||
#> 2 2002 Gram-positive 0.838 0.182 0.162
|
||||
#> 3 2003 Gram-negative 1 0.0714 0
|
||||
#> 4 2003 Gram-positive 0.714 0.244 0.154
|
||||
#> 5 2004 Gram-negative 0.464 0.0938 0
|
||||
#> 6 2004 Gram-positive 0.849 0.299 0.244
|
||||
#> 7 2005 Gram-negative 0.412 0.132 0.0588
|
||||
#> 8 2005 Gram-positive 0.882 0.382 0.154
|
||||
#> 9 2006 Gram-negative 0.379 0 0.1
|
||||
#> 10 2006 Gram-positive 0.778 0.333 0.353
|
||||
#> # ℹ 22 more rows
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `mo_name(mo)`: Converts microbial codes into proper species names.
|
||||
- [`resistance()`](https://amr-for-r.org/reference/proportion.md):
|
||||
Converts AMR results into numeric values (proportion of resistant
|
||||
isolates).
|
||||
- `group_by(year, ward, species)`: Aggregates resistance rates by year
|
||||
and ward.
|
||||
|
||||
### **Defining the Workflow**
|
||||
|
||||
We now define the modelling workflow, which consists of a preprocessing
|
||||
step, a model specification, and the fitting process.
|
||||
|
||||
#### 1. Preprocessing with a Recipe
|
||||
|
||||
``` r
|
||||
|
||||
# Define the recipe
|
||||
resistance_recipe_time <- recipe(res_AMX ~ year + gramstain, data = data_time) %>%
|
||||
step_dummy(gramstain, one_hot = TRUE) %>% # Convert categorical to numerical
|
||||
step_normalize(year) %>% # Normalise year for better model performance
|
||||
step_nzv(all_predictors()) # Remove near-zero variance predictors
|
||||
|
||||
resistance_recipe_time
|
||||
#>
|
||||
#> ── Recipe ──────────────────────────────────────────────────────────────────────
|
||||
#>
|
||||
#> ── Inputs
|
||||
#> Number of variables by role
|
||||
#> outcome: 1
|
||||
#> predictor: 2
|
||||
#>
|
||||
#> ── Operations
|
||||
#> • Dummy variables from: gramstain
|
||||
#> • Centering and scaling for: year
|
||||
#> • Sparse, unbalanced variable filter on: all_predictors()
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `step_dummy()`: Encodes categorical variables (`ward`, `species`) as
|
||||
numerical indicators.
|
||||
- `step_normalize()`: Normalises the `year` variable.
|
||||
- `step_nzv()`: Removes near-zero variance predictors.
|
||||
|
||||
#### 2. Specifying the Model
|
||||
|
||||
We use a linear regression model to predict resistance trends.
|
||||
|
||||
``` r
|
||||
|
||||
# Define the linear regression model
|
||||
lm_model <- linear_reg() %>%
|
||||
set_engine("lm") # Use linear regression
|
||||
|
||||
lm_model
|
||||
#> Linear Regression Model Specification (regression)
|
||||
#>
|
||||
#> Computational engine: lm
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `linear_reg()`: Defines a linear regression model.
|
||||
- `set_engine("lm")`: Uses R’s built-in linear regression engine.
|
||||
|
||||
#### 3. Building the Workflow
|
||||
|
||||
We combine the preprocessing recipe and model into a workflow.
|
||||
|
||||
``` r
|
||||
|
||||
# Create workflow
|
||||
resistance_workflow_time <- workflow() %>%
|
||||
add_recipe(resistance_recipe_time) %>%
|
||||
add_model(lm_model)
|
||||
|
||||
resistance_workflow_time
|
||||
#> ══ Workflow ════════════════════════════════════════════════════════════════════
|
||||
#> Preprocessor: Recipe
|
||||
#> Model: linear_reg()
|
||||
#>
|
||||
#> ── Preprocessor ────────────────────────────────────────────────────────────────
|
||||
#> 3 Recipe Steps
|
||||
#>
|
||||
#> • step_dummy()
|
||||
#> • step_normalize()
|
||||
#> • step_nzv()
|
||||
#>
|
||||
#> ── Model ───────────────────────────────────────────────────────────────────────
|
||||
#> Linear Regression Model Specification (regression)
|
||||
#>
|
||||
#> Computational engine: lm
|
||||
```
|
||||
|
||||
### **Training and Evaluating the Model**
|
||||
|
||||
We split the data into training and testing sets, fit the model, and
|
||||
evaluate performance.
|
||||
|
||||
``` r
|
||||
|
||||
# Split the data
|
||||
set.seed(123)
|
||||
data_split_time <- initial_split(data_time, prop = 0.8)
|
||||
train_time <- training(data_split_time)
|
||||
test_time <- testing(data_split_time)
|
||||
|
||||
# Train the model
|
||||
fitted_workflow_time <- resistance_workflow_time %>%
|
||||
fit(train_time)
|
||||
|
||||
# Make predictions
|
||||
predictions_time <- fitted_workflow_time %>%
|
||||
predict(test_time) %>%
|
||||
bind_cols(test_time)
|
||||
|
||||
# Evaluate model
|
||||
metrics_time <- predictions_time %>%
|
||||
metrics(truth = res_AMX, estimate = .pred)
|
||||
|
||||
metrics_time
|
||||
#> # A tibble: 3 × 3
|
||||
#> .metric .estimator .estimate
|
||||
#> <chr> <chr> <dbl>
|
||||
#> 1 rmse standard 0.0774
|
||||
#> 2 rsq standard 0.711
|
||||
#> 3 mae standard 0.0704
|
||||
```
|
||||
|
||||
**Explanation:**
|
||||
|
||||
- `initial_split()`: Splits data into training and testing sets.
|
||||
- `fit()`: Trains the workflow.
|
||||
- [`predict()`](https://rdrr.io/r/stats/predict.html): Generates
|
||||
resistance predictions.
|
||||
- `metrics()`: Evaluates model performance.
|
||||
|
||||
### **Visualising Predictions**
|
||||
|
||||
We plot resistance trends over time for amoxicillin.
|
||||
|
||||
``` r
|
||||
|
||||
library(ggplot2)
|
||||
|
||||
# Plot actual vs predicted resistance over time
|
||||
ggplot(predictions_time, aes(x = year)) +
|
||||
geom_point(aes(y = res_AMX, color = "Actual")) +
|
||||
geom_line(aes(y = .pred, color = "Predicted")) +
|
||||
labs(
|
||||
title = "Predicted vs Actual AMX Resistance Over Time",
|
||||
x = "Year",
|
||||
y = "Resistance Proportion"
|
||||
) +
|
||||
theme_minimal()
|
||||
```
|
||||
|
||||

|
||||
|
||||
Additionally, we can visualise resistance trends in `ggplot2` and
|
||||
directly add linear models there:
|
||||
|
||||
``` r
|
||||
|
||||
ggplot(data_time, aes(x = year, y = res_AMX, color = gramstain)) +
|
||||
geom_line() +
|
||||
labs(
|
||||
title = "AMX Resistance Trends",
|
||||
x = "Year",
|
||||
y = "Resistance Proportion"
|
||||
) +
|
||||
# add a linear model directly in ggplot2:
|
||||
geom_smooth(
|
||||
method = "lm",
|
||||
formula = y ~ x,
|
||||
alpha = 0.25
|
||||
) +
|
||||
theme_minimal()
|
||||
```
|
||||
|
||||

|
||||
|
||||
### **Conclusion**
|
||||
|
||||
In this example, we demonstrated how to analyze AMR trends over time
|
||||
using `tidymodels`. By aggregating resistance rates by year and hospital
|
||||
ward, we built a predictive model to track changes in resistance to
|
||||
amoxicillin (`AMX`), amoxicillin-clavulanic acid (`AMC`), and
|
||||
ciprofloxacin (`CIP`).
|
||||
|
||||
This method can be extended to other antibiotics and resistance
|
||||
patterns, providing valuable insights into AMR dynamics in healthcare
|
||||
settings.
|
||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
After Width: | Height: | Size: 37 KiB |
@@ -5,40 +5,32 @@
|
||||
<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">
|
||||
<title>Apply EUCAST rules • AMR (for R)</title>
|
||||
<!-- favicons --><link rel="icon" type="image/png" sizes="96x96" href="../favicon-96x96.png">
|
||||
<link rel="icon" type="”image/svg+xml”" href="../favicon.svg">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon.png">
|
||||
<link rel="icon" sizes="any" href="../favicon.ico">
|
||||
<link rel="manifest" href="../site.webmanifest">
|
||||
<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]-->
|
||||
<link href="../deps/bootstrap-5.3.8/bootstrap.min.css" rel="stylesheet">
|
||||
<script src="../deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="../deps/Lato-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/Fira_Code-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet">
|
||||
<script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||
<script src="../extra.js"></script><meta property="og:title" content="Apply EUCAST rules">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||
</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">
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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.9018</small>
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9091</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">
|
||||
@@ -47,106 +39,33 @@
|
||||
|
||||
<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>
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to">
|
||||
<li><a class="dropdown-item" href="../articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link" href="../articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</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 class="navbar-nav">
|
||||
<li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json">
|
||||
</form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="../news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa fa-github"></span> Source Code</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -159,10 +78,10 @@
|
||||
|
||||
<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>
|
||||
<img src="../logo.svg" class="logo" alt=""><h1>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>
|
||||
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/vignettes/EUCAST.Rmd" class="external-link"><code>vignettes/EUCAST.Rmd</code></a></small>
|
||||
<div class="d-none name"><code>EUCAST.Rmd</code></div>
|
||||
</div>
|
||||
|
||||
@@ -171,51 +90,80 @@
|
||||
<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>
|
||||
<p>What are EUCAST rules? The European Committee on Antimicrobial
|
||||
Susceptibility Testing (EUCAST) states <a href="https://www.eucast.org/expert_rules_and_expected_phenotypes" 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>
|
||||
<p><em>EUCAST expert rules (see below) are a tabulated collection of
|
||||
expert knowledge on interpretive rules, expected resistant phenotypes
|
||||
and expected susceptible phenotypes which should be applied to
|
||||
antimicrobial susceptibility testing in order to reduce testing, 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>
|
||||
<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 expected resistant phenotypes (v1.2, 2023).</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>
|
||||
<p>These rules can be used to discard improbable 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
|
||||
<em>Klebsiella</em> 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. The <code><a href="../reference/interpretive_rules.html">eucast_rules()</a></code> function resolves this,
|
||||
by applying the latest ‘EUCAST Expected Resistant Phenotypes’
|
||||
guideline:</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>
|
||||
<code class="sourceCode R"><span><span class="va">oops</span> <span class="op"><-</span> <span class="fu">tibble</span><span class="fu">::</span><span class="fu"><a href="https://tibble.tidyverse.org/reference/tibble.html" class="external-link">tibble</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="st">"Klebsiella pneumoniae"</span>,</span>
|
||||
<span> <span class="st">"Escherichia coli"</span></span>
|
||||
<span> <span class="op">)</span>,</span>
|
||||
<span> ampicillin <span class="op">=</span> <span class="st">"S"</span></span>
|
||||
<span> ampicillin <span class="op">=</span> <span class="fu"><a href="../reference/as.sir.html">as.sir</a></span><span class="op">(</span><span class="st">"S"</span><span class="op">)</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 class="co">#> <span style="color: #949494;"># A tibble: 2 × 2</span></span></span>
|
||||
<span><span class="co">#> mo ampicillin</span></span>
|
||||
<span><span class="co">#> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><sir></span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;">1</span> Klebsiella pneumoniae <span style="color: #080808; background-color: #5FD7AF;"> S </span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;">2</span> Escherichia coli <span style="color: #080808; background-color: #5FD7AF;"> S </span></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>
|
||||
<span><span class="fu"><a href="../reference/interpretive_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>, overwrite <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># A tibble: 2 × 2</span></span></span>
|
||||
<span><span class="co">#> mo ampicillin</span></span>
|
||||
<span><span class="co">#> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><sir></span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;">1</span> Klebsiella pneumoniae <span style="color: #080808; background-color: #FF5F5F;"> R </span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;">2</span> Escherichia coli <span style="color: #080808; background-color: #5FD7AF;"> S </span></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
|
||||
antimicrobials:</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="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"Klebsiella pneumoniae"</span>, <span class="st">"Escherichia coli"</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 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="st">"Klebsiella pneumoniae"</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>
|
||||
<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>, and is basically a form of imputation:</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>
|
||||
<code class="sourceCode R"><span><span class="va">data</span> <span class="op"><-</span> <span class="fu">tibble</span><span class="fu">::</span><span class="fu"><a href="https://tibble.tidyverse.org/reference/tibble.html" class="external-link">tibble</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>
|
||||
@@ -229,8 +177,7 @@
|
||||
<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> FOX <span class="op">=</span> <span class="st">"S"</span> <span class="co"># Cefoxitin</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>
|
||||
@@ -299,7 +246,7 @@
|
||||
</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>
|
||||
<code class="sourceCode R"><span><span class="fu"><a href="../reference/interpretive_rules.html">eucast_rules</a></span><span class="op">(</span><span class="va">data</span>, overwrite <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div>
|
||||
<table class="table">
|
||||
<thead><tr class="header">
|
||||
<th align="left">mo</th>
|
||||
@@ -365,20 +312,18 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||
</main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><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>
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</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>
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
# Apply EUCAST rules
|
||||
|
||||
## Introduction
|
||||
|
||||
What are EUCAST rules? The European Committee on Antimicrobial
|
||||
Susceptibility Testing (EUCAST) states [on their
|
||||
website](https://www.eucast.org/expert_rules_and_expected_phenotypes):
|
||||
|
||||
> *EUCAST expert rules (see below) are a tabulated collection of expert
|
||||
> knowledge on interpretive rules, expected resistant phenotypes and
|
||||
> expected susceptible phenotypes which should be applied to
|
||||
> antimicrobial susceptibility testing in order to reduce testing,
|
||||
> reduce errors and make appropriate recommendations for reporting
|
||||
> particular resistances.*
|
||||
|
||||
In Europe, a lot of medical microbiological laboratories already apply
|
||||
these rules ([Brown *et al.*,
|
||||
2015](https://www.eurosurveillance.org/content/10.2807/1560-7917.ES2015.20.2.21008)).
|
||||
Our package features their latest insights on expected resistant
|
||||
phenotypes (v1.2, 2023).
|
||||
|
||||
## Examples
|
||||
|
||||
These rules can be used to discard improbable bug-drug combinations in
|
||||
your data. For example, *Klebsiella* produces beta-lactamase that
|
||||
prevents ampicillin (or amoxicillin) from working against it. In other
|
||||
words, practically every strain of *Klebsiella* is resistant to
|
||||
ampicillin.
|
||||
|
||||
Sometimes, laboratory data can still contain such strains with
|
||||
*Klebsiella* 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. The
|
||||
[`eucast_rules()`](https://amr-for-r.org/reference/interpretive_rules.md)
|
||||
function resolves this, by applying the latest ‘EUCAST Expected
|
||||
Resistant Phenotypes’ guideline:
|
||||
|
||||
``` r
|
||||
|
||||
oops <- tibble::tibble(
|
||||
mo = c(
|
||||
"Klebsiella pneumoniae",
|
||||
"Escherichia coli"
|
||||
),
|
||||
ampicillin = as.sir("S")
|
||||
)
|
||||
oops
|
||||
#> # A tibble: 2 × 2
|
||||
#> mo ampicillin
|
||||
#> <chr> <sir>
|
||||
#> 1 Klebsiella pneumoniae S
|
||||
#> 2 Escherichia coli S
|
||||
|
||||
eucast_rules(oops, info = FALSE, overwrite = TRUE)
|
||||
#> # A tibble: 2 × 2
|
||||
#> mo ampicillin
|
||||
#> <chr> <sir>
|
||||
#> 1 Klebsiella pneumoniae R
|
||||
#> 2 Escherichia coli S
|
||||
```
|
||||
|
||||
A more convenient function is
|
||||
[`mo_is_intrinsic_resistant()`](https://amr-for-r.org/reference/mo_property.md)
|
||||
that uses the same guideline, but allows to check for one or more
|
||||
specific microorganisms or antimicrobials:
|
||||
|
||||
``` r
|
||||
|
||||
mo_is_intrinsic_resistant(
|
||||
c("Klebsiella pneumoniae", "Escherichia coli"),
|
||||
"ampicillin"
|
||||
)
|
||||
#> [1] TRUE FALSE
|
||||
|
||||
mo_is_intrinsic_resistant(
|
||||
"Klebsiella pneumoniae",
|
||||
c("ampicillin", "kanamycin")
|
||||
)
|
||||
#> [1] TRUE FALSE
|
||||
```
|
||||
|
||||
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 *interpretive
|
||||
reading*, and is basically a form of imputation:
|
||||
|
||||
``` r
|
||||
|
||||
data <- tibble::tibble(
|
||||
mo = c(
|
||||
"Staphylococcus aureus",
|
||||
"Enterococcus faecalis",
|
||||
"Escherichia coli",
|
||||
"Klebsiella pneumoniae",
|
||||
"Pseudomonas aeruginosa"
|
||||
),
|
||||
VAN = "-", # Vancomycin
|
||||
AMX = "-", # Amoxicillin
|
||||
COL = "-", # Colistin
|
||||
CAZ = "-", # Ceftazidime
|
||||
CXM = "-", # Cefuroxime
|
||||
PEN = "S", # Benzylenicillin
|
||||
FOX = "S" # Cefoxitin
|
||||
)
|
||||
```
|
||||
|
||||
``` r
|
||||
|
||||
data
|
||||
```
|
||||
|
||||
| mo | VAN | AMX | COL | CAZ | CXM | PEN | FOX |
|
||||
|:-----------------------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||
| Staphylococcus aureus | \- | \- | \- | \- | \- | S | S |
|
||||
| Enterococcus faecalis | \- | \- | \- | \- | \- | S | S |
|
||||
| Escherichia coli | \- | \- | \- | \- | \- | S | S |
|
||||
| Klebsiella pneumoniae | \- | \- | \- | \- | \- | S | S |
|
||||
| Pseudomonas aeruginosa | \- | \- | \- | \- | \- | S | S |
|
||||
|
||||
``` r
|
||||
|
||||
eucast_rules(data, overwrite = TRUE)
|
||||
```
|
||||
|
||||
| mo | VAN | AMX | COL | CAZ | CXM | PEN | FOX |
|
||||
|:-----------------------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||
| Staphylococcus aureus | \- | S | R | R | S | S | S |
|
||||
| Enterococcus faecalis | \- | \- | R | R | R | S | R |
|
||||
| Escherichia coli | R | \- | \- | \- | \- | R | S |
|
||||
| Klebsiella pneumoniae | R | R | \- | \- | \- | R | S |
|
||||
| Pseudomonas aeruginosa | R | R | \- | \- | R | R | R |
|
||||
@@ -1,424 +0,0 @@
|
||||
<!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.9018</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 R S I R</span></span>
|
||||
<span><span class="co"># 2 I S R R R S</span></span>
|
||||
<span><span class="co"># 3 S I I S I I</span></span>
|
||||
<span><span class="co"># 4 I I S S R R</span></span>
|
||||
<span><span class="co"># 5 R I R S I I</span></span>
|
||||
<span><span class="co"># 6 I I S S I S</span></span>
|
||||
<span><span class="co"># kanamycin</span></span>
|
||||
<span><span class="co"># 1 S</span></span>
|
||||
<span><span class="co"># 2 I</span></span>
|
||||
<span><span class="co"># 3 R</span></span>
|
||||
<span><span class="co"># 4 R</span></span>
|
||||
<span><span class="co"># 5 S</span></span>
|
||||
<span><span class="co"># 6 S</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">3196</td>
|
||||
<td align="right">63.92%</td>
|
||||
<td align="right">3196</td>
|
||||
<td align="right">63.92%</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td align="left">2</td>
|
||||
<td align="left">Negative</td>
|
||||
<td align="right">989</td>
|
||||
<td align="right">19.78%</td>
|
||||
<td align="right">4185</td>
|
||||
<td align="right">83.70%</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td align="left">3</td>
|
||||
<td align="left">Multi-drug-resistant</td>
|
||||
<td align="right">455</td>
|
||||
<td align="right">9.10%</td>
|
||||
<td align="right">4640</td>
|
||||
<td align="right">92.80%</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td align="left">4</td>
|
||||
<td align="left">Poly-resistant</td>
|
||||
<td align="right">249</td>
|
||||
<td align="right">4.98%</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>
|
||||
@@ -5,40 +5,32 @@
|
||||
<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">
|
||||
<title>Conduct principal component analysis (PCA) for AMR • AMR (for R)</title>
|
||||
<!-- favicons --><link rel="icon" type="image/png" sizes="96x96" href="../favicon-96x96.png">
|
||||
<link rel="icon" type="”image/svg+xml”" href="../favicon.svg">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon.png">
|
||||
<link rel="icon" sizes="any" href="../favicon.ico">
|
||||
<link rel="manifest" href="../site.webmanifest">
|
||||
<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]-->
|
||||
<link href="../deps/bootstrap-5.3.8/bootstrap.min.css" rel="stylesheet">
|
||||
<script src="../deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="../deps/Lato-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/Fira_Code-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet">
|
||||
<script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||
<script src="../extra.js"></script><meta property="og:title" content="Conduct principal component analysis (PCA) for AMR">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||
</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">
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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.9018</small>
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9091</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">
|
||||
@@ -47,106 +39,33 @@
|
||||
|
||||
<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>
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to">
|
||||
<li><a class="dropdown-item" href="../articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link" href="../articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</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 class="navbar-nav">
|
||||
<li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json">
|
||||
</form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="../news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa fa-github"></span> Source Code</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -159,16 +78,17 @@
|
||||
|
||||
<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>
|
||||
<img src="../logo.svg" class="logo" alt=""><h1>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>
|
||||
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/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>
|
||||
<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>
|
||||
@@ -176,136 +96,147 @@
|
||||
<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>
|
||||
<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>
|
||||
<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://amr-for-r.org">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>
|
||||
<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<span style="color: #949494;">, </span>2002-01-03<span style="color: #949494;">, </span>2002-01-07<span style="color: #949494;">, </span>2002-01-07<span style="color: #949494;">, </span>2002-01-13<span style="color: #949494;">, </span>2…</span></span>
|
||||
<span><span class="co">#> $ patient <span style="color: #949494; font-style: italic;"><chr></span> "A77334"<span style="color: #949494;">, </span>"A77334"<span style="color: #949494;">, </span>"067927"<span style="color: #949494;">, </span>"067927"<span style="color: #949494;">, </span>"067927"<span style="color: #949494;">, </span>"067927"<span style="color: #949494;">, </span>"4…</span></span>
|
||||
<span><span class="co">#> $ age <span style="color: #949494; font-style: italic;"><dbl></span> 65<span style="color: #949494;">, </span>65<span style="color: #949494;">, </span>45<span style="color: #949494;">, </span>45<span style="color: #949494;">, </span>45<span style="color: #949494;">, </span>45<span style="color: #949494;">, </span>78<span style="color: #949494;">, </span>78<span style="color: #949494;">, </span>45<span style="color: #949494;">, </span>79<span style="color: #949494;">, </span>67<span style="color: #949494;">, </span>67<span style="color: #949494;">, </span>71<span style="color: #949494;">, </span>71<span style="color: #949494;">, </span>75<span style="color: #949494;">, </span>50…</span></span>
|
||||
<span><span class="co">#> $ gender <span style="color: #949494; font-style: italic;"><chr></span> "F"<span style="color: #949494;">, </span>"F"<span style="color: #949494;">, </span>"F"<span style="color: #949494;">, </span>"F"<span style="color: #949494;">, </span>"F"<span style="color: #949494;">, </span>"F"<span style="color: #949494;">, </span>"M"<span style="color: #949494;">, </span>"M"<span style="color: #949494;">, </span>"F"<span style="color: #949494;">, </span>"F"<span style="color: #949494;">, </span>"M"<span style="color: #949494;">, </span>"M"<span style="color: #949494;">, </span>"M…</span></span>
|
||||
<span><span class="co">#> $ ward <span style="color: #949494; font-style: italic;"><chr></span> "Clinical"<span style="color: #949494;">, </span>"Clinical"<span style="color: #949494;">, </span>"ICU"<span style="color: #949494;">, </span>"ICU"<span style="color: #949494;">, </span>"ICU"<span style="color: #949494;">, </span>"ICU"<span style="color: #949494;">, </span>"Clinical"…</span></span>
|
||||
<span><span class="co">#> $ mo <span style="color: #949494; font-style: italic;"><mo></span> "B_ESCHR_COLI"<span style="color: #949494;">, </span>"B_ESCHR_COLI"<span style="color: #949494;">, </span>"B_STPHY_EPDR"<span style="color: #949494;">, </span>"B_STPHY_EPDR"<span style="color: #949494;">,</span>…</span></span>
|
||||
<span><span class="co">#> $ PEN <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">,</span>…</span></span>
|
||||
<span><span class="co">#> $ OXA <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ FLC <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R…</span></span>
|
||||
<span><span class="co">#> $ AMX <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">N</span>…</span></span>
|
||||
<span><span class="co">#> $ AMC <span style="color: #949494; font-style: italic;"><sir></span> I<span style="color: #949494;">, </span>I<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>I<span style="color: #949494;">, </span>I<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>I<span style="color: #949494;">, </span>I<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">N</span>…</span></span>
|
||||
<span><span class="co">#> $ AMP <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">N</span>…</span></span>
|
||||
<span><span class="co">#> $ TZP <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ CZO <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">,</span>…</span></span>
|
||||
<span><span class="co">#> $ FEP <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ CXM <span style="color: #949494; font-style: italic;"><sir></span> I<span style="color: #949494;">, </span>I<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S…</span></span>
|
||||
<span><span class="co">#> $ FOX <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">,</span>…</span></span>
|
||||
<span><span class="co">#> $ CTX <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S…</span></span>
|
||||
<span><span class="co">#> $ CAZ <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>…</span></span>
|
||||
<span><span class="co">#> $ CRO <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S…</span></span>
|
||||
<span><span class="co">#> $ GEN <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ TOB <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ AMK <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ KAN <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ TMP <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>…</span></span>
|
||||
<span><span class="co">#> $ SXT <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">N</span>…</span></span>
|
||||
<span><span class="co">#> $ NIT <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">,</span>…</span></span>
|
||||
<span><span class="co">#> $ FOS <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ LNZ <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">N</span>…</span></span>
|
||||
<span><span class="co">#> $ CIP <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S…</span></span>
|
||||
<span><span class="co">#> $ MFX <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ VAN <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>…</span></span>
|
||||
<span><span class="co">#> $ TEC <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">N</span>…</span></span>
|
||||
<span><span class="co">#> $ TCY <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>I<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>I<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>I<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>…</span></span>
|
||||
<span><span class="co">#> $ TGC <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ DOX <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ ERY <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">,</span>…</span></span>
|
||||
<span><span class="co">#> $ CLI <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ AZM <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>S<span style="color: #949494;">,</span>…</span></span>
|
||||
<span><span class="co">#> $ IPM <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>S<span style="color: #949494;">, </span>S…</span></span>
|
||||
<span><span class="co">#> $ MEM <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ MTR <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ CHL <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ COL <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>…</span></span>
|
||||
<span><span class="co">#> $ MUP <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span>…</span></span>
|
||||
<span><span class="co">#> $ RIF <span style="color: #949494; font-style: italic;"><sir></span> R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span><span style="color: #BB0000;">NA</span><span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span>R<span style="color: #949494;">, </span><span style="color: #BB0000;">N</span>…</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/summarise_all.html" class="external-link">summarise_if</a></span><span class="op">(</span><span class="va">is.sir</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>
|
||||
<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>
|
||||
<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>
|
||||
<span><span class="co">#> <span style="color: #00BBBB;">ℹ</span> Columns selected for PCA: <span style="color: #0000BB;">"\033[1mAMC\033[22m"</span>, <span style="color: #0000BB;">"\033[1mCAZ\033[22m"</span>,</span></span>
|
||||
<span><span class="co">#> <span style="color: #0000BB;">"\033[1mCTX\033[22m"</span>, <span style="color: #0000BB;">"\033[1mCXM\033[22m"</span>, <span style="color: #0000BB;">"\033[1mGEN\033[22m"</span>,</span></span>
|
||||
<span><span class="co">#> <span style="color: #0000BB;">"\033[1mSXT\033[22m"</span>, <span style="color: #0000BB;">"\033[1mTMP\033[22m"</span>, and <span style="color: #0000BB;">"\033[1mTOB\033[22m"</span>. Total</span></span>
|
||||
<span><span class="co">#> 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>
|
||||
<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 1.232e-16</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>
|
||||
<p><img src="PCA_files/figure-html/unnamed-chunk-5-1.png" class="r-plt" alt="" 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><img src="PCA_files/figure-html/unnamed-chunk-6-1.png" class="r-plt" alt="" 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>
|
||||
<p><img src="PCA_files/figure-html/unnamed-chunk-7-1.png" class="r-plt" alt="" width="750"></p>
|
||||
</div>
|
||||
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||
</main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><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>
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</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>
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
# Conduct principal component analysis (PCA) for AMR
|
||||
|
||||
**NOTE: This page will be updated soon, as the pca() function is
|
||||
currently being developed.**
|
||||
|
||||
## Introduction
|
||||
|
||||
## Transforming
|
||||
|
||||
For PCA, we need to transform our AMR data first. This is what the
|
||||
`example_isolates` data set in this package looks like:
|
||||
|
||||
``` r
|
||||
|
||||
library(AMR)
|
||||
library(dplyr)
|
||||
glimpse(example_isolates)
|
||||
#> Rows: 2,000
|
||||
#> Columns: 46
|
||||
#> $ date <date> 2002-01-02, 2002-01-03, 2002-01-07, 2002-01-07, 2002-01-13, 2…
|
||||
#> $ patient <chr> "A77334", "A77334", "067927", "067927", "067927", "067927", "4…
|
||||
#> $ age <dbl> 65, 65, 45, 45, 45, 45, 78, 78, 45, 79, 67, 67, 71, 71, 75, 50…
|
||||
#> $ gender <chr> "F", "F", "F", "F", "F", "F", "M", "M", "F", "F", "M", "M", "M…
|
||||
#> $ ward <chr> "Clinical", "Clinical", "ICU", "ICU", "ICU", "ICU", "Clinical"…
|
||||
#> $ mo <mo> "B_ESCHR_COLI", "B_ESCHR_COLI", "B_STPHY_EPDR", "B_STPHY_EPDR",…
|
||||
#> $ PEN <sir> R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, S,…
|
||||
#> $ OXA <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ FLC <sir> NA, NA, R, R, R, R, S, S, R, S, S, S, NA, NA, NA, NA, NA, R, R…
|
||||
#> $ AMX <sir> NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N…
|
||||
#> $ AMC <sir> I, I, NA, NA, NA, NA, S, S, NA, NA, S, S, I, I, R, I, I, NA, N…
|
||||
#> $ AMP <sir> NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N…
|
||||
#> $ TZP <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ CZO <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,…
|
||||
#> $ FEP <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ CXM <sir> I, I, R, R, R, R, S, S, R, S, S, S, S, S, NA, S, S, R, R, S, S…
|
||||
#> $ FOX <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,…
|
||||
#> $ CTX <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S…
|
||||
#> $ CAZ <sir> NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, S, S, R, R, …
|
||||
#> $ CRO <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S…
|
||||
#> $ GEN <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ TOB <sir> NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, S, S, NA, NA, NA…
|
||||
#> $ AMK <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ KAN <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ TMP <sir> R, R, S, S, R, R, R, R, S, S, NA, NA, S, S, S, S, S, R, R, R, …
|
||||
#> $ SXT <sir> R, R, S, S, NA, NA, NA, NA, S, S, NA, NA, S, S, S, S, S, NA, N…
|
||||
#> $ NIT <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R,…
|
||||
#> $ FOS <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ LNZ <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N…
|
||||
#> $ CIP <sir> NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, NA, S, S…
|
||||
#> $ MFX <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ VAN <sir> R, R, S, S, S, S, S, S, S, S, NA, NA, R, R, R, R, R, S, S, S, …
|
||||
#> $ TEC <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N…
|
||||
#> $ TCY <sir> R, R, S, S, S, S, S, S, S, I, S, S, NA, NA, I, R, R, S, I, R, …
|
||||
#> $ TGC <sir> NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA…
|
||||
#> $ DOX <sir> NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA…
|
||||
#> $ ERY <sir> R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,…
|
||||
#> $ CLI <sir> R, R, NA, NA, NA, R, NA, NA, NA, NA, NA, NA, R, R, R, R, R, NA…
|
||||
#> $ AZM <sir> R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,…
|
||||
#> $ IPM <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S…
|
||||
#> $ MEM <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ MTR <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ CHL <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ COL <sir> NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, R, R, R, R, …
|
||||
#> $ MUP <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
|
||||
#> $ RIF <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N…
|
||||
```
|
||||
|
||||
Now to transform this to a data set with only resistance percentages per
|
||||
taxonomic order and genus:
|
||||
|
||||
``` r
|
||||
|
||||
resistance_data <- example_isolates %>%
|
||||
group_by(
|
||||
order = mo_order(mo), # group on anything, like order
|
||||
genus = mo_genus(mo)
|
||||
) %>% # and genus as we do here
|
||||
summarise_if(is.sir, resistance) %>% # then get resistance of all drugs
|
||||
select(
|
||||
order, genus, AMC, CXM, CTX,
|
||||
CAZ, GEN, TOB, TMP, SXT
|
||||
) # and select only relevant columns
|
||||
|
||||
head(resistance_data)
|
||||
#> # A tibble: 6 × 10
|
||||
#> # Groups: order [5]
|
||||
#> order genus AMC CXM CTX CAZ GEN TOB TMP SXT
|
||||
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
|
||||
#> 1 (unknown order) (unknown ge… NA NA NA NA NA NA NA NA
|
||||
#> 2 Actinomycetales Schaalia NA NA NA NA NA NA NA NA
|
||||
#> 3 Bacteroidales Bacteroides NA NA NA NA NA NA NA NA
|
||||
#> 4 Campylobacterales Campylobact… NA NA NA NA NA NA NA NA
|
||||
#> 5 Caryophanales Gemella NA NA NA NA NA NA NA NA
|
||||
#> 6 Caryophanales Listeria NA NA NA NA NA NA NA NA
|
||||
```
|
||||
|
||||
## Perform principal component analysis
|
||||
|
||||
The new [`pca()`](https://amr-for-r.org/reference/pca.md) function will
|
||||
automatically filter on rows that contain numeric values in all selected
|
||||
variables, so we now only need to do:
|
||||
|
||||
``` r
|
||||
|
||||
pca_result <- pca(resistance_data)
|
||||
#> ℹ Columns selected for PCA: "\033[1mAMC\033[22m", "\033[1mCAZ\033[22m",
|
||||
#> "\033[1mCTX\033[22m", "\033[1mCXM\033[22m", "\033[1mGEN\033[22m",
|
||||
#> "\033[1mSXT\033[22m", "\033[1mTMP\033[22m", and "\033[1mTOB\033[22m". Total
|
||||
#> observations available: 7.
|
||||
```
|
||||
|
||||
The result can be reviewed with the good old
|
||||
[`summary()`](https://rdrr.io/r/base/summary.html) function:
|
||||
|
||||
``` r
|
||||
|
||||
summary(pca_result)
|
||||
#> Groups (n=4, named as 'order'):
|
||||
#> [1] "Caryophanales" "Enterobacterales" "Lactobacillales" "Pseudomonadales"
|
||||
#> Importance of components:
|
||||
#> PC1 PC2 PC3 PC4 PC5 PC6 PC7
|
||||
#> Standard deviation 2.1539 1.6807 0.6138 0.33879 0.20808 0.03140 1.232e-16
|
||||
#> Proportion of Variance 0.5799 0.3531 0.0471 0.01435 0.00541 0.00012 0.000e+00
|
||||
#> Cumulative Proportion 0.5799 0.9330 0.9801 0.99446 0.99988 1.00000 1.000e+00
|
||||
```
|
||||
|
||||
#> Groups (n=4, named as 'order'):
|
||||
#> [1] "Caryophanales" "Enterobacterales" "Lactobacillales" "Pseudomonadales"
|
||||
|
||||
Good news. The first two components explain a total of 93.3% of the
|
||||
variance (see the PC1 and PC2 values of the *Proportion of Variance*. We
|
||||
can create a so-called biplot with the base R
|
||||
[`biplot()`](https://rdrr.io/r/stats/biplot.html) function, to see which
|
||||
antimicrobial resistance per drug explain the difference per
|
||||
microorganism.
|
||||
|
||||
## Plotting the results
|
||||
|
||||
``` r
|
||||
|
||||
biplot(pca_result)
|
||||
```
|
||||
|
||||

|
||||
|
||||
But we can’t see the explanation of the points. Perhaps this works
|
||||
better with our new
|
||||
[`ggplot_pca()`](https://amr-for-r.org/reference/ggplot_pca.md)
|
||||
function, that automatically adds the right labels and even groups:
|
||||
|
||||
``` r
|
||||
|
||||
ggplot_pca(pca_result)
|
||||
```
|
||||
|
||||

|
||||
|
||||
You can also print an ellipse per group, and edit the appearance:
|
||||
|
||||
``` r
|
||||
|
||||
ggplot_pca(pca_result, ellipse = TRUE) +
|
||||
ggplot2::labs(title = "An AMR/PCA biplot!")
|
||||
```
|
||||
|
||||

|
||||
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 115 KiB |
@@ -1,394 +0,0 @@
|
||||
<!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.9018</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">15 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,054 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>
|
||||
@@ -5,40 +5,32 @@
|
||||
<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">
|
||||
<title>Work with WHONET data • AMR (for R)</title>
|
||||
<!-- favicons --><link rel="icon" type="image/png" sizes="96x96" href="../favicon-96x96.png">
|
||||
<link rel="icon" type="”image/svg+xml”" href="../favicon.svg">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon.png">
|
||||
<link rel="icon" sizes="any" href="../favicon.ico">
|
||||
<link rel="manifest" href="../site.webmanifest">
|
||||
<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]-->
|
||||
<link href="../deps/bootstrap-5.3.8/bootstrap.min.css" rel="stylesheet">
|
||||
<script src="../deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="../deps/Lato-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/Fira_Code-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet">
|
||||
<script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||
<script src="../extra.js"></script><meta property="og:title" content="Work with WHONET data">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||
</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">
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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.9018</small>
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9091</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">
|
||||
@@ -47,106 +39,33 @@
|
||||
|
||||
<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>
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to">
|
||||
<li><a class="dropdown-item" href="../articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link" href="../articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</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 class="navbar-nav">
|
||||
<li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json">
|
||||
</form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="../news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa fa-github"></span> Source Code</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -159,10 +78,10 @@
|
||||
|
||||
<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>
|
||||
<img src="../logo.svg" class="logo" alt=""><h1>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>
|
||||
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/vignettes/WHONET.Rmd" class="external-link"><code>vignettes/WHONET.Rmd</code></a></small>
|
||||
<div class="d-none name"><code>WHONET.Rmd</code></div>
|
||||
</div>
|
||||
|
||||
@@ -171,48 +90,75 @@
|
||||
<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>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>
|
||||
<p>This package comes with an <a href="https://amr-for-r.org/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>
|
||||
<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>
|
||||
<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://amr-for-r.org">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://msberends.github.io/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>
|
||||
<li>Microorganisms should be transformed to our own microorganism codes
|
||||
(called an <code>mo</code>) using <a href="https://amr-for-r.org/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.sir.html">as.sir()</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>
|
||||
<span> <span class="co"># transform everything from "AMP_ND10" to "CIP_EE" to the new `sir` 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.sir</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>We also created a package dedicated to data cleaning and checking,
|
||||
called the <code>cleaner</code> package. Its <code><a href="https://msberends.github.io/cleaner/reference/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>
|
||||
<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://msberends.github.io/cleaner/reference/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>
|
||||
Available: 500 (100%, NA: 0 = 0%)<br>
|
||||
Unique: 38</p>
|
||||
<p>Shortest: 11<br>
|
||||
Longest: 40</p>
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col width="4%">
|
||||
<col width="47%">
|
||||
<col width="7%">
|
||||
<col width="10%">
|
||||
<col width="13%">
|
||||
<col width="15%">
|
||||
</colgroup>
|
||||
<thead><tr class="header">
|
||||
<th align="left"></th>
|
||||
<th align="left">Item</th>
|
||||
@@ -280,7 +226,7 @@ Longest: 40</p>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td align="left">8</td>
|
||||
<td align="left">Staphylococcus capitis</td>
|
||||
<td align="left">Staphylococcus capitis urealyticus</td>
|
||||
<td align="right">8</td>
|
||||
<td align="right">1.6%</td>
|
||||
<td align="right">434</td>
|
||||
@@ -296,27 +242,28 @@ Longest: 40</p>
|
||||
</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>
|
||||
<td align="left">Enterococcus columbae</td>
|
||||
<td align="right">4</td>
|
||||
<td align="right">0.8%</td>
|
||||
<td align="right">443</td>
|
||||
<td align="right">88.6%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>(omitted 27 entries, n = 56 [11.20%])</p>
|
||||
<p>(omitted 28 entries, n = 57 [11.4%])</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>
|
||||
<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://msberends.github.io/cleaner/reference/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>
|
||||
<p>Class: factor > ordered > sir (numeric)<br>
|
||||
Length: 500<br>
|
||||
Levels: 3: S < I < R<br>
|
||||
Levels: 8: S < SDD < I < R < NI < WT < NWT <
|
||||
NS<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>
|
||||
<p>Drug: Amoxicillin/clavulanic acid (AMC, J01CR02/QJ01CR02)<br>
|
||||
Drug group: Aminopenicillins<br>
|
||||
%SI: 78.59%</p>
|
||||
<table class="table">
|
||||
<thead><tr class="header">
|
||||
@@ -358,28 +305,27 @@ Drug group: Beta-lactams/penicillins<br>
|
||||
<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>
|
||||
<p>An easy <code>ggplot</code> will already give a lot of information,
|
||||
using the included <code><a href="../reference/ggplot_sir.html">ggplot_sir()</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>
|
||||
<span> <span class="fu"><a href="../reference/ggplot_sir.html">ggplot_sir</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" class="r-plt" alt="" width="720"></p>
|
||||
</div>
|
||||
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||
</main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><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>
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</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>
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
# Work with WHONET data
|
||||
|
||||
### Import of data
|
||||
|
||||
This tutorial assumes you already imported the WHONET data with e.g. the
|
||||
[`readxl` package](https://readxl.tidyverse.org/). 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.
|
||||
|
||||
An example syntax could look like this:
|
||||
|
||||
``` r
|
||||
|
||||
library(readxl)
|
||||
data <- read_excel(path = "path/to/your/file.xlsx")
|
||||
```
|
||||
|
||||
This package comes with an [example data set
|
||||
`WHONET`](https://amr-for-r.org/reference/WHONET.html). We will use it
|
||||
for this analysis.
|
||||
|
||||
### Preparation
|
||||
|
||||
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:
|
||||
<https://www.tidyverse.org/>.
|
||||
|
||||
``` r
|
||||
|
||||
library(dplyr) # part of tidyverse
|
||||
library(ggplot2) # part of tidyverse
|
||||
library(AMR) # this package
|
||||
library(cleaner) # to create frequency tables
|
||||
```
|
||||
|
||||
We will have to transform some variables to simplify and automate the
|
||||
analysis:
|
||||
|
||||
- Microorganisms should be transformed to our own microorganism codes
|
||||
(called an `mo`) using [our Catalogue of Life reference data
|
||||
set](https://amr-for-r.org/reference/catalogue_of_life), which
|
||||
contains all ~70,000 microorganisms from the taxonomic kingdoms
|
||||
Bacteria, Fungi and Protozoa. We do the tranformation with
|
||||
[`as.mo()`](https://amr-for-r.org/reference/as.mo.md). This function
|
||||
also recognises almost all WHONET abbreviations of microorganisms.
|
||||
- Antimicrobial results or interpretations have to be clean and valid.
|
||||
In other words, they should only contain values `"S"`, `"I"` or `"R"`.
|
||||
That is exactly where the
|
||||
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md) function is
|
||||
for.
|
||||
|
||||
``` r
|
||||
|
||||
# transform variables
|
||||
data <- WHONET %>%
|
||||
# get microbial ID based on given organism
|
||||
mutate(mo = as.mo(Organism)) %>%
|
||||
# transform everything from "AMP_ND10" to "CIP_EE" to the new `sir` class
|
||||
mutate_at(vars(AMP_ND10:CIP_EE), as.sir)
|
||||
```
|
||||
|
||||
No errors or warnings, so all values are transformed succesfully.
|
||||
|
||||
We also created a package dedicated to data cleaning and checking,
|
||||
called the `cleaner` package. Its
|
||||
[`freq()`](https://msberends.github.io/cleaner/reference/freq.html)
|
||||
function can be used to create frequency tables.
|
||||
|
||||
So let’s check our data, with a couple of frequency tables:
|
||||
|
||||
``` r
|
||||
|
||||
# our newly created `mo` variable, put in the mo_name() function
|
||||
data %>% freq(mo_name(mo), nmax = 10)
|
||||
```
|
||||
|
||||
**Frequency table**
|
||||
|
||||
Class: character
|
||||
Length: 500
|
||||
Available: 500 (100%, NA: 0 = 0%)
|
||||
Unique: 38
|
||||
|
||||
Shortest: 11
|
||||
Longest: 40
|
||||
|
||||
| | Item | Count | Percent | Cum. Count | Cum. Percent |
|
||||
|:---|:---|---:|---:|---:|---:|
|
||||
| 1 | Escherichia coli | 245 | 49.0% | 245 | 49.0% |
|
||||
| 2 | Coagulase-negative Staphylococcus (CoNS) | 74 | 14.8% | 319 | 63.8% |
|
||||
| 3 | Staphylococcus epidermidis | 38 | 7.6% | 357 | 71.4% |
|
||||
| 4 | Streptococcus pneumoniae | 31 | 6.2% | 388 | 77.6% |
|
||||
| 5 | Staphylococcus hominis | 21 | 4.2% | 409 | 81.8% |
|
||||
| 6 | Proteus mirabilis | 9 | 1.8% | 418 | 83.6% |
|
||||
| 7 | Enterococcus faecium | 8 | 1.6% | 426 | 85.2% |
|
||||
| 8 | Staphylococcus capitis urealyticus | 8 | 1.6% | 434 | 86.8% |
|
||||
| 9 | Enterobacter cloacae | 5 | 1.0% | 439 | 87.8% |
|
||||
| 10 | Enterococcus columbae | 4 | 0.8% | 443 | 88.6% |
|
||||
|
||||
(omitted 28 entries, n = 57 \[11.4%\])
|
||||
|
||||
``` r
|
||||
|
||||
# our transformed antibiotic columns
|
||||
# amoxicillin/clavulanic acid (J01CR02) as an example
|
||||
data %>% freq(AMC_ND2)
|
||||
```
|
||||
|
||||
**Frequency table**
|
||||
|
||||
Class: factor \> ordered \> sir (numeric)
|
||||
Length: 500
|
||||
Levels: 8: S \< SDD \< I \< R \< NI \< WT \< NWT \< NS
|
||||
Available: 481 (96.2%, NA: 19 = 3.8%)
|
||||
Unique: 3
|
||||
|
||||
Drug: Amoxicillin/clavulanic acid (AMC, J01CR02/QJ01CR02)
|
||||
Drug group: Aminopenicillins
|
||||
%SI: 78.59%
|
||||
|
||||
| | Item | Count | Percent | Cum. Count | Cum. Percent |
|
||||
|:----|:-----|------:|--------:|-----------:|-------------:|
|
||||
| 1 | S | 356 | 74.01% | 356 | 74.01% |
|
||||
| 2 | R | 103 | 21.41% | 459 | 95.43% |
|
||||
| 3 | I | 22 | 4.57% | 481 | 100.00% |
|
||||
|
||||
### A first glimpse at results
|
||||
|
||||
An easy `ggplot` will already give a lot of information, using the
|
||||
included [`ggplot_sir()`](https://amr-for-r.org/reference/ggplot_sir.md)
|
||||
function:
|
||||
|
||||
``` r
|
||||
|
||||
data %>%
|
||||
group_by(Country) %>%
|
||||
select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>%
|
||||
ggplot_sir(translate_ab = "ab", facet = "Country", datalabels = FALSE)
|
||||
```
|
||||
|
||||

|
||||
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 65 KiB |
@@ -0,0 +1,672 @@
|
||||
<!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>Estimating Empirical Coverage with WISCA • AMR (for R)</title>
|
||||
<!-- favicons --><link rel="icon" type="image/png" sizes="96x96" href="../favicon-96x96.png">
|
||||
<link rel="icon" type="”image/svg+xml”" href="../favicon.svg">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon.png">
|
||||
<link rel="icon" sizes="any" href="../favicon.ico">
|
||||
<link rel="manifest" href="../site.webmanifest">
|
||||
<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.3.8/bootstrap.min.css" rel="stylesheet">
|
||||
<script src="../deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="../deps/Lato-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/Fira_Code-0.4.10/font.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet">
|
||||
<link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet">
|
||||
<script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet">
|
||||
<script src="../extra.js"></script><meta property="og:title" content="Estimating Empirical Coverage with WISCA">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||
</head>
|
||||
<body>
|
||||
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||||
|
||||
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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="">3.0.1.9091</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 dropdown">
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to">
|
||||
<li><a class="dropdown-item" href="../articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link" href="../articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</ul>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json">
|
||||
</form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="../news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa 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>Estimating Empirical Coverage with WISCA</h1>
|
||||
|
||||
|
||||
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/vignettes/WISCA.Rmd" class="external-link"><code>vignettes/WISCA.Rmd</code></a></small>
|
||||
<div class="d-none name"><code>WISCA.Rmd</code></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section level2">
|
||||
<h2 id="why-wisca">Why WISCA?<a class="anchor" aria-label="anchor" href="#why-wisca"></a>
|
||||
</h2>
|
||||
<p>When a clinician starts empirical antimicrobial therapy, the
|
||||
causative pathogen is unknown. The question they need answered is not
|
||||
<em>“what proportion of</em> E. coli <em>is susceptible to
|
||||
ciprofloxacin?“</em> but rather <em>“what is the probability that this
|
||||
regimen will adequately cover whatever pathogen turns out to be causing
|
||||
my patient’s infection?”</em></p>
|
||||
<p>The traditional cumulative antibiogram, as standardised by CLSI M39,
|
||||
cannot answer that question. It presents susceptibility percentages per
|
||||
species per antibiotic, but:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>It fragments information by organism.</strong> The clinician
|
||||
must mentally combine susceptibility rates across multiple species,
|
||||
weighting by how often each species causes the syndrome, a calculation
|
||||
nobody does at the bedside.</li>
|
||||
<li>
|
||||
<strong>It ignores pathogen incidence.</strong> A species that
|
||||
causes 2% of infections is given the same visual weight as one that
|
||||
causes 60%.</li>
|
||||
<li>
|
||||
<strong>It does not evaluate combination regimens.</strong> Much
|
||||
empirical therapy consists of two or more agents, but the traditional
|
||||
antibiogram only shows monotherapy per organism.</li>
|
||||
<li>
|
||||
<strong>It provides no measure of uncertainty.</strong> A reported
|
||||
“90% susceptible” based on 50 isolates has a 95% confidence interval of
|
||||
roughly 78-97% (Clopper-Pearson), yet the antibiogram presents it as a
|
||||
point estimate without context.</li>
|
||||
</ul>
|
||||
<p><strong>WISCA</strong> (Weighted-Incidence Syndromic Combination
|
||||
Antibiogram) resolves all four limitations. It estimates the probability
|
||||
that a regimen will provide adequate empirical coverage for a given
|
||||
infection syndrome, weighted by local pathogen incidence, with full
|
||||
uncertainty quantification via Bayesian inference.</p>
|
||||
<p>The concept was introduced by Hebert <em>et al.</em> (2012), who
|
||||
demonstrated that traditional antibiogram susceptibility rates could be
|
||||
misleading: ciprofloxacin appeared 84% effective against <em>E.
|
||||
coli</em> in the traditional antibiogram, but WISCA revealed only 62%
|
||||
coverage for UTI and 37% for abdominal infections, because enterococci
|
||||
(intrinsically resistant) and other species contribute substantially to
|
||||
these syndromes. Randhawa <em>et al.</em> (2014) showed that
|
||||
WISCA-guided regimen selection could improve time-to-adequate-coverage
|
||||
on the ICU by over 40%. Bielicki <em>et al.</em> (2016) introduced the
|
||||
Bayesian framework now used in this package, enabling credible intervals
|
||||
and multi-centre pooling. Cook <em>et al.</em> (2022) applied it
|
||||
globally across 52 hospitals in 23 countries.</p>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="the-idea">The idea<a class="anchor" aria-label="anchor" href="#the-idea"></a>
|
||||
</h2>
|
||||
<p>WISCA asks:</p>
|
||||
<blockquote>
|
||||
<p>“What is the <strong>probability</strong> that this regimen
|
||||
<strong>will cover</strong> the pathogen, given the syndrome?”</p>
|
||||
</blockquote>
|
||||
<p>This means combining two quantities:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Pathogen incidence</strong> in the syndrome (how often each
|
||||
species causes it),</li>
|
||||
<li>
|
||||
<strong>Susceptibility</strong> of each pathogen to the
|
||||
regimen.</li>
|
||||
</ul>
|
||||
<p>We can write this as:</p>
|
||||
<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mtext mathvariant="normal">Coverage</mtext><mo>=</mo><munder><mo>∑</mo><mi>i</mi></munder><mo stretchy="false" form="prefix">(</mo><msub><mtext mathvariant="normal">Incidence</mtext><mi>i</mi></msub><mo>×</mo><msub><mtext mathvariant="normal">Susceptibility</mtext><mi>i</mi></msub><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\text{Coverage} = \sum_i (\text{Incidence}_i \times \text{Susceptibility}_i)</annotation></semantics></math></p>
|
||||
<p>For example, suppose in your hospital:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<em>E. coli</em> causes 60% of UTIs, and 90% of <em>E. coli</em> are
|
||||
susceptible to a drug.</li>
|
||||
<li>
|
||||
<em>Klebsiella</em> causes 40% of UTIs, and 70% of
|
||||
<em>Klebsiella</em> are susceptible.</li>
|
||||
</ul>
|
||||
<p>Then:</p>
|
||||
<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mtext mathvariant="normal">Coverage</mtext><mo>=</mo><mo stretchy="false" form="prefix">(</mo><mn>0.6</mn><mo>×</mo><mn>0.9</mn><mo stretchy="false" form="postfix">)</mo><mo>+</mo><mo stretchy="false" form="prefix">(</mo><mn>0.4</mn><mo>×</mo><mn>0.7</mn><mo stretchy="false" form="postfix">)</mo><mo>=</mo><mn>0.82</mn></mrow><annotation encoding="application/x-tex">\text{Coverage} = (0.6 \times 0.9) + (0.4 \times 0.7) = 0.82</annotation></semantics></math></p>
|
||||
<p>That 82% is a far more clinically meaningful number than the
|
||||
species-level “90% of <em>E. coli</em>” and “70% of <em>Klebsiella</em>”
|
||||
reported separately in a traditional antibiogram, because it directly
|
||||
answers the question the clinician actually faces.</p>
|
||||
<p>But in real data, both incidence and susceptibility are
|
||||
<strong>estimated from finite samples</strong>, so they carry
|
||||
uncertainty. A sample of 50 isolates is not a census. WISCA models this
|
||||
uncertainty <strong>probabilistically</strong>, using conjugate Bayesian
|
||||
distributions.</p>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="the-bayesian-engine">The Bayesian engine<a class="anchor" aria-label="anchor" href="#the-bayesian-engine"></a>
|
||||
</h2>
|
||||
<div class="section level3">
|
||||
<h3 id="pathogen-incidence">Pathogen incidence<a class="anchor" aria-label="anchor" href="#pathogen-incidence"></a>
|
||||
</h3>
|
||||
<p>Let:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mi>K</mi><annotation encoding="application/x-tex">K</annotation></semantics></math>
|
||||
be the number of pathogens,</li>
|
||||
<li>
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>𝛂</mi><mo>=</mo><mo stretchy="false" form="prefix">(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo>,</mo><mi>…</mi><mo>,</mo><mn>1</mn><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\boldsymbol{\alpha} = (1, 1, \ldots, 1)</annotation></semantics></math>
|
||||
be a
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mtext mathvariant="normal">Dirichlet</mtext><annotation encoding="application/x-tex">\text{Dirichlet}</annotation></semantics></math>
|
||||
prior (uniform, non-informative),</li>
|
||||
<li>
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>𝐧</mi><mo>=</mo><mo stretchy="false" form="prefix">(</mo><msub><mi>n</mi><mn>1</mn></msub><mo>,</mo><mi>…</mi><mo>,</mo><msub><mi>n</mi><mi>K</mi></msub><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\boldsymbol{n} = (n_1, \ldots, n_K)</annotation></semantics></math>
|
||||
be the observed isolate counts per species.</li>
|
||||
</ul>
|
||||
<p>Then the posterior incidence is:</p>
|
||||
<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>𝐩</mi><mo>∼</mo><mtext mathvariant="normal">Dirichlet</mtext><mo stretchy="false" form="prefix">(</mo><msub><mi>α</mi><mn>1</mn></msub><mo>+</mo><msub><mi>n</mi><mn>1</mn></msub><mo>,</mo><mi>…</mi><mo>,</mo><msub><mi>α</mi><mi>K</mi></msub><mo>+</mo><msub><mi>n</mi><mi>K</mi></msub><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\boldsymbol{p} \sim \text{Dirichlet}(\alpha_1 + n_1, \ldots, \alpha_K + n_K)</annotation></semantics></math></p>
|
||||
<p>To simulate from this, we use:</p>
|
||||
<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>∼</mo><mtext mathvariant="normal">Gamma</mtext><mo stretchy="false" form="prefix">(</mo><msub><mi>α</mi><mi>i</mi></msub><mo>+</mo><msub><mi>n</mi><mi>i</mi></msub><mo>,</mo><mspace width="0.222em"></mspace><mn>1</mn><mo stretchy="false" form="postfix">)</mo><mo>,</mo><mspace width="1.0em"></mspace><msub><mi>p</mi><mi>i</mi></msub><mo>=</mo><mfrac><msub><mi>x</mi><mi>i</mi></msub><mrow><munderover><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><msub><mi>x</mi><mi>j</mi></msub></mrow></mfrac></mrow><annotation encoding="application/x-tex">x_i \sim \text{Gamma}(\alpha_i + n_i,\ 1), \quad p_i = \frac{x_i}{\sum_{j=1}^{K} x_j}</annotation></semantics></math></p>
|
||||
<p>The Dirichlet is the conjugate prior for multinomial data. With the
|
||||
non-informative prior
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mtext mathvariant="normal">Dirichlet</mtext><mo stretchy="false" form="prefix">(</mo><mn>1</mn><mo>,</mo><mn>1</mn><mo>,</mo><mi>…</mi><mo>,</mo><mn>1</mn><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\text{Dirichlet}(1, 1, \ldots, 1)</annotation></semantics></math>,
|
||||
the posterior is dominated by the data once sample sizes are reasonable.
|
||||
With small samples, the posterior is appropriately more diffuse,
|
||||
reflecting genuine uncertainty, and the resulting credible intervals
|
||||
will be wider.</p>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="susceptibility">Susceptibility<a class="anchor" aria-label="anchor" href="#susceptibility"></a>
|
||||
</h3>
|
||||
<p>Each pathogen-regimen pair has a prior and observed data:</p>
|
||||
<ul>
|
||||
<li>Default prior:
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mtext mathvariant="normal">Beta</mtext><mo stretchy="false" form="prefix">(</mo><mn>0.5</mn><mo>,</mo><mn>0.5</mn><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\text{Beta}(0.5, 0.5)</annotation></semantics></math>
|
||||
(Jeffreys prior)</li>
|
||||
<li>Intrinsically resistant pairs:
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mtext mathvariant="normal">Beta</mtext><mo stretchy="false" form="prefix">(</mo><mn>1</mn><mo>,</mo><mn>9999</mn><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\text{Beta}(1, 9999)</annotation></semantics></math>,
|
||||
forcing near-zero susceptibility regardless of observed data (based on
|
||||
EUCAST Expected Resistant Phenotypes)</li>
|
||||
<li>Data:
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mi>S</mi><annotation encoding="application/x-tex">S</annotation></semantics></math>
|
||||
susceptible out of
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mi>N</mi><annotation encoding="application/x-tex">N</annotation></semantics></math>
|
||||
tested</li>
|
||||
</ul>
|
||||
<p>The
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mi>S</mi><annotation encoding="application/x-tex">S</annotation></semantics></math>
|
||||
category could also include values SDD (susceptible, dose-dependent) and
|
||||
I (intermediate [CLSI], or susceptible, increased exposure
|
||||
[EUCAST]).</p>
|
||||
<p>Then the posterior is:</p>
|
||||
<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>θ</mi><mo>∼</mo><mtext mathvariant="normal">Beta</mtext><mo stretchy="false" form="prefix">(</mo><msub><mi>α</mi><mn>0</mn></msub><mo>+</mo><mi>S</mi><mo>,</mo><mspace width="0.222em"></mspace><msub><mi>β</mi><mn>0</mn></msub><mo>+</mo><mi>N</mi><mo>−</mo><mi>S</mi><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\theta \sim \text{Beta}(\alpha_0 + S,\ \beta_0 + N - S)</annotation></semantics></math></p>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="final-coverage-estimate">Final coverage estimate<a class="anchor" aria-label="anchor" href="#final-coverage-estimate"></a>
|
||||
</h3>
|
||||
<p>Putting it together:</p>
|
||||
<ol style="list-style-type: decimal">
|
||||
<li>Simulate pathogen incidence:
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>𝐩</mi><mo>∼</mo><mtext mathvariant="normal">Dirichlet</mtext></mrow><annotation encoding="application/x-tex">\boldsymbol{p} \sim \text{Dirichlet}</annotation></semantics></math>
|
||||
</li>
|
||||
<li>Simulate susceptibility:
|
||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>θ</mi><mi>i</mi></msub><mo>∼</mo><mtext mathvariant="normal">Beta</mtext><mo stretchy="false" form="prefix">(</mo><msub><mi>α</mi><mn>0</mn></msub><mo>+</mo><msub><mi>S</mi><mi>i</mi></msub><mo>,</mo><mspace width="0.222em"></mspace><msub><mi>β</mi><mn>0</mn></msub><mo>+</mo><msub><mi>N</mi><mi>i</mi></msub><mo>−</mo><msub><mi>S</mi><mi>i</mi></msub><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">\theta_i \sim \text{Beta}(\alpha_0 + S_i,\ \beta_0 + N_i - S_i)</annotation></semantics></math>
|
||||
</li>
|
||||
<li>Combine:</li>
|
||||
</ol>
|
||||
<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mtext mathvariant="normal">Coverage</mtext><mo>=</mo><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><msub><mi>p</mi><mi>i</mi></msub><mo>⋅</mo><msub><mi>θ</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\text{Coverage} = \sum_{i=1}^{K} p_i \cdot \theta_i</annotation></semantics></math></p>
|
||||
<p>Repeat this simulation (e.g., 1000 times) and summarise:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Mean</strong> = expected coverage</li>
|
||||
<li>
|
||||
<strong>Quantiles</strong> = credible interval (95% by default)</li>
|
||||
</ul>
|
||||
<p>Because each simulation draws from the full posterior, the resulting
|
||||
distribution of coverage estimates naturally captures the joint
|
||||
uncertainty in both pathogen incidence and susceptibility. The credible
|
||||
interval tells you how confident you can be in the coverage estimate,
|
||||
something a traditional antibiogram never provides.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="when-to-use-wisca-vs--traditional-antibiograms">When to use WISCA vs. traditional antibiograms<a class="anchor" aria-label="anchor" href="#when-to-use-wisca-vs--traditional-antibiograms"></a>
|
||||
</h2>
|
||||
<table class="table">
|
||||
<thead><tr class="header">
|
||||
<th>Goal</th>
|
||||
<th>Recommended approach</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Guide empirical therapy decisions</td>
|
||||
<td><strong>WISCA</strong></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Compare regimens for a syndrome</td>
|
||||
<td><strong>WISCA</strong></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>Evaluate combination regimens</td>
|
||||
<td><strong>WISCA</strong></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Antimicrobial stewardship (A-team)</td>
|
||||
<td><strong>WISCA</strong></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>Track resistance trends per species</td>
|
||||
<td>Traditional / Combination</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>AMR surveillance reporting</td>
|
||||
<td>Traditional / Syndromic</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>Understand species-level epidemiology</td>
|
||||
<td>Traditional</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>In short: if the end goal involves a <em>patient</em> who does not
|
||||
yet have a culture result, WISCA is the appropriate tool. If the end
|
||||
goal is <em>surveillance</em> of resistance at the species level, the
|
||||
traditional antibiogram remains fit for purpose.</p>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="practical-use-in-the-amr-package">Practical use in the <code>AMR</code> package<a class="anchor" aria-label="anchor" href="#practical-use-in-the-amr-package"></a>
|
||||
</h2>
|
||||
<div class="section level3">
|
||||
<h3 id="prepare-data">Prepare data<a class="anchor" aria-label="anchor" href="#prepare-data"></a>
|
||||
</h3>
|
||||
<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://amr-for-r.org">AMR</a></span><span class="op">)</span></span>
|
||||
<span><span class="va">data</span> <span class="op"><-</span> <span class="va">example_isolates</span></span>
|
||||
<span></span>
|
||||
<span><span class="co"># Structure of our data</span></span>
|
||||
<span><span class="va">data</span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># A tibble: 2,000 × 46</span></span></span>
|
||||
<span><span class="co">#> date patient age gender ward mo PEN OXA FLC AMX </span></span>
|
||||
<span><span class="co">#> <span style="color: #949494; font-style: italic;"><date></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;"><chr></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><mo></span> <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #949494; font-style: italic;"><sir></span> <span style="color: #949494; font-style: italic;"><sir></span></span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 1</span> 2002-01-02 A77334 65 F Clinical <span style="color: #949494;">B_</span>ESCHR<span style="color: #949494;">_</span>COLI <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #949494;"> NA</span> <span style="color: #949494;"> NA</span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 2</span> 2002-01-03 A77334 65 F Clinical <span style="color: #949494;">B_</span>ESCHR<span style="color: #949494;">_</span>COLI <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #949494;"> NA</span> <span style="color: #949494;"> NA</span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 3</span> 2002-01-07 067927 45 F ICU <span style="color: #949494;">B_</span>STPHY<span style="color: #949494;">_</span>EPDR <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 4</span> 2002-01-07 067927 45 F ICU <span style="color: #949494;">B_</span>STPHY<span style="color: #949494;">_</span>EPDR <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 5</span> 2002-01-13 067927 45 F ICU <span style="color: #949494;">B_</span>STPHY<span style="color: #949494;">_</span>EPDR <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 6</span> 2002-01-13 067927 45 F ICU <span style="color: #949494;">B_</span>STPHY<span style="color: #949494;">_</span>EPDR <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 7</span> 2002-01-14 462729 78 M Clinical <span style="color: #949494;">B_</span>STPHY<span style="color: #949494;">_</span>AURS <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #080808; background-color: #5FD7AF;"> S </span> <span style="color: #080808; background-color: #FF5F5F;"> R </span></span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 8</span> 2002-01-14 462729 78 M Clinical <span style="color: #949494;">B_</span>STPHY<span style="color: #949494;">_</span>AURS <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #080808; background-color: #5FD7AF;"> S </span> <span style="color: #080808; background-color: #FF5F5F;"> R </span></span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;"> 9</span> 2002-01-16 067927 45 F ICU <span style="color: #949494;">B_</span>STPHY<span style="color: #949494;">_</span>EPDR <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #BCBCBC;">10</span> 2002-01-17 858515 79 F ICU <span style="color: #949494;">B_</span>STPHY<span style="color: #949494;">_</span>EPDR <span style="color: #080808; background-color: #FF5F5F;"> R </span> <span style="color: #949494;"> NA</span> <span style="color: #080808; background-color: #5FD7AF;"> S </span> <span style="color: #949494;"> NA</span> </span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># ℹ 1,990 more rows</span></span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>,</span></span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>,</span></span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>,</span></span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>,</span></span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>,</span></span></span>
|
||||
<span><span class="co">#> <span style="color: #949494;"># IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …</span></span></span>
|
||||
<span></span>
|
||||
<span><span class="co"># Add a synthetic syndrome column for demonstration</span></span>
|
||||
<span><span class="va">data</span><span class="op">$</span><span class="va">syndrome</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/ifelse.html" class="external-link">ifelse</a></span><span class="op">(</span><span class="va">data</span><span class="op">$</span><span class="va">mo</span> <span class="op"><a href="../reference/like.html">%like%</a></span> <span class="st">"coli"</span>, <span class="st">"UTI"</span>, <span class="st">"Non-UTI"</span><span class="op">)</span></span>
|
||||
<span></span>
|
||||
<span><span class="co"># Keep only 10 most common microorganisms</span></span>
|
||||
<span><span class="va">data</span> <span class="op"><-</span> <span class="fu"><a href="../reference/top_n_microorganisms.html">top_n_microorganisms</a></span><span class="op">(</span><span class="va">data</span>, n <span class="op">=</span> <span class="fl">10</span>, property <span class="op">=</span> <span class="st">"species"</span><span class="op">)</span></span>
|
||||
<span><span class="co">#> <span style="color: #00BBBB;">ℹ</span> Using column <span style="color: #00BB00; font-weight: bold;">mo</span> as input for `col_mo`.</span></span></code></pre></div>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="basic-wisca">Basic WISCA<a class="anchor" aria-label="anchor" href="#basic-wisca"></a>
|
||||
</h3>
|
||||
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">wisca</a></span><span class="op">(</span><span class="va">data</span>,</span>
|
||||
<span> antimicrobials <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 class="st">"AMC"</span>, <span class="st">"CIP"</span>, <span class="st">"GEN"</span><span class="op">)</span></span>
|
||||
<span><span class="op">)</span></span></code></pre></div>
|
||||
<table class="table">
|
||||
<thead><tr class="header">
|
||||
<th align="left">Amoxicillin/clavulanic acid</th>
|
||||
<th align="left">Ciprofloxacin</th>
|
||||
<th align="left">Gentamicin</th>
|
||||
</tr></thead>
|
||||
<tbody><tr class="odd">
|
||||
<td align="left">76.8% (74.7-79.1%)</td>
|
||||
<td align="left">81.5% (78.9-84.1%)</td>
|
||||
<td align="left">82.9% (81-84.8%)</td>
|
||||
</tr></tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="use-combination-regimens">Use combination regimens<a class="anchor" aria-label="anchor" href="#use-combination-regimens"></a>
|
||||
</h3>
|
||||
<p>Combination regimens are specified with a <code>+</code> separator.
|
||||
WISCA evaluates whether <em>at least one</em> agent in the combination
|
||||
covers the pathogen:</p>
|
||||
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">wisca</a></span><span class="op">(</span><span class="va">data</span>,</span>
|
||||
<span> antimicrobials <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 class="st">"AMC"</span>, <span class="st">"AMC + CIP"</span>, <span class="st">"AMC + GEN"</span><span class="op">)</span></span>
|
||||
<span><span class="op">)</span></span></code></pre></div>
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col width="24%">
|
||||
<col width="38%">
|
||||
<col width="36%">
|
||||
</colgroup>
|
||||
<thead><tr class="header">
|
||||
<th align="left">Amoxicillin/clavulanic acid</th>
|
||||
<th align="left">Amoxicillin/clavulanic acid + Ciprofloxacin</th>
|
||||
<th align="left">Amoxicillin/clavulanic acid + Gentamicin</th>
|
||||
</tr></thead>
|
||||
<tbody><tr class="odd">
|
||||
<td align="left">76.8% (74.6-78.9%)</td>
|
||||
<td align="left">89.6% (88-91.1%)</td>
|
||||
<td align="left">93.7% (92.5-94.9%)</td>
|
||||
</tr></tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="stratify-by-syndrome">Stratify by syndrome<a class="anchor" aria-label="anchor" href="#stratify-by-syndrome"></a>
|
||||
</h3>
|
||||
<p>Use <code>syndromic_group</code> to produce separate WISCA estimates
|
||||
per clinical stratum. You can pass a column name or any expression:</p>
|
||||
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="va">wisca_out</span> <span class="op"><-</span> <span class="fu"><a href="../reference/antibiogram.html">wisca</a></span><span class="op">(</span><span class="va">data</span>,</span>
|
||||
<span> antimicrobials <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 class="st">"AMC"</span>, <span class="st">"AMC + CIP"</span>, <span class="st">"AMC + GEN"</span><span class="op">)</span>,</span>
|
||||
<span> syndromic_group <span class="op">=</span> <span class="st">"syndrome"</span></span>
|
||||
<span><span class="op">)</span></span>
|
||||
<span><span class="va">wisca_out</span></span></code></pre></div>
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col width="12%">
|
||||
<col width="21%">
|
||||
<col width="34%">
|
||||
<col width="31%">
|
||||
</colgroup>
|
||||
<thead><tr class="header">
|
||||
<th align="left">Syndromic Group</th>
|
||||
<th align="left">Amoxicillin/clavulanic acid</th>
|
||||
<th align="left">Amoxicillin/clavulanic acid + Ciprofloxacin</th>
|
||||
<th align="left">Amoxicillin/clavulanic acid + Gentamicin</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td align="left">Non-UTI</td>
|
||||
<td align="left">72.5% (69.9-75.1%)</td>
|
||||
<td align="left">86.9% (84.8-89%)</td>
|
||||
<td align="left">91.4% (89.5-93%)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td align="left">UTI</td>
|
||||
<td align="left">86% (82.5-89%)</td>
|
||||
<td align="left">94.8% (92.5-96.6%)</td>
|
||||
<td align="left">97.9% (96.3-99%)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>The <code>AMR</code> package is available in 28 languages, which can
|
||||
all be used for the <code><a href="../reference/antibiogram.html">wisca()</a></code> function too:</p>
|
||||
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">wisca</a></span><span class="op">(</span><span class="va">data</span>,</span>
|
||||
<span> antimicrobials <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 class="st">"AMC"</span>, <span class="st">"AMC + CIP"</span>, <span class="st">"AMC + GEN"</span><span class="op">)</span>,</span>
|
||||
<span> syndromic_group <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/grep.html" class="external-link">gsub</a></span><span class="op">(</span><span class="st">"UTI"</span>, <span class="st">"UCI"</span>, <span class="va">data</span><span class="op">$</span><span class="va">syndrome</span><span class="op">)</span>,</span>
|
||||
<span> language <span class="op">=</span> <span class="st">"Spanish"</span></span>
|
||||
<span><span class="op">)</span></span></code></pre></div>
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col width="12%">
|
||||
<col width="21%">
|
||||
<col width="34%">
|
||||
<col width="31%">
|
||||
</colgroup>
|
||||
<thead><tr class="header">
|
||||
<th align="left">Grupo sindrómico</th>
|
||||
<th align="left">Amoxicilina/ácido clavulánico</th>
|
||||
<th align="left">Amoxicilina/ácido clavulánico + Ciprofloxacina</th>
|
||||
<th align="left">Amoxicilina/ácido clavulánico + Gentamicina</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td align="left">Non-UCI</td>
|
||||
<td align="left">72.6% (69.9-75.3%)</td>
|
||||
<td align="left">87% (84.9-89.1%)</td>
|
||||
<td align="left">91.4% (89.7-92.9%)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td align="left">UCI</td>
|
||||
<td align="left">86% (82.7-89%)</td>
|
||||
<td align="left">94.8% (92.7-96.4%)</td>
|
||||
<td align="left">97.9% (96.5-99%)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="interpreting-the-output">Interpreting the output<a class="anchor" aria-label="anchor" href="#interpreting-the-output"></a>
|
||||
</h3>
|
||||
<p>Each row shows the estimated empirical coverage for a regimen, with a
|
||||
95% credible interval. When comparing regimens:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Overlapping credible intervals</strong> mean there is no
|
||||
statistically significant difference in coverage. If a narrower-spectrum
|
||||
regimen overlaps with a broader one, the narrower-spectrum option can be
|
||||
preferred on stewardship grounds.</li>
|
||||
<li>
|
||||
<strong>Non-overlapping credible intervals</strong> indicate a
|
||||
clinically meaningful difference in coverage.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section level3">
|
||||
<h3 id="plotting">Plotting<a class="anchor" aria-label="anchor" href="#plotting"></a>
|
||||
</h3>
|
||||
<p>WISCA results can be visualised in several ways. All plot functions
|
||||
work on the output of <code><a href="../reference/antibiogram.html">wisca()</a></code> (or
|
||||
<code>antibiogram(..., wisca = TRUE)</code>).</p>
|
||||
<p>Below we use the <code>wisca_out</code> object that was generated
|
||||
above.</p>
|
||||
<div class="section level4">
|
||||
<h4 id="coverage-with-credible-intervals">Coverage with credible intervals<a class="anchor" aria-label="anchor" href="#coverage-with-credible-intervals"></a>
|
||||
</h4>
|
||||
<p>The extended <code><a href="https://ggplot2.tidyverse.org/reference/autoplot.html" class="external-link">autoplot()</a></code> method from the
|
||||
<code>ggplot2()</code> package produces a point-and-interval plot
|
||||
showing the coverage estimate and 95% credible interval for each
|
||||
regimen, grouped by syndromic stratum. This is the most direct way to
|
||||
compare regimens: overlapping intervals suggest clinical
|
||||
non-inferiority, non-overlapping intervals indicate a meaningful
|
||||
difference.</p>
|
||||
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="fu">ggplot2</span><span class="fu">::</span><span class="fu"><a href="https://ggplot2.tidyverse.org/reference/autoplot.html" class="external-link">autoplot</a></span><span class="op">(</span><span class="va">wisca_out</span><span class="op">)</span></span></code></pre></div>
|
||||
<p><img src="WISCA_files/figure-html/unnamed-chunk-6-1.png" class="r-plt" alt="" width="720"></p>
|
||||
</div>
|
||||
<div class="section level4">
|
||||
<h4 id="susceptibility-vs--incidence-weight">Susceptibility vs. incidence weight<a class="anchor" aria-label="anchor" href="#susceptibility-vs--incidence-weight"></a>
|
||||
</h4>
|
||||
<p><code><a href="../reference/antibiogram.html">wisca_plot()</a></code> produces a scatter plot of the Monte Carlo
|
||||
simulation draws, showing each pathogen’s susceptibility (x-axis)
|
||||
against its incidence weight (y-axis) for each regimen. Each dot
|
||||
represents one of 1,000 simulated draws, so the spread reflects
|
||||
posterior uncertainty. This plot reveals <em>why</em> a regimen achieves
|
||||
its coverage: you can see which pathogens dominate the syndrome (high on
|
||||
the y-axis), how susceptible they are (position on the x-axis), and how
|
||||
uncertain both estimates are (spread of the cloud). The dashed vertical
|
||||
lines denote the point estimates, i.e., the coverage percentages. The
|
||||
ribbon behind the dashed lines denote the credible interval, which is
|
||||
95% at default.</p>
|
||||
<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">wisca_plot</a></span><span class="op">(</span><span class="va">wisca_out</span><span class="op">)</span></span></code></pre></div>
|
||||
<p><img src="WISCA_files/figure-html/unnamed-chunk-7-1.png" class="r-plt" alt="" width="720"></p>
|
||||
</div>
|
||||
<div class="section level4">
|
||||
<h4 id="posterior-coverage-distributions">Posterior coverage distributions<a class="anchor" aria-label="anchor" href="#posterior-coverage-distributions"></a>
|
||||
</h4>
|
||||
<p>Setting <code>wisca_plot_type = "posterior_coverage"</code> shows the
|
||||
full posterior distribution of coverage for each regimen as a density
|
||||
curve. This is the most complete representation of what the Bayesian
|
||||
model produces: each curve shows the relative likelihood of each
|
||||
coverage value across all 1,000 simulations. Narrow, tall peaks indicate
|
||||
high certainty; wide, flat curves indicate greater uncertainty. Where
|
||||
two curves overlap, the regimens cannot be confidently
|
||||
distinguished.</p>
|
||||
<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">wisca_plot</a></span><span class="op">(</span><span class="va">wisca_out</span>, wisca_plot_type <span class="op">=</span> <span class="st">"posterior_coverage"</span><span class="op">)</span></span></code></pre></div>
|
||||
<p><img src="WISCA_files/figure-html/unnamed-chunk-8-1.png" class="r-plt" alt="" width="720"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="sensible-defaults-which-can-be-customised">Sensible defaults, which can be customised<a class="anchor" aria-label="anchor" href="#sensible-defaults-which-can-be-customised"></a>
|
||||
</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<code>simulations = 1000</code>: number of Monte Carlo draws</li>
|
||||
<li>
|
||||
<code>conf_interval = 0.95</code>: coverage interval width</li>
|
||||
<li>
|
||||
<code>combine_SI = TRUE</code>: count “I” and “SDD” as
|
||||
susceptible</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="practical-considerations">Practical considerations<a class="anchor" aria-label="anchor" href="#practical-considerations"></a>
|
||||
</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>First isolates only</strong>: always deduplicate using
|
||||
<code><a href="../reference/first_isolate.html">first_isolate()</a></code> before running WISCA. Repeat isolates
|
||||
introduce bias.</li>
|
||||
<li>
|
||||
<strong>Pathogen selection</strong>: consider filtering with
|
||||
<code><a href="../reference/top_n_microorganisms.html">top_n_microorganisms()</a></code>. Including rare contaminants
|
||||
(e.g. CoNS without clinical context) can distort estimates and may
|
||||
artificially lower coverage (Cook <em>et al.</em>, 2022).</li>
|
||||
<li>
|
||||
<strong>Sample size</strong>: coverage estimates become reliable
|
||||
with approximately 100+ isolates. For smaller datasets, consider pooling
|
||||
data from multiple sites, but only after verifying that pathogen
|
||||
distributions are sufficiently similar (Bielicki <em>et al.</em>,
|
||||
2016).</li>
|
||||
<li>
|
||||
<strong>Culture request bias</strong>: WISCA is only as good as the
|
||||
data it is based on. If cultures are selectively requested (e.g. only
|
||||
after treatment failure), the dataset will be biased towards resistant
|
||||
isolates. A robust culture policy is essential for reliable
|
||||
estimates.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="limitations">Limitations<a class="anchor" aria-label="anchor" href="#limitations"></a>
|
||||
</h2>
|
||||
<ul>
|
||||
<li>It assumes your data are representative of the patient population
|
||||
you are treating</li>
|
||||
<li>No direct adjustment for patient-level covariates, although these
|
||||
can be passed onto the <code>syndromic_group</code> argument for
|
||||
stratification</li>
|
||||
<li>WISCA does not model resistance trends over time; for that, you
|
||||
might want to use <code>tidymodels</code>, for which we <a href="https://amr-for-r.org/articles/AMR_with_tidymodels.html">wrote a
|
||||
basic introduction</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="summary">Summary<a class="anchor" aria-label="anchor" href="#summary"></a>
|
||||
</h2>
|
||||
<p>WISCA enables:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Empirical regimen comparison</strong>, answering the
|
||||
clinician’s actual question</li>
|
||||
<li>
|
||||
<strong>Syndrome-specific coverage estimation</strong>, stratifiable
|
||||
by any clinical variable</li>
|
||||
<li>
|
||||
<strong>Fully probabilistic interpretation</strong>, with credible
|
||||
intervals that honestly communicate uncertainty</li>
|
||||
</ul>
|
||||
<p>It is available in the <code>AMR</code> package via either:</p>
|
||||
<div class="sourceCode" id="cb9"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">wisca</a></span><span class="op">(</span><span class="va">...</span><span class="op">)</span></span>
|
||||
<span></span>
|
||||
<span><span class="fu"><a href="../reference/antibiogram.html">antibiogram</a></span><span class="op">(</span><span class="va">...</span>, wisca <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
<h2 id="references">References<a class="anchor" aria-label="anchor" href="#references"></a>
|
||||
</h2>
|
||||
<ol style="list-style-type: decimal">
|
||||
<li>Hebert C, Ridgway J, Vekhter B, Brown EC, Weber SG, Robicsek A.
|
||||
Demonstration of the weighted-incidence syndromic combination
|
||||
antibiogram: an empiric prescribing decision aid. <em>Infect Control
|
||||
Hosp Epidemiol.</em> 2012;33(4):381-388. <a href="https://doi.org/10.1086/664768" class="external-link uri">https://doi.org/10.1086/664768</a>
|
||||
</li>
|
||||
<li>Randhawa V, Sarwar S, Walker S, Elligsen M, Palmay L, Daneman N.
|
||||
Weighted-incidence syndromic combination antibiograms to guide empiric
|
||||
treatment of critical care infections: a retrospective cohort study.
|
||||
<em>Crit Care.</em> 2014;18(3):R112. <a href="https://doi.org/10.1186/cc13901" class="external-link uri">https://doi.org/10.1186/cc13901</a>
|
||||
</li>
|
||||
<li>Bielicki JA, Sharland M, Johnson AP, Henderson KL, Cromwell DA.
|
||||
Selecting appropriate empirical antibiotic regimens for paediatric
|
||||
bloodstream infections: application of a Bayesian decision model to
|
||||
local and pooled antimicrobial resistance surveillance data. <em>J
|
||||
Antimicrob Chemother.</em> 2016;71(3):794-802. <a href="https://doi.org/10.1093/jac/dkv397" class="external-link uri">https://doi.org/10.1093/jac/dkv397</a>
|
||||
</li>
|
||||
<li>Cook A, Sharland M, Yau Y, Bielicki J. Improving empiric antibiotic
|
||||
prescribing in pediatric bloodstream infections: a potential application
|
||||
of weighted-incidence syndromic combination antibiograms (WISCA).
|
||||
<em>Expert Rev Anti Infect Ther.</em> 2022;20(3):445-456. <a href="https://doi.org/10.1080/14787210.2021.1967145" class="external-link uri">https://doi.org/10.1080/14787210.2021.1967145</a>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2>
|
||||
</nav></aside>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<footer><div class="pkgdown-footer-left">
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</a>.</p>
|
||||
</div>
|
||||
|
||||
<div class="pkgdown-footer-right">
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,443 @@
|
||||
# Estimating Empirical Coverage with WISCA
|
||||
|
||||
## Why WISCA?
|
||||
|
||||
When a clinician starts empirical antimicrobial therapy, the causative
|
||||
pathogen is unknown. The question they need answered is not *“what
|
||||
proportion of* E. coli *is susceptible to ciprofloxacin?“* but rather
|
||||
*“what is the probability that this regimen will adequately cover
|
||||
whatever pathogen turns out to be causing my patient’s infection?”*
|
||||
|
||||
The traditional cumulative antibiogram, as standardised by CLSI M39,
|
||||
cannot answer that question. It presents susceptibility percentages per
|
||||
species per antibiotic, but:
|
||||
|
||||
- **It fragments information by organism.** The clinician must mentally
|
||||
combine susceptibility rates across multiple species, weighting by how
|
||||
often each species causes the syndrome, a calculation nobody does at
|
||||
the bedside.
|
||||
- **It ignores pathogen incidence.** A species that causes 2% of
|
||||
infections is given the same visual weight as one that causes 60%.
|
||||
- **It does not evaluate combination regimens.** Much empirical therapy
|
||||
consists of two or more agents, but the traditional antibiogram only
|
||||
shows monotherapy per organism.
|
||||
- **It provides no measure of uncertainty.** A reported “90%
|
||||
susceptible” based on 50 isolates has a 95% confidence interval of
|
||||
roughly 78-97% (Clopper-Pearson), yet the antibiogram presents it as a
|
||||
point estimate without context.
|
||||
|
||||
**WISCA** (Weighted-Incidence Syndromic Combination Antibiogram)
|
||||
resolves all four limitations. It estimates the probability that a
|
||||
regimen will provide adequate empirical coverage for a given infection
|
||||
syndrome, weighted by local pathogen incidence, with full uncertainty
|
||||
quantification via Bayesian inference.
|
||||
|
||||
The concept was introduced by Hebert *et al.* (2012), who demonstrated
|
||||
that traditional antibiogram susceptibility rates could be misleading:
|
||||
ciprofloxacin appeared 84% effective against *E. coli* in the
|
||||
traditional antibiogram, but WISCA revealed only 62% coverage for UTI
|
||||
and 37% for abdominal infections, because enterococci (intrinsically
|
||||
resistant) and other species contribute substantially to these
|
||||
syndromes. Randhawa *et al.* (2014) showed that WISCA-guided regimen
|
||||
selection could improve time-to-adequate-coverage on the ICU by over
|
||||
40%. Bielicki *et al.* (2016) introduced the Bayesian framework now used
|
||||
in this package, enabling credible intervals and multi-centre pooling.
|
||||
Cook *et al.* (2022) applied it globally across 52 hospitals in 23
|
||||
countries.
|
||||
|
||||
## The idea
|
||||
|
||||
WISCA asks:
|
||||
|
||||
> “What is the **probability** that this regimen **will cover** the
|
||||
> pathogen, given the syndrome?”
|
||||
|
||||
This means combining two quantities:
|
||||
|
||||
- **Pathogen incidence** in the syndrome (how often each species causes
|
||||
it),
|
||||
- **Susceptibility** of each pathogen to the regimen.
|
||||
|
||||
We can write this as:
|
||||
|
||||
``` math
|
||||
\text{Coverage} = \sum_i (\text{Incidence}_i \times \text{Susceptibility}_i)
|
||||
```
|
||||
|
||||
For example, suppose in your hospital:
|
||||
|
||||
- *E. coli* causes 60% of UTIs, and 90% of *E. coli* are susceptible to
|
||||
a drug.
|
||||
- *Klebsiella* causes 40% of UTIs, and 70% of *Klebsiella* are
|
||||
susceptible.
|
||||
|
||||
Then:
|
||||
|
||||
``` math
|
||||
\text{Coverage} = (0.6 \times 0.9) + (0.4 \times 0.7) = 0.82
|
||||
```
|
||||
|
||||
That 82% is a far more clinically meaningful number than the
|
||||
species-level “90% of *E. coli*” and “70% of *Klebsiella*” reported
|
||||
separately in a traditional antibiogram, because it directly answers the
|
||||
question the clinician actually faces.
|
||||
|
||||
But in real data, both incidence and susceptibility are **estimated from
|
||||
finite samples**, so they carry uncertainty. A sample of 50 isolates is
|
||||
not a census. WISCA models this uncertainty **probabilistically**, using
|
||||
conjugate Bayesian distributions.
|
||||
|
||||
## The Bayesian engine
|
||||
|
||||
### Pathogen incidence
|
||||
|
||||
Let:
|
||||
|
||||
- $`K`$ be the number of pathogens,
|
||||
- $`\boldsymbol{\alpha} = (1, 1, \ldots, 1)`$ be a $`\text{Dirichlet}`$
|
||||
prior (uniform, non-informative),
|
||||
- $`\boldsymbol{n} = (n_1, \ldots, n_K)`$ be the observed isolate counts
|
||||
per species.
|
||||
|
||||
Then the posterior incidence is:
|
||||
|
||||
``` math
|
||||
\boldsymbol{p} \sim \text{Dirichlet}(\alpha_1 + n_1, \ldots, \alpha_K + n_K)
|
||||
```
|
||||
|
||||
To simulate from this, we use:
|
||||
|
||||
``` math
|
||||
x_i \sim \text{Gamma}(\alpha_i + n_i,\ 1), \quad p_i = \frac{x_i}{\sum_{j=1}^{K} x_j}
|
||||
```
|
||||
|
||||
The Dirichlet is the conjugate prior for multinomial data. With the
|
||||
non-informative prior $`\text{Dirichlet}(1, 1, \ldots, 1)`$, the
|
||||
posterior is dominated by the data once sample sizes are reasonable.
|
||||
With small samples, the posterior is appropriately more diffuse,
|
||||
reflecting genuine uncertainty, and the resulting credible intervals
|
||||
will be wider.
|
||||
|
||||
### Susceptibility
|
||||
|
||||
Each pathogen-regimen pair has a prior and observed data:
|
||||
|
||||
- Default prior: $`\text{Beta}(0.5, 0.5)`$ (Jeffreys prior)
|
||||
- Intrinsically resistant pairs: $`\text{Beta}(1, 9999)`$, forcing
|
||||
near-zero susceptibility regardless of observed data (based on EUCAST
|
||||
Expected Resistant Phenotypes)
|
||||
- Data: $`S`$ susceptible out of $`N`$ tested
|
||||
|
||||
The $`S`$ category could also include values SDD (susceptible,
|
||||
dose-dependent) and I (intermediate \[CLSI\], or susceptible, increased
|
||||
exposure \[EUCAST\]).
|
||||
|
||||
Then the posterior is:
|
||||
|
||||
``` math
|
||||
\theta \sim \text{Beta}(\alpha_0 + S,\ \beta_0 + N - S)
|
||||
```
|
||||
|
||||
### Final coverage estimate
|
||||
|
||||
Putting it together:
|
||||
|
||||
1. Simulate pathogen incidence:
|
||||
$`\boldsymbol{p} \sim \text{Dirichlet}`$
|
||||
2. Simulate susceptibility:
|
||||
$`\theta_i \sim \text{Beta}(\alpha_0 + S_i,\ \beta_0 + N_i - S_i)`$
|
||||
3. Combine:
|
||||
|
||||
``` math
|
||||
\text{Coverage} = \sum_{i=1}^{K} p_i \cdot \theta_i
|
||||
```
|
||||
|
||||
Repeat this simulation (e.g., 1000 times) and summarise:
|
||||
|
||||
- **Mean** = expected coverage
|
||||
- **Quantiles** = credible interval (95% by default)
|
||||
|
||||
Because each simulation draws from the full posterior, the resulting
|
||||
distribution of coverage estimates naturally captures the joint
|
||||
uncertainty in both pathogen incidence and susceptibility. The credible
|
||||
interval tells you how confident you can be in the coverage estimate,
|
||||
something a traditional antibiogram never provides.
|
||||
|
||||
## When to use WISCA vs. traditional antibiograms
|
||||
|
||||
| Goal | Recommended approach |
|
||||
|---------------------------------------|---------------------------|
|
||||
| Guide empirical therapy decisions | **WISCA** |
|
||||
| Compare regimens for a syndrome | **WISCA** |
|
||||
| Evaluate combination regimens | **WISCA** |
|
||||
| Antimicrobial stewardship (A-team) | **WISCA** |
|
||||
| Track resistance trends per species | Traditional / Combination |
|
||||
| AMR surveillance reporting | Traditional / Syndromic |
|
||||
| Understand species-level epidemiology | Traditional |
|
||||
|
||||
In short: if the end goal involves a *patient* who does not yet have a
|
||||
culture result, WISCA is the appropriate tool. If the end goal is
|
||||
*surveillance* of resistance at the species level, the traditional
|
||||
antibiogram remains fit for purpose.
|
||||
|
||||
## Practical use in the `AMR` package
|
||||
|
||||
### Prepare data
|
||||
|
||||
``` r
|
||||
|
||||
library(AMR)
|
||||
data <- example_isolates
|
||||
|
||||
# Structure of our data
|
||||
data
|
||||
#> # A tibble: 2,000 × 46
|
||||
#> date patient age gender ward mo PEN OXA FLC AMX
|
||||
#> <date> <chr> <dbl> <chr> <chr> <mo> <sir> <sir> <sir> <sir>
|
||||
#> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA
|
||||
#> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA
|
||||
#> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R
|
||||
#> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R
|
||||
#> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA
|
||||
#> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA
|
||||
#> # ℹ 1,990 more rows
|
||||
#> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>,
|
||||
#> # CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>,
|
||||
#> # TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>,
|
||||
#> # FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>,
|
||||
#> # TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>,
|
||||
#> # IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …
|
||||
|
||||
# Add a synthetic syndrome column for demonstration
|
||||
data$syndrome <- ifelse(data$mo %like% "coli", "UTI", "Non-UTI")
|
||||
|
||||
# Keep only 10 most common microorganisms
|
||||
data <- top_n_microorganisms(data, n = 10, property = "species")
|
||||
#> ℹ Using column mo as input for `col_mo`.
|
||||
```
|
||||
|
||||
### Basic WISCA
|
||||
|
||||
``` r
|
||||
|
||||
wisca(data,
|
||||
antimicrobials = c("AMC", "CIP", "GEN")
|
||||
)
|
||||
```
|
||||
|
||||
| Amoxicillin/clavulanic acid | Ciprofloxacin | Gentamicin |
|
||||
|:----------------------------|:-------------------|:-----------------|
|
||||
| 76.8% (74.7-79.1%) | 81.5% (78.9-84.1%) | 82.9% (81-84.8%) |
|
||||
|
||||
### Use combination regimens
|
||||
|
||||
Combination regimens are specified with a `+` separator. WISCA evaluates
|
||||
whether *at least one* agent in the combination covers the pathogen:
|
||||
|
||||
``` r
|
||||
|
||||
wisca(data,
|
||||
antimicrobials = c("AMC", "AMC + CIP", "AMC + GEN")
|
||||
)
|
||||
```
|
||||
|
||||
| Amoxicillin/clavulanic acid | Amoxicillin/clavulanic acid + Ciprofloxacin | Amoxicillin/clavulanic acid + Gentamicin |
|
||||
|:---|:---|:---|
|
||||
| 76.8% (74.6-78.9%) | 89.6% (88-91.1%) | 93.7% (92.5-94.9%) |
|
||||
|
||||
### Stratify by syndrome
|
||||
|
||||
Use `syndromic_group` to produce separate WISCA estimates per clinical
|
||||
stratum. You can pass a column name or any expression:
|
||||
|
||||
``` r
|
||||
|
||||
wisca_out <- wisca(data,
|
||||
antimicrobials = c("AMC", "AMC + CIP", "AMC + GEN"),
|
||||
syndromic_group = "syndrome"
|
||||
)
|
||||
wisca_out
|
||||
```
|
||||
|
||||
| Syndromic Group | Amoxicillin/clavulanic acid | Amoxicillin/clavulanic acid + Ciprofloxacin | Amoxicillin/clavulanic acid + Gentamicin |
|
||||
|:---|:---|:---|:---|
|
||||
| Non-UTI | 72.5% (69.9-75.1%) | 86.9% (84.8-89%) | 91.4% (89.5-93%) |
|
||||
| UTI | 86% (82.5-89%) | 94.8% (92.5-96.6%) | 97.9% (96.3-99%) |
|
||||
|
||||
The `AMR` package is available in 28 languages, which can all be used
|
||||
for the [`wisca()`](https://amr-for-r.org/reference/antibiogram.md)
|
||||
function too:
|
||||
|
||||
``` r
|
||||
|
||||
wisca(data,
|
||||
antimicrobials = c("AMC", "AMC + CIP", "AMC + GEN"),
|
||||
syndromic_group = gsub("UTI", "UCI", data$syndrome),
|
||||
language = "Spanish"
|
||||
)
|
||||
```
|
||||
|
||||
| Grupo sindrómico | Amoxicilina/ácido clavulánico | Amoxicilina/ácido clavulánico + Ciprofloxacina | Amoxicilina/ácido clavulánico + Gentamicina |
|
||||
|:---|:---|:---|:---|
|
||||
| Non-UCI | 72.6% (69.9-75.3%) | 87% (84.9-89.1%) | 91.4% (89.7-92.9%) |
|
||||
| UCI | 86% (82.7-89%) | 94.8% (92.7-96.4%) | 97.9% (96.5-99%) |
|
||||
|
||||
### Interpreting the output
|
||||
|
||||
Each row shows the estimated empirical coverage for a regimen, with a
|
||||
95% credible interval. When comparing regimens:
|
||||
|
||||
- **Overlapping credible intervals** mean there is no statistically
|
||||
significant difference in coverage. If a narrower-spectrum regimen
|
||||
overlaps with a broader one, the narrower-spectrum option can be
|
||||
preferred on stewardship grounds.
|
||||
- **Non-overlapping credible intervals** indicate a clinically
|
||||
meaningful difference in coverage.
|
||||
|
||||
### Plotting
|
||||
|
||||
WISCA results can be visualised in several ways. All plot functions work
|
||||
on the output of
|
||||
[`wisca()`](https://amr-for-r.org/reference/antibiogram.md) (or
|
||||
`antibiogram(..., wisca = TRUE)`).
|
||||
|
||||
Below we use the `wisca_out` object that was generated above.
|
||||
|
||||
#### Coverage with credible intervals
|
||||
|
||||
The extended
|
||||
[`autoplot()`](https://ggplot2.tidyverse.org/reference/autoplot.html)
|
||||
method from the `ggplot2()` package produces a point-and-interval plot
|
||||
showing the coverage estimate and 95% credible interval for each
|
||||
regimen, grouped by syndromic stratum. This is the most direct way to
|
||||
compare regimens: overlapping intervals suggest clinical
|
||||
non-inferiority, non-overlapping intervals indicate a meaningful
|
||||
difference.
|
||||
|
||||
``` r
|
||||
|
||||
ggplot2::autoplot(wisca_out)
|
||||
```
|
||||
|
||||

|
||||
|
||||
#### Susceptibility vs. incidence weight
|
||||
|
||||
[`wisca_plot()`](https://amr-for-r.org/reference/antibiogram.md)
|
||||
produces a scatter plot of the Monte Carlo simulation draws, showing
|
||||
each pathogen’s susceptibility (x-axis) against its incidence weight
|
||||
(y-axis) for each regimen. Each dot represents one of 1,000 simulated
|
||||
draws, so the spread reflects posterior uncertainty. This plot reveals
|
||||
*why* a regimen achieves its coverage: you can see which pathogens
|
||||
dominate the syndrome (high on the y-axis), how susceptible they are
|
||||
(position on the x-axis), and how uncertain both estimates are (spread
|
||||
of the cloud). The dashed vertical lines denote the point estimates,
|
||||
i.e., the coverage percentages. The ribbon behind the dashed lines
|
||||
denote the credible interval, which is 95% at default.
|
||||
|
||||
``` r
|
||||
|
||||
wisca_plot(wisca_out)
|
||||
```
|
||||
|
||||

|
||||
|
||||
#### Posterior coverage distributions
|
||||
|
||||
Setting `wisca_plot_type = "posterior_coverage"` shows the full
|
||||
posterior distribution of coverage for each regimen as a density curve.
|
||||
This is the most complete representation of what the Bayesian model
|
||||
produces: each curve shows the relative likelihood of each coverage
|
||||
value across all 1,000 simulations. Narrow, tall peaks indicate high
|
||||
certainty; wide, flat curves indicate greater uncertainty. Where two
|
||||
curves overlap, the regimens cannot be confidently distinguished.
|
||||
|
||||
``` r
|
||||
|
||||
wisca_plot(wisca_out, wisca_plot_type = "posterior_coverage")
|
||||
```
|
||||
|
||||

|
||||
|
||||
## Sensible defaults, which can be customised
|
||||
|
||||
- `simulations = 1000`: number of Monte Carlo draws
|
||||
- `conf_interval = 0.95`: coverage interval width
|
||||
- `combine_SI = TRUE`: count “I” and “SDD” as susceptible
|
||||
|
||||
## Practical considerations
|
||||
|
||||
- **First isolates only**: always deduplicate using
|
||||
[`first_isolate()`](https://amr-for-r.org/reference/first_isolate.md)
|
||||
before running WISCA. Repeat isolates introduce bias.
|
||||
- **Pathogen selection**: consider filtering with
|
||||
[`top_n_microorganisms()`](https://amr-for-r.org/reference/top_n_microorganisms.md).
|
||||
Including rare contaminants (e.g. CoNS without clinical context) can
|
||||
distort estimates and may artificially lower coverage (Cook *et al.*,
|
||||
2022).
|
||||
- **Sample size**: coverage estimates become reliable with approximately
|
||||
100+ isolates. For smaller datasets, consider pooling data from
|
||||
multiple sites, but only after verifying that pathogen distributions
|
||||
are sufficiently similar (Bielicki *et al.*, 2016).
|
||||
- **Culture request bias**: WISCA is only as good as the data it is
|
||||
based on. If cultures are selectively requested (e.g. only after
|
||||
treatment failure), the dataset will be biased towards resistant
|
||||
isolates. A robust culture policy is essential for reliable estimates.
|
||||
|
||||
## Limitations
|
||||
|
||||
- It assumes your data are representative of the patient population you
|
||||
are treating
|
||||
- No direct adjustment for patient-level covariates, although these can
|
||||
be passed onto the `syndromic_group` argument for stratification
|
||||
- WISCA does not model resistance trends over time; for that, you might
|
||||
want to use `tidymodels`, for which we [wrote a basic
|
||||
introduction](https://amr-for-r.org/articles/AMR_with_tidymodels.html)
|
||||
|
||||
## Summary
|
||||
|
||||
WISCA enables:
|
||||
|
||||
- **Empirical regimen comparison**, answering the clinician’s actual
|
||||
question
|
||||
- **Syndrome-specific coverage estimation**, stratifiable by any
|
||||
clinical variable
|
||||
- **Fully probabilistic interpretation**, with credible intervals that
|
||||
honestly communicate uncertainty
|
||||
|
||||
It is available in the `AMR` package via either:
|
||||
|
||||
``` r
|
||||
|
||||
wisca(...)
|
||||
|
||||
antibiogram(..., wisca = TRUE)
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
1. Hebert C, Ridgway J, Vekhter B, Brown EC, Weber SG, Robicsek A.
|
||||
Demonstration of the weighted-incidence syndromic combination
|
||||
antibiogram: an empiric prescribing decision aid. *Infect Control
|
||||
Hosp Epidemiol.* 2012;33(4):381-388.
|
||||
<https://doi.org/10.1086/664768>
|
||||
2. Randhawa V, Sarwar S, Walker S, Elligsen M, Palmay L, Daneman N.
|
||||
Weighted-incidence syndromic combination antibiograms to guide
|
||||
empiric treatment of critical care infections: a retrospective
|
||||
cohort study. *Crit Care.* 2014;18(3):R112.
|
||||
<https://doi.org/10.1186/cc13901>
|
||||
3. Bielicki JA, Sharland M, Johnson AP, Henderson KL, Cromwell DA.
|
||||
Selecting appropriate empirical antibiotic regimens for paediatric
|
||||
bloodstream infections: application of a Bayesian decision model to
|
||||
local and pooled antimicrobial resistance surveillance data. *J
|
||||
Antimicrob Chemother.* 2016;71(3):794-802.
|
||||
<https://doi.org/10.1093/jac/dkv397>
|
||||
4. Cook A, Sharland M, Yau Y, Bielicki J. Improving empiric antibiotic
|
||||
prescribing in pediatric bloodstream infections: a potential
|
||||
application of weighted-incidence syndromic combination antibiograms
|
||||
(WISCA). *Expert Rev Anti Infect Ther.* 2022;20(3):445-456.
|
||||
<https://doi.org/10.1080/14787210.2021.1967145>
|
||||
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 173 KiB |
|
After Width: | Height: | Size: 88 KiB |
@@ -0,0 +1,565 @@
|
||||
# Download data sets for download / own use
|
||||
|
||||
All reference data (about microorganisms, antimicrobials, SIR
|
||||
interpretation, EUCAST rules, etc.) in this `AMR` package are reliable,
|
||||
up-to-date and freely available. We continually export our data sets to
|
||||
formats for use in R, MS Excel, Apache Feather, Apache Parquet, SPSS,
|
||||
and Stata. We also provide tab-separated text files that are
|
||||
machine-readable and suitable for input in any software program, such as
|
||||
laboratory information systems.
|
||||
|
||||
> If you are working in Python, be sure to use our [AMR for
|
||||
> Python](https://amr-for-r.org/articles/AMR_for_Python.html) package.
|
||||
> It allows all relevant AMR data sets to be natively available in
|
||||
> Python.
|
||||
|
||||
## `microorganisms`: Full Microbial Taxonomy
|
||||
|
||||
A data set with 96 982 rows and 28 columns, containing the following
|
||||
column names:
|
||||
*mo*, *fullname*, *status*, *domain*, *kingdom*, *phylum*, *class*,
|
||||
*order*, *family*, *genus*, *species*, *subspecies*, *rank*, *ref*,
|
||||
*oxygen_tolerance*, *morphology*, *source*, *lpsn*, *lpsn_parent*,
|
||||
*lpsn_renamed_to*, *mycobank*, *mycobank_parent*, *mycobank_renamed_to*,
|
||||
*gbif*, *gbif_parent*, *gbif_renamed_to*, *prevalence*, and *snomed*.
|
||||
|
||||
This data set is in R available as `microorganisms`, after you load the
|
||||
`AMR` package.
|
||||
|
||||
It was last updated on 22 June 2026 23:38:13 UTC. Find more info about
|
||||
the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/microorganisms.html).
|
||||
|
||||
**Direct download links:**
|
||||
|
||||
- Download as [original R Data Structure (RDS)
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.rds)
|
||||
(2.2 MB)
|
||||
- Download as [tab-separated text
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.txt)
|
||||
(23.1 MB)
|
||||
- Download as [Microsoft Excel
|
||||
workbook](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.xlsx)
|
||||
(11.4 MB)
|
||||
- Download as [Apache Feather
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.feather)
|
||||
(11 MB)
|
||||
- Download as [Apache Parquet
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.parquet)
|
||||
(4.6 MB)
|
||||
- Download as [IBM SPSS Statistics data
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.sav)
|
||||
(35.2 MB)
|
||||
- Download as [Stata DTA
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.dta)
|
||||
(96.6 MB)
|
||||
|
||||
**NOTE: The exported files for SPSS and Stata contain only the first 50
|
||||
SNOMED codes per record, as their file size would otherwise exceed 100
|
||||
MB; the file size limit of GitHub.** Their file structures and
|
||||
compression techniques are very inefficient. Advice? Use R instead. It’s
|
||||
free and much better in many ways.
|
||||
|
||||
The tab-separated text file and Microsoft Excel workbook both contain
|
||||
all SNOMED codes as comma separated values.
|
||||
|
||||
**Example content**
|
||||
|
||||
Included (sub)species per taxonomic kingdom:
|
||||
|
||||
| Kingdom | Number of (sub)species |
|
||||
|:-----------------:|:----------------------:|
|
||||
| | 20 |
|
||||
| (unknown kingdom) | 8 |
|
||||
| Animalia | 2 015 |
|
||||
| Archaea | 150 |
|
||||
| Bacillati | 24 200 |
|
||||
| Bacteria | 2 |
|
||||
|
||||
First 6 rows when filtering on genus *Escherichia*:
|
||||
|
||||
| mo | fullname | status | domain | kingdom | phylum | class | order | family | genus | species | subspecies | rank | ref | oxygen_tolerance | morphology | source | lpsn | lpsn_parent | lpsn_renamed_to | mycobank | mycobank_parent | mycobank_renamed_to | gbif | gbif_parent | gbif_renamed_to | prevalence | snomed |
|
||||
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|
||||
| B_ESCHR | Escherichia | accepted | Bacteria | Pseudomonadati | Pseudomonadota | Gammaproteobacteria | Enterobacterales | Enterobacteriaceae | Escherichia | | | genus | Castellani et al., 1919 | facultative anaerobe | rods | LPSN | 515602 | 482 | | | | | CS33H | CRYWR | | 1 | 407310004, 407251000, 407281008, … |
|
||||
| B_ESCHR_ADCR | Escherichia adecarboxylata | synonym | Bacteria | Pseudomonadati | Pseudomonadota | Gammaproteobacteria | Enterobacterales | Enterobacteriaceae | Escherichia | adecarboxylata | | species | Leclerc, 1962 | likely facultative anaerobe | rods | LPSN | 776052 | 515602 | 777447 | | | | CS33J | CS33H | 3SVX6 | 1 | |
|
||||
| B_ESCHR_ALBR | Escherichia albertii | accepted | Bacteria | Pseudomonadati | Pseudomonadota | Gammaproteobacteria | Enterobacterales | Enterobacteriaceae | Escherichia | albertii | | species | Huys et al., 2003 | facultative anaerobe | rods | LPSN | 776053 | 515602 | | | | | 3BGTB | CS33H | | 1 | 419388003 |
|
||||
| B_ESCHR_BLTT | Escherichia blattae | synonym | Bacteria | Pseudomonadati | Pseudomonadota | Gammaproteobacteria | Enterobacterales | Enterobacteriaceae | Escherichia | blattae | | species | Burgess et al., 1973 | likely facultative anaerobe | rods | LPSN | 776056 | 515602 | 788468 | | | | CS33K | CS33H | 4X4P7 | 1 | |
|
||||
| B_ESCHR_COLI | Escherichia coli | accepted | Bacteria | Pseudomonadati | Pseudomonadota | Gammaproteobacteria | Enterobacterales | Enterobacteriaceae | Escherichia | coli | | species | Castellani et al., 1919 | facultative anaerobe | rods | LPSN | 776057 | 515602 | | | | | NT3L7 | CS33H | | 1 | 1095001000112106, 715307006, 737528008, … |
|
||||
| B_ESCHR_COLI_COLI | Escherichia coli coli | accepted | Bacteria | Pseudomonadati | Pseudomonadota | Gammaproteobacteria | Enterobacterales | Enterobacteriaceae | Escherichia | coli | coli | subspecies | | | | GBIF | | 776057 | | | | | 12233256 | NT3L7 | | 1 | |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `antimicrobials`: Antibiotic and Antifungal Drugs
|
||||
|
||||
A data set with 505 rows and 14 columns, containing the following column
|
||||
names:
|
||||
*ab*, *cid*, *name*, *group*, *atc*, *atc_group1*, *atc_group2*,
|
||||
*abbreviations*, *synonyms*, *oral_ddd*, *oral_units*, *iv_ddd*,
|
||||
*iv_units*, and *loinc*.
|
||||
|
||||
This data set is in R available as `antimicrobials`, after you load the
|
||||
`AMR` package.
|
||||
|
||||
It was last updated on 13 August 2026 09:12:12 UTC. Find more info about
|
||||
the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/antimicrobials.html).
|
||||
|
||||
**Direct download links:**
|
||||
|
||||
- Download as [original R Data Structure (RDS)
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antimicrobials.rds)
|
||||
(44 kB)
|
||||
- Download as [tab-separated text
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antimicrobials.txt)
|
||||
(0.1 MB)
|
||||
- Download as [Microsoft Excel
|
||||
workbook](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antimicrobials.xlsx)
|
||||
(79 kB)
|
||||
- Download as [Apache Feather
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antimicrobials.feather)
|
||||
(0.1 MB)
|
||||
- Download as [Apache Parquet
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antimicrobials.parquet)
|
||||
(94 kB)
|
||||
- Download as [IBM SPSS Statistics data
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antimicrobials.sav)
|
||||
(0.4 MB)
|
||||
- Download as [Stata DTA
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antimicrobials.dta)
|
||||
(10 kB)
|
||||
|
||||
The tab-separated text, Microsoft Excel, SPSS, and Stata files all
|
||||
contain the ATC codes, common abbreviations, trade names and LOINC codes
|
||||
as comma separated values.
|
||||
|
||||
**Example content**
|
||||
|
||||
| ab | cid | name | group | atc | atc_group1 | atc_group2 | abbreviations | synonyms | oral_ddd | oral_units | iv_ddd | iv_units | loinc |
|
||||
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|
||||
| AMK | 37768 | Amikacin | Aminoglycosides | D06AX12, J01GB06, QD06AX12, … | Aminoglycoside antibacterials | Other aminoglycosides | ak, ami, amik, … | amikacillin, amikacina, amikacine, … | | | 1.0 | g | 101493-5, 11-7, 12-5, … |
|
||||
| AMX | 33613 | Amoxicillin | Aminopenicillins, Penicillins, Beta-lactams | J01CA04, QG51AA03, QJ01CA04 | Beta-lactam antibacterials, penicillins | Penicillins with extended spectrum | ac, amox, amoxic, … | acuotricina, alfamox, alfida, … | 1.5 | g | 3.0 | g | 101498-4, 15-8, 16-6, … |
|
||||
| AMC | 23665637 | Amoxicillin/clavulanic acid | Aminopenicillins, Penicillins, Beta-lactams, … | J01CR02, QJ01CR02 | Beta-lactam antibacterials, penicillins | Combinations of penicillins, incl. beta-lactamase inhibitors | a/c, amcl, aml, … | amocla, amoclan, amoclav, … | 1.5 | g | 3.0 | g | |
|
||||
| AMP | 6249 | Ampicillin | Aminopenicillins, Penicillins, Beta-lactams | J01CA01, QJ01CA01, QJ51CA01, … | Beta-lactam antibacterials, penicillins | Penicillins with extended spectrum | am, amp, amp100, … | adobacillin, alpen, amblosin, … | 2.0 | g | 6.0 | g | 101477-8, 101478-6, 18864-9, … |
|
||||
| AZM | 447043 | Azithromycin | Macrolides | J01FA10, QJ01FA10, QS01AA26, … | Macrolides, lincosamides and streptogramins | Macrolides | az, azi, azit, … | aritromicina, aruzilina, azasite, … | 0.3 | g | 0.5 | g | 100043-9, 16420-2, 16421-0, … |
|
||||
| PEN | 5904 | Benzylpenicillin | Penicillins, Beta-lactams | J01CE01, QJ01CE01, QJ51CE01, … | Combinations of antibacterials | Combinations of antibacterials | bepe, pen, peni, … | bencilpenicilina, benzopenicillin, benzylpenicilline, … | | | 3.6 | g | |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `clinical_breakpoints`: Interpretation from MIC values & disk diameters to SIR
|
||||
|
||||
A data set with 45 735 rows and 14 columns, containing the following
|
||||
column names:
|
||||
*guideline*, *type*, *host*, *method*, *site*, *mo*, *rank_index*, *ab*,
|
||||
*ref_tbl*, *disk_dose*, *breakpoint_S*, *breakpoint_R*, *uti*, and
|
||||
*is_SDD*.
|
||||
|
||||
This data set is in R available as `clinical_breakpoints`, after you
|
||||
load the `AMR` package.
|
||||
|
||||
It was last updated on 9 July 2026 15:14:59 UTC. Find more info about
|
||||
the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/clinical_breakpoints.html).
|
||||
|
||||
**Direct download links:**
|
||||
|
||||
- Download as [original R Data Structure (RDS)
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.rds)
|
||||
(93 kB)
|
||||
- Download as [tab-separated text
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.txt)
|
||||
(4.2 MB)
|
||||
- Download as [Microsoft Excel
|
||||
workbook](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.xlsx)
|
||||
(2.7 MB)
|
||||
- Download as [Apache Feather
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.feather)
|
||||
(2 MB)
|
||||
- Download as [Apache Parquet
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.parquet)
|
||||
(0.2 MB)
|
||||
- Download as [IBM SPSS Statistics data
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.sav)
|
||||
(7.5 MB)
|
||||
- Download as [Stata DTA
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.dta)
|
||||
(12.6 MB)
|
||||
|
||||
**Example content**
|
||||
|
||||
| guideline | type | host | method | site | mo | mo_name | rank_index | ab | ab_name | ref_tbl | disk_dose | breakpoint_S | breakpoint_R | uti | is_SDD |
|
||||
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|
||||
| EUCAST 2026 | human | human | DISK | | B_ACHRMB_XYLS | Achromobacter xylosoxidans | 2 | MEM | Meropenem | A. xylosoxidans | 10 mcg | 26.000 | 20.000 | FALSE | FALSE |
|
||||
| EUCAST 2026 | human | human | MIC | | B_ACHRMB_XYLS | Achromobacter xylosoxidans | 2 | MEM | Meropenem | A. xylosoxidans | | 1.000 | 4.000 | FALSE | FALSE |
|
||||
| EUCAST 2026 | human | human | DISK | | B_ACHRMB_XYLS | Achromobacter xylosoxidans | 2 | SXT | Trimethoprim/sulfamethoxazole | A. xylosoxidans | 1.25/23.75 mcg | 26.000 | 26.000 | FALSE | FALSE |
|
||||
| EUCAST 2026 | human | human | MIC | | B_ACHRMB_XYLS | Achromobacter xylosoxidans | 2 | SXT | Trimethoprim/sulfamethoxazole | A. xylosoxidans | | 0.125 | 0.125 | FALSE | FALSE |
|
||||
| EUCAST 2026 | human | human | DISK | | B_ACHRMB_XYLS | Achromobacter xylosoxidans | 2 | TZP | Piperacillin/tazobactam | A. xylosoxidans | 30/6 mcg | 26.000 | 26.000 | FALSE | FALSE |
|
||||
| EUCAST 2026 | human | human | MIC | | B_ACHRMB_XYLS | Achromobacter xylosoxidans | 2 | TZP | Piperacillin/tazobactam | A. xylosoxidans | | 4.000 | 4.000 | FALSE | FALSE |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `microorganisms.groups`: Species Groups and Microbiological Complexes
|
||||
|
||||
A data set with 530 rows and 4 columns, containing the following column
|
||||
names:
|
||||
*mo_group*, *mo*, *mo_group_name*, and *mo_name*.
|
||||
|
||||
This data set is in R available as `microorganisms.groups`, after you
|
||||
load the `AMR` package.
|
||||
|
||||
It was last updated on 22 June 2026 23:38:13 UTC. Find more info about
|
||||
the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/microorganisms.groups.html).
|
||||
|
||||
**Direct download links:**
|
||||
|
||||
- Download as [original R Data Structure (RDS)
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.groups.rds)
|
||||
(6 kB)
|
||||
- Download as [tab-separated text
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.groups.txt)
|
||||
(50 kB)
|
||||
- Download as [Microsoft Excel
|
||||
workbook](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.groups.xlsx)
|
||||
(19 kB)
|
||||
- Download as [Apache Feather
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.groups.feather)
|
||||
(19 kB)
|
||||
- Download as [Apache Parquet
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.groups.parquet)
|
||||
(13 kB)
|
||||
- Download as [IBM SPSS Statistics data
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.groups.sav)
|
||||
(64 kB)
|
||||
- Download as [Stata DTA
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.groups.dta)
|
||||
(82 kB)
|
||||
|
||||
**Example content**
|
||||
|
||||
| mo_group | mo | mo_group_name | mo_name |
|
||||
|:--:|:--:|:--:|:--:|
|
||||
| B_ACNTB_BMNN-C | B_ACNTB_BMNN | Acinetobacter baumannii complex | Acinetobacter baumannii |
|
||||
| B_ACNTB_BMNN-C | B_ACNTB_CLCC | Acinetobacter baumannii complex | Acinetobacter calcoaceticus |
|
||||
| B_ACNTB_BMNN-C | B_ACNTB_LCTC | Acinetobacter baumannii complex | Acinetobacter dijkshoorniae |
|
||||
| B_ACNTB_BMNN-C | B_ACNTB_NSCM | Acinetobacter baumannii complex | Acinetobacter nosocomialis |
|
||||
| B_ACNTB_BMNN-C | B_ACNTB_PITT | Acinetobacter baumannii complex | Acinetobacter pittii |
|
||||
| B_ACNTB_BMNN-C | B_ACNTB_SFRT | Acinetobacter baumannii complex | Acinetobacter seifertii |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `intrinsic_resistant`: Intrinsic Bacterial Resistance
|
||||
|
||||
A data set with 294 079 rows and 3 columns, containing the following
|
||||
column names:
|
||||
*mo*, *ab*, and *version*.
|
||||
|
||||
This data set is in R available as `intrinsic_resistant`, after you load
|
||||
the `AMR` package.
|
||||
|
||||
It was last updated on 3 September 2026 10:14:25 UTC. Find more info
|
||||
about the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/intrinsic_resistant.html).
|
||||
|
||||
**Direct download links:**
|
||||
|
||||
- Download as [original R Data Structure (RDS)
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/intrinsic_resistant.rds)
|
||||
(0.1 MB)
|
||||
- Download as [tab-separated text
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/intrinsic_resistant.txt)
|
||||
(10.9 MB)
|
||||
- Download as [Microsoft Excel
|
||||
workbook](https://github.com/msberends/AMR/raw/main/data-raw/datasets/intrinsic_resistant.xlsx)
|
||||
(3.1 MB)
|
||||
- Download as [Apache Feather
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/intrinsic_resistant.feather)
|
||||
(2.5 MB)
|
||||
- Download as [Apache Parquet
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/intrinsic_resistant.parquet)
|
||||
(0.3 MB)
|
||||
- Download as [IBM SPSS Statistics data
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/intrinsic_resistant.sav)
|
||||
(16 MB)
|
||||
- Download as [Stata DTA
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/intrinsic_resistant.dta)
|
||||
(28.6 MB)
|
||||
|
||||
**Example content**
|
||||
|
||||
Example rows when filtering on *Enterobacter cloacae*:
|
||||
|
||||
| microorganism | antibiotic |
|
||||
|:--------------------:|:---------------------------:|
|
||||
| Enterobacter cloacae | Acetylmidecamycin |
|
||||
| Enterobacter cloacae | Acetylspiramycin |
|
||||
| Enterobacter cloacae | Amoxicillin |
|
||||
| Enterobacter cloacae | Amoxicillin/clavulanic acid |
|
||||
| Enterobacter cloacae | Ampicillin |
|
||||
| Enterobacter cloacae | Ampicillin/sulbactam |
|
||||
| Enterobacter cloacae | Avoparcin |
|
||||
| Enterobacter cloacae | Azithromycin |
|
||||
| Enterobacter cloacae | Benzylpenicillin |
|
||||
| Enterobacter cloacae | Bleomycin |
|
||||
| Enterobacter cloacae | Cadazolid |
|
||||
| Enterobacter cloacae | Cefadroxil |
|
||||
| Enterobacter cloacae | Cefalexin |
|
||||
| Enterobacter cloacae | Cefalotin |
|
||||
| Enterobacter cloacae | Cefazolin |
|
||||
| Enterobacter cloacae | Cefoxitin |
|
||||
| Enterobacter cloacae | Clarithromycin |
|
||||
| Enterobacter cloacae | Clindamycin |
|
||||
| Enterobacter cloacae | Cycloserine |
|
||||
| Enterobacter cloacae | Dalbavancin |
|
||||
| Enterobacter cloacae | Dirithromycin |
|
||||
| Enterobacter cloacae | Erythromycin |
|
||||
| Enterobacter cloacae | Flurithromycin |
|
||||
| Enterobacter cloacae | Fusidic acid |
|
||||
| Enterobacter cloacae | Gamithromycin |
|
||||
| Enterobacter cloacae | Josamycin |
|
||||
| Enterobacter cloacae | Kitasamycin |
|
||||
| Enterobacter cloacae | Lincomycin |
|
||||
| Enterobacter cloacae | Linezolid |
|
||||
| Enterobacter cloacae | Meleumycin |
|
||||
| Enterobacter cloacae | Midecamycin |
|
||||
| Enterobacter cloacae | Miocamycin |
|
||||
| Enterobacter cloacae | Nafithromycin |
|
||||
| Enterobacter cloacae | Norvancomycin |
|
||||
| Enterobacter cloacae | Oleandomycin |
|
||||
| Enterobacter cloacae | Oritavancin |
|
||||
| Enterobacter cloacae | Ostreogrycin |
|
||||
| Enterobacter cloacae | Pirlimycin |
|
||||
| Enterobacter cloacae | Primycin |
|
||||
| Enterobacter cloacae | Pristinamycin |
|
||||
| Enterobacter cloacae | Quinupristin/dalfopristin |
|
||||
| Enterobacter cloacae | Ramoplanin |
|
||||
| Enterobacter cloacae | Rifampicin |
|
||||
| Enterobacter cloacae | Rokitamycin |
|
||||
| Enterobacter cloacae | Roxithromycin |
|
||||
| Enterobacter cloacae | Solithromycin |
|
||||
| Enterobacter cloacae | Spiramycin |
|
||||
| Enterobacter cloacae | Tedizolid |
|
||||
| Enterobacter cloacae | Teicoplanin |
|
||||
| Enterobacter cloacae | Telavancin |
|
||||
| Enterobacter cloacae | Telithromycin |
|
||||
| Enterobacter cloacae | Thiacetazone |
|
||||
| Enterobacter cloacae | Tildipirosin |
|
||||
| Enterobacter cloacae | Tilmicosin |
|
||||
| Enterobacter cloacae | Troleandomycin |
|
||||
| Enterobacter cloacae | Tulathromycin |
|
||||
| Enterobacter cloacae | Tylosin |
|
||||
| Enterobacter cloacae | Tylvalosin |
|
||||
| Enterobacter cloacae | Vancomycin |
|
||||
| Enterobacter cloacae | Virginiamycine |
|
||||
| Enterobacter cloacae | Zorbamycin |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `dosage`: Dosage Guidelines from EUCAST
|
||||
|
||||
A data set with 759 rows and 9 columns, containing the following column
|
||||
names:
|
||||
*ab*, *name*, *type*, *dose*, *dose_times*, *administration*, *notes*,
|
||||
*original_txt*, and *eucast_version*.
|
||||
|
||||
This data set is in R available as `dosage`, after you load the `AMR`
|
||||
package.
|
||||
|
||||
It was last updated on 20 April 2025 10:55:31 UTC. Find more info about
|
||||
the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/dosage.html).
|
||||
|
||||
**Direct download links:**
|
||||
|
||||
- Download as [original R Data Structure (RDS)
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/dosage.rds)
|
||||
(4 kB)
|
||||
- Download as [tab-separated text
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/dosage.txt)
|
||||
(66 kB)
|
||||
- Download as [Microsoft Excel
|
||||
workbook](https://github.com/msberends/AMR/raw/main/data-raw/datasets/dosage.xlsx)
|
||||
(37 kB)
|
||||
- Download as [Apache Feather
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/dosage.feather)
|
||||
(28 kB)
|
||||
- Download as [Apache Parquet
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/dosage.parquet)
|
||||
(9 kB)
|
||||
- Download as [IBM SPSS Statistics data
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/dosage.sav)
|
||||
(97 kB)
|
||||
- Download as [Stata DTA
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/dosage.dta)
|
||||
(0.2 MB)
|
||||
|
||||
**Example content**
|
||||
|
||||
| ab | name | type | dose | dose_times | administration | notes | original_txt | eucast_version |
|
||||
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|
||||
| AMK | Amikacin | standard_dosage | 25-30 mg/kg | 1 | iv | | 25-30 mg/kg x 1 iv | 15 |
|
||||
| AMX | Amoxicillin | high_dosage | 2 g | 6 | iv | | 2 g x 6 iv | 15 |
|
||||
| AMX | Amoxicillin | standard_dosage | 1 g | 3 | iv | | 1 g x 3-4 iv | 15 |
|
||||
| AMX | Amoxicillin | high_dosage | 0.75-1 g | 3 | oral | | 0.75-1 g x 3 oral | 15 |
|
||||
| AMX | Amoxicillin | standard_dosage | 0.5 g | 3 | oral | | 0.5 g x 3 oral | 15 |
|
||||
| AMX | Amoxicillin | uncomplicated_uti | 0.5 g | 3 | oral | | 0.5 g x 3 oral | 15 |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `example_isolates`: Example Data for Practice
|
||||
|
||||
A data set with 2 000 rows and 46 columns, containing the following
|
||||
column names:
|
||||
*date*, *patient*, *age*, *gender*, *ward*, *mo*, *PEN*, *OXA*, *FLC*,
|
||||
*AMX*, *AMC*, *AMP*, *TZP*, *CZO*, *FEP*, *CXM*, *FOX*, *CTX*, *CAZ*,
|
||||
*CRO*, *GEN*, *TOB*, *AMK*, *KAN*, *TMP*, *SXT*, *NIT*, *FOS*, *LNZ*,
|
||||
*CIP*, *MFX*, *VAN*, *TEC*, *TCY*, *TGC*, *DOX*, *ERY*, *CLI*, *AZM*,
|
||||
*IPM*, *MEM*, *MTR*, *CHL*, *COL*, *MUP*, and *RIF*.
|
||||
|
||||
This data set is in R available as `example_isolates`, after you load
|
||||
the `AMR` package.
|
||||
|
||||
It was last updated on 24 June 2026 16:36:47 UTC. Find more info about
|
||||
the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/example_isolates.html).
|
||||
|
||||
**Example content**
|
||||
|
||||
| date | patient | age | gender | ward | mo | PEN | OXA | FLC | AMX | AMC | AMP | TZP | CZO | FEP | CXM | FOX | CTX | CAZ | CRO | GEN | TOB | AMK | KAN | TMP | SXT | NIT | FOS | LNZ | CIP | MFX | VAN | TEC | TCY | TGC | DOX | ERY | CLI | AZM | IPM | MEM | MTR | CHL | COL | MUP | RIF |
|
||||
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|
||||
| 2002-01-02 | A77334 | 65 | F | Clinical | B_ESCHR_COLI | R | | | | I | | | | | I | | | | | | | | | R | R | | | R | | | R | R | R | | | R | R | R | | | | | | | R |
|
||||
| 2002-01-03 | A77334 | 65 | F | Clinical | B_ESCHR_COLI | R | | | | I | | | | | I | | | | | | | | | R | R | | | R | | | R | R | R | | | R | R | R | | | | | | | R |
|
||||
| 2002-01-07 | 067927 | 45 | F | ICU | B_STPHY_EPDR | R | | R | | | | | | | R | | | R | | | | | | S | S | | | | | | S | | S | S | S | R | | R | | | | | R | | |
|
||||
| 2002-01-07 | 067927 | 45 | F | ICU | B_STPHY_EPDR | R | | R | | | | | | | R | | | R | | | | | | S | S | | | | | | S | | S | S | S | R | | R | | | | | R | | |
|
||||
| 2002-01-13 | 067927 | 45 | F | ICU | B_STPHY_EPDR | R | | R | | | | | | | R | | | R | | | | | | R | | | | | | | S | | S | S | S | R | | R | | | | | R | | |
|
||||
| 2002-01-13 | 067927 | 45 | F | ICU | B_STPHY_EPDR | R | | R | | | | | | | R | | | R | | | | | | R | | | | | | | S | | S | S | S | R | R | R | | | | | R | | |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `example_isolates_unclean`: Example Data for Practice
|
||||
|
||||
A data set with 3 000 rows and 8 columns, containing the following
|
||||
column names:
|
||||
*patient_id*, *hospital*, *date*, *bacteria*, *AMX*, *AMC*, *CIP*, and
|
||||
*GEN*.
|
||||
|
||||
This data set is in R available as `example_isolates_unclean`, after you
|
||||
load the `AMR` package.
|
||||
|
||||
It was last updated on 27 August 2022 18:49:37 UTC. Find more info about
|
||||
the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/example_isolates_unclean.html).
|
||||
|
||||
**Example content**
|
||||
|
||||
| patient_id | hospital | date | bacteria | AMX | AMC | CIP | GEN |
|
||||
|:----------:|:--------:|:----------:|:-------------:|:---:|:---:|:---:|:---:|
|
||||
| J3 | A | 2012-11-21 | E. coli | R | I | S | S |
|
||||
| R7 | A | 2018-04-03 | K. pneumoniae | R | I | S | S |
|
||||
| P3 | A | 2014-09-19 | E. coli | R | S | S | S |
|
||||
| P10 | A | 2015-12-10 | E. coli | S | I | S | S |
|
||||
| B7 | A | 2015-03-02 | E. coli | S | S | S | S |
|
||||
| W3 | A | 2018-03-31 | S. aureus | R | S | R | S |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `microorganisms.codes`: Common Laboratory Codes
|
||||
|
||||
A data set with 6 029 rows and 2 columns, containing the following
|
||||
column names:
|
||||
*code* and *mo*.
|
||||
|
||||
This data set is in R available as `microorganisms.codes`, after you
|
||||
load the `AMR` package.
|
||||
|
||||
It was last updated on 22 June 2026 23:38:13 UTC. Find more info about
|
||||
the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/microorganisms.codes.html).
|
||||
|
||||
**Direct download links:**
|
||||
|
||||
- Download as [original R Data Structure (RDS)
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.codes.rds)
|
||||
(27 kB)
|
||||
- Download as [tab-separated text
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.codes.txt)
|
||||
(0.1 MB)
|
||||
- Download as [Microsoft Excel
|
||||
workbook](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.codes.xlsx)
|
||||
(98 kB)
|
||||
- Download as [Apache Feather
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.codes.feather)
|
||||
(0.1 MB)
|
||||
- Download as [Apache Parquet
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.codes.parquet)
|
||||
(68 kB)
|
||||
- Download as [IBM SPSS Statistics data
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.codes.sav)
|
||||
(0.2 MB)
|
||||
- Download as [Stata DTA
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/microorganisms.codes.dta)
|
||||
(0.2 MB)
|
||||
|
||||
**Example content**
|
||||
|
||||
| code | mo |
|
||||
|:----:|:------------:|
|
||||
| 1011 | B_GRAMP |
|
||||
| 1012 | B_GRAMP |
|
||||
| 1013 | B_GRAMN |
|
||||
| 1014 | B_GRAMN |
|
||||
| 1015 | F_YEAST |
|
||||
| 103 | B_ESCHR_COLI |
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
## `antivirals`: Antiviral Drugs
|
||||
|
||||
A data set with 120 rows and 11 columns, containing the following column
|
||||
names:
|
||||
*av*, *name*, *atc*, *cid*, *atc_group*, *synonyms*, *oral_ddd*,
|
||||
*oral_units*, *iv_ddd*, *iv_units*, and *loinc*.
|
||||
|
||||
This data set is in R available as `antivirals`, after you load the
|
||||
`AMR` package.
|
||||
|
||||
It was last updated on 20 October 2023 12:51:48 UTC. Find more info
|
||||
about the contents, (scientific) source, and structure of this [data set
|
||||
here](https://amr-for-r.org/reference/antimicrobials.html).
|
||||
|
||||
**Direct download links:**
|
||||
|
||||
- Download as [original R Data Structure (RDS)
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antivirals.rds)
|
||||
(6 kB)
|
||||
- Download as [tab-separated text
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antivirals.txt)
|
||||
(17 kB)
|
||||
- Download as [Microsoft Excel
|
||||
workbook](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antivirals.xlsx)
|
||||
(16 kB)
|
||||
- Download as [Apache Feather
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antivirals.feather)
|
||||
(16 kB)
|
||||
- Download as [Apache Parquet
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antivirals.parquet)
|
||||
(13 kB)
|
||||
- Download as [IBM SPSS Statistics data
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antivirals.sav)
|
||||
(32 kB)
|
||||
- Download as [Stata DTA
|
||||
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/antivirals.dta)
|
||||
(78 kB)
|
||||
|
||||
The tab-separated text, Microsoft Excel, SPSS, and Stata files all
|
||||
contain the trade names and LOINC codes as comma separated values.
|
||||
|
||||
**Example content**
|
||||
|
||||
| av | name | atc | cid | atc_group | synonyms | oral_ddd | oral_units | iv_ddd | iv_units | loinc |
|
||||
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|
||||
| ABA | Abacavir | J05AF06 | 441300 | Nucleoside and nucleotide reverse transcriptase inhibitors | abacavir sulfate, avacavir, ziagen | 0.6 | g | | | 29113-8, 30273-7, 30287-7, … |
|
||||
| ACI | Aciclovir | J05AB01 | 135398513 | Nucleosides and nucleotides excl. reverse transcriptase inhibitors | acicloftal, aciclovier, aciclovirum, … | 4.0 | g | 4 | g | |
|
||||
| ADD | Adefovir dipivoxil | J05AF08 | 60871 | Nucleoside and nucleotide reverse transcriptase inhibitors | adefovir di, adefovir di ester, adefovir dipivoxyl, … | 10.0 | mg | | | |
|
||||
| AME | Amenamevir | J05AX26 | 11397521 | Other antivirals | amenalief | 0.4 | g | | | |
|
||||
| AMP | Amprenavir | J05AE05 | 65016 | Protease inhibitors | agenerase, carbamate, prozei | 1.2 | g | | | 29114-6, 30296-8, 30297-6, … |
|
||||
| ASU | Asunaprevir | J05AP06 | 16076883 | Antivirals for treatment of HCV infections | sunvepra, sunvepratrade | 0.2 | g | | | |
|
||||
@@ -1,16 +1,13 @@
|
||||
<!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>
|
||||
<!-- 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="96x96" href="../favicon-96x96.png"><link rel="icon" type="”image/svg+xml”" href="../favicon.svg"><link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon.png"><link rel="icon" sizes="any" href="../favicon.ico"><link rel="manifest" href="../site.webmanifest"><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.3.8/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="../deps/Lato-0.4.10/font.css" rel="stylesheet"><link href="../deps/Fira_Code-0.4.10/font.css" rel="stylesheet"><link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet"><link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet"><script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></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://amr-for-r.org/logo.svg"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous"><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script></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">
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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.9018</small>
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9091</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">
|
||||
@@ -18,103 +15,28 @@
|
||||
</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 class="navbar-nav me-auto"><li class="nav-item dropdown">
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to"><li><a class="dropdown-item" href="../articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="../articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="../reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul></li>
|
||||
<li class="nav-item"><a class="nav-link" href="../articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</ul><ul class="navbar-nav"><li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="../search.json"></form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="../news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa fa-github"></span> Source Code</a></li>
|
||||
</ul></div>
|
||||
|
||||
|
||||
@@ -127,36 +49,34 @@
|
||||
|
||||
<div class="section ">
|
||||
<h3>All vignettes</h3>
|
||||
<p class="section-desc"></p>
|
||||
<div class="section-desc"></div>
|
||||
|
||||
<dl><dt><a href="AMR.html">How to conduct AMR data analysis</a></dt>
|
||||
<dl><dt><a href="AMR_for_Python.html">AMR for Python</a></dt>
|
||||
<dd>
|
||||
</dd><dt><a href="EUCAST.html">How to apply EUCAST rules</a></dt>
|
||||
</dd><dt><a href="AMR_with_tidymodels.html">AMR with tidymodels</a></dt>
|
||||
<dd>
|
||||
</dd><dt><a href="MDR.html">How to determine multi-drug resistance (MDR)</a></dt>
|
||||
</dd><dt><a href="AMR.html">Conduct AMR data analysis</a></dt>
|
||||
<dd>
|
||||
</dd><dt><a href="PCA.html">How to conduct principal component analysis (PCA) for AMR</a></dt>
|
||||
</dd><dt><a href="datasets.html">Download data sets for download / own use</a></dt>
|
||||
<dd>
|
||||
</dd><dt><a href="SPSS.html">How to import data from SPSS / SAS / Stata</a></dt>
|
||||
</dd><dt><a href="EUCAST.html">Apply EUCAST rules</a></dt>
|
||||
<dd>
|
||||
</dd><dt><a href="WHONET.html">How to work with WHONET data</a></dt>
|
||||
</dd><dt><a href="PCA.html">Conduct principal component analysis (PCA) for AMR</a></dt>
|
||||
<dd>
|
||||
</dd><dt><a href="datasets.html">Data sets for download / own use</a></dt>
|
||||
</dd><dt><a href="WHONET.html">Work with WHONET data</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><dt><a href="WISCA.html">Estimating Empirical Coverage with WISCA</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>
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</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>
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer></div>
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# Articles
|
||||
|
||||
### All vignettes
|
||||
|
||||
- [AMR for Python](https://amr-for-r.org/articles/AMR_for_Python.md):
|
||||
- [AMR with
|
||||
tidymodels](https://amr-for-r.org/articles/AMR_with_tidymodels.md):
|
||||
- [Conduct AMR data analysis](https://amr-for-r.org/articles/AMR.md):
|
||||
- [Download data sets for download / own
|
||||
use](https://amr-for-r.org/articles/datasets.md):
|
||||
- [Apply EUCAST rules](https://amr-for-r.org/articles/EUCAST.md):
|
||||
- [Conduct principal component analysis (PCA) for
|
||||
AMR](https://amr-for-r.org/articles/PCA.md):
|
||||
- [Work with WHONET data](https://amr-for-r.org/articles/WHONET.md):
|
||||
- [Estimating Empirical Coverage with
|
||||
WISCA](https://amr-for-r.org/articles/WISCA.md):
|
||||
@@ -1,335 +0,0 @@
|
||||
<!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.9018</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>
|
||||
|
Before Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 67 KiB |
@@ -1,224 +0,0 @@
|
||||
<!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.9018</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>
|
||||
@@ -1,16 +1,13 @@
|
||||
<!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>
|
||||
<!-- 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="96x96" href="favicon-96x96.png"><link rel="icon" type="”image/svg+xml”" href="favicon.svg"><link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png"><link rel="icon" sizes="any" href="favicon.ico"><link rel="manifest" href="site.webmanifest"><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.3.8/bootstrap.min.css" rel="stylesheet"><script src="deps/bootstrap-5.3.8/bootstrap.bundle.min.js"></script><link href="deps/Lato-0.4.10/font.css" rel="stylesheet"><link href="deps/Fira_Code-0.4.10/font.css" rel="stylesheet"><link href="deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet"><link href="deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet"><script src="deps/headroom-0.11.0/headroom.min.js"></script><script src="deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="deps/search-1.0.0/fuse.min.js"></script><script src="deps/search-1.0.0/mark.min.js"></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://amr-for-r.org/logo.svg"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous"><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script></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">
|
||||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><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.9018</small>
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9091</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">
|
||||
@@ -18,103 +15,28 @@
|
||||
</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 class="navbar-nav me-auto"><li class="nav-item dropdown">
|
||||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to"><li><a class="dropdown-item" href="articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||||
<li><a class="dropdown-item" href="reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||||
<li><a class="dropdown-item" href="reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||||
<li><a class="dropdown-item" href="articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||||
<li><a class="dropdown-item" href="reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||||
<li><a class="dropdown-item" href="articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||||
<li><a class="dropdown-item" href="articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||||
<li><a class="dropdown-item" href="reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||||
<li><a class="dropdown-item" href="reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||||
<li><a class="dropdown-item" href="reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||||
</ul></li>
|
||||
<li class="nav-item"><a class="nav-link" href="articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></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>
|
||||
</ul><ul class="navbar-nav"><li class="nav-item"><form class="form-inline" role="search">
|
||||
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="search.json"></form></li>
|
||||
<li class="nav-item"><a class="nav-link" href="news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa fa-github"></span> Source Code</a></li>
|
||||
</ul></div>
|
||||
|
||||
|
||||
@@ -125,17 +47,13 @@
|
||||
<img src="logo.svg" class="logo" alt=""><h1>Authors and Citation</h1>
|
||||
</div>
|
||||
|
||||
<div class="section level2 citation">
|
||||
<div class="section level2">
|
||||
<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>
|
||||
@@ -145,23 +63,39 @@
|
||||
</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><strong>Aislinn Cook</strong>. Contributor. <a href="https://orcid.org/0000-0002-9189-7815" 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><strong>Andrew P. Norgan</strong>. Contributor. <a href="https://orcid.org/0000-0002-2955-2066" 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><strong>Anita Williams</strong>. Contributor. <a href="https://orcid.org/0000-0002-5295-8451" 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>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><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>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><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>
|
||||
<li>
|
||||
<p><strong>Anton Mymrikov</strong>. Contributor.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Bart C. Meijer</strong>. Contributor.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Christian F. Luz</strong>. 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>Dmytro Mykhailenko</strong>. Contributor.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -173,19 +107,47 @@
|
||||
</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><strong>Jane Hawkey</strong>. Contributor. <a href="https://orcid.org/0000-0001-9661-5293" 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><strong>Jason Stull</strong>. Contributor. <a href="https://orcid.org/0000-0002-9028-8153" 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>Dmytro Mykhailenko</strong>. Contributor.
|
||||
<p><strong>Javier Sanchez</strong>. Contributor. <a href="https://orcid.org/0000-0003-2605-8094" 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>Anton Mymrikov</strong>. Contributor.
|
||||
<p><strong>Jonas Salm</strong>. Contributor.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Judith M. Fonville</strong>. Contributor.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Kathryn Holt</strong>. Contributor. <a href="https://orcid.org/0000-0003-3949-2471" 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>Larisse Bolton</strong>. Contributor. <a href="https://orcid.org/0000-0001-7879-2173" 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>Matthew Saab</strong>. Contributor. <a href="https://orcid.org/0009-0008-6626-7919" 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>Natacha Couto</strong>. Contributor. <a href="https://orcid.org/0000-0002-9152-5464" 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>Rogier P. Schade</strong>. Contributor. <a href="https://orcid.org/0000-0002-9487-4467" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -193,7 +155,7 @@
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Rogier P. Schade</strong>. Contributor.
|
||||
<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>
|
||||
@@ -201,14 +163,18 @@
|
||||
</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><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>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>
|
||||
</ul></div>
|
||||
|
||||
<div class="section level2 citation">
|
||||
<div class="section level2">
|
||||
<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><small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/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.”
|
||||
@@ -226,16 +192,17 @@
|
||||
doi = {10.18637/jss.v104.i03},
|
||||
}</pre>
|
||||
</div>
|
||||
</main><aside class="col-md-3"><nav id="toc"><h2>On this page</h2>
|
||||
|
||||
</main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><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>
|
||||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU GPL 2.0</a>. Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in the Netherlands, in collaboration with <a href="https://amr-for-r.org/authors.html">many colleagues from around the world</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>
|
||||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||||
</div>
|
||||
|
||||
</footer></div>
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
# Authors and Citation
|
||||
|
||||
## Authors
|
||||
|
||||
- **Matthijs S. Berends**. Author, maintainer.
|
||||
[](https://orcid.org/0000-0001-7620-1800)
|
||||
|
||||
- **Dennis Souverein**. Author, contributor.
|
||||
[](https://orcid.org/0000-0003-0455-0336)
|
||||
|
||||
- **Erwin E. A. Hassing**. Author, contributor.
|
||||
|
||||
- **Aislinn Cook**. Contributor.
|
||||
[](https://orcid.org/0000-0002-9189-7815)
|
||||
|
||||
- **Andrew P. Norgan**. Contributor.
|
||||
[](https://orcid.org/0000-0002-2955-2066)
|
||||
|
||||
- **Anita Williams**. Contributor.
|
||||
[](https://orcid.org/0000-0002-5295-8451)
|
||||
|
||||
- **Annick Lenglet**. Contributor.
|
||||
[](https://orcid.org/0000-0003-2013-8405)
|
||||
|
||||
- **Anthony Underwood**. Contributor.
|
||||
[](https://orcid.org/0000-0002-8547-4277)
|
||||
|
||||
- **Anton Mymrikov**. Contributor.
|
||||
|
||||
- **Bart C. Meijer**. Contributor.
|
||||
|
||||
- **Christian F. Luz**. Contributor.
|
||||
[](https://orcid.org/0000-0001-5809-5995)
|
||||
|
||||
- **Dmytro Mykhailenko**. Contributor.
|
||||
|
||||
- **Eric H. L. C. M. Hazenberg**. Contributor.
|
||||
|
||||
- **Gwen Knight**. Contributor.
|
||||
[](https://orcid.org/0000-0002-7263-9896)
|
||||
|
||||
- **Jane Hawkey**. Contributor.
|
||||
[](https://orcid.org/0000-0001-9661-5293)
|
||||
|
||||
- **Jason Stull**. Contributor.
|
||||
[](https://orcid.org/0000-0002-9028-8153)
|
||||
|
||||
- **Javier Sanchez**. Contributor.
|
||||
[](https://orcid.org/0000-0003-2605-8094)
|
||||
|
||||
- **Jonas Salm**. Contributor.
|
||||
|
||||
- **Judith M. Fonville**. Contributor.
|
||||
|
||||
- **Kathryn Holt**. Contributor.
|
||||
[](https://orcid.org/0000-0003-3949-2471)
|
||||
|
||||
- **Larisse Bolton**. Contributor.
|
||||
[](https://orcid.org/0000-0001-7879-2173)
|
||||
|
||||
- **Matthew Saab**. Contributor.
|
||||
[](https://orcid.org/0009-0008-6626-7919)
|
||||
|
||||
- **Natacha Couto**. Contributor.
|
||||
[](https://orcid.org/0000-0002-9152-5464)
|
||||
|
||||
- **Peter Dutey-Magni**. Contributor.
|
||||
[](https://orcid.org/0000-0002-8942-9836)
|
||||
|
||||
- **Rogier P. Schade**. Contributor.
|
||||
[](https://orcid.org/0000-0002-9487-4467)
|
||||
|
||||
- **Sofia Ny**. Contributor. [](https://orcid.org/0000-0002-2017-1363)
|
||||
|
||||
- **Alex W. Friedrich**. Thesis advisor.
|
||||
[](https://orcid.org/0000-0003-4881-038X)
|
||||
|
||||
- **Bhanu N. M. Sinha**. Thesis advisor.
|
||||
[](https://orcid.org/0000-0003-1634-0010)
|
||||
|
||||
- **Casper J. Albers**. Thesis advisor.
|
||||
[](https://orcid.org/0000-0002-9213-6743)
|
||||
|
||||
- **Corinna Glasner**. Thesis advisor.
|
||||
[](https://orcid.org/0000-0003-1241-1328)
|
||||
|
||||
## Citation
|
||||
|
||||
Source:
|
||||
[`inst/CITATION`](https://github.com/msberends/AMR/blob/main/inst/CITATION)
|
||||
|
||||
Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C
|
||||
(2022). “AMR: An R Package for Working with Antimicrobial Resistance
|
||||
Data.” *Journal of Statistical Software*, **104**(3), 1–31.
|
||||
[doi:10.18637/jss.v104.i03](https://doi.org/10.18637/jss.v104.i03).
|
||||
|
||||
@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},
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
<?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>
|
||||
@@ -0,0 +1,63 @@
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Fira Code';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV37Nv7g.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Fira Code';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVT7Nv7g.woff2) format('woff2');
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Fira Code';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVz7Nv7g.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Fira Code';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVP7Nv7g.woff2) format('woff2');
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
/* symbols2 */
|
||||
@font-face {
|
||||
font-family: 'Fira Code';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJeraE8PZqw.woff2) format('woff2');
|
||||
unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Fira Code';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV77Nv7g.woff2) format('woff2');
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Fira Code';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVD7Ng.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
@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,18 @@
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(S6uyw4BMUTPHjxAwXjeu.woff2) format('woff2');
|
||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(S6uyw4BMUTPHjx4wXg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
@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');
|
||||
}
|
||||