diff --git a/2021/09/11/bioinfo_synteny_WGDI/index.html b/2021/09/11/bioinfo_synteny_WGDI/index.html index e442a6273c..199badbffb 100644 --- a/2021/09/11/bioinfo_synteny_WGDI/index.html +++ b/2021/09/11/bioinfo_synteny_WGDI/index.html @@ -32,8 +32,8 @@ - + @@ -666,8 +666,8 @@
参考blog.ParaAT:https://yanzhongsino.github.io/2021/10/29/bioinfo_align_pep2cds/
+KaKs_Calculator 2.0工具包包含了17种计算Ka和Ks的方法,包含Gamma系列,并可识别基于蛋白编码序列的滑动窗口,基于C++和Java,在Windows和Linux平台都可使用。
+用还会用到两个脚本:
+wget ftp://download.big.ac.cn/bigd/tools/ParaAT2.0.tar.gz |
wget https://altushost-swe.dl.sourceforge.net/project/kakscalculator2/KaKs_Calculator2.0.tar.gz |
./KaKs_Calculator2.0/bin/Linux/
和./KaKs_Calculator2.0/src/
添加到环境变量即可使用KaKs_Calculator
和AXTConvertor
命令。ParaAT.pl需要三个输入文件,参考blog.ParaAT:https://yanzhongsino.github.io/2021/10/29/bioinfo_align_pep2cds/
+cat sample.collinearity |grep "species_prefix"|cut -f2,3 >sample.id
用MCScanX的结果文件提取blocks的同源gene对,获得sample.id文件。ParaAT比对sample.id指定的基因对的氨基酸序列,并转化成比对的CDS序列,并可指定输出为axt格式。
+echo "24" >proc #指定ParaAT.pl使用线程 |
Error. The size of two sequences in 'ctg00816-ctg08844' is not equal。
ParaAT.pl的-k参数只能指定KaKs_Calculator的MA模型计算kaks值,如果需要指定其他的模型,则可以手动运行计算。
+KaKs_Calculator可计算比对好的CDS序列的Ka和Ks。
+cd sample.paraat # 进入ParaAT.pl生成的文件夹 |
cd sample.paraat # 进入ParaAT.pl生成的文件夹 |
cd .. #返回上一级目录 |
(全文约4000字)
-clusterProfiler相关的博客共有三篇,共同食用,效果更好 :wink: :
-clusterProfiler的可视化一般只支持clusterProfiler富集分析结果的可视化,通过认识clusterProfiler可视化接受的输入数据的格式,可以修改其他富集分析结果文件的格式,来用clusterProfiler进行可视化绘图。
-str(ego)
或class(ego)
可以看到ego的格式是叫enrichResult的R的数据类型。library(clusterProfiler) |
如果手头没有ego数据,可以用clusterProfiler的样例数据快速得到一个edo,与ego格式一样。
-library(clusterProfiler) |
enrichResult(R的class类型)格式
在DOSE包中查到,enrichResult具体格式如下:
setClass("enrichResult", |
(全文约6600字)
+富集分析
富集分析,本质上是对数据的分布检验,如果分布集中在某个区域,则认为富集。
常用的分布检验方法有卡方检验、Fisher精确检验以及KS检验等方法。
result变量格式
enrichResult中最重要的是result,是储存富集结果的dataframe。
result变量与clusterProfiler富集分析中保存ego的结果文件是一致的。
ego@result[c(13,14),] #查看ego的result变量的13,14行 |
一般而言result有9列。这里因为用enrichGO富集时ont参数选择ALL,结果就会在第一列前多一列ONTOLOGY。
-根据不同情况为clusterProfiler的可视化准备输入数据。
-接着clusterProfiler富集分析做可视化
如果是接着clusterProfiler的enrichGO(),gseGO(),enricher(),gseGO()等函数的结果ego
,不要关闭R环境,在R里直接进行用于下一步可视化即可。
保存的clusterProfiler富集分析结果做可视化
-ego
保存成的文件,已关闭R环境。write.table(as.data.frame(ego),"go_enrich.csv",sep="\t",row.names =F,quote=F)
保存ego
在go_enrich.csv
文件。data<-read.table("go_enrich.csv",sep="\t",header=T,quote="") |
下面的可视化大多基于在R中已获得富集分析的结果ego。
-enrichplot包有几种可视化方法来解释富集结果,支持clusterProfiler获得的ORA和GSEA富集结果。
-安装和载入enrichplot包
-BiocManager::install("enrichplot") |
barplot(ego, showCategory=20, title="EnrichmentGO_MF")
使用mutate导出的其他变量也可以用作条形高度或颜色。
-mutate(ego, qscore = -log(p.adjust, base=10)) %>% |
Figure 1. Bar plot of enriched terms
from clusterProfiler book
dotplot(edo, showCategory=30) + ggtitle("dotplot for ORA")
dotplot(edo2, showCategory=30) + ggtitle("dotplot for GSEA")
散点图,横坐标为GeneRatio,纵坐标为富集到的GO Terms的描述信息,showCategory指定展示的GO Terms的个数,默认展示显著富集的top10个,即p.adjust最小的10个。
- - -Figure 2. Dot plot of enriched terms
from clusterProfiler book
cnetplot(ego, categorySize = "pvalue", foldChange = gene_list
## convert gene ID to Symbol |
Figure 3. Network plot of enriched terms
from clusterProfiler book
p1 <- heatplot(edox, showCategory=5) |
Figure 4. Heatmap plot of enriched terms
from clusterProfiler book
默认聚合方法treeplot()是ward.D,用户可以通过hclust_method参数指定其他方法(例如,’average’、’complete’、’median’、’centroid’等。
-treeplot()函数会将树切割成几个子树(由nCluster参数指定(默认为 5))并使用高频词标记子树。
-edox2 <- pairwise_termsim(edox) |
Figure 5. Tree plot of enriched terms
from clusterProfiler book
ego2 <- pairwise_termsim(ego) |
Figure 6. Plot for results obtained from hypergeometric test and gene set enrichment analysis. default (A), cex_category=1.5 (B), layout=”kk” (C) and cex_category=1.5,layout=”kk” (D).
from clusterProfiler book
upsetplot(ego)
Figure 7. Upsetplot for over-representation analysis.
from clusterProfiler book
ridgeplot(ego)
Figure 8. Ridgeplot for gene set enrichment analysis.
from clusterProfiler book
plotGOgraph(ego, firstSigNodes=10)
当enrichGO富集分析时ont参数选了ALL时,结果文件会在第一列前增加一列ONTOLOGY为子类,这时直接用于plotGOgraph画图会报错。
试了下,下面两种方案还是会报错Error in if (!ont %in% c(“BP”, “MF”, “CC”)) { :argument is of length zero。。还是尽量在enrichGO分析时就用ont=”BP”吧。
ego2<-ego%>%filter(ONTOLOGY== "BP")
筛选BP子类,接着用ego3<-ego2%>%select(!ONTOLOGY)
或者ego3<-ego2[,-1]
删除第一列(即ONTOLOGY列),然后用plotGOgraph(ego3)
作图。Figure 9. DAG图
from clusterProfiler blog
goplot(ego, showCategory = 10)
Figure 10. goplot的DAG图
from clusterProfiler book
词云的方式显示结果
-install.packages("wordcloud") |
Figure 11. wordcloud词云图
from NGS Analysis ebook
如果是在Rstudio中,可以直接看到绘图结果,导出需要的文件格式即可。
-pdf("ego.pdf") #如果保存png,就改成png("ego.png") |
(全文约6600字)
-富集分析
富集分析,本质上是对数据的分布检验,如果分布集中在某个区域,则认为富集。
常用的分布检验方法有卡方检验、Fisher精确检验以及KS检验等方法。
生物信息学领域的富集分析
在 背景基因集(N) 下获得 一组特定基因集(S) ,S可能是基因列表,表达图谱,基因芯片等形式。在预先构建好基因注释数据库(例如GO,KEGG等)已对背景基因集(N)根据生物功能或过程进行分类的前提下,通过统计学算法找出有那些显著区别于背景基因集(N)的类别(生物组成/功能/过程),或者找出这组特定基因集间在生物组成/功能/过程的共性,经过聚类后去除冗余得到基因富集结果的过程,即为富集分析。
生物信息学领域的富集分析
在 背景基因集(N) 下获得 一组特定基因集(S) ,S可能是基因列表,表达图谱,基因芯片等形式。在预先构建好基因注释数据库(例如GO,KEGG等)已对背景基因集(N)根据生物功能或过程进行分类的前提下,通过统计学算法找出有那些显著区别于背景基因集(N)的类别(生物组成/功能/过程),或者找出这组特定基因集间在生物组成/功能/过程的共性,经过聚类后去除冗余得到基因富集结果的过程,即为富集分析。
可以这样简单理解富集分析在做什么。全国人口的户籍作为背景数据,我们通过富集分析可以知道相对于全国背景,客家人是不是明显在广东聚集。比如如果广东的客家人数/全国客家人数这个比值远超过广东人数/全国人数的比值,那么我们可以说客家人在广东是富集的。
@@ -2427,15 +2232,212 @@ BiocManager的版本与R版本一一对应,安装时如果版本不对会有(全文约4000字)
+clusterProfiler相关的博客共有三篇,共同食用,效果更好 :wink: :
+clusterProfiler的可视化一般只支持clusterProfiler富集分析结果的可视化,通过认识clusterProfiler可视化接受的输入数据的格式,可以修改其他富集分析结果文件的格式,来用clusterProfiler进行可视化绘图。
+str(ego)
或class(ego)
可以看到ego的格式是叫enrichResult的R的数据类型。library(clusterProfiler) |
如果手头没有ego数据,可以用clusterProfiler的样例数据快速得到一个edo,与ego格式一样。
+library(clusterProfiler) |
enrichResult(R的class类型)格式
在DOSE包中查到,enrichResult具体格式如下:
setClass("enrichResult", |
result变量格式
enrichResult中最重要的是result,是储存富集结果的dataframe。
result变量与clusterProfiler富集分析中保存ego的结果文件是一致的。
ego@result[c(13,14),] #查看ego的result变量的13,14行 |
一般而言result有9列。这里因为用enrichGO富集时ont参数选择ALL,结果就会在第一列前多一列ONTOLOGY。
+根据不同情况为clusterProfiler的可视化准备输入数据。
+接着clusterProfiler富集分析做可视化
如果是接着clusterProfiler的enrichGO(),gseGO(),enricher(),gseGO()等函数的结果ego
,不要关闭R环境,在R里直接进行用于下一步可视化即可。
保存的clusterProfiler富集分析结果做可视化
+ego
保存成的文件,已关闭R环境。write.table(as.data.frame(ego),"go_enrich.csv",sep="\t",row.names =F,quote=F)
保存ego
在go_enrich.csv
文件。data<-read.table("go_enrich.csv",sep="\t",header=T,quote="") |
下面的可视化大多基于在R中已获得富集分析的结果ego。
+enrichplot包有几种可视化方法来解释富集结果,支持clusterProfiler获得的ORA和GSEA富集结果。
+安装和载入enrichplot包
+BiocManager::install("enrichplot") |
barplot(ego, showCategory=20, title="EnrichmentGO_MF")
使用mutate导出的其他变量也可以用作条形高度或颜色。
+mutate(ego, qscore = -log(p.adjust, base=10)) %>% |
Figure 1. Bar plot of enriched terms
from clusterProfiler book
dotplot(edo, showCategory=30) + ggtitle("dotplot for ORA")
dotplot(edo2, showCategory=30) + ggtitle("dotplot for GSEA")
散点图,横坐标为GeneRatio,纵坐标为富集到的GO Terms的描述信息,showCategory指定展示的GO Terms的个数,默认展示显著富集的top10个,即p.adjust最小的10个。
+ + +Figure 2. Dot plot of enriched terms
from clusterProfiler book
cnetplot(ego, categorySize = "pvalue", foldChange = gene_list
## convert gene ID to Symbol |
Figure 3. Network plot of enriched terms
from clusterProfiler book
p1 <- heatplot(edox, showCategory=5) |
Figure 4. Heatmap plot of enriched terms
from clusterProfiler book
默认聚合方法treeplot()是ward.D,用户可以通过hclust_method参数指定其他方法(例如,’average’、’complete’、’median’、’centroid’等。
+treeplot()函数会将树切割成几个子树(由nCluster参数指定(默认为 5))并使用高频词标记子树。
+edox2 <- pairwise_termsim(edox) |
Figure 5. Tree plot of enriched terms
from clusterProfiler book
ego2 <- pairwise_termsim(ego) |
Figure 6. Plot for results obtained from hypergeometric test and gene set enrichment analysis. default (A), cex_category=1.5 (B), layout=”kk” (C) and cex_category=1.5,layout=”kk” (D).
from clusterProfiler book
upsetplot(ego)
Figure 7. Upsetplot for over-representation analysis.
from clusterProfiler book
ridgeplot(ego)
Figure 8. Ridgeplot for gene set enrichment analysis.
from clusterProfiler book
plotGOgraph(ego, firstSigNodes=10)
当enrichGO富集分析时ont参数选了ALL时,结果文件会在第一列前增加一列ONTOLOGY为子类,这时直接用于plotGOgraph画图会报错。
试了下,下面两种方案还是会报错Error in if (!ont %in% c(“BP”, “MF”, “CC”)) { :argument is of length zero。。还是尽量在enrichGO分析时就用ont=”BP”吧。
ego2<-ego%>%filter(ONTOLOGY== "BP")
筛选BP子类,接着用ego3<-ego2%>%select(!ONTOLOGY)
或者ego3<-ego2[,-1]
删除第一列(即ONTOLOGY列),然后用plotGOgraph(ego3)
作图。Figure 9. DAG图
from clusterProfiler blog
goplot(ego, showCategory = 10)
Figure 10. goplot的DAG图
from clusterProfiler book
词云的方式显示结果
+install.packages("wordcloud") |
Figure 11. wordcloud词云图
from NGS Analysis ebook
如果是在Rstudio中,可以直接看到绘图结果,导出需要的文件格式即可。
+pdf("ego.pdf") #如果保存png,就改成png("ego.png") |
git下载git clone https://github.com/IMEDEA/mitogenomics
脚本
+pip install biopython argparse
。python 3 版本,用于转化基因序列为比对到线粒体基因组序列的格式。
+命令mitos2fasta.py -m mito.fa -g genes.fa -c Y > assembly.fa
输入输出
+python 3 版本,用于转化比对到线粒体基因组序列的基因序列(即mitos2fasta.py的输出)为tbl格式。
+aln2tbl-legacy.py是aln2tbl.py的python2版本,功能一样。
+命令aln2tbl.py -f assembly.fa -g genes.txt -c 1 > sample.tbl
输入输出
+++sample.tbl:输出到tbl格式文件。
+
git下载git clone https://github.com/IMEDEA/mitogenomics
脚本
-pip install biopython argparse
。python 3 版本,用于转化基因序列为比对到线粒体基因组序列的格式。
-命令mitos2fasta.py -m mito.fa -g genes.fa -c Y > assembly.fa
输入输出
-python 3 版本,用于转化比对到线粒体基因组序列的基因序列(即mitos2fasta.py的输出)为tbl格式。
-aln2tbl-legacy.py是aln2tbl.py的python2版本,功能一样。
-命令aln2tbl.py -f assembly.fa -g genes.txt -c 1 > sample.tbl
输入输出
---sample.tbl:输出到tbl格式文件。
-
list.files() |
R包castor是一个可以对包含超百万类群(tips)的系统发育树进行操作的程序,功能包括修剪、重新定根、计算最近共同祖先、计算tips与树根的距离、计算成对距离等等。
-系统发育信号和平均性状深度(性状保守性)的计算,离散性状的祖先状态重建和隐藏性状预测,性状进化的模拟和拟合模型,拟合和模拟多样化模型,以Newick格式树的标定时间,比较树,读取和写入树。
-安装R包castor:install.packages("castor")
R包castor的get_subtree_with_tips函数用于根据子集类群列表从一棵大树中提取子树。
-get_subtree_with_tips(tree,only_tips=NULL,omit_tips=NULL,collapse_monofurcations = TRUE,force_keep_root = FALSE))
参数说明
-library(treeio) |
由于get_subtree_with_tips函数只接受单棵树的phylo数据类群作为输入,如果需要从multiphylo的多棵树中统一提取子集则需要借助get_subtrees.R脚本。
-library(treeio) |
for ( i in 1:2700) { |
提取子树生成的species_subtree.tre文件中的枝长有时会有:NaN
符号,用子树跑PhyloNetworks的时候会报错LoadError: Expected right parenthesis after left parenthesis 6 but readN
是因为识别不了NaN,需要把子树中的这个符号:NaN
删除。
建议用sed -i -E "s/:[0-9.Na]+//g" species_subtree.tre
命令把枝长信息都删除。
R包castor是一个可以对包含超百万类群(tips)的系统发育树进行操作的程序,功能包括修剪、重新定根、计算最近共同祖先、计算tips与树根的距离、计算成对距离等等。
+系统发育信号和平均性状深度(性状保守性)的计算,离散性状的祖先状态重建和隐藏性状预测,性状进化的模拟和拟合模型,拟合和模拟多样化模型,以Newick格式树的标定时间,比较树,读取和写入树。
+安装R包castor:install.packages("castor")
R包castor的get_subtree_with_tips函数用于根据子集类群列表从一棵大树中提取子树。
+get_subtree_with_tips(tree,only_tips=NULL,omit_tips=NULL,collapse_monofurcations = TRUE,force_keep_root = FALSE))
参数说明
+library(treeio) |
由于get_subtree_with_tips函数只接受单棵树的phylo数据类群作为输入,如果需要从multiphylo的多棵树中统一提取子集则需要借助get_subtrees.R脚本。
+library(treeio) |
for ( i in 1:2700) { |
提取子树生成的species_subtree.tre文件中的枝长有时会有:NaN
符号,用子树跑PhyloNetworks的时候会报错LoadError: Expected right parenthesis after left parenthesis 6 but readN
是因为识别不了NaN,需要把子树中的这个符号:NaN
删除。
建议用sed -i -E "s/:[0-9.Na]+//g" species_subtree.tre
命令把枝长信息都删除。
文件示例:
+Chr Start End fill species size color |
文件示例:
+Species_1 Start_1 End_1 Species_2 Start_2 End_2 fill |
install.packages('RIdeogram') #安装RIdeogram |
结果如下图:
+ + +Figure 1. Rldeogram绘制的同线性图
转录因子(transcription factor,TF)是一种蛋白质,它通过与特定DNA序列结合来控制遗传信息从DNA到信使RNA的转录速率。
+TFs 的功能是调节——打开和关闭——基因,以确保它们在所需的细胞中在正确的时间和正确的数量表达。TF 组以协调的方式发挥作用,在整个生命过程中指导细胞分裂、细胞生长和细胞死亡;胚胎发育过程中的细胞迁移和组织;并且间歇性地响应来自细胞外的信号,例如激素。人类基因组中有多达 1600 个 TF 。转录因子是蛋白质组和调节组的成员。
+植物转录因子数据库PlantTFDB是北京大学生物信息学中心研发的数据库和网站,目前包括165个植物物种的转录因子。
+目前数据库已更新到v5.0,在网站http://planttfdb.gao-lab.org/index.php可以查看、下载和使用植物转录因子数据库。
+网站的功能包括:
+转录因子分析可以应用的场景很多,这里介绍全基因组复制事件(WGD)后转录因子保留的分析。
+除了直接看WGD后保留的基因中包含了什么种类和多少数量的TF外,还可以通过利用转录因子数据库PlantTFDB来做WGD后保留的每种TF的保留模式的进一步分析。
+N5_filter_OG_dup.tsv
中提取第二列来获取:cat N5_filter_OG_dup.tsv|cut -f2 >dup_wgd.og
。cat Ath_TF_list.txt|sed '1d'|cut -f2 >ath_2.tem # 提取第二列geneID |
wc -l
前面加上cut -f5|sort|uniq|
来提取Orthogroups并去重。for i in $(cat ath.tf); |
cat ath_r.tem|sed "s/ /\t/g"|awk -F"\t" '{print $0,($1*$4)/($2*$3)}'|sed '1i\TF\tRs\tTs\tRa\tTa\tRvalue' >ath_r.txt
待检查是否有效热图绘制可以参考博客https://yanzhongsino.github.io/2022/11/06/R_plot_heatmap
+用R包pheatmap绘制热图,简单快捷。(notes: 画热图这里的代码还需根据数据格式调整)
+df<-read.table("tf_rvalue.txt",sep= " ", header = T,row.names = 1) |
文件示例:
-Chr Start End fill species size color |
文件示例:
-Species_1 Start_1 End_1 Species_2 Start_2 End_2 fill |
install.packages('RIdeogram') #安装RIdeogram |
结果如下图:
- - -Figure 1. Rldeogram绘制的同线性图
转录因子(transcription factor,TF)是一种蛋白质,它通过与特定DNA序列结合来控制遗传信息从DNA到信使RNA的转录速率。
-TFs 的功能是调节——打开和关闭——基因,以确保它们在所需的细胞中在正确的时间和正确的数量表达。TF 组以协调的方式发挥作用,在整个生命过程中指导细胞分裂、细胞生长和细胞死亡;胚胎发育过程中的细胞迁移和组织;并且间歇性地响应来自细胞外的信号,例如激素。人类基因组中有多达 1600 个 TF 。转录因子是蛋白质组和调节组的成员。
-植物转录因子数据库PlantTFDB是北京大学生物信息学中心研发的数据库和网站,目前包括165个植物物种的转录因子。
-目前数据库已更新到v5.0,在网站http://planttfdb.gao-lab.org/index.php可以查看、下载和使用植物转录因子数据库。
-网站的功能包括:
-转录因子分析可以应用的场景很多,这里介绍全基因组复制事件(WGD)后转录因子保留的分析。
-除了直接看WGD后保留的基因中包含了什么种类和多少数量的TF外,还可以通过利用转录因子数据库PlantTFDB来做WGD后保留的每种TF的保留模式的进一步分析。
-N5_filter_OG_dup.tsv
中提取第二列来获取:cat N5_filter_OG_dup.tsv|cut -f2 >dup_wgd.og
。cat Ath_TF_list.txt|sed '1d'|cut -f2 >ath_2.tem # 提取第二列geneID |
wc -l
前面加上cut -f5|sort|uniq|
来提取Orthogroups并去重。for i in $(cat ath.tf); |
cat ath_r.tem|sed "s/ /\t/g"|awk -F"\t" '{print $0,($1*$4)/($2*$3)}'|sed '1i\TF\tRs\tTs\tRa\tTa\tRvalue' >ath_r.txt
待检查是否有效热图绘制可以参考博客https://yanzhongsino.github.io/2022/11/06/R_plot_heatmap
-用R包pheatmap绘制热图,简单快捷。(notes: 画热图这里的代码还需根据数据格式调整)
-df<-read.table("tf_rvalue.txt",sep= " ", header = T,row.names = 1) |
在根据博客hexo建站,github.io发布,多终端同步配置了hexo网站(使用next主题)的基础上,记录了博客日常撰写、备份。
-categories和tags的记录
---- |
在做好blog搭建后,blog撰写和日常管理可参考这部分内容。
-养成习惯,每次开始撰写blog前都通过git bash进入工作区,进行git pull
命令把github端的hexo分支的更新(更新可能是其他终端上提交的)同步到本地,实现多终端的内容完全同步。
但如果本地有未提交的更新,则千万不要用git pull
,否则会覆盖本地更新;直接进入下一步;直到使用git add .
,git commit -m "submit"
,git push origin hexo
提交备份本地更新到github端的hexo分支后才可以使用git pull
(一般是在其他终端,把github的hexo分支更新拉到其他终端设备使用)。
在本地source/_posts下添加和修改md文档实现blog的日常撰写和修改。
-使用命令hexo new "newpostname"
可以在hexo/source/_posts下新建一个newpostname.md的文件,这个文件以scaffolds/post.md为模板,修改scaffolds/post.md文件可以修改hexo new命令生成的新blog文件样式。
只要blog有更改或者新增,或者配置文件有修改,即工作区(即本地的hexo目录或github.io目录)有文件修改,则建议对文件进行备份到GitHub端的hexo分支。
用三条命令git add .
,git commit -m "submit"
,git push origin hexo
备份工作区,包括md博客源文件和hexo部署到github端的hexo分支。三条命令执行前建议通过hexo clean
清除缓存和public目录,以免备份不需要的文件。
可根据自身需求决定是否发布blog到github.io网站,一般写的blog完整程度比较高时可以发布。使用hexo clean & hexo g -d
命令,根据source/_posts下的博客源文件生成public目录(网站html并同步到github端的master分支,即发布blog到github.io网站。
总结一下,在配置好写作环境后的任意一台终端的日常工作流应该是:
-git pull
同步远程github库的hexo更新到本地hexo new "newblog"
在source/_posts/下添加md格式的blog,或者修改已有的bloggit add .
,git commit -m "commit notes"
,git push
把修改备份到github端hexo clean & hexo g -d
生成网站并部署到github.io在根据博客hexo建站,github.io发布,多终端同步配置了hexo网站(使用next主题)的基础上,记录了博客日常撰写、备份。
+categories和tags的记录
+--- |
在做好blog搭建后,blog撰写和日常管理可参考这部分内容。
+养成习惯,每次开始撰写blog前都通过git bash进入工作区,进行git pull
命令把github端的hexo分支的更新(更新可能是其他终端上提交的)同步到本地,实现多终端的内容完全同步。
但如果本地有未提交的更新,则千万不要用git pull
,否则会覆盖本地更新;直接进入下一步;直到使用git add .
,git commit -m "submit"
,git push origin hexo
提交备份本地更新到github端的hexo分支后才可以使用git pull
(一般是在其他终端,把github的hexo分支更新拉到其他终端设备使用)。
在本地source/_posts下添加和修改md文档实现blog的日常撰写和修改。
+使用命令hexo new "newpostname"
可以在hexo/source/_posts下新建一个newpostname.md的文件,这个文件以scaffolds/post.md为模板,修改scaffolds/post.md文件可以修改hexo new命令生成的新blog文件样式。
只要blog有更改或者新增,或者配置文件有修改,即工作区(即本地的hexo目录或github.io目录)有文件修改,则建议对文件进行备份到GitHub端的hexo分支。
用三条命令git add .
,git commit -m "submit"
,git push origin hexo
备份工作区,包括md博客源文件和hexo部署到github端的hexo分支。三条命令执行前建议通过hexo clean
清除缓存和public目录,以免备份不需要的文件。
可根据自身需求决定是否发布blog到github.io网站,一般写的blog完整程度比较高时可以发布。使用hexo clean & hexo g -d
命令,根据source/_posts下的博客源文件生成public目录(网站html并同步到github端的master分支,即发布blog到github.io网站。
总结一下,在配置好写作环境后的任意一台终端的日常工作流应该是:
+git pull
同步远程github库的hexo更新到本地hexo new "newblog"
在source/_posts/下添加md格式的blog,或者修改已有的bloggit add .
,git commit -m "commit notes"
,git push
把修改备份到github端hexo clean & hexo g -d
生成网站并部署到github.io非编码RNA(Non-coding RNA, ncRNA) 包括rRNA,tRNA,snRNA,snoRNA 和microRNA 等不编码蛋白质的RNA,它们转录后直接在RNA 水平上就能行使各自的生物学功能,并不需要翻译成蛋白质。
-如果不是专门研究ncRNA,可以用Infernal注释所有ncRNA。如果需要更精细的注释,则可以选择特定软件注释特定RNA。
-这篇博客是介绍用Infernal程序与Rfam数据库一起用来注释与数据库中已知ncRNA同源的序列(这里用来注释完整的基因组)。注释结果包括tRNA,rRNA,snRNA,snoRNA和miRNA等。
-Infernal全称是”INFERence of RNA ALignment”,是一个用来检索DNA序列数据库中RNA序列和结构相似性的软件,通过协方差模型covariance models (CMs)来实现。
-conda install -c bioconda infernal
现在安装的是v1.1.4
安装后可使用的命令包括:
-Rfam是RNA family数据库,包括ncRNA序列和ncRNA的二级结构,每个family用多序列比对和协方差模型covariance model (CM)来表示。
-wget http://ftp.ebi.ac.uk/pub/databases/Rfam/CURRENT/Rfam.cm.gz
gunzip Rfam.cm.gz
wget http://ftp.ebi.ac.uk/pub/databases/Rfam/CURRENT/Rfam.clanin
cmpress Rfam.cm
nohup cmscan -Z 512 --cut_ga --rfam --nohmmonly --fmt 2 --tblout sample.tblout -o sample.result --clanin Rfam.clanin Rfam.cm genome.fa &
--cut_ga --rfam --nohmmonly --fmt 2
:推荐使用note:-o sample.result要放在Rfam.cm genome.fa前面,否则报错。
-此步骤耗时参考:250Mb基因组,默认线程,耗时2.5h。
-gff3文件可用于提交注释到数据库。
-用perl脚本infernal-tblout2gff.pl实现,脚本来自https://www.cnblogs.com/jessepeng/p/15392809.html。
-perl infernal-tblout2gff.pl --cmscan --fmt2 sample.tblout >sample.infernal.ncRNA.gff3
整理注释结果文件sample.tblout
提取必需的列,非重叠区域或重叠区域得分高的区域awk 'BEGIN{OFS="\t";}{if(FNR==1) print "target_name\taccession\tquery_name\tquery_start\tquery_end\tstrand\tscore\tEvalue"; if(FNR>2 && $20!="=" && $0!~/^#/) print $2,$3,$4,$10,$11,$12,$17,$18; }' sample.tblout >sample.tblout.xls
下载rfam注释
-dos2unix rfam.txt
转换文件格式为unix版本。cat rfam.txt | awk 'BEGIN {FS=OFS="\t"}{split($3,x,";");class=x[2];print $1,$2,$3,$4,class}' > rfam_anno.txt
rfam注释文件rfam_anno.txt包含了所有rfam的类型type和功能描述description信息。
-awk 'BEGIN{OFS=FS="\t"}ARGIND==1{a[$2]=$5;}ARGIND==2{type=a[$1]; if(type=="") type="Others"; count[type]+=1;}END{for(type in count) print type, count[type];}' rfam_anno.txt sample.tblout.xls >sample.ncRNA.statistic
sample.ncRNA.statistic输出示例:
-riboswitch 1 |
比如:snRNA包括snoRNA和splicing,snoRNA包括CD-box,HACA-box和scaRNA。下面用统计CD-box这个细分分类的ncRNA举例。
-grep "CD-box" rfam_anno.txt |cut -f1 >cdbox.tem
grep -f cdbox.tem mc.tblout.xls >cdbox.txt
非编码RNA(Non-coding RNA, ncRNA) 包括rRNA,tRNA,snRNA,snoRNA 和microRNA 等不编码蛋白质的RNA,它们转录后直接在RNA 水平上就能行使各自的生物学功能,并不需要翻译成蛋白质。
+如果不是专门研究ncRNA,可以用Infernal注释所有ncRNA。如果需要更精细的注释,则可以选择特定软件注释特定RNA。
+这篇博客是介绍用Infernal程序与Rfam数据库一起用来注释与数据库中已知ncRNA同源的序列(这里用来注释完整的基因组)。注释结果包括tRNA,rRNA,snRNA,snoRNA和miRNA等。
+Infernal全称是”INFERence of RNA ALignment”,是一个用来检索DNA序列数据库中RNA序列和结构相似性的软件,通过协方差模型covariance models (CMs)来实现。
+conda install -c bioconda infernal
现在安装的是v1.1.4
安装后可使用的命令包括:
+Rfam是RNA family数据库,包括ncRNA序列和ncRNA的二级结构,每个family用多序列比对和协方差模型covariance model (CM)来表示。
+wget http://ftp.ebi.ac.uk/pub/databases/Rfam/CURRENT/Rfam.cm.gz
gunzip Rfam.cm.gz
wget http://ftp.ebi.ac.uk/pub/databases/Rfam/CURRENT/Rfam.clanin
cmpress Rfam.cm
nohup cmscan -Z 512 --cut_ga --rfam --nohmmonly --fmt 2 --tblout sample.tblout -o sample.result --clanin Rfam.clanin Rfam.cm genome.fa &
--cut_ga --rfam --nohmmonly --fmt 2
:推荐使用note:-o sample.result要放在Rfam.cm genome.fa前面,否则报错。
+此步骤耗时参考:250Mb基因组,默认线程,耗时2.5h。
+gff3文件可用于提交注释到数据库。
+用perl脚本infernal-tblout2gff.pl实现,脚本来自https://www.cnblogs.com/jessepeng/p/15392809.html。
+perl infernal-tblout2gff.pl --cmscan --fmt2 sample.tblout >sample.infernal.ncRNA.gff3
整理注释结果文件sample.tblout
提取必需的列,非重叠区域或重叠区域得分高的区域awk 'BEGIN{OFS="\t";}{if(FNR==1) print "target_name\taccession\tquery_name\tquery_start\tquery_end\tstrand\tscore\tEvalue"; if(FNR>2 && $20!="=" && $0!~/^#/) print $2,$3,$4,$10,$11,$12,$17,$18; }' sample.tblout >sample.tblout.xls
下载rfam注释
+dos2unix rfam.txt
转换文件格式为unix版本。cat rfam.txt | awk 'BEGIN {FS=OFS="\t"}{split($3,x,";");class=x[2];print $1,$2,$3,$4,class}' > rfam_anno.txt
rfam注释文件rfam_anno.txt包含了所有rfam的类型type和功能描述description信息。
+awk 'BEGIN{OFS=FS="\t"}ARGIND==1{a[$2]=$5;}ARGIND==2{type=a[$1]; if(type=="") type="Others"; count[type]+=1;}END{for(type in count) print type, count[type];}' rfam_anno.txt sample.tblout.xls >sample.ncRNA.statistic
sample.ncRNA.statistic输出示例:
+riboswitch 1 |
比如:snRNA包括snoRNA和splicing,snoRNA包括CD-box,HACA-box和scaRNA。下面用统计CD-box这个细分分类的ncRNA举例。
+grep "CD-box" rfam_anno.txt |cut -f1 >cdbox.tem
grep -f cdbox.tem mc.tblout.xls >cdbox.txt