Output format
MacSyFinder provides different types of output files. At each run, MacSyFinder creates a new folder, whose name is based on a fixed prefix and a random suffix, for instance “macsyfinder-20130128_08-57-46”. MacSyFinder output files are stored in this run-specific folder.
Hmmer results’ output files
Raw Hmmer outputs are provided, as long with processed tabular outputs that include hits filtered as specified by the user. For instance, the Hmmer search for SctC homologs with the corresponding profile will result in the creation of two output files: “sctC.search_hmm.out” for the raw HMMER output file and “sctC.res_hmm_extract” for the output file after processing/filtering of the HMMER results by MacSyFinder.
The processed output file “sctC.res_hmm_extract” recalls on the first lines the parameters used for hits filtering and relevant information on the matches, as in this example:
# gene: sctC extract from /Users/bob/macsyfinder_results/
macsyfinder-20130128_08-57-46/sctC.search_hmm.out hmm output
# profile length= 544
# i_evalue threshold= 0.001000
# coverage threshold= 0.500000
# hit_id replicon_name position_hit hit_sequence_length gene_name gene_system i_eval score
profile_coverage sequence_coverage begin end
PSAE001c01_006940 PSAE001c01 3450 803 sctC T3SS 1.1e-41 141.6
0.588235 0.419676 395 731
PSAE001c01_018920 PSAE001c01 4634 776 sctC T3SS 9.2e-48 161.7
0.976103 0.724227 35 596
PSAE001c01_031420 PSAE001c01 5870 658 sctC T3SS 2.7e-52 176.7
0.963235 0.844985 49 604
PSAE001c01_051090 PSAE001c01 7801 714 sctC T3SS 1.9e-46 157.4
0.571691 0.463585 374 704
Note
Each tabular output file contains a header line describing each column in the output.
Output files for the “ordered replicon(s)” search modes
These output files are provided when MacSyFinder search proceeds on a set of proteins that are deemed to follow the order of their genes on replicons. This corresponds to the two search modes gembase and ordered_replicon.
Systems detection results
Different types of output files are provided, human-readable files “.txt”, and tabulated files “.tsv”. For the latter, headers are provided with the content of the lines in the file.
best_solution.tsv - This file contains the best solution found by MacSyFinder in terms of systems detected, under the form of a per-component, tabulated report file. A solution consists in a set of compatible systems (no components’ overlap allowed). If multiple solutions showed a maximal score, the solution maximizing
the number of components in systems and
the number of systems detected is proposed.
To see potential other best solutions (in case several obtained the same highest score), see file all_best_solutions.tsv.
To see all possible, candidate systems without further processing, see files all_systems.txt and all_systems.tsv.
The best_solution.tsv file is the most similar to former V1 file macsyfinder.report.
best_solution_summary.tsv is a summary of the best_solution.tsv file.
all_systems.txt - This file describes the search process of all possible candidate systems given the definitions in systems’ models - without processing of the potential overlaps between candidate systems. This set of possible candidate systems are also given under the form of a tabulated file in all_systems.tsv.
rejected_clusters.txt - This file lists candidate clusters of systems’ components that were rejected by MacSyFinder during the search process, and were thus not assigned to a candidate system.
all_best_solutions.tsv - This file contains all possible best solutions under the form of a per-component, tabulated report file. To retrieve a single best solution as proposed by MacSyFinder, see file best_solution.tsv.
all_systems.tsv - This file contains all possible candidate systems given the definitions - without processing of the potential overlaps between candidate systems, under the form of a per-component, tabulated report file. It corresponds to the tabulated version of the all_systems.txt file.
all_systems.txt
The file starts with some comments:
the version of MacSyFinder used
the command line used to produce this file
Then for each replicon, the systems detected are listed along with their description:
system_id - the unique identifier of a system
model - the model assigned to this system
replicon - the name of the replicon harbouring the system
clusters - the clusters composition of this system
each clusters is a list of tuple
each tuple is composed of:
the name of the matching gene(s) in the replicon
the name of the corresponding gene profile(s)
the position of the corresponding sequence(s) along the replicon
occurrence - the average number of occurrences of each components of the system (as a potential proxy to estimate whether there’s the genetic potential for multiple systems in one)
wholeness - the percentage of the model’s components that were found in this system
loci nb - the number of different loci constituting this system
score - the score of the system. See here for more details
systems components - the number of occurrences of each model components in parenthesis the name of the matching profile in square brackets the name of other putative systems that would involve this gene
Here is an example of the all_systems.txt file:
# macsyfinder 20200217.dev
# macsyfinder --sequence-db DATA_TEST/sequences.prt --db-type=gembase --models-dir data/models/ --models TFF-SF_final all -w 4
# Systems found:
system id = VICH001.B.00001.C001_MSH_1
model = TFF-SF_final/MSH
replicon = VICH001.B.00001.C001
clusters = [('VICH001.B.00001.C001_00406', 'MSH_mshI', 366), ('VICH001.B.00001.C001_00407', 'MSH_mshJ', 367), ('VICH001.B.00001.C001_00408', 'MSH_mshK', 368), ('VICH001.B.00001.C001_00409', '
MSH_mshL', 369), ('VICH001.B.00001.C001_00410', 'MSH_mshM', 370), ('VICH001.B.00001.C001_00411', 'MSH_mshN', 371), ('VICH001.B.00001.C001_00412', 'MSH_mshE', 372), ('VICH001.B.00001.C001_0041
3', 'MSH_mshG', 373), ('VICH001.B.00001.C001_00414', 'MSH_mshF', 374), ('VICH001.B.00001.C001_00415', 'MSH_mshB', 375), ('VICH001.B.00001.C001_00416', 'MSH_mshA', 376), ('VICH001.B.00001.C001
_00417', 'MSH_mshC', 377), ('VICH001.B.00001.C001_00418', 'MSH_mshD', 378), ('VICH001.B.00001.C001_00419', 'MSH_mshO', 379), ('VICH001.B.00001.C001_00420', 'MSH_mshP', 380), ('VICH001.B.00001
.C001_00421', 'MSH_mshQ', 381)]
occ = 1
wholeness = 0.941
loci nb = 1
score = 10.500
mandatory genes:
- MSH_mshA: 1 (MSH_mshA)
- MSH_mshE: 1 (MSH_mshE)
- MSH_mshG: 1 (MSH_mshG)
- MSH_mshL: 1 (MSH_mshL)
- MSH_mshM: 1 (MSH_mshM)
accessory genes:
- MSH_mshB: 1 (MSH_mshB)
- MSH_mshC: 1 (MSH_mshC)
- MSH_mshD: 1 (MSH_mshD)
- MSH_mshF: 1 (MSH_mshF)
- MSH_mshI: 1 (MSH_mshI)
- MSH_mshI2: 0 ()
- MSH_mshJ: 1 (MSH_mshJ)
- MSH_mshK: 1 (MSH_mshK)
- MSH_mshN: 1 (MSH_mshN)
- MSH_mshO: 1 (MSH_mshO)
- MSH_mshQ: 1 (MSH_mshQ)
- MSH_mshP: 1 (MSH_mshP)
neutral genes:
============================================================
system id = VICH001.B.00001.C001_T4P_14
model = TFF-SF_final/T4P
replicon = VICH001.B.00001.C001
clusters = [('VICH001.B.00001.C001_00476', 'T4P_pilT', 427), ('VICH001.B.00001.C001_00477', 'T4P_pilU', 428)], [('VICH001.B.00001.C001_00847', 'T4P_pilO', 778), ('VICH001.B.00001.C001_00850',
'T4P_pilE', 781), ('VICH001.B.00001.C001_00851', 'T4P_fimT', 782), ('VICH001.B.00001.C001_00852', 'T4P_pilW', 783), ('VICH001.B.00001.C001_00853', 'T4P_pilX', 784), ('VICH001.B.00001.C001_00
854', 'T4P_pilV', 785)], [('VICH001.B.00001.C001_02305', 'T4P_pilA', 2202), ('VICH001.B.00001.C001_02306', 'T4P_pilB', 2203), ('VICH001.B.00001.C001_02307', 'T4P_pilC', 2204), ('VICH001.B.000
01.C001_02308', 'T4P_pilD', 2205)], [('VICH001.B.00001.C001_02502', 'MSH_mshM', 2391), ('VICH001.B.00001.C001_02505', 'T4P_pilQ', 2394), ('VICH001.B.00001.C001_02506', 'T4P_pilP', 2395), ('VI
CH001.B.00001.C001_02507', 'T4P_pilO', 2396), ('VICH001.B.00001.C001_02508', 'T4P_pilN', 2397), ('VICH001.B.00001.C001_02509', 'T4P_pilM', 2398)]
occ = 1
wholeness = 0.944
loci nb = 4
score = 12.000
mandatory genes:
- T4P_pilE: 1 (T4P_pilE)
- T4P_pilB: 1 (T4P_pilB)
- T4P_pilC: 1 (T4P_pilC)
- T4P_pilO: 2 (T4P_pilO, T4P_pilO)
- T4P_pilQ: 1 (T4P_pilQ)
- T4P_pilN: 1 (T4P_pilN)
- T4P_pilT: 1 (T4P_pilT)
- T4P_pilD: 1 (T4P_pilD [VICH001.B.00001.C001_T2SS_4])
accessory genes:
- T4P_pilA: 1 (T4P_pilA)
- T4P_pilV: 1 (T4P_pilV)
- T4P_pilY: 0 ()
- T4P_pilW: 1 (T4P_pilW)
- T4P_pilX: 1 (T4P_pilX)
- T4P_fimT: 1 (T4P_fimT)
- T4P_pilM: 1 (T4P_pilM)
- T4P_pilP: 1 (T4P_pilP)
- T4P_pilU: 1 (T4P_pilU)
- MSH_mshM: 1 (MSH_mshM)
neutral genes:
all_systems.tsv
This corresponds to the tabulated version of the systems listed in all_systems.txt. Each line corresponds to a “hit” that has been assigned to a detected system. It includes:
replicon - the name of the replicon it belongs to
hit_id - the unique identifier of the hit
gene_name - the name of the component identified by the hit
hit_pos - the position of the sequence in the replicon
model_fqn - the model fully-qualified name
sys_id - the unique identifier attributed to the detected system
sys_loci - the number of loci
locus_num - the number of the locus where is located this gene. Loners gene have locus_num = 0
sys_wholeness - the wholeness of the system
sys_score - the system score
sys_occ - the estimated number of system occurrences that could be potentially “filled” with this system’s occurrence, based on the average number of each component found. A proxy for the genetic potential ton encode several systems from the set of components found in this one occurrence.
hit_gene_ref - the gene in the model whose this hit plays the role of
hit_status - the status of the component in the assigned system’s definition
hit_seq_len - the length of the protein sequence matched by this hit
hit_i_eval - Hmmer statistics, the independent-evalue
hit_score - Hmmer score
hit_profile_cov - the percentage of the profile covered by the alignment with the sequence
hit_seq_cov - the percentage of the sequence covered by the alignment with the profile
hit_begin_match - the position in the sequence where the profile match begins
hit_end_match - the position in the sequence where the profile match ends
used_in - whether the hit could be used in another system’s occurrence
This file can be easily parsed using the Python pandas library.
import pandas as pd
systems = pd.read_csv("path/to/systems.tsv", sep='\t', comment='#')
Note
each system reported is separated from the others with a blank line to ease human reading. These lines are ignored during the parsing with pandas.
# macsyfinder 20210421.dev
# /home/bneron/Projects/GEM/MacSyFinder/MacSyFinder/py37/bin/macsyfinder --db-type=gembase --models-dir=tests/data//models/ --models TFF-SF Archaeal-T4P ComM MSH T2SS T4bP T4P Tad --relative-path --sequence-db tests/data/base/gembase.fasta -w 12 --previous-run tests/data/functional_test_gembase/ -o functional_test_gembase_2
# Systems found:
replicon hit_id gene_name hit_pos model_fqn sys_id sys_loci locus_num sys_wholeness sys_score sys_occ hit_gene_ref hit_status hit_seq_len hit_i_eval hit_score hit_profile_cov hit_seq_cov hit_begin_match hit_end_match used_in
GCF_000005845 GCF_000005845_000970 T4P_pilC 97 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilC mandatory 400 2.2e-105 353.100 0.991 0.830 62 393
GCF_000005845 GCF_000005845_000980 T4P_pilB 98 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilB mandatory 461 8.9e-152 506.100 0.948 0.850 62 453
GCF_000005845 GCF_000005845_000990 T4P_pilA 99 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilA accessory 146 1.1e-19 71.200 0.859 0.473 5 73
GCF_000005845 GCF_000005845_025680 T4P_pilW 2568 TFF-SF/T4P GCF_000005845_T4P_25 3 2 0.556 7.800 1 T4P_pilW accessory 187 3.3e-08 34.500 0.625 0.401 6 80
GCF_000005845 GCF_000005845_025690 T4P_fimT 2569 TFF-SF/T4P GCF_000005845_T4P_25 3 2 0.556 7.800 1 T4P_fimT accessory 156 2.5e-06 28.500 0.939 0.397 5 66
GCF_000005845 GCF_000005845_026740 T4P_pilT 2674 TFF-SF/T4P GCF_000005845_T4P_25 3 0 0.556 7.800 1 T4P_pilT mandatory 326 1.1e-117 393.600 0.944 0.979 3 321
GCF_000005845 GCF_000005845_026930 T2SS_gspO 2693 TFF-SF/T4P GCF_000005845_T4P_25 3 0 0.556 7.800 1 T4P_pilD mandatory 269 1.3e-87 294.000 1.000 0.859 30 260 GCF_000005845_T2SS_2
GCF_000005845 GCF_000005845_030590 T4P_pilQ 3059 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilQ mandatory 412 5.9e-51 173.100 0.919 0.408 244 411
GCF_000005845 GCF_000005845_030620 T4P_pilN 3062 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilN mandatory 179 3.8e-09 37.500 0.986 0.765 5 141
GCF_000005845 GCF_000005845_030630 T4P_pilM 3063 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilM accessory 259 1.1e-09 39.300 0.988 0.598 8 162
Note
That if a loner is not clustered with other genes it is not considered as locus. So it’s locus number is 0 and not count for sys_loci (number of loci for a system) see above lines
GCF_000005845 GCF_000005845_026740 T4P_pilT 2674 TFF-SF/T4P GCF_000005845_T4P_25 3 0 0.556 7.800
GCF_000005845 GCF_000005845_026930 T2SS_gspO 2693 TFF-SF/T4P GCF_000005845_T4P_25 3 0 0.556 7.800
best_solution.tsv and all_best_solutions.tsv
Since MacSyFinder 2.0, a combinatorial exploration of solutions using sets of systems found is performed. We call best solution, the combination of systems offering the highest score.
The best_solution.tsv and all_best_solutions.tsv files have the same structure as the file all_systems.tsv, except that there is an extra column sol_id which is a solution identifier added to the file all_best_solutions.tsv. The systems that have the same “sol_id” belong to a same solution.
As the files have the same structure as all_systems.tsv, they can also be parsed with pandas as shown above.
For the description of the fields of best_solution.tsv, see above those of the all_systems.tsv file.
For the all_best_solutions.tsv, each line corresponds to a “hit” that has been assigned to a detected system. It includes:
sol_id - the name of the solution it is part of
replicon - the name of the replicon it belongs to
hit_id - the unique identifier of the hit
gene_name - the name of the component identified by the hit
hit_pos - the position of the sequence in the replicon
model_fqn - the model fully-qualified name
sys_id - the unique identifier attributed to the detected system
sys_loci - the number of loci
locus_num - the number of the locus where is located this gene. Loners gene have locus_num = 0
sys_wholeness - the wholeness of the system
sys_score - the system score
sys_occ - the estimated number of system occurrences that could be potentially “filled” with this system’s occurrence, based on the average number of each component found. A proxy for the genetic potential ton encode several systems from the set of components found in this one occurrence.
hit_gene_ref - the gene in the model whose this hit plays the role of
hit_status - the status of the component in the assigned system’s definition
hit_seq_len - the length of the protein sequence matched by this hit
hit_i_eval - Hmmer statistics, the independent-evalue
hit_score - Hmmer score
hit_profile_cov - the percentage of the profile covered by the alignment with the sequence
hit_seq_cov - the percentage of the sequence covered by the alignment with the profile
hit_begin_match - the position in the sequence where the profile match begins
hit_end_match - the position in the sequence where the profile match ends
used_in - whether the hit could be used in another system’s occurrence
Note
each system reported is separated from the others with a blank line to ease human reading. These lines are ignored during the parsing with pandas.
Example of best_solution.tsv files
# macsyfinder 20210421.dev
# /home/bneron/Projects/GEM/MacSyFinder/MacSyFinder/py37/bin/macsyfinder --db-type=gembase --models-dir=tests/data//models/ --models TFF-SF Archaeal-T4P ComM MSH T2SS T4bP T4P Tad --relative-path --sequence-db tests/data/base/gembase.fasta -w 12 --previous-run tests/data/functional_test_gembase/ -o functional_test_gembase_2
# Systems found:
replicon hit_id gene_name hit_pos model_fqn sys_id sys_loci locus_num sys_wholeness sys_score sys_occ hit_gene_ref hit_status hit_seq_len hit_i_eval hit_score hit_profile_cov hit_seq_cov hit_begin_match hit_end_match used_in
GCF_000005845 GCF_000005845_000970 T4P_pilC 97 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilC mandatory 400 2.2e-105 353.100 0.991 0.830 62 393
GCF_000005845 GCF_000005845_000980 T4P_pilB 98 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilB mandatory 461 8.9e-152 506.100 0.948 0.850 62 453
GCF_000005845 GCF_000005845_000990 T4P_pilA 99 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilA accessory 146 1.1e-19 71.200 0.859 0.473 5 73
GCF_000005845 GCF_000005845_025680 T4P_pilW 2568 TFF-SF/T4P GCF_000005845_T4P_25 3 2 0.556 7.800 1 T4P_pilW accessory 187 3.3e-08 34.500 0.625 0.401 6 80
GCF_000005845 GCF_000005845_025690 T4P_fimT 2569 TFF-SF/T4P GCF_000005845_T4P_25 3 2 0.556 7.800 1 T4P_fimT accessory 156 2.5e-06 28.500 0.939 0.397 5 66
GCF_000005845 GCF_000005845_026740 T4P_pilT 2674 TFF-SF/T4P GCF_000005845_T4P_25 3 0 0.556 7.800 1 T4P_pilT mandatory 326 1.1e-117 393.600 0.944 0.979 3 321
GCF_000005845 GCF_000005845_026930 T2SS_gspO 2693 TFF-SF/T4P GCF_000005845_T4P_25 3 0 0.556 7.800 1 T4P_pilD mandatory 269 1.3e-87 294.000 1.000 0.859 30 260 GCF_000005845_T2SS_2
GCF_000005845 GCF_000005845_030590 T4P_pilQ 3059 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilQ mandatory 412 5.9e-51 173.100 0.919 0.408 244 411
GCF_000005845 GCF_000005845_030620 T4P_pilN 3062 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilN mandatory 179 3.8e-09 37.500 0.986 0.765 5 141
GCF_000005845 GCF_000005845_030630 T4P_pilM 3063 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilM accessory 259 1.1e-09 39.300 0.988 0.598 8 162
Example of all_best_solutions.tsv files
# macsyfinder 20210421.dev
# /home/bneron/Projects/GEM/MacSyFinder/MacSyFinder/py37/bin/macsyfinder --db-type=gembase --models-dir=tests/data//models/ --models TFF-SF Archaeal-T4P ComM MSH T2SS T4bP T4P Tad --relative-path --sequence-db tests/data/base/gembase.fasta -w 12 --previous-run tests/data/functional_test_gembase/ -o functional_test_gembase_2
# Systems found:
sol_id replicon hit_id gene_name hit_pos model_fqn sys_id sys_loci locus_num sys_wholeness sys_score sys_occ hit_gene_ref hit_status hit_seq_len hit_i_eval hit_score hit_profile_cov hit_seq_cov hit_begin_match hit_end_match used_in
1 GCF_000005845 GCF_000005845_000970 T4P_pilC 97 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilC mandatory 400 2.2e-105 353.100 0.991 0.830 62 393
1 GCF_000005845 GCF_000005845_000980 T4P_pilB 98 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilB mandatory 461 8.9e-152 506.100 0.948 0.850 62 453
1 GCF_000005845 GCF_000005845_000990 T4P_pilA 99 TFF-SF/T4P GCF_000005845_T4P_25 3 1 0.556 7.800 1 T4P_pilA accessory 146 1.1e-19 71.200 0.859 0.473 5 73
1 GCF_000005845 GCF_000005845_025680 T4P_pilW 2568 TFF-SF/T4P GCF_000005845_T4P_25 3 2 0.556 7.800 1 T4P_pilW accessory 187 3.3e-08 34.500 0.625 0.401 6 80
1 GCF_000005845 GCF_000005845_025690 T4P_fimT 2569 TFF-SF/T4P GCF_000005845_T4P_25 3 2 0.556 7.800 1 T4P_fimT accessory 156 2.5e-06 28.500 0.939 0.397 5 66
1 GCF_000005845 GCF_000005845_026740 T4P_pilT 2674 TFF-SF/T4P GCF_000005845_T4P_25 3 0 0.556 7.800 1 T4P_pilT mandatory 326 1.1e-117 393.600 0.944 0.979 3 321
1 GCF_000005845 GCF_000005845_026930 T2SS_gspO 2693 TFF-SF/T4P GCF_000005845_T4P_25 3 0 0.556 7.800 1 T4P_pilD mandatory 269 1.3e-87 294.000 1.000 0.859 30 260 GCF_000005845_T2SS_2
1 GCF_000005845 GCF_000005845_030590 T4P_pilQ 3059 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilQ mandatory 412 5.9e-51 173.100 0.919 0.408 244 411
1 GCF_000005845 GCF_000005845_030620 T4P_pilN 3062 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilN mandatory 179 3.8e-09 37.500 0.986 0.765 5 141
1 GCF_000005845 GCF_000005845_030630 T4P_pilM 3063 TFF-SF/T4P GCF_000005845_T4P_25 3 3 0.556 7.800 1 T4P_pilM accessory 259 1.1e-09 39.300 0.988 0.598 8 162
1 GCF_000005845 GCF_000005845_029970 T2SS_gspC 2997 TFF-SF/T2SS GCF_000005845_T2SS_1 1 1 0.857 9.000 1 T2SS_gspC mandatory 271 2.3e-19 70.400 0.897 0.358 47 143
1 GCF_000005845 GCF_000005845_029980 T2SS_gspD 2998 TFF-SF/T2SS GCF_000005845_T2SS_1 1 1 0.857 9.000 1 T2SS_gspD mandatory 650 2e-72 243.100 0.995 0.283 427 610
1 GCF_000005845 GCF_000005845_029990 T2SS_gspE 2999 TFF-SF/T2SS GCF_000005845_T2SS_1 1 1 0.857 9.000 1 T2SS_gspE mandatory 493 4e-196 652.300 0.995 0.850 65 483
1 GCF_000005845 GCF_000005845_030000 T2SS_gspF 3000 TFF-SF/T2SS GCF_000005845_T2SS_1 1 1 0.857 9.000 1 T2SS_gspF mandatory 398 9.9e-131 436.400 0.997 0.839 61 394
1 GCF_000005845 GCF_000005845_030010 T2SS_gspG 3001 TFF-SF/T2SS GCF_000005845_T2SS_1 1 1 0.857 9.000 1 T2SS_gspG mandatory 145 5.5e-39 133.000 1.000 0.607 8 95
2 GCF_000006725 GCF_000006725_000270 T4P_pilT 4269 TFF-SF/T4P GCF_000006725_T4P_64 2 0 0.667 8.500 1 T4P_pilT mandatory 344 1.8e-172 573.700 0.994 0.985 2 340
2 GCF_000006725 GCF_000006725_001050 T4P_fimT 4347 TFF-SF/T4P GCF_000006725_T4P_64 2 1 0.667 8.500 1 T4P_fimT accessory 187 1.4e-19 70.900 0.955 0.337 14 76
2 GCF_000006725 GCF_000006725_001060 T4P_pilV 4348 TFF-SF/T4P GCF_000006725_T4P_64 2 1 0.667 8.500 1 T4P_pilV accessory 158 3.2e-12 47.200 1.000 0.354 10 65
2 GCF_000006725 GCF_000006725_001070 T4P_pilW 4349 TFF-SF/T4P GCF_000006725_T4P_64 2 1 0.667 8.500 1 T4P_pilW accessory 316 1.1e-14 55.400 0.625 0.237 12 86
2 GCF_000006725 GCF_000006725_001080 T4P_pilX 4350 TFF-SF/T4P GCF_000006725_T4P_64 2 1 0.667 8.500 1 T4P_pilX accessory 195 2.1e-11 44.500 1.000 0.303 12 70
2 GCF_000006725 GCF_000006725_001090 T4P_pilY 4351 TFF-SF/T4P GCF_000006725_T4P_64 2 1 0.667 8.500 1 T4P_pilY accessory 1230 8.3e-144 480.900 0.998 0.415 608 1118
2 GCF_000006725 GCF_000006725_001100 T4P_pilE 4352 TFF-SF/T4P GCF_000006725_T4P_64 2 1 0.667 8.500 1 T4P_pilE mandatory 139 1.4e-17 64.700 0.833 0.396 16 70
Note
If a loner is not clustered with other genes it is not considered as locus. So it’s locus number is 0 and not count for sys_loci (number of loci for a system)
best_solution_summary.tsv
Is a concise view, based on best_solution.tsv, of which systems have been found in your replicons and how many per replicon. The 2 first lines are comment and indicate the msf version and the command line which generate this results. Then a table in tabulation separated columns, with models as columns and replicon as index.
# macsyfinder 20210420.dev
# macsyfinder --sequence-db DATA_TEST/sequences.prt --db-type=gembase --models-dir data/models/ --models TFF-SF_final all -w 4
model_fqn TFF-SF/MSH TFF-SF/T2SS TFF-SF/T4P TFF-SF/T4bP TFF-SF/Tad
replicon
GCF_000005845 0 1 1 0 0
GCF_000006725 0 1 1 0 0
GCF_000006745 1 1 2 1 0
GCF_000006765 0 3 1 0 1
GCF_000006845 0 0 1 0 0
GCF_000006905 0 1 0 0 1
GCF_000006925 0 0 1 0 0
GCF_000006945 0 0 1 0 0
as a tsv file it can be parsed easily using pandas:
import pandas as pd
solution = pd.read_csv('path to best_solution_summary.tsv', sep='\t', comment='#', index_col=0)
Note
If you want to do the same operation but based on the all_best_solutions.tsv file, you can do it with the few lines of pandas below:
import pandas as pd all_best_sol = '<macsyfinder_results_dir>/all_best_solutions.tsv' # read data from best_solution file data = pd.read_csv(all_best_sol, sep='\t', comment='#') # remove useless columns selection = data[['sol_id', 'replicon', 'sys_id', 'model_fqn']] # keep only one row per replicon, sys_id dropped = selection.drop_duplicates(subset=['sol_id', 'replicon', 'sys_id']) # count for each replicon which models have been detected and their occurrences summary = pd.crosstab(index=[dropped.sol_id, dropped.replicon], columns=dropped['model_fqn'])
if you are not fluent in pandas, we provide you a tiny script msf_summary.py based on few lines above to do the job
Then you can run the script
python msf_summary.py <path_to_all_best_solutions.tsv>
below an example of summary of all_best_solutions.tsv
sol_id replicon TFF-SF/MSH TFF-SF/T2SS TFF-SF/T4P TFF-SF/T4bP TFF-SF/Tad
1 GCF_000005845 0 1 1 0 0
2 GCF_000006725 0 1 1 0 0
3 GCF_000006725 0 1 1 0 0
4 GCF_000006745 1 1 2 1 0
5 GCF_000006745 1 1 2 1 0
6 GCF_000006745 1 1 1 1 0
7 GCF_000006765 0 3 1 0 1
8 GCF_000006845 0 0 1 0 0
9 GCF_000006905 0 1 0 0 1
10 GCF_000006925 0 0 1 0 0
11 GCF_000006945 0 0 1 0 0
rejected_clusters.txt
This file records all clusters or cluster combinations (if the “multi_loci” search mode is on) which have been discarded and the reason why they were not selected as systems.
The header is composed of the MacSyFinder version and the command line used followed by the description of the cluster(s). The list of the hits composing the cluster is presented at the end of the cluster or clusters’ combination, followed by the reason why it has been discarded.
# macsyfinder 20200511.dev
# /macsyfinder --sequence-db data/base/GCF_000006745.fasta --models TFF-SF all --models-dir data/models/ --db-type gembase -w 4
# Rejected clusters:
Cluster:
- model: T4P
- hits: (GCF_000005845_025680, T4P_pilW, 2568), (GCF_000005845_025690, T4P_fimT, 2569)
Cluster:
- model: T4P
- hits: (GCF_000005845_026930, T2SS_gspO, 2693)
Cluster:
- model: T4P
- hits: (GCF_000005845_030080, T2SS_gspO, 3008)
These clusters have been rejected because:
The quorum of mandatory genes required (4) is not reached: 1
The quorum of genes required (5) is not reached: 3
============================================================
Cluster:
- model: Archaeal-T4P
- hits: (GCF_000005845_019260, Archaeal-T4P_arCOG00589, 1926), (GCF_000005845_019310, Archaeal-T4P_arCOG02900, 1931)
These clusters have been rejected because:
The quorum of mandatory genes required (3) is not reached: 0
The quorum of genes required (3) is not reached: 2
============================================================
Output files for the “unordered replicon” search mode
Systems detection results
As for ordered replicons, several output files are provided.
all_possible_systems.txt - This file contains the description of candidate systems found.
all_possible_systems.tsv - The same information as in all_possible_systems.txt but in the tabulated tsv format.
uncomplete_systems.txt - This file contains occurrences for systems that did not complete models’ definitions and that were therefore not kept as candidate systems.
In this unordered search mode, there is no notion of order or distance of the components along the replicon. The clustering step is skipped by MacSyFinder, and it is therefore “only” checked for each type of system being searched whether there is the genetic potential to fulfil its model definition.
all_systems.txt
This file contains potential systems for unordered replicon in human readable format.
In this file, for each component of each searched system’s model, we report the number of hits found. For the description of the fields, see above.
Warning
In this mode the forbidden genes are reported here to the user. As we do not know if they co-localize (cluster) with the other genes they could be present in the replicon, yet far away - or very close on the contrary - to the potential system.
# macsyfinder 20201028.dev
# macsyfinder --sequence-db tests/data/base/one_replicon.fasta --db-type unordered --models-dir tests/data/models -m TFF-SF T4P_single_locus
# Systems found:
This replicon contains genetic materials needed for system TFF-SF/T4P_single_locus
system id = Unordered_T4P_single_locus_1
model = TFF-SF/T4P_single_locus
replicon = Unordered
hits = [('GCF_000006845_000250', 'T4P_pilY', 25), ('GCF_000006845_000700', 'T4P_pilY', 70), ('GCF_000006845_001030', 'T4P_pilQ', 103), ('GCF_000006845_001040', 'T4P_pilP', 104), ('GCF_000006845_001050', 'T4P_pilO', 105), ('GCF_000006845_001060', 'T4P_pilN', 106), ('GCF_000006845_001070', 'T4P_pilM', 107), ('GCF_000006845_003200', 'T4P_pilU', 320), ('GCF_000006845_004190', 'T4P_fimT', 419), ('GCF_000006845_004200', 'T4P_pilV', 420), ('GCF_000006845_004210', 'T4P_pilW', 421), ('GCF_000006845_004220', 'T4P_pilX', 422), ('GCF_000006845_004230', 'T4P_pilA', 423), ('GCF_000006845_010160', 'T4P_pilA', 1016), ('GCF_000006845_012440', 'T4P_pilA', 1244), ('GCF_000006845_014270', 'T4P_pilC', 1427), ('GCF_000006845_014280', 'T4P_pilD', 1428), ('GCF_000006845_014310', 'T4P_pilB', 1431), ('GCF_000006845_016430', 'T4P_pilT', 1643), ('GCF_000006845_016440', 'T4P_pilU', 1644)]
wholeness = 0.889
mandatory genes:
- T4P_pilE: 0 ()
- T4P_pilB: 1 (T4P_pilB)
- T4P_pilC: 1 (T4P_pilC)
- T4P_pilO: 1 (T4P_pilO)
- T4P_pilQ: 1 (T4P_pilQ)
- T4P_pilN: 1 (T4P_pilN)
- T4P_pilT: 1 (T4P_pilT)
- T4P_pilD: 1 (T4P_pilD)
accessory genes:
- T4P_pilA: 3 (T4P_pilA, T4P_pilA, T4P_pilA)
- T4P_pilV: 1 (T4P_pilV)
- T4P_pilY: 2 (T4P_pilY, T4P_pilY)
- T4P_pilW: 1 (T4P_pilW)
- T4P_pilX: 1 (T4P_pilX)
- T4P_fimT: 1 (T4P_fimT)
- T4P_pilM: 1 (T4P_pilM)
- T4P_pilP: 1 (T4P_pilP)
- T4P_pilU: 2 (T4P_pilU, T4P_pilU)
- MSH_mshM: 0 ()
neutral genes:
forbidden genes:
Use ordered replicon to have better prediction.
all_systems.tsv
This file contains the same information as in all_systems.txt but in tsv format. For the description of the fields, see above.
Note
This file can be easily parsed with pandas:
import pandas as pd
pot_systems = pd.read_csv('all_possible_systems.tsv', sep='\t', comment='#')
# macsyfinder 20201028.dev
# macsyfinder --sequence-db tests/data/base/one_replicon.fasta --db-type unordered --models-dir tests/data/models -m TFF-SF T4P_single_locus
# Likely Systems found:
replicon hit_id gene_name hit_pos model_fqn sys_id sys_wholeness hit_gene_ref hit_status hit_seq_len hit_i_eval hit_score hit_profile_cov hit_seq_cov hit_begin_match hit_end_match used_in
Unordered GCF_000006845_014310 T4P_pilB 1431 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilB mandatory 558 3.8e-178 589.000 0.964 0.731 146 553
Unordered GCF_000006845_014270 T4P_pilC 1427 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilC mandatory 410 1.9e-131 434.800 0.997 0.817 72 406
Unordered GCF_000006845_014280 T4P_pilD 1428 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilD mandatory 286 2.8e-82 272.300 1.000 0.829 28 264
Unordered GCF_000006845_001060 T4P_pilN 106 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilN mandatory 199 2.3e-33 112.200 0.986 0.714 7 148
Unordered GCF_000006845_001050 T4P_pilO 105 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilO mandatory 215 2.9e-37 124.800 0.980 0.693 23 171
Unordered GCF_000006845_001030 T4P_pilQ 103 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilQ mandatory 723 1.9e-62 206.600 0.935 0.238 548 719
Unordered GCF_000006845_016430 T4P_pilT 1643 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilT mandatory 347 6.9e-167 551.400 0.997 0.983 2 342
Unordered GCF_000006845_004190 T4P_fimT 419 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_fimT accessory 221 2.7e-23 78.900 0.985 0.294 7 71
Unordered GCF_000006845_004230 T4P_pilA 423 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilA accessory 162 8.6e-20 67.800 0.744 0.389 9 71
Unordered GCF_000006845_010160 T4P_pilA 1016 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilA accessory 149 1.3e-15 54.300 0.821 0.430 5 68
Unordered GCF_000006845_012440 T4P_pilA 1244 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilA accessory 129 1.5e-19 67.000 0.859 0.519 6 72
Unordered GCF_000006845_001070 T4P_pilM 107 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilM accessory 371 3.3e-43 144.300 0.988 0.429 30 188
Unordered GCF_000006845_001040 T4P_pilP 104 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilP accessory 181 2.7e-34 115.600 1.000 0.735 13 145
Unordered GCF_000006845_003200 T4P_pilU 320 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilU accessory 376 2.2e-170 562.600 0.985 0.896 16 352
Unordered GCF_000006845_016440 T4P_pilU 1644 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilU accessory 408 1.5e-127 421.800 0.994 0.833 40 379
Unordered GCF_000006845_004200 T4P_pilV 420 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilV accessory 203 9.6e-16 54.600 1.000 0.276 14 69
Unordered GCF_000006845_004210 T4P_pilW 421 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilW accessory 326 1.7e-10 38.000 0.517 0.190 17 78
Unordered GCF_000006845_004220 T4P_pilX 422 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilX accessory 203 2.8e-18 62.600 0.983 0.286 17 74
Unordered GCF_000006845_000250 T4P_pilY 25 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilY accessory 1006 2.2e-57 191.700 0.728 0.389 463 853
Unordered GCF_000006845_000700 T4P_pilY 70 TFF-SF/T4P_single_locus Unordered_T4P_single_locus_1 0.889 T4P_pilY accessory 1047 1.9e-57 191.900 0.721 0.362 516 894
uncomplete_systems.txt
This file is created when a search is performed in the unordered replicon mode. This file list models that probably do not have not full systems in the replicon(s). For each model, the reason why it is not fulfilled is reported, followed by the model description and the components found.
# macsyfinder 20201113.dev
# macsyfinder --sequence-db tests/data/base/one_replicon.fasta --db-type unordered --models-dir tests/data/models -m TFF-SF all
# Unlikely Systems found:
This replicon probably not contains a system TFF-SF/T2SS:
The quorum of mandatory genes required (4) is not reached: 1
The quorum of genes required (6) is not reached: 2
system id = Unordered_T2SS_3
model = TFF-SF/T2SS
replicon = Unordered
hits = [('GCF_000006845_002600', 'Tad_tadD', 260), ('GCF_000006845_014280', 'T4P_pilD', 1428), ('GCF_000006845_016430', 'T4P_pilT', 1643)]
wholeness = 0.143
mandatory genes:
- T2SS_gspD: 0 ()
- T2SS_gspE: 0 ()
- T2SS_gspF: 0 ()
- T2SS_gspG: 0 ()
- T2SS_gspC: 0 ()
- T2SS_gspO: 1 (T4P_pilD)
accessory genes:
- T2SS_gspM: 0 ()
- T2SS_gspH: 0 ()
- T2SS_gspI: 0 ()
- T2SS_gspJ: 0 ()
- T2SS_gspK: 0 ()
- T2SS_gspN: 0 ()
- T2SS_gspL: 0 ()
- Tad_tadD: 1 (Tad_tadD)
neutral genes:
forbidden genes:
- T4P_pilT: 1 (T4P_pilT)
Use ordered replicon to have better prediction.
============================================================
Logs and configuration files
Three specific output files are systematically built, whatever the search mode, to store information on MacSyFinder’s execution:
macsyfinder.conf - contains the configuration information of the run. It is useful to recover all the parameters used for the run.
macsyfinder.log - the log file, contains raw information on the run. Please send it to us with any bug report.