RNA 序列操作辅助工具:反向互补、碱基配对分类以及驱动 Smith-Waterman 比对所需的核酸专用 GenericSymbol 打分符号。
注:Bio.Assembly 的 NucleicAcid.Complement 仅处理 DNA(A/T/G/C),不识别 U, 因此这里单独实现 RNA(A/U/G/C)的反向互补。
RNA 序列操作辅助工具:反向互补、碱基配对分类以及驱动 Smith-Waterman 比对所需的核酸专用 GenericSymbol 打分符号。
注:Bio.Assembly 的 NucleicAcid.Complement 仅处理 DNA(A/T/G/C),不识别 U, 因此这里单独实现 RNA(A/U/G/C)的反向互补。
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| ReverseComplementRNA | 1 | 计算 RNA 序列的反向互补链(A↔U, G↔C)。大小写保留。 |
| ComplementBase | 1 | 单个 RNA 碱基的互补:A↔U, G↔C;其余(含 T/N/-)原样返回。 |
| NormalizeRNA | 1 | 将 DNA/RNA 序列归一化到 RNA 字母表:大写化并将 T 转换为 U。 |
| NormalizeRNABase | 1 | 单个碱基归一化到 RNA 字母表:大写化并将 T 转换为 U;'-' 与 N 等原样返回。 |
| ClassifyPair | 1 | 将 miRNA(正向)字符与其靶位点上 mRNA 字符进行分类配对判定。 由于比对时 query 已替换为 miRNA 的反向互补,因此比对串中两者同向, 直接按相同位比较即可。 |
| ClassifyBlastPair | 1 | BLASTN 的 HSP 配对判定:qseq/sseq 是同向一致(identity)框架, 即匹配位点上是相同字母而非互补字母。 |
| NucleicAcidSymbol | 1 | 构造用于小RNA靶标比对的核酸专用打分矩阵: 匹配 +15、错配 -10(对应 TargetFinder 的 -r +15/-10)。 SW 分数仅用于定位最佳局部比对,最终的期望/罚分由位置加权体系计算。 |
| BestLocalHit | 1 | 在一条 mRNA 序列上以 miRNA 的反向互补为正向 query 进行 Smith-Waterman 局部比对,返回得分最高的一条 HSP(轻量路径,不构建 DP 矩阵)。 |
| MirnaPosition | 1 | 把 Smith-Waterman 局部比对的列号换算成 miRNA 5'->3' 的 1-based 坐标。 |
03 Members
String)计算 RNA 序列的反向互补链(A↔U, G↔C)。大小写保留。
Char)单个 RNA 碱基的互补:A↔U, G↔C;其余(含 T/N/-)原样返回。
String)将 DNA/RNA 序列归一化到 RNA 字母表:大写化并将 T 转换为 U。
BLASTN 的 fasta 输入与输出均为 DNA 字母表(含 T),而 miRNA 配对规则定义在 RNA 字母表上。若不做归一化,DNA 的 T 将永远无法与 RNA 规则中的 U 匹配, 导致全部位点被误判为错配。
| Name | Type | Description |
|---|---|---|
seq | String | 原始序列,允许 DNA(含 T)或 RNA(含 U),允许小写。 |
大写且仅含 A/U/G/C 的 RNA 序列;输入为 Nothing 时返回 Nothing。
Char)单个碱基归一化到 RNA 字母表:大写化并将 T 转换为 U;'-' 与 N 等原样返回。
Char, Char)将 miRNA(正向)字符与其靶位点上 mRNA 字符进行分类配对判定。 由于比对时 query 已替换为 miRNA 的反向互补,因此比对串中两者同向, 直接按相同位比较即可。
同向框架下的配对规则是方向敏感的,两侧参数不可互换:
设 duplex 中 miRNA 碱基为 m、与配对的 mRNA 碱基为 t(二者互补,m-t 取 A-U / G-C / G:U)。 本函数输入为 a = complement(m)(即 revcomp(miRNA) 对应位)与 b = t,于是:
故同向框架的 wobble 必须写作 (C,U)/(A,G),而非互补框架下的 (G,U)/(U,G)。 若输入来自 BLASTN 的 qseq/sseq(miRNA vs revcomp(mRNA))框架,请改用 RNASeqHelper.ClassifyBlastPair()。
| Name | Type | Description |
|---|---|---|
queryRevComp | Char | 比对串中 query 侧的碱基,即 miRNA 反向互补链上的字符(5'->3')。 |
mrna | Char | 比对串中 subject 侧的碱基,即 mRNA 正义链上的字符(5'->3')。 |
Char, Char)BLASTN 的 HSP 配对判定:qseq/sseq 是同向一致(identity)框架, 即匹配位点上是相同字母而非互补字母。
本框架与 RNASeqHelper.ClassifyPair() 的框架恰好相差"两侧各取互补", 因此这里两侧取互补后复用 RNASeqHelper.ClassifyPair(),保证配对规则只有一处定义。 展开后的等价规则为:相等 ⇒ WC;(G,A)/(U,C) ⇒ G:U wobble;其余 ⇒ 错配。
| Name | Type | Description |
|---|---|---|
mirnaBase | Char | 比对列上 query 侧的碱基,即 miRNA 正向序列的字符(5'->3')。 minus 链命中时 BLAST 的 query 恒为 plus,故 qseq 就是 miRNA 的 5'->3' 片段。 |
targetRevCompBase | Char | 比对列上 subject 侧的碱基。minus 链命中时 BLAST 输出的是 mRNA 片段的反向互补, 因此它与 mirnaBase 同向 5'->3'。 |
构造用于小RNA靶标比对的核酸专用打分矩阵: 匹配 +15、错配 -10(对应 TargetFinder 的 -r +15/-10)。 SW 分数仅用于定位最佳局部比对,最终的期望/罚分由位置加权体系计算。
String, String)在一条 mRNA 序列上以 miRNA 的反向互补为正向 query 进行 Smith-Waterman 局部比对,返回得分最高的一条 HSP(轻量路径,不构建 DP 矩阵)。
| Name | Type | Description |
|---|---|---|
mirnaRevComp | String | miRNA 的反向互补序列 |
mrna | String | 候选 mRNA 正向序列 |
String, LocalHSPMatch(Of Char), Int32)把 Smith-Waterman 局部比对的列号换算成 miRNA 5'->3' 的 1-based 坐标。
query 是 miRNA 的反向互补,query 下标 j(0-based,由 hsp.fromA 起算) 对应 miRNA 下标 L-1-j,故 1-based 的 miRNA 坐标为 L - j = L - (fromA + i),其中 L 为 miRNA 长度。
直接把 hsp.fromA + i 当作 miRNA 位置会同时犯两重错误: 一是 fromA 本身是 0-based 的 query 下标(见 LocalHSPMatch 构造中的 seq1.Skip(fromA)),二是忽略了反向互补带来的镜像关系。
| Name | Type | Description |
|---|---|---|
mirna | String | miRNA 正向序列(取其长度)。 |
hsp | LocalHSPMatch(Of Char) | 以 miRNA 反向互补链为 query、mRNA 为 subject 得到的局部比对 (即 RNASeqHelper.BestLocalHit() 的返回值)。 |
i | Int32 | 比对列号(0-based)。 |
该比对列对应的 miRNA 5'->3' 1-based 坐标。