bio-gemma-wrapper 0.98 → 0.98.1
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/README.md +46 -2
- data/VERSION +1 -1
- data/bin/gemma-wrapper +8 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7a8bfe787236f397dba6e05aef202486ba53389
|
4
|
+
data.tar.gz: 9fe2398ed3fcd053e8258f73a64b1610bfddf9e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a691906f13da3469597517d160874315f5962822b0273757d33c37283c2a9a98da9a41d08c51e4ed7854b3d3593f9d96ac81d59212690edd628a2677499d501
|
7
|
+
data.tar.gz: 5d4b898ff3566f52652cbb7db6597dc245e9a5da6b0d9da107de81deec0d51c02c822762e0ab921a2309c1dbc3455b55c1adc5fe94c891e31a9c32cb6d343f2e
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[](https://badge.fury.io/rb/bio-gemma-wrapper)
|
2
2
|
|
3
3
|
# GEMMA wrapper caches K between runs with LOCO support
|
4
4
|
|
@@ -128,6 +128,23 @@ default. If you want something else provide a --cache-dir, e.g.
|
|
128
128
|
|
129
129
|
will store K in ~/.gemma-cache.
|
130
130
|
|
131
|
+
### GWA
|
132
|
+
|
133
|
+
Run the LMM using the K's captured in K.json using the --input
|
134
|
+
switch
|
135
|
+
|
136
|
+
gemma-wrapper --json --loco --input K.json -- \
|
137
|
+
-g test/data/input/BXD_geno.txt.gz \
|
138
|
+
-p test/data/input/BXD_pheno.txt \
|
139
|
+
-c test/data/input/BXD_covariates2.txt \
|
140
|
+
-a test/data/input/BXD_snps.txt \
|
141
|
+
-lmm 2 -maf 0.1 \
|
142
|
+
-debug > GWA.json
|
143
|
+
|
144
|
+
Running it twice should show that GWA is not recomputed.
|
145
|
+
|
146
|
+
/tmp/9e411810ad341de6456ce0c6efd4f973356d0bad.log.txt CACHE HIT!
|
147
|
+
|
131
148
|
### LOCO
|
132
149
|
|
133
150
|
Recent versions of GEMMA have LOCO support for a single chromosome
|
@@ -163,6 +180,33 @@ GWA.json contains the file names of every chromosome
|
|
163
180
|
The -k switch is injected automatically. Again output switches are not
|
164
181
|
allowed (-o, -outdir)
|
165
182
|
|
183
|
+
### Permutations
|
184
|
+
|
185
|
+
Permutations can be run with and without LOCO. First create K
|
186
|
+
|
187
|
+
gemma-wrapper --json -- \
|
188
|
+
-g test/data/input/BXD_geno.txt.gz \
|
189
|
+
-p test/data/input/BXD_pheno.txt \
|
190
|
+
-gk \
|
191
|
+
-debug > K.json
|
192
|
+
|
193
|
+
Next, using K.json, permute the phenotypes with something like
|
194
|
+
|
195
|
+
gemma-wrapper --json --loco --input K.json \
|
196
|
+
--permutate 100 --permute-phenotype test/data/input/BXD_pheno.txt -- \
|
197
|
+
-g test/data/input/BXD_geno.txt.gz \
|
198
|
+
-p test/data/input/BXD_pheno.txt \
|
199
|
+
-c test/data/input/BXD_covariates2.txt \
|
200
|
+
-a test/data/input/BXD_snps.txt \
|
201
|
+
-lmm 2 -maf 0.1 \
|
202
|
+
-debug > GWA.json
|
203
|
+
|
204
|
+
This should get the 95% significant and 67% suggestive thresholds:
|
205
|
+
|
206
|
+
["95 percentile (significant) ", 2.015475e-05, 4.7]
|
207
|
+
["67 percentile (suggestive) ", 2.015475e-05, 4.7]
|
208
|
+
|
209
|
+
|
166
210
|
## Copyright
|
167
211
|
|
168
|
-
Copyright (c) 2017 Pjotr Prins. See [LICENSE.txt](LICENSE.txt) for further details.
|
212
|
+
Copyright (c) 2017,2018 Pjotr Prins. See [LICENSE.txt](LICENSE.txt) for further details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.98
|
1
|
+
0.98.1
|
data/bin/gemma-wrapper
CHANGED
@@ -40,7 +40,7 @@ Gemma gets used from the path. You can override by setting
|
|
40
40
|
env GEMMA_COMMAND=path/bin/gemma gemma-wrapper ...
|
41
41
|
|
42
42
|
"
|
43
|
-
# These are used for testing compatibility
|
43
|
+
# These are used for testing compatibility with the gemma tool
|
44
44
|
GEMMA_V_MAJOR = 98
|
45
45
|
GEMMA_V_MINOR = 0
|
46
46
|
|
@@ -213,15 +213,15 @@ raise "Expected GEMMA -g genotype file switch" if geno_idx == nil
|
|
213
213
|
pheno_idx = gemma_args.index '-p'
|
214
214
|
hashme =
|
215
215
|
if DO_COMPUTE_KINSHIP and pheno_idx != nil
|
216
|
-
|
216
|
+
# Remove the phenotype file from the hash
|
217
217
|
gemma_args[0..pheno_idx-1] + gemma_args[pheno_idx+2..-1]
|
218
218
|
else
|
219
219
|
gemma_args
|
220
220
|
end
|
221
221
|
|
222
|
-
if DO_COMPUTE_GWA
|
223
|
-
raise "Did not expect GEMMA -p phenotype
|
224
|
-
hashme += ['-p', options[:permute_phenotypes]]
|
222
|
+
if DO_COMPUTE_GWA and options[:permute_phenotypes]
|
223
|
+
raise "Did not expect GEMMA -p phenotype whith permutations (only use --permutate-phenotypes)" if pheno_idx
|
224
|
+
hashme += ['-p', options[:permute_phenotypes]]
|
225
225
|
end
|
226
226
|
|
227
227
|
require 'digest/sha1'
|
@@ -254,7 +254,7 @@ invoke_gemma = lambda do |extra_args, cache_hit = false|
|
|
254
254
|
cmd="#{GEMMA_COMMAND} #{GEMMA_ARGS.join(' ')} #{extra_args.join(' ')}"
|
255
255
|
record[:gemma_command] = cmd
|
256
256
|
return if cache_hit
|
257
|
-
|
257
|
+
debug.call cmd
|
258
258
|
errno =
|
259
259
|
if options[:json]
|
260
260
|
# capture output
|
@@ -350,7 +350,7 @@ else
|
|
350
350
|
json_in = JSON.parse(File.read(options[:input]))
|
351
351
|
raise "JSON problem, file #{options[:input]} is not -gk derived" if json_in["type"] != "K"
|
352
352
|
|
353
|
-
pfn = options[:
|
353
|
+
pfn = options[:permute_phenotypes] # can be nil
|
354
354
|
k_files = json_in["files"].map { |rec| [rec[0],rec[2]] }
|
355
355
|
k_files.each do | chr, kfn | # call a GWA for each chromosome
|
356
356
|
gwas.call(chr,kfn,pfn)
|
@@ -358,7 +358,7 @@ else
|
|
358
358
|
# Permute
|
359
359
|
if options[:permutate]
|
360
360
|
ps = []
|
361
|
-
raise "You should supply --
|
361
|
+
raise "You should supply --permute-phenotypes with gemma-wrapper --permutate" if not pfn
|
362
362
|
File.foreach(pfn).with_index do |line, line_num|
|
363
363
|
ps << line
|
364
364
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bio-gemma-wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.98.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pjotr Prins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: GEMMA wrapper adds LOCO and permutation support. Also caches K between
|
14
14
|
runs with LOCO support
|