8

What are the rules/etiquette to cite MATLAB File-exchange submissions on paper publications?

There are different scenarios where I am curious what is best:

  1. FEX submission is clearly code from a paper written by the same person.
  2. Code is from a paper, but the author of the code is not the same author than the paper.
  3. Code is a nice tool, but has no available citation. E.g. inpaint_nans, nice tool to fill "missing" data.
  4. Code that is a nice tool, someone coded it, but its little effort to rewrite as it's not a complex tool. Still, someone write it and, time==gold!
  5. Code that is a nice tool, takes little effort to rewrite, but its code referencing more than one paper. E.g. 3D Shepp-Logan Phantom, references 2 papers, and its a short function.

MATLAB uses the BSD license in FEX, meaning all software can be used and redistributed as long as the copyright is maintained an disclaimer kept.

This means that legally, one can just copy-paste the code and use it without any worry, as long as the license file is kept. But law aside, how should one act in the above mentioned cases?

  • 4
    I think this can be generalised to "how and when to cite external packages in a publication"? – Davidmh Nov 16 '15 at 14:46
  • @Davidmh not really, as not all software works the same way. If I was using python libraries or R packages, I had no questions. – Ander Biguri Nov 16 '15 at 14:50
  • How would it be this Python library any different than inpaint_nans? – Davidmh Nov 16 '15 at 15:00
  • 1
    In fact, MATLAB FEX has a written policy on this: blogs.mathworks.com/community/2010/12/13/… – Davidmh Nov 16 '15 at 15:00
  • @Davidmh about MATLAB's policy: My question is mainly questioning if that's the right approach always. For the shake of an example lets assume I want to plot cubes and I use plotcube from FEX. This function is ridiculously simple and "copyable". If I would need to write a paper, I am pretty sure I wouldn't reference that FEX, nor the reviewers would agree in a reference to that. Thus, my option, would be probably to write my own (or avoid a reverence). But this is a pity, because someone made the effort to write a function, it doesn't matter its simplicity. – Ander Biguri Nov 16 '15 at 15:11
3

This answer is from my own personal experience in academia and may/may not be strictly SOP, however, I'll do my best to answer. Most of this is assuming that you have not drastically altered the original code for your work.

1) FEX submission is clearly code from a paper written by the same person.

In this case, contact the person and let them know you are using their code in your work, cite their paper, and acknowledge their code in the paper. This is especially important if their code was critical to your work.

2) Code is from a paper, but the author of the code is not the same author than the paper.

Cite the original paper as it is providing the basis of the code that you are using. Contact the author of the code and acknowledge them.

3) Code is a nice tool, but has no available citation. E.g. inpaint_nans, nice tool to fill "missing" data.

This is an example of when the code doesn't accomplish the goal of the research and is therefore not going to be mentioned in the paper. In this case, you can acknowledge the author in your own code/ software, but not in your paper.

4) Code that is a nice tool, someone coded it, but its little effort to rewrite as it's not a complex tool. Still, someone write it and, time==gold!

In this case, it is probably not even worth any mention. I think everyone on the exchange understands at some point, contributions are designed to further programming itself, not themselves.

5) Code that is a nice tool, takes little effort to rewrite, but its code referencing more than one paper. E.g. 3D Shepp-Logan Phantom, references 2 papers, and its a short function.

In this example, this code is copyright protected but also released under GPL. Follow the procedure for GPL and when in doubt, contact the author. If the code is central to your work, acknowledge the author at the end of your paper.

Summary: If the code is central to your research theme, contact the author. If the code is a tool that 'fills in the blanks', it doesn't need to appear in the paper, but should be referenced in your code.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.