ORForise 1.4.3__py3-none-any.whl → 1.5.0__py3-none-any.whl

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 (30) hide show
  1. ORForise/Aggregate_Compare.py +318 -133
  2. ORForise/Annotation_Compare.py +243 -125
  3. ORForise/Comparator.py +600 -552
  4. ORForise/ORForise_Analysis/genome_Metrics.py +51 -33
  5. ORForise/Tools/Augustus/Augustus.py +30 -23
  6. ORForise/Tools/Balrog/Balrog.py +31 -23
  7. ORForise/Tools/EasyGene/EasyGene.py +30 -22
  8. ORForise/Tools/FGENESB/FGENESB.py +32 -25
  9. ORForise/Tools/FragGeneScan/FragGeneScan.py +29 -22
  10. ORForise/Tools/GFF/GFF.py +51 -47
  11. ORForise/Tools/GLIMMER_3/GLIMMER_3.py +34 -27
  12. ORForise/Tools/GeneMark/GeneMark.py +46 -40
  13. ORForise/Tools/GeneMark_HA/GeneMark_HA.py +29 -22
  14. ORForise/Tools/GeneMark_HMM/GeneMark_HMM.py +29 -22
  15. ORForise/Tools/GeneMark_S/GeneMark_S.py +29 -22
  16. ORForise/Tools/GeneMark_S_2/GeneMark_S_2.py +29 -25
  17. ORForise/Tools/MetaGene/MetaGene.py +29 -22
  18. ORForise/Tools/MetaGeneAnnotator/MetaGeneAnnotator.py +30 -23
  19. ORForise/Tools/MetaGeneMark/MetaGeneMark.py +30 -23
  20. ORForise/Tools/Prodigal/Prodigal.py +30 -26
  21. ORForise/Tools/Prokka/Prokka.py +30 -25
  22. ORForise/Tools/StORF_Reporter/StORF_Reporter.py +33 -26
  23. ORForise/Tools/TransDecoder/TransDecoder.py +29 -22
  24. ORForise/utils.py +204 -2
  25. {orforise-1.4.3.dist-info → orforise-1.5.0.dist-info}/METADATA +5 -5
  26. {orforise-1.4.3.dist-info → orforise-1.5.0.dist-info}/RECORD +30 -30
  27. {orforise-1.4.3.dist-info → orforise-1.5.0.dist-info}/entry_points.txt +5 -0
  28. {orforise-1.4.3.dist-info → orforise-1.5.0.dist-info}/WHEEL +0 -0
  29. {orforise-1.4.3.dist-info → orforise-1.5.0.dist-info}/licenses/LICENSE +0 -0
  30. {orforise-1.4.3.dist-info → orforise-1.5.0.dist-info}/top_level.txt +0 -0
@@ -10,31 +10,36 @@ except ImportError:
10
10
 
11
11
  def Prokka(*args):
12
12
  tool_pred = args[0]
13
- genome = args[1]
13
+ dna_regions = args[1]
14
14
  types = args[2]
15
15
  prokkaORFs = collections.defaultdict(list)
16
- genome_size = len(genome)
17
- genome_rev = revCompIterative(genome)
18
- with open(tool_pred, 'r') as prodigal_input:
19
- for line in prodigal_input:
20
- if '#' not in line:
21
- line = line.split('\t')
22
- if "prokka" not in line[1] and line[8].startswith('ID='):
23
- start = int(line[3])
24
- stop = int(line[4])
25
- strand = line[6]
26
- info = line[8]
27
- if '-' in strand: # Reverse Compliment starts and stops adjusted
28
- r_start = genome_size - stop
29
- r_stop = genome_size - start
30
- startCodon = genome_rev[r_start:r_start + 3]
31
- stopCodon = genome_rev[r_stop - 2:r_stop + 1]
32
- elif '+' in strand:
33
- startCodon = genome[start - 1:start + 2]
34
- stopCodon = genome[stop - 3:stop]
35
- po = str(start) + ',' + str(stop)
36
- orf = [strand, startCodon, stopCodon, line[2], 'Prokka|'+info]
37
- prokkaORFs.update({po: orf})
16
+ for dna_region in dna_regions:
17
+ prokkaORFs[dna_region] = collections.OrderedDict()
18
+ for dna_region in dna_regions:
19
+ genome = dna_regions[dna_region][0]
20
+ genome_size = len(genome)
21
+ genome_rev = revCompIterative(genome)
22
+ with open(tool_pred, 'r') as prodigal_input:
23
+ for line in prodigal_input:
24
+ if '#' not in line:
25
+ line = line.split('\t')
26
+ if "prokka" not in line[1] and line[8].startswith('ID=') and dna_region in line[0] and "CDS" in line[2]:
27
+ start = int(line[3])
28
+ stop = int(line[4])
29
+ strand = line[6]
30
+ info = line[8]
31
+ if '-' in strand: # Reverse Compliment starts and stops adjusted
32
+ r_start = genome_size - stop
33
+ r_stop = genome_size - start
34
+ startCodon = genome_rev[r_start:r_start + 3]
35
+ stopCodon = genome_rev[r_stop - 2:r_stop + 1]
36
+ elif '+' in strand:
37
+ startCodon = genome[start - 1:start + 2]
38
+ stopCodon = genome[stop - 3:stop]
39
+ po = str(start) + ',' + str(stop)
40
+ orf = [strand, startCodon, stopCodon, line[2], 'Prokka']
41
+ prokkaORFs.update({po: orf})
38
42
 
39
- prodigalORFs = sortORFs(prokkaORFs)
40
- return prodigalORFs
43
+ for group in prokkaORFs:
44
+ prokkaORFs[group] = sortORFs(prokkaORFs[group])
45
+ return prokkaORFs
@@ -8,30 +8,37 @@ except ImportError:
8
8
  from ORForise.utils import sortORFs
