乐于分享
好东西不私藏

一份NGS报告是怎么从组织变成PDF的?——13年行业经验的流程拆解

一份NGS报告是怎么从组织变成PDF的?——13年行业经验的流程拆解

一份NGS报告是怎么从组织变成PDF的?

——13年行业经验的流程拆解

一份NGS报告从组织到PDF,要经过样本接收、核酸提取、文库制备、上机测序、数据分析、报告生成六个环节。13年行业经验告诉你,报告质量不是由最先进的仪器决定的,而是由最薄弱的环节决定的。

作者:骑着蜗牛丈量世界

我是一块FFPE组织。

准确地说,我是一块被福尔马林固定、石蜡包埋过的肿瘤组织切片。此刻我正躺在一家NGS检测实验室的样本接收台上,身上贴着一张条码,旁边还有一份申请单和一管血液——那是我这次旅行的"同伴"。

我不知道自己会变成什么。但接下来大概7到14天里,我会经历裂解、洗涤、扩增、测序、比对……最终变成一份PDF文件,出现在某个医生的电脑屏幕上。

13年经验告诉我,这段旅程远比大多数人想象的复杂。而且,NGS报告的质量从来不是由最先进的仪器决定的,而是由最薄弱的环节决定的——"木桶效应"在我们这个行当里体现得淋漓尽致。

今天,我想把这段旅程完整地讲给你听。

第一站:样本接收与处理——"快递分拣中心"

▎到达

我到达实验室的时候,已经是下午三点了。和我一起到的还有二十多个样本,有的装在密封袋里,有的泡在福尔马林瓶中,还有几管紫帽采血管安安静静地躺在冷链箱里。

样本接收员小陈拿起我,先扫了条码,然后翻看申请单,再对着电脑屏幕核对信息。三对照——条码、申请单、患者信息,一个都不能少。

说实话,这一步看起来最简单,但13年经验告诉我,它出的问题一点都不少。NGS检测失败率临床报道从2%到近20%不等,多数大型实验室控制在5-10%区间(商业实验室可压到6-7%)。失败绝大多数根源在样本本身的质量底线——肿瘤含量不足、DNA总量不够、固定/储存损伤——但这些问题如果在接收环节没被识别和拒收,就会一路"传染"到下游白白消耗试剂和时间。

▎样本类型识别

实验室每天收到的样本五花八门。FFPE组织块、FFPE白片、新鲜组织、外周血(EDTA抗凝)、外周血(Streck管)、骨髓穿刺液、胸腹水离心沉淀物……不同样本类型的处理流程完全不同,识别错了,后面全错。

小陈把我归入"FFPE组织"类,在系统里录入样本类型、接收时间、外观描述。

▎质量初检

然后是肉眼检查。她看了看我的蜡块——完整,没有明显裂纹。又翻了翻白片——嗯,组织面积够大,染色均匀。记录:外观正常。

但不是每个样本都像我这么"体面"。

我见过蜡块裂成两半的,见过白片上组织只剩绿豆大小的,见过福尔马林瓶里漂着絮状物的,还见过采血管标签模糊到根本看不清名字的。这些问题如果不在这里被发现,就会一路"传染"到后面的每一个环节。

样本接收就像"快递分拣中心"——包裹从四面八方涌来,你得快速分类、核对地址、检查外包装。分错了,包裹就送不到该去的地方;外包装破损了,里面的东西可能已经坏了。

常见错误

✗ 条码贴错或脱落:样本混淆发生率约0.1-1%,大部分发生在接收环节。条码贴歪了扫码器读不出来,或者两个样本的条码贴反了——这种事听着离谱,但忙起来真会发生。

✗ 样本类型与申请单不符:申请单写着"外周血DNA检测",送来的却是FFPE白片。可能是临床医生开单时选错了选项,也可能是护士采样时拿错了管子。

✗ FFPE蜡块无对应白片:有些医院只送蜡块不送白片,实验室需要自己切片。但切片需要病理科的技术和设备,NGS实验室不一定具备。

✗ 血液样本溶血或凝固:EDTA管混匀不充分导致血液凝固,Streck管超时(超过7天)导致白细胞降解。溶血样本游离DNA浓度假性升高,后续数据质量一塌糊涂。

✗ 申请单信息不完整:缺少临床诊断、送检目的、患者联系方式……信息不全,后面的报告解读和审核都会卡壳。

