1#ifndef TAKANE_RANGED_SUMMARIZED_EXPERIMENT_HPP
2#define TAKANE_RANGED_SUMMARIZED_EXPERIMENT_HPP
4#include "millijson/millijson.hpp"
5#include "byteme/byteme.hpp"
23void validate(
const std::filesystem::path&,
const ObjectMetadata&, Options& options);
24size_t height(
const std::filesystem::path&,
const ObjectMetadata&, Options& options);
25bool derived_from(
const std::string&,
const std::string&,
const Options&);
34namespace ranged_summarized_experiment {
44 const std::string type_name =
"ranged_summarized_experiment";
45 const auto& rsemap = internal_json::extract_typed_object_from_metadata(metadata.
other, type_name);
47 const std::string version_name =
"version";
48 const std::string& vstring = internal_json::extract_string_from_typed_object(rsemap, version_name, type_name);
49 auto version = ritsuko::parse_version_string(vstring.c_str(), vstring.size(),
true);
50 if (version.major != 1) {
51 throw std::runtime_error(
"unsupported version string '" + vstring +
"'");
54 auto rangedir = path /
"row_ranges";
55 if (std::filesystem::exists(rangedir)) {
57 if (!
derived_from(rangemeta.type,
"genomic_ranges", options) && !
derived_from(rangemeta.type,
"genomic_ranges_list", options)) {
58 throw std::runtime_error(
"object in 'row_ranges' must be a 'genomic_ranges' or 'genomic_ranges_list'");
65 throw std::runtime_error(
"object in 'row_ranges' must have length equal to the number of rows of its parent '" + metadata.
type +
"'");
void validate(const std::filesystem::path &path, const ObjectMetadata &metadata, Options &options)
Definition ranged_summarized_experiment.hpp:41
void validate(const std::filesystem::path &path, const ObjectMetadata &metadata, Options &options)
Definition summarized_experiment.hpp:44
size_t height(const std::filesystem::path &path, const ObjectMetadata &metadata, Options &options)
Definition summarized_experiment.hpp:122
takane validation functions.
Definition _derived_from.hpp:15
size_t height(const std::filesystem::path &path, const ObjectMetadata &metadata, Options &options)
Definition _height.hpp:88
ObjectMetadata read_object_metadata(const std::filesystem::path &path)
Definition utils_public.hpp:74
void validate(const std::filesystem::path &path, const ObjectMetadata &metadata, Options &options)
Definition _validate.hpp:107
bool derived_from(const std::string &type, const std::string &base, const Options &options)
Definition _derived_from.hpp:80
Validation options.
Definition utils_public.hpp:94
Validation for summarized experiments.