900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Plantcare_启动子预测结果_快速筛选指定基因启动子上的顺式作用元件个数

Plantcare_启动子预测结果_快速筛选指定基因启动子上的顺式作用元件个数

时间:2018-12-01 22:32:41

相关推荐

Plantcare_启动子预测结果_快速筛选指定基因启动子上的顺式作用元件个数

文章目录

启动子背景过程开始结果小结

启动子

启动子是RNA 聚合酶识别、结合和开始转录的一段DNA 序列,它含有RNA 聚合酶特异性结合和转录起始所需的保守序列,多数位于结构基因转录起始点的上游,启动子本身不被转录。但有一些启动子(如tRNA启动子)位于转录起始点的下游,这些DNA序列可以被转录。启动子的特性最初是通过能增加或降低基因转录速率的突变而鉴定的。启动子一般位于转录起始位点的上游几百至几千Bp不等。

背景

将获得的某基因转录起始位点2000Bp序列提交至Plantcare(关于如何预测可查阅其他文章,或点击直奔网站主页),即可通过邮件回执预测结果(回执结果是一个由TAB分割的表格文件,在下文使用的使用需要以tab分割导入excel),若基因数量较少时可以通过手工或肉眼即可对预测结果进行观察,并寻找是否存在目标基序,但当涉及到较多的基因数量,如整个基因家族、群体检测SNP等,则会比较费时费力;本文采用VBA编程,对Plantcare的预测结果表格文件(图1)进行筛选、分列、计数等,使其结果形成一个基因为多行(样本),基序为多列(特征)的矩阵,极大的方便了后续筛选目标基序的数量,形成了矩阵,也极大的方便了进行可视化,如热力图等。

过程

'因过程中并没有引用数组,大约2w行100列数据需要30s的运行时间Sub 生成矩阵表格()'删除多余表格Application.DisplayAlerts = FalseDim k As IntegerFor k = Sheets.Count To 1 Step -1If k = 1 ThenExit ForElseSheets(k).DeleteEnd IfNextApplication.DisplayAlerts = True'创建变量Dim gene_num, seq_num As IntegerSheets(1).Copy After:=Sheets(1) '拷贝副本Range("$A$1:$H$" & Range("a666666").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlNo '去重gene_num = Range("a666666").End(xlUp).Row'复制新的sheetActiveWindow.SmallScroll Down:=-110Range("A1:A" & Range("a666666").End(xlUp).Row).CopySheets.Add After:=ActiveSheetActiveSheet.Name = "生成的矩阵表格"ActiveSheet.PasteRows("1:1").SelectSelection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove'二次Sheets(1).Copy After:=Sheets(Sheets.Count) '拷贝副本Range("$A$1:$H$" & Range("a666666").End(xlUp).Row).RemoveDuplicates Columns:=2, Header:=xlNo '去重seq_num = Range("a666666").End(xlUp).RowDim n1, n2 As Integer'将多行粘为多列Sheets(4).Selectn1 = Range("a666666").End(xlUp).RowFor n2 = 1 To n1Sheets(4).SelectRange("B" & n2).SelectSelection.CopySheets(3).SelectRange("C1").Cells(1, n2).SelectActiveSheet.PasteNext'计算出现的次数并写入对应单元格Dim rng1, rng2, rng3, rng4, all_num As Integerall_num = Sheets(1).Range("a666666").End(xlUp).RowFor rng1 = 1 To all_num '执行第一列判断For rng3 = 1 To gene_numIf Sheets(1).Range("a" & rng1) = Sheets(3).Range("a" & rng3 + 1) Then'Sheets(3).Range("c" & rng3 + 1) = rng3'For rng2 = 1 To all_num '执行第二列判断For rng4 = 1 To seq_numIf Sheets(1).Range("b" & rng1) = Sheets(3).Range("C1").Cells(1, rng4) ThenSheets(3).Range("C1").Cells(rng3 + 1, rng4) = Sheets(3).Range("C1").Cells(rng3 + 1, rng4) + 1End IfNext rng4'Next rng2End IfNext rng3Next rng1'对sheet更改顺序Sheets("生成的矩阵表格").SelectSheets("生成的矩阵表格").Move Before:=Sheets(2)Application.DisplayAlerts = FalseDim kk As IntegerFor kk = Sheets.Count To 1 Step -1If kk = 2 ThenExit ForElseSheets(kk).DeleteEnd IfNextApplication.DisplayAlerts = TrueRange("a1").Select'完成提示语MsgBox "已完成!"MsgBox "感谢使用,联系作者:643237173@"End SubSub 开始()On Error Resume Next''开始提示语Dim i As IntegerMsgBox "请确定文件中有且只有一个表格,否则其他表格会被自动删除; 本次可能会花费较多时间,请耐心等待 ^ _ ^"i = Application.InputBox("已读警告确认输入1,其他数字取消后续操作")If i = 1 Then'调用功能函数Call 生成矩阵表格ElseMsgBox "好的,已取消~"End IfEnd Sub

开始

将过程中的代码复制到回执表格中的代码框中若没有该选项,请参考以下步骤打开开发者选项,此过程基于excel,版本不同会有所差异复制代码并运行

结果

代码运行后会弹出一系列的对话框,请按照提示运行

运行后需要等待一小段时间,此时excel可能会提示未响应,其实在运行,可以忽略该提示运行完会提示已完成,下面是结果展示

小结

以上就是利用上传Plantcare回执的表格,进行结果统计和数据整理,后续就可以利用该表格的特定基序数量和某一个基因的数据进行可视化,但是本表格并没有涉及到基序在启动子序列上位置的展现,这个可以通过回执附带的网页文件查看;更多技术交流请发邮件643237173@或者yyyz5678@,也可以向我获取带有源码的excel文件,只需要将自身的文件内容复制并替换就可以直接运行。觉得有用,请在下方留言支持下。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。