对话

小陈发现旁边一个样本的条码和申请单对不上,叫来了组长老周。

小陈:"周哥,这个样本条码扫出来是张三,但申请单上写的是李四。"

老周(看了一眼):"又是这种。打电话问送检医院,确认到底是哪个患者的。"

小陈:"如果联系不上呢?"

老周:"那就先冻存,标记'信息存疑',不进流程。宁可让样本多等一天,也不能让错误的报告发出去。"

小陈:"上次那个联系了三天才确认的……"

老周:"三天就三天。NGS报告出了错,可不是三天能解决的。"

第二站:核酸提取——"从水果里榨汁"

▎裂解

第二天一早,我被送到了核酸提取区。

技术人员把我从蜡块里"解放"出来——先脱蜡,用二甲苯或环保脱蜡液溶解石蜡,再用乙醇洗去残留。然后是组织消化,蛋白酶K在56℃下工作数小时,把蛋白质"啃"碎,把DNA从蛋白的包裹中释放出来。

这个过程,就像"从水果里榨汁"——你得先剥皮(脱蜡),再打碎果肉(裂解),然后过滤掉果渣(纯化),最后得到一杯纯净的果汁(核酸溶液)。

不过,榨汁也有讲究。有的水果轻轻一捏就出汁,有的得使劲压。FFPE样本就是那种"干巴巴的果子"——福尔马林固定让蛋白质和核酸交联在一起,DNA被"焊"住了,裂解难度远大于新鲜组织。FFPE样本DNA已发生不可逆的碎片化——主峰多在100-400bp,建库产出可能只有新鲜组织来源的20-60%,长期储存后提取总量可损失半数以上,这就是为什么FFPE样本的核酸提取总是让人提心吊胆。

▎结合、洗涤、洗脱

裂解之后,释放出来的DNA需要被纯化。目前实验室最常用的是硅胶膜柱法或磁珠法。

原理不复杂:在特定盐浓度和pH条件下,DNA会吸附到硅胶膜或磁珠表面,而蛋白质、脂质、盐离子等杂质留在溶液中被洗掉。然后用低盐缓冲液或纯水把DNA从膜/珠上洗脱下来。

洗涤这一步特别关键。洗不干净,残留的盐和蛋白会抑制后续的酶反应;洗得太狠,DNA也跟着流失了。这个分寸,大概只有亲手操作过几千次的人才能拿捏好。

嗯,说"几千次"可能有点夸张了。但几百次肯定是有的。

▎质量评估

提取完成后,技术人员要对我进行"体检":

• 浓度:用Qubit荧光法测定。注意,不是NanoDrop——NanoDrop测的是吸光度,会把降解的DNA碎片也算进去,浓度虚高。Qubit只测双链DNA,更准确。

• 纯度:看A260/A280和A260/A230比值。1.8-2.0是理想范围。偏低说明蛋白污染,偏高可能是RNA残留或盐离子干扰。

• 完整性:这是FFPE样本最头疼的指标。新鲜组织的DNA是一条完整的"长线",FFPE样本的DNA被切成了一段一段的"短线头"。用琼脂糖凝胶电泳或片段分析仪可以看DNA片段的分布。

如果DNA浓度太低、纯度太差、或者碎片化严重——对不起,后面的步骤可能就没法进行了。

13年经验告诉我,核酸质量是NGS检测的"地基"。地基不牢,后面盖再漂亮的楼也是白搭。

常见错误

✗ 脱蜡不彻底:石蜡残留会抑制蛋白酶K的活性,导致裂解不充分,DNA得率低。尤其是陈年蜡块,石蜡渗透得更深,脱蜡需要更充分的时间和试剂。

✗ 裂解时间不足:有些操作员为了赶进度,把蛋白酶K消化时间从过夜缩短到2小时。新鲜组织也许勉强够用,FFPE样本?想都别想。

✗ 磁珠残留:洗脱时磁珠没完全分离,混入了DNA溶液中。磁珠会抑制后续的PCR扩增,导致文库产量低。

✗ DNA过度干燥:用乙醇洗涤后如果干燥时间太长,DNA会紧紧吸附在膜上,洗脱效率骤降。有些操作员怕乙醇残留,吹干半小时——结果DNA"焊"死在膜上,拿不下来了。

✗ 忽略降解评估:只测浓度不看完整性,DNA浓度明明够,但全是碎片。后面文库构建勉强能做,但覆盖度不均匀,结果不可靠。

