{"id":16958441,"url":"https://github.com/dohliam/thematic-analysis","last_synced_at":"2026-02-17T10:31:57.041Z","repository":{"id":88992148,"uuid":"389830370","full_name":"dohliam/thematic-analysis","owner":"dohliam","description":"A simple data parser to aid in the process of Qualitative Data Analysis with multimodal data","archived":false,"fork":false,"pushed_at":"2021-07-27T03:05:51.000Z","size":1081,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-14T01:39:34.528Z","etag":null,"topics":["multimodal-analysis","qda","qualitative-analysis","qualitative-data-analysis","qualitative-research"],"latest_commit_sha":null,"homepage":"https://dohliam.github.io/thematic-analysis/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dohliam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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}},"created_at":"2021-07-27T02:56:36.000Z","updated_at":"2024-11-11T16:40:29.000Z","dependencies_parsed_at":"2023-06-13T11:15:39.354Z","dependency_job_id":null,"html_url":"https://github.com/dohliam/thematic-analysis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dohliam/thematic-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohliam%2Fthematic-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohliam%2Fthematic-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohliam%2Fthematic-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohliam%2Fthematic-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dohliam","download_url":"https://codeload.github.com/dohliam/thematic-analysis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohliam%2Fthematic-analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000706,"owners_count":26082805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["multimodal-analysis","qda","qualitative-analysis","qualitative-data-analysis","qualitative-research"],"created_at":"2024-10-13T22:42:36.508Z","updated_at":"2025-10-08T19:26:54.623Z","avatar_url":"https://github.com/dohliam.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Thematic Anlaysis Parser\n\nThis project is a simple data parser to aid in the process of Qualitative Data Analysis, specifically thematic analysis with multimodal data. It reads a simple data file containing plain text coded data (see the example `data.txt` file in this repo) and visualizes it using a \"card-style\" layout. It is intended to be a flexible aid in conducting research, and can be used at any stage of analysis as a complement to other tools.\n\n* [Demo](#demo)\n* [Features](#features)\n* [Coding](#coding)\n* [Requirements](#requirements)\n* [Usage](#usage)\n* [Options](#options)\n* [Data format](#data-format)\n* [File types](#file-types)\n* [To do](#to-do)\n* [Credits](#credits)\n\n## Demo\n\nA working demo with sample data can be viewed by downloading the project and opening the `index.html` file found in the project root directory in any browser.\n\nThe same demo can also be viewed online [here](https://dohliam.github.io/thematic-analysis-parser).\n\n## Features\n\n* Free and open source software\n* Cross-platform\n* No data lock-in\n* Entirely local and offline\n* Data can be viewed on any device\n* Mobile-friendly\n* Works with plain text data\n* Supports multimodal datasets\n* Can be used with grounded analysis\n* Card-based layout\n* Both weighted and associative tag/code visualizations\n\nData can be in the form of text files, text snippets/citations, images, URL links, audio files, video files etc.\n\nSimilar to other CAQDAS tools, the thematic analysis parser supports jumping quickly between data artifacts, codes/tags, and data types in the dataset. All tags in the weighted tag cloud are functional links, and one can look at the most prominent tags and jump to them quickly simply by clicking on them.\n\nOnce one has entered the view of the collection of items represented by a particular tag, the place of any given item in the rest of the dataset can be quickly explored using the associated tags button. Again, clicking any of the tags displayed in this view links directly to the collection of items associated with that tag, where the collection (including the original item) can be seen in context.\n\nThe usefulness of this tool is that it can present the existing data in such a way that hidden patterns and trends are made visible to the researcher, who is then free to interpret the significance (if any) of those patterns in relation to the rest of the data.\n\n## Coding\n\nAll data is stored in plain text files which are persistent, portable, quick to edit, both human- and machine-readable, future-proof, and avoid the vendor lock-in of proprietary formats. Data items are presented in the form of \"cards\", emulating the traditional workflow of using index cards for codes.\n\nCodes are treated as weighted tags, ranked by frequency both in the corpus as a whole and in relationship to other codes.\n\nCodes are linked to other codes in associative groups, and are arranged in such a way as to facilitate navigating through and between codes to highlight prominent relationships between codes and other patterns in the data.\n\n## Requirements\n\n* A recent version of [Ruby](https://www.ruby-lang.org/)\n* Any modern browser supporting HTML5 and JavaScript\n\n## Usage\n\nThe simplest way to parse some data for visualization is to add a list of tagged data to `data.txt`, (optionally) add some source data files to the `data` directory, and run the script:\n\n```bash\n./thematic_analysis.rb\n```\n\nBy default, the script looks for data in a file called `data.txt`, and associated multimedia data files in the `data` folder located in the project root directory. However, custom locations for both the data file and multimedia data directory can be specified manually (using the `-i` and `-d` command-line options, respectively).\n\nThe script will overwrite the `index.html` file as output by default. If you would like it to output to a different file, this can also be specified using the `o` option.\n\n## Options\n\nThe following command-line options are available:\n\n* `-h` or `--help`: _Show help information_\n* `-i` or `--input LIST`: _Specify data list file as input_\n* `-d` or `--data-dir FILE`: _Specify data dir_\n* `-o` or `--output FILE`: _Specify output file_\n\n## Data format\n\nThe `data.txt` file contains plain text data in TSV (tab-separated values) format. In other words, each column of data in the file is separated by a `TAB` character.\n\nThe columns are ordered as follows:\n\n1. filetype (one of `txt`, `img`, `uri`, `fil`, `snd`, `img`, `img`, `vid`)\n2. data (either a filename corresponding to a multimedia file in the `data` directory or a snippet of text data)\n3. tags (comma-separated)\n\n## File types\n\n* `txt`: Text - A string of plain text embedded directly in the data file itself\n  * Good for quotes, citations, and other single-line snippets of text\n* `img`: Image - A filename corresponding to an image file located in the `data` directory\n  * Image types can include SVG, JPG, PNG, etc. (anything supported by the HTML `\u003cimg\u003e` tag)\n* `uri`: URI - A link to an online or offline file location\n  * For example, a URL in the form: `example.com`\n* `fil`: File - A text file whose contents will be read directly into the data stream\n* `snd`: Sound - A filename corresponding to an audio file located in the `data` directory\n  * Audio types can include OGG, MP3, etc. (anything supported by the HTML `\u003caudio\u003e` tag)\n* `vid`: Video - A filename corresponding to a video file located in the `data` directory\n  * Video types can include MP4 and some others (anything supported by your browser's HTML `\u003cvideo\u003e` tag)\n  * Note that video support varies by browser - MP4 seems to work most consistently across browsers\n\n## To do\n\n* ✓ alphabetize tags\n* ✓ put tags in modal window\n* ✓ make index / overview of all headings and tags\n* ✓ frequency counts for main tag headers (put in title attribute)\n* ✓ fix duplication of tag clouds on header click\n  * ✓ need to hide all tags before displaying new one\n* add file name and other info into infobox\n\n## Credits\n\n* CSS: [Concise CSS](https://github.com/ConciseCSS/concise.css) ([MIT](https://github.com/ConciseCSS/concise.css/blob/dev/LICENSE))\n* Image lightbox: [baguetteBox.js](https://github.com/feimosi/baguetteBox.js) by @feimosi ([MIT](https://github.com/feimosi/baguetteBox.js/blob/dev/LICENSE))\n* Modal windows: [CSS Modal](https://github.com/drublic/css-modal) by @drublic ([MIT](https://github.com/drublic/css-modal/blob/master/LICENSE))\n* Sample images:\n  * [Example SVG Image File](https://commons.wikimedia.org/wiki/File:Example_en.svg) - Wikimedia Commons\n  * [Example PNG Image File](https://commons.wikimedia.org/wiki/File:Example.png) - Wikimedia Commons\n  * [Example OGG Audio File](https://commons.wikimedia.org/wiki/File:Example.ogg) - Wikimedia Commons\n  * [Example JPG Image File](https://commons.wikimedia.org/wiki/File:Example_image_not_to_be_used_in_article_namespace.jpg) - Wikimedia Commons\n  * [Example OGV Video File](https://commons.wikimedia.org/wiki/File:Testing.ogv) - Wikimedia Commons\n* Sample text from [Wikipedia](https://en.wikipedia.org/wiki/Battle_of_Caishi)\n\n## License\n\nGNU GPLv3 (see [license file](COPYING).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdohliam%2Fthematic-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdohliam%2Fthematic-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdohliam%2Fthematic-analysis/lists"}