分以下几个部分:
CLR组装
HIFI组装
ONT组装
二、三代数据矫正
组装结果评估
一、CLR组装
下机数据:
主要用那个bam文件
软件:wtdbg2
第一步:bam转fasta文件
参考:https://www.jianshu.com/p/03c7eb11102d
# 进行基因组装
wtdbg2 -t 40 -i test.subreads.bam.fasta -fo test -L 5000 # -fo 设置前缀
# 得到一致性序列
wtpoa-cns -t 16 -i test.ctg.lay -fo test.ctg.lay.fa
# 利用三代reads的比对结果对基因组序列进行打磨修正
minimap2 -t 16 -x map-pb -a test.ctg.lay.fa test.subreads.bam.fasta | samtools view -Sb - > test.ctg.lay.map.bam
# -t 16:指定使用16个线程进行并行处理,以加快比对速度。
# -x map-pb:指定比对模式为长读长(PacBio或Oxford Nanopore)数据的比对。
# -a:生成在SAM格式中输出比对的所有辅助信息,包括未比对上的reads。
# test.ctg.lay.fa:表示比对的基因组序列。
# test.subreads.bam.fasta:表示待比对的长读长序列文件,以BAM或FASTA格式存储。
# samtools view:用于查看或转换SAM/BAM/CRAM格式的工具。
# -Sb:指定将输入解释为SAM格式并将其转换为BAM格式。
# -:表示从标准输入读取输入数据。
# >:将输出重定向到文件。
# test.ctg.lay.map.bam:表示输出的BAM文件名。samtools sort test.ctg.lay.map.bam -o test.ctg.lay.map.srt.bam
samtools view test.ctg.lay.map.srt.bam | wtpoa-cns -t 16 -d test.ctg.lay.fa -i - -fo test.ctg.lav.2nd.fa
二、HIFI组装
下机数据:
软件:HiFiasm 要求数据格式fasta
hifiasm --primary -o test -t 10 test_HiFi.fa 2>test.log
#输入文件格式为: .fa(.gz)或 fq(.gz) -t 设置使用cpu数量
# 得到的.gfa结果能够通过gfa2fasta.py转化成.fasta
# 或者用以下命令:
awk '/^S/(print ">"$2;print $3)' test.bp.p_ctg.gfa > test.bp.p_ctg.fa
三、ONT组装
软件:Canu 这个教程好像不完整,可以去官网:https://github.com/marbl/canu
等我再找找教程
canu -p xxx -d xxx genomeSize=XXm -nanopore-raw oxford.fasta
# -s接一个配置文件
# -p制定输出前缀
# -d指定输出结果目录
# -options显示全部选项参数
# genomeSize设置一个预估的基因组大小,便于让Canu估计测序深度,单位是K,M,G
# maxThreads设置最大线程数
# rawErrorRate设置两个未纠错read之间最大期望差异碱基数
# correctedErrorRate设置纠错后read之间最大期望差异碱基数
# minReadLength设置最小使用的reads长度
# minOverlapLength设置Overlap的最小长度
四、二/三代数据纠错
二代数据纠错:
使用pilon包进行二代数据纠错
准备数据:
draft.genome.fa
二代clean data
# 构建索引并比对:
bwa index -p test test.ctg.lav.2nd.fa
bwa mem -t 12 test test_R1.fastq test_R2.fastq | samtools sort -@ 10 -O bam -o align.bam
samtools index -@ 10 align.bam
# 使用pilon进行polish
pilon --genome test.ctg.lav.2nd.fa --frags align_filter.bam --fix snps,indels --output pilon_polished --vcf
# --frags表示输入的是1kb以内的paired-end文库
# --jumps表示大于1kb以上的mate pair文库
# --bam则是让软件自己猜测
# -vcf输出一个vcf文件,包含每个碱基的信息
# --fix pilon将会处理的内容,基本上选snp和indels就够了
# --variant启发式变异检测
# --minmq用于pilon堆叠的read最低比对质量,默认是0
三代数据纠错:
软件:racon
##第一轮
minimap2 -t 20 pilon_polished.fasta test.subreads.bam.fasta > round1.paf
racon -t 20 test.subreads.bam.fasta round1.paf pilon_polished.fasta > round1.fasta
##第二轮
minimap2 -t 20 round1.fasta test.subreads.bam.fasta > round2.paf
racon -t 20 test.subreads.bam.fasta round2.paf round1.fasta > round2.fasta
##第三轮
minimap2 -t 20 round2.fasta test.subreads.bam.fasta > round3.paf
racon -t 20 test.subreads.bam.fasta round3.paf round2.fasta > round3.fasta
五、组装结果评估
使用TBtools评估组装结果,简单评估初步组装的基因组大小、contigN50和contig数量
使用软件中的fasta Stats功能
六、Hi-C数据挂载、染色体级别基因组的组装
下机数据:基于二代测序技术得到的二代双端测序数据。与一般二代测序数据不同的是,建库方式不同,测到的数据为特定位置的序列。
Hi-C挂载一般分为三步:
(1) Hi-C数据比对到contig级别基因组上
(2) 基于比对结果进行contig的聚类、排序,形成supper scaffold级别基因组
(3) 基于scaffold级别基因组和对应位置信息进行手动校正,得到校正后的染色体级别基因组
挂载:使用Juicer软件
# Step 1:为基因组建立索引
bwa index genome.fa
# Step 2: 根据基因组构建酶切位点文件
python 路径/generate_site_positions.py MboI train 路径/train.fasta
# MboI是酶的名字
# Step 3: 获取每条contig的长度信息
awk 'BEGIN{OFS="\t"}{print $1, $NF}' train_MboI.txt > genome.chrom.sizes
# Step 4: 运行juicer
juicer.sh -D juicer -d juicer -s MboI -g train -z train.fasta -y train_MboI.txt -p genome.chrom.sizes -t 12
# 生成merged_nodups.txt作为下一步3D-DNA的输入文件之一
# Step 5: 挂载
run-asm-pipeline.sh -r 0 ref.fasta merged_nodups.txt &> 3d.log &
# -r 设置的是3d-DNA进行几轮调整的意思
结果可视化:
将上一步的reference.rawchrom.assembly、reference.rawchrom.hic导入juicebox中可视化,然后校正。 导出矫正后的reference.rawchrom.review.assembly文件。
再次运行3d-DNA:
3d-dna-master/run-asm-pipeline-post-review.sh -r reference.rawchrom.review.assembly ref.fasta aligned/merged_nodups.txt &> 3d.log &
路径/3d-dna-master/run-asm-pipeline-post-review.sh -r reference.rawchrom.review.assembly 路径 /ref.fasta aligned/merged_nodups.txt &> 3d.log &
最后会得到新的reference.FINAL.assembly、reference.FINAL.fasta就是最终的结果。
挂载率:已经挂载到染色体上的序列的总长度/基因组大小
七、组装结果的评估
使用TBtools和BUSCO对组装结果评估
BUSCO评估基因组组装完整度
# Step1. 下载对应的BUSCO数据库
# https://busco-data.ezlab.org/v5/data/lineages/
# Step2. 使用BUSCO进行评估
run_BUSCO.py -i [组装的文件.fasta] -l [数据库文件夹] -o [输出文件名] -m [评估模式] [其他一些选项]
使用minimap2对序列一致性进行评估:
# Step1. 使用minimap2比对回组装的基因组
minimap2 -ax map-pb genome.fasta HiFi.bam.fasta -t 24 > aln.sam
# Step2. 基于比对结果统计reads的比对率、基因组的覆盖度以及深度
samtools view -bS aln.sam > aln.bam
samtools sort aln.bam -o minimap.merged.bam --output-fmt BAM
samtools flagstat minimap.merged.bam > minimap.merged.bam.flagstat
samtools depth -aa minimap.merged.bam > depth.info
八、重复序列注释
重复序列广泛存在于真核生物基因组中,这些重复序列或集中成簇,或分散在基因之间。根据分布特点把重复序列分为散在重复序列(Interspersed repeats)和串联重复序列(Tandem repeats)。真核生物基因 组存在大量重复序列,重复序列会导致BLAST结果出现假阳性,增加基因结构注释的计算压力甚至影响预测正 确性。因此,在基因结构注释前会对基因组进行重复序列屏蔽(mask)。
分析流程:
串联重复注释
使用的软件:GMATA、TRF
# GMATA:
perl gmat.pl -i 路径/genome.fa
perl ssrfig.pl -i 路径/genome.fa.ssr.sat2
perl ssr2gff3.pl -i 路径/genome.fa.ssr
#得在GMATA路径下调用脚本,否则会报错,无法找到其他需要调用的脚本。生成的结果文件会出现在第一 步提供的序列文件所在目录。
# 第三步会生成结果文件:fPagMaj_v.1.0.genome.fasta.ssr.gff3
# TRF:
TRF:trf xxx.genome.fa 2 7 7 80 10 50 2000 -d -h
#生成结果文件xxx.genome.fasta.2.7.7.80.10.50.2000.dat
# 转成gff3格式:
python 路径/TRF2GFF-master/TRF2GFF.py -d xxx.genome.fasta.2.7.7.80.10.50.2000.dat -o xxx.genome.fasta.2.7.7.80.10.50.2000.gff3 # 查一下这一步Python版本
基于tandem repeats的注释结果对基因组文件进行soft masked(将碱基由大写字母转换为小写字母)
bedtools maskfasta -soft -fi genome.fa -bed 路径/xxx.genome.fa.ssr.gff3 -fo xxx.genome.soft.masked.fa
bedtools maskfasta -soft -fi genome.soft.fa -bed 路径/genome.fa.2.7.7.80.10.50.2000.dat.gff -fo genome.soft.masked2.fa
散在重复注释
# RepeatMasker软件
RepeatMasker -gff -nolow -no_is -norna -pa 24 -lib RepeatMasker/Libraries/RepeatMasker.lib genome.soft.masked2.fa
# 生成genome.soft.masked2.fa.out.gff文件
# LTR_FINDER软件
perl LTR_FINDER_parallel-master/LTR_FINDER_parallel -seq genome.soft.masked2.fa -threads 40
九、编码基因预测
编码基因预测:可以产生具有生物学功能的蛋白的基因。一般包括启动子,转录起始, 5’UTR,起始密码子,外显子, 内含子,终止密码子, 3’UTR, poly-A等结构。
基于转录组预测
IsoSeq(三代全长转录组)组装
# Step 1 Circular Consensus Sequence calling
nohup ccs m64165_210720_132918.subreads.bam muscle.ccs.bam --min-rq 0.9 -j 48 > ccs.log 2>&1 &
# Step 2 Primer removal and demultiplexing
nohup lima muscle.ccs.bam primer.fasta muscle.f1.bam --isoseq --peek-guess -j 12 > lima.log 2>&1 &
# Step 3 Refine
nohup isoseq3 refine muscle.f1.NEB_5p--NEB_Clontech_3p.bam primer.fasta muscle.flnc.bam > isoseq3.log 2>&1 &
# Step 3b Merge SMRT Cells # 这一步没懂
ls
/home/gaodong/Sparidae/speceis_raw_data/Pagrus_major/new_version/isoseq/muscle_3/all/FISO21H002064_1 A/muscle.flnc.bam
# Step 4 - Clustering /home/gaodong/Sparidae/speceis_raw_data/Pagrus_major/new_version/isoseq/spleen/all/FISO21H002066_1A/ spleen.flnc.bam > flnc.fofn
nohup isoseq3 cluster flnc.fofn clustered.bam --verbose --use-qvs > cluster.log 2>&1 &
# 这一步得到结果:clustered.hq.fasta.gz
转录本去冗余
nohup cd-hit-est -i 路径/clustered.hq.fasta.gz -o transcripts.fasta -c 0.99 -T <Num> -G 0 -aL 0.90 -AL 100 -aS 0.99 -AS 30 > cd-hit.log 2>&1 &
PASA预测
# 基于转录组进行基因预测
seqclean 路径/transcripts.fasta -c 40
nohup perl Launch_PASA_pipeline.pl -c PASApipeline.v2.4.1/pasa_conf/alignAssembly.config -C -R -g genome.fasta -t transcripts.fasta.clean -T -u transcripts.fasta --ALIGNERS blat --CPU 40
# --ALIGNERS blat 这里选blat就行,gmap容易报错
# alignAssembly.config 记得配置这个文件,百度查一下就ok
# transcripts.fasta 的seqclean会生成transcripts.fasta.cln, 所以,transcripts.fasta transcripts.fasta.cln和transcripts.fasta.clean 必须在同一个目录下。
# 生成文件中有sqlite.pasa_assemblies.gff3后缀的文件
使用TranDecoder在上一步基础上预测ORF
PASApipeline.v2.4.1/scripts/pasa_asmbls_to_training_set.dbi -pasa_transcripts_fasta test.sqlite.assemblies.fasta -pasa_transcripts_gff3 test.sqlite.pasa_assemblies.gff3
TransDecoder.LongOrfs -t test.sqlite.assemblies.fasta
TransDecoder.Predict -t test.sqlite.assemblies.fasta
transdecoder/util/cdna_alignment_orf_to_genome_orf.pl test.sqlite.assemblies.fasta.transdecoder.gff3 test.sqlite.pasa_assemblies.gff3 test.sqlite.assemblies.fasta > test.sqlite.assemblies.fasta.transdecoder.genome.gff3
transdecoder/util/gff3_file_to_bed.pl test.sqlite.assemblies.fasta.transdecoder.genome.gff3 > test.sqlite.assemblies.fasta.transdecoder.genome.bed
基于同源序列预测
选亲缘关系比较近的物种的蛋白序列
exonerate -q 同源蛋白序列.pep -t genome.fasta --model protein2genome --querytype protein --targettype dna --showvulgar no --softmaskquery yes --softmasktarget yes --minintron 20 -- maxintron 10000 --showalignment no --showtargetgff yes --showcigar no --geneseed 250 --score 250 --bestn 0 --verbose 0 > test.exonerate.gff
如果有多个物种,就分别做,做完cat合并就ok
从头预测
基于转录组预测结果
用运行完TranDecoder生成的结果,有5‘ 3’阅读框那个gff文件
软件:Augustus
Step1,创建训练集
# 选1000个 作为训练集
gff2gbSmallDNA.pl 转录组预测结果.transdecoder.gff3 test.genome.soft.masked4.fasta 1000 test.gene.raw.gb
# 统计文件中有多少个基因
grep 'LOCUS' test.gene.raw.gb | wc -l
# 创建初始化的物种HMM文件
new_species.pl --species=for_bad_genes_removing --AUGUSTUS_CONFIG_PATH=路径/miniconda3/envs/bamtools/config
# 尝试训练,捕捉错误
etraining --species=for_bad_genes_removing --stopCodonExcludedFromCDS=false test.gene.raw.gb 2>train.err
cat train.err | perl -pe 's/.*in sequence (\S+): .*/$1/' > badgenes.lst
filterGenes.pl badgenes.lst test.gene.raw.gb > test.gene.gb
# Step2,获取测试集和训练集
randomSplit.pl test.gene.gb 400 # 这个400要小于文件中基因数
new_species.pl --species=train_test --AUGUSTUS_CONFIG_PATH=路径/miniconda3/envs/bamtools/config #这一步生成的目录是:路径/miniconda3/envs/bamtools/config/species/train_test
etraining --species=train_test test.gene.gb.train > train.1.out
augustus --species=train_test test.gene.gb.test > test.1.out
# 再次测试
randomSplit.pl test.gene.gb.train 300 # 小于前面的400
optimize_augustus.pl --species=train_test --rounds=5 --cpus=10 --kfold=10 test.gene.gb.train.test --onlytrain=test.gene.gb.train.train > optimize.out
etraining --species=train_test test.gene.gb.train > train.2.out
augustus --species=train_test test.gene.gb.test > test.2.out
# 正式预测基因结构:
augustus --species=train_test --AUGUSTUS_CONFIG_PATH=路径/miniconda3/envs/bamtools/config --uniqueGeneId=true --noInFrameStop=true --gff3=on --strand=both test.genome.soft.masked4.fasta > 路径/test.genome.soft.masked4.fasta.out
##这样会很慢。最好的办法是,先将基因组按照染色体数目分割,unanchored的分在一起,一共25个文件。 然后使用augustus.parallel.pl 进行预测。
nohup perl augustus.parallel.pl file.txt > augustus.parallel.log 2>&1 &
整合结果
软件:EVM
Step1 前期预测结果格式统一
# 转换Augustus结果的格式并验证(从头预测):
EVidenceModeler-1.1.1/EvmUtils/misc/augustus_GFF3_to_EVM_GFF3.pl 路径/test.genome.masked4.augustus.gff3 > test.genome.masked4.augustus.evm.input.gff3
EVidenceModeler-1.1.1/EvmUtils/gff3_gene_prediction_file_validator.pl test.genome.masked4.augustus.evm.input.gff3
# 转换Exonerate结果的格式(同源预测):
EVidenceModeler-1.1.1/EvmUtils/misc/Exonerate_to_evm_gff3.pl fPagMaj.genoma.masked4.exonerate.gff > fPagMaj.genoma.masked4.exonerate.gff3
# PASA的结果可以直接通过验证。
配置EVM权重文件,三代转录本预测最可信,其次同源预测,最后从头预测
整合:
# Step 2 分割基因组和注释文件
EVidenceModeler-1.1.1/EvmUtils/partition_EVM_inputs.pl --genome xxx.genome.soft.masked4.fasta --gene_predictions 路径/augustus/test.genome.masked4.augustus.evm.input.gff3 --protein_alignments 路径/exonerate/test.genoma.masked4.exonerate.gff3 --transcript_alignments 路径/PASA/test.assemblies.fasta.transdecoder.genome.gff3 --segmentSize 1000000 --overlapSize 100000 --partition_listing partitions_list.out
# Step 3 生成EVM命令
路径/EVidenceModeler-1.1.1/EvmUtils/write_EVM_commands.pl --genome test.genome.soft.masked4.fasta --weights weights.txt --gene_predictions 路径/augustus/test.genome.masked4.augustus.evm.input.gff3 --protein_alignments 路径/exonerate/test.genoma.masked4.exonerate.gff3 --transcript_alignments 路径/PASA/test.assemblies.fasta.transdecoder.genome.gff3 --output_file_name evm.out -- partitions partitions_list.out > commands.list
# Step 4 并行运算EVM
parallel --jobs 40 < commands.list
# Step 5 合并并行结果
EVidenceModeler-1.1.1/EvmUtils/recombine_EVM_partial_outputs.pl --partitions partitions_list.out --output_file_name evm.out EVidenceModeler-1.1.1/EvmUtils/convert_EVM_outputs_to_GFF3.pl --partitions partitions_list.out --output evm.out --genome test.genome.soft.masked4.fasta
# Step 6 结果转换成gff3
find . -regex ".*evm.out.gff3" -exec cat {} \; > EVM.all.gff3
# 使用PASA结果对EVM整合结果进行校正和添加UTR区域
PASApipeline.v2.4.1/scripts/Load_Current_Gene_Annotations.dbi -c 路径/PASApipeline.v2.4.1/pasa_conf/alignAssembly.config -g 路径/test.genome.soft.masked4.fasta - P ../EVM/EVM.all.gff3
nohup 路径/PASApipeline.v2.4.1/Launch_PASA_pipeline.pl -c 路径 /PASApipeline.v2.4.1/pasa_conf/annotationCompare.config -g 路径/test.genome.soft.masked4.fasta -t transcripts.fasta.clean -A -L --annots 路径/EVM/EVM.all.gff3 -- CPU <Num> > pasa_update.log 2>&1 &
十、ncRNA注释
rRNA注释
tRNA注释
snRNA注释
非编码RNA指不被翻译成蛋白质的RNA,这些RNA虽不被翻译成蛋白质,但是具有重要的生物学功能。
rRNA(核糖体RNA):与蛋白质结合形成核糖体,其功能是作为mRNA的支架,提供mRNA翻译成蛋白质的 场所。
tRNA(转运RNA):携带氨基酸进入核糖体,使之在mRNA指导下合成蛋白质。
snRNA(小核RNA):将mRNA降解或抑制其翻译,具有沉默基因的功能。
miRNA(MicroRNA):主要参与RNA前体的加工过程,是RNA剪切体的主要成分。
rRNA注释:RNAmmer
# 下载RNAmmer后将其解压缩,注意提前创建目录,将压缩文件放入,解压缩。
# 配置路径:
perl -p -i -e 's/(my \$INSTALL_PATH).*/$1 = \"\/private_software\/rnammer_1.2\";/' /private_software/rnammer_1.2/rnammer
# 配置hmmsearch路径:##rnammer 一定要用hmmer2.3版本,后边已经更换。
perl -p -i -e 's/^(\s+\$HMMSEARCH_BINARY).*/$1 = \"\/private_software\/hmmer- 3.3.2\/src\/hmmsearch\";/'/private_software/rnammer_1.2/rnammer
# 运行:
nohup 路径/rnammer-1.2/rnammer -multi -S euk -gff rRNA.predict.gff -h rRNA.predict.report -xml rRNA.predict.xml -f rRNA.predict.fasta 路径/xxx.genome.soft.masked4.fasta > rnammer.log 2>&1 &
tRNA注释:tRNAscan-SE
##先安装好Infernal,不然没法正常运行,而且,默认去/usr/local/bin 下去找infernal的cmsearch,cmscan。 如果使用conda装的,还需要构建软连接。
nohup tRNAscan-SE -o tRNA.out -f tRNA.ss -m tRNA.stats 路径/xxx.genome.soft.masked4.fasta > tRNAscan.log 2>&1 &
snRNA
# 首先,下载Rfam的fa数据,和cm数据。从中基于关键词,将各个RF*.fa 中的snRNA提取出来。构建对应的 blast的检索库。然后基于此进行blastn比对
nohup blastn -outfmt 6 -evalue 1 -num_alignments 10000 -db 路径/snRNA/snRNA -query 路径 /xxx.genome.soft.masked4.fasta -out xxx.genome.soft.masked.4.snRNA.blast.out > blastn.log 2>&1 &
# 基于比对结果,过滤,然后用TBtools将各个RF*中的snRNA分开保存。 再利用infernal的cmsearch对上述结果进行验证,得到最后的snRNA注释结果:
cmsearch 路径/cm_files/RF00001.cm xxx.snRNA.RF00001.fa > xxx.RF00001.cmsearch
十一、基因组功能注释
Nr,Swiss-prot和TrEmBL数据库的注释
KEGG数据库的注释
GO数据库的注释
基因功能的注释依赖于上一步的基因预测,根据预测结果从基因组上提取翻译后的蛋白序列和主流的数据库进 行比对,完成功能注释。 常用数据库有以下几种:NR,KEGG,Uniprot(Swiss-Prot, TrEMBL),GO。
Nr,Swiss-prot和TrEmBL数据库的注释
nohup diamond makedb --threads 180 --in nr.fa --db NR_2023_07_23 & # diamond建库
nohup diamond blastp --db 路径/nr_prot.dmnd -q test.clean.protein.fasta -p 48 --min-score 100 --id 50 -b 12 --outfmt 6 --out test.genome.nr.out > nr.log 2>&1 &
nohup diamond blastp --db 路径/swissprot_index.dmnd -q test.clean.protein.fasta -p 48 -- min-score 100 --id 50 --outfmt 6 --out test.genome.swissprot.out > swissorot.log 2>&1 & # 选结果文件中evalue(倒数第二列)在0.001以下的
nohup diamond blastp --db 路径/uniprot_trembl_2021_8_22.dmnd -q test.clean.protein.fasta - p 48 --min-score 100 --id 50 --outfmt 6 --out test.genome.trembl.out > trembl.log 2>&1 &
参考这里:https://blog.csdn.net/m0_53945548/article/details/133872288 这里有详细解读
test.clean.protein.fasta 蛋白文件使用gffread从基因组提取,参考链接:https://www.jianshu.com/p/e668795a3390
序列比对软件:blast、diamond、blat diamond作为一个和BLAST具有相似功能的软件,具有以下特点:
• 比BLAST快500到20,000倍
• 长序列的移框联配分析(frameshift alignment) • 资源消耗小,普通台式机和笔记本都能运行
• 输出格式多样
KEGG数据库注释
构建本地KEGG数据库,使用diamond进行注释。(据说很麻烦)
基于KofamKOALA:
两个教程:
https://zhuanlan.zhihu.com/p/375740435
https://www.jianshu.com/p/b24d34b8f3ac
GO数据库注释
要下载interproscan数据库?
nohup 路径/interproscan/interproscan-5.53-87.0/interproscan.sh -i xxx.clean.protein.fasta -dp -f tsv > interproscan.log 2>&1 &
教程在这:https://www.jianshu.com/p/2651a2e0cf3d
其他数据库注释
COG直系同源蛋白数据库:NCBI开发的用于同源蛋白注释的数据库。
KOG数据库:KOG(Clusters of orthologous groups for eukaryotic complete genomes)真核生
物蛋白相邻类的聚簇。构成每个KOG的蛋白都是被假定来自一个祖先蛋白,要么是orthologs,要么是 paralogs。orthologs是指来自不同物种的由垂直家系(物种形成)进化而来的蛋白,并且保留与原始蛋白 相同的功能;paralogs是指在一定物种中来源于基因复制的蛋白,可能会进化成新的与原来有关的功能。
eggNOG数据库:eggNOG(evolutionary genealogy of genes:non-supervised orthologous groups)由EMBL创建,是对NCBI的COG数据库的拓展,提供了不同分类水平蛋白的直系同源分组 (Orthologous Groups,OG),包括真核生物,原核生物,病毒的信息。拓展了COG的分类,采用无监 督聚类算法在全基因组范围内推导基因功能,更适合谱系特征基因的分析。
string数据库:搜寻已知蛋白质和预测蛋白质之间的相关关系的系统,包括蛋白质之间的物理作用和间接的 功能相关性。基于染色体临近,系统进化谱,基因融合和基因芯片数据等计算基因或蛋白的共表达。