AMR/NEWS.md

212 lines
14 KiB
Markdown
Raw Normal View History

2018-08-22 00:02:26 +02:00
# 0.3.0.90xx (latest development version)
#### New
2018-08-23 00:40:36 +02:00
* Functions `count_R`, `count_IR`, `count_I`, `count_SI` and `count_S` to selectively count resistant or susceptible isolates
* Extra function `count_df` (which works like `portion_df`) to get all counts of S, I and R of a data set with antibiotic columns, with support for grouped variables
2018-08-22 12:55:05 +02:00
* Function `is.rsi.eligible` to check for columns that have valid antimicrobial results, but do not have the `rsi` class yet. Transform the columns of your raw data with: `data %>% mutate_if(is.rsi.eligible, as.rsi)`
2018-09-14 10:31:21 +02:00
* Functions `as.mo` and `is.mo` as replacements for `as.bactid` and `is.bactid` (since the `microoganisms` data set not only contains bacteria). These last two functions are deprecated and will be removed in a future release. The `as.mo` function determines microbial IDs using Artificial Intelligence (AI):
```r
as.mo("E. coli")
# [1] ESCCOL
as.mo("MRSA")
# [1] STAAUR
as.mo("S group A")
# [1] STCGRA
```
And with great speed too - on a quite regular Linux server from 2007 it takes us 0.009 seconds to transform 25,000 items:
```r
thousands_of_E_colis <- rep("E. coli", 25000)
microbenchmark::microbenchmark(as.mo(thousands_of_E_colis), unit = "s")
# Unit: seconds
# min median max neval
# 0.00861352 0.008774335 0.01952958 100
2018-09-14 10:31:21 +02:00
```
2018-08-31 13:36:19 +02:00
* Renamed all previous references to `bactid` to `mo`, like:
* Column names inputs of `EUCAST_rules`, `first_isolate` and `key_antibiotics`
* Column names of datasets `microorganisms` and `septic_patients`
* All old syntaxes will still work with this version, but will throw warnings
* Functions `as.atc` and `is.atc` to transform/look up antibiotic ATC codes as defined by the WHO. The existing function `guess_atc` is now an alias of `as.atc`.
* Aliases for existing function `mo_property`: `mo_family`, `mo_genus`, `mo_species`, `mo_subspecies`, `mo_fullname`, `mo_shortname`, `mo_aerobic`, `mo_type` and `mo_gramstain`. They also come with support for German, Dutch, French, Italian, Spanish and Portuguese, and it defaults to the systems locale:
```r
mo_gramstain("E. coli")
# [1] "Negative rods"
mo_gramstain("E. coli", language = "de") # "de" = Deutsch / German
# [1] "Negative Stäbchen"
mo_gramstain("E. coli", language = "es") # "es" = Español / Spanish
# [1] "Bacilos negativos"
mo_fullname("S. group A") # when run on a on a Portuguese system
# [1] "Streptococcus grupo A"
```
2018-09-03 11:22:28 +02:00
* Function `ab_property` and its aliases: `ab_official`, `ab_tradenames`, `ab_certe`, `ab_umcg`, `ab_official_nl` and `ab_trivial_nl`
* Introduction to AMR as a vignette
2018-08-22 00:02:26 +02:00
#### Changed
* Added almost 200 microorganisms to the `microorganisms` data set and removed the few viruses it contained
* Added three antimicrobial agents to the `antibiotics` data set: Terbinafine (D01BA02), Rifaximin (A07AA11) and Isoconazole (D01AC05)
* Added 163 trade names to the `antibiotics` data set, it now contains 298 different trade names in total, e.g.:
```r
ab_official("Bactroban")
# [1] "Mupirocin"
ab_official(c("Bactroban", "Amoxil", "Zithromax", "Floxapen"))
# [1] "Mupirocin" "Amoxicillin" "Azithromycin" "Flucloxacillin"
ab_atc(c("Bactroban", "Amoxil", "Zithromax", "Floxapen"))
# [1] "R01AX06" "J01CA04" "J01FA10" "J01CF05"
```
* For `first_isolate`, rows will be ignored when there's no species available
2018-08-31 13:36:19 +02:00
* Function `ratio` is now deprecated and will be removed in a future release, as it is not really the scope of this package
* Fix for `as.mic` for values ending in zeroes after a real number
* Small fix where *B. fragilis* would not be found in the `microorganisms.umcg` data set
* Fix for `is.rsi.eligible`, now ignores reading marks
2018-08-22 00:02:26 +02:00
* Added parameters `minimum` and `as_percent` to `portion_df`
2018-08-23 01:01:50 +02:00
* Support for quasiquotation in the functions series `count_*` and `portions_*`, and `n_rsi`. This allows to check for more than 2 vectors or columns.
```r
2018-09-03 11:22:28 +02:00
septic_patients %>% select(amox, cipr) %>% count_IR()
# which is the same as:
septic_patients %>% count_IR(amox, cipr)
septic_patients %>% portion_S(amcl)
septic_patients %>% portion_S(amcl, gent)
septic_patients %>% portion_S(amcl, gent, pita)
```
2018-08-22 00:02:26 +02:00
* Edited `ggplot_rsi` and `geom_rsi` so they can cope with `count_df`. The new `fun` parameter has value `portion_df` at default, but can be set to `count_df`.
2018-08-23 00:40:36 +02:00
* Fix for `ggplot_rsi` when the `ggplot2` package was not loaded
2018-08-23 21:27:15 +02:00
* Added possibility to set any parameter to `geom_rsi` (and `ggplot_rsi`) so you can set your own preferences
2018-09-03 10:04:49 +02:00
* Fix for joins, where predefined suffices would not be honoured
* Added parameter `quote` to the `freq` function
* Support for types (classes) list and matrix for `freq`
```r
my_matrix = with(septic_patients, matrix(c(age, sex), ncol = 2))
freq(my_matrix)
```
For lists, subsetting is possible:
```r
my_list = list(age = septic_patients$age, sex = septic_patients$sex)
my_list %>% freq(age)
my_list %>% freq(sex)
```
#### Other
* More unit tests to ensure better integrity of functions
2018-08-22 00:02:26 +02:00
# 0.3.0 (latest stable version)
2018-08-14 14:06:18 +02:00
**Published on CRAN: 2018-08-14**
2018-07-30 00:57:49 +02:00
2018-06-20 14:47:37 +02:00
#### New
2018-08-11 21:30:00 +02:00
* **BREAKING**: `rsi_df` was removed in favour of new functions `portion_R`, `portion_IR`, `portion_I`, `portion_SI` and `portion_S` to selectively calculate resistance or susceptibility. These functions are 20 to 30 times faster than the old `rsi` function. The old function still works, but is deprecated.
2018-08-13 16:42:37 +02:00
* New function `portion_df` to get all portions of S, I and R of a data set with antibiotic columns, with support for grouped variables
2018-07-17 19:51:09 +02:00
* **BREAKING**: the methodology for determining first weighted isolates was changed. The antibiotics that are compared between isolates (call *key antibiotics*) to include more first isolates (afterwards called first *weighted* isolates) are now as follows:
* Universal: amoxicillin, amoxicillin/clavlanic acid, cefuroxime, piperacillin/tazobactam, ciprofloxacin, trimethoprim/sulfamethoxazole
* Gram-positive: vancomycin, teicoplanin, tetracycline, erythromycin, oxacillin, rifampicin
* Gram-negative: gentamicin, tobramycin, colistin, cefotaxime, ceftazidime, meropenem
2018-08-11 21:30:00 +02:00
* Support for `ggplot2`
* New functions `geom_rsi`, `facet_rsi`, `scale_y_percent`, `scale_rsi_colours` and `theme_rsi`
* New wrapper function `ggplot_rsi` to apply all above functions on a data set:
* `septic_patients %>% select(tobr, gent) %>% ggplot_rsi` will show portions of S, I and R immediately in a pretty plot
2018-08-13 16:42:37 +02:00
* Support for grouped variables, see `?ggplot_rsi`
* Determining bacterial ID:
* New functions `as.bactid` and `is.bactid` to transform/ look up microbial ID's.
* The existing function `guess_bactid` is now an alias of `as.bactid`
* New Becker classification for *Staphylococcus* to categorise them into Coagulase Negative *Staphylococci* (CoNS) and Coagulase Positve *Staphylococci* (CoPS)
* New Lancefield classification for *Streptococcus* to categorise them into Lancefield groups
2018-07-13 17:23:46 +02:00
* For convience, new descriptive statistical functions `kurtosis` and `skewness` that are lacking in base R - they are generic functions and have support for vectors, data.frames and matrices
2018-07-17 19:51:09 +02:00
* Function `g.test` to perform the Χ<sup>2</sup> distributed [*G*-test](https://en.wikipedia.org/wiki/G-test), which use is the same as `chisq.test`
2018-08-24 14:18:38 +02:00
* ~~Function `ratio` to transform a vector of values to a preset ratio~~
* ~~For example: `ratio(c(10, 500, 10), ratio = "1:2:1")` would return `130, 260, 130`~~
2018-07-17 19:51:09 +02:00
* Support for Addins menu in RStudio to quickly insert `%in%` or `%like%` (and give them keyboard shortcuts), or to view the datasets that come with this package
* Function `p.symbol` to transform p values to their related symbols: `0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1`
* Functions `clipboard_import` and `clipboard_export` as helper functions to quickly copy and paste from/to software like Excel and SPSS. These functions use the `clipr` package, but are a little altered to also support headless Linux servers (so you can use it in RStudio Server)
2018-07-08 22:14:55 +02:00
* New for frequency tables (function `freq`):
* A vignette to explain its usage
2018-08-01 22:37:28 +02:00
* Support for `rsi` (antimicrobial resistance) to use as input
2018-07-09 14:02:58 +02:00
* Support for `table` to use as input: `freq(table(x, y))`
2018-07-08 22:14:55 +02:00
* Support for existing functions `hist` and `plot` to use a frequency table as input: `hist(freq(df$age))`
2018-07-16 16:41:48 +02:00
* Support for `as.vector`, `as.data.frame`, `as_tibble` and `format`
2018-07-08 22:14:55 +02:00
* Support for quasiquotation: `freq(mydata, mycolumn)` is the same as `mydata %>% freq(mycolumn)`
* Function `top_freq` function to return the top/below *n* items as vector
* Header of frequency tables now also show Mean Absolute Deviaton (MAD) and Interquartile Range (IQR)
* Possibility to globally set the default for the amount of items to print, with `options(max.print.freq = n)` where *n* is your preset value
2018-06-20 14:47:37 +02:00
#### Changed
2018-08-13 11:00:53 +02:00
* Improvements for forecasting with `resistance_predict` and added more examples
* More antibiotics added as parameters for EUCAST rules
2018-07-30 01:18:40 +02:00
* Updated version of the `septic_patients` data set to better reflect the reality
2018-07-11 20:12:19 +02:00
* Pretty printing for tibbles removed as it is not really the scope of this package
2018-08-01 22:37:28 +02:00
* Printing of `mic` and `rsi` classes now returns all values - use `freq` to check distributions
2018-07-15 22:56:41 +02:00
* Improved speed of key antibiotics comparison for determining first isolates
2018-07-19 15:11:23 +02:00
* Column names for the `key_antibiotics` function are now generic: 6 for broadspectrum ABs, 6 for Gram-positive specific and 6 for Gram-negative specific ABs
2018-08-13 11:00:53 +02:00
* Speed improvement for the `abname` function
* `%like%` now supports multiple patterns
2018-07-01 21:40:37 +02:00
* Frequency tables are now actual `data.frame`s with altered console printing to make it look like a frequency table. Because of this, the parameter `toConsole` is not longer needed.
2018-07-23 14:14:03 +02:00
* Fix for `freq` where the class of an item would be lost
* Small translational improvements to the `septic_patients` dataset and the column `bactid` now has the new class `"bactid"`
* Small improvements to the `microorganisms` dataset (especially for *Salmonella*) and the column `bactid` now has the new class `"bactid"`
* Combined MIC/RSI values will now be coerced by the `rsi` and `mic` functions:
* `as.rsi("<=0.002; S")` will return `S`
* `as.mic("<=0.002; S")` will return `<=0.002`
* Now possible to coerce MIC values with a space between operator and value, i.e. `as.mic("<= 0.002")` now works
* Classes `rsi` and `mic` do not add the attribute `package.version` anymore
* Added `"groups"` option for `atc_property(..., property)`. It will return a vector of the ATC hierarchy as defined by the [WHO](https://www.whocc.no/atc/structure_and_principles/). The new function `atc_groups` is a convenient wrapper around this.
* Build-in host check for `atc_property` as it requires the host set by `url` to be responsive
2018-06-19 10:05:38 +02:00
* Improved `first_isolate` algorithm to exclude isolates where bacteria ID or genus is unavailable
* Fix for warning *hybrid evaluation forced for row_number* ([`924b62`](https://github.com/tidyverse/dplyr/commit/924b62)) from the `dplyr` package v0.7.5 and above
2018-07-23 14:14:03 +02:00
* Support for empty values and for 1 or 2 columns as input for `guess_bactid` (now called `as.bactid`)
* So `yourdata %>% select(genus, species) %>% as.bactid()` now also works
2018-07-28 10:48:27 +02:00
* Other small fixes
2018-05-09 11:44:46 +02:00
2018-07-10 12:27:07 +02:00
#### Other
2018-08-14 08:57:17 +02:00
* Added integration tests (check if everything works as expected) for all releases of R 3.1 and higher
* Linux and macOS: https://travis-ci.org/msberends/AMR
* Windows: https://ci.appveyor.com/project/msberends/amr
2018-08-03 09:59:39 +02:00
* Added thesis advisors to DESCRIPTION file
2018-07-10 12:27:07 +02:00
2018-08-14 14:06:18 +02:00
# 0.2.0
2018-07-30 00:57:49 +02:00
**Published on CRAN: 2018-05-03**
#### New
2018-04-18 15:19:00 +02:00
* Full support for Windows, Linux and macOS
2018-04-25 15:33:58 +02:00
* Full support for old R versions, only R-3.0.0 (April 2013) or later is needed (needed packages may have other dependencies)
2018-05-02 14:56:25 +02:00
* Function `n_rsi` to count cases where antibiotic test results were available, to be used in conjunction with `dplyr::summarise`, see ?rsi
2018-04-25 15:33:58 +02:00
* Function `guess_bactid` to **determine the ID** of a microorganism based on genus/species or known abbreviations like MRSA
* Function `guess_atc` to **determine the ATC** of an antibiotic based on name, trade name, or known abbreviations
* Function `freq` to create **frequency tables**, with additional info in a header
* Function `MDRO` to **determine Multi Drug Resistant Organisms (MDRO)** with support for country-specific guidelines.
* Suggest your own via [https://github.com/msberends/AMR/issues/new](https://github.com/msberends/AMR/issues/new?title=New%20guideline%20for%20MDRO&body=%3C--%20Please%20add%20your%20country%20code,%20guideline%20name,%20version%20and%20source%20below%20and%20remove%20this%20line--%3E)
* [Exceptional resistances defined by EUCAST](http://www.eucast.org/expert_rules_and_intrinsic_resistance) are also supported instead of countries alone
* Functions `BRMO` and `MRGN` are wrappers for Dutch and German guidelines, respectively
2018-04-18 15:19:00 +02:00
* New algorithm to determine weighted isolates, can now be `"points"` or `"keyantibiotics"`, see `?first_isolate`
2018-04-25 15:33:58 +02:00
* New print format for `tibble`s and `data.table`s
#### Changed
2018-05-02 14:56:25 +02:00
* Fixed `rsi` class for vectors that contain only invalid antimicrobial interpretations
2018-04-18 15:19:00 +02:00
* Renamed dataset `ablist` to `antibiotics`
* Renamed dataset `bactlist` to `microorganisms`
2018-04-25 15:33:58 +02:00
* Added common abbreviations and trade names to the `antibiotics` dataset
* Added more microorganisms to the `microorganisms` dataset
2018-04-18 15:19:00 +02:00
* Added analysis examples on help page of dataset `septic_patients`
* Added support for character vector in `join` functions
* Added warnings when a join results in more rows after than before the join
* Altered `%like%` to make it case insensitive
2018-04-25 15:33:58 +02:00
* For parameters of functions `first_isolate` and `EUCAST_rules` column names are now case-insensitive
* Functions `as.rsi` and `as.mic` now add the package name and version as attributes
#### Other
2018-04-25 15:33:58 +02:00
* Expanded `README.md` with more examples
* Added [ORCID](https://orcid.org) of authors to DESCRIPTION file
2018-04-18 15:19:00 +02:00
* Added unit testing with the `testthat` package
* Added build tests for Linux and macOS using Travis CI (https://travis-ci.org/msberends/AMR)
2018-04-25 15:33:58 +02:00
* Added line coverage checking using CodeCov (https://codecov.io/gh/msberends/AMR/tree/master/R)
2018-04-18 15:19:00 +02:00
# 0.1.1
2018-07-30 00:57:49 +02:00
**Published on CRAN: 2018-03-14**
2018-04-18 15:19:00 +02:00
* `EUCAST_rules` applies for amoxicillin even if ampicillin is missing
* Edited column names to comply with GLIMS, the laboratory information system
* Added more valid MIC values
* Renamed 'Daily Defined Dose' to 'Defined Daily Dose'
* Added barplots for `rsi` and `mic` classes
2018-04-18 15:19:00 +02:00
# 0.1.0
2018-07-30 00:57:49 +02:00
**Published on CRAN: 2018-02-22**
2018-04-18 15:19:00 +02:00
* First submission to CRAN.