Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
597 commits
Select commit Hold shift + click to select a range
1dba7c4
output gene values, but linking issue
TheoPannetier Apr 16, 2024
358cbd7
enable output of gene values
TheoPannetier Apr 17, 2024
854e4ab
fix genetic output filestream
TheoPannetier Apr 17, 2024
7a366c3
output gene values uses neutral genetics sampling feature
TheoPannetier Apr 17, 2024
c40aa22
add push instructions
TheoPannetier Apr 17, 2024
cc3b95e
Merge pull request #26 from RangeShifter/TheoPannetier-patch-1
TheoPannetier Apr 17, 2024
43c3046
fix merge conflict with develop
TheoPannetier Apr 17, 2024
d5c8623
post merge fixes to README and RSrandom
TheoPannetier Apr 17, 2024
ef7cf7e
refactor adaptive trait and fitness into genetic load and p survival
TheoPannetier Apr 18, 2024
6c08cbf
fix merge conflict with RScore
TheoPannetier Apr 22, 2024
42e241a
allele dominance is calculated on a locus basis
TheoPannetier Apr 22, 2024
a29fcb1
debug assert to try to catch a rare overflow
TheoPannetier Apr 22, 2024
3d468b3
fix heterozygosity calls in haploid cases
TheoPannetier Apr 23, 2024
b94b5e7
can catch exceptions
TheoPannetier Apr 23, 2024
ca57ce8
Merge pull request #25 from RangeShifter/develop
TheoPannetier Apr 23, 2024
3d7bc69
progress with genetics doc
TheoPannetier Apr 23, 2024
8adce17
doc genetic traits
TheoPannetier Apr 25, 2024
9b73522
progress with doc of neutral stats
TheoPannetier Apr 26, 2024
96e0496
doc neutral stats
TheoPannetier Apr 26, 2024
6a2547f
removing some commented out lines
TheoPannetier Apr 29, 2024
0abb3aa
keep trait values valid + ensure parameters correct
TheoPannetier Apr 30, 2024
ecdadb8
fix invalid input parameter values
TheoPannetier May 1, 2024
e4fd089
forbid GenomeSize = 0; clarify recombination
TheoPannetier May 1, 2024
4a32b13
fix merge conf.
TheoPannetier May 7, 2024
6fd3c1e
rename GeneticFitness into GeneticLoad
TheoPannetier May 8, 2024
a4ab791
switch sampledInds to vector - sets really don't like to be empty
TheoPannetier May 8, 2024
31a3d8d
bug fix; prevent the matrix from being sampled
TheoPannetier May 10, 2024
591ad94
adding option to randomly sample once per sim or once per gen
TheoPannetier May 10, 2024
76fb158
Merge branch 'new_genetics' into new_genetics_tmp
TheoPannetier May 10, 2024
5c47e6a
allow negative genetic loads
TheoPannetier May 10, 2024
5ff12d1
Manually copying changes for translocation to RScore as git subtree p…
JetteReeg May 13, 2024
16e2078
manually updating RScore
JetteReeg May 13, 2024
62ae3e1
replace poisson with binomial
TheoPannetier May 14, 2024
42156c5
bound QTL phenotypes
TheoPannetier May 14, 2024
a4157d2
enable scaled dominance distribution
TheoPannetier May 17, 2024
30647cd
Merge branch 'develop' into new_genetics
TheoPannetier May 17, 2024
c6e2255
cleanup unused GUI functions
TheoPannetier May 22, 2024
dc6e9a5
remove unused MemoLine
TheoPannetier May 22, 2024
7aefe7a
fix merge conflict
TheoPannetier May 22, 2024
6774742
fix merge conflict
TheoPannetier May 22, 2024
54758db
rename QTL into dispersal trait
TheoPannetier May 22, 2024
f2c39da
rename SNP into Neutral trait
TheoPannetier May 22, 2024
7fadd23
rename TTrait into QuantitativeTrait
TheoPannetier May 22, 2024
cda91a8
add forgotten sex-indpdt cases
TheoPannetier May 27, 2024
9e81c82
refactor to lift ambiguities over which trait set/get are called
TheoPannetier May 27, 2024
52821d3
make global variables explicit
TheoPannetier May 27, 2024
a208924
make global variables explicit
TheoPannetier May 27, 2024
051fc0e
Merge branch 'new_genetics' of https://github.com/RangeShifter/RangeS…
TheoPannetier May 27, 2024
fa7856c
clean-up unused functions
TheoPannetier May 27, 2024
d5cf1b2
fix merge conflict
TheoPannetier May 27, 2024
eef2e6d
trigger GHA build
TheoPannetier May 30, 2024
6701e19
attempt to pass CRW test, step len 1 is not enough
TheoPannetier May 30, 2024
96c6f81
fix merge conflict
TheoPannetier May 30, 2024
ebb1546
cleanup
TheoPannetier May 30, 2024
17e94e3
fix merge conflict with develop
TheoPannetier May 30, 2024
b221d8f
merge new_genetics and unit_tests, fix merge conflict
TheoPannetier May 30, 2024
c934a7d
merge progress
TheoPannetier May 31, 2024
6f7bd05
inverted fis and fit; refactor some neutral stats
TheoPannetier Jun 8, 2024
d6eb56c
fix bug with inverted sexes
TheoPannetier Jun 11, 2024
1f20305
resolve kernel tests merge
TheoPannetier Jun 11, 2024
12a87de
fix CRW test merge + cleanup
TheoPannetier Jun 11, 2024
08db4d1
trigger build, try to id source of floating point exception in tests
TheoPannetier Jun 11, 2024
a6b2faf
just making sure it's bc of tests
TheoPannetier Jun 11, 2024
971b484
disable tests for debugging
TheoPannetier Jun 11, 2024
1e403db
issue is with pop or landscape test
TheoPannetier Jun 11, 2024
a6e9275
can't be the 4 lines in test_landscape can it
TheoPannetier Jun 11, 2024
ee46e5f
can't be the 4 lines in test_landscape can it
TheoPannetier Jun 11, 2024
aa899b2
ok
TheoPannetier Jun 11, 2024
6074a48
think I got it
TheoPannetier Jun 11, 2024
e69662e
debug test macOS
TheoPannetier Jun 11, 2024
9db4142
need to see patch ids
TheoPannetier Jun 11, 2024
ea3ecad
funky stuff uh
TheoPannetier Jun 11, 2024
bb1e750
show me
TheoPannetier Jun 12, 2024
7b74340
show me more
TheoPannetier Jun 12, 2024
d8530a1
wcgw if I don't initialise my custom structs
TheoPannetier Jun 12, 2024
2498468
default land params
TheoPannetier Jun 12, 2024
d431346
tidy up
TheoPannetier Jun 13, 2024
69a8972
don't think we need to pass full species just for level of ploidy
TheoPannetier Jun 13, 2024
bbf3435
test recombination progress
TheoPannetier Jun 13, 2024
03c4799
testing traits is a logistical nightmare
TheoPannetier Jun 14, 2024
1f0283e
fix bug looking for breakpoint at end iterator, fix test recombinatio…
TheoPannetier Jun 14, 2024
99b3ae0
pass recombination test; fix #27
TheoPannetier Jun 15, 2024
27d3111
clean up recombination test
TheoPannetier Jun 15, 2024
bfffc12
randomise test recombination site
TheoPannetier Jun 15, 2024
a3b90b4
streamlined creation of test objects
TheoPannetier Jun 17, 2024
125e490
test simple inheritance, fix issue #37
TheoPannetier Jun 17, 2024
7a955f3
deal with no recombination inside inherit function
TheoPannetier Jun 17, 2024
ee326ad
template for setting genes of individuals for testing, progress #30
TheoPannetier Jun 18, 2024
743cb1f
finally figured out to set up individual with genes for testing
TheoPannetier Jun 19, 2024
9d9508a
progress test #30
TheoPannetier Jun 19, 2024
74a6ab7
genetic linkage works, fix test #30
TheoPannetier Jun 19, 2024
8c08107
adding (non) interaction with chromosome breaks
TheoPannetier Jun 20, 2024
184baa2
progress on #46
TheoPannetier Jun 20, 2024
4cb66f2
progress on #46, created a population of 2 with same alleles
TheoPannetier Jun 21, 2024
09e986c
fix test #47, heterosigozity is zero in haploid systems
TheoPannetier Jun 21, 2024
387b745
write test for #47, that was easy
TheoPannetier Jun 21, 2024
7ea78c0
fix #47, sampling did not happen and test was insufficient
TheoPannetier Jun 21, 2024
060d1f5
set up two patches landscape, progress on #44
TheoPannetier Jun 21, 2024
f286c0f
updated package version information
JetteReeg Jun 25, 2024
d5529b8
Bugfix: handing over complex stage structure transition matrix had a …
JetteReeg Jul 3, 2024
d5cbfa9
Merge remote-tracking branch 'origin/develop'
JetteReeg Jul 3, 2024
6b10483
Manually updating files (removing comments and unnecessary outputs) d…
JetteReeg Jul 3, 2024
b62b958
Merge branch 'translocation' into transloc_new_genetics_merge
JetteReeg Jul 3, 2024
e340dd7
progress debugging #44
TheoPannetier Jul 3, 2024
89eaf9d
progress on test for #35
TheoPannetier Jul 3, 2024
39d4a21
Recommit bugfix #13
JetteReeg Jul 4, 2024
5651675
related to recommited bugfix #13
JetteReeg Jul 4, 2024
0001bf3
Merge commit '56516758d795248c3b2c16f8cd0561132933e923'
JetteReeg Jul 4, 2024
25030af
fix test #35, sex-dept traits function
TheoPannetier Jul 4, 2024
a2f3b02
Updated version to 1.1.1
JetteReeg Jul 5, 2024
bc82ac9
use the correct ind var trait, fix #36
TheoPannetier Jul 8, 2024
65d5ac4
make viability check inside individual for easier tests
TheoPannetier Jul 9, 2024
c70733d
enable shorthand test genotype for gneetic fitness traits
TheoPannetier Jul 9, 2024
146cade
fix test #39
TheoPannetier Jul 9, 2024
717a314
fix error in #39, add test for #40; genetic fitness determines viabil…
TheoPannetier Jul 9, 2024
37afae5
check allele dominance works, fix #48
TheoPannetier Jul 9, 2024
0c5c1ae
confusion over fis vs fit
TheoPannetier Jul 11, 2024
a2ebaca
test for #28, non-inherited trait are reinitialised instead
TheoPannetier Jul 11, 2024
31d9e1c
more robust test for #28
TheoPannetier Jul 11, 2024
2005237
genetic fitness mutations are indeed constrained below 1 fix half #31
TheoPannetier Jul 11, 2024
f91fca7
fix to_string function for enum types
TheoPannetier Jul 12, 2024
cead5dc
fix #31; genetic fitness mutations always > -1
TheoPannetier Jul 12, 2024
c6f5e29
test for #33 complete
TheoPannetier Jul 15, 2024
1365525
Merge branch 'main' into transloc_new_genetics_merge
JetteReeg Jul 16, 2024
c11b3c1
try to fix check error (Rcpp.h should only be included for the R-pkg)
JetteReeg Jul 16, 2024
4a05004
flagged rcpp output as RS_RCPP
JetteReeg Jul 16, 2024
2745571
added Management.cpp to CMakeLists.txt
JetteReeg Jul 16, 2024
3fd9def
shifted Manamgent.cpp to before Model.cpp in CMakeLists.txt
JetteReeg Jul 16, 2024
0343164
adapted Main.cpp
JetteReeg Jul 16, 2024
2f791f0
fixed bug - missing sex and density-dependence in expression of settl…
TheoPannetier Jul 16, 2024
3f5f47b
test for #34, phew that was big one
TheoPannetier Jul 16, 2024
f6c2a5b
updated Cell.cpp
JetteReeg Jul 17, 2024
c08db1f
Merge remote-tracking branch 'remotes/origin/new_genetics' into trans…
JetteReeg Jul 31, 2024
7bc206b
annotation
TheoPannetier Jul 31, 2024
74387c2
small bugfix for users who still use raster package:
JetteReeg Aug 1, 2024
c24292f
uncomment multiple declaration of sampledInd vector
JetteReeg Aug 1, 2024
0738d89
removed GUI related code
JetteReeg Aug 1, 2024
3261ed0
rm debuglog clutter
TheoPannetier Aug 5, 2024
7389fd7
Bugfix for issue #66
JetteReeg Aug 6, 2024
d88eb10
gcc doesn't like NULL
TheoPannetier Aug 6, 2024
463a640
Bugfix in setGeneticSim()
JetteReeg Aug 6, 2024
6ab3ae5
fix issue with neutral stats assuming less neutral alleles than actua…
TheoPannetier Aug 6, 2024
ad73797
clarify use of the max uniform parameter
TheoPannetier Aug 8, 2024
3c060fa
clarify meaning of allelic diversity metrics
TheoPannetier Aug 8, 2024
e3c95fb
fix merge conflict in NeutralStatsManager
TheoPannetier Aug 16, 2024
8e4da51
fix variable name mismatch
TheoPannetier Aug 16, 2024
f26e0ec
Merge pull request #67 from RangeShifter/unit_test
TheoPannetier Aug 16, 2024
1a740e2
fix merge conflict with rscore
TheoPannetier Aug 16, 2024
4ba52c5
fix iteration bug
TheoPannetier Aug 16, 2024
3cc291e
readGenetics, readTraitsFile now reads the correct nb of lines for ea…
TheoPannetier Aug 17, 2024
23cda73
output dominance coefficients, solve #60
TheoPannetier Aug 20, 2024
da35269
enable selecting which traits are output, solve #53
TheoPannetier Aug 20, 2024
2c20025
better placement for closing macro
TheoPannetier Aug 26, 2024
3c4fa34
default switch case to avoid gcc warning
TheoPannetier Aug 26, 2024
13f1878
fix bug with reading carriage returns as part of TraitsFIle
TheoPannetier Aug 26, 2024
e9a4327
progress on #44
TheoPannetier Aug 26, 2024
5d5da87
fix incorrect initiation of rows and columns in PatchMatrix
TheoPannetier Aug 27, 2024
ae5ae91
Fst for monomorphic pops is correct, fix #44
TheoPannetier Aug 27, 2024
1490006
fst is zero when it cannot be computed, fix #46
TheoPannetier Aug 27, 2024
c98221b
fix incorrect sample size
TheoPannetier Aug 27, 2024
2b6263a
calculation fits weir and cockerham expectation, fix #41
TheoPannetier Aug 27, 2024
0d6a0dc
solution for test var within vs between, fix #68 #69
TheoPannetier Aug 27, 2024
54c2330
test all heterozygotes case, fix #71 #68
TheoPannetier Aug 27, 2024
e9dbab2
assert correct nb of individuals is sampled, fix #53
TheoPannetier Aug 27, 2024
7ee8cfa
unlucky draw
TheoPannetier Aug 28, 2024
b147de3
fix bugged haploid GeneticFitness trait
TheoPannetier Aug 28, 2024
cc68505
Offspring survival scales with mutation rate, fix #54
TheoPannetier Aug 28, 2024
95d4763
number of emigrants scale with emig_0 mutation rate, fix #55
TheoPannetier Aug 28, 2024
edc34af
move testPopulation to its own file
TheoPannetier Aug 28, 2024
c497680
traitsFile is indicated in ControlFile instead of GeneticsFile
TheoPannetier Aug 29, 2024
b394cd1
a large populations confroms to hardy-weinberg expectations, fix #57
TheoPannetier Aug 30, 2024
3409068
haploid fst matches equivalent diploid fst, fix #75
TheoPannetier Sep 2, 2024
43da58f
weir and cockerham, weir & hill converge, fix #73
TheoPannetier Sep 2, 2024
6eb36c0
Weir & Cockerham > Weir&Hill if heterozygotes present
TheoPannetier Sep 2, 2024
739beeb
population-specific estimates average to weri & hill, fix #76
TheoPannetier Sep 2, 2024
f76c10e
nb of offspring dying matches HW expectations, fix #56
TheoPannetier Sep 2, 2024
b306fb1
higher tolerance
TheoPannetier Sep 2, 2024
04484af
merge rscore tests
TheoPannetier Sep 2, 2024
1cfb768
reorganise neutral genetics output
TheoPannetier Sep 2, 2024
62a7d5c
rm unused function
TheoPannetier Sep 2, 2024
e6c977f
doc update
TheoPannetier Sep 3, 2024
9fabc91
per locus fst are computed separately, fix #72
TheoPannetier Sep 3, 2024
b29bee6
Merge remote-tracking branch 'origin/new_genetics' into transloc_new_…
JetteReeg Sep 4, 2024
1317d2f
bugfix for github check renamed trfrRules to transferRules
JetteReeg Sep 4, 2024
4ec1690
added unit_tests in CMakeLists.txt
JetteReeg Sep 4, 2024
52cf90b
bring last changes from RScore to batch
TheoPannetier Sep 4, 2024
3dcd269
fix list reading
TheoPannetier Sep 4, 2024
1710790
fix patch headers for perLocusNeutralGenetics
TheoPannetier Sep 4, 2024
f431f71
fix output for only weir&hill case
TheoPannetier Sep 5, 2024
505a3ad
scrap empty initialise
TheoPannetier Sep 5, 2024
5627cd3
fix issue if init max is larger than mutation max
TheoPannetier Sep 5, 2024
3e9ee12
dodge infinite loop is mutation max is zero
TheoPannetier Sep 5, 2024
adf77af
add a bit more info if total extinction happens
TheoPannetier Sep 5, 2024
bdab3ff
why force setting move process to true??
TheoPannetier Sep 6, 2024
9035771
only set goal bias if enabled
TheoPannetier Sep 6, 2024
6312d4a
unnecessary arrays
TheoPannetier Sep 10, 2024
fe428f1
trying out smart pointers
TheoPannetier Sep 10, 2024
807eff0
replace RSDEBUG with standard NDEBUG
TheoPannetier Sep 10, 2024
05e8a42
fix missed renaming in release mode
TheoPannetier Sep 10, 2024
390765d
rm last mentions of RSDEBUG
TheoPannetier Sep 10, 2024
d7306c0
don't output gene values if genetics disabled
TheoPannetier Sep 11, 2024
5b60607
are these macro conditions necessary?
TheoPannetier Sep 11, 2024
6305931
drop RSWIN64, except inside RCPP
TheoPannetier Sep 11, 2024
209ad5e
wrong default value
TheoPannetier Sep 12, 2024
3e2e6e2
Merge pull request #72 from RangeShifter/release
TheoPannetier Sep 18, 2024
84fa7c6
fix possible division by zero
TheoPannetier Sep 19, 2024
64177e2
fix misleading variable names
TheoPannetier Sep 23, 2024
e50907c
output the right number of sexes for genetic load
TheoPannetier Sep 23, 2024
0742a3b
why
TheoPannetier Sep 25, 2024
f72765a
if default repro is asexual then propmales should be zero
TheoPannetier Sep 25, 2024
affc4da
merge batch and R versions of RSrandom
TheoPannetier Sep 26, 2024
849c78f
seed goes in parameter output
TheoPannetier Sep 26, 2024
71ca3a6
cleaning up
TheoPannetier Sep 26, 2024
f41a521
Merge branch 'new_genetics' into multispecies
TheoPannetier Sep 26, 2024
17f9281
by DEBUGLOG
TheoPannetier Sep 26, 2024
bc7ab3b
pass some params as species args (w defaults) to de-clutter main
TheoPannetier Sep 26, 2024
cd4d91f
rm empty filestreams
TheoPannetier Sep 27, 2024
bd59315
more concise main
TheoPannetier Sep 27, 2024
dce4836
check dir hidden from main
TheoPannetier Sep 27, 2024
f1f6d98
set batchnum out of main
TheoPannetier Sep 27, 2024
97f09b2
clean readParameters
TheoPannetier Sep 27, 2024
df1233e
default arg to let rscore run
TheoPannetier Sep 29, 2024
5da938b
only clear if closing file
TheoPannetier Oct 3, 2024
43727fb
resolve merge conflict
TheoPannetier Oct 3, 2024
cfd8f86
Updated variable names, which changed in new_genetics but haven't bee…
JetteReeg Oct 8, 2024
902f089
drop useless allele ID to save memory
TheoPannetier Oct 8, 2024
73a674b
allow negative values for settlement and emigration alphas
TheoPannetier Oct 18, 2024
03681a8
small cleanup
TheoPannetier Oct 18, 2024
0c450bc
expression should be half both allele if all dom coeffs are 0
TheoPannetier Oct 23, 2024
3c63422
Merge remote-tracking branch 'origin/new_genetics' into transloc_new_…
JetteReeg Oct 24, 2024
70ec1f6
fixed compiling bug in Management.h
JetteReeg Oct 24, 2024
7509111
fixed bug due to merging in Model.cpp
JetteReeg Oct 24, 2024
3b81ba1
fix scaled sd parameter not being passed from parent to offspring
TheoPannetier Oct 24, 2024
02adc82
bit of cleaning of survival
TheoPannetier Nov 4, 2024
e31c278
Merge remote-tracking branch 'origin/new_genetics' into transloc_new_…
JetteReeg Nov 14, 2024
e5a314b
For now only commented out code for file reads that are not necessary…
JetteReeg Nov 14, 2024
6d08f65
changed gNameCostfile to name_costfile
JetteReeg Nov 15, 2024
3e50c77
switching subtree branch to transloc_new_genetics_spatial_demog
JetteReeg Nov 19, 2024
12739e5
Add 'RangeShiftR/src/RScore/' from commit '6d08f6599a3a64fec8ceba50e9…
JetteReeg Nov 19, 2024
73ffec9
switched within the wrong branch - redo everything
JetteReeg Nov 19, 2024
d70f930
Add 'RangeShiftR/src/RScore/' from commit '56516758d795248c3b2c16f8cd…
JetteReeg Nov 19, 2024
68bf5b6
Bugfix in SMS:
JetteReeg Mar 5, 2025
6e86061
removed comment
JetteReeg Mar 19, 2025
5cb14cf
removed comment
JetteReeg Mar 19, 2025
97a5f06
removed repeated line
JetteReeg Mar 19, 2025
27ba723
Merge commit '5cb14cfbc36db691dde9804715324d338d8da597'
JetteReeg Mar 19, 2025
58267ce
Merge branch 'main' of https://github.com/RangeShifter/RangeShiftR-pkg
JetteReeg Mar 19, 2025
1c90cad
Bugfix in ReadSettlementR():
JetteReeg Sep 25, 2025
fc21abb
Merge branch 'main' of https://github.com/RangeShifter/RangeShiftR-pkg
JetteReeg Sep 25, 2025
cb8114d
update version
JetteReeg Sep 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for RangeShifter
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/improve-existing-content.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Improve existing content
about: 'Make a suggestion to improve the R package '
title: ''
labels: ''
assignees: ''

