分析结果存储结构(修改为支持多基因组)
PanGenomeResult
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| GetSVCopyNumberMatrix | 1 | SV结构变异的 CopyNumber 矩阵(行=存在SV事件的基因家族,列=全部基因组,没有SV事件的单元格为0) |
| GetSVMedianMatrix | 1 | SV结构变异的 Median 矩阵(行=存在SV事件的基因家族,列=全部基因组,没有SV事件的单元格为0) |
| GetSVMatrix | 1 | 把SV矩阵转换为 DataFrame,方便R#脚本通过 write.csv 保存为矩阵文件 |
| GetCategoryPercentMatrix | 1 | 基因家族分布比例的明细矩阵(行=每个基因组 + 一行平均值,列=四个家族类别) |
| Save | 1 | save current pan-genome analysis result object as zip archive file |
| LoadStream | 1 | load pan-genome analysis result data from a given zip archive file |
| IsSupportedVersion | 1 | 判断归档文件的格式版本是否可以被当前版本的代码读取 |
| ReadSection | 1 | 逐行读取归档之内的一个文本表条目(如果条目不存在则返回空集合) |
| Escape | 1 | 转义制表符/换行符/反斜杠,避免它们破坏文本表的结构 |
| nil | 1 | 空字符串转换为Nothing,保持与内存对象一致的语义 |
| WritePAVMatrix | 1 | PAV矩阵使用稀疏方式保存,只保存非零的拷贝数 |
| WriteGenomeStats | 1 | 写出基因组基本信息统计 |
| WritePCAData | 1 | 写出PAV矩阵的PCA降维散点数据 |
| WriteGenomeEntropyData | 1 | 写出基因组存在/缺失均衡度的香农信息熵散点数据 |
| WriteCategoryPercent | 1 | 写出基因家族分布比例(两种口径的平均值 + 逐基因组明细) |
| writePercentMatrix | 1 | 写出一个 [类别][基因组] 的百分比明细矩阵:每一个类别一行,第一列是口径的标记 |
| WriteSVEntropy | 1 | 写出SV结构变异的信息熵散点图与KMeans聚类结果 |
| WriteMeta | 1 | 写出一个元数据行(Key/Value) |
| ReadPAVMatrix | 1 | 读取稀疏保存的PAV矩阵,并且使用全部的基因组键补齐为完整的行 |
| ReadMeta | 1 | 读取条目之内的元数据行(只处理以 PanGenomeResult.MetaMark 开头的行) |
| ReadGenomeStats | 1 | 读取基因组基本信息统计 |
| ReadPCAData | 1 | 读取PAV矩阵的PCA降维散点数据 |
| ReadGenomeEntropyData | 1 | 读取基因组存在/缺失均衡度的香农信息熵散点数据 |
| ReadCategoryPercent | 1 | 读取基因家族分布比例(两种口径的平均值 + 逐基因组明细) |
| ReadSVEntropy | 1 | 读取SV结构变异的信息熵散点图与KMeans聚类结果 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| GeneFamilies | 1 | Key为基因家族ID,Value为该家族包含的所有基因ID列表 |
| CoreGeneFamilies | 1 | 核心基因家族(所有品种都有) |
| DispensableGeneFamilies | 1 | 附属基因家族(部分品种有,但不是全部) |
| SpecificGeneFamilies | 1 | 特异性基因家族(仅1个品种有) |
| SingleCopyOrthologFamilies | 1 | 单拷贝直系同源基因家族(每个品种仅1个拷贝) |
| TotalGenesInGenomes | 1 | 统计数据(修改为字典,Key为基因组名称,Value为该基因组基因总数) |
| PAVMatrix | 1 | 1. PAV 矩阵 Key为基因家族ID,Value为字典(Key为基因组名,Value为拷贝数/存在与否) |
| PangenomeCurveData | 1 | 2. 泛基因组曲线数据 列表项为:加入的第N个基因组,总基因数,核心基因数 |
| CollinearBlocks | 1 | 3. 共线性区块 |
| StructuralVariations | 1 | 结构变异列表 |
| GenomeStats | 1 | 基因组基本信息统计(基因总数/特有基因数/核心基因占比) |
| PCAData | 1 | PAV矩阵的PCA降维散点数据 |
| GenomeEntropyData | 1 | 基因组存在/缺失均衡度的香农信息熵散点数据 |
| CategoryPercent | 1 | 基因家族分布比例统计(按基因数与按家族个数两种口径) |
| SVEntropy | 1 | SV结构变异的信息熵散点图与KMeans聚类结果 |
| SVMatrices | 1 | SV结构变异的 CopyNumber / Median 矩阵缓存 |
04 Fields
| Name | Overloads | Summary |
|---|---|---|
| CategoryPercentMeanRow | 1 | 比例明细矩阵之中代表"全部基因组平均值"的那一行的行名 |
| ArchiveVersionV1 | 1 | 旧版本的归档格式:这个版本之中没有统计数据缓存、类别占比、共线性区块坐标以及SV信息熵这些条目 |
| EntryGenomeStats | 1 | 基因组基本信息统计 |
| EntryPCA | 1 | PAV矩阵的PCA降维散点数据 |
| EntryEntropy | 1 | 基因组存在/缺失均衡度熵散点数据 |
| EntryCategoryPercent | 1 | 基因家族分布比例(两种口径) |
| EntrySVEntropy | 1 | SV结构变异的信息熵散点图与聚类结果 |
| MetaMark | 1 | 元数据行的行首标记:条目之内以这个标记开头的行不是数据行,而是 Key/Value 形式的元数据 |
05 Members
SV结构变异的 CopyNumber 矩阵(行=存在SV事件的基因家族,列=全部基因组,没有SV事件的单元格为0)
SV结构变异的 Median 矩阵(行=存在SV事件的基因家族,列=全部基因组,没有SV事件的单元格为0)
Boolean)把SV矩阵转换为 DataFrame,方便R#脚本通过 write.csv 保存为矩阵文件
| Name | Type | Description |
|---|---|---|
useMedian | Boolean | True取Median矩阵,False取CopyNumber矩阵 |
Boolean)基因家族分布比例的明细矩阵(行=每个基因组 + 一行平均值,列=四个家族类别)
| Name | Type | Description |
|---|---|---|
byFamilies | Boolean | True 使用"按家族个数"口径(该类别在基因组内出现的家族数 ÷ 出现的家族总数), False 使用"按基因数"口径(该类别的拷贝数之和 ÷ 该基因组的基因总数) |
单元格数值为百分比(0-100)
Stream)save current pan-genome analysis result object as zip archive file
分析结果以zip归档文件的形式保存:归档之内的每一个条目都是一个制表符分隔的文本表, 这样保存出来的结果既压缩得很小,也可以直接解压出来用文本编辑器查看。
归档之内的条目:
- manifest: 格式版本号以及各个数据集合的规模
- genomes: GenomeName / 基因总数
- families: 家族ID / 该家族的基因列表
- categories: 家族分类 / 家族ID
- pav: 家族ID / 稀疏的拷贝数(只保存非零值)
- curve: 泛基因组曲线
- distance: 遗传距离矩阵
- collinear: 共线性区块统计(包含区块在两个基因组之上的起止坐标)
- collinear.links: 共线性区块之内的逐基因同源配对(仅当保留了配对数据时存在)
- sv: 结构变异事件
- genome.stats: 基因组基本信息统计
- pca: PAV矩阵的PCA降维散点数据
- entropy: 基因组存在/缺失均衡度熵散点数据
- category.percent: 基因家族分布比例(两种口径,含逐基因组明细)
- sv.entropy: SV结构变异的信息熵散点图与KMeans聚类结果
注意:SV的 CopyNumber / Median 矩阵没有写入归档,因为它们可以由 sv 条目 与基因组列表确定性地重建出来;在基因组数量非常多的时候这两个矩阵的文本量会达到数百MB。
| Name | Type | Description |
|---|---|---|
file | Stream | - |
Stream)load pan-genome analysis result data from a given zip archive file
| Name | Type | Description |
|---|---|---|
file | Stream | - |
String)判断归档文件的格式版本是否可以被当前版本的代码读取
新版本的归档增加了统计数据缓存、类别占比、共线性区块坐标以及SV信息熵等内容; 为了保持对历史分析结果的兼容性,旧版本的归档依然可以被读取, 只不过缺失的条目会以空值的形式保留下来(需要的时候由对应的取数方法重新计算)。
| Name | Type | Description |
|---|---|---|
version | String | 归档文件的 manifest 条目之中记录的版本号 |
ZipArchive, String)逐行读取归档之内的一个文本表条目(如果条目不存在则返回空集合)
String)转义制表符/换行符/反斜杠,避免它们破坏文本表的结构
String)空字符串转换为Nothing,保持与内存对象一致的语义
StreamWriter)PAV矩阵使用稀疏方式保存,只保存非零的拷贝数
StreamWriter)写出基因组基本信息统计
StreamWriter)写出PAV矩阵的PCA降维散点数据
StreamWriter)写出基因组存在/缺失均衡度的香农信息熵散点数据
StreamWriter)写出基因家族分布比例(两种口径的平均值 + 逐基因组明细)
StreamWriter, String, Double()())写出一个 [类别][基因组] 的百分比明细矩阵:每一个类别一行,第一列是口径的标记
StreamWriter)写出SV结构变异的信息熵散点图与KMeans聚类结果
StreamWriter, String, String)写出一个元数据行(Key/Value)
ZipArchive, PanGenomeResult)读取稀疏保存的PAV矩阵,并且使用全部的基因组键补齐为完整的行
String()())读取条目之内的元数据行(只处理以 PanGenomeResult.MetaMark 开头的行)
ZipArchive, PanGenomeResult)读取基因组基本信息统计
ZipArchive, PanGenomeResult)读取PAV矩阵的PCA降维散点数据
ZipArchive, PanGenomeResult)读取基因组存在/缺失均衡度的香农信息熵散点数据
ZipArchive, PanGenomeResult)读取基因家族分布比例(两种口径的平均值 + 逐基因组明细)
ZipArchive, PanGenomeResult)读取SV结构变异的信息熵散点图与KMeans聚类结果
Key为基因家族ID,Value为该家族包含的所有基因ID列表
核心基因家族(所有品种都有)
附属基因家族(部分品种有,但不是全部)
特异性基因家族(仅1个品种有)
单拷贝直系同源基因家族(每个品种仅1个拷贝)
统计数据(修改为字典,Key为基因组名称,Value为该基因组基因总数)
- PAV 矩阵
Key为基因家族ID,Value为字典(Key为基因组名,Value为拷贝数/存在与否)
- 泛基因组曲线数据
列表项为:加入的第N个基因组,总基因数,核心基因数
- 共线性区块
结构变异列表
基因组基本信息统计(基因总数/特有基因数/核心基因占比)
PAV矩阵的PCA降维散点数据
基因组存在/缺失均衡度的香农信息熵散点数据
基因家族分布比例统计(按基因数与按家族个数两种口径)
SV结构变异的信息熵散点图与KMeans聚类结果
SV结构变异的 CopyNumber / Median 矩阵缓存
这两个矩阵可以完全由 PanGenomeResult.StructuralVariations 与 PanGenomeResult.TotalGenesInGenomes 确定性地重建出来,因此不写入归档文件之中 (在基因组数量非常多的时候,这两个矩阵的文本量会达到数百MB), 而是由 SVMatrixPair 在首次被访问的时候惰性重建之后缓存下来。
比例明细矩阵之中代表"全部基因组平均值"的那一行的行名
旧版本的归档格式:这个版本之中没有统计数据缓存、类别占比、共线性区块坐标以及SV信息熵这些条目
基因组基本信息统计
PAV矩阵的PCA降维散点数据
基因组存在/缺失均衡度熵散点数据
基因家族分布比例(两种口径)
SV结构变异的信息熵散点图与聚类结果
元数据行的行首标记:条目之内以这个标记开头的行不是数据行,而是 Key/Value 形式的元数据