-03-21-数据库工具应用及介绍

时间:2024-03-09 20:13:22

A:NCBI

1:sratoolkit工具;该工具主要手段是可以下载NCBI的数据以及对SRA格式转成fastq或者fasta格式的数据。

  prefetch 登录号(下载数据)

  fastq-dump -X 5 -Z SRR390728 (可以在不下载的情况下,显示SRR390728样本的前五个读段(20行))

  single-end 单端测序

  ./fastq-dump DRR000003.sra # 结果生成DRR000003.fastq

  ./fastq-dump --fasta DRR000003.sra # 结果生成DRR000003.fasta

  pair-end 双端测序

  ./fastq-dump --split-3 DRR002018.sra # 结果生成DRR002018_1.fastq,DRR002018_2.fastq

 

  有时候不知道数据是双端的还是单端的:fastq-dump -X 1 --split-spot的方法来判断。

  it\'s SE if nreads=1, and PE when nreads=2,统计整个文件,因此速度比较慢

  sra-stat -xs SRR955386.sra | grep "nreads"如果输出是4,那么就是SE,如果是8,则是PE

  或者使用下列脚本来判断

import os
import subprocess
def check_SRA_type(fn):
    fn = os.path.abspath(fn);
    try:
        contents = subprocess.check_output(["fastq-dump", "-X", "1", "-Z", "--split-spot", fn]);
    except subprocess.CalledProcessError, e:
        raise Exception("Error running fastq-dump on", fn);
    # -X 1 will output 4 lines if SE, and 8 lines if PE
    if(contents.count("\n") == 4):
        return False;
    elif(contents.count("\n") == 8):
        return True:
    else:
        raise Exception("Unexpected output from fastq-dump on ", filename);

 

 

2:blast工具,是专门用于将目标序列比对到数据库中的工具。

  blastp:将待查询的蛋白质序列及其互补序列一起对蛋白质序列数据库进行查询;
  blastn:将待查询的核酸序列及其互补序列一起对核酸序列数据库进行查询;
  blastx:先将待查询的核酸序列按六种可读框架(逐个向前三个碱基和逐个向后三个碱基读码)翻译成蛋白质序列,然后将翻译结果对蛋白质序列数据库进行查询;
  tblastn:先将核酸序列数据库中的核酸序列按六种可读框架翻译成蛋白质序列,然后将待查询的蛋白质序列及其互补序列对其翻译结果进行查询;
  tblastx:先将待查询的核酸序列和核酸序列数据库中的核酸序列按六种可读框架翻译成蛋白质序列,然后再将两种翻译结果从蛋白质水平进行查询。
 
  blast比对结果的Evalue值介绍:表示随机匹配的可能性,E值接近零或为零时,具本上就是完全匹配了。通常来讲,我们认为E值小于10-5 就是比较可性的S值结果。我们可以想象,相同的数据库,E=0.001时如果有1000条都有机会S值比现在这个要高的话,那么不E设置为10-6时可能就会只得到一条结果,就是S值最可靠的那个。但是E值也不是万能的。它在以下几个情况下有局限性:
      1)当目标序列过小时,E值会偏大,因为无法得到较高的S值。
      2)当两序列同源性虽然高,但有较大的gap(空隙)时,S值会下降。这个时候gap scores就非常有用。
      3)有些序列的非功能区有较低的随机性时,可能会造成两序列较高的同源性。
  E值总结:
      E值适合于有一定长度,而且复杂度不能太低的序列。
      当E值小于10-5时,表明两序列有较高的同源性,而不是因为计算错误。
      当E值小于10-6时,表时两序列的同源性非常高,几乎没有必要再做确认。
      一致性(Identities):或相似性。匹配上的碱基数占总序列长的百分数。
      Score得分值越高说明同源性越好;Expect期望值越小比对结果越好,说明因某些原因而引起的误差越小;Identities是同源性(相似性),例中所示比对的1299个碱基中只有35个不配,其他97%相同;Gaps是指多出或少的碱基或缺失的碱基数;缺失或插入(Gaps):插入或缺失。用"—"来表示。Strand=plus/plus指两条序列方向相同,如果是plus/minus,即意味着一条是5\'到3\',一条是3\'到5\',或一条是正向,另一条是反向序列。

用法:
    数据库下载地址:ftp://ftp.ncbi.nih.gov/blast/db/FASTA/  下载下来的解压就可以直接使用
    原始数据下载:ftp://ftp.ncbi.nih.gov/blast/db/FASTA/
  建数据库:
    makeblastdb -in uniprot_sport -dbtype prot -input_type fasta -parse_seqids -hash_index
    makeblastdb -in nr -input_type fasta -dbtype nucl -parse_seqids -out nr_nucl -logfile log.txt
  比对:
    blastp -query protein.fa -out /protein.output -db dbname -outfmt 0 -evalue 1e-3 -max_target_seqs 20
    blastn -query nucl.fa -out output -db dbname -outfmt 6 -evalue 1e-5 -num_descriptions 10
    blastx -query nucl.fa -out output -db dbname -outfmt 6 -evalue 1e-5 -num_descriptions 10
    另外,当比对的序列是短序列的时候blastn -task blastn-short 会更加好一点(自己未尝试过)
  参数说明:
    -query: 输入文件路径及文件名
    -out:输出文件路径及文件名
    -db:格式化了的数据库路径及数据库名
    -outfmt:输出文件格式,2.2.31版共有14种格式,6是tabular格式对应BLAST的m8格式
    -evalue:设置输出结果的e-value值
    -max_target_seqs:找到的最大的目标的数目,也可用-num_descriptions,tabular格式输出结果的条数
 
  其他功能:
