搜索
查看: 2341|回复: 0

[Shell] shell自动下载常见物种的基因组文件

[复制链接]

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2016-9-17 07:28:07 | 显示全部楼层 |阅读模式
首先脚本里面要内置一些物种的基因组链接,然后判断当前系统环境里面是否有wget或者curl这样的下载器!
[Shell] 纯文本查看 复制代码
#!/bin/sh

CE10_BASE=ftp://hgdownload.cse.ucsc.edu/goldenPath/ce10/bigZips
F=chromFa.tar.gz

get() {
        file=$1
        if ! wget --version >/dev/null 2>/dev/null ; then
                if ! curl --version >/dev/null 2>/dev/null ; then
                        echo "Please install wget or curl somewhere in your PATH"
                        exit 1
                fi
                curl -o `basename $1` $1
                return $?
        else
                wget -O `basename $1` $1
                return $?
        fi
}
rm -f genome.fa
get ${CE10_BASE}/$F || (echo "Error getting $F" && exit 1)
tar xvzfO $F > genome.fa || (echo "Error unzipping $F" && exit 1)
rm $F

[/mw_shl_code]

在shell脚本里面自定义了一个get函数,用来判断是否有wget或者curl的下载器,本脚本测试例子是线虫的基因组文件,其余的基因组文件都类似,只需要把线虫ce10的代号变成mm9,mm10,hg19,hg38等即可,这是UCSC的基因组文件下载规律,很容易看懂

也可以在ensembl数据库里面下载:
[Shell] 纯文本查看 复制代码
ENSEMBL_RELEASE=84
ENSEMBL_GRCh38_BASE=ftp://ftp.ensembl.org/pub/release-${ENSEMBL_RELEASE}/fasta/homo_sapiens/dna
rm -f genome.fa
F=Homo_sapiens.GRCh38.dna.primary_assembly.fa
if [ ! -f $F ] ; then
        get ${ENSEMBL_GRCh38_BASE}/$F.gz || (echo "Error getting $F" && exit 1)
        gunzip $F.gz || (echo "Error unzipping $F" && exit 1)
        mv $F genome.fa
fi


同理,也只需要变换url即可







上一篇:Perl中正则表达式用法总结
下一篇:refseq简介
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-8-23 18:04 , Processed in 0.028657 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.