166 |
177 |
178 |
179 |
180 |
181 |
182 |
--------------------------------------------------------------------------------
/docs/make.bat:
--------------------------------------------------------------------------------
1 | @ECHO OFF
2 |
3 | REM Command file for Sphinx documentation
4 |
5 | if "%SPHINXBUILD%" == "" (
6 | set SPHINXBUILD=sphinx-build
7 | )
8 | set BUILDDIR=_build
9 | set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
10 | set I18NSPHINXOPTS=%SPHINXOPTS% .
11 | if NOT "%PAPER%" == "" (
12 | set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
13 | set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
14 | )
15 |
16 | if "%1" == "" goto help
17 |
18 | if "%1" == "help" (
19 | :help
20 | echo.Please use `make ^` where ^ is one of
21 | echo. html to make standalone HTML files
22 | echo. dirhtml to make HTML files named index.html in directories
23 | echo. singlehtml to make a single large HTML file
24 | echo. pickle to make pickle files
25 | echo. json to make JSON files
26 | echo. htmlhelp to make HTML files and a HTML help project
27 | echo. qthelp to make HTML files and a qthelp project
28 | echo. devhelp to make HTML files and a Devhelp project
29 | echo. epub to make an epub
30 | echo. epub3 to make an epub3
31 | echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
32 | echo. text to make text files
33 | echo. man to make manual pages
34 | echo. texinfo to make Texinfo files
35 | echo. gettext to make PO message catalogs
36 | echo. changes to make an overview over all changed/added/deprecated items
37 | echo. xml to make Docutils-native XML files
38 | echo. pseudoxml to make pseudoxml-XML files for display purposes
39 | echo. linkcheck to check all external links for integrity
40 | echo. doctest to run all doctests embedded in the documentation if enabled
41 | echo. coverage to run coverage check of the documentation if enabled
42 | echo. dummy to check syntax errors of document sources
43 | goto end
44 | )
45 |
46 | if "%1" == "clean" (
47 | for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
48 | del /q /s %BUILDDIR%\*
49 | goto end
50 | )
51 |
52 |
53 | REM Check if sphinx-build is available and fallback to Python version if any
54 | %SPHINXBUILD% 1>NUL 2>NUL
55 | if errorlevel 9009 goto sphinx_python
56 | goto sphinx_ok
57 |
58 | :sphinx_python
59 |
60 | set SPHINXBUILD=python -m sphinx.__init__
61 | %SPHINXBUILD% 2> nul
62 | if errorlevel 9009 (
63 | echo.
64 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
65 | echo.installed, then set the SPHINXBUILD environment variable to point
66 | echo.to the full path of the 'sphinx-build' executable. Alternatively you
67 | echo.may add the Sphinx directory to PATH.
68 | echo.
69 | echo.If you don't have Sphinx installed, grab it from
70 | echo.http://sphinx-doc.org/
71 | exit /b 1
72 | )
73 |
74 | :sphinx_ok
75 |
76 |
77 | if "%1" == "html" (
78 | %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
79 | if errorlevel 1 exit /b 1
80 | echo.
81 | echo.Build finished. The HTML pages are in %BUILDDIR%/html.
82 | goto end
83 | )
84 |
85 | if "%1" == "dirhtml" (
86 | %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
87 | if errorlevel 1 exit /b 1
88 | echo.
89 | echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
90 | goto end
91 | )
92 |
93 | if "%1" == "singlehtml" (
94 | %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
95 | if errorlevel 1 exit /b 1
96 | echo.
97 | echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
98 | goto end
99 | )
100 |
101 | if "%1" == "pickle" (
102 | %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
103 | if errorlevel 1 exit /b 1
104 | echo.
105 | echo.Build finished; now you can process the pickle files.
106 | goto end
107 | )
108 |
109 | if "%1" == "json" (
110 | %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
111 | if errorlevel 1 exit /b 1
112 | echo.
113 | echo.Build finished; now you can process the JSON files.
114 | goto end
115 | )
116 |
117 | if "%1" == "htmlhelp" (
118 | %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
119 | if errorlevel 1 exit /b 1
120 | echo.
121 | echo.Build finished; now you can run HTML Help Workshop with the ^
122 | .hhp project file in %BUILDDIR%/htmlhelp.
123 | goto end
124 | )
125 |
126 | if "%1" == "qthelp" (
127 | %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
128 | if errorlevel 1 exit /b 1
129 | echo.
130 | echo.Build finished; now you can run "qcollectiongenerator" with the ^
131 | .qhcp project file in %BUILDDIR%/qthelp, like this:
132 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Chorus.qhcp
133 | echo.To view the help file:
134 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Chorus.ghc
135 | goto end
136 | )
137 |
138 | if "%1" == "devhelp" (
139 | %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
140 | if errorlevel 1 exit /b 1
141 | echo.
142 | echo.Build finished.
143 | goto end
144 | )
145 |
146 | if "%1" == "epub" (
147 | %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
148 | if errorlevel 1 exit /b 1
149 | echo.
150 | echo.Build finished. The epub file is in %BUILDDIR%/epub.
151 | goto end
152 | )
153 |
154 | if "%1" == "epub3" (
155 | %SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3
156 | if errorlevel 1 exit /b 1
157 | echo.
158 | echo.Build finished. The epub3 file is in %BUILDDIR%/epub3.
159 | goto end
160 | )
161 |
162 | if "%1" == "latex" (
163 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
164 | if errorlevel 1 exit /b 1
165 | echo.
166 | echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
167 | goto end
168 | )
169 |
170 | if "%1" == "latexpdf" (
171 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
172 | cd %BUILDDIR%/latex
173 | make all-pdf
174 | cd %~dp0
175 | echo.
176 | echo.Build finished; the PDF files are in %BUILDDIR%/latex.
177 | goto end
178 | )
179 |
180 | if "%1" == "latexpdfja" (
181 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
182 | cd %BUILDDIR%/latex
183 | make all-pdf-ja
184 | cd %~dp0
185 | echo.
186 | echo.Build finished; the PDF files are in %BUILDDIR%/latex.
187 | goto end
188 | )
189 |
190 | if "%1" == "text" (
191 | %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
192 | if errorlevel 1 exit /b 1
193 | echo.
194 | echo.Build finished. The text files are in %BUILDDIR%/text.
195 | goto end
196 | )
197 |
198 | if "%1" == "man" (
199 | %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
200 | if errorlevel 1 exit /b 1
201 | echo.
202 | echo.Build finished. The manual pages are in %BUILDDIR%/man.
203 | goto end
204 | )
205 |
206 | if "%1" == "texinfo" (
207 | %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
208 | if errorlevel 1 exit /b 1
209 | echo.
210 | echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
211 | goto end
212 | )
213 |
214 | if "%1" == "gettext" (
215 | %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
216 | if errorlevel 1 exit /b 1
217 | echo.
218 | echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
219 | goto end
220 | )
221 |
222 | if "%1" == "changes" (
223 | %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
224 | if errorlevel 1 exit /b 1
225 | echo.
226 | echo.The overview file is in %BUILDDIR%/changes.
227 | goto end
228 | )
229 |
230 | if "%1" == "linkcheck" (
231 | %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
232 | if errorlevel 1 exit /b 1
233 | echo.
234 | echo.Link check complete; look for any errors in the above output ^
235 | or in %BUILDDIR%/linkcheck/output.txt.
236 | goto end
237 | )
238 |
239 | if "%1" == "doctest" (
240 | %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
241 | if errorlevel 1 exit /b 1
242 | echo.
243 | echo.Testing of doctests in the sources finished, look at the ^
244 | results in %BUILDDIR%/doctest/output.txt.
245 | goto end
246 | )
247 |
248 | if "%1" == "coverage" (
249 | %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
250 | if errorlevel 1 exit /b 1
251 | echo.
252 | echo.Testing of coverage in the sources finished, look at the ^
253 | results in %BUILDDIR%/coverage/python.txt.
254 | goto end
255 | )
256 |
257 | if "%1" == "xml" (
258 | %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
259 | if errorlevel 1 exit /b 1
260 | echo.
261 | echo.Build finished. The XML files are in %BUILDDIR%/xml.
262 | goto end
263 | )
264 |
265 | if "%1" == "pseudoxml" (
266 | %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
267 | if errorlevel 1 exit /b 1
268 | echo.
269 | echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
270 | goto end
271 | )
272 |
273 | if "%1" == "dummy" (
274 | %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy
275 | if errorlevel 1 exit /b 1
276 | echo.
277 | echo.Build finished. Dummy builder generates no files.
278 | goto end
279 | )
280 |
281 | :end
282 |
--------------------------------------------------------------------------------
/docs/_build/html/searchindex.js:
--------------------------------------------------------------------------------
1 | Search.setIndex({docnames:["functions","index","install","tutorial","videos"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["functions.rst","index.rst","install.rst","tutorial.rst","videos.rst"],objects:{},objnames:{},objtypes:{},terms:{"0ch00":3,"0ch01":3,"0ch06":3,"0ch07":3,"0ch10":3,"104m":3,"62m":3,"\u4f7f\u7528\u56fe\u5f62\u754c\u9762\u7b5b\u9009\u5df2\u8bbe\u8ba1\u7684\u63a2\u9488":4,"\u4f7f\u7528\u56fe\u5f62\u754c\u9762\u8fd0\u884cchorus2":4,"\u4f7f\u7528bioconda\u5728linux\u4e2d\u5b89\u88c5chorus2\u8f6f\u4ef6":4,"\u4f7f\u7528bioconda\u5b89\u88c5chorus2\u8f6f\u4ef6":4,"\u4f7f\u7528chorus2\u8bbe\u8ba1oligo":4,"\u4f7f\u7528chorushomo\u8bbe\u8ba1\u8fd1\u6e90\u7269\u79cd\u53ef\u7528\u63a2\u9488":4,"\u5229\u7528\u4e8c\u4ee3\u57fa\u56e0\u7ec4\u6d4b\u5e8f\u6570\u636e\u8fc7\u6ee4\u6f5c\u5728\u91cd\u590d\u5e8f\u5217":4,"\u5b89\u88c5anaconda":4,"\u5b89\u88c5windows\u5b50\u7cfb\u7edf":4,"\u89c6\u9891\u5217\u8868":4,"default":[0,2,3],"final":3,"fish\u63a2\u9488":4,"function":1,"import":3,"long":0,"new":3,"short":0,"true":0,Adding:3,DIS:0,For:[0,1,3],LTS:2,NGS:[0,3,4],The:[0,2,3],There:3,Use:1,aaaccctaaaccctaaacctctgaatccttaatccctaaatccct:3,aaatgatttgctcttgactgtacgtatgcctgccgtcttcgttga:3,aagcagatatatcgttcatcatactttatttacatggggaaacaa:3,aatactattagatgatgactaagagtaatgctagtgtatataaat:3,aatccctaaatccctaaatctttaaatcctacatccatgaatccc:3,acagccaaatcgtcccatattcaaggataaacgacccacgaatca:3,access:3,actggaagtaatattttgtcacaggaataattcggtaaatctgag:3,activ:2,add:2,adjac:0,after:[0,2,3],agatttaacccattttcatggcgcttttgtaatttcaagactttg:3,agatttagcccattttcatggcgcttttgtgatttcaagactttg:3,agatttagctcattttcatggcgattttgtgatttcaagactttg:3,agattttgcccattctcatgacgcttttgtgatttcaaaactttg:3,aggatgaaaccgtattccaaccttgcttttcctttattgattaat:3,aggtcaatacaaatcctatttcttgtggttttctttccttcactt:3,agttgtttggattttgtgaagagagcagtaaactttatggtgtaaataaaaga:3,align:0,all:[0,3],amb:3,among:3,anaconda3:2,anaconda:4,ann:3,app:2,apt:2,arabidopsi:3,archiv:2,argument:[0,2,3],assembl:3,ataacaaatgaagataaaccatccatagctaagtgaaggaaagaa:3,atccttaatccctaaatccctaaatctttaaatcctacatccatg:3,atctatatctactacaccagaatattcatacacaaataaattact:3,attttccatggacctcattaagattagctattgaaccagttaccc:3,aug:3,autoconf:2,automat:3,base:3,bcftool:[0,2],bed:[0,3],befor:3,between:[0,2,3],bigwig:3,bilibili:1,bin:[0,2,3],binari:3,bioconda:2,both:0,bothstrand:0,brows:2,bshyqovpasc:4,build:[2,3],build_3:3,bv1w54y1s7q:[3,4],bwa:[0,2,3],bwt:3,calcul:[0,2,3],can:[0,2,3],candid:3,cctcaagcttacctacaattagcataggcagagttacaagtggaa:3,ccttagggttggtttatctcaagaatcttattaattgtttggact:3,cgggtttagggaattaggtatttagggattcatggatgtaggatt:3,cgtggtcgcgtctca:[0,2,3],chang:3,channel:2,check:3,choru:[0,2,3],chorus2:[1,4],chorus_uid:[2,3],chorus_us:[2,3],chorusdraftprebuild:1,chorusgui:[1,2,3,4],chorushomo:[1,4],chorusngsfilt:[1,3],chorusngsfilter_output:0,chorusngsselect:[1,3],chorusnoref:1,choruspbgui:[1,3,4],chr00:3,chr01:3,chrom:3,chromosom:[0,2,3],click:3,clone:2,close:[0,1,4],cns:3,column:3,com:[2,3,4],combin:0,command:2,compar:3,comput:2,conda:[2,4],config:2,configur:2,conflict:0,consensu:3,consensusdiff:3,consensusprob:3,consensusscor:3,consensussit:3,conserv:[3,4],contain:[0,3],content:1,control:2,conveni:0,copi:3,count:[0,3],cover:0,cpu:[0,2,3],creat:[2,3],csv:3,ctaaacctctgaatccttaatccctaaatccctaaatctttaaat:3,cttagggttggtttatctcaagaatcttattaattgtttggactg:3,ctttatatacactagcattactcttagtcatcatctaatattaat:3,ctttatatacactagcattactcttagtcatcatctaatattatt:3,ctttatatacactagcattactcttagtcatcatctaatattgct:3,curl:2,cython3:2,data:[0,2,3,4],depth:0,descript:1,design:[0,1,2,4],desktop:2,detect:3,dev:2,differ:3,directli:3,directori:3,distanc:0,dm404:3,docker:[0,1],done:3,download:[2,3],download_fil:3,drop:0,drwxrwxr:3,dtm:[0,2,3],each:3,easili:3,ebi:3,editor:3,edu:3,end:3,enter:2,essenti:2,etc:3,etuberosum:3,etuberosum_indel_prob:3,etuberosum_jamesii_cns_prob:3,etuberosum_prob:3,exampl:[0,2,3],excel:3,exist:3,exit:[2,3],experi:3,f1rqsri3r98:4,fas:[0,2,3],fas_17mer:3,fas_al:3,fas_tmp_prob:3,fasta:[0,2,3],fasta_al:3,fasta_km:3,fasta_kmerfilt:3,fastq:[0,3],featur:2,fifth:3,file:[0,2,3],filter:[0,3,4],filtered_output:0,find:[0,4],finish:3,finsh:3,first:3,fish:[0,2,3],fold:0,folder:[0,2,3],fomula:3,forg:2,format:[0,2,3],forrest:3,forrestzhang:[2,3],found:3,four:3,friendli:0,from:[0,2,3],ftp:3,further:3,gaatgatgagtcaatctgataattcatagaatcaaatttgtatga:3,gagtgatgagtcaatccataaaggcacctgataattcatagaatcaaatttgtatta:3,gene:3,gener:[0,3],genom:[0,1,2],genomea:[0,3],genomea_chr:3,genomea_end:3,genomea_ident:3,genomea_start:3,genomeb:[0,3],genomeb_chr:3,genomeb_end:3,genomeb_ident:3,genomeb_start:3,get:2,gid:3,git:2,github:2,given:[0,2,3],gmarcai:2,gotl8qgf70x:[3,4],group:3,gui:[0,1],gzip:0,hairpin:[0,2,3],have:3,head:3,help:[2,3],here:3,high:3,home:[2,3],homo:3,homolog:[0,2,3],how:[2,3],http:[2,3,4],hybrid:[0,2,3],ident:3,illumina:[0,3],includ:[0,2,3],incompat:0,indel:3,index:[0,1,3],info:3,infom:3,initi:2,input:[0,2,3],instal:[0,1,4],its:3,jamesii:3,jamesii_indel_prob:3,jamesii_prob:3,jellyfish:[0,2,3],jellyfishfil:0,jfile:0,jiang:1,jime:1,job:3,jre:2,keep:0,kmer:[0,3],kxsnjfjjli4:4,lab:1,label:[0,2,3],last:3,launch:2,least:3,len:3,length:[0,2,3],lh3:2,libboost:2,libncurses5:2,libncursesw5:2,librari:3,line:[2,3],linux:[1,4],list:[3,4],liu:3,local:3,localhost:2,locat:3,log:3,long_sequ:0,longer:[0,2,3],look:3,lxtermin:2,maco:1,macosx:2,mai:2,major:1,make:[2,3],mani:3,manual:1,max:0,maximum:[0,2,3],maxk:0,maxquantil:0,mean:[0,3],memori:3,mer:[0,2,3],messag:[2,3],method:3,microsoft:2,min:0,mindepth:0,minimum:[0,2,3],mink:0,minkmer:0,minquantil:0,miscellan:1,mkdir:[2,3],modul:1,more:[0,3],msu:3,multipl:0,must:0,mxtlqmoy2z0:4,mzzwto6cjp:4,name:[0,3],ncurs:2,net:3,non:3,none:[0,2,3],norefprob:3,number:[0,2,3],off:2,oligo:[0,1,2,4],one:[0,2,3],onli:[0,2,3],open:[2,3],openjdk:2,opt:[0,2,3],option:[2,3],order:0,org:[1,3],origin:0,output:[0,2,3],overlap:3,own:3,pac:3,page:1,panel:2,paramet:3,path:[0,2,3],pcr:[0,2,3],per:3,perform:3,pip:2,plant:1,plantbiolog:3,playlist:[1,4],pleas:3,plo8q8tqfx5j27osukyfpd:[3,4],ploidi:[0,2,3],potato:3,potato_dm_v404_all_pm_un:3,prebuild:0,precess:3,primer3:2,primer:[0,2,3],probe:[0,1,2,4],probe_seq:3,process:[0,3],program:[2,3],project:3,pull:2,put:3,pwd:[2,3],python3:2,python:2,qp0jvztflfq:4,qualiti:3,quantil:0,r1044:3,rang:[0,2,3],rdfq54xfjeq:4,reaction:[0,2,3],read1:0,read:[0,3],reads1:0,reads2:0,reboot:2,refer:[0,1],refseq:3,region:[0,2,3],relat:[0,1,4],related_genom:0,releas:2,repeat:3,repetit:[3,4],repo:2,requir:[2,3],requirements_gui:2,respect:3,result:[0,2,3],root:[2,3],row:3,run:[1,2,4],s_lycopersicum_chromosom:3,safer:3,same:[0,3],sampl:[0,2,3],sampleproject:3,samtool:[0,2],save:[0,2,3],score:[0,3],search:[0,1,2,3],second:3,see:3,select:[0,3],selet:0,separ:0,sequenc:[0,2,3,4],set:3,setup:2,short_sequ:0,shotgun:[0,3],should:[0,2,3],show:[2,3],singlestrand:0,site:3,six:3,skel:3,skip:[0,2,3],skipdtm:[0,2,3],sl3:3,slide:[0,2,3],smaller:3,snp:3,softwar:[0,3],solanacea:3,solgenom:3,some:3,sourc:[0,3],source_genom:0,speci:[0,1,4],species1:0,species1_r1:0,species1_r2:0,species2:0,species2_r1:0,species2_r2:0,species_r1:0,species_r2:0,specif:[0,2,3],speed:0,sra:3,srr5349573:3,srr5349573_1:3,srr5349573_2:3,srr5349574:3,srr5349574_1:3,srr5349574_2:3,srr5349606:3,srr5349606_1:3,srr5349606_2:3,srr534:3,srr5658649:3,srr5658649_1:3,srr5658649_2:3,srr565:3,start:3,step:[0,2,3],store:2,strand:[0,3],sudo:2,suitabl:3,synthes:3,taaaccctaaacctctgaatccttaatccctaaatccctaaatct:3,taaatccctaaatctttaaatcctacatccatgaatccctaaata:3,tagcatttattctgaagttcttctgcttgatgattttatccttag:3,tair10_chr_al:[0,2,3],tair10_chr_all_srr5658649:3,tair10_chr_all_srr5658649_filt:3,tair10_chromosome_fil:3,tair10_genome_releas:3,taozhang:1,tar:2,target:[0,2,3],target_genom:0,tcaacactagcgaatcaagaacccttccatcctagacaactataa:3,tccctaaatctttaaatcctacatccatgaatccctaaataccta:3,tcttcgttgttgttacgcttgtcatctcatctctcaatgatatgg:3,tctttaatttacaccataaagtttactcacaaaatccaaacaact:3,temporari:0,termin:1,test:[0,3],text:[0,3],tgatgaaggtgaaagtagcatagatcatggggagttgtttggatt:3,tgatgaaggtgaaagtagcatagtgcatagatcatggggagttgtttggatt:3,than:[0,2,3],thi:[2,3],third:3,thread:[0,2,3],three:3,thu:3,tmp:[0,3],tomato:3,tomato_genom:3,total:3,ttatagttgtctaggatggaagggttcttgattcactggtgttga:3,tttcttgtgcatatttctaaattgtactgtgcaaaacttttccct:3,tttgaggtcaatacaaatcctatttcttgtggttttctttccttc:3,tttgtggaaatgtttgttctatcaatttatcttttgtgggaaaat:3,ttttcccacaaaagataaattgatagaacaaacatttccacaaag:3,tuberosum:3,turn:2,tutori:1,two:[0,3],txt:[2,3],ubuntu:1,uid:[2,3],uncompress:0,unicod:2,unit:3,unix:1,unzip:[2,3],updat:2,upgrag:2,usag:[2,3],use:[0,2,3],used:[0,2,3],user:[0,2,3],using:[0,3],valu:[0,2,3],verison:2,version:[0,1,3],vfkrykoi828:4,vhtkauk9oqi:4,via:4,video:1,vol1:3,wait:3,wanna:2,web:2,well:3,were:0,wget:[2,3],when:3,where:[0,2,3],which:0,whole:[0,2,3],wild:3,window:[0,1,3,4],without:1,work:3,wsl:[1,4],www:[3,4],x86_64:2,xming:2,xxxx:2,you:[2,3],your:[2,3],youtu:4,youtub:1,zhangtaolab:[1,2],zip:[2,3],zlib1g:2,zlibc:2,zxvf:2},titles:["Description of functions in Chorus2","Welcome to Chorus\u2019s documentation!","Install","Tutorial","Video tutorials"],titleterms:{"function":0,For:2,Use:3,all:2,anaconda:2,bilibili:[3,4],choru:1,chorus2:[0,2,3],chorusdraftprebuild:0,chorusgui:0,chorushomo:[0,3],chorusngsfilt:0,chorusngsselect:0,chorusnoref:[0,3],choruspbgui:0,close:3,depend:2,descript:0,design:3,directli:2,docker:[2,3],document:1,genom:3,gui:[2,3],indic:1,instal:[2,3],linux:2,maco:2,major:0,manual:2,miscellan:0,oligo:3,packag:2,paramet:0,plant:3,playlist:3,probe:3,recommend:2,refer:3,relat:3,run:3,snapshot:0,softwar:2,speci:3,subsystem:2,tabl:1,termin:[2,3],test:2,tutori:[3,4],ubuntu:2,unix:2,usag:0,version:2,video:[3,4],welcom:1,window:2,without:3,wsl:2,youtub:[3,4]}})
--------------------------------------------------------------------------------
/docs/best practices.rst:
--------------------------------------------------------------------------------
1 | Chorus2 best practices
2 | ====================================
3 |
4 | A guide pipeline for designing probes for Oligo-FISH in potato (*Solanum tuberosum*).
5 | #############################################################################################
6 |
7 | I. Requirements & Dependencies
8 | ------------------------------------------------
9 |
10 | 1. Chorus2 software can be run on both Unix (MacOS/Linux) and Windows (via WSL) platform, here we recommend users to operate on Linux. Our best practices are also performed on an Ubuntu 18.04 system with 8 cores and 64 GB RAM.
11 | 2. Chorus2 is written by python3, several packages are required: **Cython, numpy, pyfasta, primer3-py, pandas and pybigwig**. The GUI version of Chorus2 requires additional packages **matplotlib** and **PyQt5**.
12 | 3. Besides, several bioinformatic tools are needed in Chorus2 pipeline. **BWA** is for genome-wide alignment. **Jellyfish** is for k-mer count.
13 | 4. Genome assembly and whole genome sequencing (WGS) data are required for finding out oligos and filtering out repetitive sequences. WGS data with >5x depth are recommended for NGS filter process.
14 | 5. Finally, we have already built a recipe on bioconda, thus Chorus2 can be installed easily via conda.
15 |
16 |
17 | II. Preparation for Chorus2 pipeline
18 | ------------------------------------------------
19 |
20 | 1. Download Anaconda distribution
21 | *******************************************
22 | Anaconda is an open-source distribution that is the easiest way to perform Python/R data science and machine learning on Linux. We use Anaconda3 to install Chorus2 directly.
23 | Download the latest 64-bit Linux version of Anaconda3 distribution from the Anaconda website: https://www.anaconda.com/products/individual.
24 |
25 | .. code-block:: bash
26 |
27 | $ cd /home/zhangtaolab/Software
28 | $ wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
29 | $ sh Anaconda3-2019.10-Linux-x86_64.sh
30 | $ export PATH=$HOME/anaconda3/bin:$PATH
31 | $ conda activate
32 |
33 | After this process, software can be installed easily via conda command.
34 |
35 | **Note**: The latest version of Anaconda3 was 2019.10 when we performed the best practices. If users want to use another version of Anaconda, please take a look from the official website.
36 |
37 |
38 | 2. Install Chorus2 software
39 | *******************************************
40 | To install bioinformatic tools via conda, bioconda channels should be added.
41 |
42 | .. code-block:: bash
43 |
44 | $ conda config --add channels defaults
45 | $ conda config --add channels bioconda
46 |
47 | Then Chorus2 can be installed with conda command easily. We used conda to create an independent environment for Chorus2.
48 |
49 | .. code-block:: bash
50 |
51 | $ conda create -n chorus Chorus2
52 |
53 | After installing completed, check if Chorus2 runs well.
54 |
55 | .. code-block:: bash
56 |
57 | $ conda activate chorus
58 | $ Chorus2 -h
59 |
60 | This step will show the usage of Chorus2.
61 |
62 |
63 | 3. Download reference genome file and whole genome sequencing files
64 | ************************************************************************
65 | In this best practice, we designed oligos for potato genome. We used *Solanum tuberosum* species genome as input, which was sequenced by Potato Genome Sequence Consortium (PGSC). The reference genome file can be retrieved from the website: https://solgenomics.net/organism/Solanum_tuberosum/genome.
66 |
67 | .. code-block:: bash
68 |
69 | $ cd /home/zhangtaolab/data/chorus2_project
70 | $ mkdir reference
71 | $ cd reference
72 | $ wget http://solanaceae.plantbiology.msu.edu/data/potato_dm_v404_all_pm_un.fasta.zip
73 | $ unzip potato_dm_v404_all_pm_un.fasta.zip
74 |
75 | Whole genome sequencing data are used for repetitive sequences filtering after Chorus2 find out all available oligos. Here we used SRR5349606 data from NCBI Sequence Read Archive (SRA) database, which contains approximate 4x potato genome sequences.
76 |
77 | .. code-block:: bash
78 |
79 | $ cd ..
80 | $ mkdir NGS
81 | $ cd NGS
82 | $ wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR534/006/SRR5349606/SRR5349606_1.fastq.gz
83 | $ wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR534/006/SRR5349606/SRR5349606_2.fastq.gz
84 |
85 | Here we used *wget* command to download SRR5349606 data, the links are copied from EBI database. Users can also use other tools to download WGS data, such as SRA Tookit and Aspera connect.
86 |
87 |
88 | III. Perform Chorus2 pipeline for Oligo-FISH probes design
89 | --------------------------------------------------------------------------------
90 |
91 | 1. Using Chorus2 to design Oligo-FISH probes
92 | ******************************************************
93 | Next, we can use Chorus2 software to design Oligo-FISH probes for potato.
94 |
95 | .. code-block:: bash
96 |
97 | $ cd /home/zhangtaolab/data/chorus2_project
98 | $ mkdir analysis
99 | $ cd analysis
100 | $ Chorus2 -g /home/zhangtaolab/data/chorus2_project/reference/ potato_dm_v404_all_pm_un.fasta -i /home/zhangtaolab/data/chorus2_project/reference/ potato_dm_v404_all_pm_un.fasta -s potato -t 16
101 |
102 | Chorus2 program contains several parameters. '*-g*' requires a genome assembly file and '*-i*' requires an input file where oligos are designed. Both two are mandatory parameters.
103 | Other parameters are optional. '*-s*' requires a path where analysis results are saved.
104 | '*-p*' provides an examination of given 5' labeled R primer, which is used for PCR reaction.
105 | '*-t*' is used for speeding up analysis by add more threads. '*-l*' defines the fixed probe length.
106 | '*--homology*' defines the minimum homology between probe and target sequences.
107 | '*-d*' is for dTm check (hybrid *Tm* - hairpin *Tm*) to avoid duplex formation.
108 | '*--step'* defines the stride of k-mer searching in a sliding window.
109 | Here our analysis results are stored in potato directory. File descriptions are as follow:
110 |
111 | *potato_dm_v404_all_pm_un.fasta.bed* is the probe file contained non-overlapped probes.
112 |
113 | *potato_dm_v404_all_pm_un.fasta_all.bed* is the probe file contained all probes. This file will be used for ChorusNGSfilter.
114 |
115 | *potato_dm_v404_all_pm_un.fasta.len* is the length info of the given genome chromosomes. This file can be imported into ChorusPBGUI for probe selection.
116 |
117 | *potato_dm_v404_all_pm_un.fasta_17mer.jf* is the binary file created by jellyfish count using 17-mer.
118 |
119 | *potato_dm_v404_all_pm_un.fasta_tmp_probe.fa* contains all candidate probe sequences filtered by jellyfish.
120 | *.bwt, .pac, .ann, .amb, .sa* files are bwa index files.
121 |
122 | .. code-block:: bash
123 |
124 | $ cd /home/zhangtaolab/data/chorus2_project/analysis/potato
125 | $ head -5 potato_dm_v404_all_pm_un.fasta_all.bed
126 | chr01 97858 97902 ATTTTCCATGGACCTCATTAAGATTAGCTATTGAACCAGTTACCC
127 | chr01 103008 103052 ACAGCCAAATCGTCCCATATTCAAGGATAAACGACCCACGAATCA
128 | chr01 127095 127139 ATCTATATCTACTACACCAGAATATTCATACACAAATAAATTACT
129 | chr01 127101 127145 ATCTACTACACCAGAATATTCATACACAAATAAATTACTACTATT
130 | chr01 127815 127859 CTCAGATTTACCGAATTATTCCTGTGACAAAATATTACTTCCAGT
131 |
132 | There are four columns in each row, first column is chromosome name, second is oligo start site, third is oligo end site, the last one is oligo probe sequence. Users can use excel or text editor to open this file.
133 |
134 |
135 | 2. Use ChorusNGSfilter to filter repetitive sequences in oligos set
136 | ******************************************************************************
137 | To further filter putative repetitive sequences, a kmer-based method can be performed to detect repeats by running ChorusNGSfilter. Here we used SRR5349606 data to facilitate filter process.
138 |
139 | .. code-block:: bash
140 |
141 | $ ChorusNGSfilter -i /home/zhangtaolab/data/chorus2_project/NGS/SRR5349606_1.fastq.gz,/home/zhangtaolab/data/chorus2_project/NGS/SRR5349606_2.fastq.gz -z gz -g home/zhangtaolab/data/chorus2_project/reference/ potato_dm_v404_all_pm_un.fasta -t 16 -p potato_dm_v404_all_pm_un.fasta_all.bed -o potato_DM_v404_filtered.bed
142 |
143 | ChorusNGSfilter requires WGS data as input (*-i*), genome file and designed probes file are also required(*-g* and *-p*).
144 | Length of k-mer used for counting k-mers can be adjusted by parameter '*-k*'.
145 |
146 | After running NGS filtering, three files (*\*.jf, \*.bw, \*.bed*) will output to working directory:
147 |
148 | *potato_DM_v404_filtered.bed.jf* is the binary file created by jellyfish count using given k-mer (Default is 17).
149 |
150 | *potato_DM_v404_filtered.bed.bw* is a bigwig file contained all score information generated from NGS library.
151 |
152 | *potato_DM_v404_filtered.bed* is the probe file contained all probes as well as k-mer score and strand. This file should be further selected by ChorusNGSselect.
153 |
154 | .. code-block:: bash
155 |
156 | $ head -5 potato_dm_v404_all_pm_un.fasta_kmer.bed
157 | chr01 97858 97902 ATTTTCCATGGACCTCATTAAGATTAGCTATTGAACCAGTTACCC 324 +
158 | chr01 103008 103052 ACAGCCAAATCGTCCCATATTCAAGGATAAACGACCCACGAATCA 146 +
159 | chr01 127095 127139 ATCTATATCTACTACACCAGAATATTCATACACAAATAAATTACT 318 +
160 | chr01 127101 127145 ATCTACTACACCAGAATATTCATACACAAATAAATTACTACTATT 373 +
161 | chr01 127815 127859 CTCAGATTTACCGAATTATTCCTGTGACAAAATATTACTTCCAGT 281 +
162 |
163 | There are six columns in each row, first four columns are the same as *potato_dm_v404_all_pm_un.fasta_all.bed*.
164 | The fifth column is the k-mer score, last column is target strand of probes.
165 |
166 |
167 | 3. Use ChorusNGSselect to select confident oligo probes
168 | ************************************************************************
169 | Confident probes need to be further selected based on the k-mer of each oligo. ChorusNGSselect program is used for probes selection.
170 |
171 | .. code-block:: bash
172 |
173 | $ ChorusNGSselect -i potato_DM_v404_filtered.bed -o potato_DM_v404_selected.bed
174 | $ head -5 potato_DM_v404_selected.bed
175 | chr01 97858 97902 ATTTTCCATGGACCTCATTAAGATTAGCTATTGAACCAGTTACCC 324 +
176 | chr01 103008 103052 TGATTCGTGGGTCGTTTATCCTTGAATATGGGACGATTTGGCTGT 146 -
177 | chr01 127095 127139 ATCTATATCTACTACACCAGAATATTCATACACAAATAAATTACT 318 +
178 | chr01 127815 127859 ACTGGAAGTAATATTTTGTCACAGGAATAATTCGGTAAATCTGAG 281 -
179 | chr01 133524 133568 ATTAATCAATAAAGGAAAAGCAAGGTTGGAATACGGTTTCATCCT 389 +
180 |
181 | There are six columns in each row, which are the same as ChorusNGSfilter output.
182 | The final probes can be synthesized directly for oligo-FISH or imported into ChorusPBGUI for further selection.
183 |
--------------------------------------------------------------------------------
/docs/_build/html/_static/doctools.js:
--------------------------------------------------------------------------------
1 | /*
2 | * doctools.js
3 | * ~~~~~~~~~~~
4 | *
5 | * Sphinx JavaScript utilities for all documentation.
6 | *
7 | * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
8 | * :license: BSD, see LICENSE for details.
9 | *
10 | */
11 |
12 | /**
13 | * select a different prefix for underscore
14 | */
15 | $u = _.noConflict();
16 |
17 | /**
18 | * make the code below compatible with browsers without
19 | * an installed firebug like debugger
20 | if (!window.console || !console.firebug) {
21 | var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
22 | "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
23 | "profile", "profileEnd"];
24 | window.console = {};
25 | for (var i = 0; i < names.length; ++i)
26 | window.console[names[i]] = function() {};
27 | }
28 | */
29 |
30 | /**
31 | * small helper function to urldecode strings
32 | */
33 | jQuery.urldecode = function(x) {
34 | return decodeURIComponent(x).replace(/\+/g, ' ');
35 | };
36 |
37 | /**
38 | * small helper function to urlencode strings
39 | */
40 | jQuery.urlencode = encodeURIComponent;
41 |
42 | /**
43 | * This function returns the parsed url parameters of the
44 | * current request. Multiple values per key are supported,
45 | * it will always return arrays of strings for the value parts.
46 | */
47 | jQuery.getQueryParameters = function(s) {
48 | if (typeof s === 'undefined')
49 | s = document.location.search;
50 | var parts = s.substr(s.indexOf('?') + 1).split('&');
51 | var result = {};
52 | for (var i = 0; i < parts.length; i++) {
53 | var tmp = parts[i].split('=', 2);
54 | var key = jQuery.urldecode(tmp[0]);
55 | var value = jQuery.urldecode(tmp[1]);
56 | if (key in result)
57 | result[key].push(value);
58 | else
59 | result[key] = [value];
60 | }
61 | return result;
62 | };
63 |
64 | /**
65 | * highlight a given string on a jquery object by wrapping it in
66 | * span elements with the given class name.
67 | */
68 | jQuery.fn.highlightText = function(text, className) {
69 | function highlight(node, addItems) {
70 | if (node.nodeType === 3) {
71 | var val = node.nodeValue;
72 | var pos = val.toLowerCase().indexOf(text);
73 | if (pos >= 0 &&
74 | !jQuery(node.parentNode).hasClass(className) &&
75 | !jQuery(node.parentNode).hasClass("nohighlight")) {
76 | var span;
77 | var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
78 | if (isInSVG) {
79 | span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
80 | } else {
81 | span = document.createElement("span");
82 | span.className = className;
83 | }
84 | span.appendChild(document.createTextNode(val.substr(pos, text.length)));
85 | node.parentNode.insertBefore(span, node.parentNode.insertBefore(
86 | document.createTextNode(val.substr(pos + text.length)),
87 | node.nextSibling));
88 | node.nodeValue = val.substr(0, pos);
89 | if (isInSVG) {
90 | var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
91 | var bbox = node.parentElement.getBBox();
92 | rect.x.baseVal.value = bbox.x;
93 | rect.y.baseVal.value = bbox.y;
94 | rect.width.baseVal.value = bbox.width;
95 | rect.height.baseVal.value = bbox.height;
96 | rect.setAttribute('class', className);
97 | addItems.push({
98 | "parent": node.parentNode,
99 | "target": rect});
100 | }
101 | }
102 | }
103 | else if (!jQuery(node).is("button, select, textarea")) {
104 | jQuery.each(node.childNodes, function() {
105 | highlight(this, addItems);
106 | });
107 | }
108 | }
109 | var addItems = [];
110 | var result = this.each(function() {
111 | highlight(this, addItems);
112 | });
113 | for (var i = 0; i < addItems.length; ++i) {
114 | jQuery(addItems[i].parent).before(addItems[i].target);
115 | }
116 | return result;
117 | };
118 |
119 | /*
120 | * backward compatibility for jQuery.browser
121 | * This will be supported until firefox bug is fixed.
122 | */
123 | if (!jQuery.browser) {
124 | jQuery.uaMatch = function(ua) {
125 | ua = ua.toLowerCase();
126 |
127 | var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
128 | /(webkit)[ \/]([\w.]+)/.exec(ua) ||
129 | /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
130 | /(msie) ([\w.]+)/.exec(ua) ||
131 | ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
132 | [];
133 |
134 | return {
135 | browser: match[ 1 ] || "",
136 | version: match[ 2 ] || "0"
137 | };
138 | };
139 | jQuery.browser = {};
140 | jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
141 | }
142 |
143 | /**
144 | * Small JavaScript module for the documentation.
145 | */
146 | var Documentation = {
147 |
148 | init : function() {
149 | this.fixFirefoxAnchorBug();
150 | this.highlightSearchWords();
151 | this.initIndexTable();
152 | if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
153 | this.initOnKeyListeners();
154 | }
155 | },
156 |
157 | /**
158 | * i18n support
159 | */
160 | TRANSLATIONS : {},
161 | PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
162 | LOCALE : 'unknown',
163 |
164 | // gettext and ngettext don't access this so that the functions
165 | // can safely bound to a different name (_ = Documentation.gettext)
166 | gettext : function(string) {
167 | var translated = Documentation.TRANSLATIONS[string];
168 | if (typeof translated === 'undefined')
169 | return string;
170 | return (typeof translated === 'string') ? translated : translated[0];
171 | },
172 |
173 | ngettext : function(singular, plural, n) {
174 | var translated = Documentation.TRANSLATIONS[singular];
175 | if (typeof translated === 'undefined')
176 | return (n == 1) ? singular : plural;
177 | return translated[Documentation.PLURALEXPR(n)];
178 | },
179 |
180 | addTranslations : function(catalog) {
181 | for (var key in catalog.messages)
182 | this.TRANSLATIONS[key] = catalog.messages[key];
183 | this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
184 | this.LOCALE = catalog.locale;
185 | },
186 |
187 | /**
188 | * add context elements like header anchor links
189 | */
190 | addContextElements : function() {
191 | $('div[id] > :header:first').each(function() {
192 | $('\u00B6').
193 | attr('href', '#' + this.id).
194 | attr('title', _('Permalink to this headline')).
195 | appendTo(this);
196 | });
197 | $('dt[id]').each(function() {
198 | $('\u00B6').
199 | attr('href', '#' + this.id).
200 | attr('title', _('Permalink to this definition')).
201 | appendTo(this);
202 | });
203 | },
204 |
205 | /**
206 | * workaround a firefox stupidity
207 | * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
208 | */
209 | fixFirefoxAnchorBug : function() {
210 | if (document.location.hash && $.browser.mozilla)
211 | window.setTimeout(function() {
212 | document.location.href += '';
213 | }, 10);
214 | },
215 |
216 | /**
217 | * highlight the search words provided in the url in the text
218 | */
219 | highlightSearchWords : function() {
220 | var params = $.getQueryParameters();
221 | var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
222 | if (terms.length) {
223 | var body = $('div.body');
224 | if (!body.length) {
225 | body = $('body');
226 | }
227 | window.setTimeout(function() {
228 | $.each(terms, function() {
229 | body.highlightText(this.toLowerCase(), 'highlighted');
230 | });
231 | }, 10);
232 | $('