Module: Bioinform::CLI::PCM2PWM
- Extended by:
- Helpers
- Defined in:
- lib/bioinform/cli/pcm2pwm.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
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 45 46 47 48 49 |
# File 'lib/bioinform/cli/pcm2pwm.rb', line 9 def self.main(argv) = {folder: '.', extension: 'pwm'} opt_parser = OptionParser.new do |opts| opts. = "PCM to PWM converter.\n" + "It transforms files with PCMs into files with PWMs.\n" + "Folder for resulting files to save files can be specified.\n" + "Resulting PWM files have the same name as original file but have another extension (.pwm by default).\n" + "When filelist is empty, it's obtained from STDIN.\n" + "One can use it: `ls -b pcm_folder/*.pcm | pcm2pwm` (ls -b option escape spaces in filenames)\n" + "\n" + "Usage:\n" + " pcm2pwm [options] [<pcm-files>...]" opts.version = ::Bioinform::VERSION opts.on('-e', '--extension EXT', 'Extension of output files [default: pwm]') 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) pcm_files = argv folder = [:folder] extension = [:extension] Dir.mkdir(folder) unless Dir.exist?(folder) filelist = (pcm_files.empty?) ? $stdin.read.shellsplit : pcm_files converter = ConversionAlgorithms::PCM2PWMConverter.new() filelist.each do |filename| input = File.read(filename) motif_data = MatrixParser.new.parse(input) pcm = MotifModel::PCM.new(motif_data[:matrix]).named(motif_data[:name]) pwm = converter.convert(pcm) File.open(change_folder_and_extension(filename, extension, folder), 'w') do |f| f.puts pwm end end end |