The future is coming for you.

2018-12-23
稀疏矩阵的表示法

Seurat 与 Cellranger 之间互通的二三事中,我们遇到了 dgTMatrixdgCMatrix 这两个稀疏矩阵的不同表示。先前不清楚的时候,在必应中搜索稀疏矩阵中,出现最多的文章就是诸如 《理解Compressed Sparse Column Format (CSC)》这一类文章,我就不吐槽 CSDN 了,唉。这也就说明了作为写代码的人,你为什么要去直接看英文的原始资料,因为你永远不知道,翻译资源的那个人英文水平怎么样,更别提他的技术水平了。我这里是为了记录自己的学习内容,目的是为了自己观看。如果有某位同学进来了,还是看英文资料比较好一点,放在 参考 中了,你可以自己查阅。

Read More

2018-12-23
Seurat 与 Cellranger 之间互通的二三事

最近,在做单细胞测序的分析,出现了这么一个需求:Cellranger 中没有像 Seurat 一样进行单细胞数据中常见的几类质控,比如 nGene,nUMI, percent of mitochondria genes 等,因此对于 cellranger 得到的矩阵先要经过这类质控,再进行 cellranger analyze 的后续分析。本来 Cellranger 自己有进行后续的 Rkit 包进行分析,但由于第三方包的发展,这个包已经被废弃了。鉴于 Cellranger 主页自己推荐使用 Seurat 进行后续分析,我们也就选择了这个软件进行质控及后续分析。

Read More

2018-12-06
动态编程

这几天在耍一耍 rosalind 上面的题目,遇到了几道所谓“斐波那契兔子”的问题,还有一道求最长公共子串的问题。根据题目给的提示,这类“斐波那契”问题都可以归属于动态编程的范畴。那么动态编程具体指的是什么呢?

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。

以上是百度百科上的定义,看不懂啊看不懂。不过没关系,经过下面的问题就应该会好懂一点。

Read More

2018-11-27
R 中的函数式

R 中的函数式

近期,在使用 R 做数据分析的时候,总是会遇到单独对列或者对行进行处理、筛选,不可避免地用到 apply 这类函数。记得以前在 Javascript 中有个库叫做 “underscore”,支持纯粹的函数式编程。仔细想想,R 中这类 apply 函数,其实也就是函数式编程。那干脆再看看相关资料,看看具体是如何的。

Read More

2018-11-27
杀虫剂

程序员,男的又叫“程序猿”,女的又称“程序媛”,但是,他两又合称“码农”。既然是码农,自然要除虫。哈?除什么虫?你不知道?天啦噜,活捉一只不会写 Bug 的生物。让我来告诉你,什么叫 Bug,下面这货就是了:

看见没,既然有了虫子,就要除掉它啦。这里给你所有类型的杀虫剂。

Read More

2018-11-26
第一次写的文

第一次写的文

这只是一个测试

╮(╯▽╰)╭,说来也惭愧。自己花2天时间写个简易的静态博客,包含类似 hexo new, hexo publish 之类的功能,主题就照着 less 官网的形式来写。虽然也依葫芦画瓢添加上文章分类、标签等功能,但是多多少少总会出现点 bug,比如文章列表在点击“展开”之后再点击收回,再点击“展开”的话,就有可能出现文章列表排序不一致的情况,也是要吐血了。发布到 GitHub 上才发现这个问题。这是其一。自己写这个页面框架,在移动端适配方面还是有点不如意,特别是我偷懒直接使用 Rmd 直出 HTML 页面的形式,总有一点异样的味道。这是其二。最近心里有些波动的情况,又时常会想起当初要不要坚持搞这个的问题,人呐,就是这样滴哦,一出现不如意,就想起当初,如果当时。哈哈,这其实也怪生信这个坑,一旦掉入包安装的错误怪圈,就不容易出来,等到腰酸背痛,双目发涩快要失明,就发觉啊,莫名其妙的一下午就这么过去了,就这么过去了。也就时候听见,嘀嗒,嘀嗒,嘀嗒。每次我敲下键盘,它总是响应我这些声音。窗外的邻居喧嚣,也没遮掩掉它。感觉它想要我写点什么,究竟写什么?不好说,写着看吧。伴随着嘀嗒嘀嗒的声音,总算有一些句子出现在这屏幕上。然后是一声滴~~~~~~哒,那么些东西,就回退到这里,那就停手罢,今天就这样。因为:

这只是一个测试。

Read More

2018-11-02
数据处理 dplyr

以前就看过一些 dplyr 的使用,记得当初说是和 tplyr,reshape2 并称 R 数据处理三剑客,想想和 web 开发的 HTML,JavaScript,CSS 的三剑客有些类似。这两天又在《R 数据科学》看到 dplyr 的使用,还挺详细的。现在把书里的相关用法记录在此,刚好也把书上的习题在这里做个回答,以加强使用。

Read More

2018-11-02
可视化 ggplot2入门

久闻 ggplot2 大名,它的出图也在各个生信分析包中随处可见。今天恰好买来的新书《R 数据科学》里面有讲解,遂随着它一起学习一下,也将以前的相关学习一齐记录于此。

Read More

2018-10-28
流程构建 Snakemake使用初步

在学习生信的过程中,总是听说流程啊,管道啊,pipeline啊,到底这些意味着什么?你能把测序数据从ncbi下载下来,这不叫流程;你可以继续把数据做完质控,然后搞个比对,再做做什么差异分析啊、富集分析啊、各种类型数据的联合分析啊,这也不叫流程,谁知道你中间因为某个包安装用了多久的时间,谁晓得你这个过程是不是 reproducible 的?要是你中间出了问题怎么办,可控性如何?监控性如何?要是这些问题都能解答,我想就应该可以叫做一个流程了吧,流程化、自动化、可控化、高复用化。作为一个新人,要独自解决这些功能还是有些困难,肯定需要“假于物”的,恰好那天看到有个朋友说到用snakemake来些流程,哈哈,这不就有了,下面就说一说我初步学习使用的理解吧。

Read More

2018-10-28
可变剪切 rMATS和rmats2sashimiplot

安装

environment: py2.7.x

  • rMATs
1
2
3
4
5
6
7
8
9
10
# in linux
wget http://rnaseq-mats.sourceforge.net/rMATS.4.0.2.tgz

# check version to use, in python
import sys
print sys.maxunicode
# 1114111: rMATS-turbo-xxx-UCS4
# 65535: rMATS-turbo-xxx-UCS2

"path/to/rMATs-turbo-xxx-UCS{x}/rMATS.py"
Read More