对话

提取区的技术员小林对着电脑屏幕皱了皱眉。

小林:"这个样本DNA浓度才8ng/μl,总量不到200ng……"

旁边的老赵(探头看了一眼):"FFPE的吧?正常。你看看片段分布。"

小林:"主峰在200bp左右,拖尾严重。"

老赵:"典型降解。跟送检医院确认一下,能不能补送蜡块。这种质量,硬做也行,但数据肯定不好看。"

小林:"如果补送不了呢?"

老赵(想了想):"那就降低上样量,文库制备的时候多扩增几个循环。能出数据,但假阴性的风险会高一些——报告里要注明样本质量受限。"

第三站:文库制备——"给DNA装订成书"

▎片段化

提取出来的DNA——也就是"我"——现在要被进一步处理了。

如果我的DNA片段已经很短(比如FFPE样本),可能不需要额外片段化。但如果是新鲜组织或血液提取的长链DNA,就需要用超声或酶切的方法,把DNA打断成200-300bp的小片段。

为什么要打断?因为NGS测序对插入片段的长度有要求,太长了测不通,太短了信息量不够。就像一本书,你要把它拆成一页一页的,才能放进扫描仪里。

▎末端修复与接头连接

打断后的DNA片段,两端是参差不齐的——有的突出一截,有的凹进去一块。末端修复就是把这些"毛边"修整齐,补平3'端,削平5'端,让所有片段都变成平末端。

然后是加"A"尾——在3'端加上一个腺嘌呤(A),这样就能和带"T"尾的接头互补配对。

接下来是最关键的一步:接头连接。

接头是什么?你可以把它理解为一本书的"封面和封底"——它包含了测序仪识别序列所需的全部信息:测序引物结合位点、索引序列(Index,用于区分不同样本)、簇生成序列等。没有接头,DNA片段在测序仪上就是"无面目的流浪者",没人认识它,没人能读它。

给DNA装上接头,就像"给散页装订成书"——每页内容不同,但封面格式统一,方便图书馆(测序仪)统一管理和检索。

▎PCR扩增

接头连接后的DNA片段数量通常不够,需要PCR扩增来富集。扩增的循环数取决于起始DNA量和文库目标产量。但循环数不是越多越好——每多一个循环,就多一分PCR重复(duplicate)和扩增偏好的风险。

▎文库质控

扩增完成后,文库需要通过质控才能上机:

• 片段大小:用片段分析仪或Bioanalyzer检测。正常文库的主峰应该在300-500bp之间(插入片段+接头长度)。如果出现多余的峰,可能是接头二聚体或非特异性扩增产物。

• 浓度:用Qubit或qPCR定量。qPCR更准确,因为它只测能被扩增的有效文库分子。

文库制备失败率约3-8%。这个数字听起来不高,但考虑到每个样本的文库制备成本和时间,每失败一次都是真金白银的损失。

常见错误

✗ 接头二聚体:两个接头没有连接DNA片段就直接连在了一起。这是文库制备中最常见的问题。接头二聚体会被测序仪大量读取,浪费数据量。预防措施:优化接头与DNA片段的摩尔比,不要加太多接头。

✗ 扩增过度:PCR循环数太多,导致重复序列比例过高。一般来说,重复率超过30%就会显著影响变异检测的灵敏度。起始量低的样本尤其容易踩这个坑。

✗ 片段化不均匀:超声打断时间或功率设置不当,导致片段大小分布过宽。太长的片段测序深度不够,太短的片段信息量不足。

✗ Index交叉污染:多个样本同时建库时,Index序列发生错配或交叉分配,导致测序数据"串号"。这和前面说的样本混淆不同——样本混淆是物理层面的,Index交叉是分子层面的。

✗ 文库浓度虚高:Qubit测的浓度包含了接头二聚体和非特异性产物,实际有效文库浓度低于测量值。上机后数据量不足,需要补测。

对话

文库制备区的技术员小王拿着质控报告来找主管李姐。

小王:"李姐,这个样本的文库质控不太对劲。主峰在150bp附近,明显偏小。"

李姐(看了看):"接头二聚体。你看看那个小峰是不是在120bp左右?"

小王:"对,120bp有个小峰。"

李姐:"那就是了。120bp是纯接头二聚体的长度,150bp是接头加极短片段。你建库的时候起始量多少?"

