PyamilySeq 1.0.1__tar.gz → 1.1.1__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.
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/PKG-INFO +46 -85
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/README.md +44 -83
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/setup.cfg +8 -1
- pyamilyseq-1.1.1/src/PyamilySeq/Cluster_Compare.py +108 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Cluster_Summary.py +59 -64
- pyamilyseq-1.1.1/src/PyamilySeq/Group_Extractor.py +83 -0
- pyamilyseq-1.1.1/src/PyamilySeq/Group_Sizes.py +87 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/PyamilySeq.py +26 -18
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/PyamilySeq_Genus.py +3 -3
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/PyamilySeq_Species.py +10 -8
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Seq_Combiner.py +25 -8
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/clusterings.py +0 -2
- pyamilyseq-1.1.1/src/PyamilySeq/constants.py +2 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/utils.py +197 -114
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/PKG-INFO +46 -85
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/SOURCES.txt +3 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/entry_points.txt +6 -0
- pyamilyseq-1.0.1/src/PyamilySeq/constants.py +0 -2
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/LICENSE +0 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/pyproject.toml +0 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Group_Splitter.py +0 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Seq_Extractor.py +0 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Seq_Finder.py +0 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/__init__.py +0 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/dependency_links.txt +0 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/requires.txt +0 -0
- {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: PyamilySeq
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.1.1
|
|
4
4
|
Summary: PyamilySeq - A a tool to investigate sequence-based gene groups identified by clustering methods such as CD-HIT, DIAMOND, BLAST or MMseqs2.
|
|
5
5
|
Home-page: https://github.com/NickJD/PyamilySeq
|
|
6
6
|
Author: Nicholas Dimonaco
|
|
@@ -45,7 +45,7 @@ To update to the newest version add '-U' to end of the pip install command.
|
|
|
45
45
|
```commandline
|
|
46
46
|
usage: PyamilySeq.py [-h] {Full,Partial} ...
|
|
47
47
|
|
|
48
|
-
PyamilySeq v1.
|
|
48
|
+
PyamilySeq v1.1.1: A tool for gene clustering and analysis.
|
|
49
49
|
|
|
50
50
|
positional arguments:
|
|
51
51
|
{Full,Partial} Choose a mode: 'Full' or 'Partial'.
|
|
@@ -58,24 +58,24 @@ options:
|
|
|
58
58
|
```
|
|
59
59
|
### 'Full Mode': Will conduct clustering of sequences with CD-HIT as part of PyamilySeq run
|
|
60
60
|
```
|
|
61
|
-
PyamilySeq Full -output_dir .../PyamilySeq_10_AA_90_80_Full_GFFs -input_type combined -input_dir .../genomes/ -
|
|
61
|
+
PyamilySeq Full -output_dir .../PyamilySeq_10_AA_90_80_Full_GFFs -input_type combined -input_dir .../genomes/ -name_split_gff _combined.gff3
|
|
62
62
|
```
|
|
63
63
|
### 'Partial Mode': Will process the output of a sequence clustering from MMseqs, BLAST, DIAMOND etc.
|
|
64
64
|
```
|
|
65
|
-
PyamilySeq Partial -clustering_format CD-HIT -cluster_file .../all_10_combined_pep_CD-HIT_90_80.clstr -original_fasta .../all_10_combined_pep.fasta -output_dir .../PyamilySeq_10_AA_90_80_Partial-
|
|
65
|
+
PyamilySeq Partial -clustering_format CD-HIT -cluster_file .../all_10_combined_pep_CD-HIT_90_80.clstr -original_fasta .../all_10_combined_pep.fasta -output_dir .../PyamilySeq_10_AA_90_80_Partial -write_groups 99 -align
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
#### Note: using a '-clustering_format' other than the default CD-HIT, requires input to be two in two columns as below (Same format as MMseqs2 tsv and BLAST outfmt 6) - Genome name and sequence name are separated by '|'.
|
|
70
70
|
```
|
|
71
|
-
Escherichia_coli_110957|
|
|
72
|
-
Escherichia_coli_110957|
|
|
73
|
-
Escherichia_coli_110957|
|
|
74
|
-
Escherichia_coli_110957|
|
|
71
|
+
Escherichia_coli_110957|ENSB_lL-zIKt-gh0oSno Escherichia_coli_110957|ENSB_lL-zIKt-gh0oSno
|
|
72
|
+
Escherichia_coli_110957|ENSB_lL-zIKt-gh0oSno Escherichia_coli_113290|ENSB_2fj4rJ8e8Z9PNdX
|
|
73
|
+
Escherichia_coli_110957|ENSB_lL-zIKt-gh0oSno Escherichia_coli_b185|ENSB_G_PVe28-ej8q-3S
|
|
74
|
+
Escherichia_coli_110957|ENSB_TIZS9kbTvShDvyX Escherichia_coli_110957|ENSB_TIZS9kbTvShDvyX
|
|
75
75
|
```
|
|
76
76
|
### Example output:
|
|
77
77
|
```
|
|
78
|
-
Running PyamilySeq v1.
|
|
78
|
+
Running PyamilySeq v1.1.1
|
|
79
79
|
Calculating Groups
|
|
80
80
|
Number of Genomes: 10
|
|
81
81
|
Gene Groups
|
|
@@ -92,51 +92,11 @@ Thank you for using PyamilySeq -- A detailed user manual can be found at https:/
|
|
|
92
92
|
Please report any issues to: https://github.com/NickJD/PyamilySeq/issues
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
[//]: # (## Genus mode: )
|
|
96
|
-
|
|
97
|
-
[//]: # (### In addition to "Species mode" (see above) which reports gene groups the same as pangenome tools such as Roary and Panaroo, Genus mode reports gene groups identified across multiple genera.)
|
|
98
|
-
|
|
99
|
-
[//]: # (#### Example:)
|
|
100
|
-
|
|
101
|
-
[//]: # (```)
|
|
102
|
-
|
|
103
|
-
[//]: # (PyamilySeq -run_mode Partial -group_mode Genus -clustering_format CD-HIT -output_dir .../test_data/genus/testing/)
|
|
104
|
-
|
|
105
|
-
[//]: # ( -cluster_file .../test_data/genus/CD-HIT/combined_cds_cd-hit_80_60.clstr -gpa )
|
|
106
|
-
|
|
107
|
-
[//]: # (```)
|
|
108
|
-
|
|
109
|
-
[//]: # (```commandline)
|
|
110
|
-
|
|
111
|
-
[//]: # (Running PyamilySeq v1.0.1)
|
|
112
|
-
|
|
113
|
-
[//]: # (Calculating Groups)
|
|
114
|
-
|
|
115
|
-
[//]: # (Genus Groups:)
|
|
116
|
-
[//]: # (First_genera_1: 28549)
|
|
117
|
-
|
|
118
|
-
[//]: # (First_genera_2: 12)
|
|
119
|
-
|
|
120
|
-
[//]: # (First_genera_3: 0)
|
|
121
|
-
|
|
122
|
-
[//]: # (First_genera_>: 0)
|
|
123
|
-
|
|
124
|
-
[//]: # (Total Number of First Gene Groups (Including Singletons): 28561)
|
|
125
|
-
|
|
126
|
-
[//]: # (Outputting gene_presence_absence file)
|
|
127
|
-
|
|
128
|
-
[//]: # (Thank you for using PyamilySeq -- A detailed user manual can be found at https://github.com/NickJD/PyamilySeq)
|
|
129
|
-
|
|
130
|
-
[//]: # (Please report any issues to: https://github.com/NickJD/PyamilySeq/issues)
|
|
131
|
-
|
|
132
|
-
[//]: # (#####)
|
|
133
|
-
|
|
134
|
-
[//]: # (```)
|
|
135
95
|
|
|
136
96
|
## Reclustering:
|
|
137
97
|
### Reclustering can be used to see where additional sequences/genes lay in relation to a contemporary pangenome/gene grouping.
|
|
138
98
|
```
|
|
139
|
-
PyamilySeq Partial -clustering_format CD-HIT -cluster_file .../all_10_combined_pep_CD-HIT_90_80.clstr -reclustered .../all_10_combined_pep_CD-HIT_90_80_AND_StORFs_CD-HIT_90_80.clstr -original_fasta .../all_10_combined_pep_AND_StORFs.fasta -output_dir .../PyamilySeq_10_AA_90_80_Partial_Reclustered_StORFs -
|
|
99
|
+
PyamilySeq Partial -clustering_format CD-HIT -cluster_file .../all_10_combined_pep_CD-HIT_90_80.clstr -reclustered .../all_10_combined_pep_CD-HIT_90_80_AND_StORFs_CD-HIT_90_80.clstr -original_fasta .../all_10_combined_pep_AND_StORFs.fasta -output_dir .../PyamilySeq_10_AA_90_80_Partial_Reclustered_StORFs -write_groups 99 -align
|
|
140
100
|
```
|
|
141
101
|
#### As can be seen below, the additional sequences recovered by the StORF-Reporter annotation tool have 'extended' contemporary or created entirely new gene groups. 'First' corresponds to the groups identified from the first clustering round and 'Second' for the second. In 'reclustering' mode, First_core_# groups are unaffected thus retaining the initial grouping information.
|
|
142
102
|
```commandline
|
|
@@ -170,25 +130,22 @@ Total Number of First Gene Groups That Had Additional Second Sequences But Not N
|
|
|
170
130
|
## PyamilySeq is separated into two main 'run modes', Full and Partial. They each have their own set of required and optional arguments.
|
|
171
131
|
### PyamilySeq - Full Menu:
|
|
172
132
|
```
|
|
173
|
-
usage: PyamilySeq.py Full [-h] -output_dir OUTPUT_DIR -input_type {separate,combined,fasta} [-input_dir INPUT_DIR]
|
|
174
|
-
[-
|
|
175
|
-
[-c PIDENT] [-s LEN_DIFF] [-fast_mode] [-group_mode {Species,Genus}] [-species_groups SPECIES_GROUPS]
|
|
176
|
-
[-genus_groups GENUS_GROUPS] [-w WRITE_GROUPS] [-wi] [-a] [-align_aa] [-no_gpa] [-M MEM] [-T THREADS]
|
|
177
|
-
[-verbose] [-v]
|
|
133
|
+
usage: PyamilySeq.py Full [-h] -output_dir OUTPUT_DIR -input_type {separate,combined,fasta} [-input_dir INPUT_DIR] [-input_fasta INPUT_FASTA] [-name_split_gff NAME_SPLIT_GFF] [-name_split_fasta NAME_SPLIT_FASTA] [-sequence_type {AA,DNA}] [-gene_ident GENE_IDENT] [-c PIDENT] [-s LEN_DIFF] [-fast_mode]
|
|
134
|
+
[-group_mode {Species,Genus}] [-species_groups SPECIES_GROUPS] [-genus_groups GENUS_GROUPS] [-write_groups WRITE_GROUPS] [-write_individual_groups] [-align] [-align_aa] [-no_gpa] [-M MEM] [-T THREADS] [-verbose] [-v]
|
|
178
135
|
|
|
179
136
|
options:
|
|
180
137
|
-h, --help show this help message and exit
|
|
181
138
|
-output_dir OUTPUT_DIR
|
|
182
139
|
Directory for all output files.
|
|
183
140
|
-input_type {separate,combined,fasta}
|
|
184
|
-
Type of input files: 'separate' for matching FASTA and GFF files, 'combined' for GFF+FASTA, or 'fasta'
|
|
185
|
-
for a prepared FASTA file.
|
|
141
|
+
Type of input files: 'separate' for matching FASTA and GFF files, 'combined' for GFF+FASTA, or 'fasta' for a prepared FASTA file.
|
|
186
142
|
-input_dir INPUT_DIR Directory containing GFF/FASTA files - Use with -input_type separate/combined.
|
|
187
143
|
-input_fasta INPUT_FASTA
|
|
188
144
|
Input FASTA file - Use with - input_type fasta.
|
|
189
|
-
-
|
|
190
|
-
Substring to split filenames and extract genome names (e.g., '_combined.gff3') - Use with -input_type
|
|
191
|
-
|
|
145
|
+
-name_split_gff NAME_SPLIT_GFF
|
|
146
|
+
Substring to split filenames and extract genome names for gff files (e.g., '_combined.gff3') - Use with -input_type separate/combined.
|
|
147
|
+
-name_split_fasta NAME_SPLIT_FASTA
|
|
148
|
+
Substring to split filenames and extract genome names for fasta files if named differently to paired gff files (e.g., '_dna.fasta') - Use with -input_type separate/combined.
|
|
192
149
|
-sequence_type {AA,DNA}
|
|
193
150
|
Clustering mode: 'DNA' or 'AA'.
|
|
194
151
|
-gene_ident GENE_IDENT
|
|
@@ -202,21 +159,23 @@ options:
|
|
|
202
159
|
Gene groupings for 'Species' mode (default: '99,95,15').
|
|
203
160
|
-genus_groups GENUS_GROUPS
|
|
204
161
|
Gene groupings for 'Genus' mode (default: '1-10').
|
|
205
|
-
-
|
|
206
|
-
|
|
207
|
-
-
|
|
162
|
+
-write_groups WRITE_GROUPS
|
|
163
|
+
Output gene groups as a single FASTA file (specify levels: e.g., '-w 99,95'). - triggers '-wig'.
|
|
164
|
+
-write_individual_groups
|
|
165
|
+
Output individual FASTA files for each group.
|
|
166
|
+
-align Align and concatenate sequences for 'core' groups specified with '-w'.
|
|
208
167
|
-align_aa Align sequences as amino acids.
|
|
209
168
|
-no_gpa Skip creation of gene_presence_absence.csv.
|
|
210
169
|
-M MEM Memory allocation for clustering (MB) - CD-HIT parameter '-M'.
|
|
211
170
|
-T THREADS Number of threads for clustering/alignment - CD-HIT parameter '-T' | MAFFT parameter '--thread'.
|
|
212
171
|
-verbose Print verbose output.
|
|
213
172
|
-v, --version Print version number and exit.
|
|
173
|
+
|
|
214
174
|
```
|
|
215
175
|
### PyamilySeq - Partial Menu:
|
|
216
176
|
```commandline
|
|
217
|
-
usage: PyamilySeq.py Partial [-h] -clustering_format {CD-HIT,MMseqs,BLAST} -cluster_file CLUSTER_FILE -original_fasta ORIGINAL_FASTA -output_dir OUTPUT_DIR
|
|
218
|
-
[-
|
|
219
|
-
[-w WRITE_GROUPS] [-wi] [-a] [-align_aa] [-no_gpa] [-M MEM] [-T THREADS] [-verbose] [-v]
|
|
177
|
+
usage: PyamilySeq.py Partial [-h] -clustering_format {CD-HIT,MMseqs,BLAST} -cluster_file CLUSTER_FILE -original_fasta ORIGINAL_FASTA -output_dir OUTPUT_DIR [-reclustered RECLUSTERED] [-seq_tag SEQUENCE_TAG] [-group_mode {Species,Genus}] [-species_groups SPECIES_GROUPS] [-genus_groups GENUS_GROUPS]
|
|
178
|
+
[-write_groups WRITE_GROUPS] [-write_individual_groups] [-align] [-align_aa] [-no_gpa] [-M MEM] [-T THREADS] [-verbose] [-v]
|
|
220
179
|
|
|
221
180
|
options:
|
|
222
181
|
-h, --help show this help message and exit
|
|
@@ -238,9 +197,11 @@ options:
|
|
|
238
197
|
Gene groupings for 'Species' mode (default: '99,95,15').
|
|
239
198
|
-genus_groups GENUS_GROUPS
|
|
240
199
|
Gene groupings for 'Genus' mode (default: '1-10').
|
|
241
|
-
-
|
|
242
|
-
|
|
243
|
-
-
|
|
200
|
+
-write_groups WRITE_GROUPS
|
|
201
|
+
Output gene groups as a single FASTA file (specify levels: e.g., '-w 99,95'). - triggers '-wig'.
|
|
202
|
+
-write_individual_groups
|
|
203
|
+
Output individual FASTA files for each group.
|
|
204
|
+
-align Align and concatenate sequences for 'core' groups specified with '-w'.
|
|
244
205
|
-align_aa Align sequences as amino acids.
|
|
245
206
|
-no_gpa Skip creation of gene_presence_absence.csv.
|
|
246
207
|
-M MEM Memory allocation for clustering (MB) - CD-HIT parameter '-M'.
|
|
@@ -253,14 +214,13 @@ options:
|
|
|
253
214
|
## Seq-Combiner: This tool is provided to enable the pre-processing of multiple GFF/FASTA files together ready to be clustered by the user.
|
|
254
215
|
### Example:
|
|
255
216
|
```bash
|
|
256
|
-
Seq-Combiner -input_dir .../test_data/genomes -
|
|
217
|
+
Seq-Combiner -input_dir .../test_data/genomes -name_split_gff .gff3 -output_dir .../test_data/genomes -output_name combine_fasta_seqs.fa -input_type combined
|
|
257
218
|
```
|
|
258
219
|
### Seq-Combiner Menu:
|
|
259
220
|
```
|
|
260
|
-
usage: Seq_Combiner.py [-h] -input_dir INPUT_DIR -input_type {separate,combined,fasta} -
|
|
261
|
-
OUTPUT_FILE [-gene_ident GENE_IDENT] [-translate] [-v]
|
|
221
|
+
usage: Seq_Combiner.py [-h] -input_dir INPUT_DIR -input_type {separate,combined,fasta} [-name_split_gff NAME_SPLIT_GFF] [-name_split_fasta NAME_SPLIT_FASTA] -output_dir OUTPUT_DIR -output_name OUTPUT_FILE [-gene_ident GENE_IDENT] [-translate] [-v]
|
|
262
222
|
|
|
263
|
-
PyamilySeq v1.
|
|
223
|
+
PyamilySeq v1.1.1: Seq-Combiner - A tool to extract sequences from GFF/FASTA files and prepare them for PyamilySeq.
|
|
264
224
|
|
|
265
225
|
options:
|
|
266
226
|
-h, --help show this help message and exit
|
|
@@ -268,10 +228,11 @@ options:
|
|
|
268
228
|
Required Arguments:
|
|
269
229
|
-input_dir INPUT_DIR Directory location where the files are located.
|
|
270
230
|
-input_type {separate,combined,fasta}
|
|
271
|
-
Type of input files: "separate" for separate FASTA and GFF files, "combined" for GFF files with embedded FASTA sequences and "fasta"
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
231
|
+
Type of input files: "separate" for separate FASTA and GFF files, "combined" for GFF files with embedded FASTA sequences and "fasta" for combining multiple FASTA files together.
|
|
232
|
+
-name_split_gff NAME_SPLIT_GFF
|
|
233
|
+
Substring used to split the filename and extract the genome name ('_combined.gff3' or '.gff'). - Not needed with -input_type fasta
|
|
234
|
+
-name_split_fasta NAME_SPLIT_FASTA
|
|
235
|
+
Substring used to split filenames and extract genome names for fasta files if named differently to paired gff files (e.g., '_dna.fasta').
|
|
275
236
|
-output_dir OUTPUT_DIR
|
|
276
237
|
Directory for all output files.
|
|
277
238
|
-output_name OUTPUT_FILE
|
|
@@ -279,19 +240,19 @@ Required Arguments:
|
|
|
279
240
|
|
|
280
241
|
Optional Arguments:
|
|
281
242
|
-gene_ident GENE_IDENT
|
|
282
|
-
Default - "CDS": Identifier used for extraction of sequences such as
|
|
283
|
-
|
|
284
|
-
-translate Default - False: Translate extracted sequences to their AA counterpart?
|
|
243
|
+
Default - "CDS": Identifier used for extraction of sequences such as "misc_RNA,gene,mRNA,CDS,rRNA,tRNA,tmRNA,CRISPR,ncRNA,regulatory_region,oriC,pseudo" - Not compatible with "fasta" input mode.
|
|
244
|
+
-translate Default - False: Translate extracted sequences to their AA counterpart? - appends _aa.fasta to given output_name
|
|
285
245
|
|
|
286
246
|
Misc Arguments:
|
|
287
247
|
-v, --version Print out version number and exit
|
|
288
248
|
|
|
249
|
+
|
|
289
250
|
```
|
|
290
251
|
|
|
291
252
|
## Group-Splitter: This tool can split multi-copy gene groups using CD-HIT after initial PyamilySeq analysis.
|
|
292
253
|
### Example:
|
|
293
254
|
```bash
|
|
294
|
-
Group-Splitter -genome_num
|
|
255
|
+
Group-Splitter -genome_num 10 -input_fasta .../test/species/ -output_dir .../test/species/ -sequence_type AA
|
|
295
256
|
```
|
|
296
257
|
### Group-Splitter Menu:
|
|
297
258
|
```
|
|
@@ -302,7 +263,7 @@ usage: Group_Splitter.py [-h] -input_fasta INPUT_FASTA -sequence_type {AA,DNA}
|
|
|
302
263
|
[-M CLUSTERING_MEMORY] [-no_delete_temp_files]
|
|
303
264
|
[-verbose] [-v]
|
|
304
265
|
|
|
305
|
-
PyamilySeq v1.
|
|
266
|
+
PyamilySeq v1.1.1: Group-Splitter - A tool to split multi-copy gene groups
|
|
306
267
|
identified by PyamilySeq.
|
|
307
268
|
|
|
308
269
|
options:
|
|
@@ -348,14 +309,14 @@ Misc Parameters:
|
|
|
348
309
|
## Cluster-Summary menu: This tool can be used to summarise CD-HIT .clstr files:
|
|
349
310
|
### Example:
|
|
350
311
|
```bash
|
|
351
|
-
Cluster-Summary -genome_num
|
|
312
|
+
Cluster-Summary -genome_num 10 -input_clstr .../test_data/species/E-coli/E-coli_extracted_pep_cd-hit_80.clstr -output_tsv .../test_data/species/E-coli/E-coli_extracted_pep_cd-hit_80_Summary.tsv
|
|
352
313
|
```
|
|
353
314
|
### Cluster-Summary Menu:
|
|
354
315
|
```
|
|
355
316
|
usage: Cluster_Summary.py [-h] -input_clstr INPUT_CLSTR -output OUTPUT -genome_num GENOME_NUM
|
|
356
317
|
[-output_dir OUTPUT_DIR] [-verbose] [-v]
|
|
357
318
|
|
|
358
|
-
PyamilySeq v1.
|
|
319
|
+
PyamilySeq v1.1.1: Cluster-Summary - A tool to summarise CD-HIT clustering files.
|
|
359
320
|
|
|
360
321
|
options:
|
|
361
322
|
-h, --help show this help message and exit
|
|
@@ -29,7 +29,7 @@ To update to the newest version add '-U' to end of the pip install command.
|
|
|
29
29
|
```commandline
|
|
30
30
|
usage: PyamilySeq.py [-h] {Full,Partial} ...
|
|
31
31
|
|
|
32
|
-
PyamilySeq v1.
|
|
32
|
+
PyamilySeq v1.1.1: A tool for gene clustering and analysis.
|
|
33
33
|
|
|
34
34
|
positional arguments:
|
|
35
35
|
{Full,Partial} Choose a mode: 'Full' or 'Partial'.
|
|
@@ -42,24 +42,24 @@ options:
|
|
|
42
42
|
```
|
|
43
43
|
### 'Full Mode': Will conduct clustering of sequences with CD-HIT as part of PyamilySeq run
|
|
44
44
|
```
|
|
45
|
-
PyamilySeq Full -output_dir .../PyamilySeq_10_AA_90_80_Full_GFFs -input_type combined -input_dir .../genomes/ -
|
|
45
|
+
PyamilySeq Full -output_dir .../PyamilySeq_10_AA_90_80_Full_GFFs -input_type combined -input_dir .../genomes/ -name_split_gff _combined.gff3
|
|
46
46
|
```
|
|
47
47
|
### 'Partial Mode': Will process the output of a sequence clustering from MMseqs, BLAST, DIAMOND etc.
|
|
48
48
|
```
|
|
49
|
-
PyamilySeq Partial -clustering_format CD-HIT -cluster_file .../all_10_combined_pep_CD-HIT_90_80.clstr -original_fasta .../all_10_combined_pep.fasta -output_dir .../PyamilySeq_10_AA_90_80_Partial-
|
|
49
|
+
PyamilySeq Partial -clustering_format CD-HIT -cluster_file .../all_10_combined_pep_CD-HIT_90_80.clstr -original_fasta .../all_10_combined_pep.fasta -output_dir .../PyamilySeq_10_AA_90_80_Partial -write_groups 99 -align
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
#### Note: using a '-clustering_format' other than the default CD-HIT, requires input to be two in two columns as below (Same format as MMseqs2 tsv and BLAST outfmt 6) - Genome name and sequence name are separated by '|'.
|
|
54
54
|
```
|
|
55
|
-
Escherichia_coli_110957|
|
|
56
|
-
Escherichia_coli_110957|
|
|
57
|
-
Escherichia_coli_110957|
|
|
58
|
-
Escherichia_coli_110957|
|
|
55
|
+
Escherichia_coli_110957|ENSB_lL-zIKt-gh0oSno Escherichia_coli_110957|ENSB_lL-zIKt-gh0oSno
|
|
56
|
+
Escherichia_coli_110957|ENSB_lL-zIKt-gh0oSno Escherichia_coli_113290|ENSB_2fj4rJ8e8Z9PNdX
|
|
57
|
+
Escherichia_coli_110957|ENSB_lL-zIKt-gh0oSno Escherichia_coli_b185|ENSB_G_PVe28-ej8q-3S
|
|
58
|
+
Escherichia_coli_110957|ENSB_TIZS9kbTvShDvyX Escherichia_coli_110957|ENSB_TIZS9kbTvShDvyX
|
|
59
59
|
```
|
|
60
60
|
### Example output:
|
|
61
61
|
```
|
|
62
|
-
Running PyamilySeq v1.
|
|
62
|
+
Running PyamilySeq v1.1.1
|
|
63
63
|
Calculating Groups
|
|
64
64
|
Number of Genomes: 10
|
|
65
65
|
Gene Groups
|
|
@@ -76,51 +76,11 @@ Thank you for using PyamilySeq -- A detailed user manual can be found at https:/
|
|
|
76
76
|
Please report any issues to: https://github.com/NickJD/PyamilySeq/issues
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
[//]: # (## Genus mode: )
|
|
80
|
-
|
|
81
|
-
[//]: # (### In addition to "Species mode" (see above) which reports gene groups the same as pangenome tools such as Roary and Panaroo, Genus mode reports gene groups identified across multiple genera.)
|
|
82
|
-
|
|
83
|
-
[//]: # (#### Example:)
|
|
84
|
-
|
|
85
|
-
[//]: # (```)
|
|
86
|
-
|
|
87
|
-
[//]: # (PyamilySeq -run_mode Partial -group_mode Genus -clustering_format CD-HIT -output_dir .../test_data/genus/testing/)
|
|
88
|
-
|
|
89
|
-
[//]: # ( -cluster_file .../test_data/genus/CD-HIT/combined_cds_cd-hit_80_60.clstr -gpa )
|
|
90
|
-
|
|
91
|
-
[//]: # (```)
|
|
92
|
-
|
|
93
|
-
[//]: # (```commandline)
|
|
94
|
-
|
|
95
|
-
[//]: # (Running PyamilySeq v1.0.1)
|
|
96
|
-
|
|
97
|
-
[//]: # (Calculating Groups)
|
|
98
|
-
|
|
99
|
-
[//]: # (Genus Groups:)
|
|
100
|
-
[//]: # (First_genera_1: 28549)
|
|
101
|
-
|
|
102
|
-
[//]: # (First_genera_2: 12)
|
|
103
|
-
|
|
104
|
-
[//]: # (First_genera_3: 0)
|
|
105
|
-
|
|
106
|
-
[//]: # (First_genera_>: 0)
|
|
107
|
-
|
|
108
|
-
[//]: # (Total Number of First Gene Groups (Including Singletons): 28561)
|
|
109
|
-
|
|
110
|
-
[//]: # (Outputting gene_presence_absence file)
|
|
111
|
-
|
|
112
|
-
[//]: # (Thank you for using PyamilySeq -- A detailed user manual can be found at https://github.com/NickJD/PyamilySeq)
|
|
113
|
-
|
|
114
|
-
[//]: # (Please report any issues to: https://github.com/NickJD/PyamilySeq/issues)
|
|
115
|
-
|
|
116
|
-
[//]: # (#####)
|
|
117
|
-
|
|
118
|
-
[//]: # (```)
|
|
119
79
|
|
|
120
80
|
## Reclustering:
|
|
121
81
|
### Reclustering can be used to see where additional sequences/genes lay in relation to a contemporary pangenome/gene grouping.
|
|
122
82
|
```
|
|
123
|
-
PyamilySeq Partial -clustering_format CD-HIT -cluster_file .../all_10_combined_pep_CD-HIT_90_80.clstr -reclustered .../all_10_combined_pep_CD-HIT_90_80_AND_StORFs_CD-HIT_90_80.clstr -original_fasta .../all_10_combined_pep_AND_StORFs.fasta -output_dir .../PyamilySeq_10_AA_90_80_Partial_Reclustered_StORFs -
|
|
83
|
+
PyamilySeq Partial -clustering_format CD-HIT -cluster_file .../all_10_combined_pep_CD-HIT_90_80.clstr -reclustered .../all_10_combined_pep_CD-HIT_90_80_AND_StORFs_CD-HIT_90_80.clstr -original_fasta .../all_10_combined_pep_AND_StORFs.fasta -output_dir .../PyamilySeq_10_AA_90_80_Partial_Reclustered_StORFs -write_groups 99 -align
|
|
124
84
|
```
|
|
125
85
|
#### As can be seen below, the additional sequences recovered by the StORF-Reporter annotation tool have 'extended' contemporary or created entirely new gene groups. 'First' corresponds to the groups identified from the first clustering round and 'Second' for the second. In 'reclustering' mode, First_core_# groups are unaffected thus retaining the initial grouping information.
|
|
126
86
|
```commandline
|
|
@@ -154,25 +114,22 @@ Total Number of First Gene Groups That Had Additional Second Sequences But Not N
|
|
|
154
114
|
## PyamilySeq is separated into two main 'run modes', Full and Partial. They each have their own set of required and optional arguments.
|
|
155
115
|
### PyamilySeq - Full Menu:
|
|
156
116
|
```
|
|
157
|
-
usage: PyamilySeq.py Full [-h] -output_dir OUTPUT_DIR -input_type {separate,combined,fasta} [-input_dir INPUT_DIR]
|
|
158
|
-
[-
|
|
159
|
-
[-c PIDENT] [-s LEN_DIFF] [-fast_mode] [-group_mode {Species,Genus}] [-species_groups SPECIES_GROUPS]
|
|
160
|
-
[-genus_groups GENUS_GROUPS] [-w WRITE_GROUPS] [-wi] [-a] [-align_aa] [-no_gpa] [-M MEM] [-T THREADS]
|
|
161
|
-
[-verbose] [-v]
|
|
117
|
+
usage: PyamilySeq.py Full [-h] -output_dir OUTPUT_DIR -input_type {separate,combined,fasta} [-input_dir INPUT_DIR] [-input_fasta INPUT_FASTA] [-name_split_gff NAME_SPLIT_GFF] [-name_split_fasta NAME_SPLIT_FASTA] [-sequence_type {AA,DNA}] [-gene_ident GENE_IDENT] [-c PIDENT] [-s LEN_DIFF] [-fast_mode]
|
|
118
|
+
[-group_mode {Species,Genus}] [-species_groups SPECIES_GROUPS] [-genus_groups GENUS_GROUPS] [-write_groups WRITE_GROUPS] [-write_individual_groups] [-align] [-align_aa] [-no_gpa] [-M MEM] [-T THREADS] [-verbose] [-v]
|
|
162
119
|
|
|
163
120
|
options:
|
|
164
121
|
-h, --help show this help message and exit
|
|
165
122
|
-output_dir OUTPUT_DIR
|
|
166
123
|
Directory for all output files.
|
|
167
124
|
-input_type {separate,combined,fasta}
|
|
168
|
-
Type of input files: 'separate' for matching FASTA and GFF files, 'combined' for GFF+FASTA, or 'fasta'
|
|
169
|
-
for a prepared FASTA file.
|
|
125
|
+
Type of input files: 'separate' for matching FASTA and GFF files, 'combined' for GFF+FASTA, or 'fasta' for a prepared FASTA file.
|
|
170
126
|
-input_dir INPUT_DIR Directory containing GFF/FASTA files - Use with -input_type separate/combined.
|
|
171
127
|
-input_fasta INPUT_FASTA
|
|
172
128
|
Input FASTA file - Use with - input_type fasta.
|
|
173
|
-
-
|
|
174
|
-
Substring to split filenames and extract genome names (e.g., '_combined.gff3') - Use with -input_type
|
|
175
|
-
|
|
129
|
+
-name_split_gff NAME_SPLIT_GFF
|
|
130
|
+
Substring to split filenames and extract genome names for gff files (e.g., '_combined.gff3') - Use with -input_type separate/combined.
|
|
131
|
+
-name_split_fasta NAME_SPLIT_FASTA
|
|
132
|
+
Substring to split filenames and extract genome names for fasta files if named differently to paired gff files (e.g., '_dna.fasta') - Use with -input_type separate/combined.
|
|
176
133
|
-sequence_type {AA,DNA}
|
|
177
134
|
Clustering mode: 'DNA' or 'AA'.
|
|
178
135
|
-gene_ident GENE_IDENT
|
|
@@ -186,21 +143,23 @@ options:
|
|
|
186
143
|
Gene groupings for 'Species' mode (default: '99,95,15').
|
|
187
144
|
-genus_groups GENUS_GROUPS
|
|
188
145
|
Gene groupings for 'Genus' mode (default: '1-10').
|
|
189
|
-
-
|
|
190
|
-
|
|
191
|
-
-
|
|
146
|
+
-write_groups WRITE_GROUPS
|
|
147
|
+
Output gene groups as a single FASTA file (specify levels: e.g., '-w 99,95'). - triggers '-wig'.
|
|
148
|
+
-write_individual_groups
|
|
149
|
+
Output individual FASTA files for each group.
|
|
150
|
+
-align Align and concatenate sequences for 'core' groups specified with '-w'.
|
|
192
151
|
-align_aa Align sequences as amino acids.
|
|
193
152
|
-no_gpa Skip creation of gene_presence_absence.csv.
|
|
194
153
|
-M MEM Memory allocation for clustering (MB) - CD-HIT parameter '-M'.
|
|
195
154
|
-T THREADS Number of threads for clustering/alignment - CD-HIT parameter '-T' | MAFFT parameter '--thread'.
|
|
196
155
|
-verbose Print verbose output.
|
|
197
156
|
-v, --version Print version number and exit.
|
|
157
|
+
|
|
198
158
|
```
|
|
199
159
|
### PyamilySeq - Partial Menu:
|
|
200
160
|
```commandline
|
|
201
|
-
usage: PyamilySeq.py Partial [-h] -clustering_format {CD-HIT,MMseqs,BLAST} -cluster_file CLUSTER_FILE -original_fasta ORIGINAL_FASTA -output_dir OUTPUT_DIR
|
|
202
|
-
[-
|
|
203
|
-
[-w WRITE_GROUPS] [-wi] [-a] [-align_aa] [-no_gpa] [-M MEM] [-T THREADS] [-verbose] [-v]
|
|
161
|
+
usage: PyamilySeq.py Partial [-h] -clustering_format {CD-HIT,MMseqs,BLAST} -cluster_file CLUSTER_FILE -original_fasta ORIGINAL_FASTA -output_dir OUTPUT_DIR [-reclustered RECLUSTERED] [-seq_tag SEQUENCE_TAG] [-group_mode {Species,Genus}] [-species_groups SPECIES_GROUPS] [-genus_groups GENUS_GROUPS]
|
|
162
|
+
[-write_groups WRITE_GROUPS] [-write_individual_groups] [-align] [-align_aa] [-no_gpa] [-M MEM] [-T THREADS] [-verbose] [-v]
|
|
204
163
|
|
|
205
164
|
options:
|
|
206
165
|
-h, --help show this help message and exit
|
|
@@ -222,9 +181,11 @@ options:
|
|
|
222
181
|
Gene groupings for 'Species' mode (default: '99,95,15').
|
|
223
182
|
-genus_groups GENUS_GROUPS
|
|
224
183
|
Gene groupings for 'Genus' mode (default: '1-10').
|
|
225
|
-
-
|
|
226
|
-
|
|
227
|
-
-
|
|
184
|
+
-write_groups WRITE_GROUPS
|
|
185
|
+
Output gene groups as a single FASTA file (specify levels: e.g., '-w 99,95'). - triggers '-wig'.
|
|
186
|
+
-write_individual_groups
|
|
187
|
+
Output individual FASTA files for each group.
|
|
188
|
+
-align Align and concatenate sequences for 'core' groups specified with '-w'.
|
|
228
189
|
-align_aa Align sequences as amino acids.
|
|
229
190
|
-no_gpa Skip creation of gene_presence_absence.csv.
|
|
230
191
|
-M MEM Memory allocation for clustering (MB) - CD-HIT parameter '-M'.
|
|
@@ -237,14 +198,13 @@ options:
|
|
|
237
198
|
## Seq-Combiner: This tool is provided to enable the pre-processing of multiple GFF/FASTA files together ready to be clustered by the user.
|
|
238
199
|
### Example:
|
|
239
200
|
```bash
|
|
240
|
-
Seq-Combiner -input_dir .../test_data/genomes -
|
|
201
|
+
Seq-Combiner -input_dir .../test_data/genomes -name_split_gff .gff3 -output_dir .../test_data/genomes -output_name combine_fasta_seqs.fa -input_type combined
|
|
241
202
|
```
|
|
242
203
|
### Seq-Combiner Menu:
|
|
243
204
|
```
|
|
244
|
-
usage: Seq_Combiner.py [-h] -input_dir INPUT_DIR -input_type {separate,combined,fasta} -
|
|
245
|
-
OUTPUT_FILE [-gene_ident GENE_IDENT] [-translate] [-v]
|
|
205
|
+
usage: Seq_Combiner.py [-h] -input_dir INPUT_DIR -input_type {separate,combined,fasta} [-name_split_gff NAME_SPLIT_GFF] [-name_split_fasta NAME_SPLIT_FASTA] -output_dir OUTPUT_DIR -output_name OUTPUT_FILE [-gene_ident GENE_IDENT] [-translate] [-v]
|
|
246
206
|
|
|
247
|
-
PyamilySeq v1.
|
|
207
|
+
PyamilySeq v1.1.1: Seq-Combiner - A tool to extract sequences from GFF/FASTA files and prepare them for PyamilySeq.
|
|
248
208
|
|
|
249
209
|
options:
|
|
250
210
|
-h, --help show this help message and exit
|
|
@@ -252,10 +212,11 @@ options:
|
|
|
252
212
|
Required Arguments:
|
|
253
213
|
-input_dir INPUT_DIR Directory location where the files are located.
|
|
254
214
|
-input_type {separate,combined,fasta}
|
|
255
|
-
Type of input files: "separate" for separate FASTA and GFF files, "combined" for GFF files with embedded FASTA sequences and "fasta"
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
215
|
+
Type of input files: "separate" for separate FASTA and GFF files, "combined" for GFF files with embedded FASTA sequences and "fasta" for combining multiple FASTA files together.
|
|
216
|
+
-name_split_gff NAME_SPLIT_GFF
|
|
217
|
+
Substring used to split the filename and extract the genome name ('_combined.gff3' or '.gff'). - Not needed with -input_type fasta
|
|
218
|
+
-name_split_fasta NAME_SPLIT_FASTA
|
|
219
|
+
Substring used to split filenames and extract genome names for fasta files if named differently to paired gff files (e.g., '_dna.fasta').
|
|
259
220
|
-output_dir OUTPUT_DIR
|
|
260
221
|
Directory for all output files.
|
|
261
222
|
-output_name OUTPUT_FILE
|
|
@@ -263,19 +224,19 @@ Required Arguments:
|
|
|
263
224
|
|
|
264
225
|
Optional Arguments:
|
|
265
226
|
-gene_ident GENE_IDENT
|
|
266
|
-
Default - "CDS": Identifier used for extraction of sequences such as
|
|
267
|
-
|
|
268
|
-
-translate Default - False: Translate extracted sequences to their AA counterpart?
|
|
227
|
+
Default - "CDS": Identifier used for extraction of sequences such as "misc_RNA,gene,mRNA,CDS,rRNA,tRNA,tmRNA,CRISPR,ncRNA,regulatory_region,oriC,pseudo" - Not compatible with "fasta" input mode.
|
|
228
|
+
-translate Default - False: Translate extracted sequences to their AA counterpart? - appends _aa.fasta to given output_name
|
|
269
229
|
|
|
270
230
|
Misc Arguments:
|
|
271
231
|
-v, --version Print out version number and exit
|
|
272
232
|
|
|
233
|
+
|
|
273
234
|
```
|
|
274
235
|
|
|
275
236
|
## Group-Splitter: This tool can split multi-copy gene groups using CD-HIT after initial PyamilySeq analysis.
|
|
276
237
|
### Example:
|
|
277
238
|
```bash
|
|
278
|
-
Group-Splitter -genome_num
|
|
239
|
+
Group-Splitter -genome_num 10 -input_fasta .../test/species/ -output_dir .../test/species/ -sequence_type AA
|
|
279
240
|
```
|
|
280
241
|
### Group-Splitter Menu:
|
|
281
242
|
```
|
|
@@ -286,7 +247,7 @@ usage: Group_Splitter.py [-h] -input_fasta INPUT_FASTA -sequence_type {AA,DNA}
|
|
|
286
247
|
[-M CLUSTERING_MEMORY] [-no_delete_temp_files]
|
|
287
248
|
[-verbose] [-v]
|
|
288
249
|
|
|
289
|
-
PyamilySeq v1.
|
|
250
|
+
PyamilySeq v1.1.1: Group-Splitter - A tool to split multi-copy gene groups
|
|
290
251
|
identified by PyamilySeq.
|
|
291
252
|
|
|
292
253
|
options:
|
|
@@ -332,14 +293,14 @@ Misc Parameters:
|
|
|
332
293
|
## Cluster-Summary menu: This tool can be used to summarise CD-HIT .clstr files:
|
|
333
294
|
### Example:
|
|
334
295
|
```bash
|
|
335
|
-
Cluster-Summary -genome_num
|
|
296
|
+
Cluster-Summary -genome_num 10 -input_clstr .../test_data/species/E-coli/E-coli_extracted_pep_cd-hit_80.clstr -output_tsv .../test_data/species/E-coli/E-coli_extracted_pep_cd-hit_80_Summary.tsv
|
|
336
297
|
```
|
|
337
298
|
### Cluster-Summary Menu:
|
|
338
299
|
```
|
|
339
300
|
usage: Cluster_Summary.py [-h] -input_clstr INPUT_CLSTR -output OUTPUT -genome_num GENOME_NUM
|
|
340
301
|
[-output_dir OUTPUT_DIR] [-verbose] [-v]
|
|
341
302
|
|
|
342
|
-
PyamilySeq v1.
|
|
303
|
+
PyamilySeq v1.1.1: Cluster-Summary - A tool to summarise CD-HIT clustering files.
|
|
343
304
|
|
|
344
305
|
options:
|
|
345
306
|
-h, --help show this help message and exit
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
[metadata]
|
|
2
2
|
name = PyamilySeq
|
|
3
|
-
version = v1.
|
|
3
|
+
version = v1.1.1
|
|
4
|
+
license_files = LICENSE
|
|
4
5
|
author = Nicholas Dimonaco
|
|
5
6
|
author_email = nicholas@dimonaco.co.uk
|
|
6
7
|
description = PyamilySeq - A a tool to investigate sequence-based gene groups identified by clustering methods such as CD-HIT, DIAMOND, BLAST or MMseqs2.
|
|
@@ -29,11 +30,17 @@ include = *
|
|
|
29
30
|
[options.entry_points]
|
|
30
31
|
console_scripts =
|
|
31
32
|
PyamilySeq = PyamilySeq.PyamilySeq:main
|
|
33
|
+
pyamilyseq = PyamilySeq.PyamilySeq:main
|
|
32
34
|
Seq-Combiner = PyamilySeq.Seq_Combiner:main
|
|
35
|
+
seq-combiner = PyamilySeq.Seq_Combiner:main
|
|
33
36
|
Group-Splitter = PyamilySeq.Group_Splitter:main
|
|
37
|
+
group-splitter = PyamilySeq.Group_Splitter:main
|
|
34
38
|
Cluster-Summary = PyamilySeq.Cluster_Summary:main
|
|
39
|
+
cluster-summary = PyamilySeq.Cluster_Summary:main
|
|
35
40
|
Seq-Finder = PyamilySeq.Seq_Finder:main
|
|
41
|
+
seq-finder = PyamilySeq.Seq_Finder:main
|
|
36
42
|
Seq-Extractor = PyamilySeq.Seq_Extractor:main
|
|
43
|
+
seq-extractor = PyamilySeq.Seq_Extractor:main
|
|
37
44
|
|
|
38
45
|
[egg_info]
|
|
39
46
|
tag_build =
|