aboutsummaryrefslogtreecommitdiff
path: root/r_qtl/r_qtl2.py
diff options
context:
space:
mode:
Diffstat (limited to 'r_qtl/r_qtl2.py')
-rw-r--r--r_qtl/r_qtl2.py34
1 files changed, 14 insertions, 20 deletions
diff --git a/r_qtl/r_qtl2.py b/r_qtl/r_qtl2.py
index 1e28bc0..87491d0 100644
--- a/r_qtl/r_qtl2.py
+++ b/r_qtl/r_qtl2.py
@@ -368,27 +368,21 @@ def read_geno_file_data(
replace_genotype_codes, genocodes=cdata.get("genotypes", {})))
-def load_samples(
- zipfilepath: Union[str, Path], filetype: str) -> tuple[str, ...]:
- """Load the samples/cases/individuals from file(s) of type 'filetype'."""
- cdata = read_control_file(zipfilepath)
+def load_samples(zipfilepath: Union[str, Path],
+ member: str,
+ transposed: bool) -> tuple[str, ...]:
+ """Load the samples/cases/individuals from file 'member'."""
+ filedata = read_geno_file_data(zipfilepath, member)
samples: set[str] = set()
- for afile in cdata.get(filetype, []):
- filedata = read_geno_file_data(zipfilepath, afile)
- if cdata.get(f"{filetype}_transposed", False):
+ if transposed:
+ samples.update(
+ item for item in next(filedata)[1:] if item is not None)
+ else:
+ try:
+ next(filedata)# Ignore first row.
samples.update(
- item for item in next(filedata)[1:] if item is not None)
- else:
- try:
- next(filedata)# Ignore first row.
- samples.update(
- line[0] for line in filedata if line[0] is not None)
- except StopIteration:# Empty file.
- pass
+ line[0] for line in filedata if line[0] is not None)
+ except StopIteration:# Empty file.
+ pass
return tuple(samples)
-
-
-load_geno_samples = partial(load_samples, filetype="geno")
-load_founder_geno_samples = partial(load_samples, filetype="founder_geno")
-load_pheno_samples = partial(load_samples, filetype="pheno")