NCBI中的taxonomy信息可以通过FTP进行批量下载,获取的txt文档可以导入DB中,并用sql语言的递归查询工具筛选出所有蜘蛛目的taxa,并单独存储成SIG_TAXDMP_NAMES和SIG_TAXDMP_NODES两张表。以供调用。具体做法是:
1.从NCBI的FTP中下载最新的taxdmp.zip文件,其中/pub/taxonomy目录下有此文件。其中names.dmp和nodes.dmp分别有taxa和taxa之间从属关系的信息。
2.将names.dmp和nodes.dmp改为txt文件,然后导入DB。注意:由于这两个表有上百万条记录,不可能每次都重新完全导入。幸运的是ncbi的taxid是顺序编码,因此记下上次的最大taxid,然后只本次文件中之后的新taxid导入即可了。导入nodes.txt时注意,是否所有列都对齐了。
3.使用ORACLE递归查询功能,将蜘蛛目6893下所有的tax_id筛选出来存在SIG_TAXDMP_NAMES和SIG_TAXDMP_NODES中。注意:ftp中dmp文件导入时,会在每一字段的前或后加上空格,即十六进制字符0x09的文本字符,在查询时需要用replace函数将其全部去掉,否则递归查询会出错。在ncbi_node中,tax_id列后面有一个0x09,parent_tax_id前后都有0x09. 使用递归语句查询所有蜘蛛目taxa并生成mv的代码是
create materialized view SIG2_TAXDMP_NODES as
SELECT
replace(tax_id,chr(to_number('09')),'') as tax_id,
replace(parent_tax_id,chr(to_number('09')),'') as parent_tax_id,