数据集
SingleCellDataset
基类:Dataset
用于单细胞预训练的数据集类。这些可以使用 sc_memmap.py 脚本生成。未来的更新将包含更全面的工作流程,用于从 scRNA-seq 生成稀疏内存映射。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
data_path
|
str
|
单细胞文件以 SingleCell Memmap 格式存储的路径。它应包含以下文件: - |
必需 |
tokenizer
|
Any
|
用于对输入数据进行分词的分词器。 |
必需 |
median_dict
|
dict
|
包含每个基因中位数值的字典。默认为 None。 |
None
|
max_len
|
int
|
输入序列的最大长度。默认为 1024。 |
1024
|
include_unrecognized_vocab_in_dataset
|
bool
|
如果设置为 True,则执行硬检查以验证所有基因标识符是否都在用户提供的分词器词汇表中。默认为 False,这意味着将排除用户提供的分词器词汇表中不存在的任何基因标识符。 |
False
|
属性
名称 | 类型 | 描述 |
---|---|---|
data_path |
str
|
单细胞文件以 SCDL 内存映射格式存储的路径。 |
max_len |
int
|
输入序列的最大长度。 |
metadata |
dict
|
从 |
gene_medians |
dict
|
包含每个基因中位数值的字典。如果为 None,则所有基因的中位数均假定为 '1'。 |
num_train |
int
|
训练拆分中的样本数。 |
num_val |
int
|
验证拆分中的样本数。 |
num_test |
int
|
测试拆分中的样本数。 |
index_offset |
int
|
应用于索引的偏移量。 |
length |
int
|
数据集中的样本总数。 |
gene_data |
memmap
|
以 CSR 格式存储的基因表达值。 |
gene_data_indices |
memmap
|
与基因值关联的基因索引。 |
gene_data_ptr |
memmap
|
每个样本的列索引。 |
tokenizer |
用于对输入数据进行分词的分词器。 |
|
dataset_ccum |
ndarray
|
行计数的累积和,用于将行索引映射到数据集 ID。 |
dataset_map |
dict
|
数据集 ID 到数据集名称的映射。 |
方法
名称 | 描述 |
---|---|
__len__ |
返回数据集的长度。 |
__getitem__ |
返回给定索引处的项目。 |
另请参阅
bionemo/data/singlecell/sc_memmap.py - 创建从 hdf5 文件实例化 singlecell 数据集所需的工件。
源代码位于 bionemo/geneformer/data/singlecell/dataset.py
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
|
__getitem__(index)
执行查找和模型所需的转换。
源代码位于 bionemo/geneformer/data/singlecell/dataset.py
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
|
process_item(gene_data, gene_idxs, feature_ids, tokenizer, gene_median, rng, max_len=1024, mask_prob=0.15, mask_token_prob=0.8, random_token_prob=0.1, target_sum=10000, normalize=True, prepend_cls_token=True, eos_token=None, include_unrecognized_vocab_in_dataset=False)
处理数据集中的单个项目。
可选地执行中位数归一化和等级排序。分词器的 CLS 令牌被添加到每个样本的开头。在分词之前将基因名称转换为 ensemble id。期望 gene_medians 包含 ensembl id 作为键。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
gene_data
|
list
|
基因数据列表,这些是表达计数。 |
必需 |
gene_idxs
|
list
|
基因索引列表,这些是 'metadata['feature_ids']' 中的键,并且与 CSR 条目相对应。 |
必需 |
feature_ids
|
list
|
完整数据集的特征 ID。 |
必需 |
tokenizer
|
Tokenizer
|
Tokenizer object. |
必需 |
gene_median
|
optional(dict
|
基因中位数词典。默认为 None。期望 ensembl ID 作为键。 |
必需 |
rng
|
Generator
|
随机数生成器,以确保确定性结果。 |
必需 |
max_len
|
int
|
项目的最大长度。默认为 1024。将填充应用于任何短于 max_len 的序列,并截断任何长于 max_len 的序列。 |
1024
|
mask_prob
|
float
|
屏蔽令牌的概率。默认为 0.15。 |
0.15
|
target_sum
|
int
|
归一化的目标总和。默认为 10000。 |
10000
|
normalize
|
bool
|
用于归一化基因数据的标志。默认为 True。设置后,这将按基因令牌的中位数表达值重新排序它们。 |
True
|
probabilistic_dirichlet_sampling
|
bool
|
启用概率狄利克雷采样的标志。默认为 False。 |
必需 |
dirichlet_alpha
|
float
|
如果由 |
必需 |
same_length
|
bool
|
为 true 时,采样与您在狄利克雷采样器之前最初拥有的基因长度相同的长度。 |
必需 |
recompute_globals
|
bool
|
为 true 时,全局数组始终重新计算。这仅对测试有用。 |
必需 |
include_unrecognized_vocab_in_dataset
|
bool
|
如果设置为 True,则执行硬检查以验证所有基因标识符是否都在用户提供的分词器词汇表中。默认为 False,这意味着将排除用户提供的分词器词汇表中不存在的任何基因标识符。 |
False
|
返回
名称 | 类型 | 描述 |
---|---|---|
dict |
BertSample
|
已处理的项目字典。 |
此方法非常重要且非常有用。为了概括这一点,我们应该为以下内容添加一个抽象:
具有某种函子转换的数据集。
源代码位于 bionemo/geneformer/data/singlecell/dataset.py
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 |
|