{"id":20696647,"url":"https://github.com/maxvalue/terpene-profile-parser-for-cannabis-strains","last_synced_at":"2025-04-22T20:43:34.834Z","repository":{"id":40659925,"uuid":"120346894","full_name":"MaxValue/Terpene-Profile-Parser-for-Cannabis-Strains","owner":"MaxValue","description":"Parser and database to index the terpene profile of different strains of Cannabis from online databases","archived":false,"fork":false,"pushed_at":"2023-04-28T23:16:29.000Z","size":22426,"stargazers_count":117,"open_issues_count":12,"forks_count":18,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-29T18:41:29.608Z","etag":null,"topics":["analysis","aromatherapy","bioinformatics","biological-data","biological-data-analysis","cannabis","cannabis-strains","crawler","data-science","database","health","plants","python","python-3","scrapy","terpene-profile","terpenes","web-crawler","web-crawler-python","web-crawling"],"latest_commit_sha":null,"homepage":"https://maxvalue.github.io/Terpene-Profile-Parser-for-Cannabis-Strains/","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaxValue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":["maxvalue"],"patreon":"publicbetamax","ko_fi":"publicbetamax","community_bridge":"terpene-profile-parser-for-cannabis-strains","liberapay":"maxvalue","custom":["https://www.buymeacoffee.com/publicbetamax"]}},"created_at":"2018-02-05T18:51:34.000Z","updated_at":"2025-03-08T15:57:29.000Z","dependencies_parsed_at":"2022-09-02T13:11:16.407Z","dependency_job_id":"df876668-ff80-4262-9070-32ffb621a6fd","html_url":"https://github.com/MaxValue/Terpene-Profile-Parser-for-Cannabis-Strains","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FTerpene-Profile-Parser-for-Cannabis-Strains","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FTerpene-Profile-Parser-for-Cannabis-Strains/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FTerpene-Profile-Parser-for-Cannabis-Strains/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FTerpene-Profile-Parser-for-Cannabis-Strains/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaxValue","download_url":"https://codeload.github.com/MaxValue/Terpene-Profile-Parser-for-Cannabis-Strains/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250321216,"owners_count":21411527,"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","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":["analysis","aromatherapy","bioinformatics","biological-data","biological-data-analysis","cannabis","cannabis-strains","crawler","data-science","database","health","plants","python","python-3","scrapy","terpene-profile","terpenes","web-crawler","web-crawler-python","web-crawling"],"created_at":"2024-11-17T00:14:42.177Z","updated_at":"2025-04-22T20:43:34.805Z","avatar_url":"https://github.com/MaxValue.png","language":"Python","funding_links":["https://github.com/sponsors/maxvalue","https://patreon.com/publicbetamax","https://ko-fi.com/publicbetamax","https://funding.communitybridge.org/projects/terpene-profile-parser-for-cannabis-strains","https://liberapay.com/maxvalue","https://www.buymeacoffee.com/publicbetamax"],"categories":[],"sub_categories":[],"readme":"Terpene Profile Parser for Cannabis Strains\n===========================================\n_Parser, Database and Web App to index the Terpene Profile of different Strains Of Cannabis from Online-Databases_\n\n## Description\nThis repository contains:\n* The web app (at [docs/index.html](docs/index.html)). [Live version](https://maxvalue.github.io/Terpene-Profile-Parser-for-Cannabis-Strains/)\n* A folder for each online database which displays test results about the terpene profile of cannabis strains (Found in [labs/](labs/)). These folders usually contain:\n  * A parser to extract the actual terpene profile from each of those HTML-pages as CSV-list\n  * The CSV list of extracted terpene profiles\n\n## FAQ\n### What are Terpenes? What is a Terpene?\nA terpene is a chemical compound which can have physiological effects on the human body. It can make you sleepy, horny, awake, more concentrated, relaxed or less anxious. Read more [on Wikipedia](https://en.wikipedia.org/wiki/Terpene). [This lab page](https://psilabs.org/services/) has some information which is also useful.\n### What is a Terpene Profile?\nA terpene profile is a listing of terpenes present in a biological sample.\nThis project is only concerned with specific terpenes such as Linalool, Caryophyllene oxide, Myrcene, beta-Pinene, Limonene, Terpinolene, alpha-Pinene, Humulene and Caryophyllene, but Linalool, beta-Pinene, Limonene, alpha-Pinene are the most important ones.\nAlso we are only interested in the terpene profile of strains from the species [Cannabis sativa](https://en.wikipedia.org/wiki/Cannabis_sativa).\n### What is a cannabis strain? What is a strain?\nA strain is like a dog breed. As dogs all belong to the same species, but can look really different to each other, we distinguish them by breed. This is the same for Cannabis: There are several \"breeds\" and each one of them has different effects on the human physiology/psyche. Also strains/breeds were emphasized by humans, not by nature.\n### So what is this all about? What sense makes all of this?\nResearch suggests that Cannabis sativa can (in the right circumstances) have positive (reduce/cure depression/anxiety, improve concentration, help with sleep problems) effects on the human body.\nThe thing is: Each strain acts differently on the body and we do not know which acts in what way, because the plant is illegal in most countries currently.\nThis results in a lot of incorrect information spreading about which strain acts in what way and even which plant is actually belonging to a specific strain. This produces a number of problems:\nMany samples are therefore labelled incorrectly,\nmany samples weren't raised under controlled lab conditions which produces very varying results\nand the devices for testing the samples are somewhat (really) expensive.\n\nThe good part is that in some countries it is not illegal or at least legal enough to conduct scientific research on it.\nSome of those research institutions (or labs) publish their chemical analysis results of the different samples online.\nThis data is not really machine readable (to analyse it further) but it can be extracted using modern web crawling.\nBy building statistical models we can filter away the incorrect data from the differing growing conditions of the samples.\nIn the future a sort-of search engine is planned to search by terpene profile which gives you a sorted list of fitting strains.\n\n## How to use\nYou are probably interested in the web app. [Launch it here](https://maxvalue.github.io/Terpene-Profile-Parser-for-Cannabis-Strains/).\nIf you are paranoid, you can also launch it locally: just clone/download the repo.\nOr save the web app in one browser and view it offline later.\nFor the explanation of the sample data for each lab, see the regarding folders' `README.md` file for instructions.\n\n### Development\nYou will need to create a virtual Python environment. Go to the project root and run:\n```bash\nsource setup_project_environment.sh\n```\nThis installs Python3.9 and sets up a virtual environment in the project root.\n#### Web App\nBefore you commit:\n1. Update version string in the `index.html`.\n2. Update version string in the `cache.manifest`.\n#### Parsers\nBefore you commit:\n* If you changed the parsed data, also regenerate the web app `db.js`:\n    * `rm docs/db.js`\n    * `./make_databaseContainer.py --results results.csv --ignore analytical360 --components active_components.json --sample-types sample_types.json --outfile docs/db.js`\n\n## How to contribute\n[Let me know if](https://gitlab.com/cannabis-terpene-parser/Terpene-Profile-Parser-for-Cannabis-Strains/-/issues/new):\n* I missed some data\n* There is an online lab/database i haven't noticed\n* The scientific information to explain the project is wrong\n\nAs with all those points: Please provide sources/proofs that your information (query, link, scientifc sources) is more valid than the present one.\n\n## Project history\nThe idea for this project comes from Paul Fuxjäger who wants to find high quality medical cannabis for new health treatment options. The code for extracting and cleaning the data was written by Max Fuxjäger.\nThe development (issues) has been moved to GitLab but the old GitHub remote is kept to avoid braking links to this project.\n\n## Copyright\nHave fun. We hope you can use this data to do good for humanity.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxvalue%2Fterpene-profile-parser-for-cannabis-strains","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxvalue%2Fterpene-profile-parser-for-cannabis-strains","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxvalue%2Fterpene-profile-parser-for-cannabis-strains/lists"}