Posts
-
R包开发 28 Mar 2020
R包开发书籍 Writing R Extensions https://qianjiye.de/2015/04/r-packages R包开发 使用devtools+Rtools进行R包开发,而Linux可以使用dockor+Rstudio开发版本。 create_package() library(devtools) create_package("./liripo.R") use_r() 使用use_r("scales")在R文件夹下生成一个scales.R文件。 下面举个我写的例子,参考函数scales::show_col #’ @title show your colors by ggplot2 #’ #’ @param colors colors #’ @param ncol ncol #’ @importFrom ggplot2 ggplot geomtile aes aes #’ @importFrom ggplot2 geom_text scale_fill_manual theme_void #’ @export show_color <- function(colors,ncol = NULL){ n <- length(colors) ncol <- ncol %||% ceiling(sqrt(length(colors))) nrow <- ceiling(n/ncol) tbl <- data.frame(cols = rep(1:ncol,times = nrow), rows = rep(nrow:1,each = ncol), colors = c(colors,rep(NA,ncol*nrow-length(colors))) ) tbl <- na. -
docker安装使用 28 Mar 2020
docker从入门到实践 安装docker linux ubuntu 1.安装依赖 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common 2.为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。 $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # 官方源 # $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 3.然后,我们需要向 source.list 中添加 Docker 软件源 $ sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" # 官方源 # $ sudo add-apt-repository \ # "deb [arch=amd64] https://download. -
windows10安装linux 21 Mar 2020
windows10安装ubuntu,以及源码安装python到指定目录,及更多相关配置。
温馨提示:目前已有wsl2,推荐安装wsl2。
-
ggplot2绘制图收录 08 Mar 2020
文章包含一些我绘制过的ggplot2图一些美化方法。 -
java更新word文档目录页码 04 Mar 2020
使用aspose-words java更新word文档目录页码。正版需要购买。 -
数据下载工具 01 Mar 2020
经常性下载速度很慢,纪录一些有用工具。 -
python-docx笔记 12 Feb 2020
docx文件是office2007之后的版本使用的,docx格式的文件本质上是一个zip文件,主要内容是保存为XML格式的,因此可以通过修改Word背后的XML文件来设置自动更新域 。
-
vcf文件注释 20 Jan 2020
原始测序文件fq.gz经genome比对,变异检测得到vcf文件,亦即变异位点文件, 只是通过看vcf文件我们是不知道些变异位点到底是位于基因的exon、intron、UTR等的哪些区域的 ,所以需要注释, 常用的vcf注释软件有annovar和snpEff 。
-
R包shiny 15 Jan 2020
R包shiny 可以构建交互式Web应用程序 。 -
fastp+gencore使用 07 Jan 2020
使用以上两个软件+vardict/varscan/outLyzer构建UMI分析流程
-
网址收录 07 Jan 2020
对一些有用的网址进行收录 -
翻墙?自搭! 06 Jan 2020
购买海外服务器,选用 virmach,或者Vultr、Linode、DigitalOcean。
xshell进入服务器后创建用户,非必须。
adduser liripo && passwd liripo #添加sudo权限 $ vim /etc/sudoers #在root ALL=(ALL) ALL下面添加 liripo ALL=(ALL) ALL -
xshell 和 xming 联合使用图形界面软件 23 Dec 2019
xmanger 是与xshell搭配的图形界面管理器,需要付费,作为替代,使用xming,只是运行没那么快。 -
bioconductor的学习与使用 22 Dec 2019
在生物信息学领域 , bioPerl和bioPython 是使用和研究生物信息学的开发者提供的在线资源库,那么bioR应当就是bioconductor。
-
bioawk使用 20 Dec 2019
awk是我很喜欢的处理文本文件的工具,称他为一种语言也不过分了。但是在处理生信文件时还是不方便。另一种选择就是使用bioawk。唯一的短板就是无法使用awk内置变量,无法同时操作多个文件。
-
grep使用 19 Dec 2019
grep :文本搜索工具。
-
FASTQC使用 18 Dec 2019
fastqc:一种用于高通量序列数据的质量控制应用程序。
-
Markdown与Typora,Rmarkdown 17 Dec 2019
-
samtools使用 17 Dec 2019
samtools是一个用于操作sam和bam文件的工具合集。sam为bam文件的十进制文件;bam为二进制文件。
-
bamdst使用 17 Dec 2019
bamdst:用于计算bam文件测序深度和覆盖度(Sequencing depth and coverage),有个疑问,应该使用哪个bam呢??使用bwa及samtools得到的bam测序深度很高。。 -
Github及Git使用 13 Dec 2019
Github在线教程【第一版】 Github在线教程【第二版】 以下为我自己的总结 -
R与生物统计学 09 Dec 2019
描述性统计量 为了解决某个问题,我们通常会观察一组和该问题相关的样本,利用总体中的部分样本来推断总体的情况进而得到相关结论。在通过样本推断总体前,首先需用对已有样本数据进行简单的评估和描述,针对这一需求也就引出了描述统计量这一概念。进行描述性统计时,我们最关注数据两个层面的问题:数据的集中趋势和变异分散性。 数据的集中趋势 均值 中位数 众数 在R中,均值和中位数可以通过mean()和median()进行计算,而众数可以画直方图,modeest包mfv()函数,或者自己写个函数 数据的变异性(离散性) 极值 分位数 方差 标准差 在R中,可以通过quantile()计算分位数,通过var()来计算方差,通过sd()来计算标准差。 变异系数(CV):变异系数是指样本标准差除以均值再乘100%——区分两个样本标准差相同但是均值相差很大的情况。 summary()函数会得到一个data frame 的很多 描述性统计量。当数据某一列是数值型变量时,可以得到该列数据的均值、极值、方差和分位数。 形象化展示 形象化展示:用图来展示数据结果,比较常见的方法有条形图,箱线图,直方图等展示上述的统计量。 概率知识点 统计学中大量内容源于概率,其中尤为重要的是条件概率,以及延伸出的贝叶斯定理。 样本空间 事件 条件概率与贝叶斯定理 用两个事件来尝试理解 条件概率(Conditional Probability)用来描述与其他事件的发生相关的某事件的概率;P(A|B)是指在B发生的情况下A发生的概率。 条件概率计算公式:即AB同时发生的次数除以所有B发生的次数。 $$ P(A|B)=\frac{P(A\cap B)}{P(B)} $$ 差个题外话,倘若A、B为相互独立事件,则: $$ P(A|B)=\frac{P(A\cap B)}{P(B)}=\frac{P(A)\times P(B)}{P(B)}=P(A) $$ 即用条件概率公式反证明事件 A 发生的概率与 B 无关。 条件概率公式推导出乘法公式:【其中$P(A\cap B)$可以写作P(AB)】 $P(A|B)=\frac{P(A\cap B)}{P(B)}$ => $P(A\cap B)=P(B)\times P(A|B)=P(A)\times P(B|A)$ 全概率公式:$\overline{A}$为A的对立事件 $$ P(B)=P(A)\times P(B|A)+P(\overline{A})\times P(B|\overline{A}) $$ 通过全概率公式与条件概率,乘法公式,可以推导出贝叶斯定理: $$ P(A|B)=\frac{P(A\cap B)}{P(B)}=\frac{P(A)\times P(B|A)}{P(B)}=\frac{P(A)\times P(B|A)}{P(A)\times P(B|A)+P(\overline{A})\times P(B|\overline{A})} $$ -
conda 25 Nov 2019
spyder3 spyder github网址,其提供的安装方法有多种,官方强推anaconda,确实我本人也喜欢使用,anaconda同时还创建了虚拟环境,使得我在linux使用各种软件如R、python等不需要过多的权限。miniconda是缩过之后的anaconda,没有那么多额外的软件,但也是可以使用虚拟环境的。 windows下简单使用pip install spyder安装即可,打开方式为在命令行中键入:spyder3 汉化spyder3 SpyderSimplifiedChinese-master下载解压后,到根目录使用shift键点击鼠标右键打开命令行窗口或者powershell;运行python main.py 或者python .\main.py; 重启Spyder,选择Tools—Preferences—General—Advanced Settings—language—–简体中文; anaconda anaconda有必要同时说下。 Anaconda可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。推荐 不需要那么多可以使用Miniconda。 Anaconda 其包含的科学包包括:conda, numpy, scipy, ipython notebook等。 conda 包及其依赖项和环境的管理工具,适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN pip pip是用于安装和管理软件包的包管理器 virtualenv 用于创建一个独立的Python环境的工具。 conda:仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python或者其他语言的版本。 安装过程中,会有将conda加入环境变量的提示,当然,忘记加入时可以手动添加。conda的位置windows版本是在安装根目录下的scripts目录下。 conda命令 conda list会显示已经安装的包名和版本号。 anaconda-navigator启动anaconda图形界面。 conda update conda更新conda 创建新环境 conda creante -n <env_name> <you==版本> <env_name>即创建的环境名。建议以英文命名,且不加空格。名称两边不加尖括号“<>”。 <you==版本>即安装在环境中的包名或者语言的版本。名称两边不加尖括号“<>”。 例如:conda creante -n liaorp python==3. -
sed使用 11 Nov 2019
sed 命令是一个面向行处理的工具,它以“行”为处理单位,针对每一行进行处理。与awk不同,awk是以”列“为处理单位[当然,awk也是一行行进行处理的]。 在线教程
-
awk使用 11 Nov 2019
awk逐行读入文件,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk书籍github -
gitbash配置文件 08 Nov 2019
gitbash的好处是能在windows下使用bash命令以及自带vim编辑器。 -
Bioinformatics名词,数据文件 08 Nov 2019
记录一些生物信息的名词与工具及各种数据库 -
概率论与数理统计学习 03 Nov 2019
-
Hexo+github搭建blog 02 Nov 2019
准备工作:安装node.js,git,hexo,加上github账户即可。 hexo官方文档 什么是Github Page >备注:以下前面为hexo在git for windows的配置安装,前三个标题推荐改为使用WSL>安装,linux子系统安装后可看这篇章的标题–在WSL中手动安装node,hexo,之后再按照第三个标题相关配置往下进行。 -
小说 01 Nov 2019
# 第一章
浩瀚的大陆,山峰林立,川流永动。其间万族鼎立,尤以人族昌盛。
-
基因芯片差异性分析 01 Nov 2019
起初使用的是oligo与limma结合分析,可惜的是rma校正后limma分析的结果不合实际,所以直接使用GEO2R上的代码,并修改成不在线的读取data.frame。但是仍旧得探究limma直接读取cel文件的情况。其中还遇到了读取CDF文件的情况。 -
jupyter使用 01 Jan 0001
安装 可以查看官网 之后使用jupyter notebook即可运行 修改工作目录 没有jupyter配置文件需要生成一个初始的配置文件 jupyter notebook –generate-config 之后会在命令行生成一个配置文件:"C:\Users\Administrator.jupyter\jupyter_notebook_config.py" 查找The directory to use for notebooks and kernels字样 修改#c.NotebookApp.notebook_dir = “”为所要的工作目录,记得去掉“#”号。
快捷键 jupyter的快捷键帮助是中文的,可以直接看Help.
jupyter使用R 网址github 使用多个python版本 在其他python路径中安装ipykernel,第一个是你的其他python版本的具体路径 python3.7.exe -m pip install ipykernel 然后运行 python3.7.exe -m ipykernel install -h 查看帮助,发现有个–user 和–name –display-name参数可以使用 所以接着运行 python3.7.exe -m ipykernel install –user –name python3.7 –display-name python3.7 之后运行 jupyter kernelspec list 应该会看到你的用户目录多了个文件夹,比如我的,因为我还装了R,所以有个ir Available kernels: python3 C:\Users\Liripo\AppData\Roaming\jupyter\kernels\python3 python3.7 C:\Users\Liripo\AppData\Roaming\jupyter\kernels\python3.7 ir C:\ProgramData\jupyter\kernels\ir
-
蒙特卡洛计算Π 01 Jan 0001
π值的计算 构造一个单位正方形和一个单位圆的1/4,往整个区域内随机投入点,根据点到原点的距离>1还是<=1判断点是落在1/4的圆内还是在圆外,从而根据落在两个不同区域的点的数目,求出两个区域的比值。这个比值乘以4,即是圆周率π。 圆的面积:(\frac{1}{4}\pi) 正方形面积:(1) 概率:(p = \frac{1}{\frac{1}{4}\pi} = \frac{圆内点数}{圆外点个数}) so,(\pi = 4p) library(tidyverse) pi_data <- function(n){ x0 <- 0 y0 <- 0 x <- runif(n) y <- runif(n) distances <- sqrt((x-x0)^2+(y-y0)^2) point <- ifelse(distances <= 1, "inside", "outside") id <- 1:n pi_predict <- cumsum(point == "inside")/id * 4 data <- data.frame(id, x, y, distances, point, pi_predict) } data1000 <- pi_data(n = 1000) p1 <- ggplot(data1000) + geom_rect(aes(xmin = 0,xmax = 1,ymin = 0, ymax = 1),color = "black",alpha = 0) + ggforce::geom_arc(aes(x0 = 0, y0 = 0,r = 1, start = 0,end = pi/2)) +coord_fixed() + geom_point(data = data1000,aes(x,y,color = point)) p1 p2 <- ggplot(data1000) + geom_line(aes(x = id,y = pi_predict))+ geom_hline(yintercept = pi) p2 试下动态图 library(gganimate) anim <- ggplot(data1000) + geom_rect(aes(xmin = 0,xmax = 1,ymin = 0, ymax = 1),color = "black",alpha = 0) + ggforce::geom_arc0(aes(x0 = 0, y0 = 0,r = 1, start = 0,end = pi/2)) +coord_fixed() + geom_point(data = data1000,aes(x,y,color = point,group = id)) + transition_reveal(along = id) + labs(title = "frame:{frame} of {nframes}") anim2 <-animate(anim, nframes = 100, fps = 10, width = 550, height = 540, res = 90, renderer = gifski_renderer(loop = T)) anim2 make_run2 <- function(pi_data){ anim <- ggplot(pi_data,aes(id ,pi_predict)) + geom_line() + geom_point(aes(group = seq_along(id)),color = "red",size = 1)+ transition_reveal(id)+ geom_hline(yintercept = pi) anim2 <-animate(anim, nframes = 100, fps = 10, width = 550, height = 540, res = 90, renderer = gifski_renderer(loop = T)) } last <- make_run2(data1000) last