接着上一篇留下的问题,如何按照以1M为窗口,每次移动10Kb计算均值。我们以KY131是"0/0", 而 "DN422" 是 "1/1"的位点结果为例,我们来增加这条线

原本我的想法是使用split根据每个位点的位置信息进行拆分,但是这里有一个问题是,如果只是每个窗口没有重叠的话,那么每个位点应该都有一个唯一的因子,但这里是以10kb将长度为1Mb的窗口从左往右移动,也就意味着有很多位点时属于多个窗口的,也就是无法直接用split-apply-combine的方法进行处理。

于是乎,我写了一个函数用于根据窗口来计算均值,它的逻辑就是先创建好窗口,然后根据窗口的起始位置和终止位置去筛选符合要求的位点,最后进行求和。同时考虑有些位置可能没有SNP,那么最后还进行了一波过滤。

函数的输入是之前snp-index的位置和对应的值,以及确定窗口的大小和步长,

calcValueByWindow <- function(pos, value,window_size = 1000000,step_size = 100000){# get the max position in the postionmax_pos <- max(pos)# construct the windowwindow_start <- seq(0, max_pos   window_size,step_size)window_end <- window_start   step_sizemean_value <- vector(mode = "numeric", length = length(window_start))# select the value inside the windowfor (j in seq_along(window_start)){pos_in_window <- which(pos > window_start[j] &pos < window_end[j])value_in_window <- value[pos_in_window]mean_value[j] <- mean(value_in_window)}# remove the Not A Number positionnan_pos <-  is.nan(mean_value)mean_value <- mean_value[! nan_pos]window_pos <- ((window_start   window_end)/ 2)[!nan_pos]df <- data.frame(pos   = window_pos,value = mean_value)return(df)
}

得到结果就可以用lines在之前结果上加上均值线

par(mfrow = c(3,4))for (i in paste0("chr", formatC(1:12, width = 2, flag=0)) ){freq_flt <- freq2[grepl(i,row.names(freq2)), ]pos <- as.numeric(substring(row.names(freq_flt), 7))snp_index <- freq_flt[,1] - freq_flt[,2]# bindf <- calcValueByWindow(pos = pos, value = snp_index)plot(x = pos, y =snp_index, ylim = c(-1,1),pch = 20, cex = 0.2,xlab = i,ylab = expression(paste(Delta, " " ,"SNP index")))lines(x = df$pos, y = df$value, col = "red")
}

最后再对文章总结一下。文章并不是只用了BSA的方法进行定位,他们花了几年的时间用SSR分子标记确定了候选基因可能区间,用BSA的方法在原有基础上缩小了定位区间。当然即便如此,候选基因也有上百个,作者通过BLAST的方式,对这些基因进行了注释。尽管中间还加了一些GO富集分析的内容,说这些基因富集在某个词条里,有一个是DNA metabolic processes(GO:0006259),但我觉得如果作者用clusterProfiler做富集分析,它肯定无法得到任何富集结果。他做富集分析的目的是其实下面这个描述,也就是找到和抗冻相关的基因

LOCOs06g39740 and LOCOs06g39750,were annotated as the function of “response to cold (GO: 0009409)”, suggesting their key roles in regulating cold tolerance in rice. "

当然他还做了qRT-PCR进行了验证,最后推测LOC_Os06g39750应该是目标基因,这个基因里还有8个SNP位点。

版权声明:本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。