9
9
 
10
10
 
11
- def StORF_Reporter(tool_pred, genome):
12
- storf_orfs = collections.OrderedDict()
13
- genome_size = len(genome)
14
- genome_rev = revCompIterative(genome)
15
- with open(tool_pred, 'r') as storf_input:
16
- for line in storf_input:
17
- if not line.startswith('#') and not line.startswith('\n'):
18
- line = line.split()
19
- if 'StORF_Reporter' in line[1] or 'StoRF_Reporter' in line[1] or 'StORF' in line[1] or 'StORF-Reporter' in line[1]: # need to harmonise this.
20
- start = int(line[3])
21
- stop = int(line[4])
22
- strand = line[6]
23
- info = line[8]
24
- if '-' in strand: # Reverse Compliment starts and stops adjusted
25
- r_start = genome_size - stop
26
- r_stop = genome_size - start
27
- startCodon = genome_rev[r_start:r_start + 3]
28
- stopCodon = genome_rev[r_stop - 2:r_stop + 1]
29
- elif '+' in strand:
30
- startCodon = genome[start:start + 3]
31
- stopCodon = genome[stop - 3:stop]
32
- po = str(start) + ',' + str(stop)
33
- orf = [strand, startCodon, stopCodon, 'CDS', info] # StORF/Con-StORF or CDS??
34
- storf_orfs.update({po: orf})
11
+ def StORF_Reporter(*args):
12
+ tool_pred = args[0]
13
+ dna_regions = args[1]
14
+ storf_ORFs = collections.OrderedDict()
15
+ for dna_region in dna_regions:
16
+ storf_ORFs[dna_region] = collections.OrderedDict()
17
+ for dna_region in dna_regions:
18
+ genome = dna_regions[dna_region][0]
19
+ genome_size = len(genome)
20
+ genome_rev = revCompIterative(genome)
21
+ with open(tool_pred, 'r') as storf_input:
22
+ for line in storf_input:
23
+ if not line.startswith('#') and not line.startswith('\n'):
24
+ line = line.split()
25
+ if 'StORF_Reporter' in line[1] or 'StoRF_Reporter' in line[1] or 'StORF' in line[1] or 'StORF-Reporter' in line[1] and dna_region in line[0]: # need to harmonise this.
26
+ start = int(line[3])
27
+ stop = int(line[4])
28
+ strand = line[6]
29
+ info = line[8]
30
+ if '-' in strand: # Reverse Compliment starts and stops adjusted
31
+ r_start = genome_size - stop
32
+ r_stop = genome_size - start
33
+ startCodon = genome_rev[r_start:r_start + 3]
34
+ stopCodon = genome_rev[r_stop - 2:r_stop + 1]
35
+ elif '+' in strand:
36
+ startCodon = genome[start:start + 3]
37
+ stopCodon = genome[stop - 3:stop]
38
+ po = str(start) + ',' + str(stop)
39
+ orf = [strand, startCodon, stopCodon, 'CDS', 'StORF-Reporter'] # StORF/Con-StORF or CDS??
40
+ storf_ORFs.update({po: orf})
35
41
 
36
- storf_orfs = sortORFs(storf_orfs)
37
- return storf_orfs
42
+ for group in storf_ORFs:
43
+ storf_ORFs[group] = sortORFs(storf_ORFs[group])
44
+ return storf_ORFs
@@ -8,28 +8,35 @@ except ImportError:
8
8
  from ORForise.utils import sortORFs
9
9
 
10
10
 
11
- def TransDecoder(tool_pred, genome):
11
+ def TransDecoder(*args):
12
+ tool_pred = args[0]
13
+ dna_regions = args[1]
12
14
  transDecoder_ORFs = collections.OrderedDict()
13
- genome_size = len(genome)
14
- genome_rev = revCompIterative(genome)
15
- with open(tool_pred, 'r') as transDecoder_Input:
16
- for line in transDecoder_Input:
17
- line = line.split()
18
- if len(line) == 9 and "transdecoder" in line[1] and "CDS" in line[2]:
19
- start = int(line[3])
20
- stop = int(line[4])
21
- strand = line[6]
22
- if '-' in strand: # Reverse Compliment starts and stops adjusted
23
- r_start = genome_size - stop
24
- r_stop = genome_size - start
25
- startCodon = genome_rev[r_start:r_start + 3]
26
- stopCodon = genome_rev[r_stop - 2:r_stop + 1]
27
- elif '+' in strand:
28
- startCodon = genome[start - 1:start + 2]
29
- stopCodon = genome[stop - 3:stop]
30
- po = str(start) + ',' + str(stop)
31
- orf = [strand, startCodon, stopCodon, 'CDS']
32
- transDecoder_ORFs.update({po: orf})
15
+ for dna_region in dna_regions:
16
+ transDecoder_ORFs[dna_region] = collections.OrderedDict()
17
+ for dna_region in dna_regions:
18
+ genome = dna_regions[dna_region][0]
19
+ genome_size = len(genome)
20
+ genome_rev = revCompIterative(genome)
21
+ with open(tool_pred, 'r') as transDecoder_Input:
22
+ for line in transDecoder_Input:
23
+ line = line.split()
24
+ if len(line) == 9 and "transdecoder" in line[1] and "CDS" in line[2] and dna_region in line[0]:
25
+ start = int(line[3])
26
+ stop = int(line[4])
27
+ strand = line[6]
28
+ if '-' in strand: # Reverse Compliment starts and stops adjusted
29
+ r_start = genome_size - stop
30
+ r_stop = genome_size - start
31
+ startCodon = genome_rev[r_start:r_start + 3]
32
+ stopCodon = genome_rev[r_stop - 2:r_stop + 1]
33
+ elif '+' in strand:
34
+ startCodon = genome[start - 1:start + 2]
35
+ stopCodon = genome[stop - 3:stop]
36
+ po = str(start) + ',' + str(stop)
37
+ orf = [strand, startCodon, stopCodon, 'CDS', 'TransDecoder']
38
+ transDecoder_ORFs.update({po: orf})
33
39
 
