生物节律之metacycle和cosinor分析(1)

1.JTK

使用metacycle包进行JTK的分析,其实metacycle包中可选的分析方法有ARSER(Yang, 2010),JTK_CYCLE( Hughes, 2010)和Lomb-Scargle(Glynn, 2006) 三种
下面只使用JTK进行分析,输入数据长这样

library(MetaCycle)
meta2d(infile="./metacycle/clock_input.csv", 
       filestyle="csv", 
       outdir="./metacycle",
       outIntegration = "onlyIntegration",
       timepoints=rep(seq(1,21,4),6), #时间点1,5,9,13,17,21,1,5,9,...
       #timepoints=rep(seq(1,21,4),each=6), #时间点1,1,1,1,1,1,5,5,5,...
       cycMethod = "JTK")

下面是JTK结果,分别是p值,校正q值,周期,调整相位,振幅

2.cosinor分析

使用cosinor2包进行余弦分析,输入数据长这样

library(cosinor2)
xx <- read.csv("cosinor/clock_cosinor.csv",check.names = F)
x1 <- xx %>% 
  select(1:8) %>%
  arrange(gene,group)
temp=table(x1$gene)[1]
index=length(x1$gene)/temp

analysis <- function(num){
  x=x1
  max=num*temp-0.5*temp
  min=(num-1)*temp+1
  (x=x[min:max,])
  name=x$gene[1]
  group=x$group[1]
  x=x[,3:8]
  fit1 =population.cosinor.lm(data = x, time = as.integer(colnames(x)), period = 24)
  det1=cosinor.detect(fit1)
  det2=cosinor.PR(fit1)
  a = cbind(fit1$coefficients,det1,det2)
  a$gene = name
  a$group=group
  
  x=x1
  max=num*temp
  min=num*temp-0.5*temp+1
  (x=x[min:max,])
  name=x$gene[1]
  group=x$group[1]
  x=x[,3:8]
  fit2 =population.cosinor.lm(data = x, time =  as.integer(colnames(x)), period = 24,plot = F)
  det1=cosinor.detect(fit2)
  det2=cosinor.PR(fit2)
  b = cbind(fit2$coefficients,det1,det2)
  b$gene = name
  b$group=group
  
  
  c=rbind(a,b)
  contrast <- as.data.frame(cosinor.poptests(fit1, fit2))
  contrast$gene=name
  contrast$group="C_vs_N" #fit1来自group C,fit2来自group N
  list1 <- list()
  list1$a <- c
  list1$b <- contrast
  return(list1) 
}
res0 <- data.frame()
res1 <- data.frame()
for (i in seq(1,index)) {
  res = analysis(i)
  res0 = rbind(res0,res$a)
  res1 = rbind(res1,res$b)
}

res0长这样,p表示振荡的显著性p-value表示观测数据和估计数据之间的相关性是否显著
Tips: Acrophase必小于等于0,其是相对于参考时间0°的弧度制,用(负)度表示,360°(2π)等于周期


res1长这样, 可以看两组的mesor,amp,acr三项的具体平均值和差异是否显著

关于如何画图,我使用的是cosinor包的函数,两组输入数据是一样的,整理稍有不同

xx <- read.csv("cosinor/clock_cosinor.csv",check.names = F)
x1 <- xx %>% 
  select(1:8) %>%
  gather(time,value,3:8) %>% 
  mutate(time=as.numeric(time)) %>%
  arrange(gene) %>%
  mutate(group=ifelse(group=="N",0L,1L))
temp= table(x1$gene)[1]
index =length(x1$gene)

analysis <- function(num){
  x=x1
  max=num*temp
  min=(num-1)*temp+1
  x=x[min:max,]
  fit = cosinor.lm(value ~ time(time)+group+amp.acro(group), data = x, period = 24)
 
  x <- x %>% mutate(levels=ifelse(group=="0"," group = 0"," group = 1")) %>%
    select(gene,levels,time,value)#为了使图例一致而进行的变形
  p <- ggplot.cosinor.lm(fit,x_str = "group")+
    geom_point(aes(time,value,colour=factor(levels)),data = x)+
    theme_classic(base_size = 22)+
    theme(axis.text = element_text(colour = "black"),
          plot.margin=unit(rep(0.3,4),'lines'))+
    scale_color_discrete(name="Group",labels=c("N","C"))+
    scale_x_continuous(limits = c(0,24),breaks = c(1,5,9,13,17,21))+
    labs(x="Time",y=paste0(str_to_title(x$gene[1])," ","expression"))
  p
  ggsave(filename = paste0(str_to_title(x$gene[1]),".png"),plot = p,width = 7,height = 7)
}

for (i in seq(1,index/temp)) {analysis(i)}

其实cosinor包也能做振荡检测和差异分析,但是结果读取不太友好,细细比较cosinor和cosinor2两个包,cosinor出图好看一点,cosinor2结果更易读,说到底两者的结论其实是没有什么差异的

ps:我是初学者,如有错误或遗漏,敬请批评指正

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容

  • 第三章 语音信号特征分析 语音合成音质的好坏,语音识别率的高低,都取决于对语音信号分析的准确度和精度。例如,利用线...
    锅锅Iris阅读 10,217评论 3 8
  • 今天是什么日子 起床:5:27 就寝:00:00 天气:雨天 心情:微困 纪念日:天使班3.0践行的第90天 任务...
    Lucky有情阅读 225评论 0 5
  • 不知不觉,明月升起,华灯初上。夜色下的平江路被晕黄的灯光笼罩着,被五彩的霓虹渲染着,散发着的迷人的幽光,显...
    云汉藏阅读 181评论 0 0
  • 1.感恩今天早上发生的这件事情,不去分析这件事了,这一切都是我创造的,我对此负百分百的责任。我充分意识到我是一切的...
    自然缘阅读 414评论 0 1
  • 王静波 女儿小学四年级时曾很生气地对我说,“妈妈你翻了我的书包,我们不再是朋友啦!”,看着气鼓鼓的小家伙,有点好笑...
    王静波风中传来口哨声阅读 2,601评论 0 0