{
  "_id": "6ab23e2a3d719c1f8408ac2b",
  "Package": "spinebil",
  "Type": "Package",
  "Title": "Investigating New Projection Pursuit Index Functions",
  "Version": "1.0.5",
  "Authors@R": "c(\nperson(\"Ursula\", \"Laa\",\nemail = \"ursula.laa@boku.ac.at\",\nrole = \"aut\",\ncomment = c(ORCID = \"https://orcid.org/0000-0002-0249-6439\")),\nperson(\"Dianne\", \"Cook\",\nemail = \"dicook@monash.edu\",\nrole = \"aut\",\ncomment = c(ORCID = \"https://orcid.org/0000-0002-3813-7155\")),\nperson(\"Tina\", \"Rashid Jafari\",\nemail = \"tina.rashidjafari@gmail.com\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"https://orcid.org/0009-0008-3605-5341\")))",
  "Description": "Projection pursuit is used to find interesting\nlow-dimensional projections of high-dimensional data by\noptimizing an index over all possible projections. The\n'spinebil' package contains methods to evaluate the performance\nof projection pursuit index functions using tour methods. A\npaper describing the methods can be found at\n<doi:10.1007/s00180-020-00954-8>.",
  "License": "GPL-3",
  "Encoding": "UTF-8",
  "URL": "https://uschilaa.github.io/spinebil/index.html",
  "BugReports": "https://github.com/uschiLaa/spinebil/issues",
  "VignetteBuilder": "quarto",
  "Roxygen": "list(markdown = TRUE)",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "libglpk-dev libgsl0-dev libicu-dev libxml2-dev\nlibx11-dev",
  "Repository": "https://uschilaa.r-universe.dev",
  "Date/Publication": "2026-07-08 02:05:05 UTC",
  "RemoteUrl": "https://github.com/uschilaa/spinebil",
  "RemoteRef": "HEAD",
  "RemoteSha": "570321f1c6e2895035b4ca4edacae3d6375a2848",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-22 08:32:21 UTC",
    "User": "root"
  },
  "Author": "Ursula Laa [aut] (ORCID: <https://orcid.org/0000-0002-0249-6439>),\nDianne Cook [aut] (ORCID: <https://orcid.org/0000-0002-3813-7155>),\nTina Rashid Jafari [aut, cre] (ORCID:\n<https://orcid.org/0009-0008-3605-5341>)",
  "Maintainer": "Tina Rashid Jafari <tina.rashidjafari@gmail.com>",
  "_user": "uschilaa",
  "_type": "src",
  "_file": "spinebil_1.0.5.tar.gz",
  "_fileid": "https://r2.ropensci.org/72ab2b10316e4e295335ae0b28a533207c31f806cc6db701163ddaac15a2da2e",
  "_filesize": 2217738,
  "_sha256": "72ab2b10316e4e295335ae0b28a533207c31f806cc6db701163ddaac15a2da2e",
  "_expires": "2026-12-31T08:36:56.000Z",
  "_created": "2026-09-22T08:32:21.000Z",
  "_published": "2026-09-22T08:36:58.514Z",
  "_jobs": [
    {
      "job": 106672923054,
      "time": 182,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "10683463903"
    },
    {
      "job": 106672923102,
      "time": 200,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "10684256622"
    },
    {
      "job": 106672923097,
      "time": 199,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "10683603842"
    },
    {
      "job": 106672922950,
      "time": 221,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "10684396471"
    },
    {
      "job": 106671236373,
      "time": 334,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10684450768"
    },
    {
      "job": 106672922938,
      "time": 140,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10684276468"
    },
    {
      "job": 106672922961,
      "time": 128,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "10684775622"
    },
    {
      "job": 106672923093,
      "time": 99,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "10683738348"
    },
    {
      "job": 106672923048,
      "time": 135,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "NOTE",
      "artifact": "10684566043"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333",
  "_status": "success",
  "_upstream": "https://github.com/uschilaa/spinebil",
  "_commit": {
    "id": "570321f1c6e2895035b4ca4edacae3d6375a2848",
    "author": "Tinarj <tina.rashidjafari@gmail.com>",
    "committer": "Tinarj <tina.rashidjafari@gmail.com>",
    "message": "Update ppi_noise_grid functionality\n",
    "time": 1783476305
  },
  "_maintainer": {
    "name": "Tina Rashid Jafari",
    "email": "tina.rashidjafari@gmail.com",
    "login": "tinarj",
    "description": "",
    "uuid": 162081734,
    "orcid": "0009-0008-3605-5341"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "tourr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "tictoc",
      "role": "Imports"
    },
    {
      "package": "cassowaryr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "minerva",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    },
    {
      "package": "purrr",
      "role": "Suggests"
    },
    {
      "package": "furrr",
      "role": "Suggests"
    },
    {
      "package": "future",
      "role": "Suggests"
    },
    {
      "package": "quarto",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    }
  ],
  "_owner": "uschilaa",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-42",
      "n": 2
    },
    {
      "week": "2026-05",
      "n": 2
    },
    {
      "week": "2026-06",
      "n": 1
    },
    {
      "week": "2026-14",
      "n": 1
    },
    {
      "week": "2026-15",
      "n": 1
    },
    {
      "week": "2026-16",
      "n": 1
    },
    {
      "week": "2026-28",
      "n": 2
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "tinarj",
      "count": 48,
      "uuid": 162081734
    },
    {
      "user": "uschilaa",
      "count": 27,
      "uuid": 28732735
    },
    {
      "user": "dicook",
      "count": 10,
      "uuid": 253191
    }
  ],
  "_userbio": {
    "uuid": 28732735,
    "type": "user",
    "name": "uschiLaa",
    "followers": 19
  },
  "_downloads": {
    "count": 206,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/spinebil"
  },
  "_devurl": "https://github.com/uschilaa/spinebil",
  "_searchresults": 10,
  "_quarto": true,
  "_topics": [
    "quarto"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/spinebil.html"
  ],
  "_homeurl": "https://github.com/uschilaa/spinebil",
  "_realowner": "uschilaa",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2019-08-28"
    },
    {
      "version": "0.1.6",
      "date": "2025-07-11"
    },
    {
      "version": "1.0.4",
      "date": "2025-09-17"
    },
    {
      "version": "1.0.5",
      "date": "2025-10-17"
    }
  ],
  "_exports": [
    "basis_matrix",
    "basis_vector",
    "cmassR",
    "compare_smoothing",
    "data_gen",
    "distance_dist",
    "distance_to_sp",
    "get_index_mean",
    "get_trace",
    "holesR",
    "jitter_angle",
    "jitter_points",
    "mine_index",
    "mine_indexE",
    "noise_gen",
    "pipe_data",
    "plot_rotation",
    "plot_smoothing_comparison",
    "plot_trace",
    "ppi_mean",
    "ppi_noise_grid",
    "ppi_noise_threshold",
    "ppi_samplesize_effect",
    "ppi_scale",
    "profile_rotation",
    "scag_index",
    "sin_data",
    "spiral_data",
    "squint_angle_estimate",
    "time_sequence"
  ],
  "_help": [
    {
      "page": "basis_matrix",
      "title": "Generate 2-d basis in directions i, j in n dimensions (i,j <= n)",
      "topics": [
        "basis_matrix"
      ]
    },
    {
      "page": "basis_vector",
      "title": "Generate basis vector in direction i in n dimensions (i <= n)",
      "topics": [
        "basis_vector"
      ]
    },
    {
      "page": "compare_smoothing",
      "title": "Compare traces with different smoothing options.",
      "topics": [
        "compare_smoothing"
      ]
    },
    {
      "page": "data_gen",
      "title": "Generate Synthetic Data with Various Structures",
      "topics": [
        "data_gen"
      ]
    },
    {
      "page": "distance_dist",
      "title": "Collecting all pairwise distances between input planes.",
      "topics": [
        "distance_dist"
      ]
    },
    {
      "page": "distance_to_sp",
      "title": "Collecting distances between input planes and input special plane.",
      "topics": [
        "distance_to_sp"
      ]
    },
    {
      "page": "get_index_mean",
      "title": "Evaluate mean index value over n jittered views.",
      "topics": [
        "get_index_mean"
      ]
    },
    {
      "page": "get_trace",
      "title": "Tracing the index over an interpolated planned tour path.",
      "topics": [
        "get_trace"
      ]
    },
    {
      "page": "jitter_angle",
      "title": "Re-evaluate index after jittering the projection by an angle alpha.",
      "topics": [
        "jitter_angle"
      ]
    },
    {
      "page": "jitter_points",
      "title": "Re-evaluate index after jittering all points by an amount alpha.",
      "topics": [
        "jitter_points"
      ]
    },
    {
      "page": "noise_gen",
      "title": "Generate Synthetic Noise",
      "topics": [
        "noise_gen"
      ]
    },
    {
      "page": "pipe_data",
      "title": "Generating a sample of points on a pipe",
      "topics": [
        "pipe_data"
      ]
    },
    {
      "page": "plot_rotation",
      "title": "Plot rotation traces of indexes obtained with profileRotation.",
      "topics": [
        "plot_rotation"
      ]
    },
    {
      "page": "plot_smoothing_comparison",
      "title": "Plot the comparison of smoothing methods.",
      "topics": [
        "plot_smoothing_comparison"
      ]
    },
    {
      "page": "plot_trace",
      "title": "Plot traces of indexes obtained with 'get_trace'.",
      "topics": [
        "plot_trace"
      ]
    },
    {
      "page": "ppi_mean",
      "title": "Simulate and Summarize Projection Pursuit Index (PPI) Values",
      "topics": [
        "ppi_mean"
      ]
    },
    {
      "page": "ppi_noise_grid",
      "title": "Estimate Noise Thresholds Across Sample Sizes",
      "topics": [
        "ppi_noise_grid"
      ]
    },
    {
      "page": "ppi_noise_threshold",
      "title": "Estimate the 95th Percentile of a Projection Pursuit Index Under Noise",
      "topics": [
        "ppi_noise_threshold"
      ]
    },
    {
      "page": "ppi_samplesize_effect",
      "title": "Simulate Effect of Sample Size on a Projection Pursuit Index",
      "topics": [
        "ppi_samplesize_effect"
      ]
    },
    {
      "page": "ppi_scale",
      "title": "Simulate and Compare Index Scale on Structured vs Noisy Data",
      "topics": [
        "ppi_scale"
      ]
    },
    {
      "page": "profile_rotation",
      "title": "Test rotation invariance of index functions for selected 2-d data set.",
      "topics": [
        "profile_rotation"
      ]
    },
    {
      "page": "scag_index",
      "title": "Matching index functions to the required format.",
      "topics": [
        "cmassR",
        "holesR",
        "mine_index",
        "mine_indexE",
        "scag_index"
      ]
    },
    {
      "page": "sin_data",
      "title": "Generating sine wave sample",
      "topics": [
        "sin_data"
      ]
    },
    {
      "page": "spiral_data",
      "title": "Generating spiral sample",
      "topics": [
        "spiral_data"
      ]
    },
    {
      "page": "squint_angle_estimate",
      "title": "Estimating squint angle of 2-d structure in high-d dataset under selected index.",
      "topics": [
        "squint_angle_estimate"
      ]
    },
    {
      "page": "time_sequence",
      "title": "Time each index evaluation for projections in the tour path.",
      "topics": [
        "time_sequence"
      ]
    }
  ],
  "_readme": "https://github.com/uschilaa/spinebil/raw/HEAD/README.md",
  "_rundeps": [
    "abind",
    "alphahull",
    "ash",
    "bit",
    "bit64",
    "bitops",
    "boot",
    "cassowaryr",
    "cli",
    "clipr",
    "cpp11",
    "crayon",
    "deldir",
    "dplyr",
    "energy",
    "farver",
    "generics",
    "geozoo",
    "ggplot2",
    "glue",
    "gsl",
    "gtable",
    "hms",
    "igraph",
    "interp",
    "isoband",
    "labeling",
    "lattice",
    "lifecycle",
    "magrittr",
    "MASS",
    "Matrix",
    "mgcv",
    "minerva",
    "nlme",
    "pillar",
    "pkgconfig",
    "polyclip",
    "prettyunits",
    "progress",
    "purrr",
    "R.methodsS3",
    "R.oo",
    "R.utils",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "RcppArmadillo",
    "RcppEigen",
    "readr",
    "rlang",
    "S7",
    "scales",
    "sgeostat",
    "sp",
    "spatstat.data",
    "spatstat.geom",
    "spatstat.random",
    "spatstat.sparse",
    "spatstat.univar",
    "spatstat.utils",
    "splancs",
    "stringi",
    "stringr",
    "tensor",
    "tibble",
    "tictoc",
    "tidyr",
    "tidyselect",
    "tourr",
    "tzdb",
    "utf8",
    "vctrs",
    "viridisLite",
    "vroom",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "spinebil.qmd",
      "filename": "spinebil.html",
      "title": "An introduction to the spinebil package",
      "engine": "quarto::html",
      "headings": [
        "About",
        "Installation",
        "Purpose",
        "Example",
        "Usage"
      ],
      "created": "2025-08-05 13:34:50",
      "modified": "2025-08-30 11:25:38",
      "commits": 3
    },
    {
      "source": "ppi_diagnostics.qmd",
      "filename": "ppi_diagnostics.html",
      "title": "Core Diagnostics for Projection Pursuit Indices",
      "engine": "quarto::html",
      "headings": [
        "Overview",
        "Data Generators",
        "1) compare_smoothing()",
        "Function Usage",
        "Inputs",
        "Example Usage",
        "Interpretation",
        "Return value",
        "2) squint_angle_estimate()",
        "Function usage",
        "indexF (what kind of structure?)",
        "cutoff (when do we call it visible?)",
        "structure_plane (where is the best view?)",
        "n and step_size",
        "3) get_trace()",
        "4) profile_rotation()",
        "5) time_sequence()"
      ],
      "created": "2025-08-30 11:25:38",
      "modified": "2025-09-15 03:05:32",
      "commits": 4
    },
    {
      "source": "more_descriptives.qmd",
      "filename": "more_descriptives.html",
      "title": "More Descriptive Analysis of Projection Pursuit Indices",
      "engine": "quarto::html",
      "headings": [
        "Overview",
        "1) Generating Synthetic Structures and Noise",
        "Function usage",
        "Example usage",
        "Preview all structures",
        "Polynomial features (type = \"polynomial\")",
        "noise_gen(): noise distributions",
        "Combining structure + noise",
        "Return value",
        "2) Finding Projection Pursuit Index Mean",
        "Example Usage",
        "3) Comparing Index Scale on Structured vs. Noisy Data",
        "Function Usage",
        "Boxplots: structured vs noise per variable pair",
        "4) Estimating a Noise Threshold for Projection Pursuit Indices",
        "5) Sample-Size Effects for Projection Pursuit Indices under Gaussian Noise",
        "Plot the 95th-percentile"
      ],
      "created": "2025-08-30 11:25:38",
      "modified": "2026-03-31 01:37:44",
      "commits": 5
    }
  ],
  "_score": 5.3222192947339195,
  "_indexed": true,
  "_nocasepkg": "spinebil",
  "_universes": [
    "uschilaa",
    "tinarj"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.5",
      "date": "2026-09-22T08:35:06.000Z",
      "distro": "resolute",
      "commit": "570321f1c6e2895035b4ca4edacae3d6375a2848",
      "fileid": "https://r2.ropensci.org/d377bfd4f880d7c57e4bb3e2ee9cc597fcb0b26d18d18752054af6fe6a146b7c",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.0.5",
      "date": "2026-09-22T08:35:35.000Z",
      "distro": "resolute",
      "commit": "570321f1c6e2895035b4ca4edacae3d6375a2848",
      "fileid": "https://r2.ropensci.org/b4870271484b3d5f0eadf81f2e8380e497c0a7bd2f50ea99ecbf76b323a47867",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.0.5",
      "date": "2026-09-22T08:35:25.000Z",
      "commit": "570321f1c6e2895035b4ca4edacae3d6375a2848",
      "fileid": "https://r2.ropensci.org/847e201452ef4cbfa311211a02571aec8218d342d9bb4f734b4e0a42c192c1a7",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.0.5",
      "date": "2026-09-22T08:35:27.000Z",
      "commit": "570321f1c6e2895035b4ca4edacae3d6375a2848",
      "fileid": "https://r2.ropensci.org/ecbe0091bc5f087ed0f3c8108a9152ef13a7a0db25cea6104340eff47575efa4",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.5",
      "date": "2026-09-22T08:35:04.000Z",
      "commit": "570321f1c6e2895035b4ca4edacae3d6375a2848",
      "fileid": "https://r2.ropensci.org/66a7aadb174b8c957a13187a886d81f2b56206d54e30eff427d1e3041a9885c9",
      "status": "success",
      "buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0.5",
      "date": "2026-09-22T08:34:11.000Z",
      "commit": "570321f1c6e2895035b4ca4edacae3d6375a2848",
      "fileid": "https://r2.ropensci.org/9efd7c4de2f845c80756e5ad26e2ae625f42d48afe5dd16b29f9b963e8c2eb63",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.0.5",
      "date": "2026-09-22T08:33:53.000Z",
      "commit": "570321f1c6e2895035b4ca4edacae3d6375a2848",
      "fileid": "https://r2.ropensci.org/0a7d49b4d63f27dee05039f062e05aaf7ddf485fe3630829f02f87b30434e9c5",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.0.5",
      "date": "2026-09-22T08:34:17.000Z",
      "commit": "570321f1c6e2895035b4ca4edacae3d6375a2848",
      "fileid": "https://r2.ropensci.org/2dd44c982e993fee7938fdd32873b21e0147cf3ba0447111d8399de2c3bfbc26",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/uschilaa/actions/runs/35704828333"
    }
  ]
}