- The
README
has been significantly reduced, simplifying the sample analyses into independent vignettes (#35)
- We are now on CRAN! 🥳
-
New clinical data merge CLI tool (@stufield, #25)
Rscript --vanilla merge_clin.R
for merging clinical variables into existing*.adat
SomaScan data files- added 2 new example
meta.csv
andmeta2.csv
files to run examples with random data but with valid index keys - see
dir(system.file("cli", "merge", package = "SomaDataIO"))
-
Package data objects (@stufield, #32)
example_data.adat
was reduced in size ton = 10
samples (from 192) to conform to CRAN size requirements (< 5MB)- the current file was renamed
example_data10.adat
to reflect this change - this likely has far-reaching consequences for users who access
this flat file via
system.file()
- the
example_data
object itself however remains true to its original file (https://github.com/SomaLogic/SomaLogic-Data/blob/master/example_data.adat
) - the directory location
inst/example/
was renamedinst/extdata/
to conform to CRAN package standard naming conventions - the file
single_sample.adat
was removed from package data as it is now redundant (however still used in unit testing) SomaDataObjects
was renamed and is nowSomaScanObjects
-
Gradual deprecation (@stufield)
read.adat()
is now soft-deprecated; please useread_adat() instead
- lifecycle for soft-deprecated
warn()
->stop()
for functions that have been been soft deprecated sincev5.0.0
getSomamers()
getSomamerData()
meltExpressionSet()
-
New S3 print method default (@stufield)
tibble
has newmax_extra_cols =
argument, which is set to6
for theprint.soma_adat
method
-
New S3 merge method (@stufield, #31)
- calling
base::merge()
on asoma_adat
is strongly discouraged - we now redirect users to use
dplyr::*_join()
alternatives which are designed to preservesoma_adat
attributes
- calling
-
Code hardening for
prepHeaderMeta()
(@stufield)- some ADATs do not have
CreatedDate
andCreatedBy
in the HEADER entry. This currently breaks the writer - simplified to make more robust but also refactor to be more convenient (for abnormal ADATs not generated by standard SomaScan processing)
CreatedDateHistory
was removed as an entry from written ADATsCreatedByHistory
was combined and dated for written ADATsNULL
behavior remains if keys are missingCreatedBy
andCreatedDate
will be generated either as new entries or over-written as appropriate
- some ADATs do not have
-
Numerous non-user-facing (API) changes internal package maintenance, efficiency, and structural upgrades were included
-
Bug-fix release related to
write_adat()
:- fixed bug in
write_adat()
that resulted from adding/removing clinical (non-SomaScan) variables to an ADAT. Export viawrite_adat()
resulted in a broken ADAT file (@stufield, #18) write_adat()
now has much higher fidelity to original text file (*.adat
) in full-cycle read-write-read operations; particularly in presence of bangs (!
) in the Header section and in floating point decimals in the?Col.Meta
sectionwrite_adat()
no longer converts commas (,
) to semi-colons (;
) in the?Col.Meta
block (originally introduced to avoid cell alignment issues in*.csv
formats)write_adat()
no longer concatenates written ADATs, when writing to the same file. Data is over-written to file to avoid mangled ADATs resulting from re-writing to the same connection and to match the default behavior ofwrite.table()
,write.csv()
, etc.
- fixed bug in
-
read_adat()
now has more consistent character type theBarcode2
variable in standard ADATs, now forcescharacter
class, does not allow R'sread.delim()
to "guess" the type -
Decreased dependency of
magrittr
pipes (%>%
) in favor of the native R pipe (|>
). As a result the package now depends onR >= 4.1.0
SomaDataIO
will continue to re-exportmagrittr
pipes for backward compatibility, but this should not be considered permanent. Please code accordingly
-
Migration to the default branch in GitHub from
master
->main
(@stufield, #19) -
Numerous non-user-facing (API) changes internal package maintenance, efficiency, and structural upgrades were included
-
Upgrades primarily from improvements to SomaLogic internal code base, including: (@stufield)
- general reduction on external package dependency to improve code stability
- internal usage of base R alternatives to the
readr
package for parsing and importing ADATs (e.g.read.delim()
overreadr::read_delim()
). This is mostly for code simplification, but can often result in marked speed improvements. As the SomaScanplex
size increases, this speed improvement will become more important. parseHeader()
was dramatically simplified, now reading in lines 20L at a time until the RFU block is reached. In addition, once the block is reached, all header lines are read-in once and indexed (as opposed to line-by-line).read_adat()
now specifies column types viacolClasses =
which for the majority of the ADAT is typedouble
for the RFU columns. This should dramatically improve speed of ingest.write_adat()
was simplified internally, with fewer nestedapply
and for-loops.- encoding for all input/output (I/O) is assumed to be
UTF-8
.
-
New
getAnalytes()
S3 method for classrecipe
from therecipes
package. -
New
loadAdatsAsList()
to load multiple ADAT files in a single call and optionally collapse them into a single data frame (@stufield, #8). -
New
getTargetNames()
function to map ADATseq.XXXX.XX
names to corresponding protein targets from the annotations table
-
SomaLogic Inc. is now SomaLogic Operating Co. Inc.
-
Added new documentation regarding
Col.Meta
(@stufield, #12).- documentation around column meta data, row meta data, where they are found in an ADAT, and how to access them.
-
Research Use Only ("RUO") language was added to the README (@stufield, #10).
-
Numerous internal code improvements from SomaLogic code-base (@stufield)
- the consisted of reducing usage of external dependencies,
e.g. using
stop()
overui_stop()
andwarning()
overui_warn()
, usingusethis
,cli
, andcrayon
shims aliases. - package uses
purrr
very selectively and no longer usesstringr
. - using base R alternatives in favor of increased stability for underlying, non-user-facing code.
- the consisted of reducing usage of external dependencies,
e.g. using
-
New
lift_adat()
was added to provided 'lifting' functionality (@stufield, #11)- provides mechanism to convert RFU space between SomaScan versions (e.g. v4.1 -> v4.0).
- added new S3
transform.soma_adat()
method which simplifies linear scaling ofsoma_adat
columns (analytes). - uses an "Annotations file" (Excel) as source of scalars for transformation.
-
Minor improvements and updates to the
README.Rmd
(@stufield, #7)- fixed a broken
adat2eSet()
link in README (#5). - clearer text to the
README
regardingBiobase
installation. - added new links to external Bioconductor website in installation section of README.
- new
pkgdown
and links to Issues (#4). - SomaLogic logo was added to README.
- a lifecycle ("maturing") badge was added.
- fixed a broken
-
Startup message was improved with dynamic width (@stufield).
-
New
locateSeqId()
function to pull outSeqId
regex. (@stufield). -
New
read_annotations()
function (@stufield, #2)- new function to parse/import SomaLogic annotations files (
*.xlsx
).
- new function to parse/import SomaLogic annotations files (
-
New
set_rn()
drop-in replacement formagrittr::set_rownames()
-
getFeatures()
was renamed to be less ambiguous and better align with internal SomaLogic code usage. Now usegetAnalytes()
(@stufield) -
getFeatureData()
was also renamed togetAnalyteInfo()
(@stufield) -
various upgrades as required by code changes in external package dependencies, e.g.
tidyverse
. -
new alias for
read_adat()
,read.adat()
, for backward compatibility to previous versions ofSomaDataIO
(@stufield)
- Initial public release to GitHub!