diff --git a/src/datasets_extraction.jl b/src/datasets_extraction.jl index 6da8a90..5a52754 100644 --- a/src/datasets_extraction.jl +++ b/src/datasets_extraction.jl @@ -4,14 +4,14 @@ const ORDINAL_FIELDS = Set([ 1319, 1498 ]) -asint(x::Real) = Int(x) asint(x::String) = parse(Int, x) -asint(field_ids::AbstractArray) = [asint(x) for x in field_ids] +asint(x) = Int(x) function get_fields_metadata(fields_metadata::DataFrame, field_id) - row_id = findfirst(x -> x.field_id == field_id, eachrow(fields_metadata)) + row_id = findfirst(x -> x.field_id == string(field_id), eachrow(fields_metadata)) + row_id === nothing && return nothing, nothing, nothing f_meta = fields_metadata[row_id, :] - return field_id, f_meta.value_type, f_meta.encoding_id + return asint(field_id), f_meta.value_type, f_meta.encoding_id end """ @@ -24,20 +24,25 @@ all field_ids in the list. function get_fields_metadata(fields_metadata::DataFrame, field_ids::AbstractVector) value_types = [] encoding_ids = [] + field_ids_ = [] for f_id in field_ids - _, value_type, encoding_id = get_fields_metadata(fields_metadata, f_id) + field_id, value_type, encoding_id = get_fields_metadata(fields_metadata, f_id) + push!(field_ids_, field_id) push!(value_types, value_type) push!(encoding_ids, encoding_id) end @assert all(==(value_types[1]), value_types) @assert all(==(encoding_ids[1]), encoding_ids) - return first(field_ids), first(value_types), first(encoding_ids) + return first(field_ids_), first(value_types), first(encoding_ids) end function build_from_fields_entry(fields_entry, dataset, fields_metadata) - field_ids = asint(fields_entry["fields"]) + field_ids = fields_entry["fields"] field_id, value_type, encoding_id = UKBMain.get_fields_metadata(fields_metadata, field_ids) + if value_type === nothing + return process_custom(dataset, fields_entry) + end # Ordinal data if field_id ∈ ORDINAL_FIELDS return process_ordinal(dataset, fields_entry) diff --git a/src/fields_processing.jl b/src/fields_processing.jl index ce3d636..e8c2338 100644 --- a/src/fields_processing.jl +++ b/src/fields_processing.jl @@ -65,6 +65,14 @@ function process_binary_arrayed(dataset, fields_entry) return DataFrame(collect(output), string.(phenotypes)) end +""" + process_custom(dataset, fields_entry) + +Processing function for a manually added column. SImply forward the column +""" +process_custom(dataset, fields_entry) = + dataset[!, asvector(fields_entry["fields"])] + """ process_ordinal(dataset, fields_entry) """ diff --git a/src/ukb_download.jl b/src/ukb_download.jl index f925cd3..1a25449 100644 --- a/src/ukb_download.jl +++ b/src/ukb_download.jl @@ -14,7 +14,7 @@ download_fields_metadata(;output="fields_metadata.txt") = Downloads.download("biobank.ndph.ox.ac.uk/ukb/scdown.cgi?fmt=txt&id=1", output) read_fields_metadata(;input="fields_metadata.txt") = - CSV.read(input, DataFrame) + CSV.read(input, DataFrame, types=Dict("field_id" => String)) function download_and_read_fields_metadata(;path="fields_metadata.txt") if !isfile(path) diff --git a/test/config/config_with_custom_fields.yaml b/test/config/config_with_custom_fields.yaml new file mode 100644 index 0000000..b37a78b --- /dev/null +++ b/test/config/config_with_custom_fields.yaml @@ -0,0 +1,77 @@ +traits: + - fields: + - 1408 + phenotypes: + - name: 1408 + - fields: + - 1727 + phenotypes: + - name: 1727 + - fields: + - 1379 + phenotypes: + - name: 1379 + - fields: + - 1329 + phenotypes: + - name: 1329 + - fields: 1339 + phenotypes: + - name: 1339 + - fields: + - 30270 + phenotypes: + - name: 30270 + - fields: + - 1548 + phenotypes: + - name: 1548 + - fields: 1707 + phenotypes: + - name: 1707 + - fields: + - 1777 + phenotypes: + - name: 1777 + # Arrayed/Instanced traits + - fields: "40006" + phenotypes: + - name: disease_1 + codings: [C439, D414, C440] + - name: disease_2 + codings: D487 + - fields: 20002 + phenotypes: + - name: disease_3 + codings: + - [1674, 1065, "1066", 1067] + - name: disease_4 + codings: [1452, 1453, 1454, 1455, 1548, 1549, 1550, 1625, 1660, 1661, 1667, 1680] + - name: disease_5 + codings: 1762 + - fields: [41202, 41204] + phenotypes: + - name: disease_6 + codings: ["O021", D649, "O26", "E669"] + - name: disease_7 + codings: ["G20"] + - name: disease_8 + codings: + - "I849" + - "O209" + + - fields: 21000 + phenotypes: + - name: ethnicity + + - fields: 22001 + phenotypes: + - name: genetic sex + + - fields: 21003 + phenotypes: + - name: age + # This fields do not originally pertain to + # the UKB dataset but have been manually added + # to a decrypted dataset + - fields: [customfield, dummyfield] diff --git a/test/data/ukb_sample_traits.csv b/test/data/ukb_sample_traits.csv index 9d4ed81..e99e30c 100644 --- a/test/data/ukb_sample_traits.csv +++ b/test/data/ukb_sample_traits.csv @@ -1,11 +1,11 @@ -eid,1329-0.0,1329-1.0,1329-2.0,1329-3.0,1339-0.0,1339-1.0,1339-2.0,1339-3.0,1379-0.0,1379-1.0,1379-2.0,1379-3.0,1408-0.0,1408-1.0,1408-2.0,1408-3.0,1548-0.0,1548-1.0,1548-2.0,1548-3.0,1707-0.0,1707-1.0,1707-2.0,1727-0.0,1727-1.0,1727-2.0,1777-0.0,1777-1.0,1777-2.0,20002-0.0,20002-0.1,20002-0.2,20002-0.3,20002-0.4,20002-0.5,20002-0.6,20002-0.7,20002-0.8,20002-0.9,20002-0.10,20002-0.11,20002-0.12,20002-0.13,20002-0.14,20002-0.15,20002-0.16,20002-0.17,20002-0.18,20002-0.19,20002-0.20,20002-0.21,20002-0.22,20002-0.23,20002-0.24,20002-0.25,20002-0.26,20002-0.27,20002-0.28,20002-0.29,20002-0.30,20002-0.31,20002-0.32,20002-0.33,20002-1.0,20002-1.1,20002-1.2,20002-1.3,20002-1.4,20002-1.5,20002-1.6,20002-1.7,20002-1.8,20002-1.9,20002-1.10,20002-1.11,20002-1.12,20002-1.13,20002-1.14,20002-1.15,20002-1.16,20002-1.17,20002-1.18,20002-1.19,20002-1.20,20002-1.21,20002-1.22,20002-1.23,20002-1.24,20002-1.25,20002-1.26,20002-1.27,20002-1.28,20002-1.29,20002-1.30,20002-1.31,20002-1.32,20002-1.33,20002-2.0,20002-2.1,20002-2.2,20002-2.3,20002-2.4,20002-2.5,20002-2.6,20002-2.7,20002-2.8,20002-2.9,20002-2.10,20002-2.11,20002-2.12,20002-2.13,20002-2.14,20002-2.15,20002-2.16,20002-2.17,20002-2.18,20002-2.19,20002-2.20,20002-2.21,20002-2.22,20002-2.23,20002-2.24,20002-2.25,20002-2.26,20002-2.27,20002-2.28,20002-2.29,20002-2.30,20002-2.31,20002-2.32,20002-2.33,20002-3.0,20002-3.1,20002-3.2,20002-3.3,20002-3.4,20002-3.5,20002-3.6,20002-3.7,20002-3.8,20002-3.9,20002-3.10,20002-3.11,20002-3.12,20002-3.13,20002-3.14,20002-3.15,20002-3.16,20002-3.17,20002-3.18,20002-3.19,20002-3.20,20002-3.21,20002-3.22,20002-3.23,20002-3.24,20002-3.25,20002-3.26,20002-3.27,20002-3.28,20002-3.29,20002-3.30,20002-3.31,20002-3.32,20002-3.33,30270-0.0,30270-1.0,30270-2.0,40006-0.0,40006-1.0,40006-2.0,40006-3.0,40006-4.0,40006-5.0,40006-6.0,40006-7.0,40006-8.0,40006-9.0,40006-10.0,40006-11.0,40006-12.0,40006-13.0,40006-14.0,40006-15.0,40006-16.0,41202-0.0,41202-0.1,41202-0.2,41202-0.3,41202-0.4,41202-0.5,41202-0.6,41202-0.7,41202-0.8,41202-0.9,41202-0.10,41202-0.11,41202-0.12,41202-0.13,41202-0.14,41202-0.15,41202-0.16,41202-0.17,41202-0.18,41202-0.19,41202-0.20,41202-0.21,41202-0.22,41202-0.23,41202-0.24,41202-0.25,41202-0.26,41202-0.27,41202-0.28,41202-0.29,41202-0.30,41202-0.31,41202-0.32,41202-0.33,41202-0.34,41202-0.35,41202-0.36,41202-0.37,41202-0.38,41202-0.39,41202-0.40,41202-0.41,41202-0.42,41202-0.43,41202-0.44,41202-0.45,41202-0.46,41202-0.47,41202-0.48,41202-0.49,41202-0.50,41202-0.51,41202-0.52,41202-0.53,41202-0.54,41202-0.55,41202-0.56,41202-0.57,41202-0.58,41202-0.59,41202-0.60,41202-0.61,41202-0.62,41202-0.63,41202-0.64,41202-0.65,41204-0.0,41204-0.1,41204-0.2,41204-0.3,41204-0.4,41204-0.5,41204-0.6,41204-0.7,41204-0.8,41204-0.9,41204-0.10,41204-0.11,41204-0.12,41204-0.13,41204-0.14,41204-0.15,41204-0.16,41204-0.17,41204-0.18,41204-0.19,41204-0.20,41204-0.21,41204-0.22,41204-0.23,41204-0.24,41204-0.25,41204-0.26,41204-0.27,41204-0.28,41204-0.29,41204-0.30,41204-0.31,41204-0.32,41204-0.33,41204-0.34,41204-0.35,41204-0.36,41204-0.37,41204-0.38,41204-0.39,41204-0.40,41204-0.41,41204-0.42,41204-0.43,41204-0.44,41204-0.45,41204-0.46,41204-0.47,41204-0.48,41204-0.49,41204-0.50,41204-0.51,41204-0.52,41204-0.53,41204-0.54,41204-0.55,41204-0.56,41204-0.57,41204-0.58,41204-0.59,41204-0.60,41204-0.61,41204-0.62,41204-0.63,41204-0.64,41204-0.65,41204-0.66,41204-0.67,41204-0.68,41204-0.69,41204-0.70,41204-0.71,41204-0.72,41204-0.73,41204-0.74,41204-0.75,41204-0.76,41204-0.77,41204-0.78,41204-0.79,41204-0.80,41204-0.81,41204-0.82,41204-0.83,41204-0.84,41204-0.85,41204-0.86,41204-0.87,41204-0.88,41204-0.89,41204-0.90,41204-0.91,41204-0.92,41204-0.93,41204-0.94,41204-0.95,41204-0.96,41204-0.97,41204-0.98,41204-0.99,41204-0.100,41204-0.101,41204-0.102,41204-0.103,41204-0.104,41204-0.105,41204-0.106,41204-0.107,41204-0.108,41204-0.109,41204-0.110,41204-0.111,41204-0.112,41204-0.113,41204-0.114,41204-0.115,41204-0.116,41204-0.117,41204-0.118,41204-0.119,41204-0.120,41204-0.121,41204-0.122,41204-0.123,41204-0.124,41204-0.125,41204-0.126,41204-0.127,41204-0.128,41204-0.129,41204-0.130,41204-0.131,41204-0.132,41204-0.133,41204-0.134,41204-0.135,41204-0.136,41204-0.137,41204-0.138,41204-0.139,41204-0.140,41204-0.141,41204-0.142,41204-0.143,41204-0.144,41204-0.145,41204-0.146,41204-0.147,41204-0.148,41204-0.149,41204-0.150,41204-0.151,41204-0.152,41204-0.153,41204-0.154,41204-0.155,41204-0.156,41204-0.157,41204-0.158,41204-0.159,41204-0.160,41204-0.161,41204-0.162,41204-0.163,41204-0.164,41204-0.165,41204-0.166,41204-0.167,41204-0.168,41204-0.169,41204-0.170,41204-0.171,41204-0.172,41204-0.173,41204-0.174,41204-0.175,41204-0.176,41204-0.177,41204-0.178,41204-0.179,41204-0.180,41204-0.181,41204-0.182,41204-0.183,21000-0.0,21000-1.0,21000-2.0,21003-0.0,21003-1.0,21003-2.0,21003-3.0,22001-0.0 -1,1,,,,2,,,,1,,,,-3,,,,1,,,,1,1,,3,,,1,,,1066,1473,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,1067,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,79.5,,,C439,C449,D487,,,,,,,,,,,,,,,C64,C780,I722,J939,K573,M1995,T818,K44,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,O26,C780,E119,M1999,R590,Y831,Z855,Z867,Z921,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,64,,,,1 -2,1,,,,2,,,,1,,,,-1,,,,1,,,,1,,,1,,,0,,,1386,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,82.61,,,,,,,,,,,,,,,,,,,,O021,O044,O209,O268,O48,O809,T810,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,M545,O268,R104,Z370,Z370,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,42,,,,0 -3,1,,,,1,,,,2,,,,-1,,,,1,,,,2,,,3,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,81.0,,,,,,,,,,,,,,,,,,,,,,K44,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3002,,,44,,,,0 -4,0,,,,1,,,,2,,,,3,,,,2,,,,2,,,4,,,-1,,,1065,1113,1111,1465,1464,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,78.8,,,D370,C440,,,,,,,,,,,,,,,,D649,J459,K297,L732,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,B378,D649,E119,E669,I10,I272,I450,I517,J448,J449,J459,Z139,Z270,Z800,Z880,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,46,,,,0 -5,2,,,,2,,,,1,,,,3,,,,2,,,,,,,2,,,-3,,,1371,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,1067,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,83.16,,,,,,,,,,,,,,,,,,,,D861,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Z874,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,49,,,,1 -6,2,,,,1,,,,0,,,,1,,,,1,,,,-3,,,2,,,,,,1266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,73.7,,,D412,,,,,,,,,,,,,,,,,I251,I841,I849,L989,M2556,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,E780,I10,I209,I489,I959,R31,Z922,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,57,,,,1 -7,1,,,,1,,,,2,,,,3,,,,2,,,,3,,,4,,,1,,,1065,1453,1402,1477,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,81.72,,,D414,C438,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,45,,,,0 -8,2,,,,2,,,,1,,,,2,,,,2,,,,2,,,3,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,84.0,,,,,,,,,,,,,,,,,,,,C675,C679,I210,N328,N329,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C676,E669,G560,I10,M139,N359,N40,Z855,Z864,Z966,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,57,,,,1 -9,1,,,,2,,,,1,,,,3,,,,2,,,,1,,,2,,,1,,,1455,1660,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,75.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,G20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,42,,,,1 -10,3,,,,2,,,,1,,,,,,,,1,,,,3,,,4,,,1,,,1065,99999,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D649,I841,I848,I849,K802,L050,L989,R104,R688,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,A483,G20,G439,I10,I846,I848,K319,K635,R101,R51,Z512,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4001,,,61,,,, +eid,dummyfield,customfield,1329-0.0,1329-1.0,1329-2.0,1329-3.0,1339-0.0,1339-1.0,1339-2.0,1339-3.0,1379-0.0,1379-1.0,1379-2.0,1379-3.0,1408-0.0,1408-1.0,1408-2.0,1408-3.0,1548-0.0,1548-1.0,1548-2.0,1548-3.0,1707-0.0,1707-1.0,1707-2.0,1727-0.0,1727-1.0,1727-2.0,1777-0.0,1777-1.0,1777-2.0,20002-0.0,20002-0.1,20002-0.2,20002-0.3,20002-0.4,20002-0.5,20002-0.6,20002-0.7,20002-0.8,20002-0.9,20002-0.10,20002-0.11,20002-0.12,20002-0.13,20002-0.14,20002-0.15,20002-0.16,20002-0.17,20002-0.18,20002-0.19,20002-0.20,20002-0.21,20002-0.22,20002-0.23,20002-0.24,20002-0.25,20002-0.26,20002-0.27,20002-0.28,20002-0.29,20002-0.30,20002-0.31,20002-0.32,20002-0.33,20002-1.0,20002-1.1,20002-1.2,20002-1.3,20002-1.4,20002-1.5,20002-1.6,20002-1.7,20002-1.8,20002-1.9,20002-1.10,20002-1.11,20002-1.12,20002-1.13,20002-1.14,20002-1.15,20002-1.16,20002-1.17,20002-1.18,20002-1.19,20002-1.20,20002-1.21,20002-1.22,20002-1.23,20002-1.24,20002-1.25,20002-1.26,20002-1.27,20002-1.28,20002-1.29,20002-1.30,20002-1.31,20002-1.32,20002-1.33,20002-2.0,20002-2.1,20002-2.2,20002-2.3,20002-2.4,20002-2.5,20002-2.6,20002-2.7,20002-2.8,20002-2.9,20002-2.10,20002-2.11,20002-2.12,20002-2.13,20002-2.14,20002-2.15,20002-2.16,20002-2.17,20002-2.18,20002-2.19,20002-2.20,20002-2.21,20002-2.22,20002-2.23,20002-2.24,20002-2.25,20002-2.26,20002-2.27,20002-2.28,20002-2.29,20002-2.30,20002-2.31,20002-2.32,20002-2.33,20002-3.0,20002-3.1,20002-3.2,20002-3.3,20002-3.4,20002-3.5,20002-3.6,20002-3.7,20002-3.8,20002-3.9,20002-3.10,20002-3.11,20002-3.12,20002-3.13,20002-3.14,20002-3.15,20002-3.16,20002-3.17,20002-3.18,20002-3.19,20002-3.20,20002-3.21,20002-3.22,20002-3.23,20002-3.24,20002-3.25,20002-3.26,20002-3.27,20002-3.28,20002-3.29,20002-3.30,20002-3.31,20002-3.32,20002-3.33,30270-0.0,30270-1.0,30270-2.0,40006-0.0,40006-1.0,40006-2.0,40006-3.0,40006-4.0,40006-5.0,40006-6.0,40006-7.0,40006-8.0,40006-9.0,40006-10.0,40006-11.0,40006-12.0,40006-13.0,40006-14.0,40006-15.0,40006-16.0,41202-0.0,41202-0.1,41202-0.2,41202-0.3,41202-0.4,41202-0.5,41202-0.6,41202-0.7,41202-0.8,41202-0.9,41202-0.10,41202-0.11,41202-0.12,41202-0.13,41202-0.14,41202-0.15,41202-0.16,41202-0.17,41202-0.18,41202-0.19,41202-0.20,41202-0.21,41202-0.22,41202-0.23,41202-0.24,41202-0.25,41202-0.26,41202-0.27,41202-0.28,41202-0.29,41202-0.30,41202-0.31,41202-0.32,41202-0.33,41202-0.34,41202-0.35,41202-0.36,41202-0.37,41202-0.38,41202-0.39,41202-0.40,41202-0.41,41202-0.42,41202-0.43,41202-0.44,41202-0.45,41202-0.46,41202-0.47,41202-0.48,41202-0.49,41202-0.50,41202-0.51,41202-0.52,41202-0.53,41202-0.54,41202-0.55,41202-0.56,41202-0.57,41202-0.58,41202-0.59,41202-0.60,41202-0.61,41202-0.62,41202-0.63,41202-0.64,41202-0.65,41204-0.0,41204-0.1,41204-0.2,41204-0.3,41204-0.4,41204-0.5,41204-0.6,41204-0.7,41204-0.8,41204-0.9,41204-0.10,41204-0.11,41204-0.12,41204-0.13,41204-0.14,41204-0.15,41204-0.16,41204-0.17,41204-0.18,41204-0.19,41204-0.20,41204-0.21,41204-0.22,41204-0.23,41204-0.24,41204-0.25,41204-0.26,41204-0.27,41204-0.28,41204-0.29,41204-0.30,41204-0.31,41204-0.32,41204-0.33,41204-0.34,41204-0.35,41204-0.36,41204-0.37,41204-0.38,41204-0.39,41204-0.40,41204-0.41,41204-0.42,41204-0.43,41204-0.44,41204-0.45,41204-0.46,41204-0.47,41204-0.48,41204-0.49,41204-0.50,41204-0.51,41204-0.52,41204-0.53,41204-0.54,41204-0.55,41204-0.56,41204-0.57,41204-0.58,41204-0.59,41204-0.60,41204-0.61,41204-0.62,41204-0.63,41204-0.64,41204-0.65,41204-0.66,41204-0.67,41204-0.68,41204-0.69,41204-0.70,41204-0.71,41204-0.72,41204-0.73,41204-0.74,41204-0.75,41204-0.76,41204-0.77,41204-0.78,41204-0.79,41204-0.80,41204-0.81,41204-0.82,41204-0.83,41204-0.84,41204-0.85,41204-0.86,41204-0.87,41204-0.88,41204-0.89,41204-0.90,41204-0.91,41204-0.92,41204-0.93,41204-0.94,41204-0.95,41204-0.96,41204-0.97,41204-0.98,41204-0.99,41204-0.100,41204-0.101,41204-0.102,41204-0.103,41204-0.104,41204-0.105,41204-0.106,41204-0.107,41204-0.108,41204-0.109,41204-0.110,41204-0.111,41204-0.112,41204-0.113,41204-0.114,41204-0.115,41204-0.116,41204-0.117,41204-0.118,41204-0.119,41204-0.120,41204-0.121,41204-0.122,41204-0.123,41204-0.124,41204-0.125,41204-0.126,41204-0.127,41204-0.128,41204-0.129,41204-0.130,41204-0.131,41204-0.132,41204-0.133,41204-0.134,41204-0.135,41204-0.136,41204-0.137,41204-0.138,41204-0.139,41204-0.140,41204-0.141,41204-0.142,41204-0.143,41204-0.144,41204-0.145,41204-0.146,41204-0.147,41204-0.148,41204-0.149,41204-0.150,41204-0.151,41204-0.152,41204-0.153,41204-0.154,41204-0.155,41204-0.156,41204-0.157,41204-0.158,41204-0.159,41204-0.160,41204-0.161,41204-0.162,41204-0.163,41204-0.164,41204-0.165,41204-0.166,41204-0.167,41204-0.168,41204-0.169,41204-0.170,41204-0.171,41204-0.172,41204-0.173,41204-0.174,41204-0.175,41204-0.176,41204-0.177,41204-0.178,41204-0.179,41204-0.180,41204-0.181,41204-0.182,41204-0.183,21000-0.0,21000-1.0,21000-2.0,21003-0.0,21003-1.0,21003-2.0,21003-3.0,22001-0.0 +1,2,1.0,1,,,,2,,,,1,,,,-3,,,,1,,,,1,1,,3,,,1,,,1066,1473,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,1067,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,79.5,,,C439,C449,D487,,,,,,,,,,,,,,,C64,C780,I722,J939,K573,M1995,T818,K44,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,O26,C780,E119,M1999,R590,Y831,Z855,Z867,Z921,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,64,,,,1 +2,2,1.0,1,,,,2,,,,1,,,,-1,,,,1,,,,1,,,1,,,0,,,1386,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,82.61,,,,,,,,,,,,,,,,,,,,O021,O044,O209,O268,O48,O809,T810,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,M545,O268,R104,Z370,Z370,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,42,,,,0 +3,2,13.0,1,,,,1,,,,2,,,,-1,,,,1,,,,2,,,3,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,81.0,,,,,,,,,,,,,,,,,,,,,,K44,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3002,,,44,,,,0 +4,2,1.0,0,,,,1,,,,2,,,,3,,,,2,,,,2,,,4,,,-1,,,1065,1113,1111,1465,1464,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,78.8,,,D370,C440,,,,,,,,,,,,,,,,D649,J459,K297,L732,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,B378,D649,E119,E669,I10,I272,I450,I517,J448,J449,J459,Z139,Z270,Z800,Z880,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,46,,,,0 +5,2,1.0,2,,,,2,,,,1,,,,3,,,,2,,,,,,,2,,,-3,,,1371,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1066,1067,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,83.16,,,,,,,,,,,,,,,,,,,,D861,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Z874,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,49,,,,1 +6,2,143.2,2,,,,1,,,,0,,,,1,,,,1,,,,-3,,,2,,,,,,1266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,73.7,,,D412,,,,,,,,,,,,,,,,,I251,I841,I849,L989,M2556,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,E780,I10,I209,I489,I959,R31,Z922,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,57,,,,1 +7,2,0.3,1,,,,1,,,,2,,,,3,,,,2,,,,3,,,4,,,1,,,1065,1453,1402,1477,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,81.72,,,D414,C438,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,45,,,,0 +8,2,1.0,2,,,,2,,,,1,,,,2,,,,2,,,,2,,,3,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,84.0,,,,,,,,,,,,,,,,,,,,C675,C679,I210,N328,N329,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C676,E669,G560,I10,M139,N359,N40,Z855,Z864,Z966,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,57,,,,1 +9,2,1.0,1,,,,2,,,,1,,,,3,,,,2,,,,1,,,2,,,1,,,1455,1660,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,75.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,G20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1001,,,42,,,,1 +10,2,2.0,3,,,,2,,,,1,,,,,,,,1,,,,3,,,4,,,1,,,1065,99999,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D649,I841,I848,I849,K802,L050,L989,R104,R688,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,A483,G20,G439,I10,I846,I848,K319,K635,R101,R51,Z512,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4001,,,61,,,, diff --git a/test/datasets_extraction.jl b/test/datasets_extraction.jl index 46fba26..9e699e7 100644 --- a/test/datasets_extraction.jl +++ b/test/datasets_extraction.jl @@ -21,15 +21,18 @@ end parsed_args = Dict( "dataset" => joinpath("data", "ukb_sample_traits.csv"), "out" => "extracted.csv", - "conf" => joinpath("config", "config.yaml"), + "conf" => joinpath("config", "config_with_custom_fields.yaml"), "withdrawal-list" => nothing, "verbosity" => 0 ) filter_and_extract(parsed_args) - traits = CSV.read(parsed_args["out"], DataFrame) - @test size(traits) == (10, 21) + @test size(traits) == (10, 23) + + # Custom fields are simply pushed forward + @test traits.dummyfield == [2, 2, 2, 2, 2, 2, 2, 2, 2, 2] + @test traits.customfield == [1.0, 1.0, 13.0, 1.0, 1.0, 143.2, 0.3, 1.0, 1.0, 2.0] # 1707 is a categorical field test_column_with_missing(