{"id":21887733,"url":"https://github.com/sp12102001/systematic-synthesizer","last_synced_at":"2026-04-12T09:43:32.158Z","repository":{"id":240446882,"uuid":"766327042","full_name":"sp12102001/Systematic-Synthesizer","owner":"sp12102001","description":"The application aims to automate the systematic review process, leveraging natural language processing (NLP), machine learning (ML), and data extraction techniques to streamline research design, literature review, and data synthesis. ","archived":false,"fork":false,"pushed_at":"2024-06-20T08:29:35.000Z","size":1078,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-22T02:23:09.932Z","etag":null,"topics":["academic","database","nodejs","openai-api","python","systematic-reviews"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"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/sp12102001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-03-03T00:18:09.000Z","updated_at":"2024-06-20T08:29:39.000Z","dependencies_parsed_at":"2024-05-18T23:32:11.213Z","dependency_job_id":"2bb66efa-430d-43d1-bf8f-3c54bf148dcb","html_url":"https://github.com/sp12102001/Systematic-Synthesizer","commit_stats":null,"previous_names":["sp12102001/systematic-synthesizer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sp12102001/Systematic-Synthesizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp12102001%2FSystematic-Synthesizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp12102001%2FSystematic-Synthesizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp12102001%2FSystematic-Synthesizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp12102001%2FSystematic-Synthesizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sp12102001","download_url":"https://codeload.github.com/sp12102001/Systematic-Synthesizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp12102001%2FSystematic-Synthesizer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265194879,"owners_count":23725984,"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":["academic","database","nodejs","openai-api","python","systematic-reviews"],"created_at":"2024-11-28T11:12:14.708Z","updated_at":"2026-04-12T09:43:27.136Z","avatar_url":"https://github.com/sp12102001.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Systematic Synthesizer (In Progress)\n\n## The purpose of the application \nThe application aims to automate the systematic review process, leveraging natural language processing (NLP), machine learning (ML), and data extraction techniques to streamline research design, literature review, and data synthesis. The web application is designed to assist researchers by automating several steps of the process, including formulating research questions, defining inclusion and exclusion criteria, searching for relevant studies, selecting studies, extracting data, and synthesizing findings. This automation is achieved through the use of NLP and ML algorithms, alongside APIs for accessing scientific literature.\n\n# Technical Implementation\nThe application is built using Python, leveraging libraries such as nltk for NLP tasks, pdfplumber for extracting text from PDFs, BeautifulSoup for HTML parsing, and spacy for advanced NLP processing It creates the web interface, allowing users to interactively input their research question, refine it, and receive updates on the review process, but only input one question/topic for the whole process to work with. \n\nThe application integrates with scientific literature databases through their APIs, such as the Semantic Scholar API, to automate the search and retrieval of relevant studies\nML algorithms, including those from the sklearn library, are used for screening studies and synthesizing data The application streamlines the creation of systematic reviews, from formulating research questions to synthesizing findings, ready for publication.\n\n## Content blocks\n### Generating Inclusion and Exclusion Criteria\nThis content block uses natural language processing to identify key terms from the user's research question and formulates inclusion and exclusion criteria for the systematic review. It filters out irrelevant words and focuses on unique keywords, excluding studies that do not meet these criteria and a specified year range.\n### Searching for Relevant Studies\nThe \"Searching for Relevant Studies\" content block uses the Semantic Scholar API to find studies that match the user's query and inclusion/exclusion criteria. It retrieves and logs relevant documents for further review and selection.\n### Extracting Data \nThis section utilizes pdfplumber and BeautifulSoup to extract text from PDFs and HTML content of selected studies. The spacy NLP library is used to structure the extracted data, which includes details like titles, years, and identified entities.\n###  Data Synthesis \nThis is responsible for the qualitative and quantitative synthesis of the extracted data. It uses LDA topic modeling for qualitative synthesis and a random-effects meta-analysis for quantitative synthesis. The function 'synthesize_findings_for_publication' generates a cohesive narrative that includes an introduction, methods, results, discussion, and conclusion sections based on the qualitative and quantitative results.\n### Generating Publication Sections\nThe \"Generating Publication Sections\" content block is responsible for creating the different sections of the final publication-ready document. It includes functions to generate the introduction, methods, results, discussion, and conclusion sections, each populated with relevant content based on the systematic review findings.\n\n# NextJS framework\n\nNextJS is included for type Headless CMS. [TailwindCSS](https://tailwindcss.com/) and [graphql-ts-client](https://github.com/babyfish-ct/graphql-ts-client) are set up within the project.\n\n### Before running it for the first time\n\nRename the `.env.local.dist` file to `.env.local`\n\n### Starting the project\n\nThe `npm run start` command starts Contember Admin and NextJS, which runs on `localhost:3000`.\n\nBefore each launch, `npm run codegen` will run the command to generate Typescript definition for GraphQL in the `/website/api/__generated` folder.\n\n## Project structure\n-   `api` - folder contains `graphQLExecutor.ts` file, which provides the call to the  GraphQL endpoint.\n    -   `__generated` - ⚠️ Do not edit this folder ⚠️ . This folder contains automatically generated files for the GraphQL client. The structure should be regenerated with `npm run codegen` after changing the model and performing the migration.\n    -   `queries` -  if we have identified one of the entities as a content entity during the generation process, you will find a file with a fully compiled query for that entity in this folder.\n-   `app`\n    -   `entity_name/[id]/page.tsx` - contains a basic rendering of the page structure based on the generated GraphQL call, this is the file you will want to start editing after publishing first post.\n-   `components`\n    -   `[RichTextRenderer.tsx](https://docs.contember.com/reference/admin/api/v1.2/Content%20rendering/RichTextRenderer/)` - component for rendering the Content entity\n-   `public` - static assets\n-   `scripts`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsp12102001%2Fsystematic-synthesizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsp12102001%2Fsystematic-synthesizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsp12102001%2Fsystematic-synthesizer/lists"}