nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Analysis.PanGenome / PanGenomeReportGenerator

PanGenomeReportGenerator

Full name SMRUCC.genomics.Analysis.PanGenome.PanGenomeReportGenerator Assembly SMRUCC.genomics.Analysis.PanGenome Members 34

泛基因组分析HTML报告的生成器。

00 Remarks

页面绘图所需的数据全部先构造成具名的CLR数据对象,然后再通过 JsonContract.GetJson() 序列化为JSON文本, 并内嵌到HTML模板的 <script type="application/json"> 标签之中。

这样子当基因组名称或者其他文本内容包含单引号、反斜杠、尖括号等特殊字符的时候, 也不会再破坏页面的JavaScript代码。

01 Syntax

SMRUCC.genomics.Analysis.PanGenome.PanGenomeReportGenerator

02 Methods

NameOverloadsSummary
GenerateReport 1 生成泛基因组分析HTML报告
SerializeData 1 将报告数据对象序列化为可以安全内嵌到HTML页面之中的JSON文本
EscapeJsonForHtml 1 转义JSON文本之中的HTML敏感字符,避免 </script> 或者 <!-- 这样的内容破坏内嵌脚本标签的解析。
H 1 HTML转义:避免基因组名称等文本内容破坏服务端渲染的表格结构
SampleEvenly 1 当数据量超过上限的时候,按照等间距的方式抽样,保证展示结果是确定性的
BuildPieChartData 1 生成饼图数据
BuildPangenomeCurve 1 生成泛基因组曲线数据
BuildCategoryPercentData 1 基因家族分布比例的绘图数据(直接复用分析阶段缓存好的统计结果)
BuildSVMatrixData 1 构建SV矩阵的热图绘图数据(行=基因家族,列=基因组)
BuildSVEntropyData 1 SV结构变异的信息熵散点图与聚类结果
RoundEntropyPoint 1 截断信息熵散点数据的浮点精度
SampleIndexes 1 等间距地取出最多 maxCount 个下标,保证抽样结果是确定性的
BuildPAVMatrixData 1 生成PAV矩阵数据
BuildGeneticDistanceData 1 生成遗传距离矩阵数据
BuildSVStatsData 1 生成结构变异统计数据
BuildCollinearityData 1 构建共线性结果的可视化数据(基因组×基因组共线性矩阵 + Top 基因组对排行)
GenerateCollinearityStats 1 生成共线性统计信息
BlockLocus 1 生成共线性区块在两个基因组之上所覆盖的坐标摘要文本(用于共线性绘图时的定位参考)
GenerateGeneFamilyTable 1 生成基因家族详细表格
GetCategoryClass 1 获取分类对应的CSS类名
DefaultHtmlReport 1

03 Properties

NameOverloadsSummary
DefaultHtmlTemplate 1

04 Fields

NameOverloadsSummary
MaxCollinearityGenomes 1 共线性矩阵热图最多展示的基因组数量
MaxCollinearityPairs 1 共线性条形图最多展示的基因组对数量
CollinearMetric_Pairs 1 共线性统计指标:共线基因对数量
CollinearMetric_Blocks 1 共线性统计指标:共线性区块数量
MaxDistanceGenomes 1 遗传距离热图最多展示的基因组数量
MaxPAVFamilies 1 PAV热图最多展示的基因家族数量
MaxPAVGenomes 1 PAV热图最多展示的基因组数量
SV_MetricCopyNumber 1 SV CopyNumber 矩阵热图的单元格含义
SV_MetricMedian 1 SV Median 矩阵热图的单元格含义
MaxSVHeatmapFamilies 1 SV热图最多展示的基因家族数量
MaxSVHeatmapGenomes 1 SV热图最多展示的基因组数量
MaxSVEntropyPoints 1 SV信息熵散点图最多展示的基因家族数量

05 Members

method GenerateReport #
GenerateReport(PanGenomeResult, String)

生成泛基因组分析HTML报告

Parameters
NameTypeDescription
resultPanGenomeResult

泛基因组分析结果

method SerializeData #
SerializeData``1(``0)

将报告数据对象序列化为可以安全内嵌到HTML页面之中的JSON文本

method EscapeJsonForHtml #
EscapeJsonForHtml(String)

转义JSON文本之中的HTML敏感字符,避免 </script> 或者 <!-- 这样的内容破坏内嵌脚本标签的解析。

Remarks

这些字符在合法的JSON文本之中只会出现在字符串字面量内部, 因此使用 \uXXXX 进行转义在任何位置都是合法的, 并且 DataContractJsonSerializer 默认不会输出这些转义。

method H #
H(String)

HTML转义:避免基因组名称等文本内容破坏服务端渲染的表格结构

method SampleEvenly #
SampleEvenly(String(), Int32)

当数据量超过上限的时候,按照等间距的方式抽样,保证展示结果是确定性的

method BuildPieChartData #
BuildPieChartData(Int32, Int32, Int32, Int32)

生成饼图数据

method BuildPangenomeCurve #
BuildPangenomeCurve(PanGenomeResult)

生成泛基因组曲线数据

method BuildCategoryPercentData #
BuildCategoryPercentData(PanGenomeResult)

