From 0ef614107aa6aea3a74ab9454516ae499b2091e2 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 14:33:39 +0000 Subject: [PATCH 01/33] remove function --- R/get_status_code.R | 30 ------------------------------ 1 file changed, 30 deletions(-) delete mode 100644 R/get_status_code.R diff --git a/R/get_status_code.R b/R/get_status_code.R deleted file mode 100644 index 516e585..0000000 --- a/R/get_status_code.R +++ /dev/null @@ -1,30 +0,0 @@ -#' Get Status Code -#' -#' Retrieve the status code of a new submission for entity classification -#' -#' @param query_id a numeric value for the query id -#' @return a list of `query_id` and classification status; either `In progress` or `Done` -#' -#' @export -#' @examples -#' get_status_code(2813259) - -get_status_code <- function(query_id) -{ - if (!is.numeric(query_id)) { - stop(deparse(substitute(query_id)), ' must be a numeric value') - } - - status <- - httr::GET( - paste0( - "http://classyfire.wishartlab.com/queries/", - query = query_id, - "/status.json" - ) - ) %>% - httr::content(., 'text') - - return(list(query_id = query_id, status = status)) - -} From 8f43a6b3477ecc4787c209918802944d25399f1e Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 14:33:51 +0000 Subject: [PATCH 02/33] remove function --- R/submit_classification.R | 46 --------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 R/submit_classification.R diff --git a/R/submit_classification.R b/R/submit_classification.R deleted file mode 100644 index 63f896d..0000000 --- a/R/submit_classification.R +++ /dev/null @@ -1,46 +0,0 @@ -#' Submit InChI Code for Classification -#' -#' Submit and new entity for classification using the ClassyFire webserver -#' -#' @param query a character string of `InChI Code` or `SMILE` -#' @param label a character string of the query name -#' @param type the label type (`Default = STRUCTURE`) -#' @return if the classification has completed; a `tibble` containing the following; -#' * __Level__ Classification level (kingdom, superclass, class and subclass) -#' * __Classification__ The compound classification -#' * __CHEMONT__ Chemical Ontology Identification code -#' @export -#' @importFrom magrittr "%>%" - -submit_classification <- function(query, label, type = 'STRUCTURE') -{ - params <- list(label = label, - query_input = query, - query_type = type) - - submit <- httr::POST( - "http://classyfire.wishartlab.com/queries", - body = params, - encode = "json", - httr::accept_json(), - httr::add_headers("Content-Type" = "application/json") - ) - - query_id <- - jsonlite::fromJSON(httr::content(submit, 'text')) %>% unlist() %>% as.list() - - - if (get_status_code(as.numeric(query_id$id))$status != 'Done') { - message(crayon::yellow('... classification still in progress', '\n')) - message( - crayon::yellow( - '... use `retrieve_classification` once submission is out of queue' - ) - ) - return(get_status_code(as.numeric(query_id$id))) - - } else{ - classification <- retrieve_classification(query_id$id) - return(classification) - } -} From af72e6c6d2e4b22d2a0ac6c9c424616d465fbd6c Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 14:34:04 +0000 Subject: [PATCH 03/33] remove function --- R/retrieve_classification.R | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 R/retrieve_classification.R diff --git a/R/retrieve_classification.R b/R/retrieve_classification.R deleted file mode 100644 index 95850e0..0000000 --- a/R/retrieve_classification.R +++ /dev/null @@ -1,33 +0,0 @@ -#' Retrieve classification results -#' -#' Retrieve classification results from a new submission -#' -#' @param query_id a numeric value for the query id -#' @return a `tibble` containing the following; -#' * __Level__ Classification level (kingdom, superclass, class and subclass) -#' * __Classification__ The compound classification -#' * __CHEMONT__ Chemical Ontology Identification code -#' -#' @export -#' @examples -#' -#' retrieve_classification(2813259) - -retrieve_classification <- function(query_id) -{ - retrieve <- - paste0('http://classyfire.wishartlab.com/queries/', - query_id, - '.json') - - response <- httr::GET(retrieve) - - text_content <- httr::content(response, 'text') - - json_res <- jsonlite::fromJSON(text_content) - - classification <- parse_json_output(json_res$entities) - - return(classification) - -} From c7b811385bf4d9c475810291008e7435e7f22da9 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 14:42:56 +0000 Subject: [PATCH 04/33] remove docs --- man/get_status_code.Rd | 20 -------------------- man/retrieve_classification.Rd | 26 -------------------------- man/submit_classification.Rd | 26 -------------------------- 3 files changed, 72 deletions(-) delete mode 100644 man/get_status_code.Rd delete mode 100644 man/retrieve_classification.Rd delete mode 100644 man/submit_classification.Rd diff --git a/man/get_status_code.Rd b/man/get_status_code.Rd deleted file mode 100644 index 73f8b05..0000000 --- a/man/get_status_code.Rd +++ /dev/null @@ -1,20 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/get_status_code.R -\name{get_status_code} -\alias{get_status_code} -\title{Get Status Code} -\usage{ -get_status_code(query_id) -} -\arguments{ -\item{query_id}{a numeric value for the query id} -} -\value{ -a list of \code{query_id} and classification status; either \code{In progress} or \code{Done} -} -\description{ -Retrieve the status code of a new submission for entity classification -} -\examples{ -get_status_code(2813259) -} diff --git a/man/retrieve_classification.Rd b/man/retrieve_classification.Rd deleted file mode 100644 index c528ba0..0000000 --- a/man/retrieve_classification.Rd +++ /dev/null @@ -1,26 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/retrieve_classification.R -\name{retrieve_classification} -\alias{retrieve_classification} -\title{Retrieve classification results} -\usage{ -retrieve_classification(query_id) -} -\arguments{ -\item{query_id}{a numeric value for the query id} -} -\value{ -a \code{tibble} containing the following; -\itemize{ -\item \strong{Level} Classification level (kingdom, superclass, class and subclass) -\item \strong{Classification} The compound classification -\item \strong{CHEMONT} Chemical Ontology Identification code -} -} -\description{ -Retrieve classification results from a new submission -} -\examples{ - -retrieve_classification(2813259) -} diff --git a/man/submit_classification.Rd b/man/submit_classification.Rd deleted file mode 100644 index 8e2066f..0000000 --- a/man/submit_classification.Rd +++ /dev/null @@ -1,26 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/submit_classification.R -\name{submit_classification} -\alias{submit_classification} -\title{Submit InChI Code for Classification} -\usage{ -submit_classification(query, label, type = "STRUCTURE") -} -\arguments{ -\item{query}{a character string of \code{InChI Code} or \code{SMILE}} - -\item{label}{a character string of the query name} - -\item{type}{the label type (\code{Default = STRUCTURE})} -} -\value{ -if the classification has completed; a \code{tibble} containing the following; -\itemize{ -\item \strong{Level} Classification level (kingdom, superclass, class and subclass) -\item \strong{Classification} The compound classification -\item \strong{CHEMONT} Chemical Ontology Identification code -} -} -\description{ -Submit and new entity for classification using the ClassyFire webserver -} From f2f7bff5977a0c00786d8df601d1e9044c434319 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 14:43:14 +0000 Subject: [PATCH 05/33] update exports after removing POST functions --- NAMESPACE | 4 ---- 1 file changed, 4 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 154c10f..5ff4267 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,8 +1,4 @@ # Generated by roxygen2: do not edit by hand export(entity_classification) -export(get_status_code) -export(retrieve_classification) -export(submit_classification) -importFrom(magrittr,"%>%") importFrom(utils,globalVariables) From ee86332b192873cbbecfa9cb6b5ce26957f48606 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 14:43:38 +0000 Subject: [PATCH 06/33] update DESCRIPTION --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index f455857..890ce8b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -25,5 +25,5 @@ Encoding: UTF-8 LazyData: true URL: https://github.com/wilsontom/classyfireR BugReports: https://github.com/wilsontom/classyfireR/issues -RoxygenNote: 6.1.0 +RoxygenNote: 6.1.1 Roxygen: list(markdown = TRUE) From 4ef9a8216760291d73dcfff250e2583b6cfb33c5 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 16:48:31 +0000 Subject: [PATCH 07/33] remove redundant tests --- tests/testthat/test-submission.R | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 tests/testthat/test-submission.R diff --git a/tests/testthat/test-submission.R b/tests/testthat/test-submission.R deleted file mode 100644 index e91fb0b..0000000 --- a/tests/testthat/test-submission.R +++ /dev/null @@ -1,19 +0,0 @@ -context('new-submission') - -test_that('submit-classification', { - expect_true(is.list(get_status_code(2813259))) - expect_true(length(get_status_code(2813259)) == 2) - - inchi <- - 'InChI=1S/C7H11N3O2/c1-10-3-5(9-4-10)2-6(8)7(11)12/h3-4,6H,2,8H2,1H3,(H,11,12)/t6-/m0/s1' - - inchi_sub <- - submit_classification(query = inchi, - label = 'package_test', - type = 'STRUCTURE') - - if(!dplyr::is.tbl(inchi_sub)){ - expect_true(dplyr::is.tbl(retrieve_classification(inchi_sub$query_id))) - } -}) - From 6af9f8a3d70be8598738db0dfe1a313741c07195 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 16:48:57 +0000 Subject: [PATCH 08/33] reformat for pkgdown --- NEWS.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/NEWS.md b/NEWS.md index 3359d28..562e03f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,16 +1,13 @@ -### NEWS +# v0.1.2 -#### v0.1.2 +* Fix unit test to catch when server is unresponsive. This will fix intermittent CRAN check fails -- Fix unit test to catch when server is unresponsive. This will fix intermittent CRAN check fails +# v0.1.1 -#### v0.1.1 +* Add more detailed examples ready for CRAN submission -- Add more detailed examples ready for CRAN submission +# V0.1.0 -#### V0.1.0 - - -- Low level access to the ClassyFire RESTful API -- Retrieve existing classifications using InChI Keys -- Submit new classifications to the server using InChI Codes and retrieve the results +* Low level access to the ClassyFire RESTful API +* Retrieve existing classifications using InChI Keys +* Submit new classifications to the server using InChI Codes and retrieve the results From 5734064f74574bf4a158888e2c5c6d00c79a2d0c Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 16:50:58 +0000 Subject: [PATCH 09/33] remove POST examples from README --- README.md | 45 --------------------------------------------- 1 file changed, 45 deletions(-) diff --git a/README.md b/README.md index 16bdadd..e3a19ee 100644 --- a/README.md +++ b/README.md @@ -118,51 +118,6 @@ classification_df <- data.frame(InChIKey = rownames(spread_tibble), ``` -### New Classification - -__For compounds which do not already have an available entity classification; a new classification can be generated by submitting the InChI code to the ClassyFire Server using a POST request__. - -```R -> new_compound <- 'InChI=1S/C7H11N3O2/c1-10-3-5(9-4-10)2-6(8)7(11)12/h3-4,6H,2,8H2,1H3,(H,11,12)/t6-/m0/s1' - -> new_submission <- submit_classification(new_compound, label = 'test', type = 'STRUCTURE') - -Classification still in progress - -Use `retrieve_classification` once submission is out of queue - -> new_submission -query_id -[1] 2815613 - -$status -[1] "In Queue" - - -# wait a few seconds - -> get_status_code(new_submission$query_id) -$query_id -[1] 2815613 - -$status -[1] "Done" - -# then retrieve the results - -> classification_result <- retrieve_classification(new_submission$query_id) - -> classification_result - -# A tibble: 4 x 3 - Level Classification CHEMONT - -1 kingdom Organic compounds CHEMONTID:0000000 -2 superclass Organic acids and derivatives CHEMONTID:0000264 -3 class Carboxylic acids and derivatives CHEMONTID:0000265 -4 subclass Amino acids, peptides, and analogues CHEMONTID:0000013 -``` - ### Acknowledgements If you use `classyfireR` you should cite the [ClassyFire](https://jcheminf.springeropen.com/articles/10.1186/s13321-016-0174-y) publication From 67073121bbc3e28c6b6b9a786462ab42ace6d5e4 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 17:05:48 +0000 Subject: [PATCH 10/33] re-build pkgdown --- docs/index.html | 45 +------------ docs/news/index.html | 133 ++++++++++++++++++++++++++++++++++++++ docs/reference/index.html | 18 ------ docs/sitemap.xml | 9 --- 4 files changed, 134 insertions(+), 71 deletions(-) create mode 100644 docs/news/index.html diff --git a/docs/index.html b/docs/index.html index 61d707a..ed7ed65 100644 --- a/docs/index.html +++ b/docs/index.html @@ -81,7 +81,7 @@

