kssdtree 2.0.7__tar.gz → 2.0.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kssdtree-2.0.7/kssdtree.egg-info → kssdtree-2.0.8}/PKG-INFO +5 -1
- kssdtree-2.0.8/README.md +66 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/command_dist.c +13 -13
- {kssdtree-2.0.7 → kssdtree-2.0.8}/iseq2comem.c +49 -3
- {kssdtree-2.0.7 → kssdtree-2.0.8/kssdtree.egg-info}/PKG-INFO +5 -1
- {kssdtree-2.0.7 → kssdtree-2.0.8}/setup.py +1 -1
- kssdtree-2.0.7/README.md +0 -8
- {kssdtree-2.0.7 → kssdtree-2.0.8}/MANIFEST.in +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/align.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/buildtree.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/bytescale.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/cluster.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/co2mco.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/command_composite.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/command_dist_wrapper.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/command_set.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/command_shuffle.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/distancemat.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnj.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/bytescale.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/dnj.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/filebuff.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/hclust.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/matrix.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/mman.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/nj.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/nwck.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/pherror.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/phy.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/qseqs.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/str.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/threader.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/tmp.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/dnjheaders/vector.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/filebuff.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/global_basic.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/hclust.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/co2mco.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/command_composite.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/command_dist.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/command_dist_wrapper.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/command_set.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/command_shuffle.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/global_basic.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/iseq2comem.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/mman.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdheaders/mytime.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdtree.egg-info/SOURCES.txt +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdtree.egg-info/dependency_links.txt +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdtree.egg-info/not-zip-safe +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdtree.egg-info/requires.txt +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdtree.egg-info/top_level.txt +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/kssdtree.py +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/matrix.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/mman.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/mytime.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/nj.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/njheaders/align.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/njheaders/buildtree.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/njheaders/cluster.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/njheaders/distancemat.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/njheaders/sequence.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/njheaders/tree.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/njheaders/util.h +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/nwck.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/pherror.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/phy.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/pydnj.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/pykssd.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/pynj.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/qseqs.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/sequence.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/setup.cfg +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/str.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/tmp.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/toolutils.py +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/tree.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/util.c +0 -0
- {kssdtree-2.0.7 → kssdtree-2.0.8}/vector.c +0 -0
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: kssdtree
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.8
|
|
4
4
|
Summary: Kssdtree is a versatile Python package for phylogenetic analysis. It also provides one-stop tree construction and visualization. It can handle DNA sequences of both fasta or fastq format, whether gzipped or not.
|
|
5
5
|
Home-page: https://github.com/yhlink/kssdtree
|
|
6
6
|
Download-URL: https://pypi.org/project/kssdtree
|
|
7
7
|
Author: Hang Yang
|
|
8
8
|
Author-email: yhlink1207@gmail.com
|
|
9
|
+
Requires-Dist: pyqt5
|
|
10
|
+
Requires-Dist: ete3
|
|
11
|
+
Requires-Dist: requests
|
|
12
|
+
Requires-Dist: pandas
|
kssdtree-2.0.8/README.md
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Kssdtree: an interactive Python package for phylogenetic analysis based on sketching technique
|
|
2
|
+
Kssdtree is a versatile Python package for phylogenetic analysis, offering three distinct pipelines: the Routine Pipeline, the Reference Subtraction Pipeline, and the GTDB-based Phylogenetic Placement Pipeline.
|
|
3
|
+
|
|
4
|
+
Routine Pipeline: A general-purpose tool for phylogenetic analysis of user genomic data.
|
|
5
|
+
Reference Subtraction Pipeline: Designed for intra-species phylogenomic analysis.
|
|
6
|
+
GTDB-based Phylogenetic Placement Pipeline: Facilitates the search for similar genomes in the Genome Taxonomy Database (GTDB), conducting phylogenetic analysis alongside these genomes and positioning the input genomes within the entire prokaryotic tree of life.
|
|
7
|
+
Kssdtree also provides one-stop tree construction and visualization. It can handle DNA sequences in both fasta and fastq formats, whether gzipped or not. Additionally, Kssdtree is compatible with multiple platforms (Linux, MacOS, and Windows) and can be run using Jupyter notebooks.
|
|
8
|
+
# 1. Installation
|
|
9
|
+
Kssdtree requires the Python 3 environment and the dependent packages pandas, pyqt5, ete3, and requests. If Kssdtree is installed using the pip command, these dependencies will be installed automatically. For MacOS, it requires Python 3.8 or higher version. For Windows, it requires Python 3.6 version and the installation of the gzip tool(https://gnuwin32.sourceforge.net/packages/gzip.htm) for sequence decompression.
|
|
10
|
+
## 1.1 Linux
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
pip install kssdtree
|
|
14
|
+
```
|
|
15
|
+
## 1.2 MacOS
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
# (Optional) Install gcc (/opt/homebrew/bin/gcc-12)
|
|
19
|
+
brew install gcc@12
|
|
20
|
+
|
|
21
|
+
# Create a virtual environment
|
|
22
|
+
conda create --name=kssdtree python=3.10
|
|
23
|
+
|
|
24
|
+
# Activate the virtual environment
|
|
25
|
+
conda activate kssdtree
|
|
26
|
+
|
|
27
|
+
# Install kssdtree
|
|
28
|
+
pip install kssdtree
|
|
29
|
+
```
|
|
30
|
+
## 1.3 Windows
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
# Create a virtual environment
|
|
34
|
+
conda create --name=kssdtree python=3.6.13
|
|
35
|
+
|
|
36
|
+
# Activate the virtual environment
|
|
37
|
+
conda activate kssdtree
|
|
38
|
+
|
|
39
|
+
# (Optional) Install libpython and m2w64-toolchain
|
|
40
|
+
conda install libpython m2w64-toolchain -c msys2
|
|
41
|
+
|
|
42
|
+
# Install kssdtree
|
|
43
|
+
pip install kssdtree
|
|
44
|
+
```
|
|
45
|
+
# 2. Quick-Tutorial
|
|
46
|
+
## 2.1 Routine Pipeline
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
import kssdtree
|
|
50
|
+
kssdtree.quick(shuf_file='./shuf_files/L3K10.shuf', genome_files='your input genomes path', output='output.newick', method='nj', mode='r')
|
|
51
|
+
```
|
|
52
|
+
## 2.2 Reference Subtraction Pipeline
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
import kssdtree
|
|
56
|
+
kssdtree.quick(shuf_file='./shuf_files/L3K10.shuf', genome_files='your input genomes path', output='output.newick', reference='your reference genome path', method='nj', mode='r')
|
|
57
|
+
```
|
|
58
|
+
## 2.3 GTDB-based Phylogenetic Placement Pipeline
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
import kssdtree
|
|
62
|
+
kssdtree.quick(shuf_file='./shuf_files/L3K9.shuf', genome_files='your input genomes path', output='your output path', database='gtdbr214', method='nj', mode='r', N=30)
|
|
63
|
+
```
|
|
64
|
+
More usages about Kssdtree, please see Kssdtree documentation (https://kssdtree.readthedocs.io/en/latest).
|
|
65
|
+
# 3. How to cite
|
|
66
|
+
Hang Yang, Xiaoxin Lu, Jiaxing Chang, Qing Chang, Wen Zheng, Zehua Chen, Huiguang Yi, Kssdtree: an interactive Python package for phylogenetic analysis based on sketching technique, Bioinformatics, Volume 40, Issue 10, October 2024, btae566, https://doi.org/10.1093/bioinformatics/btae566
|
|
@@ -309,7 +309,7 @@ const char *test_get_fullpath(const char *parent_path, const char *dstat_f) {
|
|
|
309
309
|
return NULL;
|
|
310
310
|
};
|
|
311
311
|
|
|
312
|
-
const char gzpipe_cmc[] = "gzip -f";
|
|
312
|
+
//const char gzpipe_cmc[] = "gzip -f";
|
|
313
313
|
|
|
314
314
|
const char *run_stageI(dist_opt_val_t *opt_val, infile_tab_t *seqfile_stat,
|
|
315
315
|
int *shuffled_seqfname_ind, const char *co_dir, int p_fit_mem) {
|
|
@@ -327,18 +327,18 @@ const char *run_stageI(dist_opt_val_t *opt_val, infile_tab_t *seqfile_stat,
|
|
|
327
327
|
}
|
|
328
328
|
} else {
|
|
329
329
|
int num_threads = seqfile_stat->infile_num > p_fit_mem ? p_fit_mem : 1;
|
|
330
|
-
|
|
331
|
-
//
|
|
332
|
-
for (int i = 0; i < seqfile_stat->infile_num; i++) {
|
|
333
|
-
char fas_fname[PATHLEN];
|
|
334
|
-
char *seqfname = seqfile_stat->organized_infile_tab[shuffled_seqfname_ind[i]].fpath;
|
|
335
|
-
if (strstr(seqfname, ".gz") == NULL) {
|
|
336
|
-
sprintf(fas_fname, "%s %s", gzpipe_cmc, seqfname);
|
|
337
|
-
popen(fas_fname, "r");
|
|
338
|
-
seqfile_stat->organized_infile_tab[shuffled_seqfname_ind[i]].fpath = strcat(seqfname, ".gz");
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
330
|
+
//#ifdef _WIN32
|
|
331
|
+
// printf("Windows\n");
|
|
332
|
+
// for (int i = 0; i < seqfile_stat->infile_num; i++) {
|
|
333
|
+
// char fas_fname[PATHLEN];
|
|
334
|
+
// char *seqfname = seqfile_stat->organized_infile_tab[shuffled_seqfname_ind[i]].fpath;
|
|
335
|
+
// if (strstr(seqfname, ".gz") == NULL) {
|
|
336
|
+
// sprintf(fas_fname, "%s %s", gzpipe_cmc, seqfname);
|
|
337
|
+
// popen(fas_fname, "r");
|
|
338
|
+
// seqfile_stat->organized_infile_tab[shuffled_seqfname_ind[i]].fpath = strcat(seqfname, ".gz");
|
|
339
|
+
// }
|
|
340
|
+
// }
|
|
341
|
+
//#endif
|
|
342
342
|
#pragma omp parallel for num_threads(num_threads) reduction(+:all_ctx_ct) schedule(guided)
|
|
343
343
|
for (int i = 0; i < seqfile_stat->infile_num; i++) {
|
|
344
344
|
int tid = 0;
|
|
@@ -180,12 +180,23 @@ int reads2mco(char *seqfname, const char *co_dir, char *pipecmd) {
|
|
|
180
180
|
printf("decomposing %s by reads is complete!\n", seqfname);
|
|
181
181
|
return 1;
|
|
182
182
|
}
|
|
183
|
+
|
|
184
|
+
int is_gz_file(const char *seqfname) {
|
|
185
|
+
if (seqfname == NULL) return 0;
|
|
186
|
+
|
|
187
|
+
size_t len = strlen(seqfname);
|
|
188
|
+
if (len < 3) return 0;
|
|
189
|
+
|
|
190
|
+
return strcmp(seqfname + len - 3, ".gz") == 0;
|
|
191
|
+
}
|
|
192
|
+
|
|
183
193
|
#ifdef _WIN32
|
|
184
194
|
const char gzpipe_cmd[] = "gzip -dc";
|
|
185
195
|
#else
|
|
186
196
|
const char gzpipe_cmd[] = "zcat -fc";
|
|
187
197
|
#endif
|
|
188
198
|
llong *fasta2co(char *seqfname, llong *co, char *pipecmd) {
|
|
199
|
+
printf("The fasta2co seqfname is: %s\n", seqfname);
|
|
189
200
|
llong tuple = 0LLU, crvstuple = 0LLU,
|
|
190
201
|
unituple, drtuple, pfilter;
|
|
191
202
|
memset(co, 0LLU, hashsize * sizeof(llong));
|
|
@@ -196,7 +207,18 @@ llong *fasta2co(char *seqfname, llong *co, char *pipecmd) {
|
|
|
196
207
|
sprintf(fas_fname, "%s %s", pipecmd, seqfname);
|
|
197
208
|
else
|
|
198
209
|
sprintf(fas_fname, "%s %s", gzpipe_cmd, seqfname);
|
|
199
|
-
|
|
210
|
+
printf("The fasta2co fas_fname is: %s\n", fas_fname);
|
|
211
|
+
if (is_gz_file(seqfname)){
|
|
212
|
+
printf(".gz format\n");
|
|
213
|
+
if ((infp = popen(fas_fname, "r")) == NULL) fprintf(stderr, "fasta2co():%s", fas_fname, "\n");
|
|
214
|
+
}else{
|
|
215
|
+
printf("not .gz format\n");
|
|
216
|
+
#ifdef _WIN32
|
|
217
|
+
if ((infp = fopen(seqfname, "r")) == NULL) fprintf(stderr, "fasta2co():%s", fas_fname, "\n");
|
|
218
|
+
#else
|
|
219
|
+
if ((infp = popen(fas_fname, "r")) == NULL) fprintf(stderr, "fasta2co():%s", fas_fname, "\n");
|
|
220
|
+
#endif
|
|
221
|
+
}
|
|
200
222
|
int newLen = fread(seqin_buff, sizeof(char), READSEQ_BUFFSZ, infp);
|
|
201
223
|
if (!(newLen > 0)) fprintf(stderr, "fastco():eof or fread error file=%s", seqfname);
|
|
202
224
|
llong base = 1;
|
|
@@ -269,6 +291,7 @@ llong *fasta2co(char *seqfname, llong *co, char *pipecmd) {
|
|
|
269
291
|
#define CT_MAX 0xfLLU
|
|
270
292
|
|
|
271
293
|
llong *fastq2co(char *seqfname, llong *co, char *pipecmd, int Q, int M) {
|
|
294
|
+
printf("The fastq2co seqfname is: %s\n", seqfname);
|
|
272
295
|
if (M >= CT_MAX) fprintf(stderr, "fastq2co(): Occurence num should smaller than %d", (int) CT_MAX);
|
|
273
296
|
llong tuple = 0LLU, crvstuple = 0LLU, unituple, drtuple, pfilter;
|
|
274
297
|
memset(co, 0LLU, hashsize * sizeof(llong));
|
|
@@ -278,7 +301,18 @@ llong *fastq2co(char *seqfname, llong *co, char *pipecmd, int Q, int M) {
|
|
|
278
301
|
sprintf(fq_fname, "%s %s", pipecmd, seqfname);
|
|
279
302
|
else
|
|
280
303
|
sprintf(fq_fname, "%s %s", gzpipe_cmd, seqfname);
|
|
281
|
-
|
|
304
|
+
printf("The fastq2co fq_fname is: %s\n", fq_fname);
|
|
305
|
+
if (is_gz_file(seqfname)){
|
|
306
|
+
printf(".gz format\n");
|
|
307
|
+
if ((infp = popen(fq_fname, "r")) == NULL) fprintf(stderr, "fastq2co():%s", fq_fname, "\n");
|
|
308
|
+
}else{
|
|
309
|
+
printf("not .gz format\n");
|
|
310
|
+
#ifdef _WIN32
|
|
311
|
+
if ((infp = fopen(seqfname, "r")) == NULL) fprintf(stderr, "fastq2co():%s", fq_fname, "\n");
|
|
312
|
+
#else
|
|
313
|
+
if ((infp = popen(fq_fname, "r")) == NULL) fprintf(stderr, "fastq2co():%s", fq_fname, "\n");
|
|
314
|
+
#endif
|
|
315
|
+
}
|
|
282
316
|
char *seq = malloc(LEN + 10);
|
|
283
317
|
char *qual = malloc(LEN + 10);
|
|
284
318
|
fgets(seq, LEN, infp);
|
|
@@ -354,6 +388,7 @@ llong *fastq2co(char *seqfname, llong *co, char *pipecmd, int Q, int M) {
|
|
|
354
388
|
#define OCCRC_MAX 0xffffLLU
|
|
355
389
|
|
|
356
390
|
llong *fastq2koc(char *seqfname, llong *co, char *pipecmd, int Q) {
|
|
391
|
+
printf("The fastq2koc seqfname is: %s\n", seqfname);
|
|
357
392
|
llong tuple = 0LLU, crvstuple = 0LLU, unituple, drtuple, pfilter;
|
|
358
393
|
memset(co, 0LLU, hashsize * sizeof(llong));
|
|
359
394
|
FILE *infp;
|
|
@@ -362,7 +397,18 @@ llong *fastq2koc(char *seqfname, llong *co, char *pipecmd, int Q) {
|
|
|
362
397
|
sprintf(fq_fname, "%s %s", pipecmd, seqfname);
|
|
363
398
|
else
|
|
364
399
|
sprintf(fq_fname, "%s %s", gzpipe_cmd, seqfname);
|
|
365
|
-
|
|
400
|
+
printf("The fastq2koc fq_fname is: %s\n", fq_fname);
|
|
401
|
+
if (is_gz_file(seqfname)){
|
|
402
|
+
printf(".gz format\n");
|
|
403
|
+
if ((infp = popen(fq_fname, "r")) == NULL) fprintf(stderr, "fastq2koc():%s", fq_fname, "\n");
|
|
404
|
+
}else{
|
|
405
|
+
printf("not .gz format\n");
|
|
406
|
+
#ifdef _WIN32
|
|
407
|
+
if ((infp = fopen(seqfname, "r")) == NULL) fprintf(stderr, "fastq2koc():%s", fq_fname, "\n");
|
|
408
|
+
#else
|
|
409
|
+
if ((infp = popen(fq_fname, "r")) == NULL) fprintf(stderr, "fastq2koc():%s", fq_fname, "\n");
|
|
410
|
+
#endif
|
|
411
|
+
}
|
|
366
412
|
char *seq = malloc(LEN + 10);
|
|
367
413
|
char *qual = malloc(LEN + 10);
|
|
368
414
|
fgets(seq, LEN, infp);
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: kssdtree
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.8
|
|
4
4
|
Summary: Kssdtree is a versatile Python package for phylogenetic analysis. It also provides one-stop tree construction and visualization. It can handle DNA sequences of both fasta or fastq format, whether gzipped or not.
|
|
5
5
|
Home-page: https://github.com/yhlink/kssdtree
|
|
6
6
|
Download-URL: https://pypi.org/project/kssdtree
|
|
7
7
|
Author: Hang Yang
|
|
8
8
|
Author-email: yhlink1207@gmail.com
|
|
9
|
+
Requires-Dist: pyqt5
|
|
10
|
+
Requires-Dist: ete3
|
|
11
|
+
Requires-Dist: requests
|
|
12
|
+
Requires-Dist: pandas
|
|
@@ -87,7 +87,7 @@ require_pakages = [
|
|
|
87
87
|
|
|
88
88
|
setup(
|
|
89
89
|
name='kssdtree',
|
|
90
|
-
version='2.0.
|
|
90
|
+
version='2.0.8',
|
|
91
91
|
author='Hang Yang',
|
|
92
92
|
author_email='yhlink1207@gmail.com',
|
|
93
93
|
description="Kssdtree is a versatile Python package for phylogenetic analysis. It also provides one-stop tree construction and visualization. It can handle DNA sequences of both fasta or fastq format, whether gzipped or not. ",
|
kssdtree-2.0.7/README.md
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
Kssdtree is a versatile Python package for phylogenetic analysis, offering three distinct pipelines: the Routine Pipeline, the Reference Subtraction Pipeline, and the GTDB-based Phylogenetic Placement Pipeline.
|
|
2
|
-
|
|
3
|
-
Routine Pipeline: A general-purpose tool for phylogenetic analysis of user genomic data.
|
|
4
|
-
Reference Subtraction Pipeline: Designed for intra-species phylogenomic analysis.
|
|
5
|
-
GTDB-based Phylogenetic Placement Pipeline: Facilitates the search for similar genomes in the Genome Taxonomy Database (GTDB), conducting phylogenetic analysis alongside these genomes and positioning the input genomes within the entire prokaryotic tree of life.
|
|
6
|
-
Kssdtree also provides one-stop tree construction and visualization. It can handle DNA sequences in both fasta and fastq formats, whether gzipped or not. Additionally, Kssdtree is compatible with multiple platforms (Linux, MacOS, and Windows) and can be run using Jupyter notebooks.
|
|
7
|
-
|
|
8
|
-
More usages about Kssdtree, please see Kssdtree documentation (https://kssdtree.readthedocs.io/en/latest).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|