
將微基因全基因組cram文件解壓轉換為bam文件教程
1.?首先安裝vmware虛擬機,配置linux環境,本人采用的是Ubuntu-22.10-desktop-amd64.iso
硬件資源:暗影精靈8 ?cpu:i7-12700H ???內存:DDR5 4800 32G 雙通道
?
安裝samtools工具,配置好共享文件夾(此步驟請自行百度)
如果共享文件夾無法掛在,請執行指令:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
?
2.?其次在微基因里面下載所有的基因數據。
你將會得到3個文件
63288812349876.cram???????????????????cram壓縮的全基因組數據
63288812349876.vcf?????????????????????記錄基因組變異的文件
63288812349876.Y.bam???????????????????Y染色體的bam文件
(女性的不是Y染色體,但是也會有一個bam文件,應該是線粒體bam文件)
硬件資源:暗影精靈8 ?cpu:i7-12700H ???內存:DDR5 4800 32G 雙通道
?
安裝samtools工具,配置好共享文件夾(此步驟請自行百度)
如果共享文件夾無法掛在,請執行指令:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
?
2.?其次在微基因里面下載所有的基因數據。
你將會得到3個文件
63288812349876.cram???????????????????cram壓縮的全基因組數據
63288812349876.vcf?????????????????????記錄基因組變異的文件
63288812349876.Y.bam???????????????????Y染色體的bam文件
(女性的不是Y染色體,但是也會有一個bam文件,應該是線粒體bam文件)
16 個回復
提取fastA文件的方法是從63288812349876.Y.bam中提取fastQ,再將fastQ轉換為fastA
而bam文件包含fastQ文件,所以
首先需要將63288812349876.Y.bam文件轉換為sam文件
?
執行命令
samtools view -@ 8?-h 63288812349876.Y.bam > 63288812349876.Y.bam.sam
將bam文件轉換為sam文件,其中使用8線程加速操作
?
然后獲得1個新文件
63288812349876.Y.bam.sam
?
贊同來自: chenmx00
贊同來自:
贊同來自:
?
通常情況下,從SAM文件中提取fastQ格式的序列數據時,會生成兩個fastQ文件,一個包含讀1的序列數據,另一個包含讀2的序列數據。這是因為Illumina測序數據通常是成對的,即包含了從同一個基因片段的兩端讀取的序列數據。因此,您需要分別提取這兩端的序列,并將其保存在不同的文件中。
?
?
執行命令:
samtools fastq -@ 8 63288812349876.Y.bam.sam -1 63288812349876.Y.bam.sam.1.fastq -2 63288812349876.Y.bam.sam.2.fastq
?
本命令使用8線程加速操作,
?
贊同來自:
[M::bam2fq_mainloop] discarded 0 singletons
[M::bam2fq_mainloop] processed 5090624 reads
?
(這是samtools bam2fq命令輸出的一部分信息。其中,“[M::bam2fq_mainloop] discarded 0 singletons”表示在轉換過程中沒有丟棄任何單獨的reads。
而“[M::bam2fq_mainloop] processed 5090624 reads”則表示該命令已經處理了5090624個reads。
這個信息告訴我們samtools bam2fq已經成功地將BAM文件轉換為了FASTQ文件,并且輸出了多少reads。如果你需要的話,你可以根據這個信息檢查轉換結果是否正確,并在處理大規模數據時,通過這個信息來了解轉換進度。)
?
然后獲得2個新文件
63288812349876.Y.bam.sam.1.fastq
63288812349876.Y.bam.sam.2.fastq
?
贊同來自:
samtools不支持將FASTQ文件直接轉換為FASTA文件,因為這是兩種不同的文件格式,FASTQ文件包含了序列的質量信息,而FASTA文件只包含序列信息。因此,需要使用其他工具來進行轉換。
可以使用seqtk工具將FASTQ文件轉換為FASTA文件,并且seqtk支持多線程操作。
其中,-a參數表示轉換為FASTA格式,-j參數指定使用的線程數,input.fastq為輸入的FASTQ文件,output.fasta為輸出的FASTA文件。
?
首先安裝必要命令庫
?
執行命令:
?
安裝 zlib 庫:
sudo apt-get install zlib1g-dev
?
安裝 GCC 編譯器:
sudo apt-get install gcc
?
安裝seqtk:
git clone https://github.com/lh3/seqtk.git;
cd seqtk; make
?
出現這個提示說明編譯 Seqtk 成功了,并生成了一個名為 "seqtk" 的可執行文件。
執行命令:
seqtk seq -a 63288812349876.Y.bam.sam.1.fastq > 63288812349876.Y.bam.sam.1.fasta
?
?
?
該命令將fastQ轉換為fastA
執行結束后將得到一個新文件:
63288812349876.Y.bam.sam.1.fasta
?
?
贊同來自:
?
需要注意的是,微基因的參考基因組序列是GRCh37/hg19,請自行下載對應的參考序列,使用不同的參考序列會導致結果不準確。如果不知道如何下載可以請教地表最強AI,ChatGPT。
這里修改一下,經過熱心網友的討論,我們可以直接使用現成的fasta文件而不必自己提取fasta
1. 下載ref文件
?
wget?http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/technical/reference/human_g1k_v37.fasta.gz
?
2. 解壓
我直接在windows11下使用360壓縮進行了解壓,因為是虛擬機共享文件夾,所以省去了命令指令
3. 給ref建個index
samtools faidx?human_g1k_v37.fasta
?
4. 把cram轉成bam就好了
執行命令:
samtools view -@ 20 -b -T human_g1k_v37.fasta?-o 63288812349876.bam 63288812349876.cram
?
?
本命令使用20線程加速轉換,如果你的設備很強,請自行修改線程數量。我的32G內存已經全部占滿了,CPU占用倒不是很大,只有32%
?
(這個命令會從輸入的 CRAM 文件 63288812349876.cram 中解壓縮并轉換成 BAM 格式的文件 63288812349876.bam。參考基因組文件 63288812349876.Y.bam.sam.1.fasta 用于提供基因組信息,確保輸出 BAM 文件中的 reads 在正確的位置上。這里的 -T 選項指定參考基因組文件,-b 選項將輸出文件轉換為 BAM 格式。
?
請注意,如果使用 CRAM 文件,需要提供參考基因組文件以將 CRAM 文件解壓縮成 BAM 文件。但如果使用 BAM 文件,則不需要提供參考基因組文件,因為 BAM 文件已經包含了基因組信息。)
?
?
等到幾小時后,你就會獲得一個63288812349876.bam的文件,這個文件就是cram解壓后的原始數據,到這里你就獲得了你要的數據。
我轉換花了45分鐘,加壓后文件大小為62.3GB。
贊同來自:
分別執行命令:
?
samtools index -@ 8?63288812349876.Y.bam
?
samtools index -@ 8 63288812349876.bam
?
上面的命令是生成Y染色體的bai文件
下面的命令是生成cram文件的bai文件
到現在你就獲得了原始的bam測序文件,我的文件大小63G,你們的多大我就不清楚了。
?
?
贊同來自:
?
?
?
補充一些關于SAM和BAM文件的基本知識,這可能有助于更好地理解如何將BAM文件轉換為SAM文件以及它們之間的區別:
SAM(Sequence Alignment/Map)是一種文本格式,用于描述序列比對的結果,包括比對到參考序列的序列讀取、比對位置、質量值等信息。SAM 文件中的每一行表示一個比對結果,以制表符分隔的字段包括序列名稱、比對標志、參考序列名稱、比對起始位置、質量值、CIGAR字符串等。SAM 格式是一種人類可讀的格式,方便進行手動編輯或解析,但是文件體積比較大,不適合存儲大規模的測序數據。
?
贊同來自:
贊同來自:
贊同來自:
贊同來自:
贊同來自:
?
-T 參數其實是需要一個參考基因組ref文件,這個在cram/bam的header里能看到(samtools view -H input.cram | less ),WeGene用的應該是這個版本(human_g1k_v37.fasta),去下載一個就好了。
?
1. 下載ref文件
wget?http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/technical/reference/human_g1k_v37.fasta.gz
2. 解壓
gunzip?human_g1k_v37.fasta.gz
3. 給ref建個index
samtools faidx?human_g1k_v37.fasta
4. 把cram轉成bam就好了
samtools view -b -T?human_g1k_v37.fasta?-o?output.bam?input.cram
贊同來自:
贊同來自:
贊同來自:
要回復問題請先登錄或注冊