Skip to content

Instantly share code, notes, and snippets.

@liangyy
liangyy / env_deepvarpred_test.txt
Last active June 22, 2018 17:20
conda environment for deep_variant_annotation
# packages in environment at /project2/xinhe/yanyul/softwares/Anaconda2/envs/deepvarpred_test:
#
bedtools 2.25.0 2 bioconda
bzip2 1.0.6 1 conda-forge
ca-certificates 2017.1.23 0 conda-forge
cairo 1.14.8 0
certifi 2017.1.23 py35_0 conda-forge
cffi 1.7.0 py35_0 conda-forge
cryptography 1.7.1 py35_0
curl 7.52.1 0 conda-forge
@liangyy
liangyy / source_folder.R
Created June 29, 2019 17:14
source R scripts inside a folder
sapply(list.files('path-to-folder', '*.R', full.names = T), source)
@liangyy
liangyy / gen_from_template.py
Created July 7, 2019 15:19
String formatting from template and nargs in python3
import argparse
parser = argparse.ArgumentParser(description='generate script from template')
parser.add_argument('word', metavar='KEY=VALUE', type=str, nargs='+',
help='key-value pairs')
parser.add_argument('--template', metavar='input filename', type=str,
help='template file')
parser.add_argument('--output', metavar='output filename', type=str,
help='output')
@liangyy
liangyy / zval2pval.R
Last active August 9, 2019 15:40
Convert z-score to p-value with crazy precision
zval2pval = function(z) {
exp(pnorm(abs(z), log.p=T, low=F)) * 2
}
@liangyy
liangyy / compute_auc.R
Last active November 19, 2019 17:34
rlib on generating ROC/PR
compute_auc = function(curve) {
# f = curve %>% filter(nTP > 0) %>% group_by(nTP) %>% summarize(y = mean(tpr), x = fpr[1] - fpr[2])
o1 = rbind(c(1, 1), curve %>% select(tpr, fpr))
o2 = rbind(curve %>% select(tpr, fpr), c(0, 0))
# message('e')
y = data.frame(x1 = o1$fpr, x2 = o2$fpr, y1 = o1$tpr, y2 = o2$tpr)
e = y %>% mutate(s = (x1 - x2) * (y1 + y2) / 2)
data.frame(roc_auc = sum(e$s))
}
@liangyy
liangyy / my_qqplot_by_group.R
Last active August 23, 2019 19:03
qqplot by group
my_qqplot_by_group <- function(pval, group, ...) {
n <- length(pval)
pexp <- rank(pval) / n
df <- data.frame(p.val = pval, p.exp = pexp, grp = group)
p <- ggplot(df) + geom_point(aes(x = -log10(p.exp), y = -log10(p.val), color = grp), ...) + geom_hline(yintercept = -log10(0.05 / n)) + theme_bw() + geom_abline(slope = 1, intercept = 0, linetype = 2)
return(p)
}
@liangyy
liangyy / README.md
Last active September 5, 2019 03:18
GWAS-gold_standard_genes-intersection

Dependency

> sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Red Hat Enterprise Linux Server release 6.7 (Santiago)

locale:
[1] C
set.seed(100)
# p1 = runif(1000)
# p2 = runif(5)
z = rep(rnorm(10000))
z[sample(1:10000, size = 3, replace = F)] = rnorm(3, 7, sd = 1)
# plot(-log10(p))
zobs = rep(0, 10000)
density = exp(c(-5:-1, 0, -1:-5)*0.5)
for(i in 6 : 9995) {
zobs[i] = sum(density * z[c(i-(5:1),i,i+(1:5))])
@liangyy
liangyy / my_ggplot_theme.R
Last active April 7, 2020 16:41
ggplot theme
th = theme(panel.border = element_blank(), panel.grid.major = element_blank(),panel.grid.minor = element_blank(), axis.line = element_line(colour = "#170a45", size = .5), axis.ticks = element_line(colour = "#170a45", size = .2), axis.text = element_text(color = '#170a45'))
th2 = th
th2$panel.border = element_rect(colour = th2$axis.line$colour)
mymixer = c(
'splicing observed' = rgb(200, 90, 40, maxColorValue = 255),
'expression observed' = rgb(42, 155, 204, maxColorValue = 255),
'splicing shuffled' = 'gray',
'expression shuffled' = 'gray'
)