JuliaNLSolvers / Optim.jl

Optimization functions for Julia
Other
1.11k stars 214 forks source link

Citing Optim.jl #478

Closed antoine-levitt closed 5 years ago

antoine-levitt commented 6 years ago

I've found Optim.jl very useful in my work (it's possibly not the most mature or efficient optimization library in existence, but it's been flexible enough to allow me to modify it easily), and want to acknowledge it in a paper I'm writing. Is there a standard way to do that, or do I just put up a link to the github page?

ChrisRackauckas commented 6 years ago

Optim.jl should sign up for Zenodo: https://guides.github.com/activities/citable-code/

Other than that, JORS offers guides: https://openresearchsoftware.metajnl.com/about/#q11

That's enough for Google Scholar to catch it at least.

anriseth commented 6 years ago

I have currently just cited the github repo.

Zenodo sounds useful, and maybe we should write a short article for JORS or similar in prep for Optim/Julia 1.0?

ChrisRackauckas commented 6 years ago

JORS is a little more involved but definitely doable. But a quick paper is JOSS (http://joss.theoj.org/about). It's like 1 page paper is the only thing that's required, and the rest that's reviewed is your repo. That's something to think about.

pkofod commented 6 years ago

Good question @antoine-levitt and thanks for spreading the word! I will figure out a way. Is this work you're submitting soon? Then probably the best we can do is to go the zenodo route, though JOSS could be interesting as well.

ChrisRackauckas commented 6 years ago

both JOSS and JORS require that you sign up for Zenodo, so I'd just do that now.

antoine-levitt commented 6 years ago

Soon-ish (~1 month?) There's absolutely no hurry, I can change the citation later on, but Zenodo looks very nice.

pkofod commented 6 years ago

Alright, I'll create a zenodo...thing.

pkofod commented 6 years ago

I believe there's one now in the readme https://github.com/JuliaNLSolvers/Optim.jl

antoine-levitt commented 6 years ago

Looks good! I look forward to citing "JuliaNLSolvers/Optim.jl: Minor changes to README.md and some dots" ;-)

ChrisRackauckas commented 6 years ago

Generally you cite the package and authors + the DOI, but not the specific version title haha

pkofod commented 6 years ago

I'm not going to tag anything for the next month just to be sure that you include the release title, haha!

anriseth commented 6 years ago

I can try to submit Optim to JOSS this week, or would anybody prefer that we wait for particular features (e.g. #303 or Julia 1.0)? I assume we could write something more substantial in JORS later on.

ChrisRackauckas commented 6 years ago

I can swap out Calculus for DiffEqDiffTools probably in the next week and then you can probably tout full complex support. Has the array support been abstracted here as well or is it still indexing?

anriseth commented 6 years ago

Patrick and I plan to submit a JOSS article tomorrow or Friday. Does anyone have examples of research published using Optim that we can cite? @ChrisRackauckas @cortner

(@antoine-levitt we're currently mentioning https://arxiv.org/abs/1801.08572 )

ChrisRackauckas commented 6 years ago

DiffEq is published and its benchmarks use Optim all throughout the parameter estimation portion. In particular, Google Scholar shows that this article used DiffEq + Optim for studying parameter estimation:

https://www.biorxiv.org/content/early/2018/01/25/254003

And here's the DiffEq paper which is too old to contain a reference to Optim but should: https://openresearchsoftware.metajnl.com/article/10.5334/jors.151/

I believe we might make use of Optim in another place as well, but it's not coming to mind right a way.

anriseth commented 6 years ago

Thanks @ChrisRackauckas, I've included the references:)

cortner commented 6 years ago

Ive got two where the algorithms were prototyped in Julia but then reimplemented in Python (don’t ask) so used Optim implicitly. I’ve got two more that used Optim directly - but since they are analysis papers the don’t really talk about the code at all. If useful I can postage references here later. (I’m on my phone)

anriseth commented 6 years ago

@cortner yes, please do. (I'll decide whether it makes sense to include them tomorrow)

cortner commented 6 years ago

Using Pptim in the background: H. Chen and C. Ortner. QM/MM methods for crystalline defects. Part 2: Consistent energy and force-mixing. Multiscale Model. Simul., 15(1), 2017 J. Braun, M. Buze, and C. Ortner. The effect of crystal symmetries on the locality of screw dislocation cores. ArXiv e-prints, 1710.07708

Prototypes in Optim: D. Packwood, J. Kermode, L. Mones, N. Bernstein, J. Woolley, N. I. M. Gould, C. Ortner, and G. Csanyi. A universal preconditioner for simulating condensed phase materials. J. Chem. Phys., 144, 2016

pkofod commented 6 years ago

Using Pptim in the background: H. Chen and C. Ortner. QM/MM methods for crystalline defects. Part 2: Consistent energy and force-mixing. Multiscale Model. Simul., 15(1), 2017 J. Braun, M. Buze, and C. Ortner. The effect of crystal symmetries on the locality of screw dislocation cores. ArXiv e-prints, 1710.07708

For these, I guess the real question is if it was of any advantage to you, or was it "just" because you were already using Julia? I mean if it was because it was easy to experiment with line searches or something like that, then it'd be cool to know (so we can mention it).

cortner commented 6 years ago

I needed the preconditioning which was very convenient to add. Without it the simulations would have been very difficult to eun

cortner commented 6 years ago

final reference: Preconditioners for the geometry optimisation and saddle point search of molecular systems, L Mones, G Csanyi and C Ortner, submitted.

This is another one where all algorithms are prototyped in Julia and then moved into a python library (ASE) as well as two commercial codes (CASTEP and ONETEP)

anriseth commented 6 years ago

final reference: Preconditioners for the geometry optimisation and saddle point search of molecular systems, L Mones, G Csanyi and C Ortner, submitted.

I can't find this anywhere online?

cortner commented 6 years ago

It isn’t :). I’ll ask my co-authors whether they are happy to post it.

On 8 Mar 2018, 17:13 +0000, Asbjørn Nilsen Riseth notifications@github.com, wrote:

final reference: Preconditioners for the geometry optimisation and saddle point search of molecular systems, L Mones, G Csanyi and C Ortner, submitted.

I can't this anywhere online?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/JuliaNLSolvers/Optim.jl/issues/478#issuecomment-371556047, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AHVRQx41O68-Wc9cy4aZuoAGBjVcbcrOks5tcWbOgaJpZM4QEJiI.

anriseth commented 6 years ago

It isn’t :). I’ll ask my co-authors whether they are happy to post it.

Phew, I was afraid my Googling skills had suffered a severe blow there. I assume we can add more references in the JOSS summary article after the reviewers have given us feedback on the code, so it's probably no rush ;)

anriseth commented 6 years ago

There's now a JOSS article to cite, in case anyone feels like doing so :smiley: http://joss.theoj.org/papers/10.21105/joss.00615

I guess the BiBTeX will look something like this,

@article{mogensen2018optim,
  author  = {Mogensen, Patrick Kofod and Riseth, Asbj{\o}rn Nilsen},
  title   = {Optim: A mathematical optimization package for {Julia}},
  journal = {Journal of Open Source Software},
  year    = {2018},
  volume  = {3},
  number  = {24},
  pages   = {615},
  doi     = {10.21105/joss.00615}
}