Skip to content

Commit 4072021

Browse files
committed
draft
1 parent 45aba5e commit 4072021

File tree

9 files changed

+529
-0
lines changed

9 files changed

+529
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,6 @@ codegen/
7272

7373
# Octave session info
7474
octave-workspace
75+
76+
# RStudio project files
77+
.Rproj.user

docs/paper/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.html
2+
*.pdf
3+
*.docx

docs/paper/checklist.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
## General checks
2+
3+
Repository:
4+
5+
Is the source code for this software available at the https://github.com/JamesPHoughton/pysd/?
6+
7+
License:
8+
9+
Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
10+
11+
Contribution and authorship:
12+
13+
Has the submitting author (@rogersamso) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
14+
15+
Substantial scholarly effort:
16+
17+
Does this submission meet the scope eligibility described in the JOSS guidelines
18+
19+
## Functionality
20+
21+
Installation:
22+
23+
Does installation proceed as outlined in the documentation?
24+
25+
Functionality:
26+
27+
Have the functional claims of the software been confirmed?
28+
29+
Performance:
30+
31+
If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)
32+
33+
## Documentation
34+
35+
A statement of need:
36+
37+
Do the authors clearly state what problems the software is designed to solve and who the target audience is?
38+
39+
Installation instructions:
40+
41+
Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
42+
43+
Example usage:
44+
45+
Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
46+
47+
Functionality documentation:
48+
49+
Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
50+
51+
Automated tests:
52+
53+
Are there automated tests or manual steps described so that the functionality of the software can be verified?
54+
55+
Community guidelines:
56+
57+
Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support
58+
59+
## Software paper
60+
61+
Summary:
62+
63+
Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
64+
65+
A statement of need:
66+
67+
Does the paper have a section titled 'Statement of Need' that clearly states what problems the software is designed to solve and who the target audience is?
68+
69+
State of the field:
70+
71+
Do the authors describe how this software compares to other commonly-used packages?
72+
73+
Quality of writing:
74+
75+
Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
76+
77+
References:
78+
79+
Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

docs/paper/metadata.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# yml front matter for paper from citaton.cff file
2+
3+
import ruamel.yaml
4+
from pathlib import Path
5+
from rich import print
6+
7+
from datetime import datetime
8+
9+
yaml = ruamel.yaml.YAML()
10+
yaml.indent(mapping=2, sequence=4, offset=2)
11+
12+
CITATION_CFF = Path(__file__).parent.parent.parent.joinpath("CITATION.cff")
13+
14+
first_author = "Gau"
15+
sort_authors_alphabetically = True
16+
17+
18+
def return_author_order(author_list, first_author):
19+
"""Return the order of authors in the paper."""
20+
author_order = [x["family-names"].strip() for x in author_list]
21+
if sort_authors_alphabetically:
22+
author_order = sorted(author_order)
23+
author_order.pop(author_order.index(first_author))
24+
author_order.insert(0, first_author)
25+
print(author_order)
26+
return author_order
27+
28+
29+
def main():
30+
with open(CITATION_CFF, encoding="utf8") as f:
31+
citation = yaml.load(f)
32+
33+
author_order = return_author_order(citation["authors"], first_author)
34+
author_names = [x["family-names"].strip() for x in citation["authors"]]
35+
36+
author_list = []
37+
affiliation_list = []
38+
39+
for this_author_name in author_order:
40+
41+
author = citation["authors"][author_names.index(this_author_name)]
42+
43+
this_author = {
44+
"name": f"{author['given-names']} {author.get('family-names', '')}".strip()
45+
}
46+
47+
if author.get("orcid", None) is not None:
48+
this_author["orcid"] = author.get("orcid").replace("https://orcid.org/", "")
49+
50+
if author.get("affiliation") is not None:
51+
52+
this_affiliation = author.get("affiliation")
53+
affiliation_list_names = [x["name"] for x in affiliation_list]
54+
55+
if this_affiliation not in affiliation_list_names:
56+
affiliation_list.append(
57+
{"name": this_affiliation, "index": len(affiliation_list) + 1}
58+
)
59+
60+
affiliation_list_names = [x["name"] for x in affiliation_list]
61+
this_author["affiliation"] = (
62+
affiliation_list_names.index(this_affiliation) + 1
63+
)
64+
65+
author_list.append(this_author)
66+
67+
content = {
68+
"title": "",
69+
"tags": citation["keywords"],
70+
"authors": author_list,
71+
"affiliations": affiliation_list,
72+
"date": datetime.now().strftime("%Y-%m-%d"),
73+
"bibliography": "paper.bib",
74+
}
75+
76+
with open("metadata.yml", "w", encoding="utf8") as output_file:
77+
return yaml.dump(content, output_file)
78+
79+
80+
if __name__ == "__main__":
81+
main()

docs/paper/metadata.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
title: ''
2+
tags:
3+
- MATLAB
4+
- Octave
5+
- brain imaging data structure
6+
- MRI
7+
- MEG
8+
- EEG
9+
- iEEG
10+
- PET
11+
- microscopy
12+
13+
authors:
14+
- name: Rémi Gau
15+
orcid: 0000-0002-1535-9767
16+
affiliation: 1
17+
- name: Marco Barilari
18+
orcid: 0000-0002-3313-3120
19+
affiliation: 1
20+
- name: Ceren Battal
21+
orcid: 0000-0002-9844-7630
22+
affiliation: 1
23+
- name: Nikita Beliy
24+
- name: Rotem Botvinik-Nezer
25+
- name: Jeanne Caron-Guyon
26+
orcid: 0000-0001-8681-5267
27+
affiliation: 1
28+
- name: Phillips Chrisophe
29+
orcid: 0000-0002-4990-425X
30+
- name: Tanguy Duval
31+
orcid: 0000-0002-1228-5192
32+
- name: Guillaume Flandin
33+
orcid: 0000-0003-0077-7859
34+
- name: Andrew Janke
35+
- name: Michèle MacLean
36+
orcid: 0000-0002-0174-9326
37+
affiliation: 2
38+
- name: Christopher Madan
39+
orcid: 0000-0003-3228-6501
40+
- name: Henk Mutsaerts
41+
orcid: 0000-0003-0894-0307
42+
- name: Guiomar Niso
43+
orcid: 0000-0001-5872-8924
44+
- name: Martin Norgaard
45+
orcid: 0000-0003-2131-5688
46+
- name: Robert Oostenveld
47+
orcid: 0000-0002-1974-1293
48+
- name: Cyril Pernet
49+
orcid: 0000-0003-4010-4632
50+
- name: Iqra Shahzad
51+
orcid: 0000-0002-8724-7668
52+
affiliation: 1
53+
- name: Michał Szczepanik
54+
orcid: 0000-0002-4028-2087
55+
affiliations:
56+
- name: Université catholique de Louvain
57+
index: 1
58+
- name: Université de Montréal
59+
index: 2
60+
date: '2022-10-21'
61+
bibliography: paper.bib

0 commit comments

Comments
 (0)