34
- transDecoder_ORFs = sortORFs(transDecoder_ORFs)
40
+ for group in transDecoder_ORFs:
41
+ transDecoder_ORFs[group] = sortORFs(transDecoder_ORFs[group])
35
42
  return transDecoder_ORFs
ORForise/utils.py CHANGED
@@ -4,7 +4,7 @@ import collections
4
4
  # Constants
5
5
  SHORT_ORF_LENGTH = 300
6
6
  MIN_COVERAGE = 75
7
- ORForise_Version = 'v1.4.3'
7
+ ORForise_Version = 'v1.5.0'
8
8
 
9
9
 
10
10
  def revCompIterative(watson): # Gets Reverse Complement
@@ -28,4 +28,206 @@ def sortGenes(Genes): # Will sort by given start position and then rearrange fo
28
28
  if detail[1] < prev_stop:
29
29
  Genes_Sorted[pos], Genes_Sorted[pos-1] = Genes_Sorted[pos-1], Genes_Sorted[pos]
30
30
  prev_stop = detail[1]
31
- return Genes_Sorted
31
+ return Genes_Sorted
32
+
33
+
34
+ def gff_load(options,gff_in,dna_regions):
35
+ count = 0
36
+ for line in gff_in: # Get gene loci from GFF - ID=Gene will also classify Pseudogenes as genes
37
+ line_data = line.split('\t')
38
+ if line.startswith('\n') or line.startswith('#') or 'European Nucleotide Archive' in line: # Not to crash on empty lines in GFF
39
+ continue
40
+ elif options.gene_ident[0] == 'ID=gene':
41
+ if line_data[0] in dna_regions and options.gene_ident[0] in line_data[8]:
42
+ start = int(line_data[3])
43
+ stop = int(line_data[4])
44
+ strand = line_data[6]
45
+ gene_details = [start,stop,strand]
46
+ dna_regions[line_data[0]][2].append({count:gene_details}) # This will add to list
47
+ count += 1
48
+ else:
49
+ try:
50
+ if line_data[2] == 'region':
51
+ continue
52
+ elif line_data[0] in dna_regions:
53
+ if any(gene_type in line_data[2] for gene_type in options.gene_ident): # line[2] for normal run
54
+ start = int(line_data[3])
55
+ stop = int(line_data[4])
56
+ strand = line_data[6]
57
+ gene_details = [start, stop, strand]
58
+ if gene_details not in dna_regions[line_data[0]][2]:
59
+ dna_regions[line_data[0]][2].append({count:gene_details}) # This will add to list
60
+ count += 1
61
+ except IndexError:
62
+ continue
63
+ return dna_regions
64
+
65
+
66
+ def fasta_load(fasta_in):
67
+ dna_regions = collections.OrderedDict()
68
+ first = True
69
+ if '>' in fasta_in.readline().rstrip():
70
+ fasta_in.seek(0)
71
+ #### Default for when presented with standard fasta file
72
+ for line in fasta_in:
73
+ line = line.strip()
74
+ if line.startswith('>') and first == False: # Check if first seq in file
75
+ dna_region_length = len(seq)
76
+ dna_regions.update({dna_region_id: (seq, dna_region_length, list(), None)})
77
+ seq = ''
78
+ dna_region_id = line.split()[0].replace('>', '')
79
+ elif line.startswith('>'):
80
+ seq = ''
81
+ dna_region_id = line.split()[0].replace('>', '')
82
+ else:
83
+ seq += str(line)
84
+ first = False
85
+ dna_region_length = len(seq)
86
+ dna_regions.update({dna_region_id: (seq, dna_region_length, list(), None)})
87
+ elif '##' in fasta_in.readline().rstrip(): # Clunky and may fall over
88
+ fasta_in.seek(0)
89
+ #### Called when presented with Prokka GFF file so must get fasta from inside it
90
+ ### Get to genome seq
91
+ at_FASTA = False
92
+ for line in fasta_in: # Get gene loci from GFF - ID=Gene will also classify Pseudogenes as genes
93
+ if line.startswith('##FASTA'): # Not to crash on empty lines in GFF
94
+ at_FASTA = True
95
+ elif at_FASTA == True:
96
+ line = line.strip()
97
+ if line.startswith('>') and first == False: # Check if first seq in file
98
+ dna_region_length = len(seq)
99
+ dna_regions.update({dna_region_id: (seq, dna_region_length, list(), None)})
100
+ seq = ''
101
+ dna_region_id = line.split()[0].replace('>', '')
102
+ elif line.startswith('>'):
103
+ seq = ''
104
+ dna_region_id = line.split()[0].replace('>', '')
105
+ else:
106
+ seq += str(line)
107
+ first = False
108
+ dna_region_length = len(seq)
109
+ dna_regions.update({dna_region_id: (seq, dna_region_length, list(), None)})
110
+
111
+ return dna_regions
112
+
113
+
114
+ def get_rep_metrics(result):
115
+ rep_metric_description = ('Percentage_of_Genes_Detected,Percentage_of_ORFs_that_Detected_a_Gene,'
116
+ 'Percent_Difference_of_All_ORFs,Median_Length_Difference,Percentage_of_Perfect_Matches,'
117
+ 'Median_Start_Difference_of_Matched_ORFs,Median_Stop_Difference_of_Matched_ORFs,'
118
+ 'Percentage_Difference_of_Matched_Overlapping_CDSs,Percent_Difference_of_Short-Matched-ORFs,'
119
+ 'Precision,Recall,False_Discovery_Rate')
120
+ rep_metrics = [result['rep_metrics']['Percentage_of_Genes_Detected'],
121
+ result['rep_metrics']['Percentage_of_ORFs_that_Detected_a_Gene'],
122
+ result['rep_metrics']['Percent_Difference_of_All_ORFs'],
123
+ result['rep_metrics']['Median_Length_Difference'],
124
+ result['rep_metrics']['Percentage_of_Perfect_Matches'],
125
+ result['rep_metrics']['Median_Start_Difference_of_Matched_ORFs'],
126
+ result['rep_metrics']['Median_Stop_Difference_of_Matched_ORFs'],
127
+ result['rep_metrics']['Percentage_Difference_of_Matched_Overlapping_CDSs'],
128
+ result['rep_metrics']['Percent_Difference_of_Short-Matched-ORFs'],
129
+ result['rep_metrics']['Precision'],
130
+ result['rep_metrics']['Recall'],
131
+ result['rep_metrics']['False_Discovery_Rate']]
132
+ return rep_metric_description, rep_metrics
133
+
134
+
135
+ def get_all_metrics(result):
136
+ all_metric_description = ('Number_of_ORFs,Percent_Difference_of_All_ORFs,Number_of_ORFs_that_Detected_a_Gene,'
137
+ 'Percentage_of_ORFs_that_Detected_a_Gene,Number_of_Genes_Detected,Percentage_of_Genes_Detected,'
138
+ 'Median_Length_of_All_ORFs,Median_Length_Difference,Minimum_Length_of_All_ORFs,Minimum_Length_Difference,'
139
+ 'Maximum_Length_of_All_ORFs,Maximum_Length_Difference,Median_GC_content_of_All_ORFs,'
140
+ 'Percent_Difference_of_All_ORFs_Median_GC,Median_GC_content_of_Matched_ORFs,'
141
+ 'Percent_Difference_of_Matched_ORF_GC,Number_of_ORFs_which_Overlap_Another_ORF,'
142
+ 'Percent_Difference_of_Overlapping_ORFs,Maximum_ORF_Overlap,Median_ORF_Overlap,'
143
+ 'Number_of_Matched_ORFs_Overlapping_Another_ORF,Percentage_Difference_of_Matched_Overlapping_CDSs,'
144
+ 'Maximum_Matched_ORF_Overlap,Median_Matched_ORF_Overlap,Number_of_Short-ORFs,Percent_Difference_of_Short-ORFs,'
145
+ 'Number_of_Short-Matched-ORFs,Percent_Difference_of_Short-Matched-ORFs,Number_of_Perfect_Matches,'
146
+ 'Percentage_of_Perfect_Matches,Number_of_Perfect_Starts,Percentage_of_Perfect_Starts,Number_of_Perfect_Stops,'
147
+ 'Percentage_of_Perfect_Stops,Number_of_Out_of_Frame_ORFs,Number_of_Matched_ORFs_Extending_a_Coding_Region,'
148
+ 'Percentage_of_Matched_ORFs_Extending_a_Coding_Region,Number_of_Matched_ORFs_Extending_Start_Region,'
149
+ 'Percentage_of_Matched_ORFs_Extending_Start_Region,Number_of_Matched_ORFs_Extending_Stop_Region,'
150
+ 'Percentage_of_Matched_ORFs_Extending_Stop_Region,Number_of_All_ORFs_on_Positive_Strand,'
151
+ 'Percentage_of_All_ORFs_on_Positive_Strand,Number_of_All_ORFs_on_Negative_Strand,'
152
+ 'Percentage_of_All_ORFs_on_Negative_Strand,Median_Start_Difference_of_Matched_ORFs,'
153
+ 'Median_Stop_Difference_of_Matched_ORFs,ATG_Start_Percentage,GTG_Start_Percentage,TTG_Start_Percentage,'
154
+ 'ATT_Start_Percentage,CTG_Start_Percentage,Other_Start_Codon_Percentage,TAG_Stop_Percentage,'
155
+ 'TAA_Stop_Percentage,TGA_Stop_Percentage,Other_Stop_Codon_Percentage,True_Positive,False_Positive,'
156
+ 'False_Negative,Precision,Recall,False_Discovery_Rate,Nucleotide_True_Positive,Nucleotide_False_Positive,'
157
+ 'Nucleotide_True_Negative,Nucleotide_False_Negative,Nucleotide_Precision,Nucleotide_Recall,'
158
+ 'Nucleotide_False_Discovery_Rate,ORF_Nucleotide_Coverage_of_Genome,Matched_ORF_Nucleotide_Coverage_of_Genome')
159
+ all_metrics = rep_metrics = [result['pred_metrics']['Number_of_ORFs'],
160
+ result['pred_metrics']['Percent_Difference_of_All_ORFs'],
161
+ result['pred_metrics']['Number_of_ORFs_that_Detected_a_Gene'],
162
+ result['pred_metrics']['Percentage_of_ORFs_that_Detected_a_Gene'],
163
+ result['pred_metrics']['Number_of_Genes_Detected'],
164
+ result['pred_metrics']['Percentage_of_Genes_Detected'],
165
+ result['pred_metrics']['Median_Length_of_All_ORFs'],
166
+ result['pred_metrics']['Median_Length_Difference'],
167
+ result['pred_metrics']['Minimum_Length_of_All_ORFs'],
168
+ result['pred_metrics']['Minimum_Length_Difference'],
169
+ result['pred_metrics']['Maximum_Length_of_All_ORFs'],
170
+ result['pred_metrics']['Maximum_Length_Difference'],
171
+ result['pred_metrics']['Median_GC_content_of_All_ORFs'],
172
+ result['pred_metrics']['Percent_Difference_of_All_ORFs_Median_GC'],
173
+ result['pred_metrics']['Median_GC_content_of_Matched_ORFs'],
174
+ result['pred_metrics']['Percent_Difference_of_Matched_ORF_GC'],
175
+ result['pred_metrics']['Number_of_ORFs_which_Overlap_Another_ORF'],
176
+ result['pred_metrics']['Percent_Difference_of_Overlapping_ORFs'],
177
+ result['pred_metrics']['Maximum_ORF_Overlap'],
178
+ result['pred_metrics']['Median_ORF_Overlap'],
179
+ result['pred_metrics']['Number_of_Matched_ORFs_Overlapping_Another_ORF'],
180
+ result['pred_metrics']['Percentage_Difference_of_Matched_Overlapping_CDSs'],
181
+ result['pred_metrics']['Maximum_Matched_ORF_Overlap'],
182
+ result['pred_metrics']['Median_Matched_ORF_Overlap'],
183
+ result['pred_metrics']['Number_of_Short-ORFs'],
184
+ result['pred_metrics']['Percent_Difference_of_Short-ORFs'],
185
+ result['pred_metrics']['Number_of_Short-Matched-ORFs'],
186
+ result['pred_metrics']['Percent_Difference_of_Short-Matched-ORFs'],
187
+ result['pred_metrics']['Number_of_Perfect_Matches'],
188
+ result['pred_metrics']['Percentage_of_Perfect_Matches'],
189
+ result['pred_metrics']['Number_of_Perfect_Starts'],
190
+ result['pred_metrics']['Percentage_of_Perfect_Starts'],
191
+ result['pred_metrics']['Number_of_Perfect_Stops'],
192
+ result['pred_metrics']['Percentage_of_Perfect_Stops'],
193
+ result['pred_metrics']['Number_of_Out_of_Frame_ORFs'],
194
+ result['pred_metrics']['Number_of_Matched_ORFs_Extending_a_Coding_Region'],
195
+ result['pred_metrics']['Percentage_of_Matched_ORFs_Extending_a_Coding_Region'],
196
+ result['pred_metrics']['Number_of_Matched_ORFs_Extending_Start_Region'],
197
+ result['pred_metrics']['Percentage_of_Matched_ORFs_Extending_Start_Region'],
198
+ result['pred_metrics']['Number_of_Matched_ORFs_Extending_Stop_Region'],
199
+ result['pred_metrics']['Percentage_of_Matched_ORFs_Extending_Stop_Region'],
200
+ result['pred_metrics']['Number_of_All_ORFs_on_Positive_Strand'],
201
+ result['pred_metrics']['Percentage_of_All_ORFs_on_Positive_Strand'],
202
+ result['pred_metrics']['Number_of_All_ORFs_on_Negative_Strand'],
203
+ result['pred_metrics']['Percentage_of_All_ORFs_on_Negative_Strand'],
204
+ result['pred_metrics']['Median_Start_Difference_of_Matched_ORFs'],
205
+ result['pred_metrics']['Median_Stop_Difference_of_Matched_ORFs'],
206
+ result['pred_metrics']['ATG_Start_Percentage'],
207
+ result['pred_metrics']['GTG_Start_Percentage'],
208
+ result['pred_metrics']['TTG_Start_Percentage'],
209
+ result['pred_metrics']['ATT_Start_Percentage'],
210
+ result['pred_metrics']['CTG_Start_Percentage'],
211
+ result['pred_metrics']['Other_Start_Codon_Percentage'],
212
+ result['pred_metrics']['TAG_Stop_Percentage'],
213
+ result['pred_metrics']['TAA_Stop_Percentage'],
214
+ result['pred_metrics']['TGA_Stop_Percentage'],
215
+ result['pred_metrics']['Other_Stop_Codon_Percentage'],
216
+ result['pred_metrics']['True_Positive'],
217
+ result['pred_metrics']['False_Positive'],
218
+ result['pred_metrics']['False_Negative'],
219
+ result['pred_metrics']['Precision'],
220
+ result['pred_metrics']['Recall'],
221
+ result['pred_metrics']['False_Discovery_Rate'],
222
+ result['pred_metrics']['Nucleotide_True_Positive'],
223
+ result['pred_metrics']['Nucleotide_False_Positive'],
224
+ result['pred_metrics']['Nucleotide_True_Negative'],
225
+ result['pred_metrics']['Nucleotide_False_Negative'],
226
+ result['pred_metrics']['Nucleotide_Precision'],
227
+ result['pred_metrics']['Nucleotide_Recall'],
228
+ result['pred_metrics']['Nucleotide_False_Discovery_Rate'],
229
+ result['pred_metrics']['ORF_Nucleotide_Coverage_of_Genome'],
230
+ result['pred_metrics']['Matched_ORF_Nucleotide_Coverage_of_Genome']]
231
+
232
+
233
+ return all_metric_description, all_metrics
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ORForise
3
- Version: 1.4.3
3
+ Version: 1.5.0
4
4
  Summary: ORForise - Platform for analysing and comparing Prokaryote CoDing Sequence (CDS) Gene Predictions.
5
5
  Home-page: https://github.com/NickJD/ORForise
6
6
  Author: Nicholas Dimonaco
@@ -63,7 +63,7 @@ Please report any issues to: https://github.com/NickJD/ORForise/issues
63
63
  usage: Annotation_Compare.py [-h] -dna GENOME_DNA -ref REFERENCE_ANNOTATION -t TOOL -tp TOOL_PREDICTION
64
64
  [-rt REFERENCE_TOOL] [-o OUTNAME] [-v {True,False}]
65
65
 
66
- ORForise v1.4.3: Annotatione-Compare Run Parameters.
66
+ ORForise v1.5.0: Annotatione-Compare Run Parameters.
67
67
 
68
68
  Required Arguments:
69
69
  -dna GENOME_DNA Genome DNA file (.fa) which both annotations are based on
@@ -113,7 +113,7 @@ Please report any issues to: https://github.com/NickJD/ORForise/issues
113
113
  usage: Aggregate_Compare.py [-h] -dna GENOME_DNA -t TOOLS -tp TOOL_PREDICTIONS -ref REFERENCE_ANNOTATION
114
114
  [-rt REFERENCE_TOOL] [-o OUTNAME] [-v {True,False}]
115
115
 
116
- ORForise v1.4.3: Aggregate-Compare Run Parameters.
116
+ ORForise v1.5.0: Aggregate-Compare Run Parameters.
117
117
 
118
118
  Required Arguments:
119
119
  -dna GENOME_DNA Genome DNA file (.fa) which both annotations are based on
@@ -267,7 +267,7 @@ Please report any issues to: https://github.com/NickJD/ORForise/issues
267
267
  usage: GFF_Adder.py [-h] -dna GENOME_DNA -ref REFERENCE_ANNOTATION -at ADDITIONAL_TOOL -add ADDITIONAL_ANNOTATION -o
268
268
  OUTPUT_FILE [-rt REFERENCE_TOOL] [-gi GENE_IDENT] [-gene_ident GENE_IDENT] [-olap OVERLAP]
269
269
 
270
- ORForise v1.4.3: GFF-Adder Run Parameters.
270
+ ORForise v1.5.0: GFF-Adder Run Parameters.
271
271
 
272
272
  Required Arguments:
273
273
  -dna GENOME_DNA Genome DNA file (.fa) which both annotations are based on
@@ -329,7 +329,7 @@ Please report any issues to: https://github.com/NickJD/ORForise/issues
329
329
  usage: GFF_Intersector.py [-h] -dna GENOME_DNA -ref REFERENCE_ANNOTATION -at ADDITIONAL_TOOL -add
330
330
  ADDITIONAL_ANNOTATION -o OUTPUT_FILE [-rt REFERENCE_TOOL] [-gi GENE_IDENT] [-cov COVERAGE]
331
331
 
332
- ORForise v1.4.3: GFF-Intersector Run Parameters.
332
+ ORForise v1.5.0: GFF-Intersector Run Parameters.
333
333
 
334
334
  Required Arguments:
335
335
  -dna GENOME_DNA Genome DNA file (.fa) which both annotations are based on
@@ -1,56 +1,56 @@
1
- ORForise/Aggregate_Compare.py,sha256=cY0PdA_SnywPcqwPomXmEHaZ6OUDS9k_QeLtXnewjiA,10648
2
- ORForise/Annotation_Compare.py,sha256=6y_RiJg0q9g4Bcwy8Lxi5gSDkMLwm6uYJG2evxnKAhU,10228
3
- ORForise/Comparator.py,sha256=kGRn7_CYKULI5xV7IH2RpRIP0xpj_OfPxO4iGdLBnKQ,45081
1
+ ORForise/Aggregate_Compare.py,sha256=WzP34E4YqkOBXlE9obZfPf3Sp1Gwl40WPqE7PsGntqk,22977
2
+ ORForise/Annotation_Compare.py,sha256=4o2bXOaIJ7gpwAfso5efDpu9GhUf36okVoSZT4KFbQU,18482
3
+ ORForise/Comparator.py,sha256=SJRbTFqn9fLm3sFfhT2J6fhxnPb_JzU7zAA75LLyHZU,47189
4
4
  ORForise/GFF_Adder.py,sha256=-BlF6DQWcbhyYT88M0ZkoaWA2YDDxsby-7jksfeJN1Q,14057
5
5
  ORForise/GFF_Intersector.py,sha256=EcDKyJr_47066kma2CguMf3uwzB2tYomPDFjmoX8IoU,9900
6
6
  ORForise/StORForise.py,sha256=2QU6q3wPK6iqtyKg2jEVwFTB4bSymyc-mSpk7T8yNaY,5431
7
7
  ORForise/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- ORForise/utils.py,sha256=39OeKjNTRkyoEqxsTCrcwucbrkKOq3CTd6wEm1p7MOA,1099
8
+ ORForise/utils.py,sha256=9HJk3Yx4ohrulEDI_ZriLFCVLmisY-Gx1xF1uNDqnnY,15548
9
9
  ORForise/ORForise_Analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  ORForise/ORForise_Analysis/cds_checker.py,sha256=x838-PDd8HxZ3uhfW7wPzaJdiVwomNaYOZzMe-09f_0,2643
11
11
  ORForise/ORForise_Analysis/gene_Lenghts.py,sha256=eDmJqVjBJYkBMuLr4s4XDA-E-fv0eEITpWAPySOynow,939
12
- ORForise/ORForise_Analysis/genome_Metrics.py,sha256=qsv9VNaeb6Z2-k7hmlNxXEGCzghHnxnYY-H718bMjhs,10085
12
+ ORForise/ORForise_Analysis/genome_Metrics.py,sha256=Vra7X6AVJoBvjT6EAO819dPpqAOnWMlwSkWhwTVWNZk,10417
13
13
  ORForise/ORForise_Analysis/hypothetical_gene_predictions.py,sha256=6SRNrNKUOHOnwsP96s1nI25oCj2oY4_2NcONO0EXj0c,3479
14
14
  ORForise/ORForise_Analysis/missed_Gene_Metrics.py,sha256=ir54WJ_UpY_1UQd9kz67tTDwZvt7NSb20Yz0yVKVX3w,10890
15
15
  ORForise/ORForise_Analysis/parital_Match_Analysis.py,sha256=a-f5MejmQftgrCUDtWV69Tp-UOYyJlgM77zf4v-MEVY,9515
16
16
  ORForise/ORForise_Analysis/result_File_Analysis.py,sha256=ZHKW6sRW45NEExBqLVDnxpBPwsZyGTU-vm1TjawFsgY,9886
17
17
  ORForise/ORForise_Analysis/start_Codon_Substitution.py,sha256=x_I7EGR0KqV3uos_UEJI79JKnuhjwqD-1XlJ0SR82uA,6114
18
18
  ORForise/Tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- ORForise/Tools/Augustus/Augustus.py,sha256=eeRiSWXCKKehLx2Nlktlfc-bnsqiWhLV5pvY_KVq8NI,1323
19
+ ORForise/Tools/Augustus/Augustus.py,sha256=rEZ3h3eHrCfMFDorXxF5h0j4Wr5vTHG_rrQ-1sOiRFs,1717
20
20
  ORForise/Tools/Augustus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- ORForise/Tools/Balrog/Balrog.py,sha256=DRHl9ZHft5NJ38O0WXHSGqAQRwVXxrTzo7O-0-AP4wA,1387
21
+ ORForise/Tools/Balrog/Balrog.py,sha256=wrxQe7Df-iYUq3IQvX8A9GzDy5qR9rt5LHkDnDUngKc,1768
22
22
  ORForise/Tools/Balrog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- ORForise/Tools/EasyGene/EasyGene.py,sha256=mOjHQBJAVyav0HkpRvFmZtCCkeH4KhnBIeB934bOVNs,1323
23
+ ORForise/Tools/EasyGene/EasyGene.py,sha256=_1gGRYulpnhgB2xL7ZsnkXF4U8O9XgC0XQTZq7XubC4,1752
24
24
  ORForise/Tools/EasyGene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- ORForise/Tools/FGENESB/FGENESB.py,sha256=TCvsGzfZ41tKkgF6TaBFpsuZBrueSygmoBco7d6o8-8,1480
25
+ ORForise/Tools/FGENESB/FGENESB.py,sha256=3Jxe2DzUTG77wllSJpN__c_4cdl_gcj2idLXNMkv1Cs,1871
26
26
  ORForise/Tools/FGENESB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- ORForise/Tools/FragGeneScan/FragGeneScan.py,sha256=l3lqIxRUEx7lIV8Odhm6NsTgfHTrriYXcFoA4WW-E-E,1376
27
+ ORForise/Tools/FragGeneScan/FragGeneScan.py,sha256=ofywMVF-FBM4s3FPwoWsJKQUX0T_iTCqlTXaeOxHw4g,1770
28
28
  ORForise/Tools/FragGeneScan/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- ORForise/Tools/GFF/GFF.py,sha256=RF-PtryGTV0Lgz6sT7L5idVEwCF_MP0prIcfaUYCoAQ,2806
29
+ ORForise/Tools/GFF/GFF.py,sha256=Z9xPCWNXrmRVvBR9_PNlajQz8ZYFHvOdXwCskXR1XhI,3219
30
30
  ORForise/Tools/GFF/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- ORForise/Tools/GLIMMER_3/GLIMMER_3.py,sha256=9WQNSdlhQOpHQ4zcxncrTb2Lt6tiUB8Y0FBoyGxG_Yc,1723
31
+ ORForise/Tools/GLIMMER_3/GLIMMER_3.py,sha256=McFulHAHV4e3ROVmTn0JSz-r0TTqiEor0MsemsIkSjc,2124
32
32
  ORForise/Tools/GLIMMER_3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- ORForise/Tools/GeneMark/GeneMark.py,sha256=l2Fptz4o-EFbZvFalGS4RNBcitJcElq3xQ4LPIrbAQ4,5374
33
+ ORForise/Tools/GeneMark/GeneMark.py,sha256=SeovWnoLy7Ktkc37TXLjWWUmmgEMvip7j2XIe5fiYaA,5815
34
34
  ORForise/Tools/GeneMark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- ORForise/Tools/GeneMark_HA/GeneMark_HA.py,sha256=FEp-Kp-pMvY-GiZMj0gI2kQEnHAHaR3njnq8rJJBxVo,1346
35
+ ORForise/Tools/GeneMark_HA/GeneMark_HA.py,sha256=nfMEAszBEZw4zhhW3VtZt6yqJprXkydVAR1a3RrAm1k,1737
36
36
  ORForise/Tools/GeneMark_HA/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- ORForise/Tools/GeneMark_HMM/GeneMark_HMM.py,sha256=sfW87XhLbkpJas0Ao7u0YM5DKVPEQyFmIN-exW3XshU,1359
37
+ ORForise/Tools/GeneMark_HMM/GeneMark_HMM.py,sha256=HK1SWj-M_9AWngMkkWOXQf6sr__kvON8ZL_wYRTMEzk,1753
38
38
  ORForise/Tools/GeneMark_HMM/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- ORForise/Tools/GeneMark_S/GeneMark_S.py,sha256=gU5lomUseYlUIl3iAy0NQUqAju4tnUntf5ScP4aoRfk,1334
39
+ ORForise/Tools/GeneMark_S/GeneMark_S.py,sha256=56FQ-u-uvZFN41Ii0tGCUuBWsZaPaxvigbuOVg_4QCw,1722
40
40
  ORForise/Tools/GeneMark_S/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- ORForise/Tools/GeneMark_S_2/GeneMark_S_2.py,sha256=EclP7u5Q7jGtmFJs2u7DLU_4dW8-LPcADAeOyAXPJ-U,1468
41
+ ORForise/Tools/GeneMark_S_2/GeneMark_S_2.py,sha256=OxYt_jsH1j61we45O3y-gf-nwnKm1JFUK2b9q1W9rVE,1799
42
42
  ORForise/Tools/GeneMark_S_2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- ORForise/Tools/MetaGene/MetaGene.py,sha256=N821p7fbPlDTHsDw8_Riqm2P2ZUqeGb85rhu66xZbFQ,1334
43
+ ORForise/Tools/MetaGene/MetaGene.py,sha256=sQ5tj-yWEKh4BDI3Hiw8KYSZv6fyN0DpZbp4BpYnBwY,1716
44
44
  ORForise/Tools/MetaGene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- ORForise/Tools/MetaGeneAnnotator/MetaGeneAnnotator.py,sha256=NJIk_8JK4P2Z2FgMWgIHEGE0K-kbJi5T1e4B_Z2oceQ,1469
45
+ ORForise/Tools/MetaGeneAnnotator/MetaGeneAnnotator.py,sha256=pfQgzwwBz54kVsLWH7GkZ85XCZ9rqj4gYfPdX8O3zWg,1882
46
46
  ORForise/Tools/MetaGeneAnnotator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
- ORForise/Tools/MetaGeneMark/MetaGeneMark.py,sha256=vIJxIBmfxMKut19nQWBc_C94V9oKDa6Eu4vEKnDrVf0,1452
47
+ ORForise/Tools/MetaGeneMark/MetaGeneMark.py,sha256=_JMGtHvuX-qM-PSFI6EV91Jm86DWluukwGq7lFFCCSo,1848
48
48
  ORForise/Tools/MetaGeneMark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- ORForise/Tools/Prodigal/Prodigal.py,sha256=8-MJrEbhSL4sbNjI1JEUZ1jm5PRz9OUBdlyD8qsSLjI,1427
49
+ ORForise/Tools/Prodigal/Prodigal.py,sha256=y8bnh9_A4DmTJAsKqD_1S_d9ak56ZXsnUiFhrGudNcw,1758
50
50
  ORForise/Tools/Prodigal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- ORForise/Tools/Prokka/Prokka.py,sha256=akq0lu2TbOqLt-GI27a0Zbh8yfJIVAHBi07FtCfCAcY,1537
51
+ ORForise/Tools/Prokka/Prokka.py,sha256=-wKNDcZTbnUpqeqlc7VvXcC0KnwMZ4BduWAlH1p8ULU,1887
52
52
  ORForise/Tools/Prokka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- ORForise/Tools/StORF_Reporter/StORF_Reporter.py,sha256=mljwJO1iNy1HxcuqHAqH5ODDuLomw9HcRwOEJDScNQc,1609
53
+ ORForise/Tools/StORF_Reporter/StORF_Reporter.py,sha256=areqA94r6nU3GOodnl4QzQbnkMd1XRve0SWn11XoOec,1993
54
54
  ORForise/Tools/StORF_Reporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  ORForise/Tools/StORF_Undetected/StORF_Undetected.py,sha256=B7f9AxXD6j2ip4QtuOi7pwtfBCxkexE0XiDCJrKSX5U,1318
56
56
  ORForise/Tools/StORF_Undetected/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -58,11 +58,11 @@ ORForise/Tools/StORF_Undetected/Completely_Undetected/Completey_Undetected.py,sh
58
58
  ORForise/Tools/StORF_Undetected/Completely_Undetected/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
59
  ORForise/Tools/StORF_Undetected/unvitiated_Genes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
60
  ORForise/Tools/StORF_Undetected/unvitiated_Genes/unvitiated_Missed_Genes.py,sha256=notWaFx7AG8BZjBhnGuSyitxa1cRK_7rygOPp9keGfM,1863
61
- ORForise/Tools/TransDecoder/TransDecoder.py,sha256=utnL52il6BGbbBxoizYPnY1qwBGeslYDCa5xU9RGWPg,1384
61
+ ORForise/Tools/TransDecoder/TransDecoder.py,sha256=YlYxxicuP8xjwNkAKbHOdfaurvOHH0whYxaiB6B2kjs,1778
62
62
  ORForise/Tools/TransDecoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- orforise-1.4.3.dist-info/licenses/LICENSE,sha256=eAL1bBUjSMCdvudcn9E3sbujCBCa839cqXxauONDbSU,32476
64
- orforise-1.4.3.dist-info/METADATA,sha256=7JZBTCxggexbQcUsHTNdZBKUQ1laUnINv0vIGq_6k0k,36479
65
- orforise-1.4.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
66
- orforise-1.4.3.dist-info/entry_points.txt,sha256=ss2cbLmljRmLIeZ3t48p_06NuQuRiKeA11IOUYg_uiY,246
67
- orforise-1.4.3.dist-info/top_level.txt,sha256=7kmFicUFY65FJmioc0cpZtXVz93V7KSKvZVWpGz5Hyk,9
68
- orforise-1.4.3.dist-info/RECORD,,
63
+ orforise-1.5.0.dist-info/licenses/LICENSE,sha256=eAL1bBUjSMCdvudcn9E3sbujCBCa839cqXxauONDbSU,32476
64
+ orforise-1.5.0.dist-info/METADATA,sha256=6H1gu2ry-qd8jkhbc90F5aJTAFF48K1jCRzOEeTW7QI,36479
65
+ orforise-1.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
66
+ orforise-1.5.0.dist-info/entry_points.txt,sha256=VXYTkaTIjYu4LhZjhRyCezsg7n9bNeG7W2l4FTwCopE,474
67
+ orforise-1.5.0.dist-info/top_level.txt,sha256=7kmFicUFY65FJmioc0cpZtXVz93V7KSKvZVWpGz5Hyk,9
68
+ orforise-1.5.0.dist-info/RECORD,,
@@ -4,3 +4,8 @@ Annotation-Compare = ORForise.Annotation_Compare:main
4
4
  GFF-Adder = ORForise.GFF_Adder:main
5
5
  GFF-Intersector = ORForise.GFF_Intersector:main
6
6
  StORForise = ORForise.StORForise:main
7
+ aggregate-compare = ORForise.Aggregate_Compare:main
8
+ annotation-compare = ORForise.Annotation_Compare:main
9
+ gff-adder = ORForise.GFF_Adder:main
10
+ gff-intersector = ORForise.GFF_Intersector:main
11
+ storforise = ORForise.StORForise:main