Skip to content

Commit

Permalink
Merge branch 'main' into uweschmitt-patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
dokempf committed Feb 25, 2025
2 parents 13a30b1 + be4553a commit 20365a6
Show file tree
Hide file tree
Showing 11 changed files with 341 additions and 202 deletions.
10 changes: 7 additions & 3 deletions .github/workflows/paper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,21 @@ jobs:
- name: Install Python requirements
run: pip install -r requirements.txt

- name: Install LaTeX requirements for matplotlib
run: sudo apt install -y texlive-latex-base texlive-latex-extra cm-super-minimal texlive-fonts-extra latexmk texlive-bibtex-extra biber texlive-lang-german

- name: Create contributor snippet
run: python contributors.py

- name: Create group composition plot
run: cd group_composition_plot && ./create_paper_plots.sh && cd -

- uses: xu-cheng/latex-action@v3
with:
root_file: paper.tex
- name: Compile paper
run: latexmk -pdf --file-line-error --halt-on-error --interaction=nonstopmode --recorder paper.tex

- name: move
run: mkdir -p github_artifacts && mv ${{ env.DIR }}/*.pdf ./github_artifacts/

- name: Upload pdf as artifact
uses: actions/upload-artifact@v4
with:
Expand Down
47 changes: 45 additions & 2 deletions bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -1409,6 +1409,27 @@ @Article{Detmer2009
publisher = {Oxford University Press ({OUP})},
}

@Online{DFGCall2016NachhaltigkeitFS,
author = {{German Research Foundation}},
title = {Call: Nachhaltigkeit von Forschungssoftware (pdf)},
url = {https://www.dfg.de/resource/blob/172674/1bcb181a6451fdac9d94421776b52798/161026-dfg-ausschreibung-forschungssoftware-de-data.pdf},
urldate = {2025-02-20},
}

@Online{DFGCall2019Qualitaetssicherung,
author = {{German Research Foundation}},
title = {Call: Qualitätssicherung von Forschungssoftware durch ihre nachhaltige Nutzbarmachung},
url = {https://www.dfg.de/de/aktuelles/neuigkeiten-themen/info-wissenschaft/2019/info-wissenschaft-19-44},
urldate = {2025-02-20},
}

@Online{DFGCall2022ResearchSoftware,
author = {{German Research Foundation}},
title = {Call: Research Software – Quality Assured and Re-usable},
url = {https://www.dfg.de/en/news/news-topics/announcements-proposals/2022/info-wissenschaft-22-85},
urldate = {2025-02-20},
}

@Misc{DFGResearchSoftwareCall2022,
author = {{German Research Foundation}},
title = {Research Software -- Quality Assured and Re-usable},
Expand Down Expand Up @@ -1614,6 +1635,13 @@ @Online{ESDCConsulation2023
publisher = {ESDC Consulation},
}

@online{EuroCCWeb,
author = {National Competence Centres},
title = {{EuroCC}-access},
url = {https://www.eurocc-access.eu/},
urldate = {2025-02-20}
}

@InProceedings{EuroCC2022,
author = {{CASTIEL} and {EuroCC Network}},
title = {Best Practice Guide: How to Find New Attendees for Training Courses},
Expand Down Expand Up @@ -2308,6 +2336,13 @@ @TechReport{Hedinger2022
address = {Zurich, Switzerland},
}

@online{HeidelbergSSC,
author = {University Heidelberg},
title = {Scientific Software Center},
url = {https://www.ssc.uni-heidelberg.de/en},
urldate = {2025-02-20}
}

@Article{Hennah2017,
author = {Hennah, Naomi and Seery, Michael K.},
title = {Using Digital Badges for Developing High School Chemistry Laboratory Skills},
Expand Down Expand Up @@ -2379,7 +2414,7 @@ @online{HIFIS
author = {Helmholtz},
title = {Helmholtz Federated {IT} Services ({HIFIS})},
url = {https://hifis.net},
urldate = {2023-06-16}
urldate = {2025-02-20}
}

@Article{Higashi2020,
Expand Down Expand Up @@ -4823,7 +4858,7 @@ @online{SURESOFTLink
organization = {TU Braunschweig, FAU Erlangen-N{\"u}rnberg},
title = {SureSoft},
url = {https://suresoft.dev/},
urldate = {2023-07-14}
urldate = {2025-02-20}
}

@Online{SusTrainable,
Expand Down Expand Up @@ -5765,3 +5800,11 @@ @Article{goth_foundational_competencies_2024
url = {http://dx.doi.org/10.12688/f1000research.157778.1},
publisher = {F1000 Research Ltd}
}

@online{zedifUniJena,
author = {University Jena},
title = {Competence Center Digital Research ({zedif})},
url = {https://www.zedif.uni-jena.de/en/},
urldate = {2025-02-20}
}

11 changes: 9 additions & 2 deletions contributors.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,17 @@
for author in data["authors"]:
if 'affiliations' in author:
affiliations.extend(author["affiliations"])
data["affiliations"] = {aff: i + 1 for i, aff in enumerate(list(dict.fromkeys(affiliations)))}
# make sure affiliations are not duplicated - here by checking for exact name string
affiliations = list({aff['name']: aff for aff in affiliations}.values())

# create and add unique index and also a reverse lookup table
data["affiliations"] = {i + 1: aff for i, aff in enumerate(affiliations)}
aff_index_by_name = {aff['name']: i for i, aff in data["affiliations"].items()}

# attach index to authors
for author in data["authors"]:
if 'affiliations' in author:
author["affiliations"] = [data["affiliations"][aff] for aff in author["affiliations"]]
author["affiliations"] = [aff_index_by_name[aff['name']] for aff in author["affiliations"]]

env = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.getcwd()),
Expand Down
4 changes: 2 additions & 2 deletions contributors.tex.j2
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
{%- for author in data.authors %}
\author[​{% if author.affiliations %}{{ author.affiliations|join(", ") }}{% endif %}]{{ "{" }}{{ author.author }}{% if author.orcid is defined %}\texorpdfstring{\thinspace\orcidlink{ {{-author.orcid-}} }}{}{% endif %}{{ "}" }}
{%- endfor %}
{%- for affiliation, index in data.affiliations.items() %}
\affil[{{ index }}]{{ "{" }}{{ affiliation }}{{ "}" }}
{%- for index, affiliation in data.affiliations.items() %}
\affil[{{ index }}]{{ "{" }}{{ affiliation.name }}{% if affiliation.ror is defined %}\texorpdfstring{\thinspace\rorlink{ {{-affiliation.ror-}} }} {}{% endif %}{{ "}" }}
{%- endfor %}
45 changes: 30 additions & 15 deletions contributors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,17 @@ authors:
lastName: Ankenbrandt
initials: MJA
affiliations:
- Center for Computational and Theoretical Biology, University of Würzburg, Germany
- name: Center for Computational and Theoretical Biology, University of Würzburg, Germany
ror: https://ror.org/00fbnyb24
orcid: 0000-0002-6620-807X

- author: "Leyla Jael Castro"
firstName: Leyla Jael
lastName: Castro
initials: LC
affiliations:
- Semantic Technologies team, ZB MED Information Centre for Life Sciences, Germany
- name: Semantic Technologies team, ZB MED Information Centre for Life Sciences, Germany
ror: https://ror.org/0259fwx54
orcid: 0000-0003-3986-0510
email: ljgarcia@zbmed.de

Expand All @@ -21,7 +23,8 @@ authors:
lastName: Caspart
initials: RC
affiliations:
- Scientific Computing Center, Karlsruher Institut für Technologie, Germany
- name: Scientific Computing Center, Karlsruhe Institute of Technology, Germany
ror: https://ror.org/04t3en479
orcid: 0000-0002-5502-9412
tier: 1

Expand All @@ -30,7 +33,8 @@ authors:
lastName: Flemisch
initials: BF
affiliations:
- Institute for Modelling Hydraulic and Environmental Systems, University of Stuttgart, Germany
- name: Institute for Modelling Hydraulic and Environmental Systems, University of Stuttgart, Germany
ror: https://ror.org/04vnq7t77
orcid: 0000-0001-8188-620X
email: bernd@iws.uni-stuttgart.de
tier: 1
Expand All @@ -40,7 +44,8 @@ authors:
lastName: Goth
initials: FG
affiliations:
- Institute for Theoretical Physics and Astrophysics, University of Würzburg, Germany
- name: Institute for Theoretical Physics and Astrophysics, University of Würzburg, Germany
ror: https://ror.org/00fbnyb24
orcid: 0000-0003-2707-4790
email: florian.goth@uni-wuerzburg.de
acknowledgements: |
Expand All @@ -54,7 +59,8 @@ authors:
lastName: Grad
initials: JNG
affiliations:
- Institute for Computational Physics, University of Stuttgart, Germany
- name: Institute for Computational Physics, University of Stuttgart, Germany
ror: https://ror.org/04vnq7t77
orcid: 0000-0002-5821-4912
email: jgrad@icp.uni-stuttgart.de
acknowledgements: |
Expand All @@ -73,7 +79,8 @@ authors:
lastName: Hagdorn
initials: MH
affiliations:
- Geschäftsbereich IT, Charité Universitätsmedizin Berlin, Germany
- name: Geschäftsbereich IT, Charité Universitätsmedizin Berlin, Germany
ror: https://ror.org/001w7jn25
orcid: 0000-0002-5076-4864
email: magnus.hagdorn@charite.de

Expand All @@ -82,7 +89,8 @@ authors:
lastName: Kempf
initials: DK
affiliations:
- Heidelberg University, Scientific Software Center, Germany
- name: Scientific Software Center, Heidelberg University, Germany
ror: https://ror.org/038t36y30
orcid: 0000-0002-6140-2332
email: dominic.kempf@iwr.uni-heidelberg.de
acknowledgements: |
Expand All @@ -95,7 +103,8 @@ authors:
lastName: Linxweiler
initials: JL
affiliations:
- Technische Universität Braunschweig, Germany
- name: University Library, Technische Universität Braunschweig, Germany
ror: https://ror.org/010nsgg66
orcid: 0000-0002-2755-5087
email: j.linxweiler@tu-braunschweig.de
tier: 1
Expand All @@ -105,7 +114,8 @@ authors:
lastName: Loewe
initials: AL
affiliations:
- Karlsruhre Institute of Technology (KIT)
- name: Institute of Biomedical Engineering, Karlsruhe Institute of Technology, Germany
ror: https://ror.org/04t3en479
orcid: 0000-0002-2487-4744
email: axel.loewe@kit.edu

Expand All @@ -114,7 +124,8 @@ authors:
lastName: Löffler
initials: FL
affiliations:
- Competence Center Digital Research, Friedrich Schiller University Jena, Germany
- name: Competence Center Digital Research, Friedrich Schiller University Jena, Germany
ror: https://ror.org/05qpz1x62
orcid: 0000-0001-6643-6323
email: frank.loeffler@uni-jena.de
tier: 1
Expand All @@ -124,7 +135,8 @@ authors:
lastName: Schäfer
initials: PMS
affiliations:
- Competence Center Digital Research, Friedrich Schiller University Jena, Germany
- name: Competence Center Digital Research, Friedrich Schiller University Jena, Germany
ror: https://ror.org/05qpz1x62
orcid: 0000-0003-3931-6670
email: philipp.matthias.schaefer@uni-jena.de
tier: 1
Expand All @@ -144,7 +156,8 @@ authors:
lastName: Sommer
initials: PS
affiliations:
- Institute of Carbon Cycles, Helmholtz Coastal Data Center, Helmholtz-Zentrum Hereon, Germany
- name: Institute of Carbon Cycles, Helmholtz Coastal Data Center, Helmholtz-Zentrum Hereon, Germany
ror: https://ror.org/03qjp1d79
orcid: 0000-0001-6171-7716
email: philipp.sommer@hereon.de

Expand All @@ -153,7 +166,8 @@ authors:
lastName: Speck
initials: RS
affiliations:
- Jülich Supercomputing Centre, Forschungszentrum Jülich GmbH, Germany
- name: Jülich Supercomputing Centre, Forschungszentrum Jülich GmbH, Germany
ror: https://ror.org/02nv7yv05
orcid: 0000-0002-3879-1210
email: r.speck@fz-juelich.de
tier: 1
Expand All @@ -163,7 +177,8 @@ authors:
lastName: Struck
initials: AS
affiliations:
- Cluster of Excellence Matters of Activity. Image Space Material at Humboldt-Universitaet zu Berlin
- name: Cluster of Excellence Matters of Activity. Image Space Material at Humboldt-Universität zu Berlin, Germany
ror: https://ror.org/01hcx6992
orcid: 0000-0002-1173-9228
email: alexander.struck@hu-berlin.de
acknowledgements: |
Expand Down
1 change: 1 addition & 0 deletions group_composition_plot/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
**/*.pdf
group_composition_plot_the_fantastic_four.labels
/submissions.volume
5 changes: 3 additions & 2 deletions group_composition_plot/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ all: group_composition_plot_the_fantastic_four.pdf \
group_composition_plot_the_fantastic_four.pdf: submissions/2023-12-06/Friedrich_Schiller_University_Jena_2023-12-06_10-43-44.json \
submissions/2023-12-06/Scientific_Software_Center_2023-12-21_13-13-27.json \
submissions/2023-12-06/University_of_Reading_2023-12-11_10-18-14.json \
submissions/2023-12-06/Princeton_University_2023-11-29_18-33-21.json
./group_composition_plot.py --legend --outfile $@ $^
submissions/2023-12-06/Princeton_University_2023-11-29_18-33-21.json \
group_composition_plot.py
./group_composition_plot.py --legend --outfile $@ $(filter %.json,$^)

