knitr::opts_chunk$set(echo = TRUE) if(!require("httr", quietly=TRUE)) { install.packages("httr", repos="https://cloud.r-project.org/", quiet=TRUE, type="binary") library("httr", quietly=TRUE) } prolog <- 'https://pubchem.ncbi.nlm.nih.gov/rest/pug' smiles1 <- "CC(C)CC1=CC=C(C=C1)C(C)C(=O)O" url <- paste(prolog, "/compound/smiles/", smiles1, "/cids/txt", sep="") url res = GET(url) content(res,"text",encoding="UTF-8") smiles2 <- "CC1=C([C@@](SC1=O)(C)/C=C(\\C)/C=C)O" url <- paste(prolog, "/compound/smiles/", smiles2, "/cids/txt", sep="") url res <- GET(url) content(res,"text",encoding="UTF-8") url2 <- paste(prolog, "/compound/smiles/cids/txt?smiles=", smiles2, sep="") url2 res2 <- GET(url2) content(res2,"text",encoding="UTF-8") url3 <- paste(prolog, "/compound/smiles/cids/txt?smiles=", URLencode(smiles2,reserved=TRUE), sep="") url3 res3 <- GET(url3) content(res3,"text",encoding="UTF-8") res2$url # from (2) structure encoded as a URL argument res3$url # from (3) structure encoded as a URL-encoded URL argument # Write your code here inchi <- "InChI=1S/C17H14O4S/c1-22(19,20)14-9-7-12(8-10-14)15-11-21-17(18)16(15)13-5-3-2-4-6-13/h2-10H,11H2,1H3" # Write your code here url <- paste(prolog, "/compound/smiles/cids/txt", sep="") struct <- list(smiles=smiles2) res <- POST(url, body = struct) res$url content(res,"text",encoding="UTF-8") mysdf <- "1983 -OEChem-07241917072D 20 20 0 0 0 0 0 0 0999 V2000 2.8660 -2.5950 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 4.5981 1.4050 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 2.8660 1.4050 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 2.8660 0.4050 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.7320 -0.0950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.0000 -0.0950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.7320 -1.0950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.0000 -1.0950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.8660 -1.5950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.7320 1.9050 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.7320 2.9050 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.2690 0.2150 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1.4631 0.2150 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 2.3291 1.7150 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 4.2690 -1.4050 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1.4631 -1.4050 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 4.3520 2.9050 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 3.7320 3.5250 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 3.1120 2.9050 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 2.3291 -2.9050 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1 9 1 0 0 0 0 1 20 1 0 0 0 0 2 10 2 0 0 0 0 3 4 1 0 0 0 0 3 10 1 0 0 0 0 3 14 1 0 0 0 0 4 5 2 0 0 0 0 4 6 1 0 0 0 0 5 7 1 0 0 0 0 5 12 1 0 0 0 0 6 8 2 0 0 0 0 6 13 1 0 0 0 0 7 9 2 0 0 0 0 7 15 1 0 0 0 0 8 9 1 0 0 0 0 8 16 1 0 0 0 0 10 11 1 0 0 0 0 11 17 1 0 0 0 0 11 18 1 0 0 0 0 11 19 1 0 0 0 0 M END > 1983 > 1 > 139 > 2 > 2 > 1 $$$$ " url <- paste(prolog, "/compound/sdf/cids/txt", sep="") mydata <- list(sdf=mysdf) res <- POST(url, body = mydata) res$url content(res,"text",encoding="UTF-8") url3 <- paste(prolog, "/compound/sdf/cids/txt?sdf=", URLencode(mysdf,reserved=TRUE), sep="") url3 res3 <- GET(url3) content(res3,"text",encoding="UTF-8") mysdf <- paste(readLines('Structure2D_CID_5288826.sdf'),collapse="\n") cat(mysdf) url <- paste(prolog, "/compound/sdf/synonyms/txt", sep="") mydata <- list(sdf=mysdf) res <- POST(url, body = mydata) res$url cat(content(res,"text",encoding="UTF-8")) files <- c('l02_ex2b_compound1.sdf','l02_ex2b_compound2.sdf','l02_ex2b_compound3.sdf', 'l02_ex2b_compound4.sdf','l02_ex2b_compound5.sdf') # Write your code here