小王:"50ng。"

李姐:"起始量偏低,接头相对过量了。重新建库吧,起始量提到100ng,接头稀释一倍。"

小王:"这个样本DNA总量不够了……"

李姐:"那就用半量建库方案,减少接头用量,多加两个PCR循环。但注意监控重复率。"

第四站:上机测序——"流水线拍照"

▎测序平台

终于到了最"高精尖"的环节——上机测序。

目前国内肿瘤NGS检测最常用的平台是Illumina的测序仪(如NovaSeq 6000、NextSeq 2000等)。我将以Illumina平台为例来讲述这个过程。当然,还有其他平台如MGI、Ion Torrent等,原理各有不同,但核心逻辑相似。

Illumina的测序原理叫"边合成边测序"(Sequencing by Synthesis, SBS)。NGS单次测序通量可达数百GB,这意味着一台测序仪一次运行可以同时读取数十亿个DNA片段。

▎样本加载与簇生成

多个样本的文库混合后(每个样本有独特的Index来区分),被加载到测序芯片(flow cell)上。Flow cell的内表面密布着寡核苷酸引物,文库分子通过接头序列与这些引物互补结合。

然后是簇生成(Cluster Generation):每个结合的DNA分子被桥式PCR扩增,形成一个由数千个相同DNA拷贝组成的"簇"。每个簇就是一个"信号点"——测序时,每个簇发出的荧光信号足够强,能被相机捕捉到。

这个过程,就像"流水线拍照"——每个DNA片段被复制成一群"克隆",排好队站在传送带上,相机一个一个地拍,记录下每个位置上的碱基颜色。

▎测序循环

测序开始后,加入带有荧光标记的可逆终止dNTP。每个循环中,DNA聚合酶在每条链的3'端加上一个碱基,然后拍照记录荧光颜色(A=绿色,T=红色,C=蓝色,G=黄色——不同化学版本的配色可能不同),再切掉荧光基团和终止基团,进入下一个循环。

150个循环,就意味着读150个碱基。双端测序(Paired-end)则从DNA片段的两端各读一次,信息量翻倍。

Illumina SBS的per-base call错误率在高质量cycle达0.1%(Q30=99.9%准确率),低质量cycle边缘可能到~1%(Q20)——这也是为什么下游变异检测需要统计模型区分真突变与测序/FFPE损伤假象。这个错误率虽然不高,但在检测低频突变时(比如变异频率<5%的体细胞突变),测序错误和真实突变之间的界限就变得模糊了——这也是为什么后续数据分析需要复杂的统计模型来区分信号和噪声。

常见错误

✗ 加载浓度不当:上样量太高,簇密度过大,相邻簇的荧光信号重叠,导致图像分析困难,数据质量下降;上样量太低,簇密度不足,数据量不够,浪费芯片容量。

✗ Index hopping:在patterned flow cell上,Index序列可能在不同簇之间"跳跃",导致样本分配错误。Illumina的NovaSeq平台尤其需要注意这个问题——使用Unique Dual Index(UDI)可以有效降低Index hopping的影响。

✗ PhiX比例不当:PhiX是已知序列的对照DNA,混入测序样本中用于监控测序质量。比例太低,质量监控不可靠;比例太高,浪费数据量。一般建议PhiX占比1-5%,低多样性文库(如扩增子Panel)可能需要提高到10-20%。

✗ Flow cell气泡或缺陷:加样时引入气泡,或flow cell本身存在制造缺陷,导致局部区域无法正常测序。表现为数据覆盖度出现"黑洞"——某些区域完全没有reads覆盖。

✗ 试剂批次问题:偶尔会遇到某个批次的测序试剂性能异常,导致Q30(碱基质量值≥30的比例)不达标。这种情况不多见,但一旦发生,整批样本都需要重测。

对话

测序区的工程师老张盯着监控屏幕,眉头紧锁。

老张:"这轮Run的Q30掉到75%了,平时应该在85%以上。"

助手小孙:"会不会是试剂的问题?这批试剂上周刚换的新批次。"

老张:"有可能。但先看看是不是某个lane的问题——如果只有一个lane异常,可能是加样问题;如果所有lane都低,那就是系统性问题。"

小孙:"我看看……Lane 1和Lane 3的Q30正常,Lane 2和Lane 4偏低。"

