genio 1.0.0.9000 (2019-03-15)
- First GitHub release! Includes
read_bim
, read_fam
, read_ind
, and read_snp
functions.
genio 1.0.1.9000 (2019-03-31)
- Added an efficient
write_bed
written in Rcpp and thoroughly tested against BEDMatrix
package.
genio 1.0.2.9000 (2019-04-01)
- Improved
write_bed
error message for invalid data, documentation.
- Extended
write_bed
tests.
genio 1.0.3.9000 (2019-04-01)
- Added
write_fam
, write_bim
, write_ind
, write_snp
functions.
- Refactored
read_*
code, updated docs and tests.
genio 1.0.4.9000 (2019-04-02)
- Added
make_fam
, make_bim
, and write_plink
functions.
- Fixed
read_fam
bug (used to require phenotypes to be integers, now can be double numbers).
- Added
verbose
option to write_bed
.
genio 1.0.5.9000 (2019-04-05)
write_plink
now returns NULL
invisibly.
- Added
require_files_plink
, delete_files_plink
.
- Removed “Fatal:” prefix from stop messages.
genio 1.0.6.9000 (2019-04-08)
- Added
ind_to_fam
, sex_to_int
, sex_to_char
.
- 2019-05-13: added ORCID to author info
genio 1.0.7.9000 (2019-05-16)
- Added
read_bed
and read_plink
! Now all Plink reading and writing operations are supported.
- Added package documentation summarizing main read and write functions.
- Added vignette comparing our BED reader and writer to those of
BEDMatrix
, snpStats
, and lfa
.
genio 1.0.8 (2019-05-21)
- First CRAN submission
- Genotype matrix row and column names from BIM/FAM files
read_plink
now includes row and column names automatically.
read_bed
accepts either row and column names or just their numbers.
write_plink
checks these row and column names against the BIM and FAM tables for consistency, if these are all present.
- Added memory estimation and comparisons sections to vignette.
- Windows debugging
- Now BED writing is in binary mode, like reading already was.
- Reduced comparisons to
BEDMatrix
in testing, since it leaves temporary files open and on Windows they do not get deleted and leave confusing error messages behind.
genio 1.0.9 (2019-05-24)
- CRAN-requested edits, resubmission
- DESCRIPTION edits
- Changed examples, vignettes, and tests to write files to the default temporary directory.
genio 1.0.10 (2019-05-28)
- CRAN submission follow ups, fixing issues that arose on other systems:
- Added
include <cerrno>
to my cpp code.
- Fixed a “heap buffer overflow” detected by valgrind that only occurred for data with fewer than 9 individuals (included many of my toy tests).
- Edited a test within vignette to allow for small machine precision-level errors.
genio 1.0.11 (2019-07-22)
- Added
read_phen
and write_phen
, a phenotype format (very similar to Plink’s FAM) used by GCTA and EMMAX.
- Now
write_plink
returns the data it wrote, invisibly as a list. Most useful for auto-generated data.
genio 1.0.11.9000 (2019-08-05)
- Fixed a “buffer overflow” bug that occurred when input files started with “~/” on Unix systems.
genio 1.0.12 (2019-12-17)
- Second CRAN submission
- Moved logo to
man/figures/
- Minor Roxygen-related updates.
genio 1.0.13 (2020-05-21)
- Added
tidy_kinship
to transform a square symmetric matrix into a long-format table that is easy to sort and add annotations to
genio 1.0.13.9000 (2020-06-16)
- Added
read_grm
and write_grm
to read and write GCTA’s binary genetic relatedness matrix (GRM) format.
- Also added auxiliary functions
require_files_grm
, delete_files_grm
, require_files_phen
, and delete_files_phen
.
genio 1.0.14.9000 (2020-06-23)
- Improved error message in
validate_tab_generic
.
genio 1.0.15.9000 (2020-07-03)
- Functions
write_plink
, write_bed
, and write_bim
now have append
option, for writing extremely large files in parts.
genio 1.0.16.9000 (2020-07-28)
- Added
write_eigenvec
and read_eigenvec
to read and write Plink/GCTA eigenvector files.
genio 1.0.17.9000 (2020-07-31)
- Added
count_lines
, uses C++ code (via Rcpp) to count file lines extremely quickly. Intended for counting numbers of individuals (from FAM and equivalent files) or numbers of loci (from BIM and equivalent files) when these files are extremely large and no other information is needed from those files.
genio 1.0.18.9000 (2020-08-17)
- Function
read_eigenvec
added Plink 2 support via comment
option, which by default now treats data after #
as comments. This enables automatically parsing eigenvec files generated by Plink 2, whose header line starts with #
(this header is ignored). Previously, parsing Plink 2 eigenvec files generated warnings and resulted in the first row being an additional row with all NA
values.
genio 1.0.19.9000 (2020-12-22)
- Function
read_bed
added a missing file check in R code.
- A check in the underlying C++ code already existed, but it could suffer from a buffer overflow if the erroneous file path was very long. Such buffer overflows are now completely avoided.
- Vignette: Removed
lfa
comparison.
- My latest
lfa
fork doesn’t have function read.bed
anymore, previously the slowest and most memory-hungry competitor, which genio::read_plink
was being compared to.
genio 1.0.20.9000 (2021-02-16)
- Documentation updates:
- Added GRM examples to README and
genio
package doc
- Clarified language and code examples throughout, normalized style (full conversion to roxygen markdown, including fixing some cases where old non-markdown notation did not work anymore)
- Spellchecked package
genio 1.0.21.9000 (2021-04-27)
- Added function
geno_to_char
to convert genotype numeric codes (allele dosages such as 0, 1, 2) into character codes such as ‘A/A’, ‘A/G’, ‘G/G’ (depending on locus).
- Added functions
read_matrix
and write_matrix
, intended for admixture inference data.
- Fixed documentation for
read_bed
, which previously incorrectly stated that the numerical genotypes (allele dosages) counted alternative alleles (allele 2 in BIM table), whereas the truth is that they count reference alleles (allele 1).
genio 1.0.22.9000 (2021-05-21)
- Function
count_lines
now returns value as integer instead of double (a very minor bug/annoyance fix).
genio 1.0.23 (2021-06-11)
- 3rd CRAN submission
- Removed
lfa
from suggested packages (no connection anymore since lfa
comparison was removed from vignette in version 1.0.19.9000).
- Fixed a dead link in the vignette.
- Removed “LazyData: true” from DESCRIPTION (to avoid a new “note” on R-devel).
genio 1.0.23.9000 (2021-07-01)
- Function
read_bed
now reads file
even if it doesn’t have a BED extension (as long as it exists).
- For additional flexibility, this function also has a new
ext
option.
- Thanks to Richel Bilderbeek for reporting this problem.
- Updated documentation for some
read_*
functions to clarify behavior regarding file
and ext
options.
- Internal changes
- Renamed internal function
real_path
to add_ext_read
to make the distinction clearer to add_ext
.
- Verified that all
read_*
functions use add_ext_read
while all write_*
functions use add_ext
. Only function count_lines
switched from add_ext
to add_ext_read
(in addition to read_bed
, which led to the earlier change), but count_lines
didn’t have a default extension so this change is less likely to matter.
- Reformatted this
NEWS.md
slightly to improve its automatic parsing.
genio 1.0.24.9000 (2021-07-01)
- Functions
read_bed
and read_plink
no longer stop with an error if the input BED file has non-zero padding bits.
- A real-life example (link below, also part of tests now) reported by Richel Bilderbeek (Thanks!) caused the error.
- https://github.com/kausmees/GenoCAE/tree/master/example_tiny
- I verified that both the
plink2
binary and the BEDMatrix
R package load this file without complaining about the non-zero pads, so I decided to agree in that behavior. I verified that genio
’s data agrees with BEDMatrix
after the fix.
genio 1.0.25 (2021-07-26)
- 4rd CRAN submission
write_bed/plink
with append = TRUE
debugged to write in “binary” mode.
- Fixed rare error observed in Windows only, where “binary” mode makes a difference, and only when written bytes matched certain special characters (such as newlines).
- Bug probably present since
append
option was introduced in 1.0.15.9000 (2020-07-03).
- Internally replaced
readr::read_table2
with readr::read_table
- Fixes warning message:
read_table2()
was deprecated in readr 2.0.0. Please use read_table()
instead.
- Reported by Richel Bilderbeek (thanks again!)
- Requires
readr
(>= 2.0.0, already on CRAN).
- Added tests for verbosity
- Replaced
pryr::object_size
with lobstr::obj_size
(a suggested package used in vignette only; the former was recently superseded by the latter)
- One-line vignette update for a change in former
pryr::object_size
output (now of class lobstr_bytes
), which triggered a CRAN warning.