diff options
author | Frederick Muriuki Muriithi | 2024-01-16 06:29:13 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-01-16 06:52:28 +0300 |
commit | fc27d0447c189bfd9222c7e8ccc14074cfd6adce (patch) | |
tree | feb36cc9c2fec2461af8a2b621429bbac70c8e0b | |
parent | b7942002b2f40af965bd0ef9c9673fbaeb28a9e1 (diff) | |
download | gn-uploader-fc27d0447c189bfd9222c7e8ccc14074cfd6adce.tar.gz |
Provide defaults for various control variables
`na.strings` has a default value of "NA" as stated in
https://kbroman.org/qtl2/assets/vignettes/input_files.html#CSV_files
quote:
> Missing value codes will be specified in the control file (as
> na.strings, with default value "NA") and will apply across all
> files, so a missing value code for one file cannot be an allowed
> value in another file.
for `comment.char`
> The CSV files can include a header with a set of comment lines
> initiated by a value specified in the control file as comment.char
> (with default value "#").
for `sep`:
The default separator is expected to be the comma, as stated in
https://kbroman.org/qtl2/assets/vignettes/input_files.html#field-separator
quote:
> If the data files use a separator other than a comma ...
-rw-r--r-- | r_qtl/r_qtl2.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/r_qtl/r_qtl2.py b/r_qtl/r_qtl2.py index 13ac355..1755a05 100644 --- a/r_qtl/r_qtl2.py +++ b/r_qtl/r_qtl2.py @@ -24,16 +24,18 @@ def control_data(zfile: ZipFile) -> dict: if num_files > 1: raise InvalidFormat("Found more than one possible control file.") - return (json.loads(zfile.read(files[0])) + return { + "na.strings": ["NA"], + "comment.char": "#", + "sep": ",", + **(json.loads(zfile.read(files[0])) if files[0].endswith(".json") else yaml.safe_load(zfile.read(files[0]))) + } def replace_na_strings(cdata, val): """Replace values indicated in `na.strings` with `None`.""" - nastrings = cdata.get("na.strings") - if bool(nastrings): - return (None if val in nastrings else val) - return val + return (None if val in cdata.get("na.strings", ["NA"]) else val) def with_non_transposed(zfile: ZipFile, member_key: str, |