美文网首页
基因家族扩张收缩分析-提取基因对应的最长转录本

基因家族扩张收缩分析-提取基因对应的最长转录本

作者: 扇子和杯子 | 来源:发表于2023-04-25 23:15 被阅读0次

写在前面:根据“白烟囱假说”,一切的一切都从深海热液开始。从最初的单细胞生物到如今繁杂的世界,为了适应不断变化的外界环境,生物体需要不断且缓慢地改变自己。46亿年的演化,基因的消亡、出现不断发生,给生物体带来了不一样的机遇······


1. Summary

基因家族扩张收缩分析可细分为六部分:

  • 获取每个基因对应的最长编码区转录本
  • OrthoFinder聚类基因家族
  • 系统发育树推断
  • 物种分歧时间推断
  • 基因家族扩张收缩分析
  • 功能富集

2. 正文

目前,似乎大家都是自己写程序提取基因的最长转录本,写起来还是有些费劲的,这里是我的方案

    1. 从注释文件拿到最长转录本信息
    1. 从基因组中提取序列

2.1 提取最长转录本ID

  • 最后的信息输出在注释文件所在目录的longest_protein_list.txt
  • 如果是NCBI里的数据,identifier_type选CDSNAME更便于后续操作
# 1. packages and external scripts ---------------------------------------- TODO:
suppressWarnings(suppressMessages(library(GenomicFeatures)))

# 2. functions ------------------------------------------------------------ TODO:


# 3. input ---------------------------------------------------------------- TODO:
Args <- commandArgs()
# anno_filename:注释文件绝对路径,这里用的是gff文件
anno_filename <- Args[6] 
# identifier_type:最后要提取的id水平,比如GENEID,TXNAME,CDSNAME
identifier_type <- Args[7] 

# 4. variable setting of test module--------------------------------------- TODO:

# 5. process -------------------------------------------------------------- TODO:
anno <- makeTxDbFromGFF(anno_filename, format = "auto")
tx_lens <- transcriptLengths(anno, with.cds_len = TRUE)
tx_lens <- tx_lens[tx_lens$cds_len != 0, ] # cds长度为0的情况:假基因、编码RNA的基因
data_split_by_gene <- split(tx_lens, f = tx_lens$gene_id, drop = TRUE)
longest_isoform <- lapply(data_split_by_gene, function(x) {
return(x[which.max(x$cds_len), c("tx_id", "tx_name", "gene_id")])
})
longest_isoform <- do.call(rbind, longest_isoform)
mapdata <- select(anno, keys = as.character(longest_isoform$tx_id), columns = identifier_type, keytype = "TXID")
protein_name <- mapdata[, 2]
protein_name <- protein_name[!is.na(protein_name)]
write.table(protein_name, paste0(dirname(anno_filename), "\longest_protein_list.txt"), quote = F, row.names = F, col.names = F)

2.1 提取序列

如果是NCBI的数据,可直接从FTP地址里找到所有蛋白质的序列文件,一般标注为*_protein.faa,我们这里记为all_proteins_seq变量

seqkit grep -f longest_protein_list.txt $all_proteins_seq >longest_protein.fa

Bingo,这部分就到这里啦~

相关文章

网友评论

      本文标题:基因家族扩张收缩分析-提取基因对应的最长转录本

      本文链接:https://www.haomeiwen.com/subject/flqujdtx.html