The codon project was created to increase code sharing, consistancy of code and coding standards and encourage collaboration. The repository contains Python, R and SQL code for ease of use in workflows on platforms used within NHS Digital such as Databricks. Everything you need to use the repository should be available on the GitHub pages however further information for NHS Digital staff can be found here, via our internal confluence page. codonPython aims to reduce the barrier for entry for analysis and provide software development experience for those at a higher level of technical ability.
In biological terms, a codon is one of the building blocks that make up our DNA. By openly sharing our code we hope that others will be able to take those blocks of code to build their own processes using the data that NHS Digital hold.
By sharing code, the project aims to:
Increase Transparency: To align with government data principles and build public trust.
Improve Code: To innovate and improve the code we use and provide.
Improve usability: By increasing the accessibility and uniformity of code, it becomes easier for data users to find and use relevant code.
Be more cost effective: Reusable 'generalised' code will increase efficiency in creating higher level processes.
You can install the development version of the package in R using:
devtools::install_github("codonlibrary/codonR")
For further guidance on cloning from the remote repository to a local repository on your machine see the information in our Wiki.
Codon is looking for any fully parametrised functions that are useful in data publication work flows. Any other parametrised functions useful for healthcare Data, Insights or Statistics (DIS) are also welcomed.
Please check the Codon Do's and Don’ts against your code before contributing;
| Do's | Don'ts |
|---|---|
| Contribute fully parametrised code. | Supply non-parameterised scripts |
| Supply unit and expected error testing files at 100% coverage | Untested functions |
| Include function doc strings | Contribute code from established libraries. |
| Improve the code in the current repository. By Forking the repo and creating a Pull-Request. | Supply code that repeats a function in the current repo. |
Testing files should always cover 100% of the contributed code. If this is not achievable please highlight this during the Pull-Request process to the Codon team.
Please follow the guidance document for further detailed guidance on contribution and Coding Convention.
Any improvements to documentation, bug fixes or general code enhancements are also welcomed. If a bug is found on the master branch, please use the GitHub guidance on raising an issue.