cwords 0.1.4-jruby → 0.1.6-jruby
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.
- data/README +10 -3
- data/bin/cwords +7 -1
- data/bin/cwords_mkdb +8 -2
- data/scripts/cwords.rb +12 -13
- data/scripts/cwords_mkdb.rb +11 -3
- metadata +2 -2
data/README
CHANGED
@@ -6,10 +6,17 @@ Cwords is a software tool that measure correlations of short oligonucleotide seq
|
|
6
6
|
All software components require Ruby (>=1.8.6, http://www.ruby-lang.org/) and JRuby (>=1.4.0, http://jruby.org/).
|
7
7
|
The software has only been tested on a Unix platform.
|
8
8
|
|
9
|
-
The following Ruby gems are required (install with JRuby gem command)
|
10
9
|
|
11
|
-
|
12
|
-
|
10
|
+
2. INSTALL
|
11
|
+
|
12
|
+
* Install Ruby (www.ruby-lang.org, check if it is already installed: 'ruby -v')
|
13
|
+
* Install JRruby (www.jruby.org, check if it is already installed: 'jruby -v'),
|
14
|
+
make sure that you have the 'jruby' command in your path.
|
15
|
+
* Install Rubygems (www.rubygems.org, check if it is already installed: 'gem -v')
|
16
|
+
* Install cwords:
|
17
|
+
|
18
|
+
> gem install cwords
|
19
|
+
> cwords --help
|
13
20
|
|
14
21
|
2. USAGE
|
15
22
|
|
data/bin/cwords
CHANGED
@@ -2,10 +2,16 @@
|
|
2
2
|
|
3
3
|
scriptdir = File.dirname(__FILE__) + "/../scripts/"
|
4
4
|
|
5
|
+
helps = ARGV.join(" ").match(/--help/)
|
6
|
+
if (helps)
|
7
|
+
# start lightweight
|
8
|
+
exec "jruby --client " + scriptdir + "cwords.rb " + ARGV.join(" ")
|
9
|
+
end
|
10
|
+
|
5
11
|
mems = ARGV.join(" ").match(/M=(\w+)/)
|
6
12
|
mem = mems ? mems[1] : '4096m'
|
7
13
|
argv = ARGV.select{|x| not x=~ /^M=\w+$/}.join(' ')
|
8
14
|
puts "Starting cwords with max heap size " + mem + " ...\n"
|
9
15
|
|
10
|
-
cmd = "jruby --server --fast -J-Xmx#{mem} " + scriptdir + "cwords.rb " + argv
|
16
|
+
cmd = "jruby --1.9 --server --fast -J-Xmx#{mem} " + scriptdir + "cwords.rb " + argv
|
11
17
|
exec cmd
|
data/bin/cwords_mkdb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
scriptdir = File.dirname(__FILE__) + "/../scripts/"
|
3
3
|
|
4
|
+
helps = ARGV.join(" ").match(/--help/)
|
5
|
+
if (helps)
|
6
|
+
# start lightweight
|
7
|
+
exec "jruby --client " + scriptdir + "cwords_mkdb.rb " + ARGV.join(" ")
|
8
|
+
end
|
9
|
+
|
4
10
|
mems = ARGV.join(" ").match(/M=(\w+)/)
|
5
11
|
mem = mems ? mems[1] : '4096m'
|
6
12
|
argv = ARGV.select{|x| not x=~ /^M=\w+$/}.join(' ')
|
7
|
-
puts "Starting cwords with max heap size " + mem + "
|
13
|
+
puts "Starting cwords with max heap size " + mem + " ...\n"
|
8
14
|
|
9
|
-
cmd = "jruby --server --fast -J-Xmx#{mem} " + scriptdir + "cwords_mkdb.rb " + argv
|
15
|
+
cmd = "jruby --1.9 --server --fast -J-Xmx#{mem} " + scriptdir + "cwords_mkdb.rb " + argv
|
10
16
|
exec cmd
|
data/scripts/cwords.rb
CHANGED
@@ -1,13 +1,5 @@
|
|
1
1
|
#!/usr/bin/env jruby
|
2
2
|
|
3
|
-
### Requires jruby, www.jruby.org
|
4
|
-
|
5
|
-
###
|
6
|
-
### Running sum analysis for 5 different measures of word enrichment in a sequence:
|
7
|
-
### obs : use the observed word count
|
8
|
-
### bin : use presence/absence of word
|
9
|
-
### pval : use the p-value of the expected occurrences being >= the observed occurence
|
10
|
-
|
11
3
|
srcdir = File.dirname(__FILE__)
|
12
4
|
basedir = srcdir + "/../"
|
13
5
|
libdir = basedir + '/lib/'
|
@@ -80,7 +72,14 @@ def show_help(msg="", code=0, io=STDOUT)
|
|
80
72
|
exit(code)
|
81
73
|
end
|
82
74
|
|
83
|
-
|
75
|
+
begin
|
76
|
+
$coptions.parse!(ARGV)
|
77
|
+
rescue OptionParser::ParseError => error
|
78
|
+
puts error.message
|
79
|
+
puts $coptions
|
80
|
+
exit
|
81
|
+
end
|
82
|
+
|
84
83
|
# mandatory parameters
|
85
84
|
[:rankfile].each{|p| show_help("option '#{p}' mandatory") if options[p].nil?}
|
86
85
|
show_help("db or seqfile required") if !(options[:db] or options[:seqfile])
|
@@ -116,7 +115,7 @@ IO.readlines(annofile).each{|l| word_annotation[l.split("\t")[0]] = l.split("\t"
|
|
116
115
|
|
117
116
|
# read optional sequences
|
118
117
|
if options[:seqfile]
|
119
|
-
puts ">> reading sequences ..."
|
118
|
+
puts "\n>> reading sequences ..."
|
120
119
|
sequences = Hash.new
|
121
120
|
IO.readlines(options[:seqfile],">")[1..-1].each do |entry|
|
122
121
|
ls = entry.split("\n").map{|x| x.chomp}
|
@@ -141,7 +140,7 @@ options[:wordsize].each{|ws| ['a','g','c','t'].rep_perm(ws) {|seqa| wids[seqa.jo
|
|
141
140
|
# sequence file:
|
142
141
|
# take intersection of rank and sequence IDs
|
143
142
|
|
144
|
-
puts ">> Mapping and filtering IDs ..."
|
143
|
+
puts "\n>> Mapping and filtering IDs ..."
|
145
144
|
|
146
145
|
all = []
|
147
146
|
begin
|
@@ -186,7 +185,7 @@ all.each_with_index{|x,i| allorder[x[0]] = i}
|
|
186
185
|
|
187
186
|
wordscores = []
|
188
187
|
if sequences
|
189
|
-
puts ">> Enumerating words in sequences"
|
188
|
+
puts "\n>> Enumerating words in sequences"
|
190
189
|
wordscores = Array.new(all.size) {Array.new(wids.size,0)} # {Java::short[wids.size].new}
|
191
190
|
pbar = ProgressBar.new("progress",sequences.size)
|
192
191
|
all.peach(threads) do |seqid,val|
|
@@ -270,7 +269,7 @@ end
|
|
270
269
|
### Correlation analysis
|
271
270
|
###
|
272
271
|
|
273
|
-
puts ">> Analyzing sequence sets: " + analyze.map{|x| x[1]}.join(", ")
|
272
|
+
puts "\n>> Analyzing sequence sets: " + analyze.map{|x| x[1]}.join(", ")
|
274
273
|
|
275
274
|
analyze.each do |set,nm|
|
276
275
|
ngenes = set.size
|
data/scripts/cwords_mkdb.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
|
-
#!/usr/bin/
|
1
|
+
#!/usr/bin/env jruby
|
2
2
|
|
3
3
|
srcdir = File.dirname(__FILE__)
|
4
|
-
basedir = srcdir + "
|
4
|
+
basedir = srcdir + "/../"
|
5
5
|
libdir = basedir + 'lib/'
|
6
6
|
$LOAD_PATH << libdir
|
7
7
|
|
8
8
|
require 'wordRS-lib.rb'
|
9
|
+
require 'rubygems'
|
9
10
|
require 'progressbar'
|
10
11
|
require 'optparse'
|
11
12
|
require 'fileutils'
|
@@ -42,7 +43,14 @@ def show_help(msg="", code=0, io=STDOUT)
|
|
42
43
|
exit(code)
|
43
44
|
end
|
44
45
|
|
45
|
-
|
46
|
+
begin
|
47
|
+
$coptions.parse!(ARGV)
|
48
|
+
rescue OptionParser::ParseError => error
|
49
|
+
puts error.message
|
50
|
+
puts $coptions
|
51
|
+
exit
|
52
|
+
end
|
53
|
+
|
46
54
|
#mandatory parameters
|
47
55
|
[:seqfile].each{ |p| show_help("option '#{p}' mandatory") if options[p].nil?}
|
48
56
|
|