老张:"嗯,不太像试剂批次的问题。检查一下Lane 2和4的簇密度,是不是过密了?"

小孙:"簇密度确实偏高,K/mm²比标准高出了20%。"

老张:"上样量偏高了。下次这两个样本类型要降低上样浓度。这轮数据先跑完,后面看覆盖度情况再决定要不要补测。"

第五站:数据分析——"拼图+找不同"

▎原始数据处理

测序完成后,测序仪输出的是一堆荧光图像。首先需要通过base calling把这些图像转换成碱基序列——这就是原始测序数据(raw data)。

Illumina的base calling软件(如bcl2fastq或DRAGEN)会把每个簇的荧光信号序列转换成ATCG的碱基序列,同时为每个碱基计算一个质量值(Phred score)。质量值Q30意味着碱基准确率≥99.9%。

然后根据Index序列把混合测序的数据拆分到各个样本,生成FASTQ文件——这就是数据分析的起点。

▎序列比对

FASTQ文件里是成千上万条短序列(reads),它们就像拼图碎片,需要被"拼"回到正确的位置上。

比对软件(如BWA-MEM、DRAGEN等)把每条read与人类参考基因组(GRCh37/GRCh38)进行比对,找到它最可能来自的位置。这个过程就像"拼图"——你有一堆碎片,需要对照着完整的图案把它们一一归位。

但拼图不是总能完美拼上。有些read来自基因组重复区域,可能比对到多个位置;有些read含有突变或测序错误,与参考序列不完全匹配;还有些read根本比对不上任何位置——可能是接头序列、污染序列,也可能是参考基因组中缺失的序列。

▎变异检测

比对完成后,就到了最核心的步骤——变异检测。

变异检测就像"找不同"——把样本的基因组序列与参考基因组并排放在一起,找出每一个不一致的地方。

不同类型的变异需要不同的检测算法:

• SNV(单核苷酸变异):单个碱基的替换。用MuTect2、VarScan等工具检测。

• InDel(小片段插入/缺失):几个到几十个碱基的插入或缺失。用MuTect2、Strelka等工具检测。

• CNV(拷贝数变异):大片段基因的扩增或缺失。用CNVkit、FACETS等工具检测。

• Fusion(基因融合):两个不同基因的片段异常拼接在一起。用STAR-Fusion、Arriba等工具检测(RNA层面),或用Manta、Lumpy等工具检测(DNA层面)。

数据分析中约5-10%的变异需要人工审核行业估算。这些通常是低频变异、复杂区域变异、或算法结果不一致的变异——机器拿不准的,还得人来把关。

常见错误

✗ 参考基因组版本混淆:GRCh37(hg19)和GRCh38的坐标体系不同,同一个突变在两个版本上的位置可能不一样。如果比对用的是GRCh38,但注释数据库还是GRCh37的,坐标就对不上。这个问题听起来低级,但我确实见过——而且不止一次。

✗ 比对参数不当:BWA-MEM的默认参数适用于全基因组测序,但Panel测序的read长度、插入片段大小可能不同,需要调整参数。参数不对,比对率下降,后续全错。

✗ PCR重复未去除:PCR扩增产生的重复reads会被误认为高深度覆盖,导致变异频率计算偏差。去重(deduplication)是必须的步骤——但去重方法也要选对,分子标签(UMI)方案和常规方案的去重逻辑不同。

✗ 低频突变过滤过严:为了减少假阳性,有些分析流程把变异频率阈值设得比较高(比如≥5%),但这样会漏掉真实的低频突变。在ctDNA检测中,有些临床相关的突变频率可能低至0.1%——过滤太严,信号就没了。

✗ 注释数据库未更新:基因注释、药物注释数据库需要定期更新。用半年前的数据库做注释,可能遗漏新发现的变异位点或新获批的药物信息。

对话

生信分析师小刘正在审核一批变异结果,叫来了同事老何。

小刘:"何哥,这个样本有个EGFR L858R,但频率只有1.2%,你觉得靠谱吗?"

老何:"看几个指标:深度够不够?比对质量怎么样?链偏向性(strand bias)严不严重?"

小刘:"深度320×,比对质量MAPQ=60,正负链reads都有支持,比例大概55:45。"

老何:"嗯,链偏向性不严重。但1.2%这个频率……是FFPE样本吧?"

小刘:"对。"

