Skip to content

Commit 4485ea6

Browse files
committed
Port TreeConstructor.main to demo
1 parent 04a9adb commit 4485ea6

2 files changed

Lines changed: 33 additions & 65 deletions

File tree

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,66 @@
11
package demo;
22

3+
import java.io.InputStream;
4+
import java.util.LinkedHashMap;
5+
36
import org.biojava.nbio.core.sequence.MultipleSequenceAlignment;
47
import org.biojava.nbio.core.sequence.ProteinSequence;
58
import org.biojava.nbio.core.sequence.compound.AminoAcidCompound;
9+
import org.biojava.nbio.core.sequence.compound.AminoAcidCompoundSet;
10+
import org.biojava.nbio.core.sequence.io.FastaReader;
11+
import org.biojava.nbio.core.sequence.io.GenericFastaHeaderParser;
12+
import org.biojava.nbio.core.sequence.io.ProteinSequenceCreator;
613
import org.biojava.nbio.phylo.TreeConstructionAlgorithm;
714
import org.biojava.nbio.phylo.ProgressListenerStub;
815
import org.biojava.nbio.phylo.TreeConstructor;
916
import org.biojava.nbio.phylo.TreeType;
1017

1118
/**
12-
* This demo contains the CookBook examples to create a phylogenetic tree from a
19+
* This demo contains the CookBook example to create a phylogenetic tree from a
1320
* given multiple sequence alignment (MSA).
1421
*
22+
* @author Scooter Willis
1523
* @author Aleix Lafita
1624
*
1725
*/
1826
public class DemoTreeConstructor {
1927

2028
public static void main(String[] args) throws Exception {
2129

22-
MultipleSequenceAlignment<ProteinSequence, AminoAcidCompound> msa = new
23-
MultipleSequenceAlignment<ProteinSequence, AminoAcidCompound>();
30+
InputStream inStream = TreeConstructor.class
31+
.getResourceAsStream("/PF00104_small.fasta");
2432

25-
ProteinSequence pSeq1 = new ProteinSequence(
26-
"RER-RDGGGNSRKYDDRRSPRDGE---IDYDERTVSHYQRQFQDERISDGM"
27-
+ "LNTLKQSLKGLDCQPIHLKDSKANRSIMIDEIHTGTADSVTFEQKLPDGEMKL");
28-
ProteinSequence pSeq2 = new ProteinSequence(
29-
"RDRHRD---DRHRYDEDRDHRRDQRNVSDYDSEELRKFEEDYKSDRLGQYV"
30-
+ "FSDLNSAVKGLVVQPIHL-NKEVNRTVIIDSICKESAEKVRFEFGKGEDAREI");
31-
ProteinSequence pSeq3 = new ProteinSequence(
32-
"RPTH---GGLSLNIDVSTTMILEPGPVIEF-----LKANQSVETPRQIDWI"
33-
+ "-----KAAKML--KHMRVKATHRNMEFKIIGLSSKPCNQQLFSMKIKDGEREV");
33+
FastaReader<ProteinSequence, AminoAcidCompound> fastaReader =
34+
new FastaReader<ProteinSequence, AminoAcidCompound>(
35+
inStream, new GenericFastaHeaderParser<ProteinSequence,
36+
AminoAcidCompound>(), new ProteinSequenceCreator(
37+
AminoAcidCompoundSet.getAminoAcidCompoundSet()));
38+
39+
LinkedHashMap<String, ProteinSequence> proteinSequences =
40+
fastaReader.process();
41+
42+
inStream.close();
3443

35-
msa.addAlignedSequence(pSeq1);
36-
msa.addAlignedSequence(pSeq2);
37-
msa.addAlignedSequence(pSeq3);
44+
MultipleSequenceAlignment<ProteinSequence, AminoAcidCompound> msa =
45+
new MultipleSequenceAlignment<ProteinSequence,
46+
AminoAcidCompound>();
47+
48+
for (ProteinSequence proteinSequence : proteinSequences.values()) {
49+
msa.addAlignedSequence(proteinSequence);
50+
}
3851

52+
long readTime = System.currentTimeMillis();
3953
TreeConstructor<ProteinSequence, AminoAcidCompound> treeConstructor =
4054
new TreeConstructor<ProteinSequence, AminoAcidCompound>(
41-
msa, TreeType.NJ, TreeConstructionAlgorithm.PID,
55+
msa, TreeType.NJ, TreeConstructionAlgorithm.PID,
4256
new ProgressListenerStub());
4357

4458
treeConstructor.process();
59+
long treeTime = System.currentTimeMillis();
4560
String newick = treeConstructor.getNewickString(true, true);
4661

4762
System.out.println(newick);
63+
System.out.println("Tree time {" + (treeTime - readTime) + "}");
64+
4865
}
4966
}

biojava-phylo/src/main/java/org/biojava/nbio/phylo/TreeConstructor.java

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@
2525
package org.biojava.nbio.phylo;
2626

2727
import org.biojava.nbio.core.sequence.MultipleSequenceAlignment;
28-
import org.biojava.nbio.core.sequence.ProteinSequence;
29-
import org.biojava.nbio.core.sequence.compound.AminoAcidCompound;
30-
import org.biojava.nbio.core.sequence.compound.AminoAcidCompoundSet;
31-
import org.biojava.nbio.core.sequence.io.FastaReader;
32-
import org.biojava.nbio.core.sequence.io.GenericFastaHeaderParser;
33-
import org.biojava.nbio.core.sequence.io.ProteinSequenceCreator;
3428
import org.biojava.nbio.core.sequence.template.AbstractSequence;
3529
import org.biojava.nbio.core.sequence.template.Compound;
3630
import org.forester.evoinference.distance.NeighborJoining;
@@ -41,13 +35,10 @@
4135
import org.slf4j.Logger;
4236
import org.slf4j.LoggerFactory;
4337

44-
import java.io.FileNotFoundException;
4538
import java.io.FileOutputStream;
46-
import java.io.InputStream;
4739
import java.io.PrintStream;
4840
import java.text.DecimalFormat;
4941
import java.util.ArrayList;
50-
import java.util.LinkedHashMap;
5142
import java.util.List;
5243
import java.util.Vector;
5344

@@ -267,44 +258,4 @@ public void updateProgress(String state, int currentCount, int totalCount) {
267258
}
268259
}
269260

270-
public static void main(String[] args) {
271-
272-
try {
273-
274-
275-
InputStream inStream = TreeConstructor.class.getResourceAsStream("/PF00104_small.fasta");
276-
277-
278-
279-
FastaReader<ProteinSequence,AminoAcidCompound> fastaReader = new FastaReader<ProteinSequence,AminoAcidCompound>(inStream, new GenericFastaHeaderParser<ProteinSequence, AminoAcidCompound>(), new ProteinSequenceCreator(AminoAcidCompoundSet.getAminoAcidCompoundSet()));
280-
LinkedHashMap<String,ProteinSequence> proteinSequences = fastaReader.process();
281-
inStream.close();
282-
283-
284-
MultipleSequenceAlignment<ProteinSequence, AminoAcidCompound> multipleSequenceAlignment = new MultipleSequenceAlignment<ProteinSequence, AminoAcidCompound>();
285-
for (ProteinSequence proteinSequence : proteinSequences.values()) {
286-
287-
multipleSequenceAlignment.addAlignedSequence(proteinSequence);
288-
}
289-
290-
long readTime = System.currentTimeMillis();
291-
TreeConstructor<ProteinSequence, AminoAcidCompound> treeConstructor = new TreeConstructor<ProteinSequence, AminoAcidCompound>(multipleSequenceAlignment, TreeType.NJ, TreeConstructionAlgorithm.PID, new ProgressListenerStub());
292-
treeConstructor.process();
293-
long treeTime = System.currentTimeMillis();
294-
String newick = treeConstructor.getNewickString(true, true);
295-
296-
297-
298-
299-
logger.info("Tree time {}", (treeTime - readTime));
300-
logger.info(newick);
301-
302-
// treeConstructor.outputPhylipDistances("/Users/Scooter/mutualinformation/project/nuclear_receptor/PF00104_small.fasta.phylip");
303-
304-
} catch (FileNotFoundException ex) {
305-
logger.error("Can't find file specified by args[0]", ex);
306-
} catch (Exception e) {
307-
logger.error("Exception: ", e);
308-
}
309-
}
310261
}

0 commit comments

Comments
 (0)