From 29f40a0421b74ed1782e6b9fce4f063661dc38cc Mon Sep 17 00:00:00 2001 From: shenwei356 Date: Thu, 10 Nov 2016 18:38:32 +0800 Subject: [PATCH] v0.1.1 --- .gitignore | 1 + README.md | 7 +- doc/docs/download.md | 16 +- doc/docs/files/grep_result.png | Bin 7067 -> 0 bytes doc/docs/files/otu_table.csv | 6 - doc/docs/files/otu_table.gAB.csv | 6 - doc/docs/files/otu_table.gAB.t.csv | 7 - doc/docs/files/otu_table.gAB.t.r.csv | 7 - doc/docs/files/otu_table2.csv | 7 - doc/docs/files/otu_table3.csv | 7 - doc/docs/files/taxon.json.png | Bin 0 -> 64248 bytes doc/docs/tutorial.md | 52 ++++++ doc/docs/usage.md | 100 ++++++++++-- doc/mkdocs.yml | 4 +- doc/site | 2 +- taxonkit/cmd/helper.go | 2 +- taxonkit/cmd/list.go | 90 ++++++++++- taxonkit/cmd/list.go.b | 231 +++++++++++++++++++++++++++ taxonkit/cmd/root.go | 2 +- 19 files changed, 477 insertions(+), 70 deletions(-) delete mode 100644 doc/docs/files/grep_result.png delete mode 100755 doc/docs/files/otu_table.csv delete mode 100644 doc/docs/files/otu_table.gAB.csv delete mode 100644 doc/docs/files/otu_table.gAB.t.csv delete mode 100644 doc/docs/files/otu_table.gAB.t.r.csv delete mode 100644 doc/docs/files/otu_table2.csv delete mode 100644 doc/docs/files/otu_table3.csv create mode 100644 doc/docs/files/taxon.json.png create mode 100644 doc/docs/tutorial.md create mode 100644 taxonkit/cmd/list.go.b diff --git a/.gitignore b/.gitignore index d9d07e6..b473205 100755 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ benchmark/.Rhistory taxonkit/binaries* *names.dmp *nodes.dmp +*.json diff --git a/README.md b/README.md index d3e8f34..620dfe1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ -# TaxonKit - Crossplatform and Efficient NCBI Taxonomy Toolkit +# TaxonKit - Cross-platform and Efficient NCBI Taxonomy Toolkit **Documents:** [http://bioinf.shenwei.me/taxonkit](http://bioinf.shenwei.me/taxonkit) -([**Usage**](http://bioinf.shenwei.me/taxonkit/usage/)) +([**Usage**](http://bioinf.shenwei.me/taxonkit/usage/), +[**Tutorial**](http://bioinf.shenwei.me/taxonkit/tutorial/)) **Source code:** [https://github.com/shenwei356/taxonkit](https://github.com/shenwei356/taxonkit) [![GitHub stars](https://img.shields.io/github/stars/shenwei356/taxonkit.svg?style=social&label=Star&?maxAge=2592000)](https://github.com/shenwei356/taxonkit) @@ -20,7 +21,7 @@ Go to [Download Page](http://bioinf.shenwei.me/taxonkit/download) for more download options and changelogs. -`taxonkit` is implemented in [Golang](https://golang.org/) programming language, +`TaxonKit` is implemented in [Go](https://golang.org/) programming language, executable binary files **for most popular operating systems** are freely available in [release](https://github.com/shenwei356/taxonkit/releases) page. diff --git a/doc/docs/download.md b/doc/docs/download.md index b867b6e..166ae89 100644 --- a/doc/docs/download.md +++ b/doc/docs/download.md @@ -1,15 +1,17 @@ # Download -`taxonkit` is implemented in [Golang](https://golang.org/) programming language, +`TaxonKit` is implemented in [Go](https://golang.org/) programming language, executable binary files **for most popular operating system** are freely available in [release](https://github.com/shenwei356/taxonkit/releases) page. ## Current Version -[taxonkit v0.1](https://github.com/shenwei356/taxonkit/releases/tag/v0.1) -[![Github Releases (by Release)](https://img.shields.io/github/downloads/shenwei356/taxonkit/v0.1/total.svg)](https://github.com/shenwei356/taxonkit/releases/tag/v0.1) +[TaxonKit v0.1.1](https://github.com/shenwei356/taxonkit/releases/tag/v0.1.1) +[![Github Releases (by Release)](https://img.shields.io/github/downloads/shenwei356/taxonkit/v0.1.1/total.svg)](https://github.com/shenwei356/taxonkit/releases/tag/v0.1.1) -- first release +- add feature of `taxonkit list`, users can choose output in readable JSON + format by flag `--json` so the taxonomy tree could be collapse and + uncollapse in modern text editor. Links: @@ -33,7 +35,7 @@ Links: [Download Page](https://github.com/shenwei356/taxonkit/releases) -`taxonkit` is implemented in [Golang](https://golang.org/) programming language, +`TaxonKit` is implemented in [Go](https://golang.org/) programming language, executable binary files **for most popular operating systems** are freely available in [release](https://github.com/shenwei356/taxonkit/releases) page. @@ -61,7 +63,9 @@ For Go developer, just one command: ## Previous Versions - +- [TaxonKit v0.1](https://github.com/shenwei356/taxonkit/releases/tag/v0.1) +[![Github Releases (by Release)](https://img.shields.io/github/downloads/shenwei356/taxonkit/v0.1/total.svg)](https://github.com/shenwei356/taxonkit/releases/tag/v0.1) + - first release
diff --git a/doc/docs/files/grep_result.png b/doc/docs/files/grep_result.png deleted file mode 100644 index da2acade9d4bd32cafbefbf54dbb2affd88e6d3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7067 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 diff --git a/doc/docs/files/otu_table.csv b/doc/docs/files/otu_table.csv deleted file mode 100755 index 981cd84..0000000 --- a/doc/docs/files/otu_table.csv +++ /dev/null @@ -1,6 +0,0 @@ -Taxonomy,A.1,A.2,A.3,B.1,B.2,B.3,C.1,C.2,C.3 -Proteobacteria,.13,.29,.13,.16,.13,.22,.30,.23,.21 -Firmicutes,.42,.06,.49,.41,.55,.41,.32,.38,.66 -Bacteroidetes,.19,.62,.12,.33,.16,.29,.34,.35,.09 -Deferribacteres,.17,.00,.24,.01,.01,.01,.01,.01,.02 -Tenericutes,.00,.00,.00,.01,.03,.02,.00,.00,.00 diff --git a/doc/docs/files/otu_table.gAB.csv b/doc/docs/files/otu_table.gAB.csv deleted file mode 100644 index 608df9a..0000000 --- a/doc/docs/files/otu_table.gAB.csv +++ /dev/null @@ -1,6 +0,0 @@ -Taxonomy,A.1,A.2,A.3,B.1,B.2,B.3 -Proteobacteria,.13,.29,.13,.16,.13,.22 -Firmicutes,.42,.06,.49,.41,.55,.41 -Bacteroidetes,.19,.62,.12,.33,.16,.29 -Deferribacteres,.17,.00,.24,.01,.01,.01 -Tenericutes,.00,.00,.00,.01,.03,.02 diff --git a/doc/docs/files/otu_table.gAB.t.csv b/doc/docs/files/otu_table.gAB.t.csv deleted file mode 100644 index bf8fe0d..0000000 --- a/doc/docs/files/otu_table.gAB.t.csv +++ /dev/null @@ -1,7 +0,0 @@ -Taxonomy,Proteobacteria,Firmicutes,Bacteroidetes,Deferribacteres,Tenericutes -A.1,.13,.42,.19,.17,.00 -A.2,.29,.06,.62,.00,.00 -A.3,.13,.49,.12,.24,.00 -B.1,.16,.41,.33,.01,.01 -B.2,.13,.55,.16,.01,.03 -B.3,.22,.41,.29,.01,.02 diff --git a/doc/docs/files/otu_table.gAB.t.r.csv b/doc/docs/files/otu_table.gAB.t.r.csv deleted file mode 100644 index a9106d7..0000000 --- a/doc/docs/files/otu_table.gAB.t.r.csv +++ /dev/null @@ -1,7 +0,0 @@ -sample,Proteobacteria,Firmicutes,Bacteroidetes,Deferribacteres,Tenericutes -A.1,.13,.42,.19,.17,.00 -A.2,.29,.06,.62,.00,.00 -A.3,.13,.49,.12,.24,.00 -B.1,.16,.41,.33,.01,.01 -B.2,.13,.55,.16,.01,.03 -B.3,.22,.41,.29,.01,.02 diff --git a/doc/docs/files/otu_table2.csv b/doc/docs/files/otu_table2.csv deleted file mode 100644 index 4daaefe..0000000 --- a/doc/docs/files/otu_table2.csv +++ /dev/null @@ -1,7 +0,0 @@ -sample,Proteobacteria,Firmicutes,Bacteroidetes,Deferribacteres,Tenericutes,group -A.1,.13,.42,.19,.17,.00,A -A.2,.29,.06,.62,.00,.00,A -A.3,.13,.49,.12,.24,.00,A -B.1,.16,.41,.33,.01,.01,B -B.2,.13,.55,.16,.01,.03,B -B.3,.22,.41,.29,.01,.02,B diff --git a/doc/docs/files/otu_table3.csv b/doc/docs/files/otu_table3.csv deleted file mode 100644 index 50d1aad..0000000 --- a/doc/docs/files/otu_table3.csv +++ /dev/null @@ -1,7 +0,0 @@ -sample,Proteobacteria,Firmicutes,Bacteroidetes,Deferribacteres,Tenericutes,group -A.1,.13,.42,.19,.17,.00,Ctrl -A.2,.29,.06,.62,.00,.00,Ctrl -A.3,.13,.49,.12,.24,.00,Ctrl -B.1,.16,.41,.33,.01,.01,Treatment -B.2,.13,.55,.16,.01,.03,Treatment -B.3,.22,.41,.29,.01,.02,Treatment diff --git a/doc/docs/files/taxon.json.png b/doc/docs/files/taxon.json.png new file mode 100644 index 0000000000000000000000000000000000000000..b21be723d791f627b4e06cc618f7506204b43cb1 GIT binary patch literal 64248 zcmZs?1yozzvpyV(mm)0%in~jSyBBvU4k=LF-3cx3?%LvB9EzlZySr;~mjno3`o6z= z*S-Jmu9bvy!pYuy=FAy+=Gl?zs&d%RNuC1$0Bi;McbWjeGfTu<8siz_8xEkF9^wzO zo0Nh!1_s8`hT1yf6w_H=-wgo3>HhmhN@c|%1puf33hyMfy>pIoy(C`u!GA#f{Q4$N z)&+clngpmwJ+I7bC%UbbIkWU$spOT2f%iFqqQK)!E2S5*ThSWkuaIroA{l!1m{`n^ zHD2x?Goc$Tt*lX^W4OA-BA=|^L$P*uEv+nXZ`!%rg(($v4ATSP4+%emkt7qu(EHw2 z9ARZWJj>0$Ku1}^CVn^Jz88Pi7(|u3aqWqUhqBKh5T*h5hJRH96dn>BP zj8bR%_9G480H0FiV!*}2Nf)_}2QiSc3;_TD>J!k+?$_2XuLs`Pcj9&H{7kSRFN=RV zgyX`Gstf4fKnHKYafDZsvxz64swSeGOnS1w`k``^H~kz{<-x}%97Ptgy{4mdS}zf=b9uE0S_Qtidf&? z)8Xbd;QMm2U|DwG^Zjy3PjZ$5F?cQd6G{7JYCEbjG}1{73cDSeVOjji{t?#jWFpXy z^Ib<^QptLdWeIMnIQY7>{wNtA@d=Q)N7vHy6n68WKjA~+#0XPn4Wc-k&mwwm@Hvey z61DVOCU7_wH&LieF%J9)m$M7t?-U%J**YOI>1e$8t>%U6eP7c76cgtD(37Pv=?@q; zTDv|8-h>ioAMm!wk9#2U&i5&jxf-=h4crM(h-@_V>yT~Es_1{|S zGq;5AabnJj*!2ZIQ$;ug7b+iyB=5mt*RzlN(4A|R0w&pVg{(mv@mI3S*<@{g$Iyr! z++N|97kdKw9-X%sYt5xJ%yke*SxrS4(mK+a5nWC7me`kZ)j|d_%Wlfnvs6Jt$XcVV z67in6`|Oqy<(nf#{R-zIt1mfZZLqLraMLZ2fRRgbuA6OVdmiikJ3K>Vxy;#Tr~sow z@hsM-d#2RPdfUflW53&ngzpv$}qk}E%htlaaU3@f{m$D-5 zm^jkf8-9L`k1MZ$Y8IUI77n+( zOXAW)w-@8@(LPg=|3Exe>Z3G$6-o8Yf+{i%NzFup!kEk|#_&(IfrF0Fcd0E~$+eXX z9S>ku6ZoDnJqTQX`TaQ{Nc_VjitiKbw1Fjs%-YuNwiA)B7SWW$;CXM?A&p}&P+ur_IE35a|-4p0fyOBj{HL$SflyQxAB92Rvm zS~a{ryR{8muE&1L;<`&L-GV>%Xf@ahFy2PE#4F1S_+SUw2{b^1MIXY&4BpNser}bi zU46Q!i0_Jp+7I9{2F?f9)_(0;eb_XwJk)MfQr~RUT?=pyf_GL9tlrHFTg3Y}`G%G8 zM%r-*T#Y3&XF-!55PlOoHF*-b=|YDJpb$een#q} zr0_eXeD`VHsvF-cur~14Cn7~)9-Be-(IYTqn#T$ixEmH1Eej*!!O!SgFz>U#|Bg@ zFUDl-i72BF@2TX8ehvtrNaCSzK7Wyk@tF$4>@_)qr4_lxm5wMLO5H2XzNK4F0=#a; zpBfB^|9*ah8m9d3PZ*ZaKzJ z?|e9~+TrHraCxw5|(~H51Yki3#nIQZvGeJS) zS)!VEhnm8!PwLO%C9dc3Ce_=QOx3h)*l{~NZ2TO{=8~H0xoaEKBPwL%_@Z8cDOetR z;s40ZO^qKi8ASD=veNs5z(=%p!Dm5XJ3%`_-~+ST%9$5K&j9)1Vz`Jkzhew=dv;Ot z_EsS=Pe?rL&AuS(Y>V`(QX8h)5n=Dgtgw177rae8e1uXbLXTs(R6d$?fE98#HGM?q zghq>)BF5Nn#4}r(DKmA}lnh1YD5jE04jNUE#C%aG?P~bDIRVXc*6Z%>P z2@wBG&1z%HD|E6$wNSomZu^N;c+XLnsr`H@zsVk`O^BGO4hd%8j{=YrhC%C)LwIlj zA^wP?4V-7jUM$Rg2``aLLLD_LztSr@oBh>-WXv;ZOQ%APycXy9-{yYdkJ?tn{OU73 zmuW?(I)@K2L-2jvxjs!)ECphFB81UF9_@b4mRgo{oXI4no{*qO`Vx|2W*TYj7so&X z#lL}_7FQp`;lusxPA4xP@xk@1o=9AV5t3Lg#G?kV-!mx*+wglwhvSMbc$WE{ z)JnA^|1+mKtwI`y+cqdIXcO}*K5dsGoBkO#2hGQ=f)_ZF399q*{YBmImz!x29}dY+ z6zNU$M7bq=eblp6IU(wErQgBWG{GcI2n;waC%qF1!`}?~dG9v<#fi1_J@84*e=nA#V z*B4Ob?rHmAr(sI&Ehnv1f8LdrH_< z0?3$3x4VCp`d?KaqX2TgHy3FjdDe8r-SkeATR8tU3|T2l^o+#=gVBMxR1sot-3&hs zhs%xSs8P!O1aRi3A5OYalz?HC^Fvz=Aq`z}tyrOYu`f{f*?vk#wzy~tDP(}#)%_JO zo||_r_zmM4bYvjhQy|}Pd!r1(q_WeSJjq^J$`C!j{2+^o3Mkky2b_tn- zdjm*odTMausT_#_0D+l0N>z3NM(9P8q?U2}+oMShO3ikR{l=@UG0VUzgc)^sulAa{ zEm5NR-b9yJ??tU~Q-6fkU}C~b69rYILp!cs53b{(wBcvB%l&3nY#1Y)Go5joSWIGPQ+uJs@{Gyi= zn#fz`_}d^Ij2^F<(bfwePqw*N40`V^3dd`C&CZR;J4jMz(DFZT3WoWuE^L4QoIU36 z&SSqI)6 z5kHVoYP_mIr>CsSpeV0hm@)@5<^uKKTitTnxMmH+zg@mt&0CA0D8yff#? zD5v^9@cT`Ma}~bny045D$-mq6YO$SFpz&EZdBQ9`h=I{q@cRV*s&7$c zTi*Bd?`oen<6cIr%>f94UD;1OsNp!G<++(Xg!Y&)7%33r{y*EU;z zAMh-VTU%SNJP82P^q1)tB}k&qyMG{-OUt%s%h3GzShY$gw0s8;!|GZ(Me4-sfcCTX zwTJOgC;G1l*M!IZhU?`!q8zUK=zM;%G;T8bEUv#Hd}(p!#b>HC^f6?NuUIKRsWB!o z5gCRQ;2$5*t&^7_gYef0CTP+n)t~C$vZ7j;VocuFr6vsUE)NUc+cHW*2 zHS@u(%CQtwC!BpY_zU6eP3?E8lor}?BW_7HKaTCy4Q5sDGfrLR^vWcs2_LgV)5{Ck zs!oII-=gfJBMbrMQ?k-ff5?^qPHQikAaYH}!EM^ZkhVIZ<+~|$!Z50crVs2tf4>n} z*b!IV=C^)Bc(*xDr{=oSZVb0zVZ!1jO$nvOFyoz{6eUu8CF*i87$qCL+pADh%Bg1~sza4)&U+&RAVqm> zJe#rSg}SV_+bMzh9?=s`0)AuWznG@p>A#uNyUc%rzx*cf{$bl`3Ib%E?(*;FJzhu* zoQp;;iq`B=BO~kD9jtx7$WPVED#s<)bym53u6>>aLI=B>S}6=IMPZ|&s&#nun`>kZ zC5JQGcX=%I&s{i3$ugWhdImVj_qm&Qpv1P{O=-^=ZjxtYj>W`9l@9yWC;1z)>;B^oevtFrq&Xn z@D5MQo%;!sQf?x$ByPYD+bl8>6Jwv->sqS;IJf^7SnsmhMLjW~paVUuw1cyJGh6=} z6#K+tbThrzX7vW(F+-Za_ff8U&tJ6RVC(KB>H_Wqla^;)ue|OTnsDFnR2{Nvo3Hje~oUxkfuIQ4aH-h1DbY>IgPzqI!->S@n8&-tXaiJ{^u+)s z*Y>Nc__&;+N0~oh(R(5bTX|5Qj%;SmS0=`EZ1O)=POG>2I9W5pM13{-%?1n;Dr&>7 ziYm0@s-6egEhHT8%k`;``)#+$!^n+XWN$Xb?|^Kv5l*7|m+0L&Dw*_#!Urpyfzfi` z6`0rWePg^*9R$_&OOW0>%veF*GYghzSil@UM15seQP4Nfd`4zuRPs)kv};0EDQ)aL zzOj_)%VqE_xz?{bTRZk4`Faea`GlF30%D?jCFfsyA; zMYZ_pYse_>2&TfcCy7?O@Q|ZTw2|^ve@;SCntQ!_j3>pWn($o|`h4UjvJJYpi+tzT z;cfbB??_A&Rb3X<%1_lb57o;ayLiIC9i|qF0}|Mg7cd{Jwy0qvCj_5!}YOT`dS_nr;tXKfxHDsi`m`P zJIX>SF_}-{4QGhDwv&~601>R>$_8#<%RF~9VzT_1jJEzfnlvk*qtHM$`Dg|*I(%2- z1HYtQi=n|$$*_g;63__;3DD8)RO2};<{Ji@2Ly)+WoXgw2PKT<<08c|i)3?e9d=+! zZ!%mU1#Mmm@FG(IR0nvPD7)&THVtq(n5)J0?`DCb0$hPa4_g^S-Yl^v;95#^Nhg6bI?@$m2Efbd|GCKoQ_xkhvYJ zt*2GLE%q?Jp_GuU(k^{D|8bW`apqP^tT33P-!{|2BR9K16rbISoqRdrAKMP}>v56oNY1oKhUGUxrdSposAv{op!-JVo2X*;WG4&1!8~#d*~;aZJ&;?WcUpme+Z)%--wxL38`Y zM-v?YSRKC)>%5$T_Q6jdni!nj31V{vtdlqi{xFf_TUtPC*&TN!%FU+IO2kwr+;o(e zvdT&=I<^HBY6JZo2cwRJK5cF9cWt4@E~3TwQ`yY4>@kQ1=rB0vyj`$j1KnF!h0@vi zzQn#DzP7Ne@Y`+|W0$Mvn(FpU{Ey;>*RTtevFo^C^#dObWlg_jZyB4O6uq$Kssk9O zCzk(>5qT{WpTDXr{Tgso_GvgN9@}EjySS)7RUBtS9h}CiECR-J5z(REcoGPWtK4$= z5q~=M%C@@pq-Tq%|8^wTc6lXlMbr$HF!A$KNbc8bo11@=kcLs=VAr$;Hj>cZ!LEAdPD_>$k74VV~2hHrtV=Fgbs>)96|-x94HQd4*1KTnIc6hTVMLZNCQCqDO%DDu{Hpq-g*GD*@u~fObCw zTmXZ2+{-&HgD!yGB%IJZp;D%He~#MLl4gx9PWOWdiS}l-445I2+eMVc$cr&mG7)#} z7-0ujA;Y9PU||(~!jy?iau_Pc3y1XniON*Kc$wL*exDKpBGfnGCc@{O<_2-%lj@r+ zoa_fzQVso7_S<}ZNA%?)(to?fhRa{2#JuUY+O}P9ebvVeFKJ5};pnr@e-k z|Cu-w&3bj8`L6GwlGBRv77RD8rh`VsW+@~PrE96`+GlPF!yjUNy0nyP9Zcf-G{2Y` zvSTXz!}wu8zQ}#;>XsJW#!JKPT$*+CJY5Y6dPVue^|)SMFl1|%tnmU^ymW^C`I@7-eLF@95nB&X7R44Zb? zVs9Z2o0mY#*CN&P=|Adn?IwY$orkwvhTEV>daN#+IZXDX+WABzoYAPoSW?x|M-S-?FU#%c?0v zo2)wW&9?K z20x0GCqws`Q@~AWPVX;(nxfY!h3%b8Pf{=-Vb<9PQd?58<830i(8D1d0SC&DRZqjY zlvU6H%_8^X@Bj#fSei$5?{ov!CqC$0>IK?RiZvm_^3dzMV?|=Vxd{ZERo-A|Fpy67 z6H{Wn%bx2n!^a;l!1ng99+Sd}`hm9*)Yh9QJ3!tR}OCb|0|cz6K}U zNfo`+70ep!-02dpX)ASnECavQrG$TxMH*+xcQw3+U%_g718CR{8Vl>|R&@FD8vWd^ zwHJ2F(NEJoQ^2|Y>nYw_b}nwqPD7Aw5aaO4a`HiidBr!{Lo1`eVVf~repiDz3-Ko5 z$IjjLN4wK2g#Y%QG|IXl?I>C~LW{Duej;cTog+6CpJ z#)56y_NG;Q`?YMs(HZ+aG;D3(J2%CR`ww#)m$HhMh9f$nc3hl~E z$#bu{JI%SBF{Om9|0^Tn#Rh2)Mff7x|*J<|`*>v#;{8~yx8yw}Oo6fGN zN#HCg)xzO;g)WBL*eUm}m0wrGz~O*i5Xmk9>~V?TkV^-$f7~Ml62y{dG+O9PrIp+K zKG5;k*Xw>c)dov?-%g-Jgo5gI{+(h6G|T)nsjFt3uo!&-ETT035{|*dXvJ9Z8#e`c zH0CNU)S$#shxX}URHKArfN09QO|#xPY1$9~xG5|}kv#^EO`^bpPuy$kv#z2JPC?5J z6;0zZYDMIMroCPY3?SVv4?`q7pd#NSswScxki2+rj0Qtr{fi-2GQbemiy>R-f|izD zOA{Y%teg_~?lqUr!A37PZ?4whAj=L5VbFU>B#qC1aRIcAI}Ok%RvjBxk4ehPJO&_a zoP*Q!Pc#Z$)*2m7$4`Oj@3{amESJ_AY3)og3?*1JW|u8vyPm^{mrkcBmGYm*k&;Zy zZlx5ke)+@Dv~SXXgoZICvyUvMn+yX0Il>8^aW|xVv;*mKk-s*7aacYDylu$b5L66) zwfXFr8Ss|9Q^6$1jk7^x1WE1BCOM}F-;dQFp4T(ei`yW=Hx>seU?j6x_Qxv`f5)>2+3=9-)V9!>Pgc6k` zXd=8N^K9~G>V~~P+4v2AJ6vc+C#`!wydx1kv#G0{gvg89ydS>XAi694N;bv~E(+Nj zn3B!+Irk>2cbP<9$9I`uhNj-dALlw3MDpgWt%v#QJ)hN;T*!17SGoW;^BhW8DlBFD zkPTfRCztm6od?-ik6`WgI$5ftj4vrm8Mp+sYhrm*3VwAukPqzzWj@=> z&-J^o%$O>>ukF8NUJpV5%BkSG_fGzK$)X~Hd)T<;9S5NNJl}P>y{d3}Db?H?2bggE zc(C1RoCAwK+;R8WT%BBr;8aW?^P5S=4+K5fs&3EDax z*PEc-3x~|3PVV2Y$eF*ipH||(%LEhb)u9!AV30_&-A_{^W~ylDj%s&dvFfcv7bPl= zN+)~sFcC`G#F~4U=+k81Rrq>1$Mfa3MbUA66m5AXZT`Yuy>;zaG#KKl`ZU-Q;`!3T zFvLA+IJ(^AS}N;ua+s1-iI79Z!!bK!hW3eOU=HIIk7j#B{aZ8Wbv8tZu!C;IV!`S5 zSWH}j6-0Y2UQWh+6MX_JIC{|*8*1Wdo9vSdbWop)JCQ_2m-C+2>b_cXzW9~RyZPhi zVmU^hpL74nA-_c)^($&7yXR5aBFOZ{6g!Or5S=*8=!;h#O#*J5rYX#4OR1ZPZnW0J zi{0Z09r#Z6Ito?$CHFsw!N3f5o9&*A*vMLyu-{uQ#|B9Mmqz$=FYA#JiH3yfK(&WAJm97|{(Jn4l#3hw zj)~!g@UJ|nq-u&SRe4!#W^R|HO;|~+g7 z_bL8KqYMd482uNi@XEU@E~W(YU2ctH$t7I0^w0S>cZu7_=mogX?aK&v??;Q~7!-Z@ z-$2FG6wBXm{v-|S%j%atd_b4jx@Bghm;;H`k!jsxeIYY@yoRgt$_VQ|BO0#?KO;tHrjw1}@tK}Vdv|j4T8LIs_#O!hD4uS#=uwIV z-NH&1#2s`cl7YShJS#EtgkMXBoQkD}@~Unr7g^M|xGkdHYbI<@I040fkl*q! zR?eKys0UEj;d!1cEdNtT#kw(ETg?@^6Z>o9I1V3q2Y-mu1(GoMGGk`!bAp99a7I|b zG4zxd`qYc|=)rM4AG-!8OM3W5Dkkz_-Y)l6XgWxbk=~Dw&^0;h9v?jR@dd zdKg*+j_$OpF?QyoHXM}-2UEd^6$Jpu5N~(oMJe(bK8xW~c2E)^{gw&Z8>)oKK zZ7U=Hb2ZDs#)3B#LH{?7Ks)q{Ewq?UpKPjNvn}Gd`<5&#=bAmTeH=$DreCl^3R>^%Ksk9WoN}GU!7l zZQIC;ah#e!PE6$Pl)U4EN*hQzSaPO#+0RSoHH!da`Nz@EiIg!e>qr3lj5g=_!|VpD z>QN`B6ca#f!Tu@dCMuhU zO~P*~->%hX*FMlfy5TRAOY^B;aw2dPje_OS?gCi99Zhw-Swl8p(9v??8k_Y6_2)~Z zTK0&*@pOhgr%(r@r=Jt4x<$+mft-(s6~jifSVWN(oAB(4vv)vr14R0SXd-JNHo2hI zqN5e`Za-|7`n^j%i;6^Pyt_w|#@EyeweBtHdgLj##AyG_Yx#Fx#jdMutDy$mWAP!(cX?le&3-Q* zEfP?-KlDXDpke=h1|rMawsBv%|N2mwyB$5tcs#icQiM@Gx#AZ-3p|=O#SaC%78IX* zfK)?q8e~=6x?p29JWWo65R7X^g{FvW>Y)mZWBRKXicME194WTcD-vEq5Q8?Y3z>d3 z1sYkk3?2*Ew2KRcimqxtt1Wm#LE&rPNQR*KMOg*_LIt_`IsG<32|govQ4Ct_p~Q3J zvq-Z)F7xWUW2e|>D8Aa>i+URM0g>NqL~yi=!HOP+Vqo~&TJQ8zPi|gGl&1x%SA@DF zudw~CA|jyVMsxtchtroYPXcHg8ne!CkMDk$kc<3!h{DMqNRFYj?qDdz9e@Zabj2ii z3d)Ou_l0F9t= zYUpHU{(l!z|5ZG(PllD$lZL*JwIvMF&^8`norzd6!d@9ab-Mt5-j1d_-uyoiR!#^N z4IlX4-m&lRYi0@gSIFv`eU?p~H)b>NX%Yk;99@yj3m95|*RWsD@``DO>ltDxX~pe3 zpaR1SnS{^01JQ0AmV6b0>zKwJv|)W{jV5n2s~&VlXRuUQ!itaHoqSQKGo_Ih|JKFu zq?t?yLa`x|V^(zRyirp9l%p}_sloYW4M>JJf*f>`=AZb@1)2_rT^6g25so}j%2##94o4#0E$g9=m;AQ{WD}YjIc~b321ukq}r^BL^+|E2Eu3XU<^VM;7a0{ znSVXT^DyNUu<7%XtLT&@gYZvZaJVYVaZBdS{zd9khiMQ@G}5#8#d*m80(HUv6j&F) zS4^n1Kl@F<%p+}X8%6F~L;IvSUYBqSXcuP`6M7!k(NqvI&e2#ho7fX zKTm!8|5#5rGH0WYlUR%QhS6Xi^?TfJRCKnEd_K6Mx!s97-OiOD9MFWIH=X{J}LfnHK zhnPfso07%~PxKT*%>}WCVzF-Z5?))|{%%*DJGIahk#slf*8K;5b26co@3PhmG<#b) zI+&OH+)0doe@>#yKqtSJw;t0Uvchv{=zyczc@GJH+TRvO%NKr!C()({`F+Kmj{wzB z>^%r@wS~l;68&S-CVeNF>%bwcJIHxT>IHqpF}9h{jY7Up^+XLShSJdu|IS0Fa;L;Q z2t3wIWK)zfaAcn!dD*B${7q=~!MW}<_cGw`;>`97wGZuDHT|#!Z{iG*oSF}PJL}P{~Z^W`8PEHFRczedS&;FB-vJJ*MKL`Dg=vhXDJtq6FS z%GfH%mTUfOz=}HqJ?agUIpyUYH}e_g=B0_90{hfJQQ2FLvo`VX$rk)JuGa>Ee9m!> zNqt0g9Yj`R$bb@?(~~3JI30qryN&agr0F5p+=W|<5NxyQZ0e9efF>jni{_X}Q?Me; z2_o7K`)C~d!(~z%=wmxI2@D@0$Y=%4!*JJxZcbEm27JJX-3GUy1Ue_r-GCJiVmXEr(89>Xyauy&hhK6)!c_1| zB+fv3*YeJjx8)js43(w)pFS+~m}%H}2CT|V&SpQ9(@=?nZ}JQ0PfE6^jQOAUKaIt7 zoF~Pt9lo_)ss(60xBPlFSmlrrauPUx!n3tw2D^=pbDh^}pIWoSS%dIVMa|I=8CH~v zNz4O9&WD`VE?xI9twihJ#zp6gI*#QmZ&W%hKsd`|@`Y`UH!@vJmee`I^hlJ(I@g$? zTq!s?UwQ8BsmTe6P6la9v_>f?Zt8y>ramXslbLBEeb4sxMWNG7zt1@wxwGduJ+Kr( zs$&m)y9%*m=gD^rFw;rjj!v05p5bRSG88Vn`hAC)s(W$|(`jp_6;#PJy75b$n~g6? z2aEZCg295b9aEc6%{@luz&vpjL~nl_6_z+D{!~se@etk)1ZZs|WK-I6eX~&W;wL^X z$~$58lyT@6LF&lHFR%ne1#g*XVcK|!2VVTCEAm72HKn}pU8M8@fd$!M58jaZhK42M zKswyLrfqvU^5|c-U00X80ZA^;Tf_#DL=dlkqHacei0%;n*>&!gHO2MxpYax4lbV!D zfw(P=^$j+ESk1VJk$p4z>d+AtltzU>1INVxJuAD9l{;XzmR-2!c?K;?fwi36e*L|_ zR0u$7&O)nm?MV&Ftg?PIn=HA~_L+RdD1%<=$YiduVl5;GMe*! z{z%;Zopv~;&dR?3T*6(u6asO}sK{9p+@lIU%oJLj7>g%As|D3E@x&ykiHq|sOO9uI zk@+5V4ih5OvGmD+39xP;n

yKc*_%+^oS+Iv-Fp?RfWXpDV3O70(I#r@ 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 literal 0 HcmV?d00001 diff --git a/doc/docs/tutorial.md b/doc/docs/tutorial.md new file mode 100644 index 0000000..940abc1 --- /dev/null +++ b/doc/docs/tutorial.md @@ -0,0 +1,52 @@ +# Tutorial + +## Extract all sequences of certen taxons from the nr database + +### Dataset + +- [prot.accession2taxid.gz](ftp://ftp.ncbi.nih.gov/pub/taxonomy/accession2taxid/prot.accession2taxid.gz) + +### Steps + +Taking bacteria for example. + +1. Getting all taxids of bacteria (taxid 2): + + $ taxonkit list --nodes nodes.dmp --ids 2 --indent "" > bacteria.taxid.txt + + It takes only 2.5s! Number of taxids: + + $ wc -l bacteria.taxid.txt + 454591 bacteria.taxid.txt + +2. Extacting accessions with [csvtk](http://bioinf.shenwei.me/csvtk/download/): + + $ csvtk -t grep -f taxid -P bacteria.taxid.txt prot.accession2taxid.gz | csvtk -t cut -f accession.version > bacteria.taxid.acc.txt + +3. Extracting nr sequences: + + $ blastdbcmd -db nr -entry all -outfmt "%a\t%T" | \ + csvtk -t grep -f 2 -P bacteria.taxid.acc.txt | \ + csvtk -t cut -f 1 | \ + blastdbcmd -db nr -entry_batch - -out bacteria.fa + +

+ + diff --git a/doc/docs/usage.md b/doc/docs/usage.md index 5e52635..9ebe448 100644 --- a/doc/docs/usage.md +++ b/doc/docs/usage.md @@ -14,7 +14,7 @@ Usage ``` TaxonKit - NCBI Taxonomy Toolkit -Version: 0.1 +Version: 0.1.1 Author: Wei Shen @@ -45,7 +45,7 @@ Use "TaxonKit [command] --help" for more information about a command. Usage ``` -list taxon tree of given taxon IDs. +list taxon tree of given taxon IDs Usage: taxonkit list [flags] @@ -53,9 +53,9 @@ Usage: Flags: --ids string taxon ID(s), multiple IDs should be seperated by comma (default "1") --indent string indent (default " ") + --json output in JSON format. you can save the result in file with suffix ".json" and open with modern text editor --names string names.dmp file, when it given taxid will be followed by its scientific name --nodes string nodes.dmp file (default "nodes.dmp") - --show-rank show rank of the node ``` @@ -63,22 +63,55 @@ Examples 1. Default usage - $ taxonkit list --nodes nodes.dmp --ids 9605 + $ taxonkit list --nodes nodes.dmp --ids 9605,239934 9605 9606 63221 741158 1425170 -1. Removing indent. The list could be used to extract sequences from BLAST database with `blastdbcmd` - - $ taxonkit list --nodes nodes.dmp --ids 9605 --indent "" + 239934 + 239935 + 349741 + 512293 + 512294 + 1131822 + 1262691 + 1263034 + 1131336 + 1574264 + 1574265 + 1638783 + 1679444 + 1755639 + 1896967 + +1. Removing indent. The list could be used to extract sequences from BLAST database with `blastdbcmd` (see [tutorial](http://bioinf.shenwei.me/taxonkit/tutorial/)) + + $ taxonkit list --nodes nodes.dmp --ids 9605,239934 --indent "" 9605 9606 63221 741158 1425170 + 239934 + 239935 + 349741 + 512293 + 512294 + 1131822 + 1262691 + 1263034 + 1131336 + 1574264 + 1574265 + 1638783 + 1679444 + 1755639 + 1896967 + + **Performance:** Time and memory usage for whole taxon tree: $ # emptying the buffers cache @@ -90,13 +123,29 @@ Examples 1. Adding names - $ taxonkit list --nodes nodes.dmp --names names.dmp --ids 9605 + $ taxonkit list --nodes nodes.dmp --names names.dmp --ids 9605,239934 9605 [genus] Homo 9606 [species] Homo sapiens 63221 [subspecies] Homo sapiens neanderthalensis 741158 [subspecies] Homo sapiens ssp. Denisova 1425170 [species] Homo heidelbergensis + 239934 [genus] Akkermansia + 239935 [species] Akkermansia muciniphila + 349741 [no rank] Akkermansia muciniphila ATCC BAA-835 + 512293 [no rank] environmental samples + 512294 [species] uncultured Akkermansia sp. + 1131822 [species] uncultured Akkermansia sp. SMG25 + 1262691 [species] Akkermansia sp. CAG:344 + 1263034 [species] Akkermansia muciniphila CAG:154 + 1131336 [species] Akkermansia sp. KLE1605 + 1574264 [species] Akkermansia sp. KLE1797 + 1574265 [species] Akkermansia sp. KLE1798 + 1638783 [species] Akkermansia sp. UNK.MGS-1 + 1679444 [species] Akkermansia glycaniphila + 1755639 [species] Akkermansia sp. MC_55 + 1896967 [species] Akkermansia sp. 54_46 + **Performance:** Time and memory usage for whole taxon tree: $ # emptying the buffers cache @@ -106,8 +155,39 @@ Examples elapsed time: 9.825s peak rss: 648.65 MB - - +1. Output in JSON format, so you can easily collapse and uncollapse taxonomy tree in modern text editor. + + $ taxonkit list --nodes nodes.dmp --names names.dmp --ids 9605,239934 --json + { + "9605 [genus] Homo": { + "9606 [species] Homo sapiens": { + "63221 [subspecies] Homo sapiens neanderthalensis": {}, + "741158 [subspecies] Homo sapiens ssp. Denisova": {} + } + "1425170 [species] Homo heidelbergensis": {} + }, + "239934 [genus] Akkermansia": { + "239935 [species] Akkermansia muciniphila": { + "349741 [no rank] Akkermansia muciniphila ATCC BAA-835": {} + } + "512293 [no rank] environmental samples": { + "512294 [species] uncultured Akkermansia sp.": {}, + "1131822 [species] uncultured Akkermansia sp. SMG25": {}, + "1262691 [species] Akkermansia sp. CAG:344": {}, + "1263034 [species] Akkermansia muciniphila CAG:154": {} + } + "1131336 [species] Akkermansia sp. KLE1605": {}, + "1574264 [species] Akkermansia sp. KLE1797": {}, + "1574265 [species] Akkermansia sp. KLE1798": {}, + "1638783 [species] Akkermansia sp. UNK.MGS-1": {}, + "1679444 [species] Akkermansia glycaniphila": {}, + "1755639 [species] Akkermansia sp. MC_55": {}, + "1896967 [species] Akkermansia sp. 54_46": {} + } + } + + Snapshot of taxonomy (taxid 1) in kate: + ![taxon.json.png](files/taxon.json.png)