【www.shanpow.com--节日作文】
(1) [meta10]2017年古体诗(选辑)
[2017-03-25]
春雨(其一)
春雨本无心,文人自多情。
农家喜滋润,行人恼泥泞。
春雨(其二)
三月雨成诗,六旬尚应时。
图文相辅趣,孰料老来痴。
同学
年少不知惜,琐事闹间隙。
别离四十载,全是同窗谊。
[2017-04-03]
序
喜今日春光明媚,忧前时绵绵淫雨。仿前人春寒古韵,感世事无理有序。
倒春寒
老枝冒新意,料峭绿探春。
风妒弄事体,雨怨湿衣襟。
芽冷难写景,花寒不开心。
非是世无情,只怪性天真。
*套用梅尧臣《春寒》“花冷不开心”句。
[2017-04-04]
清明节
年年清明雨绵绵,惟独今天不可怜。
莫非人间已无泪,毫无半滴到九泉。
忆父亲
无雨无酒过清明,无笛无村思父亲。
父在心安日日好,父逝心酸夜夜灯。
你赴瑶池作仙翁,我秉遗志过余生。
闻说明后起风雨,风雨无阻赶前程。
[2017-04-10]
题七六届姐妹重聚唯亭照
春月十三宜出行
行程东来唯亭镇
镇里同学聚成群
群里姐妹聚东亭
亭东美酒十九碰
碰杯声中牡丹奉
奉上一曲姐妹颂
颂歌唱出同窗情
情思悠悠叙年庚
庚年尽是辛劳影
影中尚有丝巾映
映出风霜犹精英
英姿飒爽展技能
能作巧妇能作工
工作生活硕果丰
丰功不居孝婆公
公事忙碌孙儿疼
疼爱本是女儿风
*(“亭东”即“东亭”,谐音“叮咚”碰杯声)
[2017-04-24]
贺天舟
海南神鬼惊,太空天舟现。
空运济嫦娥,中华神奇诞。
[2017-05-13]
题女生登泰山照
谁言珠黄不值钱,夕阳红时胜春艳。
登高览胜路难行,却有巾帼在路前。
*部分老同学游泰山,见女生登泰山照有感。
[2017-07-17]
荷花赞
开花当如此,出泥不污姿。
中通且挺直,不蔓不横枝。
映日红别样,香远清名驰。
秋来盛装卸,深水藏情思。
*老同学发一组荷花照片,借用周敦颐《爱莲说》和杨万里《晓出净慈寺送林子方》中的词句即兴弄诗。
助兴
千年诗文多,佳作多几何?
夏夜咏菡萏,偶得权当酌。
*老同学惠兴言道,写好荷花的文章很难。千百年咏荷佳作不知多少,我等就是凑热闹而已。
[2017-07-31]
沙场阅兵
朱日和苍莽,心脏里翻腾。
沙场势磅礴,将士气恢弘。
武直排标识,三旗向前进。
前队护方形,红旗展历程。
陆上精锐现,坦克沙尘惊。
战车火炮随,导弹烈焰猛。
信息精巧合,耳聪又目明。
侦察加对抗,无人赛神勇。
特种作战群,甲兵装备精。
导弹防空远,弹炮近处灵。
海军陆战队,不分男女兵。
近岸利器守,护网全位封。
机动打敌舰,导弹是依凭。
空军大气派,瞬间能预警。
轰六天窗砸,导弹巡航惩。
胖妞远投送,神将降天空。
空中加油快,打击范围增。
歼二十惊鸿,歼家族蜂拥。
十五舰载机,制空急先锋。
将士拼火线,后勤保支撑。
武警出特种,后方维稳定。
战略有火箭,王牌乃东风。
卫国底牌足,核常全域震。
才出训练场,便听将军令。
检阅野战化,军改硕果成。
回顾建军史,英雄军心振。
统帅一挥手,打西不向东。
今日大点兵,明朝敢赴命。
*朱日和,译成汉语意为心脏。
[2017-09-12]
读好友"净化仓感悟"(三首)其一
入舱闭关修,鲜髓万中求。
今看爬山虎,明起雄赳赳。
[2017-09-25]
其二浴血恶磨斗,药苦譬如酒。
新生指标优,下床迈步走。
[2017-10-26]
其三病床日卧熬,半载韶光韬。
酸痛一千步,忍得再弄潮。
迎李侍桃(回文诗)
迎李侍桃送热情,
热情育红花时逢。
逢时花红育情热,
情热送桃侍李迎。
[2017-10-18]
聆听十九大报告(二首)
其一(试作宝塔诗)
中
国醒
共登峰
产生英雄
党业必成功
万世基业任重
岁岁小康向前冲
(其二)
聆听十九大报告
热 情翻腾齐欢欣
烈 士英灵喜讯闻
祝 愿盛会美酒斟
贺 喜十九金秋临
中 国特色有前景
国 民重托量千钧
共 商大计化严峻
产 业构建求创新
党 治从严常视巡
十 年规划新乾坤
九 天揽月功绩存
次 第新政资国运
全 心全意为人民
国 兴民安靠强军
代 表使命无愧恨
表 明真知应直陈
大 会宗旨记初心
会 议决策小康奔
胜 利复兴四海钦
利 在千秋建功勋
召 告英才勿惜身
开 创强国史册称
赞同事(藏头)
赵钱百家桃李来,利在国家树人才。
民间自有高手在,名师出彩专家呆。
致患病好友
病
可恨
来时横
直逼性命
多少人难挺
唯坚持与魔争
爱在你身后共撑
闯过艰难险峰
浴血当重生
看谁更愣
英豪称
驱凶
扔
和老同学“读书”
书
要读
口常呼
手不释牍
眼前见日出
心明拭镜如初
践行其理始于足
夜以继日秉烛
似见面包扑
如获甘酥
香风拂
心舒
服
与老师聊天有感
父母三春晖,不求寸草报。
若愿此情传,代代要调教。
[2017-11-20]
购得华为meta10pro感怀
华为推美十,三星苹果拼。
德国转上海,花痴翘首寻。
饥饿预约抢,发货撞光棍。
快递急煞人,四天不敲门。
拆包心忐忑,始识全面屏。
视野双镜何,来日觅倩景。
快充大电流,数据全克隆。
麒麟九七零,但愿能显灵。
小七弃心痛,月薪散尽呆。
功能要开发,还得附件买。
愿为国货顶,不惜裤带勒。
余总不误我,携手见未来。
*“小七”为荣耀7昵称
2017-12-10
唯亭76届同窗建群两周年庆
(不归诗类,收此充数)
唯中学子,两载同窗;七六毕业,作别匆忙。
无高等学府展鸿鹄之翅,无典礼留影存青春之迹。
坎坷四十程,一路风雨行。
鲜花与掌声,皆画册之花痕;眼泪与汗水,乃圆满之功臣。
怨悔无语,功成不炫;春晖虽去,夕阳红存。
才俊曹公,商海弄潮;聚集英才,姑苏称豪。
不忘师恩,独念诸生;振臂一呼,唯群立成。
精英团队,夜不能寐;奔走海内;日积月累;
遂成九二四团圆之盛典,了却四十载分别之遗憾。
品人到中年之厚重,览历经风雨之彩虹;无梦苏苑,无悔人生!
孰料高潮过后曲不尽,席散之余心愈近。
群内,说学逗嘴成趣闻,图文并茂有诗文。
群外,春至阳澄,秋来天平;大明游,泰山登;胜景采风,名迹寻踪。
人生不虚,师生还遇。
半生蹉跎,回首不哀;歌以留念,幸甚至哉!
【附】对联
集东坡先生诗赋词句,成其一联
大江东去,惊涛拍岸,消长处豪情当酒,只东坡独斟,几度宠辱化传奇
天涯踏尽,明月送行,盈虚间沉浮是梦,惟苏子最醒,多少得失成诗文
聆听十九大报告作对联二幅
九十六载风雨兼程,除凶移山艰难多少,终成中华崛起
一十九大继往开来,反腐革新曲折几许,必圆华夏复兴
林立众生,莫忘体内流淌国血
华夏子嗣,常扪胸中跳动党心
(2) [meta10]Fedora10下源码编译vlc-1.1.1 流程及注意事项
在samtao兄文章的指导下完成vlc的源码编译安装,小生感激涕零,自知忘性>记性,且老板要求留存编译流程以备后者,故备忘如下,如能令他人少走弯路节省时间,善莫大焉:
1:下载vlc的source code版本。
(samtao兄用的是1.0.6,等小生下载的时候已经是1.1.1版本,但编译安装过程无区别)
2:为了让root用户可以执行VLC,我们需要加上 --enable-run-as-root(本人以root登录,没加也没问题)
ps:可以执行如下:[root@tsong vlc-1.0.6]# ./configure --help|grep root 查看该命令怎么写
(samtao兄写的比较快,如果你是跟我差不多的linux菜鸟,你需要知道./configure编译命令之前还有tar -jxvf ****.tar.bz(或bz2)解压,用CD命令进入解压缩后的文件夹等)
编译命令:./configure --enable-run-as-root --prefix=/root/soft/vlc
(--prefix=/root/soft/vlc 这个是安装目录,可以自己定义更改)
提示缺少libmad:configure: error: Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.
(小生# ./configure 后,在这个mad错误之前还出现这个错误
configure:
error: Could not find lua. Lua is needed for some interfaces (rc,
telnet, http) as well as many other custom scripts. Use --disable-lua to
ignore this error.但我运行# yum install lua后提示:Package lua-5.1.4-2.fc10.i386 already installed and latest version
后来才知道应当安装lua-devel,安装后解决了这个问题,后面的fribidi-devel小生也是这时候安装的)
3:编译libmad.
按照提示,下载:http://www.underbit.com/products/mad,编译
./configure --prifix=/root/soft/libmad
make 提示错误(这个make错误小生没遇到,应该是gcc没及时更新,懒人有懒福)
cc1: error: unrecognized command line option "-fforce-mem"
make[2]: *** [version.lo] Error 1
make[2]: Leaving directory `/home/izhier/download/libmad-0.15.1b"
google之,说是gcc版本太高,修改makefile,删除-fforce-mem
即可make,然后make install
(此时libmad安装在/root/soft/libmad文件夹内)
4:继续编译vlc,这时候用如下命令:
./configure --enable-run-as-root --prefix=/root/soft/vlc --with-mad=/root/soft/libmad/
继续,提示找不到libavcodec,
configure: error: Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.5:编译libavcodec.
下载,编译:http://www.ffmpeg.org/download.html
./configure --prifix=/root/soft/ffmpeg
make
编译过程极其漫长
完成之后输入make install即OK
作为一个过来者,我建议用下面这个命令编译:
./configure --prefix=/root/soft/ffmpeg --enable-swscale --enable-postproc --enable-gpl
否则,你将不得不执行步骤7和步骤8。 (这个操作特别有效,学习了)
6:继续编译,不用置疑,一定还是会提示libavcodec找不到,why?因为你放的目录程序找不到。这时候就要用到pkg-config了
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/root/soft/ffmpeg/lib/pkgconfig"
(在Terminal输入上述代码,Enter,当然要注意你的安装位置是否跟上面相同)
export完成之后,我们可以测试一下:
[root@tsong vlc-1.0.6]# pkg-config --modversion libavcodec
52.20.1
如果可以打印出版本信息,那么OK,就可以继续编译了
7:继续编译。
编译命令还是
./configure --enable-run-as-root --prefix=/root/soft/vlc --with-mad=/root/soft/libmad/
继续提示缺少swscale:checking for SWSCALE... no
configure:
error: Could not find libswscale. Use --disable-swscale to ignore this
error. Proper software scaling and some video chroma conversion will be
missing.
google了一下,发现swscale是ffmpeg到一个选项,默认在编译到时候没有启用。
[root@tsong ffmpeg-0.5.1]# ./configure --help|grep swscale
--enable-swscale enable GPLed software scaler support [no]
无奈,只好继续返回步骤5,用如下命令:
[root@tsong ffmpeg-0.5.1]# ./configure --prefix=/root/soft/ffmpeg --enable-swscale
然后再重复再编译安装ffmpeg
make
make install
8:完成步骤7中到swscale后,继续编译。
checking for ffmpeg/swscale.h... no
checking for POSTPROC... no
configure: error: Could not find libpostproc. Use --disable-postproc to ignore this error.
看报错在ffmpeg后面,该不会libpostproc也是ffmpeg到一个配置?
[root@tsong ffmpeg-0.5.1]# ./configure --help|grep postproc
--enable-postproc enable GPLed postprocessing support [no]
[root@tsong ffmpeg-0.5.1]# ./configure --prefix=/root/soft/ffmpeg --enable-swscale --enable-postproc
postproc is gpl and --enable-gpl is not specified.
If you think configure made a mistake, make sure you are using the latest
version from SVN. If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.err" produced by configure as this will help
solving the problem.
[root@tsong ffmpeg-0.5.1]# ./configure --prefix=/root/soft/ffmpeg --enable-swscale --enable-postproc --enable-gpl
无语,继续用./configure --prefix=/root/soft/ffmpeg --enable-swscale --enable-postproc --enable-gpl 命令编译ffmpeg
这可是第三次编译ffmpeg了!
9:继续编译:提示缺少a52
checking for a52dec/a52.h... no
configure: error: Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.
按照提示,从地址 http://liba52.sf.net下载,
./configure --prefix=/root/soft/a52dec
make
make install
10:编译好a52dec后,我们继续编译vlc
./configure --enable-run-as-root --prefix=/root/soft/vlc --with-mad=/root/soft/libmad/ --with-a52=/root/soft/a52dec/
11:
继续报错(这个本人之前乱搞的时候安装了)
checking for FRIBIDI... configure: error: Package requirements (fribidi) were not met:
No package "fribidi" found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables FRIBIDI_CFLAGS
and FRIBIDI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
从网址:http://fribidi.org/下载fribidi,然后编译安装。
[root@tsong fribidi-0.10.9]# ./configure --prefix=/root/soft/fribidi
make
make install
12:如步骤6,还是需要修改PKG_CONFIG_PATH,使之包含刚刚安装的fribidi
export
PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/root/soft/ffmpeg/lib/pkgconfig:/root/soft/fribidi/lib/pkgconfig"
继续编译
13:继续报错(这个本人之前乱搞的时候安装了)
----------My god,我快失去耐心了。好在马上就结束了
checking for QT4... no
configure: WARNING: Qt 4 library not found
configure:
error: The skins2 module depends on a the Qt4 development package.
Without it you won"t be able to open any dialog box from the interface,
which makes the skins2 interface rather useless. Install the Qt4
development package or alternatively you can also configure with:
--disable-qt4 --disable-skins2.
下载QT4,http://qt.nokia.com/downloads-cn 这又是一个大家伙,将近400MB呢,好在我之前已经下载编译好了,现在要做的就是指定pkg-config就可以了
14:还是让pkg-config可以找到qt4就可以了(/opt/qtsdk/qt/lib/pkgconfig)
export
PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/root/soft/ffmpeg/lib/pkgconfig:/root/soft/fribidi/lib/pkgconfig:/opt/qtsdk/qt/lib/pkgconfig"
15:congratulations!
终于要成功了!
config.status: creating vlc-config
Enabled
modules: a52tofloat32 a52tospdif access_alsa access_mmap access_oss
adjust alphamask alsa aout_file aout_sdl atmo audio_format
audioscrobbler avcodec avformat bandlimited_resampler blend blendbench
bluescreen canvas cdda chain clone cmml colorthres converter_float crop
croppadd dbus deinterlace dolby_surround_decoder dtstospdif
dynamicoverlay equalizer erase extract fake fb float32_mixer folder
freetype gaussianblur gestures glx gnutls gradient grain hal
headphone_channel_mixer hotkeys http i420_rgb_mmx i420_rgb_sse2
i420_ymga i420_ymga_mmx i420_yuy2 i420_yuy2_mmx i420_yuy2_sse2 i422_i420
i422_yuy2 i422_yuy2_mmx i422_yuy2_sse2 inhibit invert linear_resampler
logo magnify marq memcpy3dn memcpymmx memcpymmxext mosaic motion
motionblur motiondetect mpgatofixed32 mux_ogg noise normvol notify ogg
opengl opengl osd_parser osdmenu oss panoramix param_eq png podcast
postproc probe_hal psychedelic puzzle qt4 rc remoteosd ripple rotate rss
rv32 sap scale scaletempo scene screensaver sharpen shout showintf
signals simple_channel_mixer skins2 spatializer spdif_mixer
stream_out_raop swscale telepathy telnet telx transform unzip v4l2 vcd
visual vmem vorbis vout_sdl wall wave x11 x11_screen xml xvideo yuv yuvp
yuy2_i420 yuy2_i422 zip
libvlc configuration
--------------------
version : 1.0.6
system : linux
architecture : i686 mmx sse sse2
build flavour : devel
vlc aliases : cvlc rvlc svlc qvlc
plugins/bindings :
You can tune the compiler flags in vlc-config.
To build vlc and its plugins, type `./compile" or `make".
16:很遗憾,编译的时候再次出现错误提示:(这个小生没遇到,估计是因为以前把软件都乱装在了root)
ERROR : src/ft2_font.cpp:30: 29: fribidi/fribidi.h: No such file or directory
src/ft2_font.cpp: In member function "virtual GenericBitmap* FT2Font::drawString(const UString&, uint32_t, int) const":
ERROR : src/ft2_font.cpp: 157: "FriBidiCharType" was not declared in this scope
google:http://svn.tribler.org/vlc/trunk/modules/gui/skins2/src/ft2_font.cpp
查找代码ft2_font.cpp,在目录/root/download/vlc-1.0.6/modules/gui/skins2/src 下,看到了
#include <fribidi/fribidi.h>
因为我们的fribidi是安装在/root/soft/fribidi目录,不是默认安装在/usr/include目录,那么建立符号链接!
[root@tsong include]# ln -s /root/soft/fribidi/include/fribidi/ fribidi
[root@tsong include]# pwd
/usr/include
17:继续
make (漫长等待)
make install(漫长等待)
18:done (这个时候你可以去查看VLC是否乖乖地躺在Applications--Sound&Video的选项里了)
19:编辑文件/usr/share/applications /vlc.desktop
[Desktop Entry]
Version=1.0
Name=Vlc Player
Comment=vlc player
GenericName=vlc
Exec=/root/soft/vlc/bin/vlc
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=vlc48x48
Categories=AudioVideo;
MimeType=text/html;
StartupWMClass=Chromium
StartupNotify=true
X-Desktop-File-Install-Version=0.15
(fedora 10下vlc播放网上链接视频的速度不及在XP下快,后续再看看)
(3) [meta10]TCGA的28篇教程- 使用R语言的RTCGA包获取TCGA数据
前些天被TCGA的终结新闻刷屏,但是一直比较忙,还没来得及仔细研读,但是笔记本躺着的一些TCGA教程快发霉了,借此契机好好整理一下吧,预计二十篇左右的笔记
——jimmy
往期目录如下:
使用R语言的cgdsr包获取TCGA数据
第二篇目录
- TCGA数据源
- R包RTCGA的简单介绍
- 首先安装及加载包
- 指定任意基因从任意癌症里面获取芯片表达数据
- 绘制指定基因在不同癌症的表达量区别boxplot
- 更多boxplot参数
- 指定任意基因从任意癌症里面获取测序表达数据
- 用全部的rnaseq的表达数据来做主成分分析
- 用5个基因在3个癌症的表达量做主成分分析
- 用突变数据做生存分析
- 多个基因在多种癌症的表达量热图
正文TCGA数据源
众所周知,TCGA数据库是目前最综合全面的癌症病人相关组学数据库,包括的测序数据有:
DNA Sequencing
miRNA Sequencing
Protein Expression
mRNA Sequencing
Total RNA Sequencing
Array-based Expression
DNA Methylation
Copy Number
知名的肿瘤研究机构都有着自己的TCGA数据库探索工具,比如:
Broad Institute FireBrowse portal, The Broad Institute
cBioPortal for Cancer Genomics, Memorial Sloan-Kettering Cancer Center
TCGA Batch Effects, MD Anderson Cancer Center
Regulome Explorer, Institute for Systems Biology
Next-Generation Clustered Heat Maps, MD Anderson Cancer Center
R包RTCGA的简单介绍
而RTCGA这个包是 Marcin Marcin Kosinski et al. 等人开发的,工作流程如下:
img这不是简单的一个包,而是一系列根据数据类型分离的包,相当于要先下载这些离线数据R包之后再直接从离线数据包里面获取TCGA的所有数据。
作者写了详细的文档: https://rtcga.github.io/RTCGA/index.html
最新的数据版本是2016-01-28,可以加载以下的包:
RTCGA.mutations.20160128
RTCGA.rnaseq.20160128
RTCGA.clinical.20160128
RTCGA.mRNA.20160128
RTCGA.miRNASeq.20160128
RTCGA.RPPA.20160128
RTCGA.CNV.20160128
RTCGA.methylation.20160128
旧版本已经可以考虑弃用了,下面是基于 2015-11-01 版本的 TCGA 数据
RTCGA.mutations
RTCGA.rnaseq
RTCGA.clinical
RTCGA.PANCAN12
RTCGA.mRNA
RTCGA.miRNASeq
RTCGA.RPPA
RTCGA.CNV
RTCGA.methylation
这里就介绍如何使用R语言的RTCGA包来获取任意TCGA数据吧。
首先安装及加载包
这里仅仅是测序mRNA表达量数据以及临床信息,所以只需要下载及安装下面的包:
# Load the bioconductor installer. source("https://bioconductor.org/biocLite.R")# Install the main RTCGA packagebiocLite("RTCGA")# Install the clinical and mRNA gene expression data packagesbiocLite("RTCGA.clinical") ## 14MbbiocLite("RTCGA.rnaseq") ## (612.6 MB)biocLite("RTCGA.mRNA") ## (85.0 MB)biocLite("RTCGA.mutations") ## (103.8 MB)
安装成功之后就可以加载,可以看到,有些数据包非常大,如果网速不好,下载会很可怕。也可以自己想办法独立下载。
https://bioconductor.org/packages/3.6/data/experiment/src/contrib/RTCGA.rnaseq_20151101.8.0.tar.gzhttps://bioconductor.org/packages/3.6/data/experiment/src/contrib/RTCGA.mRNA_1.6.0.tar.gzhttps://bioconductor.org/packages/3.6/data/experiment/src/contrib/RTCGA.clinical_20151101.8.0.tar.gzhttps://bioconductor.org/packages/3.6/data/experiment/src/contrib/RTCGA.mutations_20151101.8.0.tar.gz
library(RTCGA)
## Welcome to the RTCGA (version: 1.8.0).
all_TCGA_cancers=infoTCGA()DT::datatable(all_TCGA_cancers)
library(RTCGA.clinical) library(RTCGA.mRNA) ## ?mRNA## ?clinical
指定任意基因从任意癌症里面获取芯片表达数据
这里我们拿下面3种癌症做示范:
Breast invasive carcinoma (BRCA)
Ovarian serous cystadenocarcinoma (OV)
Lung squamous cell carcinoma (LUSC)
library(RTCGA)library(RTCGA.mRNA)expr -> extract.cols = c("GATA3", "PTEN", "XBP1","ESR1", "MUC1"))
## Warning in flatten_bindable(dots_values(...)): ".Random.seed" is not an## integer vector but of type "NULL", so ignored
expr
## # A tibble: 1,305 x 7## bcr_patient_barcode dataset GATA3 PTEN XBP1## chr> chr> dbl> dbl> dbl>## 1 TCGA-A1-A0SD-01A-11R-A115-07 BRCA.mRNA 2.870500 1.3613571 2.983333## 2 TCGA-A1-A0SE-01A-11R-A084-07 BRCA.mRNA 2.166250 0.4283571 2.550833## 3 TCGA-A1-A0SH-01A-11R-A084-07 BRCA.mRNA 1.323500 1.3056429 3.020417## 4 TCGA-A1-A0SJ-01A-11R-A084-07 BRCA.mRNA 1.841625 0.8096429 3.131333## 5 TCGA-A1-A0SK-01A-12R-A084-07 BRCA.mRNA -6.025250 0.2508571 -1.451750## 6 TCGA-A1-A0SM-01A-11R-A084-07 BRCA.mRNA 1.804500 1.3107857 4.041083## 7 TCGA-A1-A0SO-01A-22R-A084-07 BRCA.mRNA -4.879250 -0.2369286 -0.724750## 8 TCGA-A1-A0SP-01A-11R-A084-07 BRCA.mRNA -3.143250 -1.2432143 -1.193083## 9 TCGA-A2-A04N-01A-11R-A115-07 BRCA.mRNA 2.034000 1.2074286 2.278833## 10 TCGA-A2-A04P-01A-31R-A034-07 BRCA.mRNA -0.293125 0.2883571 -1.605083## # ... with 1,295 more rows, and 2 more variables: ESR1 dbl>, MUC1 dbl>
可以看到我们感兴趣的5个基因在这3种癌症的表达量数据都获取了,但是样本量并不一定是最新的TCGA样本量,如下:
nb_samples ->$dataset)nb_samples
## ## BRCA.mRNA LUSC.mRNA OV.mRNA ## 590 154 561
其中要注意的是mRNA并不是rnaseq,两者不太一样,具体样本数量,可以看最前面的表格。
下面简化一下标识,方便可视化展现
expr$dataset ->".mRNA", replacement = "", expr$dataset)expr$bcr_patient_barcode ->$dataset, c(1:590, 1:561, 1:154))expr
## # A tibble: 1,305 x 7## bcr_patient_barcode dataset GATA3 PTEN XBP1 ESR1## chr> chr> dbl> dbl> dbl> dbl>## 1 BRCA1 BRCA 2.870500 1.3613571 2.983333 3.0842500## 2 BRCA2 BRCA 2.166250 0.4283571 2.550833 2.3860000## 3 BRCA3 BRCA 1.323500 1.3056429 3.020417 0.7912500## 4 BRCA4 BRCA 1.841625 0.8096429 3.131333 2.4954167## 5 BRCA5 BRCA -6.025250 0.2508571 -1.451750 -4.8606667## 6 BRCA6 BRCA 1.804500 1.3107857 4.041083 2.7970000## 7 BRCA7 BRCA -4.879250 -0.2369286 -0.724750 -4.4860833## 8 BRCA8 BRCA -3.143250 -1.2432143 -1.193083 -1.6274167## 9 BRCA9 BRCA 2.034000 1.2074286 2.278833 4.1155833## 10 BRCA10 BRCA -0.293125 0.2883571 -1.605083 0.4731667## # ... with 1,295 more rows, and 1 more variables: MUC1 dbl>
绘制指定基因在不同癌症的表达量区别boxplot
library(ggpubr)
## Loading required package: ggplot2
## Loading required package: magrittr
# GATA3ggboxplot(expr, x = "dataset", y = "GATA3", title = "GATA3", ylab = "Expression", color = "dataset", palette = "jco")
img# PTENggboxplot(expr, x = "dataset", y = "PTEN", title = "PTEN", ylab = "Expression", color = "dataset", palette = "jco")
img## 注意这个配色可以自选的: RColorBrewer::display.brewer.all()
这里选择的是 ggsci 包的配色方案,包括: “npg”, “aaas”, “lancet”, “jco”, “ucscgb”, “uchicago”, “simpsons” and “rickandmorty”,针对常见的SCI杂志的需求开发的。
还可以加上P值信息
my_comparisons ->list(c("BRCA", "OV"), c("OV", "LUSC"))ggboxplot(expr, x = "dataset", y = "GATA3", title = "GATA3", ylab = "Expression", color = "dataset", palette = "jco")+ stat_compare_means(comparisons = my_comparisons)
img这些统计学检验,也是被包装成了函数:
compare_means(c(GATA3, PTEN, XBP1) ~ dataset, data = expr)
## # A tibble: 9 x 8## .y. group1 group2 p p.adj p.format p.signif## ## 1 GATA3 BRCA OV 1.111768e-177 3.335304e-177 ## 2 GATA3 BRCA LUSC 6.684016e-73 1.336803e-72 ## 3 GATA3 OV LUSC 2.965702e-08 2.965702e-08 3.0e-08 ****## 4 PTEN BRCA OV 6.791940e-05 6.791940e-05 6.8e-05 ****## 5 PTEN BRCA LUSC 1.042830e-16 3.128489e-16 ## 6 PTEN OV LUSC 1.280576e-07 2.561153e-07 1.3e-07 ****## 7 XBP1 BRCA OV 2.551228e-123 7.653685e-123 ## 8 XBP1 BRCA LUSC 1.950162e-42 3.900324e-42 ## 9 XBP1 OV LUSC 4.239570e-11 4.239570e-11 4.2e-11 ****## # ... with 1 more variables: method
更多boxplot参数
label.select.criteria ->list(criteria = "`y` > 3.9 & `x` %in% c("BRCA", "OV")")ggboxplot(expr, x = "dataset", y = c("GATA3", "PTEN", "XBP1"), combine = TRUE, color = "dataset", palette = "jco", ylab = "Expression", label = "bcr_patient_barcode", # column containing point labels label.select = label.select.criteria, # Select some labels to display font.label = list(size = 9, face = "italic"), # label font repel = TRUE # Avoid label text overplotting )
img其中 combine = TRUE 会把多个boxplot并排画在一起,其实没有ggplot自带的分面好用。
还可以使用 merge = TRUE or merge = “asis” or merge = "flip" 来把多个boxplot 合并,效果不一样。
还有翻转,如下:
ggboxplot(expr, x = "dataset", y = "GATA3", title = "GATA3", ylab = "Expression", color = "dataset", palette = "jco", rotate = TRUE)
img更多可视化详见: http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/77-facilitating-exploratory-data-visualization-application-to-tcga-genomic-data/
指定任意基因从任意癌症里面获取测序表达数据
还是同样的3种癌症和5个基因做示范,这个时候的基因ID稍微有点麻烦,不仅仅是要symbol还要entrez的ID,具体需要看 https://wiki.nci.nih.gov/display/TCGA/RNASeq+Version+2 的解释
如下:
library(RTCGA)library(RTCGA.rnaseq)expr -> extract.cols = c("GATA3|2625", "PTEN|5728", "XBP1|7494","ESR1|2099", "MUC1|4582"))expr
## # A tibble: 2,071 x 7## bcr_patient_barcode dataset `GATA3|2625` `PTEN|5728`## ## 1 TCGA-3C-AAAU-01A-11R-A41B-07 BRCA.rnaseq 14337.4623 1724.328## 2 TCGA-3C-AALI-01A-11R-A41B-07 BRCA.rnaseq 7437.7379 1106.580## 3 TCGA-3C-AALJ-01A-31R-A41B-07 BRCA.rnaseq 10252.9465 1478.695## 4 TCGA-3C-AALK-01A-11R-A41B-07 BRCA.rnaseq 8761.6880 1877.120## 5 TCGA-4H-AAAK-01A-12R-A41B-07 BRCA.rnaseq 14068.5106 1739.574## 6 TCGA-5L-AAT0-01A-12R-A41B-07 BRCA.rnaseq 16511.5120 1596.715## 7 TCGA-5L-AAT1-01A-12R-A41B-07 BRCA.rnaseq 6721.2714 1374.083## 8 TCGA-5T-A9QA-01A-11R-A41B-07 BRCA.rnaseq 13485.3556 2181.485## 9 TCGA-A1-A0SB-01A-11R-A144-07 BRCA.rnaseq 601.4191 2529.114## 10 TCGA-A1-A0SD-01A-11R-A115-07 BRCA.rnaseq 12982.8798 1875.775## # ... with 2,061 more rows, and 3 more variables: `XBP1|7494` ,## # `ESR1|2099` , `MUC1|4582`
nb_samples ->$dataset)nb_samples
## ## BRCA.rnaseq LUSC.rnaseq OV.rnaseq ## 1212 552 307
library(ggpubr)# ESR1|2099ggboxplot(expr, x = "dataset", y = "`PTEN|5728`", title = "ESR1"2099", ylab = "Expression", color = "dataset", palette = "jco")
img更多可视化见:http://rtcga.github.io/RTCGA/articles/Visualizations.html
用全部的rnaseq的表达数据来做主成分分析
## RNASeq expressionslibrary(RTCGA.rnaseq)library(dplyr)
## ## Attaching package: "dplyr"
## The following objects are masked from "package:stats":## ## filter, lag
## The following objects are masked from "package:base":## ## intersect, setdiff, setequal, union
expressionsTCGA(BRCA.rnaseq, OV.rnaseq, HNSC.rnaseq) %>% dplyr::rename(cohort = dataset) %>% filter(substr(bcr_patient_barcode, 14, 15) == "01") -> BRCA.OV.HNSC.rnaseq.cancerpcaTCGA(BRCA.OV.HNSC.rnaseq.cancer, "cohort") -> pca_plotplot(pca_plot)
img因为是全部的表达数据,所以非常耗时,但是可以很明显看到乳腺癌和卵巢癌关系要近一点,头颈癌症就要远一点。
用5个基因在3个癌症的表达量做主成分分析
expr %>% filter(substr(bcr_patient_barcode, 14, 15) == "01") -> rnaseq.5genes.3cancersDT::datatable(rnaseq.5genes.3cancers)
#pcaTCGA(rnaseq.5genes.3cancers, "dataset") -> pca_plot#plot(pca_plot)
该包里面的pcaTCGA函数不好用,其实可以自己做PCA分析。
用突变数据做生存分析
library(RTCGA.mutations)# library(dplyr) if did not load at startlibrary(survminer)mutationsTCGA(BRCA.mutations, OV.mutations) %>% filter(Hugo_Symbol == "TP53") %>% filter(substr(bcr_patient_barcode, 14, 15) == "01") %>% # cancer tissue mutate(bcr_patient_barcode = substr(bcr_patient_barcode, 1, 12)) -> BRCA_OV.mutationslibrary(RTCGA.clinical)survivalTCGA( BRCA.clinical, OV.clinical, extract.cols = "admin.disease_code" ) %>% dplyr::rename(disease = admin.disease_code) -> BRCA_OV.clinicalBRCA_OV.clinical %>% left_join( BRCA_OV.mutations, by = "bcr_patient_barcode" ) %>% mutate(TP53 = ifelse(!is.na(Variant_Classification), "Mut","WILDorNOINFO")) -> BRCA_OV.clinical_mutationsBRCA_OV.clinical_mutations %>%select(times, patient.vital_status, disease, TP53) -> BRCA_OV.2plotkmTCGA( BRCA_OV.2plot, explanatory.names = c("TP53", "disease"), break.time.by = 400, xlim = c(0,2000), pval = TRUE) -> km_plot
## Scale for "colour" is already present. Adding another scale for## "colour", which will replace the existing scale.
## Scale for "fill" is already present. Adding another scale for "fill",## which will replace the existing scale.
print(km_plot)
img多个基因在多种癌症的表达量热图
library(RTCGA.rnaseq)# perfrom plot# library(dplyr) if did not load at startexpressionsTCGA( ACC.rnaseq, BLCA.rnaseq, BRCA.rnaseq, OV.rnaseq, extract.cols = c("MET|4233", "ZNF500|26048", "ZNF501|115560") ) %>% dplyr::rename(cohort = dataset, MET = `MET|4233`) %>% #cancer samples filter(substr(bcr_patient_barcode, 14, 15) == "01") %>% mutate(MET = cut(MET, round(quantile(MET, probs = seq(0,1,0.25)), -2), include.lowest = TRUE, dig.lab = 5)) -> ACC_BLCA_BRCA_OV.rnaseqACC_BLCA_BRCA_OV.rnaseq %>% select(-bcr_patient_barcode) %>% group_by(cohort, MET) %>% summarise_each(funs(median)) %>% mutate(ZNF500 = round(`ZNF500|26048`), ZNF501 = round(`ZNF501|115560`)) -> ACC_BLCA_BRCA_OV.rnaseq.medians
## `summarise_each()` is deprecated.## Use `summarise_all()`, `summarise_at()` or `summarise_if()` instead.## To map `funs` over all variables, use `summarise_all()`
heatmapTCGA(ACC_BLCA_BRCA_OV.rnaseq.medians, "cohort", "MET", "ZNF500", title = "Heatmap of ZNF500 expression")
img细心的同学可以发现,本教程其实里面含有大量的外链,因为微信自身的限制没办法跳转,大家可以去生信技能树论坛查看,谢谢合作哦。
一个R包不仅仅是提供一个数据下载接口,更重要的是里面封装了一些便于使用的统计分析函数。
生信技能树GATK4系列教程
GATK4的gvcf流程
你以为的可能不是你以为的
新鲜出炉的GATK4培训教材全套PPT,赶快下载学习吧
曾老湿最新私已:GATK4实战教程
GATK4的CNV流程-hg38