ALLHiC续: 如何构建Allele.ctg.table

Allele.ctg.table是ALLHiC用于过滤多倍体基因组中因等位序列相似引起的HiC噪音的必要输入。

构建的方法有很多种,这里列举两个方法。

方法一: 基于BLAST

基于BLAST的方法需要你提供一个染色体级别组装的近缘物种。需要提供4个文件,近缘物种的CDS和GFF文件,多倍体物种的CDS和GFF文件。最重要的是,你得保证CDS序列中的编号和GFF文件的基因编号一致,这也是后续处理至关重要的一步。

问题一: 我们如何快速获取待组装物种的CDS和GFF文件?最快速的方法就是利用转录组序列基于STAR StringTie的组合进行拼接,并利用gffread从中提取出cdna序列。

假设你的多倍体文件名为contig.fa, 转录组数据为read_R1.fq.gz, read_R2.fq.gz

mkdir -p STAR
ref=contig.fa
THREADS=40
fq1=read_R1.fq.gz
fq2=read_R2.fq.gz
prefix=sample
# 建立索引
STAR \--runThreadN $THREADS \--runMode genomeGenerate \--genomeDir STAR \--genomeFastaFiles $ref
#比对
STAR \--genomeDir STAR \--runThreadN $THREADS \--readFilesIn $fq1 $fq2 \--readFilesCommand zcat \--outFileNamePrefix $prefix\--outSAMtype BAM SortedByCoordinate \--outBAMsortingThreadN $THREADS \--outSAMstrandField intronMotif \--outFilterIntronMotifs RemoveNoncanonical
# 拼接转录本
stringtie ${prefix}Aligned.sortedByCoord.out.bam -p $THREADS -o qry.gtf
# GTF 转成 GFF3
gffread qry.gtf -o qry.gff
# 提取cdna
gffread qry.gff -g $ref -w qry.fa

问题二: 后续的处理脚本要求输入序列的编号和GFF的基因编号相同,并且编号在GFF文件中的格式为NAME=xxx

对于我们上一步处理的qry.gff和qry.fa,我们只需要简单粗暴地替换qry.gff里的信息即可。

sed -e 's/transcript/gene/' -e 's/ID/Name/' qry.gff > qry_gene.gff

对于近缘物种的cds序列和gff文件,考虑到后续的脚本只认gene所在的行,而cds里面存放的是转录本序列,我们可以提取mRNA所在行,然后将其改名成gene。假设参考序列是ref.fa, 参考的GFF文件名是ref.gff

ref=ref.gff
grep '[[:blank:]]mRNA[[:blank:]]' $ref | sed -e 's/mRNA/gene/' -e 's/ID/Name/' > ref_gene.gff

综上你得到了如下四个文件, ref.fa, refgene.gff, qry.fa, qrygene.gff

下面的操作,参考自官方教程完成,

第一步: 建立BLAST索引

makeblastdb -in ref.fa -dbtype nucl

第二步: 将我们物种序列比对到近缘物种

blastn -query qry.fa -db ref.fa -out qry_vs_ref.blast.out -evalue 0.001 -outfmt 6 -num_threads 4 -num_alignments 1

第三步: 过滤低质量的HIT,此处标准是相似度低于60%, 覆盖度低于80%

blastn_parse.pl -i qry_vs_ref.blast.out -o Eblast.out -q qry.fa -b 1 -c 0.6 -d 0.8 

第四步: 基于BLAST结果鉴定等位序列

classify.pl -i Eblast.out -p 4 -r ref_gene.gff -g qry_gene.gff
# -p 是等位基因的数目

最终输出的Allele.ctg.table就是后续ALLHiC的prune输入。

方法二: 基于GMAP

第二个方法比较简单,只需要提供多倍体基因组的基因组序列和近缘物种的cds序列即可

第一步: 运行GMAP获取GFF3文件

qry=target.genome  # 你的多倍体序列
ref_cds=reference.cds.fasta # 同源物种的cds
N=4 #你的基因组倍性, 4表示的是4倍体
gmap_build -D . -d DB $qry
gmap -D . -d DB -t 12 -f 2 -n $N  $ref_cds > gmap.gff3

第二步: 获取 allelic.ctg.table

perl gmap2AlleleTable.pl referenece.gff3

gmap2AlleleTable.pl脚本是ALLHiC的一部分。

参考资料

----

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

