nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Analysis.SequenceAlignment / BlastFilterMiRNATargets

BlastFilterMiRNATargets

Full name SMRUCC.genomics.Analysis.SequenceAlignment.siRNAHit.BlastFilterMiRNATargets Assembly SMRUCC.genomics.Analysis.SequenceAlignment Members 4

通过ncbi blastn进行靶基因搜索加速

00 Remarks

============ 第一轮:BLASTN 快速预筛 ============

blastn -task blastn-short \ -query miRNA.fa \ -subject plant_cDNA.fasta \ -evalue 10000 -word_size 7 \ -gapopen 4 -gapextend 2 \ -reward 1 -penalty -1 \ -outfmt "6 qseqid sseqid sstart send qstart qend sstrand qseq sseq length evalue bitscore" \ -num_threads 32 -max_target_seqs 5000 \

round1_hits.tsv

01 Syntax

SMRUCC.genomics.Analysis.SequenceAlignment.siRNAHit.BlastFilterMiRNATargets

02 Methods

NameOverloadsSummary
ScoreAlignment 1 psRNATarget 打分函数
BlastnFilter 1 对 blastn 第一轮预筛的 HSP 集合做 psRNATarget 风格的打分过滤。
ParseHit 1 对单条 HSP 施加过滤与打分,不通过时返回 Nothing。
HasCenterMismatch 1 切割位点(miRNA 第 10–11 位)存在严格错配 → 翻译抑制候选。

03 Members

method ScoreAlignment #
ScoreAlignment(String, String, Int32, Int32, Double, Int32)

---------- psRNATarget 打分函数 ----------

Remarks

关键点:BLASTN 的 qseq/sseq 是同向一致(identity)框架而非互补框架。 实测数据显示 minus 链 qseq 与 sseq 的逐位一致率约 90%,若按互补规则 (A-U / G-C)判定会把几乎每个位点都算成错配,直接导致过滤结果为空。 配对判定统一委托给 RNASeqHelper.ClassifyBlastPair()。

Parameters
NameTypeDescription
qseqString

BLASTN HSP 的 qseq。minus 链命中时 query 恒为 plus 链, 因此它就是 miRNA 的 5'->3' 片段。

sseqString

BLASTN HSP 的 sseq。minus 链命中时 BLAST 输出的是 mRNA 片段的反向互补, 因此它与 qseq 同向 5'->3'——匹配位点是相同字母。

seedStartInt32

种子区起始(miRNA 5'->3' 1-based,psRNATarget V2 = 2)。

seedEndInt32

种子区结束(miRNA 5'->3' 1-based,psRNATarget V2 = 13)。

penaltyMultiplierDouble

种子区错配的罚分倍数。

qstartInt32

HSP 在 query(miRNA)上的起始坐标(BLAST 的 qstart,1-based)。 用于将比对列号换算成 miRNA 真实坐标;局部比对只覆盖 miRNA 一部分时必须传入。

method BlastnFilter #
BlastnFilter(IEnumerable(Of BlastnMapTable), Double, Double, Int32, Int32, Int32, Int32, Int32, Int32, Boolean)

对 blastn 第一轮预筛的 HSP 集合做 psRNATarget 风格的打分过滤。

Parameters
NameTypeDescription
hitsIEnumerable(Of BlastnMapTable)

由 BlastnMapTable.Parse() 解析出的 HSP 集合。

evalueCutoffDouble

BLAST e-value 预筛阈值。注意它与 maxExpectation 是两种完全不同的量纲: 前者是 BLAST 的统计显著性(命令行 -evalue 用的就是它,故这里取同量级的 1000), 后者是本函数按 psRNATarget 打分体系算出的期望分。二者不可混用。

maxExpectationDouble

psRNATarget 期望分上限(越低越好)。

minHitLengthInt32

最小 HSP 长度,避免极短随机命中(对齐 psRNATarget.MinHitLength)。

seedStartInt32

种子区起始(miRNA 坐标)。

seedEndInt32

种子区结束(miRNA 坐标)。

maxSeedMmInt32

种子区内允许的最大非 G:U 错配数。

maxTotalMmInt32

全比对区允许的最大非 G:U 错配数。

maxGuInt32

允许的最大 G:U wobble 数。

verboseBoolean

是否把每条命中打印到控制台(数据量大时请保持 False)。

method ParseHit #
ParseHit(BlastnMapTable, Double, Double, Int32, Int32, Int32, Int32, Int32, Int32, Boolean)

对单条 HSP 施加过滤与打分,不通过时返回 Nothing。

Remarks

过滤顺序刻意把廉价条件(链方向 / e-value / 长度 / 种子区覆盖)放在 逐字符打分之前:实测 44 万行 HSP 经廉价过滤后仅约 8 千行需要进入 O(n) 打分循环。

method HasCenterMismatch #
HasCenterMismatch(BlastnMapTable, Int32, Int32)

切割位点(miRNA 第 10–11 位)存在严格错配 → 翻译抑制候选。

Remarks

判定必须用 miRNA 坐标而非比对列号:局部比对的 qstart 通常大于 1。