{"id":32199796,"url":"https://github.com/datalowe/synr","last_synced_at":"2026-02-19T20:33:48.164Z","repository":{"id":45969017,"uuid":"265024856","full_name":"datalowe/synr","owner":"datalowe","description":"An R package for handling synesthesia consistency test data. Explore, validate and summarize data.","archived":false,"fork":false,"pushed_at":"2024-01-13T13:24:34.000Z","size":8326,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-09T12:20:15.766Z","etag":null,"topics":["data-cleaning","synesthesia"],"latest_commit_sha":null,"homepage":"https://datalowe.github.io/synr/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datalowe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-18T18:22:02.000Z","updated_at":"2021-12-06T14:53:35.000Z","dependencies_parsed_at":"2025-10-22T03:28:27.177Z","dependency_job_id":"c49b8c07-e927-4518-ac79-8c5816c4f2fb","html_url":"https://github.com/datalowe/synr","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/datalowe/synr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalowe%2Fsynr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalowe%2Fsynr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalowe%2Fsynr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalowe%2Fsynr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datalowe","download_url":"https://codeload.github.com/datalowe/synr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datalowe%2Fsynr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29630834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T18:02:07.722Z","status":"ssl_error","status_checked_at":"2026-02-19T18:01:46.144Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-cleaning","synesthesia"],"created_at":"2025-10-22T03:27:58.599Z","updated_at":"2026-02-19T20:33:48.126Z","avatar_url":"https://github.com/datalowe.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"# synr \u003cimg src=\"man/figures/synr_logo.png\" align=\"right\" width=\"120\" /\u003e\n\n[![Build Status](https://app.travis-ci.com/datalowe/synr.svg?branch=master)](https://app.travis-ci.com/datalowe/synr)\n\nThis is an [R](https://www.r-project.org/) package for working with data resulting from [grapheme-color synesthesia](https://en.wikipedia.org/wiki/Grapheme%E2%80%93color_synesthesia)-related [consistency tests](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4118597/#S4title). synr provides tools for exploring test data, including visualizing a single participant's data, and applying summarizing functions such as calculating [color variation/consistency scores](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4118597/#S4title) or classifying participant data as valid or invalid.\n\n## Installation\n\nsynr is available [on CRAN](https://cran.r-project.org/package=synr), meaning you can simply:\n\n```r\ninstall.packages('synr')\n```\n\nNote that this will also install packages that synr depends on unless you already have them (`dbscan`, `data.table` and `ggplot2`).\n\n## Usage\n\nOnce data are in an appropriately formatted data frame/tibble ('long format' - see vignettes for more information), everything starts with rolling up participant data into a 'ParticipantGroup' object with `create_participantgroup_widedata`:\n\n```r\nlibrary(synr)\n\npgroup \u003c- create_participantgroup(\n    formatted_df, # data frame/tibble to use, with data in 'long format'\n    n_trials_per_grapheme=3, # number of trials that grapheme was used for\n    participant_col_name=\"participant_id\", # name of column which holds participant ID's\n    symbol_col_name='symbol', # name of column which holds grapheme symbol strings\n    color_col_name='color', # rname of column which holds response color HEX codes\n    color_space_spec = \"Luv\" # color space to use for all calculations with participant group\n)\n```\n\nUsing the resulting object (`pgroup`), you can call various methods. A few examples follow.\n\n### Example group-level method: get_mean_consistency_scores\n\n`pgroup$get_mean_consistency_scores(symbol_filter=LETTERS)` would return a vector of [CIELUV](https://en.wikipedia.org/wiki/CIELUV)-based consistency scores, using only data from trials involving capital letters.\n\n### Example group-level method: check_valid_get_twcv_scores\n\n`pgroup$check_valid_get_twcv_scores(symbol_filter=0:9)` would return a data frame which describes classifications of all participant data, where each data set is classified as 'invalid' or 'valid', based largely on [DBSCAN clustering](https://en.wikipedia.org/wiki/DBSCAN). This may be used to identify participants who varied their responses too little, e. g. by responding with an orange color on every trial.\n\n### Example participant-level method: get_plot\n\n`pgroup$participants[[1]]$get_plot(symbol_filter=LETTERS)` would produce a bar plot of per-grapheme consistency scores for a single participant, using only data from trials involving capital letters. You can see an example below.\n\n\u003cimg src=\"man/figures/example_consistency_plot.png\" width=\"400\" alt=\"Example bar plot of grapheme-level consistency scores\"\u003e\n\n### Detailed usage information\n\nMore details on required data format and how to use the above functions and more can be found in the [package's vignettes](https://datalowe.github.io/synr/articles/), some of which are also included in the package itself (run `help(synr)` to find them). Additional information is available in the following article:\n\n\u003e Wilsson, L., van Leeuwen, T.M. \u0026 Neufeld, J. synr: An R package for handling synesthesia consistency test data. Behav Res 55, 4086–4098 (2023). https://doi.org/10.3758/s13428-022-02007-y\n\n## Feedback\n\nIf you have any suggestions on improvements you are very welcome to directly raise issues or commit code improvements to the github repository at https://github.com/datalowe/synr.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatalowe%2Fsynr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatalowe%2Fsynr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatalowe%2Fsynr/lists"}