Module: Bioinform::CLI::SplitMotifs
- Extended by:
- Helpers
- Defined in:
- lib/bioinform/cli/split_motifs.rb
Class Method Summary collapse
Methods included from Helpers
basename_changed_extension, basename_wo_extension, change_folder_and_extension, name_wo_extension, set_extension, set_folder
Class Method Details
.main(argv) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/bioinform/cli/split_motifs.rb', line 8 def self.main(argv) = {folder: '.'} opt_parser = OptionParser.new do |opts| opts.version = ::Bioinform::VERSION opts. = "Motif splitter.\n" + "It gets a file with a set of motifs and splits it into motifs according to their names.\n" + "\n" + "Usage:\n" + " split_motifs [options] <collection-file>" opts.on('-e', '--extension EXT', 'Extension of output files') do |v| [:extension] = v end opts.on('-f', '--folder FOLDER', 'Where to save output files') do |v| [:folder] = v end end opt_parser.parse!(argv) folder = [:folder] extension = [:extension] collection_filename = argv.first Dir.mkdir(folder) unless Dir.exist?(folder) raise "Collection file not specified" unless collection_filename raise "File `#{collection_filename}` not exist" unless File.exist?(collection_filename) motif_list_string = File.read(collection_filename) coll = MotifSplitter.new.split(motif_list_string).map do |motif_string| motif_info = MatrixParser.new.parse(motif_string) MotifModel::PM.new(motif_info[:matrix]).named(motif_info[:name]) end coll.each do |motif| File.open(set_folder(folder, set_extension(motif.name, extension || 'mat')), 'w'){|f| f.puts motif } end end |