091-NCBI Entrez direct序列处理小工具
刘小泽写于19.3.12
许多时候我们需要从NCBI下载数据或者仅仅是想找基因对应什么物种,几条序列直接搜索没问题,但是批量操作肯定存在更简单的办法
软件安装看这里
https://anaconda.org/bioconda/entrez-direct
具体使用
根据accession number下载基因序列
esearch -db nucleotide -query "NC_001552" | efetch -format fasta
根据taxon ID提取蛋白序列
esearch -db "protein" -query "txid3072[Organism]" | efetch -format fasta
根据bioproject下载序列
esearch -db bioproject -query "PRJNA285593" | elink -target nuccore|efetch -format fasta
从基因组中提取CDS序列
esearch -db protein -query 302315370| elink -target nuccore|efetch -format ft| grep -A 4 --no-group-separator CDS
esearch -db protein -query 302315370 | elink -target nuccore|efetch -format fasta_cds_na| grep YP_003815423.1
根据蛋白accession number提取taxon ID
esearch -db protein -query "NP_066243"| elink -target taxonomy |efetch -format uid
#use gi instead
esearch -db protein -query "10314000"| elink -target taxonomy |efetch -format uid
利用essumary提取taxon ID
esearch -db nucleotide -query "NC_001552"|esummary|grep TaxId
下载所有refseq蛋白序列
esearch -db "protein" -query "txid10239[Organism] AND refseq[filter]"|efetch -format fasta
根据基因组accession number获取蛋白信息
#下载序列
elink -db nucleotide -id JN420361.1 -target protein|efetch -format fasta
#获取GI号
elink -db nucleotide -id JN420361.1 -target protein|efetch -format uid
#获取accession number
elink -db nucleotide -id JN420361.1 -target protein|efetch -format acc
根据基因ID获取物种名(目测这还是个比较常用的需求,因为比对序列后需要统计有多少序列比对到什么物种,就可以批量操作)
cat genebank.name | while read i;do esearch -db protein -query $i| elink -target taxonomy |\
efetch -format xml |xtract -pattern TaxaSet -element ScientificName|cut -f1 ;done