group_composition_plot_all.pdf: $(GOOD)
./group_composition_plot.py --legend --outfile $@ $^
Expand Down
36 changes: 30 additions & 6 deletions group_composition_plot/group_composition_plot.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
#!/usr/bin/env python3
import sys, argparse
import matplotlib
rc_params = {'text.usetex': True,
'svg.fonttype': 'none',
'text.latex.preamble': r'\usepackage{libertine}',
'font.size': 14,
'font.family': 'Linux Libertine',
'mathtext.fontset': 'custom',
'mathtext.rm': 'libertine',
'mathtext.it': 'libertine:italic',
'mathtext.bf': 'libertine:bold'
}
matplotlib.rcParams.update(rc_params)
import matplotlib.pyplot as plt
import json
from pprint import pprint


def errorexit(msg='internal error', code=1):
print(msg, file=sys.stderr)
sys.exit(code)
Expand Down Expand Up @@ -42,25 +55,36 @@ def errorexit(msg='internal error', code=1):
activity_to_color = {activity: colors[i] for i, activity in enumerate(activity_names)}

# Creating the joint plot
scaling = .9
scaling = 6
iymax = (len(data)+1)//2
fig = plt.figure(figsize=(scaling*16, scaling*9/2*iymax))
fig = plt.figure(figsize=(scaling, scaling/2*iymax))

