PageRenderTime 16ms CodeModel.GetById 10ms RepoModel.GetById 1ms app.codeStats 0ms

/rcdk/inst/unitTests/runit.match.R

http://github.com/rajarshi/cdkr
R | 78 lines | 67 code | 11 blank | 0 comment | 2 complexity | 15b7646c9eca24623e69c8995f50eeec MD5 | raw file
  1. test.match1 <- function()
  2. {
  3. m <- parse.smiles('CCCCc1cccc(Cl)c1')[[1]]
  4. q <- 'cCl'
  5. checkTrue(matches(q,m))
  6. }
  7. test.match2 <- function()
  8. {
  9. m <- parse.smiles('CCCCc1cccc(Cl)c1')[[1]]
  10. q <- 'CCCCc'
  11. checkTrue(matches(q,m))
  12. }
  13. test.match3 <- function()
  14. {
  15. m1 <- parse.smiles('CCCCc1cccc(Cl)c1')[[1]]
  16. m2 <- parse.smiles('CC(N)(N)CC=O')[[1]]
  17. q <- '[CD2]'
  18. checkTrue(all(matches(q,list(m1,m2))))
  19. checkEquals(2, length(matches(q,list(m1,m2))))
  20. }
  21. test.match4 <- function()
  22. {
  23. smiles <- c('CCC', 'c1ccccc1', 'C(C)(C=O)C(CCNC)C1CC1C(=O)')
  24. mols <- sapply(smiles, parse.smiles)
  25. mappings <- matches("CCCC", mols, TRUE)
  26. checkEquals(3, length(mappings))
  27. checkTrue(!mappings[[1]]$match)
  28. checkTrue(!mappings[[2]]$match)
  29. checkTrue(mappings[[3]]$match)
  30. checkTrue(is.null(mappings[[1]]$mapping))
  31. checkTrue(is.null(mappings[[2]]$mapping))
  32. checkEquals(13, length(mappings[[3]]$mapping))
  33. m <- sapply(mappings[[3]]$mapping, function(x) length(x))
  34. checkTrue(all(m == 4))
  35. }
  36. test.mcs1 <- function() {
  37. mols <- parse.smiles(c("NCc1ccccc1OC(=N)CCN", "c1ccccc1OC(=N)"))
  38. lapply(mols, do.aromaticity)
  39. lapply(mols, do.typing)
  40. mcs <- get.mcs(mols[[1]], mols[[2]], TRUE)
  41. checkEquals("org.openscience.cdk.AtomContainer2", .jclass(mcs))
  42. checkEquals(9, get.atom.count(mcs))
  43. }
  44. test.mcs3 <- function() {
  45. mols <- parse.smiles(c("c1cccc(COC(=O)NC(CC(C)C)C(=O)NC(CCc2ccccc2)C(=O)COC)c1", "c1cccc(COC(=O)NC(CC(C)C)C(=O)NCC#N)c1"))
  46. lapply(mols, do.aromaticity)
  47. lapply(mols, do.typing)
  48. mcs <- get.mcs(mols[[1]], mols[[2]], TRUE)
  49. checkEquals("org.openscience.cdk.AtomContainer2", .jclass(mcs))
  50. checkEquals(21, get.atom.count(mcs))
  51. }
  52. test.mcs2 <- function() {
  53. mols <- parse.smiles(c("NCc1ccccc1OC(=N)CCN", "c1ccccc1OC(=N)"))
  54. lapply(mols, do.aromaticity)
  55. lapply(mols, do.typing)
  56. mcs <- get.mcs(mols[[1]], mols[[2]], FALSE)
  57. checkTrue(inherits(mcs, "matrix"))
  58. checkEquals(9, nrow(mcs))
  59. checkEquals(2, ncol(mcs))
  60. }
  61. test.aromaticity.match <- function() {
  62. smiles <- c("CCC", "c1ccccc1", "C(C)(C=O)C(CCNC)C1CC1C(=O)")
  63. mols <- parse.smiles(smiles)
  64. query <- "[#6]=O"
  65. doesMatch <- matches(query, mols)
  66. checkTrue(all(doesMatch == c(FALSE,FALSE,TRUE)))
  67. }