require 'maasha/usearch'
casts = []
-casts << {:long=>'no_sort', :short=>'n', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-casts << {:long=>'comp', :short=>'c', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
-casts << {:long=>'identity', :short=>'i', :type=>'float', :mandatory=>true, :default=>0.9, :allowed=>nil, :disallowed=>nil}
+casts << {:long=>'no_sort', :short=>'n', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+casts << {:long=>'comp', :short=>'c', :type=>'flag', :mandatory=>false, :default=>nil, :allowed=>nil, :disallowed=>nil}
+casts << {:long=>'identity', :short=>'i', :type=>'float', :mandatory=>true, :default=>0.9, :allowed=>nil, :disallowed=>nil}
options = Biopieces.options_parse(ARGV, casts)
file_uclust = File.join(tmpdir, "out.uc")
Biopieces.open(options[:stream_in], file_records) do |input, output|
- Fasta.open(file_fasta, mode="w") do |fasta_io|
+ Fasta.open(file_fasta, 'w') do |fasta_io|
input.each_record do |record|
output.puts record
end
us = Usearch.new(file_fasta, file_uclust, options)
-us.sort_length unless options[:no_sort]
-us.cluster
+
+us.sortbylength unless options[:no_sort]
+us.cluster_smallmem
hash = {}
-us.each_cluster do |record|
- hash[record[:Q_ID].to_sym] = record.dup
+us.each_cluster do |cluster|
+ hash[cluster[:Q_ID].to_sym] = cluster.dup
end
Biopieces.open(file_records, options[:stream_out]) do |input, output|