老何:"FFPE样本的C>T/G>A假阳性特别多,这是福尔马林固定造成的脱氨基损伤。你看看这个位点是不是C>T?"

小刘:"……还真是C>T。"

老何:"那就得小心了。用UMI纠错方案重新算一下频率,如果UMI纠错后频率还在1%以上,可以考虑保留;如果掉到0.5%以下,大概率是假阳性。"

第六站:报告生成——"翻译+排版"

▎数据解读

变异检测完成后,得到的只是一堆VCF文件里的碱基变化列表——A变成了T,第858位的亮氨酸变成了精氨酸……这些冷冰冰的符号,对临床医生来说毫无意义。

数据解读就是把"碱基语言"翻译成"临床语言"的过程。解读人员需要判断:这个变异是什么类型?是否已被文献报道?是否属于已知的驱动突变或耐药突变?

但请注意——我这里说的是"技术层面的分类和注释",不是"临床意义判断"。NGS报告会列出变异信息和相关文献引用,但具体的临床决策权始终在主治医生手中。我们做的是"翻译",不是"开处方"。

这个翻译过程,就像——嗯,就像"翻译+排版"——先把外文书籍翻译成中文,再按照读者习惯的格式排版成可读的文档。翻译要准确,排版要清晰,两者缺一不可。

▎报告模板应用

解读完成后,信息被填入报告模板。一份标准的NGS检测报告通常包括:

• 患者基本信息

• 样本信息(类型、质量评估)

• 检测方法学说明

• 检测结果(检出的变异列表)

• 变异注释(变异类型、频率、相关文献)

• 质控指标(测序深度、覆盖度、均一性等)

• 免责声明和局限性说明

模板不是一成不变的。不同Panel、不同样本类型、不同送检目的,报告格式和内容侧重点都有差异。但核心原则是:信息完整、逻辑清晰、可追溯

▎最终PDF文件生成

报告经过解读人员填写、审核人员复核、授权人签发后,最终生成PDF文件。这个PDF会被上传到系统,临床医生可以通过平台在线查看或下载。

从组织到PDF,我的旅行到此结束。

但故事没有结束。因为一份报告的质量,取决于整个流程中每一个环节的可靠性。任何一个环节出了问题——样本混淆、核酸降解、接头二聚体、测序质量差、分析参数错、解读遗漏——最终报告都可能"失真"。

常见错误

✗ 变异注释错误:把错义突变(missense)标注为无义突变(nonsense),或者把氨基酸位置标错了一位。这种"笔误"级别的错误,后果可能很严重——因为临床医生是根据你报告里的信息做决策的。

✗ 质控指标遗漏:报告里没有标注测序深度、覆盖度等质控信息。临床医生无法判断这份报告的数据质量是否可靠。一份没有质控信息的报告,就像一张没有刻度的尺子——看起来像尺子,但量不出东西。

✗ 模板版本过旧:用了旧版报告模板,缺少新增的必填字段或更新后的免责条款。报告合规性审查不通过,需要返工。

✗ 患者信息张冠李戴:报告生成时系统调取了错误的患者信息。这个问题和第一站的样本混淆不同——样本没搞错,但报告生成时信息匹配出了bug。

✗ 审核流程形同虚设:审核人只是"签个字",没有真正逐项核对。13年经验告诉我,审核环节是报告质量的最后一道防线,如果这道防线也松了,那前面的所有努力都可能白费。

对话

报告审核区的赵医生正在复核一份报告,发现了问题。

赵医生:"这份报告的质控部分,平均测序深度只有180×,但我们的标准是≥500×。怎么通过的?"

解读员小吴:"这个样本是FFPE,DNA质量不太好,深度确实没达到标准。但覆盖度还行,98%的目标区域覆盖度≥100×。"

赵医生:"覆盖度达标不代表深度达标。180×的平均深度,低频突变的检测灵敏度肯定受影响。报告里有没有注明?"

小吴:"……没有。"

赵医生:"补上。在局限性说明里加一条:'本样本平均测序深度低于实验室标准,低频变异(VAF<5%)的检测灵敏度可能受限,结果需结合临床综合判断。'"

小吴:"好的。那这份报告需要重做吗?"

赵医生:"数据不用重做,但报告必须修改后重新签发。宁可多花半小时,也不能发一份信息不完整的报告。"

灰度讨论

▎争议一:FFPE样本到底该不该设"准入门槛"?