基因家族分布比例的绘图数据(直接复用分析阶段缓存好的统计结果)

Remarks

由于核心/软核心/壳/云这四个类别构成了一个完整的划分, 因此"按基因数"与"按家族个数"两种口径之下的四类占比加和都接近100%。

method BuildSVMatrixData #
BuildSVMatrixData(PanGenomeResult, String, Boolean)

构建SV矩阵的热图绘图数据(行=基因家族,列=基因组)

Remarks

为了避免生成的JSON过于庞大,这里对基因家族行与基因组列都按照等间距的方式做了抽样, 并通过 truncated 标志提示前端;完整的矩阵由R#脚本通过导出接口获取。

Parameters
NameTypeDescription
resultPanGenomeResult

泛基因组分析结果

metricLabelString

单元格数值的含义说明

useMedianBoolean

True取Median矩阵,False取CopyNumber矩阵

method BuildSVEntropyData #
BuildSVEntropyData(PanGenomeResult)

SV结构变异的信息熵散点图与聚类结果

method RoundEntropyPoint #
RoundEntropyPoint(SVDomainEntropyPoint)

截断信息熵散点数据的浮点精度

Remarks

页面上绘图只需要6位小数的精度,而默认的序列化会写出17位有效数字, 在上万个基因家族的时候会白白增加一倍以上的页面体积。 完整的精度依然保存在分析结果对象与归档文件之中,不影响导出为CSV的数据。

Parameters
NameTypeDescription
pointSVDomainEntropyPoint

-

method SampleIndexes #
SampleIndexes(Int32, Int32)

等间距地取出最多 maxCount 个下标,保证抽样结果是确定性的

method BuildPAVMatrixData #
BuildPAVMatrixData(PanGenomeResult)

生成PAV矩阵数据

Remarks

只保留在PAV矩阵之中真实存在的基因家族,保证 families 与 matrix 的行是一一对应的; 当基因组/家族数量过多的时候按照等间距方式抽样,避免生成的JSON过于庞大。

method BuildGeneticDistanceData #
BuildGeneticDistanceData(PanGenomeResult)

生成遗传距离矩阵数据

method BuildSVStatsData #
BuildSVStatsData(PanGenomeResult)

生成结构变异统计数据

method BuildCollinearityData #
BuildCollinearityData(PanGenomeResult)

构建共线性结果的可视化数据(基因组×基因组共线性矩阵 + Top 基因组对排行)

Remarks

这里只依赖 CollinearBlock.GenePairCount 区块统计信息, 因此在基因组数量超过阈值、逐基因的同源配对数据被关闭 (GenomeAnalyzer.RetainOrthologyLinks = False)的时候依然可以正常展示。

统计指标优先使用区块之内的共线基因对数量;部分历史归档之中区块的基因对数量全部为0, 这个时候自动退化为使用共线性区块个数作为指标,保证可视化结果依然是有意义的。

method GenerateCollinearityStats #
GenerateCollinearityStats(PanGenomeResult)

生成共线性统计信息

method BlockLocus #
BlockLocus(CollinearBlock)

生成共线性区块在两个基因组之上所覆盖的坐标摘要文本(用于共线性绘图时的定位参考)

method GenerateGeneFamilyTable #
GenerateGeneFamilyTable(PanGenomeResult)

生成基因家族详细表格

method GetCategoryClass #
GetCategoryClass(String)

获取分类对应的CSS类名

field MaxCollinearityGenomes #
MaxCollinearityGenomes

共线性矩阵热图最多展示的基因组数量

field MaxCollinearityPairs #
MaxCollinearityPairs

共线性条形图最多展示的基因组对数量

field CollinearMetric_Pairs #
CollinearMetric_Pairs

共线性统计指标:共线基因对数量

field CollinearMetric_Blocks #
CollinearMetric_Blocks

共线性统计指标:共线性区块数量

field MaxDistanceGenomes #
MaxDistanceGenomes

遗传距离热图最多展示的基因组数量

field MaxPAVFamilies #
MaxPAVFamilies

PAV热图最多展示的基因家族数量

field MaxPAVGenomes #
MaxPAVGenomes

PAV热图最多展示的基因组数量

field SV_MetricCopyNumber #
SV_MetricCopyNumber

SV CopyNumber 矩阵热图的单元格含义

field SV_MetricMedian #
SV_MetricMedian

SV Median 矩阵热图的单元格含义

field MaxSVHeatmapFamilies #
MaxSVHeatmapFamilies

SV热图最多展示的基因家族数量

field MaxSVHeatmapGenomes #
MaxSVHeatmapGenomes

SV热图最多展示的基因组数量

field MaxSVEntropyPoints #
MaxSVEntropyPoints

SV信息熵散点图最多展示的基因家族数量

Remarks

在上百个基因组的数据集上面,逐家族的全部散点会让内嵌的JSON达到十几MB, 因此超过这个上限的时候只等间距抽样展示一部分(完整的聚类结果依然保存在分析结果之中, 可以通过R#导出接口获取)。

property DefaultHtmlTemplate #
DefaultHtmlTemplate
method DefaultHtmlReport #
DefaultHtmlReport(PanGenomeResult)