Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First draft for JOSS paper #70

Merged
merged 15 commits into from
Feb 19, 2024
Merged

First draft for JOSS paper #70

merged 15 commits into from
Feb 19, 2024

Conversation

JanJereczek
Copy link
Contributor

@JanJereczek JanJereczek commented Feb 13, 2024

This PR proposes a first draft for the JOSS paper describing the package. The JOSS guideline states that the paper should be between 250-1000 words. Authors submitting papers significantly longer than 1000 words may be asked to reduce the length of their paper. We are at about 1,500 words, which might not be a big issue but needs to be discussed.

The code used to generate the two figures of the paper are provided in paper/code/ and the figures in paper/figures. The first figure requires a .csv file, which is not included in the PR since we should include it in the genral repo of JuliaDynamics. The second figure is a comparison to the run time of ewstools, as assessed in paper/code/ewstools-tuto-1.py.

@Datseris, I suggest we have a call to talk about the draft :) Also, at some point you will need to put your affiliation and your funding.

@codecov-commenter
Copy link

codecov-commenter commented Feb 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (b1d3387) 36.42% compared to head (32ad0fe) 81.36%.
Report is 2 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main      #70       +/-   ##
===========================================
+ Coverage   36.42%   81.36%   +44.94%     
===========================================
  Files          18       16        -2     
  Lines         442      365       -77     
===========================================
+ Hits          161      297      +136     
+ Misses        281       68      -213     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@Datseris Datseris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your work! First round of review is done. Overall good but can still be improved!

.github/workflows/draft-pdf.yml Outdated Show resolved Hide resolved
paper/code/Project.toml Outdated Show resolved Hide resolved
paper/figures/figure2.png Outdated Show resolved Hide resolved
paper/paper.md Outdated Show resolved Hide resolved
paper/paper.md Show resolved Hide resolved
paper/paper.md Outdated Show resolved Hide resolved
paper/paper.md Outdated Show resolved Hide resolved
paper/paper.md Show resolved Hide resolved
paper/paper.md Show resolved Hide resolved
paper/paper.md Outdated Show resolved Hide resolved
Copy link
Member

@Datseris Datseris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are almost there. address these and we can merge this!!!

paper/paper.md Outdated
and the recent price collapse of many cryptocurrencies [@ismail_detecting_2020]. The systems
displaying such transitions are therefore usually monitored by measuring state variables
that are believed to be representative of the underlying process. Researchers analyze the
resulting time series with various methods to detect past transitions and predict
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
resulting time series with various methods to detect past transitions and predict
resulting timeseries with various methods to detect past transitions and predict

I've taken it my personal crusade to replace the words "time series" with "timeseries" in the NLD literature.

paper/paper.md Outdated
and society. Examples of this are ubiquitous and include the onset of cardiac arrhythmia
[@tse_mechanisms_2016], the deglaciation of Earth about 20,000 years ago [@wolff_changes_2010]
and the recent price collapse of many cryptocurrencies [@ismail_detecting_2020]. The systems
displaying such transitions are therefore usually monitored by measuring state variables
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
displaying such transitions are therefore usually monitored by measuring state variables
displaying such transitions are usually monitored by measuring state variables

paper/paper.md Outdated
work predicting a collapse of the Atlantic Meridional Overturning Circulation between 2025
and 2095 has led to no less than 870 news outlets and 4100 tweets [@ditlevsen_warning_2023],
largely because of the substantial implications of such a collapse for human societies.
However, some published work is not reproducible despite their strong policy implications.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, but the problem is that we are making a definitive statement: "some published work is not reproducible despite ..." . How do we substantiate this in the scientific sense?

We can argue instead: "A common concern in the scientific community is that published work on the topic is difficult to reproduce, despite the impact it implies for humanity." which doesn't assert a definitive statement, but would still be acceptable by pretty much everyone.

