zoukankan      html  css  js  c++  java
  • 如何下载一个物种的全部EST序列 | NCBI | 表达序列标签

    EST:表达序列标签,expressed sequence tags 。

    顾名思义,很好理解,就是表达出来的序列,即从基因组DNA上表达出来的RNA,但是我们没法测序RNA,所以我们最终测的是表达序列的cDNA片段。

    “标签”:就是指这些序列可能比较短,但是可以用来标定一个物种。

    常见下载方式有两种:

    1. NCBI Web下载

    https://www.ncbi.nlm.nih.gov/dbEST/

    打开,搜索你要的物种,比如 Camellia ,可以看到结果EST (50287)。

    Web下载几个还行,想要批量下载就有点费力了,ncbi反爬虫,也不好爬。

    2. NCBI ftp下载

    ftp://ftp.ncbi.nih.gov/repository/dbEST/

    直接wget就可以批量下载了。

    for one in `seq 1 81`
    do
    echo $one
    wget ftp://ftp.ncbi.nih.gov/repository/dbEST/dbEST.reports.000000.${one}.gz
    done  

    下载后的文件格式是:

    IDENTIFIERS
    
    dbEST Id:       5
    EST name:       EST00006
    GenBank Acc:    M61958
    GDB Dsegment:   D0S2525E
    
    CLONE INFO
    Clone Id:       HHCSB86
    Source:         ATCC
    Id in host:     77063
    DNA type:       cDNA
    
    PRIMERS
    Sequencing:     M13 Forward
    PolyA Tail:     Unknown
    
    SEQUENCE
                    TGCACAACCAAGTTTTGTGACTACGGGAAGGCTCCCGGGGCAGAGGAGTACGCTCAACAA
                    GATGTGTTAAAGAAATCTTACTCCAAGGCCTTCACGCTGACCATCTCTGCCCTCTTTGTG
                    ACACCCAAGACGACTGGGGCCCNGGTGGAGTTAAGCGAGCAGCAACTNCAGTTGTNGCCG
                    AGTGATGTGGACAAGCTGTCACCCACTGACA
    
    Entry Created:  May 26 1992
    Last Updated:   Dec 18 2012
    
    PUTATIVE ID     Assigned by submitter
                    2',3'-cyclic nucleotide phoshodiesterase
    
    LIBRARY
    Id:             LIBEST_000004
    Lib Name:       LIBEST_000004 Hippocampus, Stratagene (cat. #936205)
    Organism:       Homo sapiens
    Vector:         lambdaZAP-II
    Description:    Female, 2 years; oligo-dT + random primed cDNA synthesis;
    

    信息是挺全面的,自己想要哪个物种就只能自己提取了。

    提取成FASTA的脚本我就不贴了(效率很重要,因为文件很大)。

     最后我还是自己写了个脚本,biopython实在是太慢了。

    import gzip
    inf = gzip.open("dbEST.reports.000000.49.gz","rb")
    raw_id = ""
    seq = ""
    
    for line in inf:
        if line.stratswith("GenBank Acc"):
            id = line.split(":")[1].strip()	
        if line.stratswith("SEQUENCE"):
    		seq = ""
    		while True:
    			rline = inf.readline()
    			seq+=rline.strip()
    			if not line.stratswith(" "):
    				break
    	if line.stratswith("Organism"):
    		organism = line.split(":")[1].strip()
    		if organism.startswith("Camellia"):
    			print(">"+id+"   "+organism, seq, sep="
    ")
    

      

    我的脚本可以用,但是不一定很快。

    我用awk试了很久,没有成功。

    2018年3月16日  

  • 相关阅读:
    scala程序启动时,Could not locate executable nullinwinutils.exe in the Hadoop binaries解决方案
    binlog_format的模式有哪几种?各自的特点是?
    解决IDEA控制台junit不能用Scanner输入问题
    【转】什么是乐观锁,什么是悲观锁
    lyt经典版MySQL基础——流程控制结构
    ambari 2.5.0源码编译安装
    linux(centeros)svn的安装
    机器学习
    算法思想整理
    lucene
  • 原文地址:https://www.cnblogs.com/leezx/p/8583351.html
Copyright © 2011-2022 走看看