Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A tutorial on how to use MASCOT can be found [here](https://taming-the-beast.org
<dependency>
<groupId>io.github.compevol</groupId>
<artifactId>mascot</artifactId>
<version>3.1.0</version>
<version>3.1.0-beta1</version>
</dependency>
```

Expand All @@ -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).
4 changes: 2 additions & 2 deletions src/main/java/mascot/dynamics/GLM.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<GlmModel> migrationGLMInput = new Input<>(
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/mascot/dynamics/GLMWithSkylineNe.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<GlmModel> migrationGLMInput = new Input<>(
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/mascot/dynamics/StructuredMigrationSkyline.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<NeDynamicsList> NeFunctionInput = new Input<>(
Expand Down
8 changes: 7 additions & 1 deletion src/main/java/mascot/dynamics/StructuredSkyline.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<NeDynamicsList> parametricFunctionInput = new Input<>(
"NeDynamics", "input of the log effective population sizes", Validate.REQUIRED);
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/mascot/skyline/GLMPrior.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<CovariateList> covariateListInput = new Input<>("covariateList", "input of covariates", Input.Validate.REQUIRED);
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/mascot/skyline/GrowthRateSmoothingPrior.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<RealVectorParam<? extends Real>> NeLogInput = new Input<>(
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/mascot/skyline/LogSmoothingPrior.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<RealVectorParam<? extends Real>> NeLogInput = new Input<>(
Expand Down
Loading