以水稻为例教你如何使用BSA方法进行遗传定位(下篇)相关推荐

  1. 以水稻为例教你如何使用BSA方法进行遗传定位(上篇)

    BSA虽然不是我最早接触的高通量数据分析项目(最早的是RNA-seq),但是却是我最早独立开展的数据分析项目, 我曾经专门写过一篇文章介绍如何使用SHOREMap做拟南芥的EMS诱变群体的BSA分析 ...

  2. 如何使用BSA方法进行遗传定位(水稻篇)

    BSA虽然不是我最早接触的高通量数据分析项目(最早的是RNA-seq),但是却是我最早独立开展的数据分析项目, 我曾经专门写过一篇文章介绍如何使用SHOREMap做拟南芥的EMS诱变群体的BSA分析 ...

  3. MPB:农科院田健、韩东飞等-​​水稻根系互作功能微生物的筛选方法

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  4. 两部苹果手机同步照片_怎么恢复苹果手机删除的照片?今天教你三种找回方法...

    原标题:怎么恢复苹果手机删除的照片?今天教你三种找回方法 怎么恢复苹果手机删除的照片?手机的出现虽然带给我们很大便利,同时却也带来了一些小的麻烦.在手机上很多操作步骤都很简单,因此,难免会遇到手滑误操 ...

  5. 机器学习:一步步教你理解反向传播方法

    机器学习:一步步教你理解反向传播方法 时间 2016-09-13 00:35:59  Yong Yuan's blog 原文  http://yongyuan.name/blog/back-propa ...

  6. iphone屏蔽系统更新_iPhone手机经常提示更新系统,教你一招关闭方法,学到了

    用过iPhone手机的都知道,一段时间之后就会不停地有消息更新提醒,让你自动更新手机系统,一段时间的置之不理之后,你发现你的手机已经自动更新到最新系统了. 是不是让人很头大呢?下面就来教教大家怎样关闭 ...

  7. 测试电视是不是4k的软件,怎么判断4K电视真假?教你快速检测的方法!

    原标题:怎么判断4K电视真假?教你快速检测的方法! 4K电视从进入市场之后一直都受到企业的力捧,随着电视企业对4K电视的大力度宣传和消费环境的逐渐成熟,越来越多的消费者开始认可4K电视,并在购机时表明 ...

  8. java getipaddress_教你java用getAddress方法取得IP地址

    本篇教你java用getAddress方法取得IP地址: getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,而g ...

  9. python 暂停程序 等待用户输入_遇上Python程序暂停时,不要慌,教你正确的处理方法...

    今天为大家带来的内容是:遇上Python程序暂停时,不要慌,教你正确的处理方法! 文章内容主要介绍了Python程序暂停的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下,喜欢的记得点 ...

最新文章

  1. Linux下nginx支持.htaccess文件实现伪静态的方法!
  2. 【NLP】NER数据标注中的标签一致性验证
  3. SpringBoot异常处理-自定义错误页面
  4. SAP UI5 初学者教程之二十七 - SAP UI5 应用的单元测试工具 QUnit 介绍试读版
  5. Java、Android—零碎难记笔试考点(持续更新)
  6. .net core中的高效动态内存管理方案
  7. linux tcp cork,在此用例中,TCP_CORK和TCP_NODELAY是否有显着差异?
  8. Android 程式开发:(二十)内容提供者 —— 20.6 自定义ContentProvider的使用
  9. 我这么认真地问问题,你为啥不回答???
  10. oracle执行计划cost单位,Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引
  11. ROS 启动自带摄像头或者USB摄像头
  12. css阿拉伯数字,css 古文排版(含阿拉伯数字)
  13. 云计算机盒子,网络盒子秒变PC电脑必备装备客厅云电脑
  14. 【常用方法】ContactsUtil-联系人工具类
  15. 2021年茶艺师(初级)考试报名及茶艺师(初级)考试技巧
  16. java 中counter什么意思_方便适用的计数器Counter
  17. JETT(二)-Java简单实现
  18. uos命令_UOS与Deepin OS区别详解
  19. 树莓派配置环境细节(JDK+pycharm+miniconda+pyqt5+opencv-python)
  20. 最优控制理论 五+、极大值原理Bang-Bang控制问题的求解

热门文章

  1. HCNP-路由交换:AAA
  2. 【气相色谱质谱联用仪】生态模拟计算运行成本和二氧化碳排放量
  3. X3DAudio中声道音量跳变的问题
  4. 本地笔记软件mybase8.x破解试用用时长限制
  5. 通常所说微型计算机的奔3,【计算机应用基础】.doc
  6. 如何在cmd下开启或者关闭3389端口?
  7. 大数据的十大发展方向
  8. 系统集成项目管理工程师考试时间
  9. 35家巨头科技公司联合组成元宇宙标准论坛组织
  10. TokenInsight 成功举办“首席对话首席”区块链行业论坛