Sharing your research code and software

Increase the visibility and impact of the code you develop during your research

What are code and software?

Code is a human readable executable command for a computer. Lines of code are put together to make software programs. Code and Software are increasingly used in academic research in a range of ways: 

Some researchers write their own analysis code. These are created to help researchers create or analyse datasets.

  • There are different languages for writing code, such as C, C , C#, Go, Java, JavaScript, PHP, Python, Ruby, Scala, and TypeScript

  • This may occur on online collaboration platforms like Github

Some researchers may use software tools created by others. These tools may be more professional, but have similar uses of creating or analyzing datasets.

  • Some researcher’s activity is about creating software tools to help other researchers..

  • These tools may be shared open source, which is where the tool is shared with a license that allows other researchers to use it without fees or permission.

Vector illustration of a large laptop screen with a giant pink rocket coming out of the screen. On the left side is a character holding a peice of paper and on the right side is a character holding a laptop

On the biggest scale, there is research infrastructure. These are software programmes that are relied upon by other researchers to do their work. For example: SPSS.

To increase the transparency and reproducibility of research our journals may require or encourage analysis code and software created by the authors of the research article to be shared online in a repository and linked to the article. This is separate to the data sharing policy of the journal.

In models of open research, such as the NASA Transformation to Open Science programme and FOSTER open research, code and software sharing are called out as key element. This is because for some research areas it is critical that readers have access to the code or software that the researchers used, in order to confirm or replicate the results shared in a research article.

If you want to share the Code and Software that you have created and used in your research then there are a few simple steps to follow before you submit your paper for peer review. Also be sure to check the peer review policy of the journal and anonymise links if necessary.

  • Mention your code and software in the text of your manuscript, in the methods or other suitable section

  • Ensure the code and software is available online for readers to access. If you created it on a collaboration platform (like GitHub), then you can use their link with Zenodo to create a persistent version and mint a DOI. See here for more guidance

  • Create a software availability statement: be sure to include:

  • Software available from: URL for the website where software can be downloaded from, if applicable

  • Source code available from: URL for versioning control system (for example GitHub)

  • Archived source code at time of publication: DOI and citation for project in Zenodo (please select the appropriate DOI for the version which underlies your article)

  • License: Must be an open license and preferably an OSI-approved license

  • Cite the software DOI in your references to create a machine-readable link between the software and the article. Add (software) in brackets to the end of the reference.

Vector illustration of a character with an arm extended and a speech bubble.

See point 6 of this list for guidance on how to cite your code and software.

For journals that undertake double blind review authors should look to create an anonymised view of their code/software in a repository. This is possible in both Figshare and Zenodo. This will protect their identify during the anonymised peer review process.

For journals that offer single blind review, then there are no additional considerations for authors as reviewers will already be able to see the identity of the article authors.

Questions?

Please contact the open science team at [email protected]