From: <yo...@us...> - 2010-04-22 18:28:34
|
Revision: 692 http://treebase.svn.sourceforge.net/treebase/?rev=692&view=rev Author: youjun Date: 2010-04-22 18:28:28 +0000 (Thu, 22 Apr 2010) Log Message: ----------- fix: Analysis download scrambles taxon labels - ID: 2970700 Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/TreebaseUtil.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/CharacterMatrix.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/Matrix.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/UserDefinedCharSet.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabelSet.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/TreebaseUtil.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/TreebaseUtil.java 2010-04-16 17:33:35 UTC (rev 691) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/TreebaseUtil.java 2010-04-22 18:28:28 UTC (rev 692) @@ -528,7 +528,7 @@ } } pBuilder - .append(TreebaseUtil.getLineSeparators(2)).append("Study ID = " + pStudy.getId()) + .append(TreebaseUtil.getLineSeparators(2)).append("TreeBASE Study URI: " + pStudy.getPhyloWSPath().getPurl()) .append("]").append(TreebaseUtil.getLineSeparators(2)); } } Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/CharacterMatrix.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/CharacterMatrix.java 2010-04-16 17:33:35 UTC (rev 691) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/CharacterMatrix.java 2010-04-22 18:28:28 UTC (rev 692) @@ -600,7 +600,8 @@ public void generateMatrixTable(StringBuilder pBuilder) { // MATRIX section: - List<MatrixRow> matrixRows = getRows(); + List<MatrixRow> matrixRows = new ArrayList<MatrixRow>(getRows()); + sortRowByTaxonLabel(matrixRows); Iterator<MatrixRow> iterator = matrixRows.iterator(); ArrayList<String> tLabel = new ArrayList<String>(); @@ -851,7 +852,7 @@ if (isDefaultCodonSet(codonSet)) { pStrBuilder.append('*'); } - pStrBuilder.append(" ").append(codonSet.getTitle()).append(" = ").append(TreebaseUtil.LINESEP); + pStrBuilder.append(" ").append(codonSet.getTitle()).append(" (CHARACTERS = ").append(StringUtil.tokenize(getTitle())).append(") = ").append(TreebaseUtil.LINESEP); codonSet.generateNexusString(pStrBuilder); } Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/Matrix.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/Matrix.java 2010-04-16 17:33:35 UTC (rev 691) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/Matrix.java 2010-04-22 18:28:28 UTC (rev 692) @@ -1,6 +1,7 @@ package org.cipres.treebase.domain.matrix; +import java.util.Comparator; import java.util.List; import javax.persistence.AttributeOverride; @@ -419,7 +420,7 @@ pBuilder.append("BEGIN CHARACTERS;").append(TreebaseUtil.LINESEP); pBuilder - .append("[! Matrix ID =").append(getId()).append(" ]").append(TreebaseUtil.LINESEP) + .append("[! TreeBASE Matrix URI: ").append(getPhyloWSPath().getPurl()).append("]").append(TreebaseUtil.LINESEP) .append(TreebaseUtil.LINESEP); pBuilder.append("\tTITLE ").append(StringUtil.tokenize(getTitle())).append(";").append( @@ -432,7 +433,7 @@ } else { taxaTitle = "No taxa found for this matrix. Old data. Need to import this matrix again."; } - pBuilder.append("\tLINK TAXA = " + StringUtil.tokenize(taxaTitle) + ";").append( + pBuilder.append("\tLINK TAXA = " + StringUtil.tokenize(taxaTitle.replaceAll("Input|Output", "")) + ";").append( TreebaseUtil.LINESEP); pBuilder.append(getDimensionsInfo()).append(TreebaseUtil.LINESEP); @@ -516,4 +517,18 @@ public void setDimensions() { // By default, do nothing } + + protected void sortRowByTaxonLabel(List<MatrixRow> rList) + { + java.util.Collections.sort(rList, new Comparator<MatrixRow>() { + + public int compare(MatrixRow pObject1, MatrixRow pObject2) { + String id1 = pObject1.getTaxonLabel().getTaxonLabel(); + String id2 = pObject2.getTaxonLabel().getTaxonLabel(); + return id1.compareTo(id2); + } + + }); + + } } Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/UserDefinedCharSet.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/UserDefinedCharSet.java 2010-04-16 17:33:35 UTC (rev 691) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/matrix/UserDefinedCharSet.java 2010-04-22 18:28:28 UTC (rev 692) @@ -11,6 +11,8 @@ import javax.persistence.OneToMany; import javax.persistence.Transient; +import mesquite.lib.StringUtil; + import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; @@ -74,7 +76,7 @@ @Override public String getNexusString() { StringBuilder sb = new StringBuilder(); - sb.append(getNexusPrefix()).append(getTitle()).append(" = "); + sb.append(getNexusPrefix()).append(getTitle()).append(" (CHARACTERS = ").append(StringUtil.tokenize(getMatrix().getTitle())).append(") = "); for (ColumnRange colRange : getColumns()) { sb.append(" "); Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabelSet.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabelSet.java 2010-04-16 17:33:35 UTC (rev 691) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabelSet.java 2010-04-22 18:28:28 UTC (rev 692) @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.List; import javax.persistence.AttributeOverride; @@ -192,11 +193,12 @@ */ public void buildNexusBlockTaxa(StringBuilder pBuilder, boolean pOnePerLine, boolean pLineNumber) { - List<TaxonLabel> txnlbllist = getTaxonLabelsReadOnly(); + List<TaxonLabel> txnlbllist = new ArrayList<TaxonLabel>(getTaxonLabelList()); + sortByTaxonLabel(txnlbllist); int numoftxnlbls = txnlbllist.size(); pBuilder.append("BEGIN TAXA;\n"); - pBuilder.append(" TITLE " + StringUtil.tokenize(getTitle()) + ";\n"); + pBuilder.append(" TITLE " + StringUtil.tokenize(getTitle().replaceAll("Input|Output", "")) + ";\n"); pBuilder.append(" DIMENSIONS NTAX=" + numoftxnlbls + ";\n"); pBuilder.append(" TAXLABELS\n"); pBuilder.append(" "); @@ -258,4 +260,17 @@ return getTitle(); } + private void sortByTaxonLabel(List<TaxonLabel> tList) + { + java.util.Collections.sort(tList, new Comparator<TaxonLabel>() { + + public int compare(TaxonLabel pObject1, TaxonLabel pObject2) { + String id1 = pObject1.getTaxonLabel(); + String id2 = pObject2.getTaxonLabel(); + return id1.compareTo(id2); + } + + }); + + } } Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java 2010-04-16 17:33:35 UTC (rev 691) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java 2010-04-22 18:28:28 UTC (rev 692) @@ -557,7 +557,7 @@ pBuilder.append("BEGIN TREES;\n"); pBuilder .append(" TITLE ").append(StringUtil.tokenize(blockTitle)).append(";\n"); - pBuilder.append(" LINK TAXA = ").append(StringUtil.tokenize(taxaTitle)).append(";\n"); + pBuilder.append(" LINK TAXA = ").append(StringUtil.tokenize(taxaTitle.replaceAll("Input|Output", ""))).append(";\n"); pBuilder.append(" TREE ").append(StringUtil.tokenize(getLabel())).append(" = "); if (getRootedTree() != null) { @@ -569,7 +569,7 @@ } pBuilder.append(getNewickString()).append("\n"); - pBuilder.append("[! TreeBASE tree Id = ").append(getId()).append(" ]\n"); + pBuilder.append("[! TreeBASE tree URI: ").append(getPhyloWSPath().getPurl()).append("]\n"); pBuilder.append("\n\nEND;\n"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |