Repository: leipzig/awesome-reproducible-research
Branch: master
Commit: ecd782b470c2
Files: 7
Total size: 215.9 KB
Directory structure:
gitextract_qirxqdyk/
├── .github/
│ └── workflows/
│ └── docs-check.yml
├── .mlc_config.json
├── code-of-conduct.md
├── contributing.md
├── readme.md
└── src/
├── doi2md.py
└── requirements.txt
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/docs-check.yml
================================================
name: Check Markdown Links
on: [push, pull_request]
jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
config-file: '.mlc_config.json'
================================================
FILE: .mlc_config.json
================================================
{
"aliveStatusCodes": [200, 403, 429, 0, 202, 406],
"ignorePatterns": [
{ "pattern": "^https://datacite.org" },
{ "pattern": "^https://bioportal.bioontology.org" },
{ "pattern": "^https://openmkt.org" },
{ "pattern": "^https://figshare.com" },
{ "pattern": "^https://zenodo.org" },
{ "pattern": "^https://www.ncbi.nlm.nih.gov" },
{ "pattern": "^https://www.ebi.ac.uk" },
{ "pattern": "\\[.*\\]\\(#.*\\)" },
{ "pattern": "^https://midas\\.umich\\.edu" }
]
}
================================================
FILE: code-of-conduct.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at leipzig@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
================================================
FILE: contributing.md
================================================
# Contribution Guidelines
Please note that this project is released with a
[Contributor Code of Conduct](code-of-conduct.md). By participating in this
project you agree to abide by its terms.
---
Ensure your pull request adheres to the following guidelines:
- Content must be awesome
- Content must be described as to its relevance to RR
- No NSS ("No Shit, Sherlock") Content. Content must not be so obvious that anyone who came to look at this page would not already know about its existence (e.g. Git, Github, R, RStudio, Jupyter). Point neophytes to the educational materials.
Thank you for your suggestions!
================================================
FILE: readme.md
================================================
# Awesome Reproducible Research [](https://github.com/sindresorhus/awesome) [](https://doi.org/10.5281/zenodo.3564746)
> A curated list of reproducible research case studies, projects, tutorials, and media
- [Awesome Reproducible Research ](#awesome-reproducible-research--)
- [Case studies](#case-studies)
- [Ad-hoc reproductions](#ad-hoc-reproductions)
- [Theory papers](#theory-papers)
- [Theses and dissertations](#theses-and-dissertations)
- [Tool reviews](#tool-reviews)
- [Courses](#courses)
- [Development Resources](#development-resources)
- [Literature tools](#literature-tools)
- [Scientific Data Management Systems](#scientific-data-management-systems)
- [Books](#books)
- [Databases](#databases)
- [Data Repositories](#data-repositories)
- [Exemplar Portals](#exemplar-portals)
- [Runnable Papers](#runnable-papers)
- [Haibe-Kains lab](#haibe-kains-lab)
- [Patcher lab](#patcher-lab)
- [Siepel lab](#siepel-lab)
- [Journals](#journals)
- [Ontologies](#ontologies)
- [Minimal Standards](#minimal-standards)
- [Organizations](#organizations)
- [Awesome Lists](#awesome-lists)
- [Contribute](#contribute)
- [License](#license)
## Case studies
The term "case studies" is used here in a general sense to describe any study of reproducibility. A _reproduction_ is an attempt to arrive at comparable results with identical data using computational methods described in a paper. A _refactor_ involves refactoring existing code into frameworks and other reproducibility best practices while preserving the original data. A _replication_ involves generating new data and applying existing methods to achieve comparable results. A _robustness test_ applies various protocols, workflows, statistical models or parameters to a given data set to study their effect on results, either as a follow-up to an existing study or as a "bake-off". A _census_ is a high-level tabulation conducted by a third party. A _survey_ is a questionnaire sent to practitioners. A _case narrative_ is an in-depth first-person account. An _independent discussion_ utilizes a secondary independent author to interpret the results of a study as a means to improve inferential reproducibility.
|
Study |
Field |
Approach |
Size |
|
Medicine |
Census |
80 studies |
|
|
Cancer biology |
Refactor |
8 studies |
|
|
Biostatistics |
Census |
56 studies |
|
|
Genetics |
Reproduction |
18 studies |
|
|
Software engineering |
Replication |
4 companies |
|
|
Signal processing |
Census |
134 papers |
|
|
Biomedical sciences |
Survey |
23 PIs |
|
|
Bioinformatics |
Census |
100 studies |
|
|
Cancer biology |
Replication |
53 studies |
|
|
Computer science |
Census |
613 papers |
|
|
Psychology |
Replication |
100 studies |
|
|
Biomedical sciences |
Census |
100 papers |
|
|
Epidemiology |
Robustness test |
417 variables |
|
|
Economics |
Reproduction |
67 papers |
|
|
Biomedical sciences |
Census |
441 papers |
|
|
Science |
Survey |
1,576 researchers |
|
|
NLP |
Replication |
3 studies |
|
|
Cancer biology |
Replication |
9 studies |
|
|
Biomedical sciences |
Census |
318 journals |
|
|
Science |
Case narrative |
31 PIs |
|
|
Biological sciences
|
Survey |
704 PIs |
|
|
Bioinformatics |
Refactor |
1 study |
|
|
Economics |
Replication |
18 studies |
|
|
Machine learning |
Census |
30 studies |
|
|
Archaeology |
Case narrative |
1 survey |
|
|
Comparative toxicogenomics |
Census |
51,292 claims in 3,363 papers |
|
|
Artificial intelligence |
Census |
400 papers |
|
|
Economics |
Census |
203 papers |
|
|
Computational science |
Reproduction |
204 papers, 180 authors |
|
|
Psychology |
Survey |
2,056 psychologists |
|
|
Genomics |
Case narrative |
1 study |
|
|
Social sciences |
Replication |
21 papers |
|
|
Psychology |
Robustness test |
One data set, 29 analyst teams |
|
|
Medicine and health sciences |
Census |
30 papers |
|
|
Microbiome immuno oncology |
Replication |
1 paper |
|
|
Bioinformatics |
Refactor and test of robustness |
1 paper |
|
|
Biomedical Sciences |
Census |
149 papers |
|
|
Bioinformatics |
Synthetic replication & refactor |
1 paper |
|
|
Geosciences |
Survey, Reproduction |
146 scientists, 41 papers |
|
|
Reinforcement Learning |
Reproduction, case narrative |
1 paper |
|
|
Computational physics |
Census |
306 papers |
|
|
Science & Engineering |
Survey |
215 participants |
|
|
Nephrology |
Robustness test |
1 paper |
|
|
Social sciences & other |
Census |
810 Dataverse studies |
|
|
Social sciences & other |
Census, Survey |
2109 replication datasets |
|
|
GIScience/Geoinformatics |
Census, Survey |
32 papers, 22 participants |
|
|
Genomics |
Robustness test |
8 studies |
|
|
Geosciences |
Survey |
360 papers |
|
|
Deep learning |
Robustness test |
1 analysis |
|
|
Genomics |
Case narrative |
1 analysis |
|
|
Pharmacogenomics |
Case narrative |
2 analyses |
|
|
Biomedical sciences and Psychology |
Census |
127 registered reports |
|
|
All |
Census |
1,159,166 Jupyter notebooks |
|
|
Virology |
Census |
236 papers |
|
|
Anaesthesia |
Independent discussion |
1 study |
|
|
Psychology |
Replication |
1 paper |
|
|
Cell pharmacology |
Robustness test |
5 labs |
|
|
Machine learning |
Reproduction |
18 conference papers |
|
|
Experimental archaeology |
Replication |
1 theory |
|
|
Neurology |
Census |
202 papers |
|
|
Psychology |
Replication |
2 experiments |
|
|
Ecology and Evolution |
Census |
163 papers |
|
|
Neuroimaging |
Robustness test |
1 data set, 70 teams |
|
|
Psychology |
Replication |
1 experiment, 21 labs, 2,220 participants |
|
|
Psychology |
Census |
62 papers |
|
|
Oncology |
Census |
154 meta-analyses |
|
|
Bioinformatics |
Robustness test |
1 data set |
|
|
Neurobiology |
Census |
41 papers |
|
|
Genetics |
Census |
1799 papers |
|
|
Psychology |
Reproduction |
33 meta-analyses |
|
|
Biomedical science |
Census |
792 papers |
|
|
Ecology |
Census |
346 papers |
|
|
Physics |
Replication |
2 papers |
|
|
Reproductive endocrinology |
Census |
222 papers |
|
|
Biomedical sciences |
Census |
240 papers |
|
|
Environmental Modelling |
Census |
7500 papers |
|
|
Cardiology |
Census |
532 papers |
|
|
GIS |
Census |
75 papers |
|
|
Life Sciences |
Survey |
251 researchers |
|
|
Genetics |
Robustness test |
1 paper |
|
|
Life Sciences |
Census |
3377 articles |
|
|
Computational Biology |
Census |
622 papers |
|
|
Computational Biology |
Robustness test |
6 studies |
|
|
Computational Biology |
Survey |
214 researchers |
|
|
Differential expression |
Census |
2109 GEO submissions |
|
|
Computational biology |
Census |
186 papers |
|
|
Psychology |
Robustness test |
1 study |
|
|
Proteomics |
Refactor |
1 analysis |
|
|
Social science |
Robustness test |
73 teams |
|
|
Radiology |
Census |
62 studies |
|
|
Clinical ML |
Census |
511 papers |
|
|
9 Fields |
Census |
875 articles |
|
|
Life Sciences |
Census |
3556 papers |
|
|
Biomedical Sciences |
Census |
9625 Jupyter notebooks |
|
|
Radiation oncology |
Robustness test |
300k models |
|
|
Behavioral sciences |
Refactor |
||
|
Cancer biology |
Census |
306 papers |
|
|
Marketing |
Replication |
10 papers |
|
|
Machine Learning |
Census |
17 studies |
|
|
Bioinformatics |
Refactor |
1 paper |
|
|
Ecology |
Robustness test |
2 datasets, 174 teams |
|
|
Psychology |
Replication |
16 findings |
|
|
Linguistics |
Census |
600 articles |
|
|
Psychology |
Survey |
1,200 researchers |
|
|
Economics |
Census |
1,500 studies |
|
|
Ecology |
Census |
177 papers |
|
|
Biology |
Census |
750 papers |
|
|
Economics |
Robustness test |
110 papers |
|
|
Research |
Survey |
2500 researchers |
|
|
Neuroimaging |
Refactor |
1 study |
|
|
Research Methodology |
Systematic Review |
156 studies |
|
|
Cardiovascular Science |
Census |
639 papers |
|
|
Molecular biology |
Replication |
56 experiments, 143 replications, 56 labs |
|
|
Economics |
Robustness test |
27 papers |
|
|
Bioinformatics |
Robustness test |
8 tools |
|
|
Statistics |
Census |
264 R projects |
|
|
Sports Science |
Census |
25 studies |
|
|
Machine Learning |
Reproduction |
2,000+ papers |
|
|
Biomedical sciences |
Survey |
1630 participants |
|
|
Brain imaging |
Robustness test |
38 teams |
|
|
Earth system sciences |
Reproduction & Reusability |
1 analysis |
|
|
Diverse |
Refactor |
18 experiments |
|
|
Preclinical research |
Replication |
24,758 hours of mouse behavioral data |
|
|
Software engineering |
Case narrative |
3 models |
|
|
Biodiversity |
Census |
100 papers |
|
|
Computational science |
Survey |
133 researchers |
|
Reproduction |
Original study |
|
https://rdoodles.rbind.io/2019/06/reanalyzing-data-from-human-gut-microbiota-from-autism-spectrum-disorder-promote-behavioral-symptoms-in-mice/ and https://notstatschat.rbind.io/2019/06/16/analysing-the-mouse-autism-data/ |
Sharon, G. et al. Human Gut Microbiota from Autism Spectrum Disorder Promote Behavioral Symptoms in Mice. Cell 2019, 177 (6), 1600–1618.e17. |
|
https://github.com/sean-harrison-bristol/CCR5_replication |
Wei, X.; Nielsen, R. CCR5-∆32 Is Deleterious in the Homozygous State in Humans. Nat. Med. 2019 DOI: 10.1038/s41591-019-0459-6. (retracted) |
|
https://github.com/leipzig/placenta |
Leiby et al "Lack of detection of a human placenta microbiome in samples from preterm and term deliveries" https://doi.org/10.1186/s40168-018-0575-4 |
|
Heilbut et al "Rigor and Replication in Alzheimer’s Therapeutic Development: A Case Study" |
|
| Cancer-associated fibroblasts expressing fibroblast activation protein and podoplanin in non-small cell lung cancer predict poor clinical outcome | |
Edison Analysis Agent reproduces key findings on CAG-repeat expansions in Huntington's disease |
Handsaker et al. Long somatic DNA-repeat expansion drives neurodegeneration in Huntington's disease. Cell 2025 |
|
Authors/Date |
Title |
Field |
Type |
|
Why most published research findings are false |
Science |
Statistical reproducibility |
|
|
A Quick Guide to Organizing Computational Biology Projects |
Bioinformatics |
Best practices |
|
|
Ten Simple Rules for Reproducible Computational Research |
Computational science |
Best practices |
|
|
The Economics of Reproducibility in Preclinical Research |
Preclinical research |
Best practices |
|
|
The Generalizability Crisis |
Psychology |
Statistical reproducibility |
|
|
Unreproducible Research is Reproducible |
Machine Learning |
Methodology |
|
|
Trustworthy data underpin reproducible research |
Physics |
Scientific philosophy |
|
|
Scientific discovery in a model-centric framework: Reproducibility, innovation, and epistemic diversity |
Science |
Statistical reproducibility |
|
|
A Realistic Guide to Making Data Available Alongside Code to Improve Reproducibility |
Science |
Best practices |
|
|
The importance of transparency and reproducibility in artificial intelligence research |
Artificial Intelligence |
Critique |
|
|
What is replication? |
Science |
Scientific philosophy |
|
|
A Beginner’s Guide to Conducting Reproducible Research |
Ecology |
Best Practices |
|
|
Realistic and Robust Reproducible Research for Biostatistics |
Biostatistics |
Best practices |
|
|
A Link is not Enough – Reproducibility of Data |
Databases |
Best practices |
|
|
COVID-19 pandemic reveals the peril of ignoring metadata standards |
Virology |
Critique |
|
|
Principles for data analysis workflows |
Data science |
Best practices |
|
|
Reproducible Research: A Retrospective |
Public health |
Review |
|
|
Streamlining Data-Intensive Biology With Workflow Systems |
Biology |
Best practices |
|
|
Meta Research: Questionable research practices may have little effect on replicability |
Science |
Statistical reproducibility |
|
|
We need to keep a reproducible trace of facts, predictions, and hypotheses from gene to function in the era of big data |
Functional genomics |
Critique |
|
|
A research parasite's perspective on establishing a baseline to avoid errors in secondary analyses |
Science |
Best practices |
|
|
The multiplicity of analysis strategies jeopardizes replicability: lessons learned across disciplines |
Science |
Critique |
|
|
Reproducible Results Policy |
Water Resources |
Policy |
|
|
10 Things for Curating Reproducible and FAIR Research |
Social sciences |
Best practices |
|
|
Checklist for Artificial Intelligence in Medical Imaging (CLAIM): A Guide for Authors and Reviewers |
Medical imaging |
Best practices |
|
|
Generative and reproducible benchmarks or comprehensive evaluation machine learning classifiers |
Machine Learning |
Best practices |
|
|
The five pillars of computational reproducibility: Bioinformatics and beyond |
Bioinformatics |
Best practices |
|
|
Big little lies: a compendium and simulation of p-hacking strategies |
Research |
Statistical reproducibility |
|
|
Is N-Hacking Ever OK? The consequences of collecting more data in pursuit of statistical significance |
Biology |
Statistical reproducibility |
|
|
A how-to guide for code-sharing in biology |
Biology |
Best practices |
|
|
Characterising Reproducibility Debt in Scientific Software:A Systematic Literature Review |
Reproducible Research |
Review of reviews |
|
|
The evolution of computational research in a data-centric world |
Computational biology |
Review |
|
|
Genomic reproducibility in the bioinformatics era |
Genomics |
Review |
|
|
Continuous Analysis: Evolution of Software Engineering and Reproducibility for Science |
Science |
Best practices |
|
|
Computational reproducibility in computational social science |
Social Sciences |
Best practices |
|
|
What is reproducibility in artificial intelligence and machine learning research? |
Artificial Intelligence |
Conceptual framework |
|
|
Reproducibility in Machine Learning-based Research: Overview, Barriers and Drivers |
Machine Learning |
Survey |
|
|
Is There a Reproducibility Crisis? On the Need for Evidence-based Approaches |
Science |
Critical analysis |
|
Authors/Date |
Title |
Institution |
|
A Framework for Reproducible Computational Research |
University of Chicago |
|
|
Reproducible Research Practices, Scientific Transparency, and Subgroup Claims: A Meta-Research Dissertation |
Stanford University |
|
|
Publishing Reproducible Geoscientific Papers: Status quo, benefits, and opportunities |
University of Münster |
|
|
Data preservation and reproducibility at the LHCb experiment at CERN |
University of Cambridge |
|
|
Interactive Tools for Reproducible Science -- Understanding, Supporting, and Motivating Reproducible Science Practices |
University of Munich |
|
|
Tests of Robustness in Peer Review |
Drexel University |
|
|
Infrastructures and Practices for Reproducible Research in Geography, Geosciences, and GIScience |
University of Münster |
|
|
Free will in psychological research : considerations on methodic procedure and reproducibility of results |
Leuphana University |
|
|
The exploitation of provenance and versioning in the reproduction of e-experiments |
University of Newcastle Upon Tyne |
|
|
Reproducibility and Reusability in Deep Reinforcement Learning |
McGill University |
|
|
Reproducibility Crisis in Science: Causes and Possible Solutions |
Boston University |
|
|
Reliability, Replicability and Reproducibility in Pet Imaging |
Karolinska Institutet |
|
|
Assessing reproducibility and value in genomic signatures |
The Johns Hopkins University |
|
|
Scientific workflow execution reproducibility using cloud-aware provenance |
University of the West of England, Bristol |
|
|
A provenance-based semantic approach to support understandability, reproducibility, and reuse of scientific experiments |
Friedrich-Schiller-Universität Jena |
|
|
Rigor and reproducibility of cancer medicine evidence |
Oklahoma State University |
|
|
Long-term impact of an editorial intervention to improve paper transparency and reproducibility |
Universitat Politècnica de Catalunya |
|
|
Advancing Genomic and Transcriptomic Knowledge Through Reproducible Bioinformatics Workflows |
Penn State University |
|
|
Aiding researchers making their computational experiments reproducible |
Universidade do Porto |
|
Authors/Date |
Title |
Tools |
|
Out-of-the-box Reproducibility: A Survey of Machine Learning Platforms |
MLflow, Polyaxon, StudioML, Kubeflow, CometML, Sagemaker, GCPML, AzureML, Floydhub, BEAT, Codalab, Kaggle |
|
|
A Survey on Collecting, Managing, and Analyzing Provenance from Scripts |
Astro-Wise, CPL, CXXR, Datatrack, ES3, ESSW, IncPy, Lancet, Magni, noWorkflow, Provenance Curios, pypet, RDataTracker, Sacred, SisGExp, SPADE, StarFlow, Sumatra, Variolite, VCR, versuchung, WISE, YesWorkflow |
|
|
The Role of Metadata in Reproducible Computational Research |
CellML, CIF2, DATS, DICOM, EML, FAANG, GBIF, GO, ISO/TC 276, MIAME, NetCDF, OGC, ThermoML, CRAN, Conda, pip setup.cfg, EDAM, CodeMeta, Biotoolsxsd, DOAP, ontosoft, SWO, OBCS, STATO, SDMX, DDI, MEX, MLSchema, MLFlow, Rmd, CWL, CWLProv, RO-Crate, RO, WICUS, OPM, PROV-O, ReproZip, ProvOne, WES, BagIt, BCO, ERC, BEL, DC, JATS, ONIX, MeSH, LCSH, MP, Open PHACTS, SWAN, SPAR, PWO, PAV, Manubot, ReScience, PandocScholar |
|
|
Publishing computational research - a review of infrastructures for reproducible and transparent scholarly communication |
Authorea, Binder, CodeOcean, eLife RDS, Galaxy Project, Gigantum, Manuscript, o2r, REANA, ReproZip, Whole tale |
|
|
Standardizing Survey Data Collection to Enhance Reproducibility: Development and Comparative Evaluation of the ReproSchema Ecosystem |
ReproSchema |
|
|
The Reproducible Research Platform establishes a unified open science environment bridging data and software lifecycles across disciplines, from proposal to publication |
RRP (Reproducible Research Platform) |
|
|
BioFrame: Enhancing Reproducibility and Accessibility in Genomics through Web-Based Workflow Design |
BioFrame |
|
|
Evaluating Container Security and Reproducibility in Research Software Engineering |
Docker, DevSecOps |
| Blumberg et al 2021. Characterizing RNA stability genome-wide through combined analysis of PRO-seq and RNA-seq data | https://codeocean.com/capsule/7351682 |
The National Library of Medicine held two workshops in 2019...","doi":"10.5281/zenodo.3818329","keywords":["reproducibility","data science training","open science","open code","open data"],"language":"eng","license":{"id":"CC-BY-4.0"},"publication_date":"2020-05-09","related_identifiers":[{"identifier":"10.5281/zenodo.3818328","relation":"isVersionOf","scheme":"doi"}],"relations":{"version":[{"count":1,"index":0,"is_last":true,"last_child":{"pid_type":"recid","pid_value":"3818329"},"parent":{"pid_type":"recid","pid_value":"3818328"}}]},"resource_type":{"title":"Presentation","type":"presentation"},"title":"Data and Code for Reproducible Research: Lessons Learned from the NLM Reproducibility Workshop","version":"1.0.0"},"owners":[101399],"revision":3,"stats":{"downloads":203.0,"unique_downloads":191.0,"unique_views":275.0,"version_downloads":203.0,"version_unique_downloads":191.0,"version_unique_views":275.0,"version_views":320.0,"version_volume":92632960.0,"views":320.0,"volume":92632960.0},"updated":"2020-05-13T20:20:37.470893+00:00"} #dict_keys(['conceptdoi', 'conceptrecid', 'created', 'doi', 'files', 'id', 'links', 'metadata', 'owners', 'revision', 'stats', 'updated']) pub=self.doi if pub is None: print("{0} is not matching the 10.5281/zenodo.([0-9]+) pattern") else: try: response = requests.get('https://zenodo.org/api/records/{0}'.format(pub)) response.raise_for_status() resp = response.json() self.title = resp['metadata']['title'] last_name = lambda author: author.split(', ')[0] if len(resp['metadata']['contributors'])==1: self.author = last_name(resp['metadata']['contributors'][0]['name']) elif len(resp['metadata']['contributors'])==2: self.author = ' & '.join([last_name(a['name']) for a in resp['metadata']['contributors']]) else: self.author = '{} et al'.format(last_name(resp['metadata']['contributors'][0]['name'])) self.abstract=resp['metadata']['description'] self.yyyymmdd=resp['metadata']["publication_date"] self.yyyy=resp['metadata']["publication_date"][0:4] except HTTPError as http_err: print(f'HTTP error occurred: {http_err}') except Exception as err: print(f'Other error occurred: {err}') def bibtex(self): with open(args.bibtex) as bibtex_file: bibtex_database = bibtexparser.load(bibtex_file) #https://stackoverflow.com/questions/72899/how-do-i-sort-a-list-of-dictionaries-by-a-value-of-the-dictionary bib_sorted = sorted(bibtex_database.entries, key=lambda d: d['year']) for entry in bib_sorted: if entry['ID'] == args.doi: self.link=entry['url'] self.title=entry['title'] self.author=entry['author'] self.yyyy=entry['year'] self.yyyymmdd=self.yyyy+'0101' self.school=entry['school'] def proquest(self): try: response = requests.get(self.link) response.raise_for_status() soup = BeautifulSoup(response.content, 'html.parser') myauthors = soup.find_all("div", {"class": "truncatedAuthor"}) self.author = re.sub('\s+$','',re.sub('\.',' ',re.sub('\n','',myauthors[0].text))) mytitles = soup.find_all("h2", {"class": "unauthdocheader"}) self.title = mytitles[0].text myheader = soup.find_all("span", {"class": "titleAuthorETC dissertpub"}) self.school = re.sub('^\s','',re.sub("ProQuest.+","",myheader[0].text)) self.yyyy=re.search('([0-9]{4})', myheader[0].text, re.IGNORECASE).group(1) self.yyyymmdd=self.yyyy+'0101' except HTTPError as http_err: print(f'HTTP error occurred: {http_err}') except Exception as err: print(f'Other error occurred: {err}') def study(self): return("""
{5}
{6}
{7}
{6}
{7}
{8}
{5}
{6}
{5}
{6}