Skip to content

Commit 096208f

Browse files
committed
SUpport for onset in ETL
1 parent e965aa2 commit 096208f

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ga4ghphetools"
3-
version = "0.5.19"
3+
version = "0.5.20"
44
edition = "2021"
55
keywords = ["GA4GH", "Phenopacket Schema", "Human Phenotype Ontology"]
66
description = "Generate GA4GH phenopackets from tabular data"
@@ -22,12 +22,12 @@ required-features = ["cli"]
2222

2323
[dependencies]
2424
calamine = "0.32.0"
25-
chrono = "0.4.42"
26-
derive_more = {version = "2.1.0", features = ["from", "display"]}
25+
chrono = "0.4.43"
26+
derive_more = {version = "2.1.1", features = ["from", "display"]}
2727
home = "0.5.11"
2828
lazy_static = "1.5.0"
2929
once_cell = "1.21.3"
30-
ontolius = "0.7.1"
30+
ontolius = "0.7.2"
3131
phenopackets = "0.2.2-post2"
3232
phenopacket_tools = { git = " https://github.com/P2GX/phenopacket_tools.git", tag = "0.2.4" }
3333
prost = "0.14.1"
@@ -42,7 +42,7 @@ clap = { version = "4.5.53", features = ["derive"], optional = true }
4242
rayon = "=1.10.0"
4343
tera = "1.20.1"
4444
uuid = { version = "1.18", features = ["v4"] }
45-
rust_xlsxwriter = { version = "0.92.2", optional = true }
45+
rust_xlsxwriter = { version = "0.92.4", optional = true }
4646
urlencoding = "2.1.3"
4747
walkdir = "2.5"
4848

src/etl/etl_tools.rs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,11 +261,22 @@ impl EtlTools {
261261
continue;
262262
}
263263
let obs_pair: Vec<&str> = obs.split("-").collect();
264-
if obs_pair.len() != 2 {
264+
if obs_pair.len() == 3 {
265+
// something like "current": "HP:0008846-observed-Congenital onset",
266+
let hp_id = obs_pair[0];
267+
let status = obs_pair[1];
268+
let onset = obs_pair[2];
269+
if crate::age::is_valid_age_string(onset) {
270+
observation_map.insert(hp_id.to_string(), onset.to_string());
271+
} else {
272+
return Err(format!("Malformed observation data onset='{onset}' ({obs})"))
273+
}
274+
} else if obs_pair.len() == 2 {
275+
// i.e., no observation data
276+
observation_map.insert(obs_pair[0].to_string(), obs_pair[1].to_string());
277+
} else {
265278
return Err(format!("Malformed observation pair '{obs}'"))
266279
}
267-
observation_map.insert(obs_pair[0].to_string(), obs_pair[1].to_string());
268-
269280
}
270281
for hdup in duplet_list {
271282
let val = observation_map

0 commit comments

Comments
 (0)