---


93 changes: 93 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# The RangeShifter platform - An eco-evolutionary modelling framework

## How to contribute

Thank you for your interest in contributing to the RangeShifter platform.
In this document we will give you guidance on how to contribute to the RangeShifter project regarding issues, bug fixing and adding new features. We distinguish between contributing to the RangeShifter core code and the different interfaces - in this case the R package.

## Repo structure

![Rangeshifter repo structure](RangeShiftR/man/figures/RS_repos.png)

RangeShifter is distributed with three user interfaces, each living in their own repo:

- the RangeShifter GUI (clickable Windows interface)*
- RangeShifter Batch Mode (command line interface)
- the RangeShiftR package (R interface)

All three share the same source code for the core simulation (i.e., the actual model), which lives in its own repo (RScore). Each of the interfaces keeps a copy of this core code in a subfolder called RScore, kept in sync with the RScore repo via a git subtree (see [Git subtree usage section](https://github.com/RangeShifter/RScore?tab=readme-ov-file#usage-git-subtree).

⚠️ If you wish to propose a change to the core code of the simulation, please do so *in the [RScore](https://github.com/RangeShifter/RScore) repo*, rather than in the RScore folder of either interface.

*The RangeShifter GUI is currently being rewritten, and is not open source yet.

## Roles

#### Maintainers

- [@JetteReeg](https://github.com/JetteReeg): RScore repo and lead in R package
- [@TheoPannetier](https://github.com/TheoPannetier): RScore repo and lead in batch mode

Maintainers are responsible for coordinating development efforts and ensuring that RangeShifter keeps building continuously.

#### Developers

Regular contributors and members of the [RangeShifter development team](https://github.com/orgs/RangeShifter/people), including maintainers.

#### Contributors

Anyone who whishes to make changes to RangeShifter's code, including regular developers.

## Branching policy

![](RangeShiftR/man/figures/branches.png)

This policy applies to RScore and all three RangeShifter interfaces.
RangeShifter uses the following branching structure:

- `main` is the default branch, where stable releases live. Because it contains the version of RangeShifter that users normally interact with, it must be stable and build at all times.
Only maintainers should make significant changes to `main`, normally by merging `develop` into `main` to make newly developed features and bug fixes available to users, and marking a release while doing so.
- `develop` is the development branch containing new, in-development features. It is the reference branch for all developers. Contributors may make small changes and bug fixes directly to `develop` but should ensure that new changes do not break the build. If one happens to break `develop`, it should be their top priority to fix it as this will disrupt the work of all other contributors.
Larger changes should instead be developed on feature branches.
- Larger changes should be first developed on feature (e.g. `cmake`, `mutualism`, etc.) or contributor (e.g., `theo`) branches. Contributors are welcome to experiment and break such branches at any time, as this will not impact users or other contributors.

When progress is deemed satisfactory, changes can be brought to `develop`. Please open a pull request on GitHub, and assign at least one maintainer as a reviewer. As a pre-requisite, RangeShifter must build on the branch before merging. Please enter a descriptive title and use the description field to describe what you have changed.

In the meantime, we encourage contributors to work in small and frequent commits, and to merge `develop` into their branch often to update their branch with newest changes.

If you need a reminder on the main git commands related to committing and branching, head to the [Git cheatsheet](https://github.com/RangeShifter/RScore/blob/main/git_cheatsheet.md).

## Contributing to the RangeShifter core code

Any changes (issues, bugs, features) regarding the actual RangeShifter core code should be done in [this](https://github.com/RangeShifter/RScore) repository and can afterwards be synced with all interfaces using the git subtree feature (see [Git subtree](https://github.com/RangeShifter/RScore?tab=readme-ov-file#usage-git-subtree) section in the README).

Please check the [contributing guidelines for the RScore code](https://github.com/RangeShifter/RScore/blob/main/CONTRIBUTING.md).

## Contributing to the RangeShiftR package

Please follow these guidelines for issues, bugs or new features related to the RangeShiftR-package.

### Issues and bugs

Issues should be used for reporting technical problems and bugs with the R package or suggest improvements e.g. in the documentation.
General and more conceptual questions regarding the application and settings of RangeShifter parameters should be asked in the [discussion forum](https://github.com/RangeShifter/RangeshiftR-tutorials/discussions) and answered by the broader RangeShifter community.

#### Create a new issue

If you encounter a technical problem, find a bug related to the RangeShiftR package or would like to suggest an improvement to the R package, please search if [a related issue already exists](https://github.com/RangeShifter/RangeShiftR-package-dev/issues). If you can't find a related issue, you can open a new issue using a relevant [issue form](https://github.com/RangeShifter/RangeShiftR-package-dev/issues/new/choose). To propose a bug fix (thank you!!), please create and work on your own branch or fork, from either `main` or `develop` (preferred), and open a pull request when your fix is ready to be merged into the original branch.

As a prerequisite for merging, please ensure that the R package is build correctly. GitHub Action will soon be used for ensuring a successfull build of the R package interface on all operating systems (i.e. R CMD CHECK needs to run without warnings).

Maintainers will review the pull request, possibly request changes, and eventually integrate the bug fix into the RangeShiftR package.

### New feature

Do you have an idea of a new feature in the RangeShiftR package that should be integrated and is of use for other RangeShiftR users?
Please get in touch with the RangeShifter development team directly (rangeshiftr@uni-potsdam.de) to discuss a collaboration.

⚠️ We advise to contact the developer team as early as possible if you plan on implementing a new feature of the R package interface. This could prevent simultaneous development of the same feature and coordinate potential joint development.

Alternatively, proceed as with the bug fix above: create your own branch _from `develop`_ and work from there, and submit a pull request when your new features are ready to join the core code.
We recommend that you update your branch regularly to new changes on `develop` (using `git merge develop`) to reduce the risk of merge conflicts or your version getting out-of-touch in the late stages of development.
We also recommend that you work in small commits, as this makes the code easier to debug, and makes it easier for maintainers to understand your contributions when reviewing a pull request.

8 changes: 4 additions & 4 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Expand Down Expand Up @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
along with this program. If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

Expand All @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
<https://www.gnu.org/licenses/>.

The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
<https://www.gnu.org/licenses/why-not-lgpl.html>.
70 changes: 68 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,69 @@
# RangeshiftR
# RangeShiftR <img src="RangeShiftR/man/figures/RSRlogo.png" align="right" height = 150/>

R-package that provides interface to RangeShifter simulation software
The RangeShiftR package implements the RangeShifter simulation platform for R.

[RangeShifter](https://rangeshifter.github.io/)
is a state-of-the-art eco-evolutionary modelling platform that is becoming
increasingly used worldwide for both theoretical and applied purposes
[(Bocedi et al. 2014)](https://besjournals.onlinelibrary.wiley.com/doi/full/10.1111/2041-210X.12162).

RangeShifter is a spatially-explicit, individual-based simulation platform that
allows modelling species’ range dynamics, such as expansion and shifting, and
patch connectivity by linking complex local population dynamics and dispersal
behaviour, while also taking into account inter-individual variability and
evolutionary processes. RangeShifter is highly flexible in terms of the spatial
resolution and extent, and regarding the complexity of the considered ecological
processes. Due to its modular structure, the level of detail in demographic and
dispersal processes can be easily adapted to different research questions and
available data.


## Installation

RangeShiftR is only available from this github repository.
(It may move to CRAN in the future.)

RangeShiftR has to be built from source and requires the package `Rcpp` as
well as a functional C++ compiler toolchain.

```r
# Install RangeShiftR from GitHub:
devtools::install_github("RangeShifter/RangeShiftR-pkg", ref="main", subdir="RangeShiftR")
```

## Usage and help

Please refer to our [website](https://rangeshifter.github.io/) for more information about RangeShifter simulation
platform. RangeShifter is accompanied by extensive documentation.

For getting acquainted with the software, we recommend to first read the [manual](https://raw.githubusercontent.com/RangeShifter/RangeShifter-software-and-documentation/master/RangeShifter_v2.0_UserManual.pdf) to understand the conceptual underpinnings of RangeShifter.

Analogous to the RangeShifter GUI, we provide [tutorials](https://rangeshifter.github.io/RangeshiftR-tutorials/) to learn the different features of RangeshiftR using example applications from Bocedi et al. (2014, 2021) and Malchow et al. (2021). These cover some of the main features of RangeShifter, and help becoming familiar with the software.

If you have any further question related to the general concepts and usage of RangeShifter, please browse earlier topics in the [forum pages](https://github.com/RangeShifter/RangeshiftR-tutorials/discussions) or add a new one. Often it is also helpful to review [published studies](https://rangeshifter.github.io/site/references/) using the RangeShifter modelling platform.

For technical questions related to the RangeShiftR package interface and which cannot be answered with the documentation provided above, please browse the [issues section](https://github.com/RangeShifter/RangeShiftR-package-dev/issues) of this repository and open a new issues if required. We also offer *technical support* for the RangeShiftR package via mail (rangeshiftr@uni-potsdam.de) if you follow the guidelines of how to ask for help, e.g. guidelines given by [StackOverflow](https://stackoverflow.com/help/how-to-ask):

## Contributing

See [Contributing guidelines](https://github.com/RangeShifter/RangeShiftR-package-dev/blob/main/CONTRIBUTING.md)

## See also

- [Compiled software and documentation](https://github.com/RangeShifter/RangeShifter-software-and-documentation)
- [RScore](https://github.com/RangeShifter/RScore), source for RangeShifter's core code
- [RangeShifter batch mode](https://github.com/RangeShifter/RangeShifter_batch_dev), source for the batch mode interface

## Maintainer

- [@JetteReeg](https://github.com/JetteReeg)

## References

- Bocedi G, Palmer SCF, Pe’er G, Heikkinen RK, Matsinos YG, Watts K, Travis JMJ (2014).
*RangeShifter: A Platform for Modelling Spatial Eco-Evolutionary Dynamics and
Species’ Responses to Environmental Changes.* Methods in Ecology and Evolution 5: 388–96.

- Bocedi G, Palmer SCF, Malchow AK, Zurell D, Watts K, Travis JMJ (2021) RangeShifter 2.0: An extended and enhanced platform for modelling spatial eco-evolutionary dynamics and species’ responses to environmental changes. Ecography 44:1453-1462.

- Malchow AK, Bocedi G, Palmer SCF, Travis JMJ, Zurell D (2021) RangeShiftR: an R package for individual-based simulation of spatial eco-evolutionary dynamics and species’ responses to environmental change. Ecography 4: 1443-1452.
13 changes: 7 additions & 6 deletions RangeShiftR/DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
Package: RangeShiftR
Type: Package
Title: An R package for individual-based simulation of spatial eco-evolutionary dynamics and species' responses to environmental changes
Version: 1.0.4
Version: 1.1.2
Authors@R: c(
person("Anne-Kathleen", "Malchow", email = "rangeshiftr@uni-potsdam.de", role = c("aut", "cre")),
person("Greta", "Bocedi", role = c("aut")),
person("Stephen C.F.", "Palmer", role = c("aut")),
person("Justin M.J.", "Travis", role = c("aut")),
person("Jette", "Wolff", role= c("aut")),
person("Damaris", "Zurell", role = c("aut"))
)
Date: 2021-08-04
Date: 2025-09-26
URL: https://rangeshifter.github.io/RangeshiftR-tutorials/
Description: RangeShiftR provides individual-based simulations of spatial eco-evolutionary dynamics. It is based on the C++ software RangeShifter, making it flexible and fast. RangeShiftR models the processes of demography, dispersal and evolution in an inter-dependent way, offering substantial complexity in the corresponding modelling choices. It is entirely open-source and aims to facilitate the application of individual-based and mechanistic modelling to eco-evolutionary questions.
License: GPL-3
Depends: R (>= 3.6)
SystemRequirements: C++11
SystemRequirements: C++20
Imports:
Rcpp (>= 1.0.0),
raster (>= 3.0.0),
Rdpack (>= 0.7),
methods,
rmarkdown
rmarkdown,
terra
RdMacros: Rdpack
LinkingTo: Rcpp
Encoding: UTF-8
RoxygenNote: 7.1.2
RoxygenNote: 7.3.3
Collate:
'Rfunctions.R'
'plotProbs.R'
Expand Down
1 change: 0 additions & 1 deletion RangeShiftR/NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ export(SMSpathLengths)
export(Settlement)
export(Simulation)
export(StageStructure)
export(createODD)
export(getLocalisedEquilPop)
export(plotAbundance)
export(plotOccupancy)
Expand Down
8 changes: 4 additions & 4 deletions RangeShiftR/R/RangeShiftR.R
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ NULL

# Show start-up message upon loading the package
.onAttach <- function(libname, pkgname) {
packageStartupMessage("RangeshiftR version 1.0.4 (10.05.2022)\n",
"Copyright (C) 2020-2022 Anne-Kathleen Malchow, Greta Bocedi, Stephen C.F. Palmer, Justin M.J. Travis, Damaris Zurell\n\n",
packageStartupMessage("RangeshiftR version 1.1.2 (26.09.2025)\n",
"Copyright (C) 2020-2025 Anne-Kathleen Malchow, Greta Bocedi, Stephen C.F. Palmer, Justin M.J. Travis, Jette Wolff, Damaris Zurell\n\n",
"This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.\n",
"You are welcome to redistribute it and/or modify it under certain conditions;\n",
"type 'RangeShiftR_license()' for details.\n")
Expand All @@ -69,8 +69,8 @@ NULL
#' @export
RangeShiftR_license <- function ()
{
cat("\nRangeshiftR version 1.0.4 (10.05.2022)\n")
cat("Copyright (C) 2020-2022 Anne-Kathleen Malchow, Greta Bocedi, Stephen C.F. Palmer, Justin M.J. Travis, Damaris Zurell\n\n")
cat("\nRangeshiftR version 1.1.2 (26.09.2025)\n")
cat("Copyright (C) 2020-2024 Anne-Kathleen Malchow, Greta Bocedi, Stephen C.F. Palmer, Justin M.J. Travis, Jette Wolff, Damaris Zurell\n\n")
cat("This program is free software: you can redistribute it and/or modify\n")
cat("it under the terms of the GNU General Public License as published by\n")
cat("the Free Software Foundation, either version 3 of the License, or\n")
Expand Down
Loading