i = 1
inst_names = {}
for inst, idata in data.items():
ax = fig.add_subplot(iymax, min(2, len(data)), i)
ax.pie(idata['activity_weights'], colors=colors, startangle=140, shadow=True, radius=.8)
ax.pie(idata['activity_weights'], colors=colors, startangle=90, shadow=True, radius=1)
inst_name = idata['institution_name']
if 'group_name' in idata:
inst_name = idata['group_name'] + "\n" + inst_name
inst_name = idata['group_name'] + ", " + inst_name
if not args['hide_titles']:
ax.set_title(inst_name, fontsize=20, y=-0.05)
ax.set_title(chr(ord('a')-1+i), y=-0.05)
inst_names[chr(ord('a')-1+i)] = inst_name
i += 1

# Shared legend
if args['legend']:
fig.legend(activity_names, title="Activities", loc="center right", bbox_to_anchor=(1.2, 0.5), fontsize=20)
legend = fig.legend(activity_names, title="Activities",
loc="upper right", bbox_to_anchor=(1.4, .7), frameon=False)
#nothing = matplotlib.patches.Rectangle((0,0), 1, 1, fill=False, edgecolor='none', visible=False)
#legend_inst = plt.legend([nothing]*len(inst_names),
# [i+": "+inst_name for i, inst_name in inst_names.items()],
# loc="upper left", bbox_to_anchor=(-1.2, 0.0), frameon=False)
#plt.gca().add_artist(legend_inst)
with open(args['outfile'].replace('.pdf', '.labels'), 'w') as f:
f.write(', '.join([i+": "+inst_name for i, inst_name in inst_names.items()]))

plt.tight_layout()
fig.subplots_adjust(bottom=0)
fig.savefig(args['outfile'], bbox_inches='tight')
# plt.show()
Loading

0 comments on commit 20365a6

Please sign in to comment.