如何做基因組survey

基因組survey

在組裝基因組之前一定要先對要組裝的物種有一個大致的瞭解,判斷其複雜程度, 標準如下

  • 簡單基因組: 雜合度低於0.5%, GC含量在35%~65%, 重複序列低於50%
  • 二倍體普通基因組: 雜合度在0.5%~1.2%中間,重複序列低於50%。或雜合度低於0.5%,重複序列低於65%
  • 高複雜基因組: 雜合度>1.2% 或 重複率大於65%

k-mers

最簡單的策略就是基於k-mer對基因組做一個簡單的瞭解, 使用jellyfish統計k-mers,然後作圖

jellyfish count  -m 21 -s 20G -t 20 -o 21mer_out  -C --min-qual-char=? <(zcat test_1.fq.gz) <(zcat test_2.fq.gz)
# -m k-mers的K
# -s Hash大小, 根據文件大小確定
# -t 線程
# -o 輸出前綴
# -C 統計正負鏈
# --min-qual-char 過濾低質量鹼基。 在Phred+33中,?=30
jellyfish histo -o 21mer_out.histo 21mer_out

用R作圖

pdf("21_mer.out.pdf")
dataframe19 <- read.table("21mer_out.histo")
plot(dataframe19[1:200,], type="l")
dev.off()

k-mers作圖

由於只有一個主峯,說明該物種的雜合度並不高,基本上也就是二倍體。如果圖中出現多個峯,說明它可能是多倍體或者是基因組雜合度高。

推薦文獻: Genomic DNA k-mer spectra: models and modalities

基於組裝

基於K-mers可以較好的預測基因組大小,並定性的瞭解基因組的複雜情況,如果想更具體的瞭解基因組的複雜度,可以先將50X以上的段片段進行組裝,然後進行分析。

組裝的工具比較多,推薦用SOAPdenovo,因爲速度快。

新建一個contig.config, 增加如下內容

max_rd_len=150
[LIB]
avg_ins=200
reverse_seq=0
asm_flags=3
rd_len_cutoff=100
rank=1
pair_num_cutoff=3
map_len=32
q1=read_1.fq
q2=read_2.fq

組裝出參考序列

~/opt/biosoft/SOAPdenovo2/SOAPdenovo-63mer all -s contig.config -R -K 63 -p 30 -o assembly/graph

最後graph.scafSeq是拼接後的序列, 提取出大於300bp的序列.

# adjust format
bioawk -c fastx -v name=1 '{if(length($seq)>300) print ">"name "\n" $seq;name+=1}' assembly/graph.scafSeq >contig.fa

雜合度估計

將原來的序列回貼到contig上,並用samtools+bcftools進行snp calling.統計變異的鹼基佔總體的比例。

mkdir -p index
bwa index contig.fa -p index/contig
bwa mem -v 2 -t 10 index/contig read_1.fq read_2.fq | samtools sort -n > align.bam
samtools mpileup -f contig align.bam | bcftools call -mv -Oz -o variants.gz

一方面由於SOAPdenovo組裝過程中會出錯, 另一方面samtools在變異檢測上也存在很高的假陽性, 所以總得先按照深度和質量過濾一批假陽性。

bcftools view -i ' DP > 30 && MQ > 30' -H variants.vcf.gz | wc -l
# 325219, 無過濾是445113

變異數目佔基因組大小的比例就是雜合度。我的contig大概是200M,找到0.3M左右的變異,也就是0.0015,即0.15%.

重複序列估計

基於同源註釋,用RepeatMasker尋找重複序列. 這裏要注意分析的fasta的ID不能過長,也就是最好是>scaffold_1這種形式,不然會報錯。

~/opt/biosoft/RepeatMsker/RepeatMasker -e ncbi -species arabidopsis -pa 10 -gff -dir ./ contig.fa
# -e ncbi
# -species 選擇物種 用~/opt/biosoft/RepeatMasker/util/queryRepeatDatabase.pl -tree 瞭解
# -pa 並行計算
# -gff 輸出gff註釋
# -dir 輸出路徑

輸出結果中主要關注如下三個

  • output.fa.masked, 將重複序列用N代替
  • output.fa.out.gff, 以gff2形式存放重複序列出現的位置
  • output.fa.tbl, 該文件記錄着分類信息
==================================================
file name: anno.fasta
sequences:         62027
total length:  273135210 bp  (273135210 bp excl N/X-runs)
GC level:         36.80 %
bases masked:   79642191 bp ( 29.16 %)
==================================================

也就是說我們的物種有30%的重複序列,作爲參考,擬南芥125Mb 14%重複序列, 水稻389M,36%重複

附錄:軟件安裝

安裝RepeatMasker

cd ~/src
wget http://tandem.bu.edu/trf/downloadstrf409.linux64
mv trf409.linux64 ~/opt/bin/trf
chmod a+x ~/opt/bin/trf
# RMBlast
cd ~/src
wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.6.0/ncbi-blast-2.6.0+-src.tar.gz
wget http://www.repeatmasker.org/isb-2.6.0+-changes-vers2.patch.gz
tar xf ncbi-blast-2.6.0+-src
gunzip isb-2.6.0+-changes-vers2.patch.gz
cd ncbi-blast-2.6.0+-src
patch -p1 < ../isb-2.6.0+-changes-vers2.patch
cd c++
./configure --with-mt --prefix=~/opt/biosoft/rmblast --without-debug && make && make install
# RepeatMasker
cd ~/src
wget http://repeatmasker.org/RepeatMasker-open-4-0-7.tar.gz
tar xf RepeatMasker-open-4-0-7.tar.gz
mv RepeatMasker ~/opt/biosoft/
cd ~/opt/biosoft/RepeatMasker
## 解壓repbase數據到Libraries下
## 配置RepatMasker
perl ./configure
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章