[beast-mcmc] r4808 committed - Initializes the row and column effect parameters with the maximum obse...

0 views
Skip to first unread message

beast...@googlecode.com

unread,
Mar 9, 2012, 10:11:57 AM3/9/12
to beast-...@googlegroups.com
Revision: 4808
Author: rambaut
Date: Fri Mar 9 07:10:35 2012
Log: Initializes the row and column effect parameters with the maximum
observed titre for the rows and columns
http://code.google.com/p/beast-mcmc/source/detail?r=4808

Modified:
/trunk/src/dr/evomodel/antigenic/AntigenicLikelihood.java

=======================================
--- /trunk/src/dr/evomodel/antigenic/AntigenicLikelihood.java Fri Mar 9
06:54:57 2012
+++ /trunk/src/dr/evomodel/antigenic/AntigenicLikelihood.java Fri Mar 9
07:10:35 2012
@@ -46,8 +46,8 @@
TaxonList strainTaxa,
MatrixParameter locationsParameter,
Parameter datesParameter,
- Parameter columnEffectsParameter,
- Parameter rowEffectsParameter,
+ Parameter columnParameter,
+ Parameter rowParameter,
DataTable<String[]> dataTable,
List<String> virusLocationStatisticList) {

@@ -143,6 +143,21 @@
Measurement measurement = new Measurement(column,
columnStrain, row, rowStrain, type, minTitre, maxTitre);
measurements.add(measurement);
}
+
+ double[] maxColumnTitre = new double[columnLabels.size()];
+ double[] maxRowTitre = new double[rowLabels.size()];
+ for (Measurement measurement : measurements) {
+ double titre = measurement.maxTitre;
+ if (Double.isNaN(titre)) {
+ titre = measurement.minTitre;
+ }
+ if (titre > maxColumnTitre[measurement.column]) {
+ maxColumnTitre[measurement.column] = titre;
+ }
+ if (titre > maxRowTitre[measurement.row]) {
+ maxRowTitre[measurement.row] = titre;
+ }
+ }

if (strainTaxa != null) {
this.strains = strainTaxa;
@@ -178,22 +193,34 @@
}
}

- this.columnEffectsParameter = columnEffectsParameter;
- if (columnEffectsParameter != null) {
- columnEffectsParameter.setDimension(columnLabels.size());
- addVariable(columnEffectsParameter);
- String[] labelArray = new String[columnLabels.size()];
- columnLabels.toArray(labelArray);
-
((Parameter.Abstract)columnEffectsParameter).setDimensionNames(labelArray);
+ if (columnParameter == null) {
+ this.columnEffectsParameter = new
Parameter.Default("columnEffects");
+ } else {
+ this.columnEffectsParameter = columnParameter;
}

- this.rowEffectsParameter = rowEffectsParameter;
- if (rowEffectsParameter != null) {
- rowEffectsParameter.setDimension(rowLabels.size());
- addVariable(rowEffectsParameter);
- String[] labelArray = new String[rowLabels.size()];
- rowLabels.toArray(labelArray);
-
((Parameter.Abstract)rowEffectsParameter).setDimensionNames(labelArray);
+ this.columnEffectsParameter.setDimension(columnLabels.size());
+ addVariable(this.columnEffectsParameter);
+ String[] labelArray = new String[columnLabels.size()];
+ columnLabels.toArray(labelArray);
+
((Parameter.Abstract)this.columnEffectsParameter).setDimensionNames(labelArray);
+ for (int i = 0; i < maxColumnTitre.length; i++) {
+ this.columnEffectsParameter.setParameterValue(i,
maxColumnTitre[i]);
+ }
+
+ if (rowParameter == null) {
+ this.rowEffectsParameter = new Parameter.Default("rowEffects");
+ } else {
+ this.rowEffectsParameter = rowParameter;
+ }
+
+ this.rowEffectsParameter.setDimension(rowLabels.size());
+ addVariable(this.rowEffectsParameter);
+ labelArray = new String[rowLabels.size()];
+ rowLabels.toArray(labelArray);
+
((Parameter.Abstract)this.rowEffectsParameter).setDimensionNames(labelArray);
+ for (int i = 0; i < maxRowTitre.length; i++) {
+ this.rowEffectsParameter.setParameterValue(i, maxRowTitre[i]);
}

StringBuilder sb = new StringBuilder();

Reply all
Reply to author
Forward
0 new messages