bio-gemma-wrapper 0.99.1 → 0.99.2
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 +4 -4
- data/VERSION +1 -1
- data/bin/gemma-wrapper +32 -12
- data/gemma-wrapper.gemspec +1 -1
- metadata +5 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e27a8a3abb00b758095df5956b3854674faf5ff681a93bc028df273c40125c0d
|
4
|
+
data.tar.gz: e9675dbb0ea0f087dd21774635d38f3cda11b46a88b36c77dd308086fd0ec5f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81cf5440fa531d5a831efa787800c8bea230d47cddc666a31fff066551ff347708a41ddf1368c0d3946c7ba9faef8e5882e398ad340850253c53961cce96f662
|
7
|
+
data.tar.gz: 582ae78c48a1eb8eeca01172eaeaba9d5ca23e69601967e334f8c218e3a4dd74b297861b01ce49b1357798b49a96c12e737100dcacec7fc34b70da1fc9c75f0d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.99.
|
1
|
+
0.99.2
|
data/bin/gemma-wrapper
CHANGED
@@ -41,7 +41,7 @@ Gemma gets used from the path. You can override by setting
|
|
41
41
|
"
|
42
42
|
# These are used for testing compatibility with the gemma tool
|
43
43
|
GEMMA_V_MAJOR = 98
|
44
|
-
GEMMA_V_MINOR =
|
44
|
+
GEMMA_V_MINOR = 4
|
45
45
|
|
46
46
|
basepath = File.dirname(File.dirname(__FILE__))
|
47
47
|
$: << File.join(basepath,'lib')
|
@@ -239,6 +239,8 @@ DO_COMPUTE_GWA = !DO_COMPUTE_KINSHIP
|
|
239
239
|
# ---- Set up parallel
|
240
240
|
if options[:parallel]
|
241
241
|
begin
|
242
|
+
skip_cite = `echo "will cite" |parallel --citation`
|
243
|
+
debug.call(skip_cite)
|
242
244
|
PARALLEL_INFO = `parallel --help`
|
243
245
|
rescue Errno::ENOENT
|
244
246
|
error.call "<parallel> command not found"
|
@@ -256,7 +258,6 @@ if DO_COMPUTE_GWA and options[:permute_phenotypes]
|
|
256
258
|
raise "Did not expect GEMMA -p phenotype whith permutations (only use --permutate-phenotypes)" if pheno_idx
|
257
259
|
end
|
258
260
|
|
259
|
-
|
260
261
|
execute = lambda { |cmd|
|
261
262
|
info.call("Executing: #{cmd}")
|
262
263
|
err = 0
|
@@ -276,14 +277,6 @@ execute = lambda { |cmd|
|
|
276
277
|
err
|
277
278
|
}
|
278
279
|
|
279
|
-
hashme =
|
280
|
-
if DO_COMPUTE_KINSHIP and pheno_idx != nil
|
281
|
-
# Remove the phenotype file from the hash for GRM computation
|
282
|
-
gemma_args[0..pheno_idx-1] + gemma_args[pheno_idx+2..-1]
|
283
|
-
else
|
284
|
-
gemma_args
|
285
|
-
end
|
286
|
-
|
287
280
|
compute_hash = lambda do | phenofn = nil |
|
288
281
|
# Compute a HASH on the inputs
|
289
282
|
debug.call "Hashing on ",hashme,"\n"
|
@@ -302,6 +295,7 @@ compute_hash = lambda do | phenofn = nil |
|
|
302
295
|
hashes << item
|
303
296
|
end
|
304
297
|
end
|
298
|
+
debug.call(hashes)
|
305
299
|
Digest::SHA1.hexdigest hashes.join(' ')
|
306
300
|
end
|
307
301
|
|
@@ -311,12 +305,23 @@ options[:hash] = HASH
|
|
311
305
|
# Create cache dir
|
312
306
|
FileUtils::mkdir_p options[:cache_dir]
|
313
307
|
|
308
|
+
Dir.mktmpdir do |tmpdir| # tmpdir for GEMMA output
|
309
|
+
|
314
310
|
error.call "Do not use the GEMMA -o switch!" if gemma_args.include? '-o'
|
315
311
|
error.call "Do not use the GEMMA -outdir switch!" if gemma_args.include? '-outdir'
|
312
|
+
GEMMA_ARGS_HASH = gemma_args.dup # do not include outdir
|
316
313
|
gemma_args << '-outdir'
|
317
|
-
gemma_args <<
|
314
|
+
gemma_args << tmpdir
|
318
315
|
GEMMA_ARGS = gemma_args
|
319
316
|
|
317
|
+
hashme =
|
318
|
+
if DO_COMPUTE_KINSHIP and pheno_idx != nil
|
319
|
+
# Remove the phenotype file from the hash for GRM computation
|
320
|
+
GEMMA_ARGS_HASH[0..pheno_idx-1] + GEMMA_ARGS_HASH[pheno_idx+2..-1]
|
321
|
+
else
|
322
|
+
GEMMA_ARGS_HASH
|
323
|
+
end
|
324
|
+
|
320
325
|
debug.call "Options: ",options,"\n" if !options[:quiet]
|
321
326
|
|
322
327
|
invoke_gemma = lambda do |extra_args, cache_hit = false, chr = "full", permutation = 1|
|
@@ -326,7 +331,7 @@ invoke_gemma = lambda do |extra_args, cache_hit = false, chr = "full", permutati
|
|
326
331
|
if options[:slurm]
|
327
332
|
info.call cmd
|
328
333
|
hashi = HASH
|
329
|
-
prefix =
|
334
|
+
prefix = tmpdir+'/'+hashi
|
330
335
|
scriptfn = prefix+".#{chr}.#{permutation}-pbs.sh"
|
331
336
|
script = "#!/bin/bash
|
332
337
|
#SBATCH --job-name=gemma-#{scriptfn}
|
@@ -371,6 +376,7 @@ srun #{cmd}
|
|
371
376
|
end
|
372
377
|
end
|
373
378
|
|
379
|
+
# Takes the hash value and checks whether the (output) file exists
|
374
380
|
# returns datafn, logfn, cache_hit
|
375
381
|
cache = lambda do | chr, ext, h=HASH, permutation=0 |
|
376
382
|
inject = (chr==nil ? "" : ".#{chr}" )+ext
|
@@ -517,3 +523,17 @@ if options[:parallel]
|
|
517
523
|
info.call("Run successful!")
|
518
524
|
end
|
519
525
|
json_out.call
|
526
|
+
|
527
|
+
# copy all output files to the cache_dir. If a file exists only emit a warning
|
528
|
+
Dir.glob("*.txt", base: tmpdir) do | fn |
|
529
|
+
source = tmpdir + "/" + fn
|
530
|
+
dest = options[:cache_dir] + "/" + fn
|
531
|
+
if not File.exist?(dest) or options[:force]
|
532
|
+
info.call "Move #{source} to #{dest}"
|
533
|
+
FileUtils.mv source, dest, verbose: false
|
534
|
+
else
|
535
|
+
warning.call "File #{dest} already exists. Not overwriting"
|
536
|
+
end
|
537
|
+
end
|
538
|
+
|
539
|
+
end # tmpdir
|
data/gemma-wrapper.gemspec
CHANGED
@@ -2,7 +2,7 @@ Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'bio-gemma-wrapper'
|
3
3
|
s.version = File.read('VERSION')
|
4
4
|
s.summary = "GEMMA with LOCO and permutations"
|
5
|
-
s.description = "GEMMA wrapper adds LOCO and permutation support. Also caches K between runs with LOCO support"
|
5
|
+
s.description = "GEMMA wrapper adds LOCO and permutation support. Also runs in parallel and caches K between runs with LOCO support"
|
6
6
|
s.authors = ["Pjotr Prins"]
|
7
7
|
s.email = 'pjotr.public01@thebird.nl'
|
8
8
|
s.files = ["bin/gemma-wrapper",
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bio-gemma-wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.99.
|
4
|
+
version: 0.99.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pjotr Prins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: GEMMA wrapper adds LOCO and permutation support. Also
|
14
|
-
runs with LOCO support
|
13
|
+
description: GEMMA wrapper adds LOCO and permutation support. Also runs in parallel
|
14
|
+
and caches K between runs with LOCO support
|
15
15
|
email: pjotr.public01@thebird.nl
|
16
16
|
executables:
|
17
17
|
- gemma-wrapper
|
@@ -43,8 +43,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: '0'
|
45
45
|
requirements: []
|
46
|
-
|
47
|
-
rubygems_version: 2.7.6.2
|
46
|
+
rubygems_version: 3.2.5
|
48
47
|
signing_key:
|
49
48
|
specification_version: 4
|
50
49
|
summary: GEMMA with LOCO and permutations
|