mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Scripts for creating taxonomy database
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
PYTHONPATH="../../lib:../../eggs:../../eggs/`../check_python_ucs.py`"
|
||||
export PYTHONPATH
|
||||
echo "Getting files from NCBI..."
|
||||
wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz
|
||||
wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/gi_taxid_nucl.dmp.gz
|
||||
wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/gi_taxid_prot.dmp.gz
|
||||
echo "Unzipping untarring..."
|
||||
gunzip -c taxdump.tar.gz | tar xvf -
|
||||
gunzip gi_taxid_nucl.dmp.gz
|
||||
gunzip gi_taxid_prot.dmp.gz
|
||||
cat gi_taxid_nucl.dmp gi_taxid_prot.dmp > gi_taxid_all.dmp
|
||||
rm gi_taxid_nucl.dmp gi_taxid_prot.dmp
|
||||
echo "Parsing nodes.dmp..."
|
||||
cat nodes.dmp | tr -s "\t" "|" | tr "|" "\t" | cut -f 1,2,3,5 > nodes.txt
|
||||
echo "Collapsing taxonomy. This will take several hours..."
|
||||
python tax1_NodeParser.py nodes.txt > node2child.txt
|
||||
echo "Parsing names.dmg"
|
||||
cat names.dmp | cut -f 1,2,4 -d "|" | tr -s "\t" "|" | tr "|" "\t" | sed s/\"//g > names.txt
|
||||
echo "Running tax2_Node2Name.py"
|
||||
python tax2_Node2Name.py node2child.txt names.txt taxonomy.db
|
||||
echo "Running tax3_gi2tax.py"
|
||||
python tax3_gi2tax.py taxonomy.db gi_taxid_all.dmp
|
||||
echo "Done!.."
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
PYTHONPATH="../../lib:../../eggs:../../eggs/`../check_python_ucs.py`"
|
||||
export PYTHONPATH
|
||||
rm -f /tmp/taxTest.db
|
||||
python tax1_NodeParser.py tax1_test_argv1.txt > tax2_test_argv1.txt
|
||||
python tax2_Node2Name.py tax2_test_argv1.txt tax2_test_argv2.txt /tmp/taxTest.db
|
||||
python tax3_gi2tax.py /tmp/taxTest.db tax3_test_argv2.txt
|
||||
python tax.py /tmp/taxTest.db tax3_test_argv2.txt tax_out.txt -c 1
|
||||
diff tax_out.txt tax_result.txt
|
||||
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Identify full taxonomic standing for sequences identified by gi number
|
||||
|
||||
usage: %prog taxonomy_db gi_list_file out_file
|
||||
-c, --cols=N: Number of column containing gi within the gi_list file
|
||||
|
||||
gi_list_file - user's input containing gi's in the column specified by option -c
|
||||
|
||||
taxonomy_db - database containing collapsed NCBI taxonomy generated by prepareTaxonomy.sh script
|
||||
distributed with Galaxy. See prepareTaxonomy.readme for information on how to generate
|
||||
necessary files
|
||||
|
||||
"""
|
||||
|
||||
import pkg_resources
|
||||
pkg_resources.require( 'bx-python' )
|
||||
pkg_resources.require( 'pysqlite' )
|
||||
import traceback
|
||||
import fileinput
|
||||
from pysqlite2 import dbapi2 as sqlite
|
||||
from warnings import warn
|
||||
from bx.cookbook import doc_optparse
|
||||
import string, sys
|
||||
|
||||
def main():
|
||||
|
||||
options, args = doc_optparse.parse( __doc__ )
|
||||
|
||||
if len(args) < 3:
|
||||
sys.stderr.write("Not enough arguments\n")
|
||||
sys.exit(0)
|
||||
|
||||
try:
|
||||
db_name, gi_fname, out_fname = args
|
||||
giCol = int( options.cols ) - 1
|
||||
except:
|
||||
doc_optparse.exception
|
||||
|
||||
con = sqlite.connect(db_name)
|
||||
cur = con.cursor()
|
||||
|
||||
fg = open(gi_fname, 'r')
|
||||
of = open( out_fname, "w" )
|
||||
|
||||
try:
|
||||
for line in fg:
|
||||
field = string.split(line.rstrip(), '\t')
|
||||
sqlTemplate = string.Template('select gi2tax.gi, tax.* from gi2tax left join tax on gi2tax.taxId = tax.taxId where gi2tax.gi = $gi')
|
||||
sql = sqlTemplate.substitute(gi = int(field[giCol]))
|
||||
cur.execute(sql)
|
||||
|
||||
for item in cur.fetchall():
|
||||
ranks = string.split(item[2], ",")
|
||||
print >> of, str(item[0]) + "\t" + str(item[1]) + "\t" + "\t".join(ranks)
|
||||
|
||||
finally:
|
||||
fg.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,118 @@
|
||||
"""
|
||||
tax1_NodeParser.py <nodes_file>
|
||||
|
||||
flattens NCBI taxonomy by printing list of children for every node
|
||||
nodes_file is created from nodes.dmp file using the following command:
|
||||
|
||||
cat nodes.dmp | tr -s "\t" "|" | tr "|" "\t" | cut -f 1,2,3,5 > nodes.txt
|
||||
(nodes.dmp is downloaded from NCBI taxonomy FTP site)
|
||||
|
||||
anton nekrutenko | anton@bx.psu.edu
|
||||
|
||||
"""
|
||||
|
||||
import sys
|
||||
import string
|
||||
|
||||
def findAll(L, value):
|
||||
hits = []
|
||||
i = 0
|
||||
for item in L:
|
||||
if item == value:
|
||||
hits.append(i)
|
||||
else:
|
||||
pass
|
||||
i += 1
|
||||
return hits
|
||||
|
||||
def makeLookup(L):
|
||||
D = {}
|
||||
i = 0
|
||||
for item in L:
|
||||
if item in D:
|
||||
D[item].append(i)
|
||||
else:
|
||||
D[item] = [i]
|
||||
i += 1
|
||||
|
||||
return D
|
||||
|
||||
def addUnique(baseList, otherList):
|
||||
auxDict = dict.fromkeys(baseList)
|
||||
for item in otherList:
|
||||
if item not in auxDict:
|
||||
baseList.append(item)
|
||||
auxDict[item] = None
|
||||
return baseList
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
taxId = []
|
||||
taxParentId = []
|
||||
name = []
|
||||
|
||||
try:
|
||||
inFile = sys.argv[1]
|
||||
nodeFile = open(inFile, 'r')
|
||||
except:
|
||||
sys.stderr.write('tax1_NodeParser.py <nodes_file>: No arguments or file does not exist\n')
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
try:
|
||||
for line in nodeFile:
|
||||
field = string.split(line.rstrip(), '\t')
|
||||
taxId.append(int(field[0]))
|
||||
taxParentId.append(int(field[1]))
|
||||
name.append(field[2])
|
||||
finally:
|
||||
nodeFile.close()
|
||||
|
||||
# Check data consistency
|
||||
|
||||
if (len(taxId)+len(taxParentId)+len(name))/3 != len(taxId):
|
||||
sys.stderr.write('Arrays are of different length: Corrupted input file')
|
||||
sys.exit(0)
|
||||
else:
|
||||
pass
|
||||
|
||||
parentLookUp = makeLookup(taxParentId)
|
||||
|
||||
i = 0
|
||||
children = []
|
||||
|
||||
for taxon in taxId:
|
||||
try:
|
||||
children = parentLookUp[taxon] #findAll(taxParentId, taxon)
|
||||
|
||||
except:
|
||||
pass
|
||||
|
||||
for child in children:
|
||||
if len(children) > 0:
|
||||
if taxId[child] != taxParentId[child]:
|
||||
try:
|
||||
children = addUnique(children, parentLookUp[taxId[child]])
|
||||
except:
|
||||
pass
|
||||
|
||||
else:
|
||||
pass
|
||||
|
||||
if len(children) > 0:
|
||||
for child in children:
|
||||
outTmp = string.Template('$pId\t$pRank\t$cId\t$cRank')
|
||||
out = outTmp.substitute(pId = taxon, pRank = name[i], cId = taxId[child], cRank = name[child])
|
||||
print out
|
||||
else:
|
||||
outTmp = string.Template('$pId\t$pRank\t0\tNone')
|
||||
out = outTmp.substitute(pId = taxon, pRank = name[i])
|
||||
print out
|
||||
|
||||
children = []
|
||||
i += 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,32 @@
|
||||
63221 9606 subspecies
|
||||
1 1 no rank
|
||||
2759 131567 superkingdom
|
||||
6072 33208 no rank
|
||||
7711 33511 phylum
|
||||
7742 89593 no rank
|
||||
7776 7742 superclass
|
||||
8287 117571 no rank
|
||||
9347 32525 no rank
|
||||
9443 314146 order
|
||||
9526 314293 parvorder
|
||||
9604 314295 family
|
||||
9605 207598 genus
|
||||
32523 8287 no rank
|
||||
32524 32523 no rank
|
||||
32525 40674 no rank
|
||||
33154 2759 no rank
|
||||
33208 33154 kingdom
|
||||
33213 6072 no rank
|
||||
33316 33213 no rank
|
||||
33511 33316 no rank
|
||||
40674 32524 class
|
||||
89593 7711 subphylum
|
||||
117570 7776 no rank
|
||||
117571 117570 no rank
|
||||
131567 1 no rank
|
||||
207598 9604 no rank
|
||||
314146 9347 superorder
|
||||
314293 376913 infraorder
|
||||
314295 9526 superfamily
|
||||
376913 9443 suborder
|
||||
9606 9605 species
|
||||
@@ -0,0 +1,143 @@
|
||||
"""
|
||||
tax2_Node2Name.py <node2child_file> <names_file> <db_name>
|
||||
|
||||
adds taxonomic names to collapsed NCBI taxonomy produced by tax1_NodeParser.py script
|
||||
|
||||
node2child_file = created by tax1_NodeParser.py script
|
||||
names_file = created from names.dmp file with the following command:
|
||||
|
||||
cat names.dmp | cut -f 1,2,4 -d "|" | tr -s "\t" "|" | tr "|" "\t" | sed s/\"//g > names.txt
|
||||
(names.dmp is downloaded from NCBI taxonomy FTP site)
|
||||
|
||||
db_name = a name of sqlite file this program will create. Output of this script is stored in table names of this database
|
||||
|
||||
anton nekrutenko | anton@bx.psu.edu
|
||||
"""
|
||||
|
||||
|
||||
import pkg_resources
|
||||
pkg_resources.require('pysqlite')
|
||||
from pysqlite2 import dbapi2 as sqlite
|
||||
import sys
|
||||
import string
|
||||
|
||||
def main():
|
||||
|
||||
try:
|
||||
inFileNodes = sys.argv[1]
|
||||
inFileNames = sys.argv[2]
|
||||
dbName = sys.argv[3]
|
||||
except:
|
||||
sys.stderr.write('tax2_Node2Name.py <node2child_file> <names_file> <db_name>: Not enough arguments\n')
|
||||
sys.exit(0)
|
||||
|
||||
taxRank = {
|
||||
'root' :1,
|
||||
'superkingdom':2,
|
||||
'kingdom' :3,
|
||||
'subkingdom' :4,
|
||||
'superphylum' :5,
|
||||
'phylum' :6,
|
||||
'subphylum' :7,
|
||||
'superclass' :8,
|
||||
'class' :9,
|
||||
'subclass' :10,
|
||||
'superorder' :11,
|
||||
'order' :12,
|
||||
'suborder' :13,
|
||||
'superfamily' :14,
|
||||
'family' :15,
|
||||
'subfamily' :16,
|
||||
'tribe' :17,
|
||||
'subtribe' :18,
|
||||
'genus' :19,
|
||||
'subgenus' :20,
|
||||
'species' :21,
|
||||
'subspecies' :22
|
||||
}
|
||||
|
||||
con = sqlite.connect(dbName)
|
||||
cur = con.cursor()
|
||||
|
||||
cur.execute('drop table if exists nodes')
|
||||
cur.execute('create table nodes (pid int unsigned not null, pidRank varchar(20) not null, pnumRank smallint unsigned not null, id int unsigned not null, idRank varchar(20), numRank smallint unsigned not null)')
|
||||
cur.execute('create index if not exists ipid on nodes(pid)')
|
||||
|
||||
cur.execute('drop table if exists names')
|
||||
cur.execute('create table names (taxId int unsigned not null, name text, type text)')
|
||||
cur.execute('create index itaxId on names(taxId)')
|
||||
con.commit()
|
||||
|
||||
f = open(inFileNodes, 'r')
|
||||
|
||||
try:
|
||||
for line in f:
|
||||
field = string.split(line.rstrip(), '\t')
|
||||
field = [ int(field[0]), field[1], 0, int(field[2]), field[3], 0 ]
|
||||
|
||||
|
||||
# Changing taxId == 1 from 'no rank' to 'root'
|
||||
|
||||
if field[0] == 1:
|
||||
field[1] = 'root'
|
||||
|
||||
# Setting numeric IDs for major taxonomic groups from taxRank dictionary
|
||||
|
||||
if taxRank.has_key(field[1]):
|
||||
field[2] = taxRank[field[1]]
|
||||
|
||||
if taxRank.has_key(field[4]):
|
||||
field[5] = taxRank[field[4]]
|
||||
|
||||
sqlTemplate = string.Template('insert into nodes values($pId, "$pRank", $pNumRank, $cId, "$cRank", $cNumRank)')
|
||||
sql = sqlTemplate.substitute(pId = field[0], pRank = field[1], pNumRank = field[2], cId = field[3], cRank = field[4], cNumRank = field[5])
|
||||
cur.execute(sql)
|
||||
|
||||
finally:
|
||||
f.close()
|
||||
con.commit()
|
||||
|
||||
f = open(inFileNames, 'r')
|
||||
try:
|
||||
for line in f:
|
||||
field = string.split(line.rstrip(), '\t')
|
||||
|
||||
# The following is based on assimption that every tax id in NCBI taxonomy
|
||||
# contains a single 'scientific name' type
|
||||
try:
|
||||
if field[2] == 'scientific name':
|
||||
sqlTemplate = string.Template('insert into names values($taxId, "$name", "$syn")')
|
||||
sql = sqlTemplate.substitute(taxId = int(field[0]), name = field[1], syn = field[2])
|
||||
cur.execute(sql)
|
||||
except:
|
||||
pass
|
||||
|
||||
finally:
|
||||
f.close()
|
||||
con.commit()
|
||||
|
||||
cur.execute('drop table if exists t')
|
||||
|
||||
cur.execute('create table t (pid int unsigned not null, pidRank varchar(20) not null, pnumRank smallint unsigned not null, id int unsigned not null, idRank varchar(20), numRank smallint unsigned not null, pName text)')
|
||||
|
||||
cur.execute('insert into t select nodes.*, name from nodes left join names on pid = taxId')
|
||||
|
||||
cur.execute('create index iid on t(id)')
|
||||
|
||||
cur.execute('drop table nodes')
|
||||
|
||||
cur.execute('drop table if exists node2name')
|
||||
|
||||
cur.execute('create table node2name (pId int unsigned not null, pIdRank varchar(20) not null, pNumRank smallint unsigned not null, cId int unsigned not null, cIdRank varchar(20), cNumRank smallint unsigned not null, pName text, cName text)')
|
||||
|
||||
cur.execute('insert into node2name select t.*, name from t left join names on id = taxId')
|
||||
|
||||
cur.execute('drop table t')
|
||||
cur.execute('vacuum')
|
||||
con.commit()
|
||||
con.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -0,0 +1,498 @@
|
||||
63221 subspecies 0 None
|
||||
1 no rank 1 no rank
|
||||
1 no rank 131567 no rank
|
||||
1 no rank 2759 superkingdom
|
||||
1 no rank 33154 no rank
|
||||
1 no rank 33208 kingdom
|
||||
1 no rank 6072 no rank
|
||||
1 no rank 33213 no rank
|
||||
1 no rank 33316 no rank
|
||||
1 no rank 33511 no rank
|
||||
1 no rank 7711 phylum
|
||||
1 no rank 89593 subphylum
|
||||
1 no rank 7742 no rank
|
||||
1 no rank 7776 superclass
|
||||
1 no rank 117570 no rank
|
||||
1 no rank 117571 no rank
|
||||
1 no rank 8287 no rank
|
||||
1 no rank 32523 no rank
|
||||
1 no rank 32524 no rank
|
||||
1 no rank 40674 class
|
||||
1 no rank 32525 no rank
|
||||
1 no rank 9347 no rank
|
||||
1 no rank 314146 superorder
|
||||
1 no rank 9443 order
|
||||
1 no rank 376913 suborder
|
||||
1 no rank 314293 infraorder
|
||||
1 no rank 9526 parvorder
|
||||
1 no rank 314295 superfamily
|
||||
1 no rank 9604 family
|
||||
1 no rank 207598 no rank
|
||||
1 no rank 9605 genus
|
||||
1 no rank 9606 species
|
||||
1 no rank 63221 subspecies
|
||||
2759 superkingdom 33154 no rank
|
||||
2759 superkingdom 33208 kingdom
|
||||
2759 superkingdom 6072 no rank
|
||||
2759 superkingdom 33213 no rank
|
||||
2759 superkingdom 33316 no rank
|
||||
2759 superkingdom 33511 no rank
|
||||
2759 superkingdom 7711 phylum
|
||||
2759 superkingdom 89593 subphylum
|
||||
2759 superkingdom 7742 no rank
|
||||
2759 superkingdom 7776 superclass
|
||||
2759 superkingdom 117570 no rank
|
||||
2759 superkingdom 117571 no rank
|
||||
2759 superkingdom 8287 no rank
|
||||
2759 superkingdom 32523 no rank
|
||||
2759 superkingdom 32524 no rank
|
||||
2759 superkingdom 40674 class
|
||||
2759 superkingdom 32525 no rank
|
||||
2759 superkingdom 9347 no rank
|
||||
2759 superkingdom 314146 superorder
|
||||
2759 superkingdom 9443 order
|
||||
2759 superkingdom 376913 suborder
|
||||
2759 superkingdom 314293 infraorder
|
||||
2759 superkingdom 9526 parvorder
|
||||
2759 superkingdom 314295 superfamily
|
||||
2759 superkingdom 9604 family
|
||||
2759 superkingdom 207598 no rank
|
||||
2759 superkingdom 9605 genus
|
||||
2759 superkingdom 9606 species
|
||||
2759 superkingdom 63221 subspecies
|
||||
6072 no rank 33213 no rank
|
||||
6072 no rank 33316 no rank
|
||||
6072 no rank 33511 no rank
|
||||
6072 no rank 7711 phylum
|
||||
6072 no rank 89593 subphylum
|
||||
6072 no rank 7742 no rank
|
||||
6072 no rank 7776 superclass
|
||||
6072 no rank 117570 no rank
|
||||
6072 no rank 117571 no rank
|
||||
6072 no rank 8287 no rank
|
||||
6072 no rank 32523 no rank
|
||||
6072 no rank 32524 no rank
|
||||
6072 no rank 40674 class
|
||||
6072 no rank 32525 no rank
|
||||
6072 no rank 9347 no rank
|
||||
6072 no rank 314146 superorder
|
||||
6072 no rank 9443 order
|
||||
6072 no rank 376913 suborder
|
||||
6072 no rank 314293 infraorder
|
||||
6072 no rank 9526 parvorder
|
||||
6072 no rank 314295 superfamily
|
||||
6072 no rank 9604 family
|
||||
6072 no rank 207598 no rank
|
||||
6072 no rank 9605 genus
|
||||
6072 no rank 9606 species
|
||||
6072 no rank 63221 subspecies
|
||||
7711 phylum 89593 subphylum
|
||||
7711 phylum 7742 no rank
|
||||
7711 phylum 7776 superclass
|
||||
7711 phylum 117570 no rank
|
||||
7711 phylum 117571 no rank
|
||||
7711 phylum 8287 no rank
|
||||
7711 phylum 32523 no rank
|
||||
7711 phylum 32524 no rank
|
||||
7711 phylum 40674 class
|
||||
7711 phylum 32525 no rank
|
||||
7711 phylum 9347 no rank
|
||||
7711 phylum 314146 superorder
|
||||
7711 phylum 9443 order
|
||||
7711 phylum 376913 suborder
|
||||
7711 phylum 314293 infraorder
|
||||
7711 phylum 9526 parvorder
|
||||
7711 phylum 314295 superfamily
|
||||
7711 phylum 9604 family
|
||||
7711 phylum 207598 no rank
|
||||
7711 phylum 9605 genus
|
||||
7711 phylum 9606 species
|
||||
7711 phylum 63221 subspecies
|
||||
7742 no rank 7776 superclass
|
||||
7742 no rank 117570 no rank
|
||||
7742 no rank 117571 no rank
|
||||
7742 no rank 8287 no rank
|
||||
7742 no rank 32523 no rank
|
||||
7742 no rank 32524 no rank
|
||||
7742 no rank 40674 class
|
||||
7742 no rank 32525 no rank
|
||||
7742 no rank 9347 no rank
|
||||
7742 no rank 314146 superorder
|
||||
7742 no rank 9443 order
|
||||
7742 no rank 376913 suborder
|
||||
7742 no rank 314293 infraorder
|
||||
7742 no rank 9526 parvorder
|
||||
7742 no rank 314295 superfamily
|
||||
7742 no rank 9604 family
|
||||
7742 no rank 207598 no rank
|
||||
7742 no rank 9605 genus
|
||||
7742 no rank 9606 species
|
||||
7742 no rank 63221 subspecies
|
||||
7776 superclass 117570 no rank
|
||||
7776 superclass 117571 no rank
|
||||
7776 superclass 8287 no rank
|
||||
7776 superclass 32523 no rank
|
||||
7776 superclass 32524 no rank
|
||||
7776 superclass 40674 class
|
||||
7776 superclass 32525 no rank
|
||||
7776 superclass 9347 no rank
|
||||
7776 superclass 314146 superorder
|
||||
7776 superclass 9443 order
|
||||
7776 superclass 376913 suborder
|
||||
7776 superclass 314293 infraorder
|
||||
7776 superclass 9526 parvorder
|
||||
7776 superclass 314295 superfamily
|
||||
7776 superclass 9604 family
|
||||
7776 superclass 207598 no rank
|
||||
7776 superclass 9605 genus
|
||||
7776 superclass 9606 species
|
||||
7776 superclass 63221 subspecies
|
||||
8287 no rank 32523 no rank
|
||||
8287 no rank 32524 no rank
|
||||
8287 no rank 40674 class
|
||||
8287 no rank 32525 no rank
|
||||
8287 no rank 9347 no rank
|
||||
8287 no rank 314146 superorder
|
||||
8287 no rank 9443 order
|
||||
8287 no rank 376913 suborder
|
||||
8287 no rank 314293 infraorder
|
||||
8287 no rank 9526 parvorder
|
||||
8287 no rank 314295 superfamily
|
||||
8287 no rank 9604 family
|
||||
8287 no rank 207598 no rank
|
||||
8287 no rank 9605 genus
|
||||
8287 no rank 9606 species
|
||||
8287 no rank 63221 subspecies
|
||||
9347 no rank 314146 superorder
|
||||
9347 no rank 9443 order
|
||||
9347 no rank 376913 suborder
|
||||
9347 no rank 314293 infraorder
|
||||
9347 no rank 9526 parvorder
|
||||
9347 no rank 314295 superfamily
|
||||
9347 no rank 9604 family
|
||||
9347 no rank 207598 no rank
|
||||
9347 no rank 9605 genus
|
||||
9347 no rank 9606 species
|
||||
9347 no rank 63221 subspecies
|
||||
9443 order 376913 suborder
|
||||
9443 order 314293 infraorder
|
||||
9443 order 9526 parvorder
|
||||
9443 order 314295 superfamily
|
||||
9443 order 9604 family
|
||||
9443 order 207598 no rank
|
||||
9443 order 9605 genus
|
||||
9443 order 9606 species
|
||||
9443 order 63221 subspecies
|
||||
9526 parvorder 314295 superfamily
|
||||
9526 parvorder 9604 family
|
||||
9526 parvorder 207598 no rank
|
||||
9526 parvorder 9605 genus
|
||||
9526 parvorder 9606 species
|
||||
9526 parvorder 63221 subspecies
|
||||
9604 family 207598 no rank
|
||||
9604 family 9605 genus
|
||||
9604 family 9606 species
|
||||
9604 family 63221 subspecies
|
||||
9605 genus 9606 species
|
||||
9605 genus 63221 subspecies
|
||||
32523 no rank 32524 no rank
|
||||
32523 no rank 40674 class
|
||||
32523 no rank 32525 no rank
|
||||
32523 no rank 9347 no rank
|
||||
32523 no rank 314146 superorder
|
||||
32523 no rank 9443 order
|
||||
32523 no rank 376913 suborder
|
||||
32523 no rank 314293 infraorder
|
||||
32523 no rank 9526 parvorder
|
||||
32523 no rank 314295 superfamily
|
||||
32523 no rank 9604 family
|
||||
32523 no rank 207598 no rank
|
||||
32523 no rank 9605 genus
|
||||
32523 no rank 9606 species
|
||||
32523 no rank 63221 subspecies
|
||||
32524 no rank 40674 class
|
||||
32524 no rank 32525 no rank
|
||||
32524 no rank 9347 no rank
|
||||
32524 no rank 314146 superorder
|
||||
32524 no rank 9443 order
|
||||
32524 no rank 376913 suborder
|
||||
32524 no rank 314293 infraorder
|
||||
32524 no rank 9526 parvorder
|
||||
32524 no rank 314295 superfamily
|
||||
32524 no rank 9604 family
|
||||
32524 no rank 207598 no rank
|
||||
32524 no rank 9605 genus
|
||||
32524 no rank 9606 species
|
||||
32524 no rank 63221 subspecies
|
||||
32525 no rank 9347 no rank
|
||||
32525 no rank 314146 superorder
|
||||
32525 no rank 9443 order
|
||||
32525 no rank 376913 suborder
|
||||
32525 no rank 314293 infraorder
|
||||
32525 no rank 9526 parvorder
|
||||
32525 no rank 314295 superfamily
|
||||
32525 no rank 9604 family
|
||||
32525 no rank 207598 no rank
|
||||
32525 no rank 9605 genus
|
||||
32525 no rank 9606 species
|
||||
32525 no rank 63221 subspecies
|
||||
33154 no rank 33208 kingdom
|
||||
33154 no rank 6072 no rank
|
||||
33154 no rank 33213 no rank
|
||||
33154 no rank 33316 no rank
|
||||
33154 no rank 33511 no rank
|
||||
33154 no rank 7711 phylum
|
||||
33154 no rank 89593 subphylum
|
||||
33154 no rank 7742 no rank
|
||||
33154 no rank 7776 superclass
|
||||
33154 no rank 117570 no rank
|
||||
33154 no rank 117571 no rank
|
||||
33154 no rank 8287 no rank
|
||||
33154 no rank 32523 no rank
|
||||
33154 no rank 32524 no rank
|
||||
33154 no rank 40674 class
|
||||
33154 no rank 32525 no rank
|
||||
33154 no rank 9347 no rank
|
||||
33154 no rank 314146 superorder
|
||||
33154 no rank 9443 order
|
||||
33154 no rank 376913 suborder
|
||||
33154 no rank 314293 infraorder
|
||||
33154 no rank 9526 parvorder
|
||||
33154 no rank 314295 superfamily
|
||||
33154 no rank 9604 family
|
||||
33154 no rank 207598 no rank
|
||||
33154 no rank 9605 genus
|
||||
33154 no rank 9606 species
|
||||
33154 no rank 63221 subspecies
|
||||
33208 kingdom 6072 no rank
|
||||
33208 kingdom 33213 no rank
|
||||
33208 kingdom 33316 no rank
|
||||
33208 kingdom 33511 no rank
|
||||
33208 kingdom 7711 phylum
|
||||
33208 kingdom 89593 subphylum
|
||||
33208 kingdom 7742 no rank
|
||||
33208 kingdom 7776 superclass
|
||||
33208 kingdom 117570 no rank
|
||||
33208 kingdom 117571 no rank
|
||||
33208 kingdom 8287 no rank
|
||||
33208 kingdom 32523 no rank
|
||||
33208 kingdom 32524 no rank
|
||||
33208 kingdom 40674 class
|
||||
33208 kingdom 32525 no rank
|
||||
33208 kingdom 9347 no rank
|
||||
33208 kingdom 314146 superorder
|
||||
33208 kingdom 9443 order
|
||||
33208 kingdom 376913 suborder
|
||||
33208 kingdom 314293 infraorder
|
||||
33208 kingdom 9526 parvorder
|
||||
33208 kingdom 314295 superfamily
|
||||
33208 kingdom 9604 family
|
||||
33208 kingdom 207598 no rank
|
||||
33208 kingdom 9605 genus
|
||||
33208 kingdom 9606 species
|
||||
33208 kingdom 63221 subspecies
|
||||
33213 no rank 33316 no rank
|
||||
33213 no rank 33511 no rank
|
||||
33213 no rank 7711 phylum
|
||||
33213 no rank 89593 subphylum
|
||||
33213 no rank 7742 no rank
|
||||
33213 no rank 7776 superclass
|
||||
33213 no rank 117570 no rank
|
||||
33213 no rank 117571 no rank
|
||||
33213 no rank 8287 no rank
|
||||
33213 no rank 32523 no rank
|
||||
33213 no rank 32524 no rank
|
||||
33213 no rank 40674 class
|
||||
33213 no rank 32525 no rank
|
||||
33213 no rank 9347 no rank
|
||||
33213 no rank 314146 superorder
|
||||
33213 no rank 9443 order
|
||||
33213 no rank 376913 suborder
|
||||
33213 no rank 314293 infraorder
|
||||
33213 no rank 9526 parvorder
|
||||
33213 no rank 314295 superfamily
|
||||
33213 no rank 9604 family
|
||||
33213 no rank 207598 no rank
|
||||
33213 no rank 9605 genus
|
||||
33213 no rank 9606 species
|
||||
33213 no rank 63221 subspecies
|
||||
33316 no rank 33511 no rank
|
||||
33316 no rank 7711 phylum
|
||||
33316 no rank 89593 subphylum
|
||||
33316 no rank 7742 no rank
|
||||
33316 no rank 7776 superclass
|
||||
33316 no rank 117570 no rank
|
||||
33316 no rank 117571 no rank
|
||||
33316 no rank 8287 no rank
|
||||
33316 no rank 32523 no rank
|
||||
33316 no rank 32524 no rank
|
||||
33316 no rank 40674 class
|
||||
33316 no rank 32525 no rank
|
||||
33316 no rank 9347 no rank
|
||||
33316 no rank 314146 superorder
|
||||
33316 no rank 9443 order
|
||||
33316 no rank 376913 suborder
|
||||
33316 no rank 314293 infraorder
|
||||
33316 no rank 9526 parvorder
|
||||
33316 no rank 314295 superfamily
|
||||
33316 no rank 9604 family
|
||||
33316 no rank 207598 no rank
|
||||
33316 no rank 9605 genus
|
||||
33316 no rank 9606 species
|
||||
33316 no rank 63221 subspecies
|
||||
33511 no rank 7711 phylum
|
||||
33511 no rank 89593 subphylum
|
||||
33511 no rank 7742 no rank
|
||||
33511 no rank 7776 superclass
|
||||
33511 no rank 117570 no rank
|
||||
33511 no rank 117571 no rank
|
||||
33511 no rank 8287 no rank
|
||||
33511 no rank 32523 no rank
|
||||
33511 no rank 32524 no rank
|
||||
33511 no rank 40674 class
|
||||
33511 no rank 32525 no rank
|
||||
33511 no rank 9347 no rank
|
||||
33511 no rank 314146 superorder
|
||||
33511 no rank 9443 order
|
||||
33511 no rank 376913 suborder
|
||||
33511 no rank 314293 infraorder
|
||||
33511 no rank 9526 parvorder
|
||||
33511 no rank 314295 superfamily
|
||||
33511 no rank 9604 family
|
||||
33511 no rank 207598 no rank
|
||||
33511 no rank 9605 genus
|
||||
33511 no rank 9606 species
|
||||
33511 no rank 63221 subspecies
|
||||
40674 class 32525 no rank
|
||||
40674 class 9347 no rank
|
||||
40674 class 314146 superorder
|
||||
40674 class 9443 order
|
||||
40674 class 376913 suborder
|
||||
40674 class 314293 infraorder
|
||||
40674 class 9526 parvorder
|
||||
40674 class 314295 superfamily
|
||||
40674 class 9604 family
|
||||
40674 class 207598 no rank
|
||||
40674 class 9605 genus
|
||||
40674 class 9606 species
|
||||
40674 class 63221 subspecies
|
||||
89593 subphylum 7742 no rank
|
||||
89593 subphylum 7776 superclass
|
||||
89593 subphylum 117570 no rank
|
||||
89593 subphylum 117571 no rank
|
||||
89593 subphylum 8287 no rank
|
||||
89593 subphylum 32523 no rank
|
||||
89593 subphylum 32524 no rank
|
||||
89593 subphylum 40674 class
|
||||
89593 subphylum 32525 no rank
|
||||
89593 subphylum 9347 no rank
|
||||
89593 subphylum 314146 superorder
|
||||
89593 subphylum 9443 order
|
||||
89593 subphylum 376913 suborder
|
||||
89593 subphylum 314293 infraorder
|
||||
89593 subphylum 9526 parvorder
|
||||
89593 subphylum 314295 superfamily
|
||||
89593 subphylum 9604 family
|
||||
89593 subphylum 207598 no rank
|
||||
89593 subphylum 9605 genus
|
||||
89593 subphylum 9606 species
|
||||
89593 subphylum 63221 subspecies
|
||||
117570 no rank 117571 no rank
|
||||
117570 no rank 8287 no rank
|
||||
117570 no rank 32523 no rank
|
||||
117570 no rank 32524 no rank
|
||||
117570 no rank 40674 class
|
||||
117570 no rank 32525 no rank
|
||||
117570 no rank 9347 no rank
|
||||
117570 no rank 314146 superorder
|
||||
117570 no rank 9443 order
|
||||
117570 no rank 376913 suborder
|
||||
117570 no rank 314293 infraorder
|
||||
117570 no rank 9526 parvorder
|
||||
117570 no rank 314295 superfamily
|
||||
117570 no rank 9604 family
|
||||
117570 no rank 207598 no rank
|
||||
117570 no rank 9605 genus
|
||||
117570 no rank 9606 species
|
||||
117570 no rank 63221 subspecies
|
||||
117571 no rank 8287 no rank
|
||||
117571 no rank 32523 no rank
|
||||
117571 no rank 32524 no rank
|
||||
117571 no rank 40674 class
|
||||
117571 no rank 32525 no rank
|
||||
117571 no rank 9347 no rank
|
||||
117571 no rank 314146 superorder
|
||||
117571 no rank 9443 order
|
||||
117571 no rank 376913 suborder
|
||||
117571 no rank 314293 infraorder
|
||||
117571 no rank 9526 parvorder
|
||||
117571 no rank 314295 superfamily
|
||||
117571 no rank 9604 family
|
||||
117571 no rank 207598 no rank
|
||||
117571 no rank 9605 genus
|
||||
117571 no rank 9606 species
|
||||
117571 no rank 63221 subspecies
|
||||
131567 no rank 2759 superkingdom
|
||||
131567 no rank 33154 no rank
|
||||
131567 no rank 33208 kingdom
|
||||
131567 no rank 6072 no rank
|
||||
131567 no rank 33213 no rank
|
||||
131567 no rank 33316 no rank
|
||||
131567 no rank 33511 no rank
|
||||
131567 no rank 7711 phylum
|
||||
131567 no rank 89593 subphylum
|
||||
131567 no rank 7742 no rank
|
||||
131567 no rank 7776 superclass
|
||||
131567 no rank 117570 no rank
|
||||
131567 no rank 117571 no rank
|
||||
131567 no rank 8287 no rank
|
||||
131567 no rank 32523 no rank
|
||||
131567 no rank 32524 no rank
|
||||
131567 no rank 40674 class
|
||||
131567 no rank 32525 no rank
|
||||
131567 no rank 9347 no rank
|
||||
131567 no rank 314146 superorder
|
||||
131567 no rank 9443 order
|
||||
131567 no rank 376913 suborder
|
||||
131567 no rank 314293 infraorder
|
||||
131567 no rank 9526 parvorder
|
||||
131567 no rank 314295 superfamily
|
||||
131567 no rank 9604 family
|
||||
131567 no rank 207598 no rank
|
||||
131567 no rank 9605 genus
|
||||
131567 no rank 9606 species
|
||||
131567 no rank 63221 subspecies
|
||||
207598 no rank 9605 genus
|
||||
207598 no rank 9606 species
|
||||
207598 no rank 63221 subspecies
|
||||
314146 superorder 9443 order
|
||||
314146 superorder 376913 suborder
|
||||
314146 superorder 314293 infraorder
|
||||
314146 superorder 9526 parvorder
|
||||
314146 superorder 314295 superfamily
|
||||
314146 superorder 9604 family
|
||||
314146 superorder 207598 no rank
|
||||
314146 superorder 9605 genus
|
||||
314146 superorder 9606 species
|
||||
314146 superorder 63221 subspecies
|
||||
314293 infraorder 9526 parvorder
|
||||
314293 infraorder 314295 superfamily
|
||||
314293 infraorder 9604 family
|
||||
314293 infraorder 207598 no rank
|
||||
314293 infraorder 9605 genus
|
||||
314293 infraorder 9606 species
|
||||
314293 infraorder 63221 subspecies
|
||||
314295 superfamily 9604 family
|
||||
314295 superfamily 207598 no rank
|
||||
314295 superfamily 9605 genus
|
||||
314295 superfamily 9606 species
|
||||
314295 superfamily 63221 subspecies
|
||||
376913 suborder 314293 infraorder
|
||||
376913 suborder 9526 parvorder
|
||||
376913 suborder 314295 superfamily
|
||||
376913 suborder 9604 family
|
||||
376913 suborder 207598 no rank
|
||||
376913 suborder 9605 genus
|
||||
376913 suborder 9606 species
|
||||
376913 suborder 63221 subspecies
|
||||
9606 species 63221 subspecies
|
||||
@@ -0,0 +1,498 @@
|
||||
63221 subspecies 0 None
|
||||
1 no rank 1 no rank
|
||||
1 no rank 131567 no rank
|
||||
1 no rank 2759 superkingdom
|
||||
1 no rank 33154 no rank
|
||||
1 no rank 33208 kingdom
|
||||
1 no rank 6072 no rank
|
||||
1 no rank 33213 no rank
|
||||
1 no rank 33316 no rank
|
||||
1 no rank 33511 no rank
|
||||
1 no rank 7711 phylum
|
||||
1 no rank 89593 subphylum
|
||||
1 no rank 7742 no rank
|
||||
1 no rank 7776 superclass
|
||||
1 no rank 117570 no rank
|
||||
1 no rank 117571 no rank
|
||||
1 no rank 8287 no rank
|
||||
1 no rank 32523 no rank
|
||||
1 no rank 32524 no rank
|
||||
1 no rank 40674 class
|
||||
1 no rank 32525 no rank
|
||||
1 no rank 9347 no rank
|
||||
1 no rank 314146 superorder
|
||||
1 no rank 9443 order
|
||||
1 no rank 376913 suborder
|
||||
1 no rank 314293 infraorder
|
||||
1 no rank 9526 parvorder
|
||||
1 no rank 314295 superfamily
|
||||
1 no rank 9604 family
|
||||
1 no rank 207598 no rank
|
||||
1 no rank 9605 genus
|
||||
1 no rank 9606 species
|
||||
1 no rank 63221 subspecies
|
||||
2759 superkingdom 33154 no rank
|
||||
2759 superkingdom 33208 kingdom
|
||||
2759 superkingdom 6072 no rank
|
||||
2759 superkingdom 33213 no rank
|
||||
2759 superkingdom 33316 no rank
|
||||
2759 superkingdom 33511 no rank
|
||||
2759 superkingdom 7711 phylum
|
||||
2759 superkingdom 89593 subphylum
|
||||
2759 superkingdom 7742 no rank
|
||||
2759 superkingdom 7776 superclass
|
||||
2759 superkingdom 117570 no rank
|
||||
2759 superkingdom 117571 no rank
|
||||
2759 superkingdom 8287 no rank
|
||||
2759 superkingdom 32523 no rank
|
||||
2759 superkingdom 32524 no rank
|
||||
2759 superkingdom 40674 class
|
||||
2759 superkingdom 32525 no rank
|
||||
2759 superkingdom 9347 no rank
|
||||
2759 superkingdom 314146 superorder
|
||||
2759 superkingdom 9443 order
|
||||
2759 superkingdom 376913 suborder
|
||||
2759 superkingdom 314293 infraorder
|
||||
2759 superkingdom 9526 parvorder
|
||||
2759 superkingdom 314295 superfamily
|
||||
2759 superkingdom 9604 family
|
||||
2759 superkingdom 207598 no rank
|
||||
2759 superkingdom 9605 genus
|
||||
2759 superkingdom 9606 species
|
||||
2759 superkingdom 63221 subspecies
|
||||
6072 no rank 33213 no rank
|
||||
6072 no rank 33316 no rank
|
||||
6072 no rank 33511 no rank
|
||||
6072 no rank 7711 phylum
|
||||
6072 no rank 89593 subphylum
|
||||
6072 no rank 7742 no rank
|
||||
6072 no rank 7776 superclass
|
||||
6072 no rank 117570 no rank
|
||||
6072 no rank 117571 no rank
|
||||
6072 no rank 8287 no rank
|
||||
6072 no rank 32523 no rank
|
||||
6072 no rank 32524 no rank
|
||||
6072 no rank 40674 class
|
||||
6072 no rank 32525 no rank
|
||||
6072 no rank 9347 no rank
|
||||
6072 no rank 314146 superorder
|
||||
6072 no rank 9443 order
|
||||
6072 no rank 376913 suborder
|
||||
6072 no rank 314293 infraorder
|
||||
6072 no rank 9526 parvorder
|
||||
6072 no rank 314295 superfamily
|
||||
6072 no rank 9604 family
|
||||
6072 no rank 207598 no rank
|
||||
6072 no rank 9605 genus
|
||||
6072 no rank 9606 species
|
||||
6072 no rank 63221 subspecies
|
||||
7711 phylum 89593 subphylum
|
||||
7711 phylum 7742 no rank
|
||||
7711 phylum 7776 superclass
|
||||
7711 phylum 117570 no rank
|
||||
7711 phylum 117571 no rank
|
||||
7711 phylum 8287 no rank
|
||||
7711 phylum 32523 no rank
|
||||
7711 phylum 32524 no rank
|
||||
7711 phylum 40674 class
|
||||
7711 phylum 32525 no rank
|
||||
7711 phylum 9347 no rank
|
||||
7711 phylum 314146 superorder
|
||||
7711 phylum 9443 order
|
||||
7711 phylum 376913 suborder
|
||||
7711 phylum 314293 infraorder
|
||||
7711 phylum 9526 parvorder
|
||||
7711 phylum 314295 superfamily
|
||||
7711 phylum 9604 family
|
||||
7711 phylum 207598 no rank
|
||||
7711 phylum 9605 genus
|
||||
7711 phylum 9606 species
|
||||
7711 phylum 63221 subspecies
|
||||
7742 no rank 7776 superclass
|
||||
7742 no rank 117570 no rank
|
||||
7742 no rank 117571 no rank
|
||||
7742 no rank 8287 no rank
|
||||
7742 no rank 32523 no rank
|
||||
7742 no rank 32524 no rank
|
||||
7742 no rank 40674 class
|
||||
7742 no rank 32525 no rank
|
||||
7742 no rank 9347 no rank
|
||||
7742 no rank 314146 superorder
|
||||
7742 no rank 9443 order
|
||||
7742 no rank 376913 suborder
|
||||
7742 no rank 314293 infraorder
|
||||
7742 no rank 9526 parvorder
|
||||
7742 no rank 314295 superfamily
|
||||
7742 no rank 9604 family
|
||||
7742 no rank 207598 no rank
|
||||
7742 no rank 9605 genus
|
||||
7742 no rank 9606 species
|
||||
7742 no rank 63221 subspecies
|
||||
7776 superclass 117570 no rank
|
||||
7776 superclass 117571 no rank
|
||||
7776 superclass 8287 no rank
|
||||
7776 superclass 32523 no rank
|
||||
7776 superclass 32524 no rank
|
||||
7776 superclass 40674 class
|
||||
7776 superclass 32525 no rank
|
||||
7776 superclass 9347 no rank
|
||||
7776 superclass 314146 superorder
|
||||
7776 superclass 9443 order
|
||||
7776 superclass 376913 suborder
|
||||
7776 superclass 314293 infraorder
|
||||
7776 superclass 9526 parvorder
|
||||
7776 superclass 314295 superfamily
|
||||
7776 superclass 9604 family
|
||||
7776 superclass 207598 no rank
|
||||
7776 superclass 9605 genus
|
||||
7776 superclass 9606 species
|
||||
7776 superclass 63221 subspecies
|
||||
8287 no rank 32523 no rank
|
||||
8287 no rank 32524 no rank
|
||||
8287 no rank 40674 class
|
||||
8287 no rank 32525 no rank
|
||||
8287 no rank 9347 no rank
|
||||
8287 no rank 314146 superorder
|
||||
8287 no rank 9443 order
|
||||
8287 no rank 376913 suborder
|
||||
8287 no rank 314293 infraorder
|
||||
8287 no rank 9526 parvorder
|
||||
8287 no rank 314295 superfamily
|
||||
8287 no rank 9604 family
|
||||
8287 no rank 207598 no rank
|
||||
8287 no rank 9605 genus
|
||||
8287 no rank 9606 species
|
||||
8287 no rank 63221 subspecies
|
||||
9347 no rank 314146 superorder
|
||||
9347 no rank 9443 order
|
||||
9347 no rank 376913 suborder
|
||||
9347 no rank 314293 infraorder
|
||||
9347 no rank 9526 parvorder
|
||||
9347 no rank 314295 superfamily
|
||||
9347 no rank 9604 family
|
||||
9347 no rank 207598 no rank
|
||||
9347 no rank 9605 genus
|
||||
9347 no rank 9606 species
|
||||
9347 no rank 63221 subspecies
|
||||
9443 order 376913 suborder
|
||||
9443 order 314293 infraorder
|
||||
9443 order 9526 parvorder
|
||||
9443 order 314295 superfamily
|
||||
9443 order 9604 family
|
||||
9443 order 207598 no rank
|
||||
9443 order 9605 genus
|
||||
9443 order 9606 species
|
||||
9443 order 63221 subspecies
|
||||
9526 parvorder 314295 superfamily
|
||||
9526 parvorder 9604 family
|
||||
9526 parvorder 207598 no rank
|
||||
9526 parvorder 9605 genus
|
||||
9526 parvorder 9606 species
|
||||
9526 parvorder 63221 subspecies
|
||||
9604 family 207598 no rank
|
||||
9604 family 9605 genus
|
||||
9604 family 9606 species
|
||||
9604 family 63221 subspecies
|
||||
9605 genus 9606 species
|
||||
9605 genus 63221 subspecies
|
||||
32523 no rank 32524 no rank
|
||||
32523 no rank 40674 class
|
||||
32523 no rank 32525 no rank
|
||||
32523 no rank 9347 no rank
|
||||
32523 no rank 314146 superorder
|
||||
32523 no rank 9443 order
|
||||
32523 no rank 376913 suborder
|
||||
32523 no rank 314293 infraorder
|
||||
32523 no rank 9526 parvorder
|
||||
32523 no rank 314295 superfamily
|
||||
32523 no rank 9604 family
|
||||
32523 no rank 207598 no rank
|
||||
32523 no rank 9605 genus
|
||||
32523 no rank 9606 species
|
||||
32523 no rank 63221 subspecies
|
||||
32524 no rank 40674 class
|
||||
32524 no rank 32525 no rank
|
||||
32524 no rank 9347 no rank
|
||||
32524 no rank 314146 superorder
|
||||
32524 no rank 9443 order
|
||||
32524 no rank 376913 suborder
|
||||
32524 no rank 314293 infraorder
|
||||
32524 no rank 9526 parvorder
|
||||
32524 no rank 314295 superfamily
|
||||
32524 no rank 9604 family
|
||||
32524 no rank 207598 no rank
|
||||
32524 no rank 9605 genus
|
||||
32524 no rank 9606 species
|
||||
32524 no rank 63221 subspecies
|
||||
32525 no rank 9347 no rank
|
||||
32525 no rank 314146 superorder
|
||||
32525 no rank 9443 order
|
||||
32525 no rank 376913 suborder
|
||||
32525 no rank 314293 infraorder
|
||||
32525 no rank 9526 parvorder
|
||||
32525 no rank 314295 superfamily
|
||||
32525 no rank 9604 family
|
||||
32525 no rank 207598 no rank
|
||||
32525 no rank 9605 genus
|
||||
32525 no rank 9606 species
|
||||
32525 no rank 63221 subspecies
|
||||
33154 no rank 33208 kingdom
|
||||
33154 no rank 6072 no rank
|
||||
33154 no rank 33213 no rank
|
||||
33154 no rank 33316 no rank
|
||||
33154 no rank 33511 no rank
|
||||
33154 no rank 7711 phylum
|
||||
33154 no rank 89593 subphylum
|
||||
33154 no rank 7742 no rank
|
||||
33154 no rank 7776 superclass
|
||||
33154 no rank 117570 no rank
|
||||
33154 no rank 117571 no rank
|
||||
33154 no rank 8287 no rank
|
||||
33154 no rank 32523 no rank
|
||||
33154 no rank 32524 no rank
|
||||
33154 no rank 40674 class
|
||||
33154 no rank 32525 no rank
|
||||
33154 no rank 9347 no rank
|
||||
33154 no rank 314146 superorder
|
||||
33154 no rank 9443 order
|
||||
33154 no rank 376913 suborder
|
||||
33154 no rank 314293 infraorder
|
||||
33154 no rank 9526 parvorder
|
||||
33154 no rank 314295 superfamily
|
||||
33154 no rank 9604 family
|
||||
33154 no rank 207598 no rank
|
||||
33154 no rank 9605 genus
|
||||
33154 no rank 9606 species
|
||||
33154 no rank 63221 subspecies
|
||||
33208 kingdom 6072 no rank
|
||||
33208 kingdom 33213 no rank
|
||||
33208 kingdom 33316 no rank
|
||||
33208 kingdom 33511 no rank
|
||||
33208 kingdom 7711 phylum
|
||||
33208 kingdom 89593 subphylum
|
||||
33208 kingdom 7742 no rank
|
||||
33208 kingdom 7776 superclass
|
||||
33208 kingdom 117570 no rank
|
||||
33208 kingdom 117571 no rank
|
||||
33208 kingdom 8287 no rank
|
||||
33208 kingdom 32523 no rank
|
||||
33208 kingdom 32524 no rank
|
||||
33208 kingdom 40674 class
|
||||
33208 kingdom 32525 no rank
|
||||
33208 kingdom 9347 no rank
|
||||
33208 kingdom 314146 superorder
|
||||
33208 kingdom 9443 order
|
||||
33208 kingdom 376913 suborder
|
||||
33208 kingdom 314293 infraorder
|
||||
33208 kingdom 9526 parvorder
|
||||
33208 kingdom 314295 superfamily
|
||||
33208 kingdom 9604 family
|
||||
33208 kingdom 207598 no rank
|
||||
33208 kingdom 9605 genus
|
||||
33208 kingdom 9606 species
|
||||
33208 kingdom 63221 subspecies
|
||||
33213 no rank 33316 no rank
|
||||
33213 no rank 33511 no rank
|
||||
33213 no rank 7711 phylum
|
||||
33213 no rank 89593 subphylum
|
||||
33213 no rank 7742 no rank
|
||||
33213 no rank 7776 superclass
|
||||
33213 no rank 117570 no rank
|
||||
33213 no rank 117571 no rank
|
||||
33213 no rank 8287 no rank
|
||||
33213 no rank 32523 no rank
|
||||
33213 no rank 32524 no rank
|
||||
33213 no rank 40674 class
|
||||
33213 no rank 32525 no rank
|
||||
33213 no rank 9347 no rank
|
||||
33213 no rank 314146 superorder
|
||||
33213 no rank 9443 order
|
||||
33213 no rank 376913 suborder
|
||||
33213 no rank 314293 infraorder
|
||||
33213 no rank 9526 parvorder
|
||||
33213 no rank 314295 superfamily
|
||||
33213 no rank 9604 family
|
||||
33213 no rank 207598 no rank
|
||||
33213 no rank 9605 genus
|
||||
33213 no rank 9606 species
|
||||
33213 no rank 63221 subspecies
|
||||
33316 no rank 33511 no rank
|
||||
33316 no rank 7711 phylum
|
||||
33316 no rank 89593 subphylum
|
||||
33316 no rank 7742 no rank
|
||||
33316 no rank 7776 superclass
|
||||
33316 no rank 117570 no rank
|
||||
33316 no rank 117571 no rank
|
||||
33316 no rank 8287 no rank
|
||||
33316 no rank 32523 no rank
|
||||
33316 no rank 32524 no rank
|
||||
33316 no rank 40674 class
|
||||
33316 no rank 32525 no rank
|
||||
33316 no rank 9347 no rank
|
||||
33316 no rank 314146 superorder
|
||||
33316 no rank 9443 order
|
||||
33316 no rank 376913 suborder
|
||||
33316 no rank 314293 infraorder
|
||||
33316 no rank 9526 parvorder
|
||||
33316 no rank 314295 superfamily
|
||||
33316 no rank 9604 family
|
||||
33316 no rank 207598 no rank
|
||||
33316 no rank 9605 genus
|
||||
33316 no rank 9606 species
|
||||
33316 no rank 63221 subspecies
|
||||
33511 no rank 7711 phylum
|
||||
33511 no rank 89593 subphylum
|
||||
33511 no rank 7742 no rank
|
||||
33511 no rank 7776 superclass
|
||||
33511 no rank 117570 no rank
|
||||
33511 no rank 117571 no rank
|
||||
33511 no rank 8287 no rank
|
||||
33511 no rank 32523 no rank
|
||||
33511 no rank 32524 no rank
|
||||
33511 no rank 40674 class
|
||||
33511 no rank 32525 no rank
|
||||
33511 no rank 9347 no rank
|
||||
33511 no rank 314146 superorder
|
||||
33511 no rank 9443 order
|
||||
33511 no rank 376913 suborder
|
||||
33511 no rank 314293 infraorder
|
||||
33511 no rank 9526 parvorder
|
||||
33511 no rank 314295 superfamily
|
||||
33511 no rank 9604 family
|
||||
33511 no rank 207598 no rank
|
||||
33511 no rank 9605 genus
|
||||
33511 no rank 9606 species
|
||||
33511 no rank 63221 subspecies
|
||||
40674 class 32525 no rank
|
||||
40674 class 9347 no rank
|
||||
40674 class 314146 superorder
|
||||
40674 class 9443 order
|
||||
40674 class 376913 suborder
|
||||
40674 class 314293 infraorder
|
||||
40674 class 9526 parvorder
|
||||
40674 class 314295 superfamily
|
||||
40674 class 9604 family
|
||||
40674 class 207598 no rank
|
||||
40674 class 9605 genus
|
||||
40674 class 9606 species
|
||||
40674 class 63221 subspecies
|
||||
89593 subphylum 7742 no rank
|
||||
89593 subphylum 7776 superclass
|
||||
89593 subphylum 117570 no rank
|
||||
89593 subphylum 117571 no rank
|
||||
89593 subphylum 8287 no rank
|
||||
89593 subphylum 32523 no rank
|
||||
89593 subphylum 32524 no rank
|
||||
89593 subphylum 40674 class
|
||||
89593 subphylum 32525 no rank
|
||||
89593 subphylum 9347 no rank
|
||||
89593 subphylum 314146 superorder
|
||||
89593 subphylum 9443 order
|
||||
89593 subphylum 376913 suborder
|
||||
89593 subphylum 314293 infraorder
|
||||
89593 subphylum 9526 parvorder
|
||||
89593 subphylum 314295 superfamily
|
||||
89593 subphylum 9604 family
|
||||
89593 subphylum 207598 no rank
|
||||
89593 subphylum 9605 genus
|
||||
89593 subphylum 9606 species
|
||||
89593 subphylum 63221 subspecies
|
||||
117570 no rank 117571 no rank
|
||||
117570 no rank 8287 no rank
|
||||
117570 no rank 32523 no rank
|
||||
117570 no rank 32524 no rank
|
||||
117570 no rank 40674 class
|
||||
117570 no rank 32525 no rank
|
||||
117570 no rank 9347 no rank
|
||||
117570 no rank 314146 superorder
|
||||
117570 no rank 9443 order
|
||||
117570 no rank 376913 suborder
|
||||
117570 no rank 314293 infraorder
|
||||
117570 no rank 9526 parvorder
|
||||
117570 no rank 314295 superfamily
|
||||
117570 no rank 9604 family
|
||||
117570 no rank 207598 no rank
|
||||
117570 no rank 9605 genus
|
||||
117570 no rank 9606 species
|
||||
117570 no rank 63221 subspecies
|
||||
117571 no rank 8287 no rank
|
||||
117571 no rank 32523 no rank
|
||||
117571 no rank 32524 no rank
|
||||
117571 no rank 40674 class
|
||||
117571 no rank 32525 no rank
|
||||
117571 no rank 9347 no rank
|
||||
117571 no rank 314146 superorder
|
||||
117571 no rank 9443 order
|
||||
117571 no rank 376913 suborder
|
||||
117571 no rank 314293 infraorder
|
||||
117571 no rank 9526 parvorder
|
||||
117571 no rank 314295 superfamily
|
||||
117571 no rank 9604 family
|
||||
117571 no rank 207598 no rank
|
||||
117571 no rank 9605 genus
|
||||
117571 no rank 9606 species
|
||||
117571 no rank 63221 subspecies
|
||||
131567 no rank 2759 superkingdom
|
||||
131567 no rank 33154 no rank
|
||||
131567 no rank 33208 kingdom
|
||||
131567 no rank 6072 no rank
|
||||
131567 no rank 33213 no rank
|
||||
131567 no rank 33316 no rank
|
||||
131567 no rank 33511 no rank
|
||||
131567 no rank 7711 phylum
|
||||
131567 no rank 89593 subphylum
|
||||
131567 no rank 7742 no rank
|
||||
131567 no rank 7776 superclass
|
||||
131567 no rank 117570 no rank
|
||||
131567 no rank 117571 no rank
|
||||
131567 no rank 8287 no rank
|
||||
131567 no rank 32523 no rank
|
||||
131567 no rank 32524 no rank
|
||||
131567 no rank 40674 class
|
||||
131567 no rank 32525 no rank
|
||||
131567 no rank 9347 no rank
|
||||
131567 no rank 314146 superorder
|
||||
131567 no rank 9443 order
|
||||
131567 no rank 376913 suborder
|
||||
131567 no rank 314293 infraorder
|
||||
131567 no rank 9526 parvorder
|
||||
131567 no rank 314295 superfamily
|
||||
131567 no rank 9604 family
|
||||
131567 no rank 207598 no rank
|
||||
131567 no rank 9605 genus
|
||||
131567 no rank 9606 species
|
||||
131567 no rank 63221 subspecies
|
||||
207598 no rank 9605 genus
|
||||
207598 no rank 9606 species
|
||||
207598 no rank 63221 subspecies
|
||||
314146 superorder 9443 order
|
||||
314146 superorder 376913 suborder
|
||||
314146 superorder 314293 infraorder
|
||||
314146 superorder 9526 parvorder
|
||||
314146 superorder 314295 superfamily
|
||||
314146 superorder 9604 family
|
||||
314146 superorder 207598 no rank
|
||||
314146 superorder 9605 genus
|
||||
314146 superorder 9606 species
|
||||
314146 superorder 63221 subspecies
|
||||
314293 infraorder 9526 parvorder
|
||||
314293 infraorder 314295 superfamily
|
||||
314293 infraorder 9604 family
|
||||
314293 infraorder 207598 no rank
|
||||
314293 infraorder 9605 genus
|
||||
314293 infraorder 9606 species
|
||||
314293 infraorder 63221 subspecies
|
||||
314295 superfamily 9604 family
|
||||
314295 superfamily 207598 no rank
|
||||
314295 superfamily 9605 genus
|
||||
314295 superfamily 9606 species
|
||||
314295 superfamily 63221 subspecies
|
||||
376913 suborder 314293 infraorder
|
||||
376913 suborder 9526 parvorder
|
||||
376913 suborder 314295 superfamily
|
||||
376913 suborder 9604 family
|
||||
376913 suborder 207598 no rank
|
||||
376913 suborder 9605 genus
|
||||
376913 suborder 9606 species
|
||||
376913 suborder 63221 subspecies
|
||||
9606 species 63221 subspecies
|
||||
@@ -0,0 +1,72 @@
|
||||
taxid name class
|
||||
63221 Homo neanderthalensis synonym
|
||||
63221 Homo sapiens neanderthalensis scientific name
|
||||
1 all synonym
|
||||
1 root scientific name
|
||||
2759 Eucarya synonym
|
||||
2759 Eucaryotae synonym
|
||||
2759 Eukarya synonym
|
||||
2759 Eukaryota scientific name
|
||||
2759 Eukaryotae synonym
|
||||
2759 eucaryotes genbank common name
|
||||
2759 eukaryotes common name
|
||||
2759 eukaryotes blast name
|
||||
6072 Eumetazoa scientific name
|
||||
7711 Chordata scientific name
|
||||
7711 chordates genbank common name
|
||||
7711 chordates blast name
|
||||
7742 Vertebrata scientific name
|
||||
7742 vertebrates genbank common name
|
||||
7742 vertebrates blast name
|
||||
7776 Gnathostomata scientific name
|
||||
7776 jawed vertebrates genbank common name
|
||||
8287 Sarcopterygii scientific name
|
||||
9347 Eutheria scientific name
|
||||
9347 Placentalia synonym
|
||||
9347 eutherian mammals common name
|
||||
9347 placental mammals common name
|
||||
9347 placentals genbank common name
|
||||
9347 placentals blast name
|
||||
9443 Primata synonym
|
||||
9443 Primates scientific name
|
||||
9443 primate equivalent name
|
||||
9443 primates blast name
|
||||
9526 Catarrhini scientific name
|
||||
9604 Hominidae scientific name
|
||||
9604 Pongidae synonym
|
||||
9604 great apes common name
|
||||
9605 Homo scientific name
|
||||
32523 Tetrapoda scientific name
|
||||
32523 tetrapods genbank common name
|
||||
32524 Amniota scientific name
|
||||
32524 amniotes genbank common name
|
||||
32525 Theria scientific name
|
||||
33154 Fungi/Metazoa group scientific name
|
||||
33208 Animalia synonym
|
||||
33208 Metazoa scientific name
|
||||
33208 animals blast name
|
||||
33208 metazoans genbank common name
|
||||
33208 multicellular animals common name
|
||||
33213 Bilateria scientific name
|
||||
33316 Coelomata scientific name
|
||||
33511 Deuterostomia scientific name
|
||||
40674 Mammalia scientific name
|
||||
40674 mammals genbank common name
|
||||
40674 mammals blast name
|
||||
89593 Craniata scientific name
|
||||
117570 Teleostomi scientific name
|
||||
117571 Euteleostomi scientific name
|
||||
117571 bony vertebrates genbank common name
|
||||
131567 biota synonym
|
||||
131567 cellular organisms scientific name
|
||||
207598 Homo/Pan/Gorilla group scientific name
|
||||
314146 Euarchontoglires scientific name
|
||||
314293 Anthropoidea synonym
|
||||
314293 Simiiformes scientific name
|
||||
314295 Hominoidea scientific name
|
||||
314295 ape common name
|
||||
314295 apes common name
|
||||
376913 Haplorrhini scientific name
|
||||
9606 Homo sapiens scientific name
|
||||
9606 human genbank common name
|
||||
9606 man common name
|
||||
@@ -0,0 +1,103 @@
|
||||
"""
|
||||
tax3_gi2tax.py <db_name> <gi2tax_file>
|
||||
|
||||
db_name = name of the database produced by tax2_Node2Name.py scriopt
|
||||
gi2tax_file = conactenation of gi_taxid_nucl.dmp and gi_taxid_prot.dmp downloaded from NCBI Taxonomy FTP site
|
||||
|
||||
"""
|
||||
|
||||
|
||||
import pkg_resources
|
||||
pkg_resources.require('pysqlite')
|
||||
from pysqlite2 import dbapi2 as sqlite
|
||||
import sys
|
||||
import string
|
||||
|
||||
def main():
|
||||
|
||||
try:
|
||||
dbName = sys.argv[1]
|
||||
inFileGIs = sys.argv[2]
|
||||
con = sqlite.connect(dbName)
|
||||
except:
|
||||
sys.stderr.write('tax3_gi2tax.py <db_name> <gi2tax_file>: Not enough arguments of database does not exist\n')
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
cur = con.cursor()
|
||||
|
||||
try:
|
||||
cur.execute('select * from node2name limit 1')
|
||||
except:
|
||||
sys.stderr.write('Table node2name does not exist')
|
||||
sys.exit(0)
|
||||
cur.execute('drop table if exists gi2tax')
|
||||
cur.execute('create table gi2tax (gi int unsigned primary key, taxId int unsigned not null)')
|
||||
|
||||
cur.execute('drop table if exists tax')
|
||||
cur.execute('create table tax (taxId int unsigned not null, tax text)')
|
||||
cur.execute('insert into tax values(0,"superkingdom,kingdom,subkingdom,superphylum,phylum,subphylum,superclass,class,subclass,superorder,order,suborder,superfamily,family,subfamily,tribe,subtribe,genus,subgenus,species,subspecies")')
|
||||
|
||||
cur.execute('create index if not exists cId_index on node2name(cId)')
|
||||
con.commit()
|
||||
|
||||
fg = open(inFileGIs, 'r')
|
||||
|
||||
|
||||
try:
|
||||
for line in fg:
|
||||
field = string.split(line.rstrip(), '\t')
|
||||
sqlTemplate = string.Template('insert into gi2tax values($gi, $taxId)')
|
||||
sql = sqlTemplate.substitute(gi = int(field[0]), taxId = int(field[1]))
|
||||
cur.execute(sql)
|
||||
|
||||
finally:
|
||||
con.commit()
|
||||
fg.close()
|
||||
|
||||
cur.execute('select distinct taxId from gi2tax')
|
||||
|
||||
for line in cur.fetchall():
|
||||
i = 0
|
||||
taxRank = ['n' for i in range(22)] # This number depends on the length of taxRank dictionary in tax2_Node2Name.py
|
||||
|
||||
# select all parents of a given taxId
|
||||
sqlTemplate = string.Template('select * from node2name where cId = $taxId and pNumRank > 0 order by pNumRank asc')
|
||||
sql = sqlTemplate.substitute(taxId = int(line[0]))
|
||||
cur.execute(sql)
|
||||
|
||||
for item in cur.fetchall():
|
||||
taxRank[item[2]-1] = str(item[6])
|
||||
|
||||
|
||||
# select lowest ranking parent (with max pNumRank)
|
||||
sqlTemplate = string.Template('select max(pNumRank) from node2name where cId = $taxId')
|
||||
sql = sqlTemplate.substitute(taxId = int(line[0]))
|
||||
cur.execute(sql)
|
||||
row = cur.fetchone()
|
||||
|
||||
# Set the child of the lowest ranking parent as the lowest taxon for that taxId (e.g., species, subspecies etc.)
|
||||
|
||||
try:
|
||||
sqlTemplate = string.Template('select * from node2name where cId = $taxId and pNumRank = $max_pNumRank')
|
||||
sql = sqlTemplate.substitute(taxId = int(line[0]), max_pNumRank = int(row[0]))
|
||||
cur.execute(sql)
|
||||
lowestRank = cur.fetchone()
|
||||
taxRank[int(lowestRank[5])-1] = str(lowestRank[7])
|
||||
taxonomyInfo = ",".join(taxRank)
|
||||
except:
|
||||
print "The following taxId was not found in taxonomy database: ", line[0]
|
||||
pass
|
||||
|
||||
taxTemplate = string.Template('insert into tax values($taxId, "$taxInfo")')
|
||||
tax = taxTemplate.substitute(taxId = int(line[0]), taxInfo = taxonomyInfo)
|
||||
cur.execute(tax)
|
||||
|
||||
cur.execute('create index taxId_index on tax(taxId)')
|
||||
cur.execute('drop table if exists node2name')
|
||||
cur.execute('vacuum')
|
||||
con.commit()
|
||||
con.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,5 @@
|
||||
33001686 9443
|
||||
23236241 9604
|
||||
12583 9606
|
||||
410771 40674
|
||||
2286205 63221
|
||||
@@ -0,0 +1,5 @@
|
||||
33001686 9443 root Eukaryota Metazoa n n Chordata Craniata Gnathostomata Mammalia n Euarchontoglires Primates n n n n n n n n n n
|
||||
23236241 9604 root Eukaryota Metazoa n n Chordata Craniata Gnathostomata Mammalia n Euarchontoglires Primates Haplorrhini Hominoidea Hominidae n n n n n n n
|
||||
12583 9606 root Eukaryota Metazoa n n Chordata Craniata Gnathostomata Mammalia n Euarchontoglires Primates Haplorrhini Hominoidea Hominidae n n n Homo n Homo sapiens n
|
||||
410771 40674 root Eukaryota Metazoa n n Chordata Craniata Gnathostomata Mammalia n n n n n n n n n n n n n
|
||||
2286205 63221 root Eukaryota Metazoa n n Chordata Craniata Gnathostomata Mammalia n Euarchontoglires Primates Haplorrhini Hominoidea Hominidae n n n Homo n Homo sapiens Homo sapiens neanderthalensis
|
||||
Reference in New Issue
Block a user