使用方法参考: 基于全基因组的基因家族分析(3):SlNRAMP家族基因CDS和Genomic DNA序列获取

Gene序列要获得的ID号不仅仅是seqid,而且还需要在染色体上的位置信息——起始和终止位置,以及染色体编号。这里就需要用到其他两个数据文件了,就是基因组序列(dna)和基因组注释文件(gff3)。思路——首先根据已经获得的ID号从gff文件中获取染色体位置信息,然后再用bedtools工具根据得到的染色体位置信息来获取基因的序列,最终得到基因集。

代码如下。

#!/bin/bashc=$(ls *.gff3)for j in ${c}
dogff3=`basename ${j} .gff3`echo "We have gff3 files ${gff3}"for i in ${gff3}doecho "    extract chromosome position of ${i}.seqid from ${i}.gff3."grep -f ${i}.seqid ${i}.gff3 | cut -f 1,4,5,9 | egrep 'ID=(CDS:|mRNA)' | sed 's/;Parent.*//g' | sed 's/ID.*://g' > ${i}.seqbedecho "    use getfasta from bedtools to extract ${i}.seqid gene sequence and output ${i}.gene." bedtools getfasta -fi ${i}.dna -bed ${i}.seqbed -name > ${i}.genetxtecho "    ${i}.dna file processing are completed and generate ${i}.seqbed and ${i}.genetxt."donedone
c=$(ls *.gff3)
for j in ${c}
dogff3=`basename ${j} .gff3`echo "We have gff3 files ${gff3}"

ls出当前文件夹中所有.ggf3文件,用for in循环取.gff3前面的文件名,然后赋值到变量${gff3}。Shell获取某个文件夹下的所有文件名(含文件夹)

grep -f ${i}.seqid ${i}.gff3

利用grep -f 将seqid文件中的geneid号逐行匹配。

| cut -f 1,4,5,9

将匹配到的内容用cut -f 进行列截取,包括染色体名,起始位置,终止位置以及基因注释说明。

| egrep 'ID=(CDS:|mRNA)'

因为我们需要的是gene序列也就是编码mRNA的那部分而不是exon或者intron,但是在ID部分都属于该基因。因此还要将切割完的序列匹配ID=(CDS:|mRNA)的行,这才是我们真正需要的序列,这个匹配的是ID=CDS:或ID=mRNA,根据需要修改。

| sed 's/;Parent.*//g'

最后用sed将多余的信息替换成空白,将文本最简化(染色体位置信息图所示)。原文[1]中是Name,但我注释ID后面信息是Parent,根据情况替代。

| sed 's/ID.*://g'

将ID到序列号之间的信息替换成空白,最后剩下的只有基因位置和基因名。

bedtools getfasta -fi ${i}.dna -bed ${i}.seqbed -name > ${i}.genetxt

使用bedtools工具的getfasta选项,用来提取序列,-fi是用来指定基因组fasta格式文件,-bed用来指定染色体位置信息文件,-name用来确定基因的名字,最后重重定向。可以看到>后的名称是基因ID,染色体及起始和终止位置。