FFPE样本DNA降解率约30-50%,这意味着大量FFPE样本的核酸质量其实是不达标的。但现实是,很多患者只有FFPE样本可用——重新活检有创伤、有风险、有费用,不是想做就能做。

争议空间:如果严格设门槛(比如DNA总量≥50ng、片段主峰≥200bp),会有相当比例的患者被"拒之门外",无法进行NGS检测;如果降低门槛,又面临假阴性风险——检测了,但结果不可靠,可能比不检测更危险。

执行难点:谁来定这个门槛?不同Panel对核酸质量的要求不同,不同实验室的检测能力也不同。统一标准可能"一刀切",不统一标准又缺乏可比性。而且,门槛设高了,送检量下降,实验室收入受影响——这个利益因素,没人愿意明说,但确实存在。

▎争议二:人工审核到底该审多少?

数据分析中约5-10%的变异需要人工审核。但在实际操作中,这个比例的弹性很大——审得细,一个样本可能要花2小时;审得粗,15分钟就能过。

争议空间:审得越细,报告越可靠,但效率越低、成本越高;审得越粗,效率上去了,但漏审的风险也上去了。在目前NGS Panel检测价格从8000-15000元降至3000-6000元的大背景下,实验室的利润空间越来越薄,人工审核的时间成本成了一个不得不算的账。

执行难点:哪些变异"必须审"、哪些"可以自动过",目前没有统一标准。不同实验室的审核策略差异很大,有的只审低频变异,有的只审临床相关基因的变异,有的则全量审核。缺乏标准化的审核流程,意味着不同实验室的报告质量可能存在显著差异——而患者和医生通常无法区分这种差异。

写在最后

中国高通量测序在肿瘤诊断市场规模接近80亿元。这个数字背后,是数以万计的样本每天在经历我刚才讲述的旅程。

从组织到PDF,六个环节,每一步都可能出错,每一步都不可替代。

13年经验告诉我,NGS检测不是一台仪器的事,而是一条完整的链条。链条的强度取决于最薄弱的环节——样本接收的马虎、核酸提取的粗糙、文库制备的失误、上机测序的偏差、数据分析的疏漏、报告审核的形式主义……任何一个环节掉链子,最终的结果都可能失真。

所以,如果你是临床医生,拿到一份NGS报告时,请多看一眼质控指标——那不是装饰,是这份报告的"信用评级"。

如果你是实验室从业者,请对每一个环节保持敬畏——你手上的每一个操作,都可能影响一份报告的准确性,而那份报告背后,是一个真实的患者。

如果你是患者或家属,请理解NGS检测的复杂性——它不是抽管血等几天就出结果的简单检查,而是一段精密而脆弱的旅程。

我是一块FFPE组织。我的旅行结束了。但每天,还有无数个"我"正在路上。

愿每一段旅程,都不被辜负。

匿名投票

免责声明

本文以拟人化叙事手法介绍NGS检测的技术流程,所有环节描述基于行业通用操作规范与作者个人从业观察,不针对任何特定检测机构或平台。文中数据源自行业交流与推算,未经独立审计,不可作为学术引用或商业决策依据。本文不提供任何疾病的诊断建议、治疗方案推荐或基因变异的临床意义解读,亦不构成对任何检测产品或服务的背书。NGS检测的具体操作应遵循各实验室SOP及最新版行业指南。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-05 16:08:01 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/714222.html
  2. 运行时间 : 0.086188s [ 吞吐率:11.60req/s ] 内存消耗:4,787.10kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d691f393109096ab66bba20b8e20b6c9
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000506s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000583s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000280s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000256s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000469s ]
  6. SELECT * FROM `set` [ RunTime:0.000195s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000484s ]
  8. SELECT * FROM `article` WHERE `id` = 714222 LIMIT 1 [ RunTime:0.000408s ]
  9. UPDATE `article` SET `lasttime` = 1780646881 WHERE `id` = 714222 [ RunTime:0.000881s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000215s ]
  11. SELECT * FROM `article` WHERE `id` < 714222 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000411s ]
  12. SELECT * FROM `article` WHERE `id` > 714222 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000373s ]
  13. SELECT * FROM `article` WHERE `id` < 714222 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000931s ]
  14. SELECT * FROM `article` WHERE `id` < 714222 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000930s ]
  15. SELECT * FROM `article` WHERE `id` < 714222 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000651s ]
0.087859s