Entrez Direct学习笔记

NCBI提供的Entrez Direct有着自己独特的检索语法和查询理念,和sql相似但语法上差距很大。Step by Step 一步步慢慢来:

Edirect的检索原理:

1.esearch,efetch的功能和关系。这两个是edirect的核心命令。esearch从NCBI检索符合条件的记录,并将结果的summary返回client的屏幕上,并没有下载结果。efetch的参数包括-db(指定数据库)和-query(查询条件)。条件用" "标记,包括带查询的关键字和字段名两部分,如"Solenysa[ScientificName]"表示学名为Solenysa的taxa或"933038[TaxId]"TaxId为933038的taxa。查询条件可用AND,OR等逻辑运算符组合。关键字也可使用*通配符。efetch命令则执行结果的下载,参数包括-format指定结果格式,如xml等。通常的检索过程是先esearch在执行efetch,两条命令用|连接,语句如跨行使用\标记。例子:

esearch -db taxonomy -query "93308[TaxId]"|efetch -format xml  #查询并下载TaxId为933038的taxa信息,结果保存为xml格式。

对于taxonomy数据库,也可食用efetch -db taxonomy -id taxid1,taxid2,... - format xml的形式直接批量检索t下载axa的结果。

2.xtract。Edirect的强大之处在于能将xml结果根据需要转换为各种形式的表格形式,方便导入DB或可视化结果。用到的命令为xtract,即从xml中依据各种tag来extract出所要的结果。xtract参数包括-pattern(xml结果集样式)-element(指定显示字段)-first(对于taxon样式这样有等级的结果样式,只显示第一次出现该字段的记录)例子

$ esearch -db taxonomy -query "933038[TaxId]"|efetch -format xml | xtract -Pattern Taxon -first TaxId ScientificName #查询并下载TaxId为933038的taxa信息,格式为xml格式,xtract只提取第一次出现的taxid,scientificname字段信息。
结果:933038  Solenysa


L2:

获得db所有可检索字段

  einfo -db nucleotide |
  xtract -pattern Field \
          -pfx "[" -sfx "]" -element Name \
           -pfx "" -sfx "" -element FullName |
  sort -k 2f | expand

其中,nucleotide为db名称,常用的有pubmed,taxonomy等。结果显示出该db可供查询的所有字段。或直接在检索后输入 xtract -outline输出所有字段名。

查到可检索字段后,使用如下语句检索

esearch -db nucleotide -query "AY231025[ACCN]"|efetch -format gbc #这条语句可检索Accession Number是AY231025的DNA序列信息,输出格式为能显示序列属性的gbc格式。

$ esearch -db nucleotide -query "AY231025[ACCN]"|efetch -format fasta #输出fasta格式信息。

或采用这种方式批量获取AI或GI号的序列。

efetch -db nucleotide -id AY231025,KJ027582 -format fasta #-id 参数可以输入AI或GI的值,用,分隔

如果你有一个AI列表文件,请将值用,分隔保存为1行,并将其作为字符串传递给shell的自定义变量(语法 ai_list=`cat ai.txt`;注意用键盘上1左边的那个单引号),如ai_list. -id后面用变量名即可表示字符串。注意,列表文件的换行EOF一定要用UNIX格式的,否则efetch执行时会报错。

可以用如下代码生成序列AI号对应的TaxID,SCI_NAME值

$ efetch -db nucleotide -id $ai_list -format fasta -mode xml | xtract -pattern TSeq -element TSeq_accver TSeq_taxid TSeq_orgname

efetch -db nucleotide -id $ai_list -format fasta




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值