We could improve the functions listed above in 2 ways:
All these functions only accept a single assay at a time. It would be handy for scp to handle multiple assays at once. Also, what about aggregateFeatures (cf scp::aggregateFeaturesOverAssays)?
These functions are very slow to iterate over multiple assays. After profiling, most of the time is spend in addAssayLinkOneToOne() -> update_assay_links() -> validObject(). This means that at every iteration, the AssayLinks are updated and the whole object is checked for validity. Checking only for AssayLinks validity would spare lots of computational time.
We could improve the functions listed above in 2 ways:
scp
to handle multiple assays at once. Also, what aboutaggregateFeatures
(cfscp::aggregateFeaturesOverAssays
)?addAssayLinkOneToOne()
->update_assay_links()
->validObject()
. This means that at every iteration, theAssayLinks
are updated and the whole object is checked for validity. Checking only forAssayLinks
validity would spare lots of computational time.