名偵探柯南」,其實并不好當。
作者 | Lilyann
編輯 | 靖宇
不久前,重新翻拍的《尼羅河上的慘案》(Death on the Nile)登陸國內院線。即便有「神奇女俠」蓋亞·加朵和一眾明星支持,影片還是遭到了阿加莎·克里斯蒂原著粉的瘋狂吐槽,豆瓣評分目前 5.8 分——鑒于英國名導肯尼斯·布拉納(同時飾演片中主角大偵探波洛)還會繼續翻拍下去,該系列的評分可能還會繼續走低。
從波洛、福爾摩斯再到各國影視劇,推理和探案故事在全球培養起了數億的「業余偵探」。而現在,隨著技術的發展,這些推理愛好者已經不滿足于文藝作品,而想要「親自上場」,用自己的力量偵破陳年遺案。
在美國,有人專門在 GoFundMe 和 Kickstarter 上眾籌,對一些未偵破案件的證物和遺骸進行 DNA 檢測,用來辨別遇害人以及犯罪嫌疑人身份。而針對這些來自推理愛好者的需求,甚至有名為 Othram 的公司,專門進行 DNA 分析比對鑒定,并且成功拿到了融資。
利用 DNA 技術「眾籌擒兇」,會成為一種潮流嗎?在推理愛好者的狂熱背后,又有哪些陰暗面,會在意料之外,對人們和社會產生影響?
1959 年,年僅 9 歲的女童甘迪絲?羅杰斯(Candice Elaine Rogers)在華盛頓州斯波坎社區失蹤,16 天過后,她的鞋子被兩名獵人在山區發現,而后警方發現了她被埋在樹下的遺體。
尸檢報告顯示,羅杰斯生前曾遭遇虐待,后被兇手勒死。由于失蹤前她還在社區內兜售薄荷糖,所以又被稱為「糖果」(Candy)。
甘迪絲生前照片|圖片來自網絡
由于證據始終不夠確鑿,警方始終難以被鎖定嫌犯。警察曾將遇害者身上的體液進行檢測分析,但遺憾的是,在聯邦犯罪資料庫中并沒有找到能夠與之吻合的對象。
半個多世紀以來,隨著科技逐漸成熟,本地也成立了愈來愈多的 DNA 檢測實驗室。2020 年,警方曾與其中一家接洽,但得到的回信是樣本年久腐壞,無法分析出更多的結果。
直到一年之后,法醫科學家布列塔尼·賴特 (Brittany Wright) 與 Othram 實驗室進行交談得知,后者正在研發更為先進的基因測序技術:通過法醫族譜學構建出兇手檔案,縮小嫌犯人選至鎖定目標到兄弟三人身上,其中一人便是真正的罪犯:約翰·霍夫(John Reigh Hoff)。
而推動整個案件水落石出的,是霍夫的女兒凱西·霍夫得知自己已在 30 年前自殺的父親,和幾十年前的懸案突然產生聯系,主動與警方聯絡提供了自己的 DNA 樣本。在搜索令獲準下,警方挖掘霍夫的墳墓進行遺體采樣,最后確認,霍夫即為 62 年前性侵并殺害女童的兇手。
2021 年召開的警方記者會上,甘迪絲?羅杰表親出現在電視屏幕上,擦去眼角的淚水|The Spokesman-Review
而像小甘迪絲這樣的案例,在美國還有很多。美國國家失蹤與不明身份人口系統(NamUs)的數據,平均每年有超過 4 千具無名尸骸被發現,且每年遺骸與失蹤人口的數量都在增加——美國國家司法研究所將其稱之為「無聲的巨大災難」(silent mass disaster)。
讓「無聲災難」不再「沉默」,是 Othram 這類的 DNA 實驗室創辦的初衷。實驗室名稱來自《指環王》中岡多主城——白城米納斯·提力斯外的城墻,創始人 Mittelman 希望對基因進行測序、歸檔的技術手段,構建一個龐大的、可共享的數字化法醫證據庫(學界稱為法醫系譜學),破解積壓疑案,從而成為守護社會的城墻。
設想很美好,但問題依舊存在。他們首先遇到的麻煩就是:DNA 樣本過少怎么辦?
其實從 1994 年,FBI 就已經開始建立 DNA 數據庫了,名為 DNA 聯合索引系統(Combined DNA Index System),將案件中的受害者與犯罪人員的 DNA 檔案編入,從而能夠快速抓獲慣犯。但其中儲存的樣本數量與內容依舊不夠詳盡。
Othram 實驗室內,工作人員正在進行DNA測序,旁邊是一臺Illumina NovaSeq 6000測序儀|New York Time
以 2020 年剛剛結案、Othram 也同樣參與 DNA 化驗的「休斯敦伴娘被新郎殺害」一案來說,一般的刑事案件會給出 20 個 DNA 注記作為對比,但在這個案子上至少從數據庫中比對了幾萬個注記,越多的注記相符,能夠確認的幾率就越高。
由此,DNA 樣本儲存越多,一定程度上越能夠推動案件進展。在這種條件下,「眾籌」的模式就產生了。
這里的眾籌衍生出兩種意味:一是通過捐款,為 DNA 測序提供足夠的基金,二是捐贈自己委托商業測序公司所測出的 DNA 信息到類似 Othram、GED Match 等機構的族譜數據庫中。
而參與眾籌的這個群體,往往就會被稱之為「DNA 偵探」。
去年,居住在迪拜的 Carla Davis,在 LinkedIn 上看到了 Othram 實驗室發布的,關于「尋找 1978 年田納西謀殺案兇手」的帖子,需要籌集到 5000 美元才能進行下一步的 DNA 測序。
Davis 被其中一句「我們是在為了正義眾籌」所打動,直接補足了剩下未籌到的近 4,000 美元。根據紐約時報的報道:截至今年三月,這些 DNA 偵探們已經累計在眾籌中捐贈了超過一百萬美元。
在 Facebook 上,有人建立了「DNA Detectives Facebook」群組,聚集了許多與 Davis 有著相似追求的同好。這些人如此活躍的原因之一,是對「解謎快感」的追求。
對于犯罪事件的披露,一直以來都是人們好奇心最為高漲的議題之一。即使發生在距離遙遠的其他國家,也難以抑制人們想要了解更多的沖動。
Carla Davis 已經為「懸案眾籌」捐贈了超過 10 萬美元|New York Times
一起復雜而懸而未決的案件,能夠同時戳中人們內心對作案動機的窺探欲、對受害者的共情力、伸張正義的使命感、以及對案件調查的參與欲。它們混合起來,成為同情、害怕、刺激,又帶著些快感的情緒。
來自多倫多大學的學者 Jooyoung Lee 就曾提到,當我們開始消費這種「來自現實生活中的恐怖」,會讓大家覺得自己成為了故事中的一部分。
而通過社交群組和 Othram 這類向大眾開放捐款或捐贈 DNA 的基因實驗室,讓以眾籌形式偵破懸案一事徹底變成可能。正如 Davis 在接受媒體采訪時說的:「如果我們能夠真的對于破案幫上忙,為什么還要僅僅呆在家里收聽犯罪懸疑播客呢?」
法醫界從業人士告訴極客公園(ID:geekpark),在國內,破案更多是依賴罪犯 DNA 數據庫,將現場檢材的 DNA 分型結果輸入數據庫對比,歸屬公安部管理。
而美國由于消費級基因檢測市場的成熟,有需求的當事人(無論是尋根問祖或是偵破懸案)委托實驗室發起眾籌,逐漸形成公眾的、可交叉共享的數據庫。
不僅限于留有案底的罪犯,如果嫌疑人有親屬曾經向數據庫提交過 DNA 采樣,那么通過縮小范圍的方式也能夠定位。由此,「法醫系譜學」應運而生。
Othram 的兩位創始人展示其網站 DNASolves.com 上的內容|New York Times
當人們沉浸在冤案得雪,擒獲兇手和伸張正義的滿足背后,同樣也有一些不可忽視的問題。
2018 年,基因監測機構 FamilyTreeDNA 宣布向執法部門開放,并且通過與調查人員合作,讓警方能夠使用的基因數量幾乎翻了一倍,此舉當時就引發了一輪對于身份隱私的擔憂爭議。次年,FamilyTreeDNA 正式就此事向公眾道歉。
根據 FamilyTree 持有的 200 萬人 DNA 數據,能夠辨認出相關幾乎數億人的身份。這意味著,如果把控不嚴,這些掌握大量 DNA 數據的數據庫,將會引發可怕的數據隱私問題。
薩拉勞倫斯學院(Sarah Lawrence College)的基因咨詢師 Laura Hercher 曾經指出,應該由法律界定獲取 DNA 信息的條件,而非機構本身。「(DNA)是抓捕罪犯的好方法,但也可能被別有用心的人濫用。」
通過 DNA 技術,可以追溯到一個人家庭譜系中的大多數親人,而并不是所有人都想要自己的信息進入到這個系統之中。可惜的是,一旦有人上傳了自己的 DNA 信息,與其相關的親戚,也被動地進入到系統之中,其中的隱私和法律問題,目前還沒有明確的解決方法。
不管是文藝作品,還是現實生活,在任何一起案件的偵破中,涉及的都不僅僅是犯罪者和受害者,更會影響到雙方背后大量的關系人員。如何將先進的技術,控制在合理范圍內,某種意義上要比破案更加重要。
參考資料
[1]Hoff's family proves crucial to helping solve murder, now live with fact family member committed brutal crimes | The Spokesman-Review
https://www.spokesman.com/stories/2021/nov/19/hoffs-family-proves-crucial-to-helping-solve-murde/
[2]NGS 為法醫學帶來變革
https://www.illumina.com.cn/company/news-center/feature-articles/revolutionizing-forensics-with-ngs.html
[3] 休士頓伴娘遭奸殺 25 年后揪出新郎是兇手
https://posts.careerengine.us/p/60a28d9b4087816230fef0e3
[4] 你就是偵探:真實犯罪案件為什么吸引我們?|界面新聞 · 影像
https://www.jiemian.com/article/3200114.html
[5]The Racial Composition of Forensic DNA Databases - California Law Review
https://www.californialawreview.org/print/racial-composition-forensic-dna-databases/
[6] 基因檢測會暴露我們的隱私嗎?_信息
https://www.sohu.com/a/319550815_119097
[7]The True Crime-Obsessed Philanthropists Paying to Catch Killers
https://www.nytimes.com/2022/03/27/technology/dna-tests-crime-solving.html
*頭圖來源:pixabay
本文為極客公園原創文章,轉載請聯系極客君微信 geekparkGO
老板:“先查看一下bam文件內容。”
小白:嗒嗒嗒敲鍵盤。
$ less ehbio.bam
"ehbio.bam" may be a binaryfile. See it anyway?
小白:“哎呀,錯了,應該這樣。” 嗒嗒嗒敲鍵盤。
$ samtools view ehbio.bam # 回車一敲,災難,電腦要卡死,趕緊按`control + c`
$ samtools view ehbio.bam | less # 這下終于可以查看了
老板:“你逗我呢……”(不失禮貌的批評)
剛接觸生信分析的小白們這種尷尬的事情時有發生,為了幫助大家梳理這些剪不斷理還亂的文件,本文以分析流程為主線,介紹各文件的格式以及有哪些常用命令來查看或處理它們。
1)文件用途:樣品測序返回的數據一般存儲為fastq文件,通常是壓縮文件filename.fq.gz的格式,節省存儲空間和傳輸時間。NGS基礎 - FASTQ格式解釋和質量評估
2)查看方式
# zcat查看gzip壓縮的文件
# head -n 8 顯示前8行文件內容(前8行代表2條序列)
zcat filename.fq.gz | head -n 8
# @SRR1039521.13952745/1
# TTCCTTCCTCCTCTCCCTCCCTCCCTCCTTTCTTTCTTCCTGTGGTTTTTTCCTCTCTTCTTC
# +
# HIJIIJHGHHIJIIIJJJJJJJJJJJJJJJJJJJJJIIJJFIDHIBGHJIHHHHHHFFFFFFE
3)格式說明:fastq文件每4行代表一條序列
第一行:記錄序列測序時所用儀器以及在測序通道中坐標信息,以@開頭;
第二行:測序的序列信息,以ATCGN表示,由于熒光信號干擾無法判斷是什么堿基時就用N表示;
第三行:通常一個+;
第四行:與第二行堿基信息一一對應,存儲測序堿基的質量值。
4)其他常用命令
# 計算read數
# wc -l: 計算行數
# bc -l: 計算器 (-l:浮點運算)
# 為什么除以4,又除以1000000,計算的是million值
echo "`zcat trt_N061011_1.fq.gz | wc-l` / (4*1000000)" | bc -l
# 測序堿基數計算
zcat trt_N061011_1.fq.gz | awk'{if(FNR%4==0) base+=length}END{print base/10^9,"G";}'
awk的介紹見:常用和不太常用的awk命令
此文件可以從ensemble數據庫下載的(https://www.ensembl.org/info/data/ftp/index.html), 一般選擇下載primary assemblyfasta(想知道為什么,點這里)。fasta文件用于序列存儲,可以是DNA或蛋白序列,在此FASTA文件存儲了基因組序列的信息。
序列名字行:以>符號開頭,記錄了該序列類型和所在基因組位置信息;
序列行(一行或多行):序列信息,soft-masked基因組會把所有重復區和低復雜區的序列用小寫字母標出的基因組,小寫字母n表示未知堿基。
>1 dna_sm:chromosomechromosome:GRCh38:1:1:248956422:1 REF
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
.....
ttgggctggggcctggccatgtgtatttttttaaatttccactgatgattttgctgcatg
gccggtgttgagaatgactgCGCAAATTTGCCGGATTTCCTTTGCTGTTCCTGCATGTAG
TTTAAACGAGATTGCCAGCACCGGGTATCATTCACCATTTTTCTTTTCGTTAACTTGCCG
.....
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
# 通常要求序列名字行簡單為好,而且一般加chr作為開頭
# 給第一行添加chr標簽,并去掉其他多余信息
# 下面的寫法復雜了些,是為了避免給已經有chr信息的名字再加一次
# 幫助無腦操作
sed 's/^>\([^chr]\)/>chr\1/' Homo_sapiens.GRCh38.dna.primary_assembly.fa |cut -f 1 -d ' ' > GRCh38.fa
gff全稱General featureformat,主要是用來注釋基因組。gtf全稱Gene transfer format,主要是用來對基因進行注釋。兩者均是一個9列的基因信息注釋文件,前8列的信息幾乎一樣,區別在于第9列。具體可見歷史推文NGS基礎 - GTF/GFF文件格式解讀和轉換 在此不再贅述。
從ensemble下載的gtf文件前5行一般是以#開頭的注釋信息,后續分析中用不上需要去除,同時需要給第一列添加chr標簽(與基因組序列一致),可通過下面的命令對文件進行加工:
# grep 匹配查詢 -v 輸出不匹配的行
gunzip Homo_sapiens.GRCh38.94.gtf.gz -c |grep -v '^#' | sed '/^[^chr]/ s/^/chr/' >GRCh38.gtf
分析過程中的bed文件一般代表區域信息,如表示Peak位置的bed文件,表示基因注釋的bed12文件。
1)gtf/gff文件一行表示一個exon/CDS等子區域,多行聯合表示一個gene;bed文件一行表示一個gene;
2)gtf文件中堿基位置定位方式是1-based,而bed中堿基定位方式是0-based,如下圖所示。
必須包含的3列信息:
1)chrom:染色體名字 (e.g.chr3, chrY, chr2_random或者scaffold10671)。
2)chromStart:基因在染色體或scaffold上的起始位置(0-based)。
3)chromEnd:基因在染色體或scaffold上的終止位置 (前閉后開)。
可選的9列信息:
4)name:bed文件的行名。
5)score:本條基因在注釋數據集文件中的評分(0-1000),在Genome Browser中會根據不同區段的評分顯示對應的陰影強度(評分越高灰度越高)。
6)strand:鏈的方向+、-或. (.表示不確定鏈的方向)
7)thickStart:CDS區(編碼區)的起始位置,即起始密碼子的位置。
8)thickEnd:The endingposition at which the feature is drawn thickly (for example the stop codon ingene displays).
9)itemRgb:RGB顏色值(如:255,0,0),方便在GenomeBrowser中查看。
10)blockCount:bed行中外顯子的數目。
11)blockSizes:逗號分割的列,數目與blockCount值對應,每個數表示對應外顯子的堿基數。
12)blockStarts:逗號分割的列,數目與blockCount值對應,每個數表示對應外顯子的起始位置(數值是相對ChromStart計算的)。
sam文件全稱The SequencingAlignment/Map Format,是Alignment/Map步驟bwa/STAR/HISAT2等軟件對結果的標準輸出文件,用于存儲reads比對到參考基因組的比對結果,是一個純文本格式,文件一般較大。為了節省硬盤存儲,一般使用其高效壓縮的二進制格式bam文件。
利用samtools view的-b參數就能把sam文件轉為bam文件。
1)sam文件查看方式
在linux終端直接用less即可進行查看;
2)bam文件查看方式
需要借助samtools view工具進行查看
samtools view filename.bam | less -S
samtools view -h filename.bam | less -S
NGS分析中大多數文件都是由header和record兩部分組成,加上-h參數后可以將header顯示出來,默認是不顯示的。
@HD VN:1.5 SO:coordinate
@SQ SN:chr1 LN:248956422
@SQ SN:chr10 LN:133797422
......
@SQ SN:chrKI270392.1 LN:971
@SQ SN:chrKI270394.1 LN:970
@RG ID:BH_H3K27ac_2 LB:BH_H3K27ac_2 SM:BH_H3K27ac_2
@PG ID:bwa PN:bwa VN:0.7.15-r1140 CL:bwa mem -M -t 8 -R@RG\tID:BH_H3K27ac_2\tLB:BH_H3K27ac_2\tSM:BH_H3K27ac_2\tPL: /MP
@PG ID:MarkDuplicates VN:1.138(aa51703435dc6a423013e74e56b0b68405facd79_1439324166) CL:picard.sam.markduplicates.
K00141:244:HVL3NBBXX:8:2119:27235:3145399 chr1 10016 32 115M=10016 115 CCCTAACCCTAACCCTAACCC
K00141:244:HVL3NBBXX:8:2119:27235:31453147 chr1 10016 32 115M=10016 -115 CCCTTACCCTAACCCTAACCC
# 1. read名稱;
# 2. 比對信息位flag值;
# 3. 參考序列染色體編號;
# 4. 5′端起始位置;
# 5. MAPQ:mapping quality,描述比對的質量,數字越大,特異性越高;
# 6. CIGAR字符串,記錄插入、刪除、錯配等信息;
# 7. 配對read所比對到的染色體,僅雙端測序的數據才有;
# 8. 配對read所比對到的位置,僅雙端測序的數據才有;
# 9. 插入片段的長度,僅雙端測序的數據才有;
# 10. read序列;
# 11. read質量值;
# 12. 12列以后的信息都是metadata,程序用標記
sam文件中第二列flag信息很重要,下面做進一步解釋。
利用samtools flagstat工具可以查看bam文件中比對的flag信息,并輸出比對的統計結果。
samtools flagstat *.bam
flag一共有12個標簽,使用16進制數表示,每個標簽值是2^(n-1),其中n<=12,每個值有其對應的唯一解釋含義,具體見下圖。
你會發現隨機挑選幾個值做加和運算,他們的結果都是唯一的,所以在bam文件中第二列flag的值代表這條序列符合下圖所示條件的值的和。
所以根據這個值我們可以判斷這條序列是雙端測序還是單端測序;如果是雙端測序,reads來自左端還是右端。比如65 只能是1和64組成,代表這個序列是雙端測序,而且是read1。
每次轉換很頭疼?別擔心,網上有很多解碼flag含義的在線工具,如SAM Format(網址:https://www.samformat.info/sam-format-flag)
輸入flag的值,解析工具會返回匹配上的信息。如果是單端測序,flag值都是偶數。
如果是雙端測序,工具會幫我們把另外一端序列的flag值返回,并且將這些數字情況大致分為5類,在右側進一步顯示這個值對應的含義。
上述bam和sam文件可以幫助我們探索reads在參考基因組中的比對情況,導入基因組瀏覽器查看比對狀態和突變信息。而wiggle(簡稱wig)、bigwig(簡寫bw)以及bedgraph(簡寫bdg)只包含區域和區域的覆蓋度信息,文件更小,用于可視化更方便,可以導入基因組瀏覽器(Genome Browser)中進行可視化,以查看reads在參考基因組各個區域的覆蓋度并檢測測序深度。這幾個文件在ChIP-seq數據分析Call Peak階段會生成,可以利用IGV等工具進行可視化,方便查看組蛋白修飾的程度。
variableStep chrom=chr2
300701 12.5
300702 12.5
300703 12.5
300704 12.5
300705 12.5
fixedStep chrom=chr3 start=400601 step=100span=5
11
22
33
chromA chromStartA chromEndA dataValueA
chromB chromStartB chromEndB dataValueB
推薦大家閱讀UCSC官網對這幾個文件的詳細解釋:
廠程序員經驗之談:前端不好找工作?那是你沒掌握這些!最近有不少剛上大學的同學向我咨詢如何學習前端,還有一些準備轉行的朋友,我想分享一下如何正確學習前端。
首先,要具備扎實的理論基礎,能夠分析和解決應用場景的需求,以及實現和編碼的能力。其次,要熟練掌握HTML、CSS3快速布局,能夠高質量地還原設計圖。然后,要熟練掌握各種CSS預處理、CSS模塊、CSS NGS等方案,熟悉響應式、自適應移動端等適配方案。接下來,要熟練掌握JavaScript及ES6+,掌握異步編程、模塊化編程、面向對象編程思想,能夠熟練處理各種數據結構,并掌握TypeScript進行類型劃分、閱讀源碼等技能。最后,要熟練掌握Nc:要學習的內容,這些資料可以分享給需要的人。
我推薦學習以下書籍:《JavaScript高級程序設計》、《Webpack、Babel、npm、Vite實戰》、《Node.js從入門到精通》、《Git實戰》、《SVN基礎與實戰》、《高性能JavaScript》、《CSS揭秘》、《圖解HTTP》、《大話數據結構》。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。