-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscatterWGS.wdl
41 lines (37 loc) · 1.21 KB
/
scatterWGS.wdl
1
2
3
4
5
6
7
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
workflow ScatterWGS {
Array[String] symbols
Int radius
scatter (symbol in symbols) {
call doVariantWorkflow { input:symbol=symbol,radius=radius }
}
}
task doVariantWorkflow {
String symbol
Int radius
command {
R -e "library('variants'); \
file <- system.file('vcf', 'NA06985_17.vcf.gz', package = 'cgdv17'); \
genesym <- '${symbol}'; \
geneid <- select(org.Hs.eg.db, keys=genesym, keytype='SYMBOL', \
columns='ENTREZID'); \
txdb <- TxDb.Hsapiens.UCSC.hg19.knownGene; \
seqlevelsStyle(txdb) = 'NCBI'; \
txdb <- keepSeqlevels(txdb, '17'); \
txbygene = transcriptsBy(txdb, 'gene'); \
gnrng <- unlist(range(txbygene[geneid[['ENTREZID']]]), use.names=FALSE); \
names(gnrng) <- geneid[['SYMBOL']]; \
param <- ScanVcfParam(which = gnrng+${radius}, info = 'DP', geno = c('GT', 'cPd')); \
vcf <- readVcf(file, 'hg19', param); \
ans = locateVariants(vcf, txdb, AllVariants()); \
table(mcols(ans)[['LOCATION']]); \
names(ans) = make.names(names(ans),unique=TRUE); \
write.csv(as.data.frame(ans), '${symbol}.csv');"
}
output {
File out= "${symbol}.csv"
}
runtime {
docker: "reshg/devel_variants"
bootDiskSizeGb:50
}
}