diff --git a/README.md b/README.md
index 925fbf9..58d335a 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ A tutorial on how to use MASCOT can be found [here](https://taming-the-beast.org
io.github.compevol
mascot
- 3.1.0
+ 3.1.0-beta1
```
@@ -30,6 +30,16 @@ mvn install -DskipTests
mvn exec:exec -Dbeast.args="-overwrite examples/Constant.xml"
```
+## Citation
+
+Müller NF, Bouckaert RR, Wu C-H, Bedford T. *MASCOT-Skyline integrates population and migration dynamics to enhance phylogeographic reconstructions.* PLOS Computational Biology 21(9):e1013421, 2025. [DOI:10.1371/journal.pcbi.1013421](https://doi.org/10.1371/journal.pcbi.1013421)
+
+Müller NF, Dudas G, Stadler T. *Inferring time-dependent migration and coalescence patterns from genetic sequence and predictor data in structured populations.* Virus Evolution 5(2):vez030, 2019. [DOI:10.1093/ve/vez030](https://doi.org/10.1093/ve/vez030)
+
+Müller NF, Rasmussen DA, Stadler T. *MASCOT: parameter and state inference under the marginal structured coalescent approximation.* Bioinformatics 34(22):3843–3848, 2018. [DOI:10.1093/bioinformatics/bty406](https://doi.org/10.1093/bioinformatics/bty406)
+
+Müller NF, Rasmussen DA, Stadler T. *The Structured Coalescent and Its Approximations.* Molecular Biology and Evolution 34(11):2970–2981, 2017. [DOI:10.1093/molbev/msx186](https://doi.org/10.1093/molbev/msx186)
+
## License
The java source code is licensed under the [GNU General Public License v3.0](LICENSE).
diff --git a/src/main/java/mascot/dynamics/GLM.java b/src/main/java/mascot/dynamics/GLM.java
index a635997..2a7e9fa 100644
--- a/src/main/java/mascot/dynamics/GLM.java
+++ b/src/main/java/mascot/dynamics/GLM.java
@@ -14,10 +14,10 @@
@Description("Extracts the intervals from a tree. Points in the intervals " +
"are defined by the heights of nodes in the tree.")
-@Citation( "Nicola F. Müller, Gytis Dudas, Tanja Stadler (2018)\n"+
+@Citation( "Nicola F. Müller, Gytis Dudas, Tanja Stadler (2019)\n"+
" Inferring time-dependent migration and coalescence patterns\n" +
" from genetic sequence and predictor data in structured populations\n"+
- " bioRxiv, doi: bty406, 10.1101/342329")
+ " Virus Evolution 5(2):vez030, https://doi.org/10.1093/ve/vez030")
public class GLM extends Dynamics implements Loggable {
public Input migrationGLMInput = new Input<>(
diff --git a/src/main/java/mascot/dynamics/GLMWithSkylineNe.java b/src/main/java/mascot/dynamics/GLMWithSkylineNe.java
index e3fa23c..ebf450e 100644
--- a/src/main/java/mascot/dynamics/GLMWithSkylineNe.java
+++ b/src/main/java/mascot/dynamics/GLMWithSkylineNe.java
@@ -15,10 +15,11 @@
@Description("Extracts the intervals from a tree. Points in the intervals " +
"are defined by the heights of nodes in the tree.")
-@Citation( "Nicola F. Müller, Gytis Dudas, Tanja Stadler (2018)\n"+
- " Inferring time-dependent migration and coalescence patterns\n" +
- " from genetic sequence and predictor data in structured populations\n"+
- " bioRxiv, doi: bty406, 10.1101/342329")
+@Citation( "Nicola F. Müller, Remco R. Bouckaert, Chieh-Hsi Wu, Trevor Bedford (2025)\n"+
+ " MASCOT-Skyline integrates population and migration dynamics\n"+
+ " to enhance phylogeographic reconstructions\n"+
+ " PLOS Computational Biology 21(9):e1013421,\n"+
+ " https://doi.org/10.1371/journal.pcbi.1013421")
public class GLMWithSkylineNe extends Dynamics implements Loggable {
public Input migrationGLMInput = new Input<>(
diff --git a/src/main/java/mascot/dynamics/StructuredMigrationSkyline.java b/src/main/java/mascot/dynamics/StructuredMigrationSkyline.java
index 0862944..7d67c79 100644
--- a/src/main/java/mascot/dynamics/StructuredMigrationSkyline.java
+++ b/src/main/java/mascot/dynamics/StructuredMigrationSkyline.java
@@ -1,6 +1,7 @@
package mascot.dynamics;
+import beast.base.core.Citation;
import beast.base.core.Description;
import beast.base.core.Input;
import beast.base.core.Input.Validate;
@@ -12,6 +13,11 @@
@Description("Wrapper class that takes parametric and non parametric dynamics as input.")
+@Citation( "Nicola F. Müller, Remco R. Bouckaert, Chieh-Hsi Wu, Trevor Bedford (2025)\n"+
+ " MASCOT-Skyline integrates population and migration dynamics\n"+
+ " to enhance phylogeographic reconstructions\n"+
+ " PLOS Computational Biology 21(9):e1013421,\n"+
+ " https://doi.org/10.1371/journal.pcbi.1013421")
public class StructuredMigrationSkyline extends Dynamics implements Loggable {
public Input NeFunctionInput = new Input<>(
diff --git a/src/main/java/mascot/dynamics/StructuredSkyline.java b/src/main/java/mascot/dynamics/StructuredSkyline.java
index f4485bd..bd01da4 100644
--- a/src/main/java/mascot/dynamics/StructuredSkyline.java
+++ b/src/main/java/mascot/dynamics/StructuredSkyline.java
@@ -1,6 +1,7 @@
package mascot.dynamics;
+import beast.base.core.Citation;
import beast.base.core.Description;
import beast.base.core.Input;
import beast.base.core.Input.Validate;
@@ -14,7 +15,12 @@
@Description("Wrapper class that takes parametric and non parametric dynamics as input.")
-public class StructuredSkyline extends Dynamics implements Loggable {
+@Citation( "Nicola F. Müller, Remco R. Bouckaert, Chieh-Hsi Wu, Trevor Bedford (2025)\n"+
+ " MASCOT-Skyline integrates population and migration dynamics\n"+
+ " to enhance phylogeographic reconstructions\n"+
+ " PLOS Computational Biology 21(9):e1013421,\n"+
+ " https://doi.org/10.1371/journal.pcbi.1013421")
+public class StructuredSkyline extends Dynamics implements Loggable {
public Input parametricFunctionInput = new Input<>(
"NeDynamics", "input of the log effective population sizes", Validate.REQUIRED);
diff --git a/src/main/java/mascot/skyline/GLMPrior.java b/src/main/java/mascot/skyline/GLMPrior.java
index 7873f5c..2f0d723 100644
--- a/src/main/java/mascot/skyline/GLMPrior.java
+++ b/src/main/java/mascot/skyline/GLMPrior.java
@@ -1,5 +1,6 @@
package mascot.skyline;
+import beast.base.core.Citation;
import beast.base.core.Input;
import beast.base.inference.Distribution;
import beast.base.inference.State;
@@ -16,6 +17,11 @@
import java.util.List;
import java.util.Random;
+@Citation( "Nicola F. Müller, Remco R. Bouckaert, Chieh-Hsi Wu, Trevor Bedford (2025)\n"+
+ " MASCOT-Skyline integrates population and migration dynamics\n"+
+ " to enhance phylogeographic reconstructions\n"+
+ " PLOS Computational Biology 21(9):e1013421,\n"+
+ " https://doi.org/10.1371/journal.pcbi.1013421")
public class GLMPrior extends Distribution {
public Input covariateListInput = new Input<>("covariateList", "input of covariates", Input.Validate.REQUIRED);
diff --git a/src/main/java/mascot/skyline/GrowthRateSmoothingPrior.java b/src/main/java/mascot/skyline/GrowthRateSmoothingPrior.java
index b3c85ad..b9a0ee6 100644
--- a/src/main/java/mascot/skyline/GrowthRateSmoothingPrior.java
+++ b/src/main/java/mascot/skyline/GrowthRateSmoothingPrior.java
@@ -1,5 +1,6 @@
package mascot.skyline;
+import beast.base.core.Citation;
import beast.base.core.Input;
import beast.base.core.Input.Validate;
import beast.base.inference.Distribution;
@@ -12,6 +13,11 @@
import java.util.List;
import java.util.Random;
+@Citation( "Nicola F. Müller, Remco R. Bouckaert, Chieh-Hsi Wu, Trevor Bedford (2025)\n"+
+ " MASCOT-Skyline integrates population and migration dynamics\n"+
+ " to enhance phylogeographic reconstructions\n"+
+ " PLOS Computational Biology 21(9):e1013421,\n"+
+ " https://doi.org/10.1371/journal.pcbi.1013421")
public class GrowthRateSmoothingPrior extends Distribution {
public Input> NeLogInput = new Input<>(
diff --git a/src/main/java/mascot/skyline/LogSmoothingPrior.java b/src/main/java/mascot/skyline/LogSmoothingPrior.java
index 9b4bfb2..aefde17 100644
--- a/src/main/java/mascot/skyline/LogSmoothingPrior.java
+++ b/src/main/java/mascot/skyline/LogSmoothingPrior.java
@@ -1,5 +1,6 @@
package mascot.skyline;
+import beast.base.core.Citation;
import beast.base.core.Input;
import beast.base.core.Input.Validate;
import beast.base.inference.Distribution;
@@ -11,6 +12,11 @@
import java.util.List;
import java.util.Random;
+@Citation( "Nicola F. Müller, Remco R. Bouckaert, Chieh-Hsi Wu, Trevor Bedford (2025)\n"+
+ " MASCOT-Skyline integrates population and migration dynamics\n"+
+ " to enhance phylogeographic reconstructions\n"+
+ " PLOS Computational Biology 21(9):e1013421,\n"+
+ " https://doi.org/10.1371/journal.pcbi.1013421")
public class LogSmoothingPrior extends Distribution {
public Input> NeLogInput = new Input<>(