PROGRAMFUNCTION
blastdbcheck 检查数据库完整性
blastcmd 从blast数据库中检索序列或其它信息
blast_aliastool 创建数据库别名
blastn 核酸序列与核酸数据库比较
blastp 蛋白质序列与蛋白质数据库比较
blastx 核酸序列与蛋白持数据库比较
blast_formatter 使用指定的ID格式化网络blast结果
convert2blastmask 转换小写的masking成makeblastdb可读格式
dustmasker 过滤掉低重复序列
lagacy_blast.pl 转换一个legacy blast search程序为blast+配对并执行
makeblastdb 格式化一个FASTA文件为一个blast数据库
makembindex 为一个存在的核酸数据库建立一个megablast索引
psiblast 查找蛋白质家族,计算提供的蛋白质的遗传距离或者建立位置特异性矩阵
rpsblast 从一个蛋白质保守区域数据库中检索蛋白序列的功能区域
rpsblast 将核酸序列以六种阅读框的形式转换成蛋白序列后从蛋白保守区域数据库中检索蛋白功能区域
segmasker 过滤掉低重复序列并转换成蛋白序列
tblastn 在核酸数据库中检索蛋白序列
tblastx

核酸与核酸数据库在蛋白质水平比较

update_blastdb.pl 在NCBI中下载blast数据库
 
 
3:部分数据介绍:
  下载基因组时发现一般基因组有三种:通常是dna dna_rm dna_sm
    1)rm是repeat masked,也就是说基因组序列中的重复序列都被修改为N。
    dna_rm :masked genomic DNA.Interspersed repeats and low complexity regions are detected with the RepeatMasker tool and masked by replacing repeats with \'N\'s.
    2)sm是soft mask,基因组中的重复序列变为小写的形式,大写的是非重复序列。
    dna_sm :soft-masked genomic DNA.All repeats and low complexity regions have been replaced with lowercased versions of their nucleic base
    3)dna没有标记重复序列和低复杂度的地区
    dna :unmasked genomic DNA sequences.
 
 4:NCBI常用的数据(转ID)
  里面比较常用的文件:gene2ensembl.gz(NCBI ID和ensembl ID转化),gene2go.gz(NCBI ID和GO ID转化),gene2refseq(NCBI ID和蛋白转录组ID转化)。其余略,附上taxid对应表在最后。
 
5:NCBI数据开头的字符意义:
  
  SRA 是 Sequence Read Archive 的首字母缩写。SRA 与 Trace 最大的区别是将实验数据与 metadata(元数据)分离。metadata 是指与测序实验及其实验样品相关的数据,如实验目的、实验设计、测序平台、样本数据(物种,菌株,个体表型等)。metadata可以分为以下几类:
     Study:accession number 以 DRP,SRP,ERP 开头,表示的是一个特定目的的研究课题,可以包含多个研究机构和研究类型等。study 包含了项目的所有metadata,并有一个 NCBI 和 EBI 共同承认的项目编号(universal project id),一个 study 可以包含多个实验(experiment)。
     Sample:accession number以 DRS,SRS,ERS 开头,表示的是样品信息。样本信息可以包括物种信息、菌株(品系) 信息、家系信息、表型数据、临床数据,组织类型等。可以通过 Trace 来查询。
     Experiment:accession number 以 DRX,SRX,ERX 开头。表示一个实验记载的实验设计(Design),实验平台(Platform)和结果处理 (processing)三部分信息。实验是 SRA 数据库的最基本单元,一个实验信息可以同时包含多个结果集(run)。
     Run:accession number 以DRR,SRR,ERR 开头。一个 Run 包括测序序列及质量数据。
     Submission:一个 study 的数据,可以分多次递交至 SRA 数据库。比如在一个项目启动前期,就可以把 study,experiment 的数据递交上去,随着项目的进展,逐批递交 run 数据。study 等同于项目,submission 等同于批次的概念。
 
  
taxid 是 taxonomy ID的缩写,就是分类学的ID,比如人类是9606、 7227是果蝇。
#tax_id          species                    英文
3702               拟南芥                  Arabidopsis thaliana (thale cress) 
4528               长雄野生稻            Oryza longistaminata
4529                                           Oryza rufipogon
4532                                           Oryza australiensis
4535                                           Oryza officinalis
4536                                           Oryza nivara
4537
4538
6239                                           Caenorhabditis elegans
7227                                           Drosophila melanogaster (fruit fly)
7955                                           Danio rerio (zebrafish)
9031                                           Gallus gallus (chicken)
9606                                           Homo sapiens (human)
9615                                           Canis lupus familiaris (dog)
9823                                           Sus scrofa (pig)
9913                                           Bos taurus (cattle)
10090                                         Mus musculus (house mouse)
10116                                         Rattus norvegicus (Norway rat)
36329                                         Plasmodium falciparum 3D7
39946                                         Oryza sativa Indica Group (long-grained rice)
39947
40148
40149
63629
65489
195103
198094
211586
214684
220664
223283
227321
227377
243231
284812
352472
511145
559292