Skip to content

Commit 5d57a63

Browse files
committed
build the tables
1 parent c9753c3 commit 5d57a63

File tree

1 file changed

+55
-1
lines changed

1 file changed

+55
-1
lines changed

examples/json_metadata.rs

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,57 @@
1+
#[derive(serde::Serialize, serde::Deserialize, tskit::metadata::MutationMetadata)]
2+
#[serializer("serde_json")]
3+
struct MutationMetadata {
4+
effect_size: f64,
5+
dominance: f64,
6+
}
7+
8+
#[derive(serde::Serialize, serde::Deserialize, tskit::metadata::IndividualMetadata)]
9+
#[serializer("serde_json")]
10+
struct IndividualMetadata {
11+
name: String,
12+
phenotypes: Vec<i32>,
13+
}
14+
115
fn main() {
2-
todo!()
16+
let ts = make_treeseq();
17+
ts.dump("with_json_metadata.trees", 0).unwrap();
18+
}
19+
20+
fn make_tables() -> tskit::TableCollection {
21+
let mut tables = tskit::TableCollection::new(100.0).unwrap();
22+
let pop0 = tables.add_population().unwrap();
23+
let ind0 = tables
24+
.add_individual_with_metadata(
25+
0,
26+
None,
27+
None,
28+
&IndividualMetadata {
29+
name: "Jerome".to_string(),
30+
phenotypes: vec![0, 1, 2, 0],
31+
},
32+
)
33+
.unwrap();
34+
let node0 = tables
35+
.add_node(tskit::NodeFlags::new_sample(), 0.0, pop0, ind0)
36+
.unwrap();
37+
let site0 = tables.add_site(50.0, Some("A".as_bytes())).unwrap();
38+
let _ = tables
39+
.add_mutation_with_metadata(
40+
site0,
41+
node0,
42+
tskit::MutationId::NULL,
43+
1.0,
44+
Some("G".as_bytes()),
45+
&MutationMetadata {
46+
effect_size: -1e-3,
47+
dominance: 0.1,
48+
},
49+
)
50+
.unwrap();
51+
tables.build_index().unwrap();
52+
tables
53+
}
54+
55+
fn make_treeseq() -> tskit::TreeSequence {
56+
make_tables().tree_sequence(0).unwrap()
357
}

0 commit comments

Comments
 (0)