基因家族进化分析之DNA序列批量获取相关推荐

  1. 基因家族进化分析之CDS批量获取

    方法来源 https://www.jianshu.com/p/9f96fc7438aa 文件名提取方法参考以下. https://my.oschina.net/u/2391658/blog/19277 ...

  2. numpy序列预处理dna序列_【陪你学生信】七、在数据库中检索相似的序列

    一.相似度Similarity 序列的分析离不开相似度这个指标,相似度比较高的序列往往具有相似的结构.执行相似的功能.所以用未知序列blast得到的结果可以对未知序列进行推测. 当两个序列非常相似时, ...

  3. 【POJ No. 2778】DNA 序列 DNA Sequence

    [POJ No. 2778]DNA 序列 DNA Sequence 北大OJ 题目地址 [题意] DNA序列是一个只包含A.C.T和G的序列.分析DNA序列片段非常有用,若动物的DNA序列包含片段AT ...

  4. 一木禾网盘下载分析及批量获取下载地址的实现(下)

    分析过后,我们接着来做一下代码实现 三.获取流程实现 近期正巧看到了木鱼在自己博客里发布的一个HTTP客户端库,困扰于原生HttpWebRequest的我立马就下来用了用,效果果然不错,所以本项目的H ...

  5. 利用python处理dna序列_Python + 生物信息 02 :Biopython 分析序列

    Biopython 做序列分析 一.安装Biopython:如果环境已经有Biopython可以跳过这一步.这里有两种安装方案,一种通过pip快速安装,另一种通过安装包安装 1. 用pip安装Biop ...

  6. [系统安全] 四十九.恶意软件分析 (5)Cape沙箱分析结果Report报告的API序列批量提取详解

    终于忙完初稿,开心地写一篇博客. 您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备 ...

  7. 用python做频数分析_Python统计如何进行DNA序列整理

    Python统计在我们的使用中有很多的障碍,其中在DNA序列上的相关问题就需要我们不断的去学习.下面我们就向大家介绍有关的问题,希望在以后Python统计的使用过程中有所收获. 给定一堆DNA序列,即 ...

  8. C#,生信软件实践(01)——DNA序列数据库FASTA文件合并工具的源代码

    1 生物信息学简介 生物信息学(BioInformatics)是研究生物信息的采集.处理.存储.传播,分析和解释等各方面的学科,也是随着生命科学和计算机科学的迅猛发展,生命科学和计算机科学相结合形成的 ...

  9. Nat. Methods | scBasset:基于DNA序列的单细胞ATAC-seq卷积神经网络建模

    本文介绍由美国生物科技公司Calico Life Sciences的Han Yuan 和 David R. Kelley共同通讯发表在 Nature methods 的研究成果:单细胞ATAC-seq ...

最新文章

  1. windows 2003 活动目录的更改域名后缀技巧
  2. 使用 EOLINKER 进行接口测试的最佳路径 (下)
  3. 汇编实验注意点(待补充和更新)
  4. 使用SecureCrt远程登录Linux安装配置教程
  5. 软考信息安全工程师备考笔记8:第八章应用系统安全工程备考要点
  6. Java基础学习总结(88)——线程创建与终止、互斥、通信、本地变量
  7. [笔试面试题] 10-C和C++区别相关
  8. 奔图打印机显示未连接_国货之“彩” |奔图CP2200DW彩色激光打印机首测
  9. NC开发笔记——二开知识点
  10. 折线统计html,canvas制作简单的HTML图表,折线或者矩形统计(原创)
  11. [摘录]谁说大象不能跳舞目录
  12. C#网络爬虫抓取小说
  13. 雷观(二十二):项目开发中,要少做无用功
  14. 2022/10/07
  15. 抖快推出流媒体音乐平台 会改变在线音乐市场格局吗?
  16. C语言程序设计实训第四章作业
  17. 开关电源雷击浪涌整改_开关电源雷击浪涌的产生与防护
  18. 吃豆子过桥问题(转)
  19. Linux vim设定Tab键缩进
  20. sh: gpustat: command not found

热门文章

  1. app模式会被第三方平台模式取代吗_手机 App 不能取代第三方浏览器的原因是什么?...
  2. Mac 自动代理切换
  3. mysql比较两张表中两个字段值_如何通过SQL找出2个表里值不同的列的方法
  4. 苹果税要崩溃了!又一国家做出判决:iOS必须开放第三方支付
  5. python中tensorflow_Python Tensor FLow简单使用方法实例详解
  6. 无线网卡dns服务器地址怎么查询,技术编辑教你win10系统查看无线网卡DNS、IP地址的设置教程...
  7. java创建二维码并赋予url链接
  8. Moir´e Photo Restoration Using Multiresolution Convolutional Neural Networks 摩尔纹领域论文阅读复现
  9. 谷歌(Google): reCaptcha(2.0版本)做网站验证码
  10. 生命苍白无力时候遇到你,即使再难也要亲手绘出五彩生活――读《平凡的世界》有感