bed-reader 1.0.0b3__tar.gz → 1.0.0b4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/Cargo.lock +1 -1
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/Cargo.toml +1 -1
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/PKG-INFO +1 -1
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/_open_bed.py +26 -1
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/test_open_bed.py +33 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/.flake8 +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/.github/workflows/ci.yml +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/.gitignore +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/.isort.cfg +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/AUTHORS.txt +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/CHANGELOG.md +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/LICENSE.md +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/README-rust.md +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/README.md +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/__init__.py +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/_sample_data.py +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/_to_bed.py +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/__init__.py +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/benchmark/benchmark.py +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/500x400_o640_array.memmap +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/badfile.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/empty.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/plink_sim_10s_100v_10pmiss.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/plink_sim_10s_100v_10pmiss.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/plink_sim_10s_100v_10pmiss.fam +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.bad_bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.bim_bad_positions.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.deb +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.fam +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.fam_bad +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.maf +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small.mib +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small2_array.memmap +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small_array.memmap +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small_no_bim.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small_no_bim.fam +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small_no_fam.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small_no_fam.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small_too_short.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small_too_short.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/small_too_short.fam +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/smallmode0.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/smallmode0.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/smallmode0.fam +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/smallmodebad.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/some_missing.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/some_missing.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/some_missing.fam +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/some_missing.properties.npz +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/some_missing.val.npy +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/sparse.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/sparse.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/sparse.fam +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/toydata.5chrom.bed +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/toydata.5chrom.bim +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/toydata.5chrom.fam +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/registry.txt +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/test_file_dot.py +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/test_opt_dep.py +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/build.rs +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/ignore.py +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/pyproject.toml +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/pytest.ini +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/requirements-dev.txt +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/requirements-min-dev.txt +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/requirements.txt +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/src/lib.rs +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/src/python_module.rs +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/src/tests.rs +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/tests/tests_api.rs +0 -0
- {bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/useful.bat +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
2
2
|
|
|
3
3
|
[package]
|
|
4
|
-
version = "1.0.0-beta.
|
|
4
|
+
version = "1.0.0-beta.4"
|
|
5
5
|
name = "bed-reader"
|
|
6
6
|
description = "Read and write the PLINK BED format, simply and efficiently."
|
|
7
7
|
repository = "https://github.com/fastlmm/bed-reader"
|
|
@@ -1511,11 +1511,36 @@ def _read_csv(filepath, delimiter=None, dtype=None, usecols=None):
|
|
|
1511
1511
|
# Find the dtype for this column
|
|
1512
1512
|
col_dtype = dtype.get(input_index, np.str_)
|
|
1513
1513
|
# Convert the column list to a numpy array with the specified dtype
|
|
1514
|
-
columns.append(
|
|
1514
|
+
columns.append(_convert_to_dtype(col, col_dtype))
|
|
1515
1515
|
|
|
1516
1516
|
return columns, row_count
|
|
1517
1517
|
|
|
1518
1518
|
|
|
1519
|
+
def _convert_to_dtype(str_arr, dtype):
|
|
1520
|
+
assert dtype in [np.str_, np.float32, np.int32] # real assert
|
|
1521
|
+
|
|
1522
|
+
if dtype == np.str_:
|
|
1523
|
+
return str_arr
|
|
1524
|
+
|
|
1525
|
+
try:
|
|
1526
|
+
new_arr = str_arr.astype(dtype)
|
|
1527
|
+
except ValueError as e:
|
|
1528
|
+
if dtype == np.float32:
|
|
1529
|
+
raise e
|
|
1530
|
+
# for backwards compatibility, see if intermediate float helps int conversion
|
|
1531
|
+
try:
|
|
1532
|
+
assert dtype == np.int32 # real assert
|
|
1533
|
+
float_arr = str_arr.astype(np.float32)
|
|
1534
|
+
except ValueError:
|
|
1535
|
+
raise e
|
|
1536
|
+
new_arr = float_arr.astype(np.int32)
|
|
1537
|
+
if not np.array_equal(new_arr, float_arr):
|
|
1538
|
+
raise ValueError(
|
|
1539
|
+
f"invalid literal for int: '{str_arr[np.where(new_arr != float_arr)][:1]}')"
|
|
1540
|
+
)
|
|
1541
|
+
return new_arr
|
|
1542
|
+
|
|
1543
|
+
|
|
1519
1544
|
if __name__ == "__main__":
|
|
1520
1545
|
import pytest
|
|
1521
1546
|
|
|
@@ -898,6 +898,39 @@ def test_sparse():
|
|
|
898
898
|
print(val_sparse.shape)
|
|
899
899
|
|
|
900
900
|
|
|
901
|
+
def test_convert_to_dtype():
|
|
902
|
+
from bed_reader._open_bed import _convert_to_dtype
|
|
903
|
+
|
|
904
|
+
input = [
|
|
905
|
+
[["a", "b", "c"], ["a", "b", "c"], None, None],
|
|
906
|
+
[["1.0", "2.0", "3.0"], ["1.0", "2.0", "3.0"], [1, 2, 3], [1.0, 2.0, 3.0]],
|
|
907
|
+
[["1.0", "2.0", "3.5"], ["1.0", "2.0", "3.5"], None, [1.0, 2.0, 3.5]],
|
|
908
|
+
[["1", "2", "3"], ["1", "2", "3"], [1, 2, 3], [1.0, 2.0, 3.0]],
|
|
909
|
+
[["1", "A", "3"], ["1", "A", "3"], None, None],
|
|
910
|
+
]
|
|
911
|
+
# convert all to np.array
|
|
912
|
+
input = [
|
|
913
|
+
[np.array(inner) if inner is not None else None for inner in outer]
|
|
914
|
+
for outer in input
|
|
915
|
+
]
|
|
916
|
+
|
|
917
|
+
for ori, exp_str, exp_int, exp_float in input:
|
|
918
|
+
for dtype, exp in (
|
|
919
|
+
[np.str_, exp_str],
|
|
920
|
+
[np.int32, exp_int],
|
|
921
|
+
[
|
|
922
|
+
np.float32,
|
|
923
|
+
exp_float,
|
|
924
|
+
],
|
|
925
|
+
):
|
|
926
|
+
try:
|
|
927
|
+
actual = _convert_to_dtype(ori, dtype)
|
|
928
|
+
assert np.array_equal(actual, exp)
|
|
929
|
+
except ValueError as e:
|
|
930
|
+
print(e)
|
|
931
|
+
assert exp is None
|
|
932
|
+
|
|
933
|
+
|
|
901
934
|
if __name__ == "__main__":
|
|
902
935
|
logging.basicConfig(level=logging.INFO)
|
|
903
936
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/plink_sim_10s_100v_10pmiss.bed
RENAMED
|
File without changes
|
{bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/plink_sim_10s_100v_10pmiss.bim
RENAMED
|
File without changes
|
{bed_reader-1.0.0b3 → bed_reader-1.0.0b4}/bed_reader/tests/data/plink_sim_10s_100v_10pmiss.fam
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|