ALLHiC续: 如何构建Allele.ctg.table相关推荐

  1. 构建轻量级的Table View注意事项[UIKit]

    參考文章来自objcio站点 一.使用ChildViewController 将Table ViewController作为Child View Controller加入到其它View Control ...

  2. GMAP一款比对工具用于ALLHiC构建等位基因表

    在ALLHiC使用过程中需要构建Allele.ctg.table,用于过滤多倍体基因组中因等位序列相似引起的HiC噪音的必要输入.官网提供了两种办法,一种是blastn,需要对草图基因组进行注释,这个 ...

  3. 使用ALLHiC基于HiC数据辅助基因组组装

    使用ALLHiC基于HiC数据辅助基因组组装 基因组组装大致可以分为三步(1)根据序列之间的重叠情况构建出contig,(2)基于二代的mate pair文库或光学图谱将contig搭建成scaffo ...

  4. ALLHIC使用 | HiC辅助基因组组装(三)

    安装 git clone https://github.com/tangerzhang/ALLHiC cd ALLHiC chmod +x bin/* chmod +x scripts/* expor ...

  5. 1.18.2.Table APISQL(概念与通用API、两种计划器(Planner)的主要区别、创建 TableEnvironment、临时表、永久表、创建表、虚拟表、Connector 等)

    1.18.2.概念与通用API 1.18.2.1.两种计划器(Planner)的主要区别: 1.18.2.2.Table API和SQL程序的结构 1.18.2.3.创建 TableEnvironme ...

  6. 1.18.Table API SQL(概念、依赖图、Table程序依赖、扩展依赖)

    1.18.Table API & SQL 1.18.1.概念 1.18.1.1.依赖图 1.18.1.2.Table程序依赖 1.18.1.3.扩展依赖 1.18.Table API & ...

  7. 创建二级索引_技术分享 | InnoDB 排序索引的构建

    原创: 管长龙 译 爱可生开源社区 3天前 作者:Satya Bodapati 从 MySQL 5.7 开始,开发人员改变了 InnoDB 构建二级索引的方式,采用自下而上的方法,而不是早期版本中自上 ...

  8. SAP ABAP 动态内表的条件查询(SORT / READ TABLE / LOOP)

    SAP ABAP 动态内表的条件查询(SORT / READ TABLE / LOOP) 简介: 动态内表是动态报表的核心,动态内表的条件操作能有效解决性能问题.这篇文章用于普及动态内表在 SORT ...

  9. Power Query M语言表函数Table分类汇总,快速掌握

    一.通过帮助找出所有的Table函数 通过在查询编辑输入"=#shared"调出帮助,然后提取列,筛选出所有的Table函数 二.Table函数分类 Table类函数:总共102个 ...

最新文章

  1. snagit屏幕截图转pdf
  2. Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/redis-server.
  3. Zookeeper知识汇总
  4. CFLAGS,CPPFLAGS,CXXFLAGS in Makefile
  5. php $y=$x^$y;,PHP语法一
  6. 将字符串编码成 GBK
  7. mysql的条件求和函数_mysql 带条件取count记录数,SUM()函数按条件求和
  8. CSS如何水平垂直居中?
  9. JQuery合并table单元格--有限制(table格式需要注意)
  10. 数字化转型:中国企业数字化转型趋势
  11. 11. 挑战500强管理职位前的苦逼生活
  12. idea activation code记录
  13. 不积跬步 无以至千里 不积小流 无以成江海
  14. 北京跑步入夏--妞妞跑步长大
  15. paip 破解网站手机验证码
  16. win7计算机还原点建立,win7系统每次启动自动创建还原点的处理技巧
  17. 下一代图像压缩格式科普---HEIF 与AVIF格式
  18. 小老弟3.6研发面筋大汇总
  19. 三天搞定射频识别技术(一)1.2
  20. 微信php签名验证_微信小程序API 用户数据的签名验证和加解密

热门文章

  1. 计算机桌面方向更改,win10电脑屏幕方向颠倒了怎么办?更改win10屏幕显示方向方法...
  2. html时钟自动刷新抖音,JS+CSS3实现时钟效果(抖音)
  3. VLOOKUP函数还记得吗?
  4. asp.net 改变html,asp.net-mvc-3 – 选择更改事件 – Html.DropDownListFor
  5. JS实现的4种数字千位符格式化方法分享
  6. html从入门到精通前锋,神武3从入门到精通,少主全方面养成攻略
  7. AppServ安装教程-----php文件使用
  8. 五子棋AI(学习笔记)
  9. 开源共同体--程序员的乌托邦
  10. 程序员之路 学习经验总结 副本2