表示一个基因组上下文模型,用于在内存中高效地存储、索引和查询基因组特征(如基因)。
GenomeContext
00 Remarks
此对象在初始化时会对基因按照物理位置和链方向进行排序和索引, 从而将区间查询的时间复杂度优化至 O(log N) 或通过提前跳出优化至近似 O(N)。
注意:此类假设输入的基因组特征集合是基于同一条染色体或重叠群 的, 跨越不同染色体的特征不应放入同一个上下文实例中。
| Name | Description |
|---|---|
T | 基因组特征的类型,必须实现 IGeneBrief 接口。 |
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| .ctor | 1 | 使用基因组特征集合初始化 GenomeContext 类的新实例。 此构造函数会执行数据预处理:按特征名分组、按链方向和物理坐标排序、计算基因组大小。 |
| selectByStrand | 1 | A helper function for the constructor to select genes by strand and store them in the corresponding arrays. |
| GeneDensity | 1 | 获取指定滑动窗口内的基因密度 (基因数量 / 窗口大小) |
| SelectByPosition | 1 | 查找距离指定坐标位点一定半径范围内的所有feature |
| GetPhysicalNeighbours | 1 | 获取指定基因在基因组物理位置上的左侧和右侧紧邻基因 |
| GetDirectionalNeighbours | 1 | 获取指定基因在转录方向上的上游和下游紧邻基因 |
| FindOverlaps | 1 | 查找与指定位点存在重叠的所有基因 |
| IsOverlapping | 1 | 判断两个特征区间是否存在物理重叠 |
| GetPhysicalDistance | 1 | 计算两个位点的物理距离。如果重叠,返回0 |
| GetFeatureDistance | 1 | 计算两个基因特征之间的最短物理距离 |
| SearchByProduct | 1 | 根据基因产物的注释关键词模糊搜索基因 |
| GetGenesByProduct | 1 | 获取所有具有相同功能注释的基因集合 |
| GetNearbyFeatures | 1 | 查找指定位点附近上下游范围内的feature。此函数会考虑链的方向性: 对于正链,上游为坐标减小方向,下游为坐标增大方向; 对于负链,上游为坐标增大方向,下游为坐标减小方向。 |
| GetNearbyFeaturesByName | 1 | 查找指定名称的feature附近上下游范围内的feature |
| Delta | 1 | count the number of genes between feature 1 and feature 2. |
| SelectByRange | 1 | 将基因组上面的某一区域内的基因对象都查找出来 |
| GetByFeature | 1 | Get features data via a given key id |
| Absent | 1 | Check of the target feature is missing inside this genomics context model? |
| GenericEnumerator | 1 | populate out the genomics feature GenomeContext.sequence data |
| ToString | 1 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| contextName | 1 | 当前基因组上下文的名称(如染色体名称或菌株名称)。 |
| Feature | 2 | 通过物理位置索引获取基因组特征 |
| N | 1 | The number of genes in this genome |
| size | 1 | 得到根据所输入的位点信息估算出目标基因组可能的大小 |
| AllFeatureKeys | 1 | 获取当前基因组中所有不重复的特征标签名称。 |
| AverageGeneLength | 1 | 计算全基因组的平均基因长度 |
| AverageIntergenicDistance | 1 | 计算全基因组的平均基因间距 |
04 Fields
| Name | Overloads | Summary |
|---|---|---|
| plus | 1 | 正链基因集合。按照 Location.left 升序排列。 |
| minus | 1 | 负链基因集合。按照 Location.right 降序排列(符合负链转录方向)。 |
| sequence | 1 | 所有基因的统一物理位置序列。严格按照 Location.left 从小到大排序。 此数组是执行区间范围查询的基础,确保了空间局部性和提前跳出循环的正确性。 |
| featureTags | 1 | 按照 IFeatureDigest.Feature 关键字分组的基因字典,用于快速按名称检索。 |
05 Members
IEnumerable(Of `0), String)使用基因组特征集合初始化 GenomeContext 类的新实例。 此构造函数会执行数据预处理:按特征名分组、按链方向和物理坐标排序、计算基因组大小。
| Name | Type | Description |
|---|---|---|
genome | IEnumerable(Of `0) | 基因组特征的集合。 |
name | String | 上下文名称,默认为 "unnamed"。 |
A helper function for the constructor to select genes by strand and store them in the corresponding arrays.
| Name | Type | Description |
|---|---|---|
strand | Strands | - |
Int32, Int32)获取指定滑动窗口内的基因密度 (基因数量 / 窗口大小)
| Name | Type | Description |
|---|---|---|
start | Int32 | 窗口起始 |
end | Int32 | 窗口结束 |
查找距离指定坐标位点一定半径范围内的所有feature
| Name | Type | Description |
|---|---|---|
position | Int32 | 基因组上的具体坐标点 |
radius | Int32 | 上下游的查找半径 |
strand | Strands | 限制查找的链方向,默认为Unknown,即双向都查找 |
`0, Int32)获取指定基因在基因组物理位置上的左侧和右侧紧邻基因
| Name | Type | Description |
|---|---|---|
gene | `0 | 目标基因 |
distanceLimit | Int32 | 最大允许的物理间距,超过此间距则认为不相邻,默认无限制 |
包含左侧邻居和右侧邻居的元组
`0, Int32)获取指定基因在转录方向上的上游和下游紧邻基因
Boolean)查找与指定位点存在重叠的所有基因
| Name | Type | Description |
|---|---|---|
loci | NucleotideLocation | 目标位点 |
overlapStrand | Boolean | 是否要求必须在同一条链上重叠 |
String, String)判断两个特征区间是否存在物理重叠
计算两个位点的物理距离。如果重叠,返回0
String, String)计算两个基因特征之间的最短物理距离
String, Boolean)根据基因产物的注释关键词模糊搜索基因
| Name | Type | Description |
|---|---|---|
keyword | String | 搜索关键词 |
ignoreCase | Boolean | 是否忽略大小写,默认忽略 |
String, Boolean)获取所有具有相同功能注释的基因集合
查找指定位点附近上下游范围内的feature。此函数会考虑链的方向性: 对于正链,上游为坐标减小方向,下游为坐标增大方向; 对于负链,上游为坐标增大方向,下游为坐标减小方向。
| Name | Type | Description |
|---|---|---|
loci | NucleotideLocation | 参考位点 |
upstream | Int32 | 上游延伸长度 |
downstream | Int32 | 下游延伸长度 |
includeSelf | Boolean | 是否包含与参考位点完全重叠的feature |
strand | Strands | 限制查找的链方向,默认为Unknown,即双向都查找 |
查找指定名称的feature附近上下游范围内的feature
| Name | Type | Description |
|---|---|---|
featureName | String | 目标feature的名称 |
upstream | Int32 | 上游延伸长度 |
downstream | Int32 | 下游延伸长度 |
includeSelf | Boolean | 是否包含目标feature自身 |
strand | Strands | 限制查找的链方向 |
String, String)count the number of genes between feature 1 and feature 2.
| Name | Type | Description |
|---|---|---|
feature1 | String | - |
feature2 | String | - |
将基因组上面的某一区域内的基因对象都查找出来
| Name | Type | Description |
|---|---|---|
i | Int32 | left position |
j | Int32 | right position |
strand | Strands | 默认不限制链的方向 |
String)Get features data via a given key id
| Name | Type | Description |
|---|---|---|
feature | String | - |
String)Check of the target feature is missing inside this genomics context model?
| Name | Type | Description |
|---|---|---|
feature | String | - |
populate out the genomics feature GenomeContext.sequence data
当前基因组上下文的名称(如染色体名称或菌株名称)。
Int32)通过物理位置索引获取基因组特征
| Name | Type | Description |
|---|---|---|
i | Int32 | 在 GenomeContext.sequence 中的零基索引。 |
对应位置的特征对象。
String)通过特征名称获取基因组特征。如果存在同名特征,返回第一个匹配项。
| Name | Type | Description |
|---|---|---|
name | String | 特征的唯一标识符或功能名称。 |
匹配的特征对象,如果未找到则返回类型的默认值 (Nothing)。
The number of genes in this genome
得到根据所输入的位点信息估算出目标基因组可能的大小
获取当前基因组中所有不重复的特征标签名称。
特征标签字符串数组。
计算全基因组的平均基因长度
计算全基因组的平均基因间距
正链基因集合。按照 Location.left 升序排列。
负链基因集合。按照 Location.right 降序排列(符合负链转录方向)。
所有基因的统一物理位置序列。严格按照 Location.left 从小到大排序。 此数组是执行区间范围查询的基础,确保了空间局部性和提前跳出循环的正确性。
按照 IFeatureDigest.Feature 关键字分组的基因字典,用于快速按名称检索。