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.
Files changed (27) hide show
  1. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/PKG-INFO +46 -85
  2. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/README.md +44 -83
  3. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/setup.cfg +8 -1
  4. pyamilyseq-1.1.1/src/PyamilySeq/Cluster_Compare.py +108 -0
  5. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Cluster_Summary.py +59 -64
  6. pyamilyseq-1.1.1/src/PyamilySeq/Group_Extractor.py +83 -0
  7. pyamilyseq-1.1.1/src/PyamilySeq/Group_Sizes.py +87 -0
  8. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/PyamilySeq.py +26 -18
  9. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/PyamilySeq_Genus.py +3 -3
  10. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/PyamilySeq_Species.py +10 -8
  11. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Seq_Combiner.py +25 -8
  12. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/clusterings.py +0 -2
  13. pyamilyseq-1.1.1/src/PyamilySeq/constants.py +2 -0
  14. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/utils.py +197 -114
  15. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/PKG-INFO +46 -85
  16. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/SOURCES.txt +3 -0
  17. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/entry_points.txt +6 -0
  18. pyamilyseq-1.0.1/src/PyamilySeq/constants.py +0 -2
  19. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/LICENSE +0 -0
  20. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/pyproject.toml +0 -0
  21. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Group_Splitter.py +0 -0
  22. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Seq_Extractor.py +0 -0
  23. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/Seq_Finder.py +0 -0
  24. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq/__init__.py +0 -0
  25. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/dependency_links.txt +0 -0
  26. {pyamilyseq-1.0.1 → pyamilyseq-1.1.1}/src/PyamilySeq.egg-info/requires.txt +0 -0
  27. {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
1
+ Metadata-Version: 2.2
2
2
  Name: PyamilySeq
3
- Version: 1.0.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.0.1: A tool for gene clustering and analysis.
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/ -name_split _combined.gff3
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-w 99 -a
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|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
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.0.1
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 -w 99 -a
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
- [-input_fasta INPUT_FASTA] [-name_split NAME_SPLIT] [-sequence_type {AA,DNA}] [-gene_ident GENE_IDENT]
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
- -name_split NAME_SPLIT
190
- Substring to split filenames and extract genome names (e.g., '_combined.gff3') - Use with -input_type
191
- separate/combined.
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
- -w WRITE_GROUPS Output gene groups as a single FASTA file (specify levels: e.g., '-w 99,95').
206
- -wi Output individual FASTA files for each group.
207
- -a Align and concatenate sequences for 'core' groups.
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
- [-reclustered RECLUSTERED] [-seq_tag SEQUENCE_TAG] [-group_mode {Species,Genus}] [-species_groups SPECIES_GROUPS] [-genus_groups GENUS_GROUPS]
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
- -w WRITE_GROUPS Output gene groups as a single FASTA file (specify levels: e.g., '-w 99,95').
242
- -wi Output individual FASTA files for each group.
243
- -a Align and concatenate sequences for 'core' groups.
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 -name_split .gff3 -output_dir .../test_data/genomes -output_name combine_fasta_seqs.fa -input_type combined
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} -name_split NAME_SPLIT -output_dir OUTPUT_DIR -output_name
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.0.1: Seq-Combiner - A tool to extract sequences from GFF/FASTA files and prepare them for PyamilySeq.
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
- for combining multiple FASTA files together.
273
- -name_split NAME_SPLIT
274
- substring used to split the filename and extract the genome name ('_combined.gff3' or '.gff').
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
- "misc_RNA,gene,mRNA,CDS,rRNA,tRNA,tmRNA,CRISPR,ncRNA,regulatory_region,oriC,pseudo" - Not compatible with "fasta" input mode.
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 74 -input_fasta .../test/species/ -output_dir .../test/species/ -sequence_type AA
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.0.1: Group-Splitter - A tool to split multi-copy gene groups
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 74 -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
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.0.1: Cluster-Summary - A tool to summarise CD-HIT clustering files.
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.0.1: A tool for gene clustering and analysis.
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/ -name_split _combined.gff3
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-w 99 -a
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|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
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.0.1
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 -w 99 -a
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
- [-input_fasta INPUT_FASTA] [-name_split NAME_SPLIT] [-sequence_type {AA,DNA}] [-gene_ident GENE_IDENT]
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
- -name_split NAME_SPLIT
174
- Substring to split filenames and extract genome names (e.g., '_combined.gff3') - Use with -input_type
175
- separate/combined.
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
- -w WRITE_GROUPS Output gene groups as a single FASTA file (specify levels: e.g., '-w 99,95').
190
- -wi Output individual FASTA files for each group.
191
- -a Align and concatenate sequences for 'core' groups.
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
- [-reclustered RECLUSTERED] [-seq_tag SEQUENCE_TAG] [-group_mode {Species,Genus}] [-species_groups SPECIES_GROUPS] [-genus_groups GENUS_GROUPS]
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
- -w WRITE_GROUPS Output gene groups as a single FASTA file (specify levels: e.g., '-w 99,95').
226
- -wi Output individual FASTA files for each group.
227
- -a Align and concatenate sequences for 'core' groups.
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 -name_split .gff3 -output_dir .../test_data/genomes -output_name combine_fasta_seqs.fa -input_type combined
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} -name_split NAME_SPLIT -output_dir OUTPUT_DIR -output_name
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.0.1: Seq-Combiner - A tool to extract sequences from GFF/FASTA files and prepare them for PyamilySeq.
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
- for combining multiple FASTA files together.
257
- -name_split NAME_SPLIT
258
- substring used to split the filename and extract the genome name ('_combined.gff3' or '.gff').
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
- "misc_RNA,gene,mRNA,CDS,rRNA,tRNA,tmRNA,CRISPR,ncRNA,regulatory_region,oriC,pseudo" - Not compatible with "fasta" input mode.
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 74 -input_fasta .../test/species/ -output_dir .../test/species/ -sequence_type AA
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.0.1: Group-Splitter - A tool to split multi-copy gene groups
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 74 -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
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.0.1: Cluster-Summary - A tool to summarise CD-HIT clustering files.
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.0.1
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 =