I have been developing a piece of software related to my PhD research. My field is bioinformatics and molecular simulation.

The reason being that my supervisor's software has been written in a hapazard manner over the past 17 years or so, and the source code is so low in quality that I found the source code to be not only impossible to refactor but also not worth refactoring.

Another reason is that I am developing my software in a programming language that I adore. It is fully object-oriented and truly platform-independent.

However, the catch is that I don't want to make my software open source. I only want to release the binary files and libraries for public use.

I was wondering if I could publish my software as a research paper in a peer-reviewed journal.

Can I?


3 Answers 3


This is going to vary from field to field. @RicardoCruz notes that in Machine Learning journals/reviewers do not generally push for code to be made available, whereas in my field (bioinformatics), most journals do have a policy that all code must be made available, and quite a lot of reviewers will highlight if its not.

This does vary by the type of paper. The majority of journals publish software either where it is part of a paper reporting a methodological advance, or where it has been used to demonstrate a new piece of science. Where the science is the focus, rather than the method, it is easier to get away with just supplying exes.

There are a few places in my field where you can simply publish a software tool even if it is not a methological advance, or a used to demonstrate a new piece of science. Many of these places are the sorts of places that do prioritise open-source more than other places. E.g. JOSS (Journal of Open Source Software - the clue is in the name) or Bioinformaics, who state:

The Journal requires all authors, where ethically possible, to publicly release all data and software code underlying any published paper as a condition of publication ... The review of manuscripts describing new software, or where novel algorithms, code and/or data are central to the manuscript, includes peer review of the algorithm/code and underlying data. We therefore require that all relevant software and/or data are made available to the reviewers during the review process.

Of course making the code available isn't the same as making it open-source. It is possible to make it available with a restrictive licence.

  • My software is related to bioinformatics and molecular simulation.
    – user366312
    Commented May 9 at 15:08

An open-access journal simply means that its content is accessible for free. You are asking what kind of content can be published in the papers of open-acces journals.

Depending on the specific journal policy, you may be able to present a closed-source software there. There is no "general" mutual exclusivity.

Repeatability of the results presented in a scientific paper is a requirement for both closed and open-access papers (at least in theory). So publishing your code in a closed-source paper would not be that different (probably it will be much cheaper, unless you are publishing on diamond open-source journal).

If you look for software in the academy, you will find plenty of examples of "only-exe" downloads, with non-commercial usage licenses. Have a look at them, then check the history of publication of the authors.


There are no engraved rules about this, but in my experience (in machine learning) reviewers (unfortunately) usually do not push for source code to be released, nor do journals/conferences AFAIK demand it. While there has been some push for reproducible research, in my experience, these practices are not yet well entrenched.

You do not specify what the goal of your code is, but here are some general tips:

  1. Simulator used to generate synthetic data: Reviewers are usually satisfied by only having the generated data published and explaining how it was generated (or reference whatever paper was used to implement it).
  2. Implementation of existing or proposed algorithms that perform calculations necessary for your experiments. Again, make sure the algorithms are well-documents, either in your paper or existing literature. If a reviewer insists on having code published (which is rare), you could publish an MWE (minimal working example) with the part that the reviewer is concerned about. For example, if it is a predicted model, you can share the parameters and inference code (keeping the optimization part closed).
  3. User interface to help automate some tasks such as data labeling. I doubt reviewers will care about such software unless the paper is specifically about the software.

All that being said, I would make sure to have your supervisor's consent (and whoever contributed to the existing code) before proceeding: is your motivation to eventually monetize from your software? You say that "the source code is so low in quality"; therefore, you had the opportunity to go through the existing code. I am pretty sure your code is now considered derived work. Courts have ruled that even inspecting binary code (called reverse engineering) is considered derived work (see clean room design), so I would expect no less from reproducing existing software after looking at its source code. (But that's the topic of another stackexchange.) Furthermore, since the software is produced as part of your studies and (I guess?) from a publicly funded PhD, you should have a look at whether you will need university or funding agency permission if you commercialize it (see this question about that).

If your goal is not to monetize the software, you should consider if giving back is not to your benefit -- others will use and build upon it, which implies citations, collaborations, networking opportunities and improve your curriculum vitae.

EDIT: As the other reply said, there is confusion in the title of your question. Open-access journals mean that the paper is publicly available (author pays). Closed-access journals mean the paper is behind a pay-wall (reader pays). It is a completely orthogonal topic to your question about source-code.

  • 1
    1. Simulator used to generate synthetic data --- this is my case.
    – user366312
    Commented May 9 at 15:02
  • therefore, you had the opportunity to go through the existing code --- his code is open source.
    – user366312
    Commented May 9 at 15:03
  • I am pretty sure your code is now considered derived work. --- absolutely not! I have studied his code to understand the theory, not for copy-pasting or translating the logic.
    – user366312
    Commented May 9 at 15:05
  • I did not accuse you of copy pasting. :) I am just calling attention to the fact that the standards for derived work are lower than that, but IANAL. Commented May 9 at 16:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .