-
Notifications
You must be signed in to change notification settings - Fork 41
/
parsimony.proto
31 lines (26 loc) · 1.69 KB
/
parsimony.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
syntax = "proto3";
package Parsimony;
message mut {
int32 position = 1; // Position in the chromosome
/* All nucleotides are encoded as integers (0:A, 1:C, 2:G, 3:T) */
int32 ref_nuc = 2; // Reference nucleotide at this position
int32 par_nuc = 3; // Nucleotide of parent at this position
repeated int32 mut_nuc = 4; // Mutated nucleotide in this node at this position
string chromosome = 5; // Chromosome string. Currently unused.
}
message mutation_list {
repeated mut mutation = 1;
}
message condensed_node {
string node_name = 1; // The node name as given in the newick tree
repeated string condensed_leaves = 2; // A list of strings for the names of identical sequences all of which are represented by the node above
}
message node_metadata {
repeated string clade_annotations = 1;
}
message data {
string newick = 1; // Newick tree string. May contain distances, but note that these may be distinct from distances as calculated with UShER
repeated mutation_list node_mutations = 2; // Mutations_list object for each node of this tree, in the order that nodes are encountered in a preorder traversal of the tree in the newick string
repeated condensed_node condensed_nodes = 3; // A dictionary-like object mapping names in the newick tree to a larger set of identical nodes that have been collapsed into this single node
repeated node_metadata metadata = 4; // Clade annotations on a per-node basis, in the order that nodes are encountered in a preorder traversal of the tree
}