classyfireR can be installed from CRAN using;

install.packages('classyfireR')

Or from GitHub using the remotes package

-
remotes::install_github('wilsontom/classyfireR')
+
remotes::install_github('wilsontom/classyfireR')
  • Entity Classification
  • New Classification
  • @@ -175,49 +175,6 @@

    5 Steroids and steroid derivatives Estrane steroids 6 Hydroxy acids and derivatives Beta hydroxy acids and derivatives -
    -

    -New Classification

    -

    For compounds which do not already have an available entity classification; a new classification can be generated by submitting the InChI code to the ClassyFire Server using a POST request.

    -
    > new_compound <- 'InChI=1S/C7H11N3O2/c1-10-3-5(9-4-10)2-6(8)7(11)12/h3-4,6H,2,8H2,1H3,(H,11,12)/t6-/m0/s1'
    -
    -> new_submission <- submit_classification(new_compound, label = 'test', type = 'STRUCTURE')
    -
    -Classification still in progress
    -
    -Use `retrieve_classification` once submission is out of queue
    -
    -> new_submission
    -query_id
    -[1] 2815613
    -
    -$status
    -[1] "In Queue"
    -
    -
    -# wait a few seconds
    -
    -> get_status_code(new_submission$query_id)
    -$query_id
    -[1] 2815613
    -
    -$status
    -[1] "Done"
    -
    -# then retrieve the results
    -
    -> classification_result <- retrieve_classification(new_submission$query_id)
    -
    -> classification_result
    -
    -# A tibble: 4 x 3
    -  Level      Classification                       CHEMONT          
    -  <chr>      <chr>                                <chr>            
    -1 kingdom    Organic compounds                    CHEMONTID:0000000
    -2 superclass Organic acids and derivatives        CHEMONTID:0000264
    -3 class      Carboxylic acids and derivatives     CHEMONTID:0000265
    -4 subclass   Amino acids, peptides, and analogues CHEMONTID:0000013
    -

    Acknowledgements

    diff --git a/docs/news/index.html b/docs/news/index.html new file mode 100644 index 0000000..3d67ae2 --- /dev/null +++ b/docs/news/index.html @@ -0,0 +1,133 @@ + + + + + + + + +Changelog • classyfireR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + +
    +
    + + +
    + + + +
    + +
    + + +
    +

    Site built with pkgdown 1.3.0.

    +
    +
    +
    + + + + + + diff --git a/docs/reference/index.html b/docs/reference/index.html index 4570d1a..c9a1763 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -123,24 +123,6 @@

    entity_classification()

    Entity Classification

    - - - -

    get_status_code()

    - -

    Get Status Code

    - - - -

    retrieve_classification()

    - -

    Retrieve classification results

    - - - -

    submit_classification()

    - -

    Submit InChI Code for Classification

    diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 9461b28..507ab8e 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -6,16 +6,7 @@ https://wilsontom.github.io/classyfireR//reference/entity_classification.html - - https://wilsontom.github.io/classyfireR//reference/get_status_code.html - https://wilsontom.github.io/classyfireR//reference/parse_json_output.html - - https://wilsontom.github.io/classyfireR//reference/retrieve_classification.html - - - https://wilsontom.github.io/classyfireR//reference/submit_classification.html - From d83001c8b0a7a7d70d603a17d30dac38f5847eb0 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 21:03:32 +0000 Subject: [PATCH 11/33] rename function --- R/get_classification.R | 81 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 R/get_classification.R diff --git a/R/get_classification.R b/R/get_classification.R new file mode 100644 index 0000000..c3bdb0b --- /dev/null +++ b/R/get_classification.R @@ -0,0 +1,81 @@ +#' Get Entity Classification +#' +#' Retrieve entity classification from `http://classyfire.wishartlab.com/entities/' +#' +#' +#' @param inchi_key a character string of a valid InChIKey +#' @return a `tibble` containing the following; +#' * __Level__ Classification level (kingdom, superclass, class and subclass) +#' * __Classification__ The compound classification +#' * __CHEMONT__ Chemical Ontology Identification code +#' +#' @examples +#' +#' # Valid InChI key where all four classification levels are available +#' get_classification('BRMWTNUJHUMWMS-LURJTMIESA-N') +#' +#' # Valid InChI key where only three classification levels are available +#' get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N') +#' +#' # Invalid InChI key +#' get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-B') +#' +#' +#' # Using `dplyr` a vector of InChI Keys can be submitted and easily parsed +#' library(dplyr) +#' library(purrr) +#' library(tidyr) +#' +#' keys <- c( +#' 'BRMWTNUJHUMWMS-LURJTMIESA-N', +#' 'XFNJVJPLKCPIBV-UHFFFAOYSA-N', +#' 'TYEYBOSBBBHJIV-UHFFFAOYSA-N', +#' 'AFENDNXGAFYKQO-UHFFFAOYSA-N', +#' 'WHEUWNKSCXYKBU-QPWUGHHJSA-N', +#' 'WHBMMWSBFZVSSR-GSVOUGTGSA-N') +#' +#' classification_list <- map(keys, get_classification) +#' +#' classification_list <- map(classification_list, ~{select(.,-CHEMONT)}) +#' +#' spread_tibble <- purrr:::map(classification_list, ~{ +#' spread(., Level, Classification) +#' }) %>% bind_rows() %>% data.frame() +#' +#' rownames(spread_tibble) <- keys +#' +#' classification_df <- data.frame(InChIKey = rownames(spread_tibble), +#' Kingdom = spread_tibble$kingdom, +#' SuperClass = spread_tibble$superclass, +#' Class = spread_tibble$class, +#' SubClass = spread_tibble$subclass) +#' +#' print(classification_df) +#' +#' +#' +#' @export +get_classification <- function(inchi_key) +{ + entity_url <- 'http://classyfire.wishartlab.com/entities/' + + entity_query <- paste0(entity_url, inchi_key, '.json') + + response <- httr::GET(entity_query) + + if (response$status_code == 404) { + message(crayon::red(clisymbols::symbol$cross, inchi_key)) + } + + if (response$status_code == 200) { + message(crayon::green(clisymbols::symbol$tick, inchi_key)) + text_content <- httr::content(response, 'text') + + json_res <- jsonlite::fromJSON(text_content) + + classification <- parse_json_output(json_res) + + + return(classification) + } +} From e2c7e61a336ecd45afda88fa50b1622ec7889c9e Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 21:03:58 +0000 Subject: [PATCH 12/33] update docs --- NAMESPACE | 2 +- ...y_classification.Rd => get_classification.Rd} | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) rename man/{entity_classification.Rd => get_classification.Rd} (83%) diff --git a/NAMESPACE b/NAMESPACE index 5ff4267..4a48b40 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,4 +1,4 @@ # Generated by roxygen2: do not edit by hand -export(entity_classification) +export(get_classification) importFrom(utils,globalVariables) diff --git a/man/entity_classification.Rd b/man/get_classification.Rd similarity index 83% rename from man/entity_classification.Rd rename to man/get_classification.Rd index fdd6390..f66231e 100644 --- a/man/entity_classification.Rd +++ b/man/get_classification.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/entity_classification.R -\name{entity_classification} -\alias{entity_classification} -\title{Entity Classification} +\name{get_classification} +\alias{get_classification} +\title{Get Entity Classification} \usage{ -entity_classification(inchi_key) +get_classification(inchi_key) } \arguments{ \item{inchi_key}{a character string of a valid InChIKey} @@ -23,13 +23,13 @@ Retrieve entity classification from `http://classyfire.wishartlab.com/entities/' \examples{ # Valid InChI key where all four classification levels are available -entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N') +get_classification('BRMWTNUJHUMWMS-LURJTMIESA-N') # Valid InChI key where only three classification levels are available -entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N') +get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N') # Invalid InChI key -entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-B') +get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-B') # Using `dplyr` a vector of InChI Keys can be submitted and easily parsed @@ -45,7 +45,7 @@ entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-B') 'WHEUWNKSCXYKBU-QPWUGHHJSA-N', 'WHBMMWSBFZVSSR-GSVOUGTGSA-N') - classification_list <- map(keys, entity_classification) + classification_list <- map(keys, get_classification) classification_list <- map(classification_list, ~{select(.,-CHEMONT)}) From 436ced75634c760135709d1b6986e7afb78705c7 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 21:04:15 +0000 Subject: [PATCH 13/33] clean --- R/entity_classification.R | 81 --------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 R/entity_classification.R diff --git a/R/entity_classification.R b/R/entity_classification.R deleted file mode 100644 index 6b69a35..0000000 --- a/R/entity_classification.R +++ /dev/null @@ -1,81 +0,0 @@ -#' Entity Classification -#' -#' Retrieve entity classification from `http://classyfire.wishartlab.com/entities/' -#' -#' -#' @param inchi_key a character string of a valid InChIKey -#' @return a `tibble` containing the following; -#' * __Level__ Classification level (kingdom, superclass, class and subclass) -#' * __Classification__ The compound classification -#' * __CHEMONT__ Chemical Ontology Identification code -#' -#' @examples -#' -#' # Valid InChI key where all four classification levels are available -#' entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N') -#' -#' # Valid InChI key where only three classification levels are available -#' entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N') -#' -#' # Invalid InChI key -#' entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-B') -#' -#' -#' # Using `dplyr` a vector of InChI Keys can be submitted and easily parsed -#' library(dplyr) -#' library(purrr) -#' library(tidyr) -#' -#' keys <- c( -#' 'BRMWTNUJHUMWMS-LURJTMIESA-N', -#' 'XFNJVJPLKCPIBV-UHFFFAOYSA-N', -#' 'TYEYBOSBBBHJIV-UHFFFAOYSA-N', -#' 'AFENDNXGAFYKQO-UHFFFAOYSA-N', -#' 'WHEUWNKSCXYKBU-QPWUGHHJSA-N', -#' 'WHBMMWSBFZVSSR-GSVOUGTGSA-N') -#' -#' classification_list <- map(keys, entity_classification) -#' -#' classification_list <- map(classification_list, ~{select(.,-CHEMONT)}) -#' -#' spread_tibble <- purrr:::map(classification_list, ~{ -#' spread(., Level, Classification) -#' }) %>% bind_rows() %>% data.frame() -#' -#' rownames(spread_tibble) <- keys -#' -#' classification_df <- data.frame(InChIKey = rownames(spread_tibble), -#' Kingdom = spread_tibble$kingdom, -#' SuperClass = spread_tibble$superclass, -#' Class = spread_tibble$class, -#' SubClass = spread_tibble$subclass) -#' -#' print(classification_df) -#' -#' -#' -#' @export -entity_classification <- function(inchi_key) -{ - entity_url <- 'http://classyfire.wishartlab.com/entities/' - - entity_query <- paste0(entity_url, inchi_key, '.json') - - response <- httr::GET(entity_query) - - if (response$status_code == 404) { - message(crayon::red(clisymbols::symbol$cross, inchi_key)) - } - - if (response$status_code == 200) { - message(crayon::green(clisymbols::symbol$tick, inchi_key)) - text_content <- httr::content(response, 'text') - - json_res <- jsonlite::fromJSON(text_content) - - classification <- parse_json_output(json_res) - - - return(classification) - } -} From 3c1a0a9877976bffda2e203aae94c039efb62428 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 21:09:03 +0000 Subject: [PATCH 14/33] version bump --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 890ce8b..8f9549b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: classyfireR Type: Package Title: R Interface to the ClassyFire RESTful API -Version: 0.1.2 -Date: 2018-12-06 +Version: 0.2.0 +Date: 2019-02-18 Authors@R: c( person("Tom", "Wilson", , "tpw2@aber.ac.uk", c("aut", "cre"))) Description: Access to the ClassyFire RESTful API . Retrieve existing entity classifications and submit new entities for classification. From f80b7101da9319e55f9c43095941056e5760715d Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 21:09:13 +0000 Subject: [PATCH 15/33] update news --- NEWS.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/NEWS.md b/NEWS.md index 562e03f..10b5cc8 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,13 +1,21 @@ +# v0.2.0 + +* Remove POST submission functions. ClassyFire database is now extensive enough that new submission are rarely needed. This will prevent the intermitent failing of checks on CRAN aswell. +* Add `pkgdown` website for docs + # v0.1.2 + * Fix unit test to catch when server is unresponsive. This will fix intermittent CRAN check fails # v0.1.1 + * Add more detailed examples ready for CRAN submission # V0.1.0 + * Low level access to the ClassyFire RESTful API * Retrieve existing classifications using InChI Keys * Submit new classifications to the server using InChI Codes and retrieve the results From 8e37e9caff49b9df750a75b07c2a987520b63470 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 18 Feb 2019 21:15:55 +0000 Subject: [PATCH 16/33] update tests --- tests/testthat/test-classification.R | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/testthat/test-classification.R b/tests/testthat/test-classification.R index 7adb0ed..cde4f24 100644 --- a/tests/testthat/test-classification.R +++ b/tests/testthat/test-classification.R @@ -1,18 +1,18 @@ context('entity-classification') test_that('entity-classification', { - expect_true(dplyr::is.tbl(entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N'))) + expect_true(dplyr::is.tbl(get_classification('BRMWTNUJHUMWMS-LURJTMIESA-N'))) - expect_true(dplyr::is.tbl(entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N'))) + expect_true(dplyr::is.tbl(get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N'))) - expect_true(nrow(entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 4) - expect_true(nrow(entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')) == 4) + expect_true(nrow(get_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 4) + expect_true(nrow(get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')) == 4) - expect_true(ncol(entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 3) + expect_true(ncol(get_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 3) - expect_true(ncol(entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')) == 3) + expect_true(ncol(get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')) == 3) - expect_true(is.null(entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-B'))) + expect_true(is.null(get_classification('BRMWTNUJHUMWMS-LURJTMIESA-B'))) }) From 1710ce8fb3606ce23d3a4e1bb67355244e9684bf Mon Sep 17 00:00:00 2001 From: jasenfinch Date: Sun, 24 Feb 2019 23:46:07 +0000 Subject: [PATCH 17/33] entity_classification now returns all classification levels --- .Rbuildignore | 1 + DESCRIPTION | 9 +++--- NAMESPACE | 6 ++++ R/classyfireR.R | 2 ++ R/internals.R | 43 +++++++++++++++++----------- classyfireR.Rproj | 1 + tests/testthat/test-classification.R | 4 +-- 7 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 R/classyfireR.R diff --git a/.Rbuildignore b/.Rbuildignore index 454c81e..5a61f56 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -7,3 +7,4 @@ README.md cran-comments.md NOTES.md cran_submission/ +_pkgdown.yml diff --git a/DESCRIPTION b/DESCRIPTION index f455857..3a65103 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -13,17 +13,18 @@ Imports: jsonlite, tibble, crayon, - clisymbols + clisymbols, + purrr, + dplyr, + stringr Suggests: testthat, covr, - dplyr, - purrr, tidyr License: GPL (>= 3) Encoding: UTF-8 LazyData: true URL: https://github.com/wilsontom/classyfireR BugReports: https://github.com/wilsontom/classyfireR/issues -RoxygenNote: 6.1.0 +RoxygenNote: 6.1.1 Roxygen: list(markdown = TRUE) diff --git a/NAMESPACE b/NAMESPACE index 154c10f..faf0627 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -4,5 +4,11 @@ export(entity_classification) export(get_status_code) export(retrieve_classification) export(submit_classification) +importFrom(dplyr,bind_rows) +importFrom(dplyr,filter) importFrom(magrittr,"%>%") +importFrom(purrr,map) +importFrom(purrr,map_chr) +importFrom(stringr,str_c) +importFrom(tibble,tibble) importFrom(utils,globalVariables) diff --git a/R/classyfireR.R b/R/classyfireR.R new file mode 100644 index 0000000..98dbed8 --- /dev/null +++ b/R/classyfireR.R @@ -0,0 +1,2 @@ + +globalVariables(c('Level','Classification')) diff --git a/R/internals.R b/R/internals.R index 55f11f4..fd46fb8 100644 --- a/R/internals.R +++ b/R/internals.R @@ -8,6 +8,10 @@ #' * __Classification__ The compound classification #' * __CHEMONT__ Chemical Ontology Identification code #' @keywords internal +#' @importFrom dplyr bind_rows filter +#' @importFrom purrr map map_chr +#' @importFrom stringr str_c +#' @importFrom tibble tibble parse_json_output <- function(json_res) { @@ -16,27 +20,34 @@ parse_json_output <- function(json_res) kingdom = json_res[['kingdom']], superclass = json_res[['superclass']], class = json_res[['class']], - subclass = json_res[['subclass']] + subclass = json_res[['subclass']], + intermediate_nodes = json_res[['intermediate_nodes']], + direct_parent = json_res[['direct_parent']] ) - len <- lapply(list_output, length) %>% unlist() + if (length(list_output$intermediate_nodes) == 0) { + list_output$intermediate_nodes <- NULL + } - class_tibble <- - tibble::tibble(Level = names(len), - Classification = 'NA', - CHEMONT = 'NA') + list_output <- list_output[!sapply(list_output,is.null)] - for (i in seq_along(len)) { - if (len[[i]] == 4) { - class_tibble[i, 'Classification'] <- list_output[[i]]$name - class_tibble[i, 'CHEMONT'] <- list_output[[i]]$chemont_id - } else{ - class_tibble[i, 'Classification'] <- NA - class_tibble[i, 'CHEMONT'] <- NA - } - } + class_tibble <- map(1:length(list_output),~{ + l <- list_output[[.]] + tibble( + Level = names(list_output)[.], + Classification = l$name, + CHEMONT = l$chemont_id + ) + }) %>% + bind_rows() %>% + filter(!duplicated(Classification)) + nIntermediate <- class_tibble %>% + filter(Level == 'intermediate_nodes') %>% + nrow() - return(class_tibble) + class_tibble$Level[class_tibble$Level == 'intermediate_nodes'] <- map_chr(5:(5 + (nIntermediate - 1)),~{str_c('level ',.)}) + class_tibble$Level[class_tibble$Level == 'direct_parent'] <- str_c('level ',5 + nIntermediate) + return(class_tibble) } diff --git a/classyfireR.Rproj b/classyfireR.Rproj index 497f8bf..270314b 100644 --- a/classyfireR.Rproj +++ b/classyfireR.Rproj @@ -18,3 +18,4 @@ StripTrailingWhitespace: Yes BuildType: Package PackageUseDevtools: Yes PackageInstallArgs: --no-multiarch --with-keep.source +PackageRoxygenize: rd,collate,namespace diff --git a/tests/testthat/test-classification.R b/tests/testthat/test-classification.R index 7adb0ed..5d7f8e7 100644 --- a/tests/testthat/test-classification.R +++ b/tests/testthat/test-classification.R @@ -5,8 +5,8 @@ test_that('entity-classification', { expect_true(dplyr::is.tbl(entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N'))) - expect_true(nrow(entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 4) - expect_true(nrow(entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')) == 4) + expect_true(nrow(entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 7) + expect_true(nrow(entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')) == 3) expect_true(ncol(entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 3) From a938cec494a1d93f44852832c2a555c022d11cb6 Mon Sep 17 00:00:00 2001 From: jasenfinch Date: Mon, 25 Feb 2019 00:20:33 +0000 Subject: [PATCH 18/33] fixed checks --- NAMESPACE | 1 + R/internals.R | 1 + tests/testthat/test-classification.R | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 1504afc..151fd4f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,7 @@ export(get_classification) importFrom(dplyr,bind_rows) importFrom(dplyr,filter) +importFrom(magrittr,"%>%") importFrom(purrr,map) importFrom(purrr,map_chr) importFrom(stringr,str_c) diff --git a/R/internals.R b/R/internals.R index fd46fb8..1aa15b5 100644 --- a/R/internals.R +++ b/R/internals.R @@ -12,6 +12,7 @@ #' @importFrom purrr map map_chr #' @importFrom stringr str_c #' @importFrom tibble tibble +#' @importFrom magrittr %>% parse_json_output <- function(json_res) { diff --git a/tests/testthat/test-classification.R b/tests/testthat/test-classification.R index ea3970f..6282589 100644 --- a/tests/testthat/test-classification.R +++ b/tests/testthat/test-classification.R @@ -5,8 +5,8 @@ test_that('entity-classification', { expect_true(dplyr::is.tbl(get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N'))) - expect_true(nrow(entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 7) - expect_true(nrow(entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')) == 3) + expect_true(nrow(get_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 7) + expect_true(nrow(get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')) == 3) expect_true(ncol(get_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')) == 3) From 5e78b52c142261922ec496592d97e2f3eed0b413 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 12:06:46 +0000 Subject: [PATCH 19/33] update Rbuildignore --- .Rbuildignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.Rbuildignore b/.Rbuildignore index 5a61f56..981dd79 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,3 +8,4 @@ cran-comments.md NOTES.md cran_submission/ _pkgdown.yml +README_examples.R From 57c17b4b4774148c4a49f0022c8a28a5c2b05b90 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 12:06:57 +0000 Subject: [PATCH 20/33] update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 89d7033..ff2121e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .Rproj.user cran_submission/ +README_examples.R From 490b130732d4013992df6a492788d0f7f079e516 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 12:07:05 +0000 Subject: [PATCH 21/33] package updates --- NEWS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.md b/NEWS.md index 10b5cc8..be7e06e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,10 @@ # v0.2.0 + * Remove POST submission functions. ClassyFire database is now extensive enough that new submission are rarely needed. This will prevent the intermitent failing of checks on CRAN aswell. * Add `pkgdown` website for docs +* `entity_classification` renamed to `get_classification` +* All available classificatons now returned # v0.1.2 From bb0fcc3476b4ec9b1aeaa209bd1b307fb0b74525 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 12:07:20 +0000 Subject: [PATCH 22/33] update examples --- README.md | 58 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index e3a19ee..617ae77 100644 --- a/README.md +++ b/README.md @@ -19,29 +19,31 @@ Or from GitHub using the `remotes` package remotes::install_github('wilsontom/classyfireR') ``` -* [Entity Classification](#entity-classification) -* [New Classification](#new-classification) +* [Get Classification](get-classification) * [Acknowledgements](#acknowledgements) -### Entity Classification +### Get Classification -__For retrieval of classifications already available; a InChI Key is supplied to the `entity_classification` function.__ +__For retrieval of classifications already available; a InChI Key is supplied to the `get_classification` function.__ ```R library(classyfireR) > inchi_keys <- c('BRMWTNUJHUMWMS-LURJTMIESA-N', 'MDHYEMXUFSJLGV-UHFFFAOYSA-N') -> entity_classification(inchi_keys[1]) +> get_classification(inchi_keys[1]) ✔ classification retrieved -# A tibble: 4 x 3 +# A tibble: 7 x 3 Level Classification CHEMONT 1 kingdom Organic compounds CHEMONTID:0000000 2 superclass Organic acids and derivatives CHEMONTID:0000264 3 class Carboxylic acids and derivatives CHEMONTID:0000265 4 subclass Amino acids, peptides, and analogues CHEMONTID:0000013 +5 level 5 Amino acids and derivatives CHEMONTID:0000347 +6 level 6 Alpha amino acids and derivatives CHEMONTID:0000060 +7 level 7 Histidine and derivatives CHEMONTID:0004311 ``` __Using the `tidyverse` a vector of InChI Keys can be submitted and easily extracted.__ @@ -58,7 +60,7 @@ __Using the `tidyverse` a vector of InChI Keys can be submitted and easily extra 'WHBMMWSBFZVSSR-GSVOUGTGSA-N' ) -> classification_list <- map(keys, entity_classification) +> classification_list <- map(keys, get_classification) > classification_tibble <- map2(classification_list, keys, ~ { @@ -93,27 +95,27 @@ spread_tibble <- purrr:::map(classification_list, ~{ rownames(spread_tibble) <- keys -classification_df <- data.frame(InChIKey = rownames(spread_tibble), - Kingdom = spread_tibble$kingdom, - SuperClass = spread_tibble$superclass, - Class = spread_tibble$class, - SubClass = spread_tibble$subclass) - -> classification_df - InChIKey Kingdom SuperClass -1 BRMWTNUJHUMWMS-LURJTMIESA-N Organic compounds Organic acids and derivatives -2 XFNJVJPLKCPIBV-UHFFFAOYSA-N Organic compounds Organic nitrogen compounds -3 TYEYBOSBBBHJIV-UHFFFAOYSA-N Organic compounds Organic acids and derivatives -4 AFENDNXGAFYKQO-UHFFFAOYSA-N Organic compounds Organic acids and derivatives -5 WHEUWNKSCXYKBU-QPWUGHHJSA-N Organic compounds Lipids and lipid-like molecules -6 WHBMMWSBFZVSSR-GSVOUGTGSA-N Organic compounds Organic acids and derivatives - Class SubClass -1 Carboxylic acids and derivatives Amino acids, peptides, and analogues -2 Organonitrogen compounds Amines -3 Keto acids and derivatives Short-chain keto acids and derivatives -4 Hydroxy acids and derivatives Alpha hydroxy acids and derivatives -5 Steroids and steroid derivatives Estrane steroids -6 Hydroxy acids and derivatives Beta hydroxy acids and derivatives +classification_tibble <- tibble( + InChIKey = rownames(spread_tibble), + Kingdom = spread_tibble$kingdom, + SuperClass = spread_tibble$superclass, + Class = spread_tibble$class, + SubClass = spread_tibble$subclass, + Level5 = spread_tibble$level.5, + Level6 = spread_tibble$level.6, + Level7 = spread_tibble$level.7 +) + + +> classification_tibble + InChIKey Kingdom SuperClass Class SubClass Level5 Level6 Level7 + +1 BRMWTNUJHUMWM… Organic c… Organic acids a… Carboxylic … Amino acids, pe… Amino acid… Alpha amino … Histidine … +2 XFNJVJPLKCPIB… Organic c… Organic nitroge… Organonitro… Amines Primary am… Monoalkylami… NA +3 TYEYBOSBBBHJI… Organic c… Organic acids a… Keto acids … Short-chain ket… NA NA NA +4 AFENDNXGAFYKQ… Organic c… Organic acids a… Hydroxy aci… Alpha hydroxy a… NA NA NA +5 WHEUWNKSCXYKB… Organic c… Lipids and lipi… Steroids an… Estrane steroids Estrogens … NA NA +6 WHBMMWSBFZVSS… Organic c… Organic acids a… Hydroxy aci… Beta hydroxy ac… NA NA NA ``` From 603ae27ecc1f23188d6b1f146851f0e3f65781b6 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:15:30 +0000 Subject: [PATCH 23/33] add README as Rmd for pkgdown --- README.Rmd | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 README.Rmd diff --git a/README.Rmd b/README.Rmd new file mode 100644 index 0000000..7b7f8d2 --- /dev/null +++ b/README.Rmd @@ -0,0 +1,128 @@ +# classyfireR +[![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) +[![Build Status](https://travis-ci.org/wilsontom/classyfireR.svg?branch=master)](https://travis-ci.org/wilsontom/classyfireR) [![Build status](https://ci.appveyor.com/api/projects/status/ua94fiotdmc0ssq5/branch/master?svg=true)](https://ci.appveyor.com/project/wilsontom/classyfirer/branch/master) [![codecov](https://codecov.io/gh/wilsontom/classyfireR/branch/master/graph/badge.svg)](https://codecov.io/gh/wilsontom/classyfireR) ![License](https://img.shields.io/badge/license-GNU%20GPL%20v3.0-blue.svg "GNU GPL v3.0") [![DOI](https://zenodo.org/badge/118162964.svg)](https://zenodo.org/badge/latestdoi/118162964) + +[![CRAN](https://www.r-pkg.org/badges/version/classyfireR)](https://cran.r-project.org/web/packages/classyfireR/index.html) ![total downloads](https://cranlogs.r-pkg.org/badges/grand-total/classyfireR?color=red) + + +### Installation & Usage +`classyfireR` can be installed from CRAN using; + +```R +install.packages('classyfireR') +``` + +Or from GitHub using the `remotes` package + +```R +remotes::install_github('wilsontom/classyfireR') +``` + +* [Get Classification](get-classification) +* [Acknowledgements](#acknowledgements) + +### Get Classification + +__For retrieval of classifications already available; a InChI Key is supplied to the `get_classification` function.__ + +```R +library(classyfireR) + +> inchi_keys <- c('BRMWTNUJHUMWMS-LURJTMIESA-N', 'MDHYEMXUFSJLGV-UHFFFAOYSA-N') + +> get_classification(inchi_keys[1]) + +✔ classification retrieved +# A tibble: 7 x 3 + Level Classification CHEMONT + +1 kingdom Organic compounds CHEMONTID:0000000 +2 superclass Organic acids and derivatives CHEMONTID:0000264 +3 class Carboxylic acids and derivatives CHEMONTID:0000265 +4 subclass Amino acids, peptides, and analogues CHEMONTID:0000013 +5 level 5 Amino acids and derivatives CHEMONTID:0000347 +6 level 6 Alpha amino acids and derivatives CHEMONTID:0000060 +7 level 7 Histidine and derivatives CHEMONTID:0004311 +``` + +__Using the `tidyverse` a vector of InChI Keys can be submitted and easily extracted.__ + +```R +> library(tidyverse) + +> keys <- c( + 'BRMWTNUJHUMWMS-LURJTMIESA-N', + 'XFNJVJPLKCPIBV-UHFFFAOYSA-N', + 'TYEYBOSBBBHJIV-UHFFFAOYSA-N', + 'AFENDNXGAFYKQO-UHFFFAOYSA-N', + 'WHEUWNKSCXYKBU-QPWUGHHJSA-N', + 'WHBMMWSBFZVSSR-GSVOUGTGSA-N' +) + +> classification_list <- map(keys, get_classification) + +> classification_tibble <- + map2(classification_list, keys, ~ { + add_column(.x, ID = rep(.y)) + }) %>% bind_rows() + +# To create a table of just the superclass designation + +> superclass <- + classification_tibble %>% filter(Level == 'superclass') %>% select(-c(CHEMONT)) + +> superclass +# A tibble: 6 x 3 + Level Classification ID + +1 superclass Organic acids and derivatives BRMWTNUJHUMWMS-LURJTMIESA-N +2 superclass Organic nitrogen compounds XFNJVJPLKCPIBV-UHFFFAOYSA-N +3 superclass Organic acids and derivatives TYEYBOSBBBHJIV-UHFFFAOYSA-N +4 superclass Organic acids and derivatives AFENDNXGAFYKQO-UHFFFAOYSA-N +5 superclass Lipids and lipid-like molecules WHEUWNKSCXYKBU-QPWUGHHJSA-N +6 superclass Organic acids and derivatives WHBMMWSBFZVSSR-GSVOUGTGSA-N + + + +# To create a data.frame of all classification results + +classification_list <- map(classification_list, ~{select(.,-CHEMONT)}) + +spread_tibble <- purrr:::map(classification_list, ~{ + spread(., Level, Classification) +}) %>% bind_rows() %>% data.frame() + +rownames(spread_tibble) <- keys + +classification_tibble <- tibble( + InChIKey = rownames(spread_tibble), + Kingdom = spread_tibble$kingdom, + SuperClass = spread_tibble$superclass, + Class = spread_tibble$class, + SubClass = spread_tibble$subclass, + Level5 = spread_tibble$level.5, + Level6 = spread_tibble$level.6, + Level7 = spread_tibble$level.7 +) + + +> classification_tibble + InChIKey Kingdom SuperClass Class SubClass Level5 Level6 Level7 + +1 BRMWTNUJHUMWM… Organic c… Organic acids a… Carboxylic … Amino acids, pe… Amino acid… Alpha amino … Histidine … +2 XFNJVJPLKCPIB… Organic c… Organic nitroge… Organonitro… Amines Primary am… Monoalkylami… NA +3 TYEYBOSBBBHJI… Organic c… Organic acids a… Keto acids … Short-chain ket… NA NA NA +4 AFENDNXGAFYKQ… Organic c… Organic acids a… Hydroxy aci… Alpha hydroxy a… NA NA NA +5 WHEUWNKSCXYKB… Organic c… Lipids and lipi… Steroids an… Estrane steroids Estrogens … NA NA +6 WHBMMWSBFZVSS… Organic c… Organic acids a… Hydroxy aci… Beta hydroxy ac… NA NA NA + +``` + + +### Acknowledgements + +If you use `classyfireR` you should cite the [ClassyFire](https://jcheminf.springeropen.com/articles/10.1186/s13321-016-0174-y) publication + +> ___Djoumbou Feunang Y, Eisner R, Knox C, Chepelev L, Hastings J, Owen G, Fahy E, Steinbeck C, Subramanian S, Bolton E, Greiner R, and Wishart DS___. ClassyFire: Automated Chemical Classification With A Comprehensive, Computable Taxonomy. Journal of Cheminformatics, 2016, 8:61. + +> __DOI:__ [10.1186/s13321-016-0174-y](https://jcheminf.springeropen.com/articles/10.1186/s13321-016-0174-y) From 2689bc9c0ba28b971daa064ddb1c5f5092d7dc28 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:15:45 +0000 Subject: [PATCH 24/33] fix format for pkgdown --- NEWS.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/NEWS.md b/NEWS.md index be7e06e..9d68c8f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,23 +1,19 @@ -# v0.2.0 - +# classyfireR 0.2.0 * Remove POST submission functions. ClassyFire database is now extensive enough that new submission are rarely needed. This will prevent the intermitent failing of checks on CRAN aswell. * Add `pkgdown` website for docs * `entity_classification` renamed to `get_classification` -* All available classificatons now returned - -# v0.1.2 +* All available classificatons now returned (@jasenfinch) +# classyfireR 0.1.2 * Fix unit test to catch when server is unresponsive. This will fix intermittent CRAN check fails -# v0.1.1 - +# classyfireR 0.1.1 * Add more detailed examples ready for CRAN submission -# V0.1.0 - +# classyfireR 0.1.0 * Low level access to the ClassyFire RESTful API * Retrieve existing classifications using InChI Keys From 18a900aeddaf31696381f01e96bf57dd4cf2b673 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:16:01 +0000 Subject: [PATCH 25/33] update build --- .Rbuildignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.Rbuildignore b/.Rbuildignore index 981dd79..677a60f 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -9,3 +9,4 @@ NOTES.md cran_submission/ _pkgdown.yml README_examples.R +README.Rmd From 4c31b67d4f9e0b9ee6c6c0cc22dfe914c477bf35 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:16:09 +0000 Subject: [PATCH 26/33] switch to bib entry --- inst/CITATION | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/inst/CITATION b/inst/CITATION index dfad155..49abec6 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -1,7 +1,7 @@ citHeader('To cite classyfireR in publications please use:') -citEntry( - entry = 'Article', +bibentry( + bibtype = 'Manual', title = 'ClassyFire: Automated Chemical Classification With A Comprehensive, Computable Taxonomy', author = personList(as.person('Djoumbou Feunang Y'), as.person('Eisner R'), as.person('Knox C'), as.person('Chepelev L'), as.person('Hastings J'), as.person('Owen G'), @@ -10,8 +10,5 @@ citEntry( journal = 'Journal of Cheminformatics', volume = '8:61', year = '2016', - url = 'https://doi.org/10.1186/s13321-016-0174-y', - - textVersion = paste('Wishart et al; (2016). ClassyFire: Automated Chemical Classification With A Comprehensive, Computable Taxonomy. - Journal of Cheminformatics, 8:61') + url = 'https://doi.org/10.1186/s13321-016-0174-y' ) From 27ecc1bea7299696c8813f2e475f894b87acb774 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:16:26 +0000 Subject: [PATCH 27/33] rebuild pkgdown site --- docs/NOTES.html | 2 +- docs/authors.html | 25 ++- docs/index.html | 101 +++++----- docs/news/index.html | 45 ++++- docs/pkgdown.yml | 3 - ...ification.html => get_classification.html} | 30 +-- docs/reference/get_status_code.html | 168 ----------------- docs/reference/index.html | 6 +- docs/reference/parse_json_output.html | 2 +- docs/reference/retrieve_classification.html | 175 ------------------ docs/reference/submit_classification.html | 172 ----------------- docs/sitemap.xml | 12 -- 12 files changed, 130 insertions(+), 611 deletions(-) rename docs/reference/{entity_classification.html => get_classification.html} (82%) delete mode 100644 docs/reference/get_status_code.html delete mode 100644 docs/reference/retrieve_classification.html delete mode 100644 docs/reference/submit_classification.html delete mode 100644 docs/sitemap.xml diff --git a/docs/NOTES.html b/docs/NOTES.html index 839b189..63bff85 100644 --- a/docs/NOTES.html +++ b/docs/NOTES.html @@ -60,7 +60,7 @@ classyfireR - 0.1.2 + 0.2.0

    diff --git a/docs/authors.html b/docs/authors.html index c6850e9..e7e87a7 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -60,7 +60,7 @@ classyfireR - 0.1.2 + 0.2.0 @@ -69,7 +69,7 @@
  • - +
  • @@ -79,21 +79,21 @@ Changelog