paper/paper.md Outdated
largely because of the substantial implications of such a collapse for human societies.
However, some published work is not reproducible despite their strong policy implications.
This can be largely addressed by a unifying software that is accessible, performant,
reproducible, reliable and extensible, and we therefore propose TransitionsInTimeseries.jl.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
reproducible, reliable and extensible, and we therefore propose TransitionsInTimeseries.jl.
reproducible, reliable and extensible. Such a software does not exist yet, but here
we propose TransitionsInTimeseries.jl to fill this gap.

paper/paper.md Outdated
This can be largely addressed by a unifying software that is accessible, performant,
reproducible, reliable and extensible, and we therefore propose TransitionsInTimeseries.jl.
We believe this is a major step towards establishing a software as standard, widely used
by academics working on transitions in time series.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
by academics working on transitions in time series.
by academics working on transitions in timeseries.

paper/paper.md Outdated

## Reliability

In high-impact context mentioned above, errors are to be avoided with particular care.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In high-impact context mentioned above, errors are to be avoided with particular care.
In high-impact context mentioned in the introduction, it is crucial to avoid errors.

paper/paper.md Outdated
Comment on lines 187 to 189
with the structure of taking a vector as input and returning a scalar as output. Finally,
users can modify the fully-open source code, written in native Julia and thus offering a good
legibility compared to other high-performance languages.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
with the structure of taking a vector as input and returning a scalar as output. Finally,
users can modify the fully-open source code, written in native Julia and thus offering a good
legibility compared to other high-performance languages.
with the structure of taking a vector as input and returning a scalar as output.

I don't think that's important to mention, it is obvious and not of high impact. We can save some words here.

relevant metrics. Finally, different ways of testing for significance can be interchangeably
used, therefore expanding the versatility of the software beyond the surrogate analysis.

## Extensibility
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am still unhappy about this section. Even though it is extensive, the most extensive subsection, it still does not discuss the biggest novelty of our software: that entirely new pipelines for estimating changes, or estimating their significance, can be added to the software.

You can save lots of space here by using only two sentences to mention that idicators and change metrics are arbitrary julia functions, which means that they could be defined by the user or imported form any other package.

This extra space can be used to highlight the novelty of new pipelines, like what I contributed in #73 .

paper/paper.md Outdated
Comment on lines 191 to 208
## Integration

TransitionsInTimeseries.jl is designed to be well integrated into the Julia ecosystem.
Functions can be imported from other packages and subsequently passed as indicators or
change metrics. For instance, the skewness implemented above can be loaded from another julia
package instead of being programmed by the user:

```julia
using StatsBase
indicators = (var, ar1_whitenoise, StatsBase.skewness)
```

TransitionsInTimeseries.jl therefore offers an extremely wide and
potentially unlimited library of indicators. Furthermore, TimeseriesSurrogates.jl
[@haaga_timeseriessurrogatesjl_2022] is used to create surrogates of the time series,
thus offering optimized routines with numerous surrogate types. Finally,
`plot_changes_significance` showcased in [Fig. 1](@figure1) relies on Makie.jl, which allows
the user to customize the figures according to their needs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think all of this section is too large and should be significantly decreased in size. Above comment says how to mention impoting functions from other packages. And we definitely do not need a code example for using functions from other packages.

Makie.jl is not an integration. Iti s a dependency. Its not like the user can interface with the plotting code in any meaningful way.

You can mention the surrogate integration though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p.s.: We can add the skewness example to the main tutorial to show defining user defined functions or importing new ones.

paper/paper.md Show resolved Hide resolved
@JanJereczek
Copy link
Contributor Author

Hi @Datseris, thanks a lot for your corrections :) I applied all of them (except for one I that answered to, see above). In particular, I reformulated the versatility section and moved it for a better flow of explanations. I hope you'll like it!

@Datseris Datseris merged commit abde970 into main Feb 19, 2024
3 checks passed
@Datseris Datseris deleted the joss-paper-viz branch February 19, 2024 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants