seqtrimnext 2.0.54 → 2.0.55
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.
- checksums.yaml +7 -0
- data/History.txt +5 -1
- data/Manifest.txt +6 -2
- data/bin/seqtrimnext +2 -2
- data/bin/split_fasta.rb +45 -0
- data/lib/seqtrimnext.rb +1 -1
- data/lib/seqtrimnext/actions/action_sanger_left_adapter.rb +31 -0
- data/lib/seqtrimnext/actions/action_sanger_right_adapter.rb +32 -0
- data/lib/seqtrimnext/plugins/plugin_indeterminations.rb +12 -6
- data/lib/seqtrimnext/plugins/plugin_sanger_adapters.rb +227 -0
- data/lib/seqtrimnext/templates/sanger.txt +1 -1
- data/lib/seqtrimnext/templates/{transcriptomics_plants.txt → transcriptomics_454_plants.txt} +0 -0
- metadata +40 -53
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 986a3873d8d82691a22f08f33859fc93859d0339
|
4
|
+
data.tar.gz: 09efc77da8b82592df05056af9a1aeda4909d6a3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bb5158b002d5847daf8c968c74da3fa120375ba7527abbb5c6397601b491db78a4416671fd5626fcf5821114613f175cd714866b154e2622067cd1f60c4abbc9
|
7
|
+
data.tar.gz: 0a44e613a6195480e69ff5d9298ad5b786e732748a03b5a7c2732d046c3c022c27af6d0d110cbbff885f907fe8e983d5f1f4261558dae074f48183d5b70d2746
|
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -18,12 +18,15 @@ bin/resume_rejected.rb
|
|
18
18
|
bin/reverse_paired.rb
|
19
19
|
bin/seqtrimnext
|
20
20
|
bin/split_fastq.rb
|
21
|
+
bin/split_fasta.rb
|
21
22
|
bin/split_ilumina_paired.rb
|
22
23
|
bin/split_paired.rb
|
23
24
|
History.txt
|
24
25
|
lib/seqtrimnext/actions/action_ab_adapter.rb
|
25
26
|
lib/seqtrimnext/actions/action_ab_far_adapter.rb
|
26
27
|
lib/seqtrimnext/actions/action_ab_left_adapter.rb
|
28
|
+
lib/seqtrimnext/actions/action_sanger_left_adapter.rb
|
29
|
+
lib/seqtrimnext/actions/action_sanger_right_adapter.rb
|
27
30
|
lib/seqtrimnext/actions/action_user_contaminant.rb
|
28
31
|
lib/seqtrimnext/actions/action_empty_insert.rb
|
29
32
|
lib/seqtrimnext/actions/action_ignore_repeated.rb
|
@@ -74,6 +77,7 @@ lib/seqtrimnext/classes/sequence_group.rb
|
|
74
77
|
lib/seqtrimnext/classes/sequence_with_action.rb
|
75
78
|
lib/seqtrimnext/plugins/plugin.rb
|
76
79
|
lib/seqtrimnext/plugins/plugin_ab_adapters.rb
|
80
|
+
lib/seqtrimnext/plugins/plugin_sanger_adapters.rb
|
77
81
|
lib/seqtrimnext/plugins/plugin_adapters.rb
|
78
82
|
lib/seqtrimnext/plugins/plugin_amplicons.rb
|
79
83
|
lib/seqtrimnext/plugins/plugin_contaminants.rb
|
@@ -99,7 +103,7 @@ lib/seqtrimnext/templates/genomics_short_reads.txt
|
|
99
103
|
lib/seqtrimnext/templates/genomics_short_reads_2.txt
|
100
104
|
lib/seqtrimnext/templates/transcriptomics_454.txt
|
101
105
|
lib/seqtrimnext/templates/transcriptomics_short_reads.txt
|
102
|
-
lib/seqtrimnext/templates/
|
106
|
+
lib/seqtrimnext/templates/transcriptomics_454_plants.txt
|
103
107
|
lib/seqtrimnext/utils/extract_samples.rb
|
104
108
|
lib/seqtrimnext/utils/fasta2xml.rb
|
105
109
|
lib/seqtrimnext/utils/global_match.rb
|
@@ -118,4 +122,4 @@ script/console
|
|
118
122
|
script/destroy
|
119
123
|
script/generate
|
120
124
|
test/test_helper.rb
|
121
|
-
test/test_seqtrimnext.rb
|
125
|
+
test/test_seqtrimnext.rb
|
data/bin/seqtrimnext
CHANGED
@@ -141,11 +141,11 @@ def show_additional_help
|
|
141
141
|
|
142
142
|
puts "\n"*3
|
143
143
|
puts "E.g.: processing a fastq sequences file"
|
144
|
-
puts "#{$0} -t genomics_454.txt -Q sequences.fastq"
|
144
|
+
puts "#{File.basename($0)} -t genomics_454.txt -Q sequences.fastq"
|
145
145
|
puts "\n"*2
|
146
146
|
|
147
147
|
puts "E.g.: processing a fasta file with qual"
|
148
|
-
puts "#{$0} -t genomics_454.txt -f sequences.fasta -q sequences.qual"
|
148
|
+
puts "#{File.basename($0)} -t genomics_454.txt -f sequences.fasta -q sequences.qual"
|
149
149
|
|
150
150
|
templates = Dir.glob(File.join($SEQTRIM_PATH,'templates','*.txt')).map{|t| File.basename(t)}
|
151
151
|
|
data/bin/split_fasta.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'scbi_fasta'
|
4
|
+
|
5
|
+
|
6
|
+
if ARGV.count < 3
|
7
|
+
puts "#{$0} FASTA_FILE OUTPUT_NAME SEQS_PER_FILE_COUNT"
|
8
|
+
exit
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
fastq = ARGV.shift
|
14
|
+
output_name = ARGV.shift
|
15
|
+
split_by = ARGV.shift.to_i
|
16
|
+
|
17
|
+
|
18
|
+
file_index=1
|
19
|
+
out=File.new("#{output_name}#{file_index}.fasta",'w')
|
20
|
+
|
21
|
+
fqr=FastaQualFile.new(fastq)
|
22
|
+
|
23
|
+
count = 0
|
24
|
+
|
25
|
+
fqr.each do |seq_name,seq_fasta,comments|
|
26
|
+
|
27
|
+
|
28
|
+
out.puts(">#{seq_name+i.to_s} #{comments}")
|
29
|
+
out.puts(seq_fasta)
|
30
|
+
|
31
|
+
count +=1
|
32
|
+
|
33
|
+
if (count % split_by) == 0
|
34
|
+
|
35
|
+
file_index +=1
|
36
|
+
out.close
|
37
|
+
out=File.new("#{output_name}#{file_index}.fasta",'w')
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
out.close
|
44
|
+
fqr.close
|
45
|
+
|
data/lib/seqtrimnext.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
require "seqtrim_action"
|
2
|
+
|
3
|
+
########################################################
|
4
|
+
# Author: Almudena Bocinos Rioboo
|
5
|
+
#
|
6
|
+
# Defines the main methods that are necessary to execute Plugin1
|
7
|
+
# Inherit: Plugin
|
8
|
+
########################################################
|
9
|
+
|
10
|
+
class ActionSangerLeftAdapter < SeqtrimAction
|
11
|
+
|
12
|
+
def initialize(start_pos,end_pos)
|
13
|
+
super(start_pos,end_pos)
|
14
|
+
@cut =true
|
15
|
+
|
16
|
+
end
|
17
|
+
#
|
18
|
+
# def apply_to(seq)
|
19
|
+
#
|
20
|
+
# # seq.seq_fasta = seq.seq_fasta.slice(start_pos,end_pos)
|
21
|
+
# $LOG.debug " Applying #{self.class} . BEGIN: #{@start_pos} END: #{@end_pos} "
|
22
|
+
#
|
23
|
+
# end
|
24
|
+
|
25
|
+
def apply_decoration(char)
|
26
|
+
return char.magenta.negative
|
27
|
+
|
28
|
+
# return char.magenta.negative
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "seqtrim_action"
|
2
|
+
|
3
|
+
########################################################
|
4
|
+
# Author: Almudena Bocinos Rioboo
|
5
|
+
#
|
6
|
+
# Defines the main methods that are necessary to execute Plugin1
|
7
|
+
# Inherit: Plugin
|
8
|
+
########################################################
|
9
|
+
|
10
|
+
class ActionSangerRightAdapter < SeqtrimAction
|
11
|
+
|
12
|
+
def initialize(start_pos,end_pos)
|
13
|
+
super(start_pos,end_pos)
|
14
|
+
@cut =true
|
15
|
+
|
16
|
+
end
|
17
|
+
#
|
18
|
+
# def apply_to(seq)
|
19
|
+
#
|
20
|
+
# # seq.seq_fasta = seq.seq_fasta.slice(start_pos,end_pos)
|
21
|
+
# $LOG.debug " Applying #{self.class} . BEGIN: #{@start_pos} END: #{@end_pos} "
|
22
|
+
#
|
23
|
+
# end
|
24
|
+
|
25
|
+
def apply_decoration(char)
|
26
|
+
return char.magenta.negative
|
27
|
+
|
28
|
+
# return char.magenta.negative
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
end
|
@@ -100,9 +100,11 @@ class PluginIndeterminations < Plugin
|
|
100
100
|
a.right_action=true
|
101
101
|
actions.push a
|
102
102
|
|
103
|
-
|
104
|
-
|
105
|
-
|
103
|
+
if @params.get_param('middle_indetermination_rejects')=='true'
|
104
|
+
seq.seq_rejected=true
|
105
|
+
seq.seq_rejected_by_message='Indeterminations in middle of sequence'
|
106
|
+
end
|
107
|
+
|
106
108
|
poly_size=poly['end']-poly['begin']+1
|
107
109
|
add_stats('size',poly_size)
|
108
110
|
end
|
@@ -180,9 +182,13 @@ class PluginIndeterminations < Plugin
|
|
180
182
|
default_value = 80
|
181
183
|
params.check_param(errors,'poly_n_percent','Integer',default_value,comment)
|
182
184
|
|
183
|
-
|
184
|
-
|
185
|
-
|
185
|
+
comment='Maximum distance to the end of the sequence to be considered an internal segment'
|
186
|
+
default_value = 15
|
187
|
+
params.check_param(errors,'poly_n_max_to_end','Integer',default_value,comment)
|
188
|
+
|
189
|
+
comment='Rejects sequences with indeterminations in the middle'
|
190
|
+
default_value = 'true'
|
191
|
+
params.check_param(errors,'middle_indetermination_rejects','String',default_value,comment)
|
186
192
|
|
187
193
|
return errors
|
188
194
|
end
|
@@ -0,0 +1,227 @@
|
|
1
|
+
require "plugin"
|
2
|
+
|
3
|
+
########################################################
|
4
|
+
# Author: DGF y ABR
|
5
|
+
#
|
6
|
+
# Defines the main methods that are necessary to execute PluginAdapters
|
7
|
+
# Inherit: Plugin
|
8
|
+
########################################################
|
9
|
+
|
10
|
+
class PluginSangerAdapters < Plugin
|
11
|
+
|
12
|
+
# adapters found at end of sequence are even 2 nt wide, cut in 5 because of statistics
|
13
|
+
MIN_ADAPTER_SIZE = 5
|
14
|
+
MIN_FAR_ADAPTER_SIZE = 13
|
15
|
+
MIN_LEFT_ADAPTER_SIZE = 9
|
16
|
+
|
17
|
+
def do_blasts(seqs)
|
18
|
+
|
19
|
+
# find MIDS with less results than max_target_seqs value
|
20
|
+
blast=BatchBlast.new("-db #{@params.get_param('adapters_sanger_db')}",'blastn'," -task blastn-short -perc_identity #{@params.get_param('blast_percent_sanger')} -word_size #{MIN_ADAPTER_SIZE}")
|
21
|
+
$LOG.debug('BLAST:'+blast.get_blast_cmd)
|
22
|
+
|
23
|
+
fastas=[]
|
24
|
+
|
25
|
+
seqs.each do |seq|
|
26
|
+
fastas.push ">"+seq.seq_name
|
27
|
+
fastas.push seq.seq_fasta
|
28
|
+
end
|
29
|
+
|
30
|
+
# fastas=fastas.join("\n")
|
31
|
+
|
32
|
+
blast_table_results = blast.do_blast(fastas)
|
33
|
+
|
34
|
+
# puts blast_table_results.inspect
|
35
|
+
|
36
|
+
return blast_table_results
|
37
|
+
end
|
38
|
+
|
39
|
+
# filter hits that are far the extreme and do not have a valid length
|
40
|
+
def filter_hits(hits,end_pos)
|
41
|
+
# hits.reverse_each do |hit|
|
42
|
+
# # if (hit.q_end < (end_pos-40)) && ((hit.q_end-hit.q_beg+1)<(@params.get_sanger_adapter(hit.subject_id).length*0.80).to_i)
|
43
|
+
# if ((hit.q_end-hit.q_beg+1)<(@params.get_sanger_adapter(hit.subject_id).length*0.80).to_i)
|
44
|
+
# hits.delete(hit)
|
45
|
+
# end
|
46
|
+
# end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
def filter_adapters(adapters)
|
51
|
+
|
52
|
+
min_size=@params.get_param('min_sanger_adapter_size').to_i
|
53
|
+
adapters.reverse_each do |c|
|
54
|
+
adapter_size=c.q_end-c.q_beg+1
|
55
|
+
|
56
|
+
if adapter_size < min_size
|
57
|
+
adapters.delete(c)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
def exec_seq(seq,blast_query)
|
65
|
+
if blast_query.query_id != seq.seq_name
|
66
|
+
raise "Blast and seq names does not match, blast:#{blast_query.query_id} sn:#{seq.seq_name}"
|
67
|
+
end
|
68
|
+
|
69
|
+
$LOG.debug "[#{self.class.to_s}, seq: #{seq.seq_name}]: looking for adapters into the sequence"
|
70
|
+
|
71
|
+
|
72
|
+
# blast=BatchBlast.new("-db #{File.join($FORMATTED_DB_PATH,'adapters_ab.fasta')}",'blastn'," -task blastn-short -evalue #{@params.get_param('blast_evalue_ab')} -perc_identity #{@params.get_param('blast_percent_ab')} -word_size #{MIN_ADAPTER_SIZE}")
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
# blast with only one sequence, no with many sequences from a database
|
77
|
+
#---------------------------------------------------------------------
|
78
|
+
|
79
|
+
# blast_table_results = blast.do_blast(seq.seq_fasta) #rise seq to adapterss executing over blast
|
80
|
+
|
81
|
+
#BlastTableResult.new(res)
|
82
|
+
# puts blast_query.inspect
|
83
|
+
# puts blast_table_results.inspect
|
84
|
+
|
85
|
+
# filter_hits(blast_query.hits, seq.seq_fasta.length)
|
86
|
+
|
87
|
+
adapters=[]
|
88
|
+
# blast_table_results.querys.each do |query| # first round to save adapters without overlap
|
89
|
+
merge_hits(blast_query.hits,adapters)
|
90
|
+
# end
|
91
|
+
|
92
|
+
begin
|
93
|
+
adapters2=adapters # second round to save adapters without overlap
|
94
|
+
adapters = []
|
95
|
+
merge_hits(adapters2,adapters)
|
96
|
+
end until (adapters2.count == adapters.count)
|
97
|
+
|
98
|
+
# type = 'ActionAbAdapter'
|
99
|
+
actions=[]
|
100
|
+
adapter_size=0
|
101
|
+
|
102
|
+
filter_adapters(adapters)
|
103
|
+
|
104
|
+
if adapters.count==1 # only one adapter
|
105
|
+
c=adapters.first
|
106
|
+
adapter_size=c.q_end-c.q_beg+1
|
107
|
+
message = c.subject_id
|
108
|
+
type = 'ActionSangerLeftAdapter'
|
109
|
+
stat_type='left'
|
110
|
+
add_stats('adapter_type',stat_type)
|
111
|
+
|
112
|
+
a = seq.new_action(c.q_beg,c.q_end,type)
|
113
|
+
a.message = message
|
114
|
+
a.reversed = c.reversed
|
115
|
+
a.left_action = true
|
116
|
+
actions.push a
|
117
|
+
|
118
|
+
add_stats('adapter_size',adapter_size)
|
119
|
+
add_stats('adapter_id',message)
|
120
|
+
|
121
|
+
elsif adapters.count >=2
|
122
|
+
type = 'ActionSangerLeftAdapter'
|
123
|
+
stat_type='left'
|
124
|
+
left_action=true
|
125
|
+
right_action=false
|
126
|
+
|
127
|
+
adapters.sort!{|a1,a2| a1.q_beg <=> a2.q_beg}
|
128
|
+
old_qend=adapters.first.q_end
|
129
|
+
|
130
|
+
max_slice_size=[]
|
131
|
+
|
132
|
+
# left_qend=adapters.first.q_end
|
133
|
+
adapters.each do |c| # adds the correspondent action to the sequence
|
134
|
+
|
135
|
+
|
136
|
+
# check if it is a right adapter
|
137
|
+
if c.q_beg > (old_qend+50)
|
138
|
+
type=type = 'ActionSangerRightAdapter'
|
139
|
+
stat_type='right'
|
140
|
+
left_action=false
|
141
|
+
right_action=true
|
142
|
+
end
|
143
|
+
|
144
|
+
adapter_size=c.q_end-c.q_beg+1
|
145
|
+
message = c.subject_id
|
146
|
+
add_stats('adapter_type',stat_type)
|
147
|
+
|
148
|
+
a = seq.new_action(c.q_beg,c.q_end,type)
|
149
|
+
a.message = message
|
150
|
+
a.reversed = c.reversed
|
151
|
+
a.left_action = left_action
|
152
|
+
a.right_action = right_action
|
153
|
+
|
154
|
+
# if action.last.q_end - a.start_pos > max_slice_size.last[:size]
|
155
|
+
|
156
|
+
# end
|
157
|
+
|
158
|
+
actions.push a
|
159
|
+
|
160
|
+
add_stats('adapter_size',adapter_size)
|
161
|
+
add_stats('adapter_id',message)
|
162
|
+
|
163
|
+
old_qend=adapters.first.q_end
|
164
|
+
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
168
|
+
|
169
|
+
if !actions.empty?
|
170
|
+
seq.add_actions(actions)
|
171
|
+
add_stats('sequences_with_adapter','count')
|
172
|
+
end
|
173
|
+
|
174
|
+
|
175
|
+
#
|
176
|
+
end
|
177
|
+
|
178
|
+
#Returns an array with the errors due to parameters are missing
|
179
|
+
def self.check_params(params)
|
180
|
+
errors=[]
|
181
|
+
|
182
|
+
comment='Blast E-value used as cut-off when searching for Sanger adapters'
|
183
|
+
# default_value = 1e-6
|
184
|
+
default_value = 1
|
185
|
+
params.check_param(errors,'blast_evalue_sanger','Float',default_value,comment)
|
186
|
+
|
187
|
+
comment='Minimum required identity (%) for a reliable Sanger adapter'
|
188
|
+
default_value = 95
|
189
|
+
params.check_param(errors,'blast_percent_sanger','Integer',default_value,comment)
|
190
|
+
|
191
|
+
comment='Minimum required adapter size for a valid Sanger adapter'
|
192
|
+
default_value = 10
|
193
|
+
params.check_param(errors,'min_sanger_adapter_size','Integer',default_value,comment)
|
194
|
+
|
195
|
+
comment='Path for Sanger adapters database'
|
196
|
+
default_value = File.join($FORMATTED_DB_PATH,'adapters_sanger.fasta')
|
197
|
+
params.check_param(errors,'adapters_sanger_db','DB',default_value,comment)
|
198
|
+
|
199
|
+
return errors
|
200
|
+
end
|
201
|
+
|
202
|
+
def self.get_graph_title(plugin_name,stats_name)
|
203
|
+
case stats_name
|
204
|
+
when 'adapter_type'
|
205
|
+
'Sanger adapters by type'
|
206
|
+
when 'adapter_size'
|
207
|
+
'Sanger adapters by size'
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
def self.get_graph_filename(plugin_name,stats_name)
|
212
|
+
return stats_name
|
213
|
+
|
214
|
+
# case stats_name
|
215
|
+
# when 'adapter_type'
|
216
|
+
# 'AB adapters by type'
|
217
|
+
# when 'adapter_size'
|
218
|
+
# 'AB adapters by size'
|
219
|
+
# end
|
220
|
+
end
|
221
|
+
|
222
|
+
def self.valid_graphs
|
223
|
+
return ['adapter_type']
|
224
|
+
end
|
225
|
+
|
226
|
+
|
227
|
+
end
|
@@ -17,7 +17,7 @@
|
|
17
17
|
# Help: <li>PluginLowQuality: trimming low quality regions from sequences. </li>
|
18
18
|
# Help: </ul>
|
19
19
|
|
20
|
-
plugin_list = PluginIndeterminations,
|
20
|
+
plugin_list = PluginIndeterminations,PluginSangerAdapters,PluginFindPolyAt,PluginContaminants,PluginVectors,PluginLowQuality
|
21
21
|
|
22
22
|
# do not remove cloned sequences
|
23
23
|
remove_clonality=false
|
data/lib/seqtrimnext/templates/{transcriptomics_plants.txt → transcriptomics_454_plants.txt}
RENAMED
File without changes
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seqtrimnext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 2.0.54
|
4
|
+
version: 2.0.55
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dario Guerrero & Almudena Bocinos
|
@@ -10,15 +9,15 @@ autorequire:
|
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
11
|
|
13
|
-
date:
|
12
|
+
date: 2013-07-24 00:00:00 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: narray
|
17
16
|
prerelease: false
|
18
17
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
-
|
19
|
+
- &id002
|
20
|
+
- ">="
|
22
21
|
- !ruby/object:Gem::Version
|
23
22
|
version: "0"
|
24
23
|
type: :runtime
|
@@ -26,124 +25,111 @@ dependencies:
|
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: gnuplot
|
28
27
|
prerelease: false
|
29
|
-
requirement: &
|
30
|
-
none: false
|
28
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
31
29
|
requirements:
|
32
|
-
-
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: "0"
|
30
|
+
- *id002
|
35
31
|
type: :runtime
|
36
|
-
version_requirements: *
|
32
|
+
version_requirements: *id003
|
37
33
|
- !ruby/object:Gem::Dependency
|
38
34
|
name: term-ansicolor
|
39
35
|
prerelease: false
|
40
|
-
requirement: &
|
41
|
-
none: false
|
36
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
42
37
|
requirements:
|
43
38
|
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 1.0.5
|
46
41
|
type: :runtime
|
47
|
-
version_requirements: *
|
42
|
+
version_requirements: *id004
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: xml-simple
|
50
45
|
prerelease: false
|
51
|
-
requirement: &
|
52
|
-
none: false
|
46
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
53
47
|
requirements:
|
54
48
|
- - ">="
|
55
49
|
- !ruby/object:Gem::Version
|
56
50
|
version: 1.0.12
|
57
51
|
type: :runtime
|
58
|
-
version_requirements: *
|
52
|
+
version_requirements: *id005
|
59
53
|
- !ruby/object:Gem::Dependency
|
60
54
|
name: scbi_blast
|
61
55
|
prerelease: false
|
62
|
-
requirement: &
|
63
|
-
none: false
|
56
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
64
57
|
requirements:
|
65
58
|
- - ">="
|
66
59
|
- !ruby/object:Gem::Version
|
67
60
|
version: 0.0.34
|
68
61
|
type: :runtime
|
69
|
-
version_requirements: *
|
62
|
+
version_requirements: *id006
|
70
63
|
- !ruby/object:Gem::Dependency
|
71
64
|
name: scbi_mapreduce
|
72
65
|
prerelease: false
|
73
|
-
requirement: &
|
74
|
-
none: false
|
66
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
75
67
|
requirements:
|
76
68
|
- - ">="
|
77
69
|
- !ruby/object:Gem::Version
|
78
70
|
version: 0.0.38
|
79
71
|
type: :runtime
|
80
|
-
version_requirements: *
|
72
|
+
version_requirements: *id007
|
81
73
|
- !ruby/object:Gem::Dependency
|
82
74
|
name: scbi_fasta
|
83
75
|
prerelease: false
|
84
|
-
requirement: &
|
85
|
-
none: false
|
76
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
86
77
|
requirements:
|
87
78
|
- - ">="
|
88
79
|
- !ruby/object:Gem::Version
|
89
80
|
version: 0.1.7
|
90
81
|
type: :runtime
|
91
|
-
version_requirements: *
|
82
|
+
version_requirements: *id008
|
92
83
|
- !ruby/object:Gem::Dependency
|
93
84
|
name: scbi_fastq
|
94
85
|
prerelease: false
|
95
|
-
requirement: &
|
96
|
-
none: false
|
86
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
97
87
|
requirements:
|
98
88
|
- - ">="
|
99
89
|
- !ruby/object:Gem::Version
|
100
90
|
version: 0.0.17
|
101
91
|
type: :runtime
|
102
|
-
version_requirements: *
|
92
|
+
version_requirements: *id009
|
103
93
|
- !ruby/object:Gem::Dependency
|
104
94
|
name: scbi_plot
|
105
95
|
prerelease: false
|
106
|
-
requirement: &
|
107
|
-
none: false
|
96
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
108
97
|
requirements:
|
109
98
|
- - ">="
|
110
99
|
- !ruby/object:Gem::Version
|
111
100
|
version: 0.0.6
|
112
101
|
type: :runtime
|
113
|
-
version_requirements: *
|
102
|
+
version_requirements: *id010
|
114
103
|
- !ruby/object:Gem::Dependency
|
115
104
|
name: scbi_math
|
116
105
|
prerelease: false
|
117
|
-
requirement: &
|
118
|
-
none: false
|
106
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
119
107
|
requirements:
|
120
108
|
- - ">="
|
121
109
|
- !ruby/object:Gem::Version
|
122
110
|
version: 0.0.1
|
123
111
|
type: :runtime
|
124
|
-
version_requirements: *
|
112
|
+
version_requirements: *id011
|
125
113
|
- !ruby/object:Gem::Dependency
|
126
114
|
name: scbi_headers
|
127
115
|
prerelease: false
|
128
|
-
requirement: &
|
129
|
-
none: false
|
116
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
130
117
|
requirements:
|
131
118
|
- - ">="
|
132
119
|
- !ruby/object:Gem::Version
|
133
120
|
version: 0.0.2
|
134
121
|
type: :runtime
|
135
|
-
version_requirements: *
|
122
|
+
version_requirements: *id012
|
136
123
|
- !ruby/object:Gem::Dependency
|
137
124
|
name: hoe
|
138
125
|
prerelease: false
|
139
|
-
requirement: &
|
140
|
-
none: false
|
126
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
141
127
|
requirements:
|
142
128
|
- - ">="
|
143
129
|
- !ruby/object:Gem::Version
|
144
130
|
version: 2.8.0
|
145
131
|
type: :development
|
146
|
-
version_requirements: *
|
132
|
+
version_requirements: *id013
|
147
133
|
description: SeqtrimNEXT is a customizable and distributed pre-processing software for NGS (Next Generation Sequencing) biological data. It makes use of scbi_mapreduce gem to be able to run in parallel and distributed environments. It is specially suited for Roche 454 (normal and paired-end) & Ilumina datasets, although it could be easyly adapted to any other situation.
|
148
134
|
email:
|
149
135
|
- dariogf@gmail.com & alkoke@gmail.com
|
@@ -168,6 +154,7 @@ executables:
|
|
168
154
|
- reverse_paired.rb
|
169
155
|
- seqtrimnext
|
170
156
|
- split_fastq.rb
|
157
|
+
- split_fasta.rb
|
171
158
|
- split_ilumina_paired.rb
|
172
159
|
- split_paired.rb
|
173
160
|
extensions: []
|
@@ -183,7 +170,7 @@ extra_rdoc_files:
|
|
183
170
|
- lib/seqtrimnext/templates/genomics_short_reads_2.txt
|
184
171
|
- lib/seqtrimnext/templates/transcriptomics_454.txt
|
185
172
|
- lib/seqtrimnext/templates/transcriptomics_short_reads.txt
|
186
|
-
- lib/seqtrimnext/templates/
|
173
|
+
- lib/seqtrimnext/templates/transcriptomics_454_plants.txt
|
187
174
|
- Manifest.txt
|
188
175
|
- PostInstall.txt
|
189
176
|
files:
|
@@ -207,12 +194,15 @@ files:
|
|
207
194
|
- bin/reverse_paired.rb
|
208
195
|
- bin/seqtrimnext
|
209
196
|
- bin/split_fastq.rb
|
197
|
+
- bin/split_fasta.rb
|
210
198
|
- bin/split_ilumina_paired.rb
|
211
199
|
- bin/split_paired.rb
|
212
200
|
- History.txt
|
213
201
|
- lib/seqtrimnext/actions/action_ab_adapter.rb
|
214
202
|
- lib/seqtrimnext/actions/action_ab_far_adapter.rb
|
215
203
|
- lib/seqtrimnext/actions/action_ab_left_adapter.rb
|
204
|
+
- lib/seqtrimnext/actions/action_sanger_left_adapter.rb
|
205
|
+
- lib/seqtrimnext/actions/action_sanger_right_adapter.rb
|
216
206
|
- lib/seqtrimnext/actions/action_user_contaminant.rb
|
217
207
|
- lib/seqtrimnext/actions/action_empty_insert.rb
|
218
208
|
- lib/seqtrimnext/actions/action_ignore_repeated.rb
|
@@ -263,6 +253,7 @@ files:
|
|
263
253
|
- lib/seqtrimnext/classes/sequence_with_action.rb
|
264
254
|
- lib/seqtrimnext/plugins/plugin.rb
|
265
255
|
- lib/seqtrimnext/plugins/plugin_ab_adapters.rb
|
256
|
+
- lib/seqtrimnext/plugins/plugin_sanger_adapters.rb
|
266
257
|
- lib/seqtrimnext/plugins/plugin_adapters.rb
|
267
258
|
- lib/seqtrimnext/plugins/plugin_amplicons.rb
|
268
259
|
- lib/seqtrimnext/plugins/plugin_contaminants.rb
|
@@ -288,7 +279,7 @@ files:
|
|
288
279
|
- lib/seqtrimnext/templates/genomics_short_reads_2.txt
|
289
280
|
- lib/seqtrimnext/templates/transcriptomics_454.txt
|
290
281
|
- lib/seqtrimnext/templates/transcriptomics_short_reads.txt
|
291
|
-
- lib/seqtrimnext/templates/
|
282
|
+
- lib/seqtrimnext/templates/transcriptomics_454_plants.txt
|
292
283
|
- lib/seqtrimnext/utils/extract_samples.rb
|
293
284
|
- lib/seqtrimnext/utils/fasta2xml.rb
|
294
285
|
- lib/seqtrimnext/utils/global_match.rb
|
@@ -311,6 +302,8 @@ files:
|
|
311
302
|
homepage: http://www.scbi.uma.es/downloads
|
312
303
|
licenses: []
|
313
304
|
|
305
|
+
metadata: {}
|
306
|
+
|
314
307
|
post_install_message: PostInstall.txt
|
315
308
|
rdoc_options:
|
316
309
|
- --main
|
@@ -318,23 +311,17 @@ rdoc_options:
|
|
318
311
|
require_paths:
|
319
312
|
- lib
|
320
313
|
required_ruby_version: !ruby/object:Gem::Requirement
|
321
|
-
none: false
|
322
314
|
requirements:
|
323
|
-
-
|
324
|
-
- !ruby/object:Gem::Version
|
325
|
-
version: "0"
|
315
|
+
- *id002
|
326
316
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
327
|
-
none: false
|
328
317
|
requirements:
|
329
|
-
-
|
330
|
-
- !ruby/object:Gem::Version
|
331
|
-
version: "0"
|
318
|
+
- *id002
|
332
319
|
requirements: []
|
333
320
|
|
334
321
|
rubyforge_project: seqtrimnext
|
335
|
-
rubygems_version:
|
322
|
+
rubygems_version: 2.0.3
|
336
323
|
signing_key:
|
337
|
-
specification_version:
|
324
|
+
specification_version: 4
|
338
325
|
summary: SeqtrimNEXT is a customizable and distributed pre-processing software for NGS (Next Generation Sequencing) biological data
|
339
326
|
test_files:
|
340
327
|
- test/test_helper.rb
|