- + - + - +
@@ -103,12 +103,11 @@

Citation

Source: inst/CITATION
-

Y DF, R E, C K, L C, J H, G O, E F, C S, S S, E B, R G, DS W (2016). -“ClassyFire: Automated Chemical Classification With A Comprehensive, Computable Taxonomy.” -Journal of Cheminformatics, 8:61. -https://doi.org/10.1186/s13321-016-0174-y. +

Djoumbou Feunang et al, (2016). +ClassyFire: Automated Chemical Classification With A Comprehensive, Computable Taxonomy, volume 8:61. +https://doi.org/10.1186/s13321-016-0174-y.

-
@Article{,
+    
@Manual{,
   title = {ClassyFire: Automated Chemical Classification With A Comprehensive, Computable Taxonomy},
   author = {Djoumbou Feunang Y and Eisner R and Knox C and Chepelev L and Hastings J and Owen G and Fahy E and Steinbeck C and Subramanian S and Bolton E and Greiner R and Wishart DS},
   journal = {Journal of Cheminformatics},
@@ -122,7 +121,7 @@ 

Authors

  • -

    Tom Wilson. Author, maintainer. +

    Tom Wilson. Author, maintainer.

@@ -143,7 +142,7 @@

Authors

- + diff --git a/docs/index.html b/docs/index.html index ed7ed65..4a0ae4e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -18,7 +18,7 @@ -
+
-
+
+ + + +
-

Project Status: Active - The project has reached a stable, usable state and is being actively developed. Build Status Build status codecov LicenseDOI

+

Project Status: Active - The project has reached a stable, usable state and is being actively developed. Build Status Build status codecov License DOI

CRAN total downloads

-
-

R Interface to the ClassyFire REST API

-

Installation & Usage

@@ -83,29 +84,31 @@

Or from GitHub using the remotes package

remotes::install_github('wilsontom/classyfireR')

-
+

-Entity Classification

-

For retrieval of classifications already available; a InChI Key is supplied to the entity_classification function.

+Get Classification

+

For retrieval of classifications already available; a InChI Key is supplied to the get_classification function.

library(classyfireR)
 
 > inchi_keys <- c('BRMWTNUJHUMWMS-LURJTMIESA-N', 'MDHYEMXUFSJLGV-UHFFFAOYSA-N')
 
-> entity_classification(inchi_keys[1])
+> get_classification(inchi_keys[1])
 
 ✔ classification retrieved
-# A tibble: 4 x 3
-  Level      Classification                       CHEMONT          
+# A tibble: 7 x 3
+  Level      Classification                       CHEMONT
   <chr>      <chr>                                <chr>            
 1 kingdom    Organic compounds                    CHEMONTID:0000000
 2 superclass Organic acids and derivatives        CHEMONTID:0000264
 3 class      Carboxylic acids and derivatives     CHEMONTID:0000265
-4 subclass   Amino acids, peptides, and analogues CHEMONTID:0000013
+4 subclass Amino acids, peptides, and analogues CHEMONTID:0000013 +5 level 5 Amino acids and derivatives CHEMONTID:0000347 +6 level 6 Alpha amino acids and derivatives CHEMONTID:0000060 +7 level 7 Histidine and derivatives CHEMONTID:0004311

Using the tidyverse a vector of InChI Keys can be submitted and easily extracted.

> library(tidyverse)
 
@@ -118,7 +121,7 @@ 

'WHBMMWSBFZVSSR-GSVOUGTGSA-N' ) -> classification_list <- map(keys, entity_classification) +> classification_list <- map(keys, get_classification) > classification_tibble <- map2(classification_list, keys, ~ { @@ -132,7 +135,7 @@

> superclass # A tibble: 6 x 3 - Level Classification ID + Level Classification ID <chr> <chr> <chr> 1 superclass Organic acids and derivatives BRMWTNUJHUMWMS-LURJTMIESA-N 2 superclass Organic nitrogen compounds XFNJVJPLKCPIBV-UHFFFAOYSA-N @@ -148,32 +151,32 @@

classification_list <- map(classification_list, ~{select(.,-CHEMONT)}) spread_tibble <- purrr:::map(classification_list, ~{ - spread(., Level, Classification) + spread(., Level, Classification) }) %>% bind_rows() %>% data.frame() rownames(spread_tibble) <- keys -classification_df <- data.frame(InChIKey = rownames(spread_tibble), - Kingdom = spread_tibble$kingdom, - SuperClass = spread_tibble$superclass, - Class = spread_tibble$class, - SubClass = spread_tibble$subclass) - -> classification_df - InChIKey Kingdom SuperClass -1 BRMWTNUJHUMWMS-LURJTMIESA-N Organic compounds Organic acids and derivatives -2 XFNJVJPLKCPIBV-UHFFFAOYSA-N Organic compounds Organic nitrogen compounds -3 TYEYBOSBBBHJIV-UHFFFAOYSA-N Organic compounds Organic acids and derivatives -4 AFENDNXGAFYKQO-UHFFFAOYSA-N Organic compounds Organic acids and derivatives -5 WHEUWNKSCXYKBU-QPWUGHHJSA-N Organic compounds Lipids and lipid-like molecules -6 WHBMMWSBFZVSSR-GSVOUGTGSA-N Organic compounds Organic acids and derivatives - Class SubClass -1 Carboxylic acids and derivatives Amino acids, peptides, and analogues -2 Organonitrogen compounds Amines -3 Keto acids and derivatives Short-chain keto acids and derivatives -4 Hydroxy acids and derivatives Alpha hydroxy acids and derivatives -5 Steroids and steroid derivatives Estrane steroids -6 Hydroxy acids and derivatives Beta hydroxy acids and derivatives

+classification_tibble <- tibble( + InChIKey = rownames(spread_tibble), + Kingdom = spread_tibble$kingdom, + SuperClass = spread_tibble$superclass, + Class = spread_tibble$class, + SubClass = spread_tibble$subclass, + Level5 = spread_tibble$level.5, + Level6 = spread_tibble$level.6, + Level7 = spread_tibble$level.7 +) + + +> classification_tibble + InChIKey Kingdom SuperClass Class SubClass Level5 Level6 Level7 + <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> +1 BRMWTNUJHUMWM… Organic c… Organic acids a… Carboxylic … Amino acids, pe… Amino acid… Alpha amino … Histidine … +2 XFNJVJPLKCPIB… Organic c… Organic nitroge… Organonitro… Amines Primary am… Monoalkylami… NA +3 TYEYBOSBBBHJI… Organic c… Organic acids a… Keto acids … Short-chain ket… NA NA NA +4 AFENDNXGAFYKQ… Organic c… Organic acids a… Hydroxy aci… Alpha hydroxy a… NA NA NA +5 WHEUWNKSCXYKB… Organic c… Lipids and lipi… Steroids an… Estrane steroids Estrogens … NA NA +6 WHBMMWSBFZVSS… Organic c… Organic acids a… Hydroxy aci… Beta hydroxy ac… NA NA NA - + + +
@@ -233,7 +238,7 @@

Developers

- + diff --git a/docs/news/index.html b/docs/news/index.html index 3d67ae2..0486f52 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -60,7 +60,7 @@ classyfireR - 0.1.2 + 0.2.0 @@ -103,12 +103,55 @@

Changelog

Source: NEWS.md +
+

+classyfireR 0.2.0 Unreleased +

+
    +
  • Remove POST submission functions. ClassyFire database is now extensive enough that new submission are rarely needed. This will prevent the intermitent failing of checks on CRAN aswell.
  • +
  • Add pkgdown website for docs
  • +
  • +entity_classification renamed to get_classification +
  • +
  • All available classificatons now returned (@jasenfinch)
  • +
+
+
+

+classyfireR 0.1.2 2018-12-06 +

+
    +
  • Fix unit test to catch when server is unresponsive. This will fix intermittent CRAN check fails
  • +
+
+
+

+classyfireR 0.1.1 2018-10-14 +

+
    +
  • Add more detailed examples ready for CRAN submission
  • +
+
+
+

+classyfireR 0.1.0 Unreleased +

+
    +
  • Low level access to the ClassyFire RESTful API
  • +
  • Retrieve existing classifications using InChI Keys
  • +
  • Submit new classifications to the server using InChI Codes and retrieve the results
  • +
+
diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index bab837e..8f52a03 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -2,7 +2,4 @@ pandoc: 1.19.2.4 pkgdown: 1.3.0 pkgdown_sha: ~ articles: [] -urls: - reference: https://wilsontom.github.io/classyfireR//reference - article: https://wilsontom.github.io/classyfireR//articles diff --git a/docs/reference/entity_classification.html b/docs/reference/get_classification.html similarity index 82% rename from docs/reference/entity_classification.html rename to docs/reference/get_classification.html index 1a82a28..bb1307a 100644 --- a/docs/reference/entity_classification.html +++ b/docs/reference/get_classification.html @@ -6,7 +6,7 @@ -Entity Classification — entity_classification • classyfireR +Get Entity Classification — get_classification • classyfireR @@ -30,7 +30,7 @@ - + @@ -63,7 +63,7 @@ classyfireR - 0.1.2 + 0.2.0 @@ -102,9 +102,9 @@
@@ -113,7 +113,7 @@

Entity Classification

-
entity_classification(inchi_key)
+
get_classification(inchi_key)

Arguments

@@ -137,23 +137,25 @@

Value

Examples

# Valid InChI key where all four classification levels are available -entity_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')
#> ✔ BRMWTNUJHUMWMS-LURJTMIESA-N
#> # A tibble: 4 x 3 +get_classification('BRMWTNUJHUMWMS-LURJTMIESA-N')
#> ✔ BRMWTNUJHUMWMS-LURJTMIESA-N
#> # A tibble: 7 x 3 #> Level Classification CHEMONT #> <chr> <chr> <chr> #> 1 kingdom Organic compounds CHEMONTID:0000000 #> 2 superclass Organic acids and derivatives CHEMONTID:0000264 #> 3 class Carboxylic acids and derivatives CHEMONTID:0000265 -#> 4 subclass Amino acids, peptides, and analogues CHEMONTID:0000013
+#> 4 subclass Amino acids, peptides, and analogues CHEMONTID:0000013 +#> 5 level 5 Amino acids and derivatives CHEMONTID:0000347 +#> 6 level 6 Alpha amino acids and derivatives CHEMONTID:0000060 +#> 7 level 7 Histidine and derivatives CHEMONTID:0004311
# Valid InChI key where only three classification levels are available -entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')
#> ✔ MDHYEMXUFSJLGV-UHFFFAOYSA-N
#> # A tibble: 4 x 3 +get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-N')
#> ✔ MDHYEMXUFSJLGV-UHFFFAOYSA-N
#> # A tibble: 3 x 3 #> Level Classification CHEMONT #> <chr> <chr> <chr> #> 1 kingdom Organic compounds CHEMONTID:0000000 #> 2 superclass Benzenoids CHEMONTID:0002448 -#> 3 class Benzene and substituted derivatives CHEMONTID:0002279 -#> 4 subclass NA NA
+#> 3 class Benzene and substituted derivatives CHEMONTID:0002279
# Invalid InChI key -entity_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-B')
#> ✖ MDHYEMXUFSJLGV-UHFFFAOYSA-B
+get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-B')
#> ✖ MDHYEMXUFSJLGV-UHFFFAOYSA-B
# Using `dplyr` a vector of InChI Keys can be submitted and easily parsed library(dplyr)
#> @@ -180,7 +182,7 @@

Examp 'WHEUWNKSCXYKBU-QPWUGHHJSA-N', 'WHBMMWSBFZVSSR-GSVOUGTGSA-N') - classification_list <- map(keys, entity_classification)

#> ✔ BRMWTNUJHUMWMS-LURJTMIESA-N
#> ✔ XFNJVJPLKCPIBV-UHFFFAOYSA-N
#> ✔ TYEYBOSBBBHJIV-UHFFFAOYSA-N
#> ✔ AFENDNXGAFYKQO-UHFFFAOYSA-N
#> ✔ WHEUWNKSCXYKBU-QPWUGHHJSA-N
#> ✔ WHBMMWSBFZVSSR-GSVOUGTGSA-N
+ classification_list <- map(keys, get_classification)
#> ✔ BRMWTNUJHUMWMS-LURJTMIESA-N
#> ✔ XFNJVJPLKCPIBV-UHFFFAOYSA-N
#> ✔ TYEYBOSBBBHJIV-UHFFFAOYSA-N
#> ✔ AFENDNXGAFYKQO-UHFFFAOYSA-N
#> ✔ WHEUWNKSCXYKBU-QPWUGHHJSA-N
#> ✔ WHBMMWSBFZVSSR-GSVOUGTGSA-N
classification_list <- map(classification_list, ~{select(.,-CHEMONT)}) spread_tibble <- purrr:::map(classification_list, ~{ diff --git a/docs/reference/get_status_code.html b/docs/reference/get_status_code.html deleted file mode 100644 index a3953cd..0000000 --- a/docs/reference/get_status_code.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - -Get Status Code — get_status_code • classyfireR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
- -
-
- - -
- -

Retrieve the status code of a new submission for entity classification

- -
- -
get_status_code(query_id)
- -

Arguments

-
- - - - - -
query_id

a numeric value for the query id

- -

Value

- -

a list of query_id and classification status; either In progress or Done

- - -

Examples

-
get_status_code(2813259)
#> $query_id -#> [1] 2813259 -#> -#> $status -#> [1] "Done" -#>
-
- -
- -
- - -
-

Site built with pkgdown 1.3.0.

-
-
- - - - - - - diff --git a/docs/reference/index.html b/docs/reference/index.html index c9a1763..decf1dc 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -60,7 +60,7 @@ classyfireR - 0.1.2 + 0.2.0 @@ -120,9 +120,9 @@

entity_classification()

+

get_classification()

-

Entity Classification

+

Get Entity Classification

diff --git a/docs/reference/parse_json_output.html b/docs/reference/parse_json_output.html index dd29e88..5a60b55 100644 --- a/docs/reference/parse_json_output.html +++ b/docs/reference/parse_json_output.html @@ -63,7 +63,7 @@ classyfireR - 0.1.2 + 0.2.0 diff --git a/docs/reference/retrieve_classification.html b/docs/reference/retrieve_classification.html deleted file mode 100644 index eb01ee8..0000000 --- a/docs/reference/retrieve_classification.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - -Retrieve classification results — retrieve_classification • classyfireR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
- -
-
- - -
- -

Retrieve classification results from a new submission

- -
- -
retrieve_classification(query_id)
- -

Arguments

- - - - - - -
query_id

a numeric value for the query id

- -

Value

- -

a tibble containing the following;

    -
  • Level Classification level (kingdom, superclass, class and subclass)

  • -
  • Classification The compound classification

  • -
  • CHEMONT Chemical Ontology Identification code

  • -
- - - -

Examples

-
-retrieve_classification(2813259)
#> # A tibble: 4 x 3 -#> Level Classification CHEMONT -#> <chr> <chr> <chr> -#> 1 kingdom Organic compounds CHEMONTID:0000000 -#> 2 superclass Benzenoids CHEMONTID:0002448 -#> 3 class Benzene and substituted derivatives CHEMONTID:0002279 -#> 4 subclass Biphenyls and derivatives CHEMONTID:0000041
-
- -
- -
- - -
-

Site built with pkgdown 1.3.0.

-
-
-
- - - - - - diff --git a/docs/reference/submit_classification.html b/docs/reference/submit_classification.html deleted file mode 100644 index 83ff2a4..0000000 --- a/docs/reference/submit_classification.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - -Submit InChI Code for Classification — submit_classification • classyfireR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - -
- -
-
- - -
- -

Submit and new entity for classification using the ClassyFire webserver

- -
- -
submit_classification(query, label, type = "STRUCTURE")
- -

Arguments

- - - - - - - - - - - - - - -
query

a character string of InChI Code or SMILE

label

a character string of the query name

type

the label type (Default = STRUCTURE)

- -

Value

- -

if the classification has completed; a tibble containing the following;

    -
  • Level Classification level (kingdom, superclass, class and subclass)

  • -
  • Classification The compound classification

  • -
  • CHEMONT Chemical Ontology Identification code

  • -
- - - -
- -
- -
- - -
-

Site built with pkgdown 1.3.0.

-
-
-
- - - - - - diff --git a/docs/sitemap.xml b/docs/sitemap.xml deleted file mode 100644 index 507ab8e..0000000 --- a/docs/sitemap.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - https://wilsontom.github.io/classyfireR//index.html - - - https://wilsontom.github.io/classyfireR//reference/entity_classification.html - - - https://wilsontom.github.io/classyfireR//reference/parse_json_output.html - - From acec81910bdae43fb371791df2fb61500fb29802 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:16:36 +0000 Subject: [PATCH 28/33] clean --- _pkgdown.yml | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 _pkgdown.yml diff --git a/_pkgdown.yml b/_pkgdown.yml deleted file mode 100644 index ef36306..0000000 --- a/_pkgdown.yml +++ /dev/null @@ -1,35 +0,0 @@ -url: https://wilsontom.github.io/classyfireR/ - -navbar: - structure: - left: - - home - - intro - - reference - - articles - - tutorials - - news - right: github - components: - home: - icon: fa-home fa-lg - href: index.html - reference: - text: Reference - href: reference/index.html - news: - text: Changelog - href: news/index.html - github: - icon: fa-github fa-lg - href: https://github.com/wilsontom/classyfireR - -reference: -- title: All functions - desc: ~ - contents: - - '`entity_classification`' - - '`get_status_code`' - - '`retrieve_classification`' - - '`submit_classification`' - From d67058fa66f5c80957e458b3121ce8bfad62ae9d Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:21:58 +0000 Subject: [PATCH 29/33] add docs to ignore --- .Rbuildignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.Rbuildignore b/.Rbuildignore index 677a60f..b574f3b 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -10,3 +10,4 @@ cran_submission/ _pkgdown.yml README_examples.R README.Rmd +docs/ From aa0282003d0aeb5f91af263f7693b0c997153bbf Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:22:07 +0000 Subject: [PATCH 30/33] update example --- R/get_classification.R | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/R/get_classification.R b/R/get_classification.R index c3bdb0b..b52fb6c 100644 --- a/R/get_classification.R +++ b/R/get_classification.R @@ -44,13 +44,18 @@ #' #' rownames(spread_tibble) <- keys #' -#' classification_df <- data.frame(InChIKey = rownames(spread_tibble), -#' Kingdom = spread_tibble$kingdom, -#' SuperClass = spread_tibble$superclass, -#' Class = spread_tibble$class, -#' SubClass = spread_tibble$subclass) -#' -#' print(classification_df) +#' classification_tibble <- tibble( +#' InChIKey = rownames(spread_tibble), +#' Kingdom = spread_tibble$kingdom, +#' SuperClass = spread_tibble$superclass, +#' Class = spread_tibble$class, +#' SubClass = spread_tibble$subclass, +#' Level5 = spread_tibble$level.5, +#' Level6 = spread_tibble$level.6, +#' Level7 = spread_tibble$level.7 +#' ) +#' +#' print(classification_tibble) #' #' #' From ff374ab27d94700c8377f6d3a78a1beb691c9140 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:22:29 +0000 Subject: [PATCH 31/33] update docs --- man/get_classification.Rd | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/man/get_classification.Rd b/man/get_classification.Rd index 36e091c..a7c0d52 100644 --- a/man/get_classification.Rd +++ b/man/get_classification.Rd @@ -55,13 +55,18 @@ get_classification('MDHYEMXUFSJLGV-UHFFFAOYSA-B') rownames(spread_tibble) <- keys - classification_df <- data.frame(InChIKey = rownames(spread_tibble), - Kingdom = spread_tibble$kingdom, - SuperClass = spread_tibble$superclass, - Class = spread_tibble$class, - SubClass = spread_tibble$subclass) + classification_tibble <- tibble( + InChIKey = rownames(spread_tibble), + Kingdom = spread_tibble$kingdom, + SuperClass = spread_tibble$superclass, + Class = spread_tibble$class, + SubClass = spread_tibble$subclass, + Level5 = spread_tibble$level.5, + Level6 = spread_tibble$level.6, + Level7 = spread_tibble$level.7 + ) - print(classification_df) + print(classification_tibble) From 6d8919be665f1a0b6ba90439996c2048f709f344 Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:26:38 +0000 Subject: [PATCH 32/33] update DATE --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 21801b0..fe41232 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: classyfireR Type: Package Title: R Interface to the ClassyFire RESTful API Version: 0.2.0 -Date: 2019-02-18 +Date: 2019-02-25 Authors@R: c( person("Tom", "Wilson", , "tpw2@aber.ac.uk", c("aut", "cre"))) Description: Access to the ClassyFire RESTful API . Retrieve existing entity classifications and submit new entities for classification. From 66989636ed7b929fe166cefb562dc2f265814e3d Mon Sep 17 00:00:00 2001 From: wilsontom Date: Mon, 25 Feb 2019 13:29:05 +0000 Subject: [PATCH 33/33] update manual --- inst/classyfireR-manual.pdf | Bin 88083 -> 80847 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/inst/classyfireR-manual.pdf b/inst/classyfireR-manual.pdf index 79227a3770bb1275670d54445196aa4213a372db..9d7de03e15b63e163854594516a6d5576856a890 100644 GIT binary patch delta 78186 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 delta 85286 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