CentOS 系统彻底崩了

这是由画图引起了一场“血案”。因为需要画一个叶绿体共线性的图,使用nucmer比对,然后使用mumerplot画图,但显示没有安装gnuplot,使用yum install 安装gnuplot后,发现缺少Qt和Qt Creator库,安装Qt发现需要需要gcc11版本以上,接着使用这个“CentOS8完美升级切换gcc版本方法”,显示升级失败。接下来大部分linux命令都用不了,可能是像上次一样是libc文件坏了,而是按照原来的方法。

1 修改U盘位置

开机启动,在进入到启动盘界面时,用上下键选择救援模式,然后按”e”进入编辑模式,将hd:后的内容换成U盘所在的盘符位置:

vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rescue quiet
###修改为
vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdc4:/ rescue quiet
###如果不知道U盘的位置,可以退出后进入shell模式,然后使用:
ls /dev/sd*
##或者使用查看
fdisk -l

这一步没有问题后按”ctrl+x”运行,看见有选择界面后选择“ 1 continue”,可以运行了。救援模式是用Anaconda做的一个小的linux环境,使用Alt+Tab可以切换到命令模式。

2 激活引导分区

###查看磁盘分区情况
fdisk -l
###查看逻辑卷
lvdisplay
###激活逻辑卷
vgchange -ay /dev/cl   ##cl是上一步需要激活的"VG name"
###重新进入救援模式
systemctl --no-wall rescue

3 恢复libc.so.6文件

与CentOS7不同的是CentOS8默认挂载的文件夹是”/mnt/sysroot/”,不是”/mnt/sysimage”, “chroot /mnt/sysroot”进入到服务器的系统目录(注意不是启动盘中的系统目录),运行”df -h‘可以看到所有挂载的盘,拷贝一个libc.so.6文件到/mnt/sysroot/lib64/这个文件夹中就可以了。但重启系统后发现 “Failed to start Crash recovery kernel arming”, “centos failed to start udev coldplug all devices”, 和加载逻辑盘time out的错误。整了两天,通过disable kernel 相关服务可以消除第一个错误,但后面两个错误怎么也解决不了,系统只能进入emergency模式。没办法,只能打算重装系统了。

4 拷贝数据,重装系统

准备一个空盘,格式化成ext4文件格式。按上述2方法进入救援模式,使用fdisk -l 查看备份盘所在的地方(启动盘不能拔掉),查看逻辑卷,激活逻辑卷,重新进入救援模式,挂载备份盘,使用df -h查看所有盘符所在位置,拷贝所需文件至备份盘。

mkdir /mnt/tmp
mount /dev/sdb3 /mnt/tmp
cp /mnt/sysroot/home/admin/* /mnt/tmp/

然后使用1方法修改启动盘符,安装系统,为了避免CentOS升级gcc所带来的问题,彻底抛弃CentOS了,重新安装了一个Ubuntu service LTS 24.04系统。

BiocManager不能安装包,显示Bioconductor version cannot be validated; no internet connection,不能联网 解决方法

可以使用install.packages安装包,但不能使用BiocManager::install(“”)安装包,显示Bioconductor version cannot be validated; no internet connection , URL ‘https://bioconductor.org/config.yaml’: status was ‘SSL connect error’. 使用BiocManager::valid()也同样出现这样的问题。

尝试了很多方法都无效:

  1. 关闭防火墙,无效;
  2. 更换镜像,无效;
    options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
    options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
  3. 由于我的电脑是win7系统,以为是版本不兼容,从R4.0试到了R4.2.3,无效;
  4. 以为是Rstudio版本的问题,单独在不同版本的R中试,无效;
  5. 设置R里HTTP选项,R里 Tools -> Global Options ->Packages and unchecking the ->”Use Internet Explorer library/proxy for HTTP”option, 也无效;
  6. 设置下载方式,无效;
options(download.file.method = 'libcurl')
options(url.method='libcurl')

后来仔细查看报错信息,可能是无法连接到config.yaml配置文件导致的,在“https://bioconductor.org/config.yaml”中下载了配置文件到自己的电脑,然后指定这个配置文件,果然就搞定了。

options(
  BIOCONDUCTOR_CONFIG_FILE = "D:/Program Files/R/R-4.2.3/config.yaml"
)

Endnote 无法联接到在线数据库

Endnote 导入PDF文件文献后识别不了文献作者、标题、期刊等文献信息,如下面显示:

需要先修改Internet设置:

控制面板——网络和Internet——Internet选项——高级——将使用TLS1.0 1.1 1.2全勾上

然后右键点击选择的文献,选择“Edit Reference”, 粘贴上DOI号,更新文献就可以了。

更新好后显示的文献信息:

如果不能下到PDF文献,但需要引用这个文献,可以在google学术上下载这篇文献的引用,然后双击下载的.enw文件,导入到Endnode中。

EndNote参考文献格式修改

参考资料: EndNote文献插入

Blast Error: mdb_env_open: Function not implemented 错误

最近在使用RepeatMasker时产生这个错误:

Building general libraries in: ~/soft/RepeatMasker/Libraries/CONS-Dfam_withRBRM_3.7/general
RepeatMasker::createLib(): Error invoking ~/soft/rmblast-2.14.0/bin/makeblastdb on file ~/soft/RepeatMasker/Libraries/CONS-Dfam_withRBRM_3.7/general.working/is.lib.

查看makeblastdb.log文件时,发现是BLAST Database creation error: mdb_env_open: Function not implemented,当我单独使用rmblast中的makeblastdb和ncbi-blast+中的makeblastdb时都会发生上述错误,我的blast++版本是2.10.0,但使用blast++ 2.7版本就不会出现上述问题,可能是系统C++版本和blast++编译的C++版本不一致导致的,解决的方法有两种,一种是直接使用低版本的blast++如2.7版本,也可以使用blast++的源代码进行编译安装,可以参考RMBlast 官网的方法,不过时间有点长。

  1. Download NCBI Blast+ and rmblast patch file:
    ncbi-blast-2.14.1+-src.tar.gz
    isb-2.14.1+-rmblast.patch.gz
  2. Install Dependencies:
    You will need a C++ compiler and essential build tools such as make and autotools.
    • Debian and derivatives (Ubuntu, Mint, etc.): apt install build-essential
    • Fedora: yum groupinstall “Development Tools”
    Other missing dependencies might be detected by the configure step later, depending on your operating system.
  3. Unpack Distribution:
    Unpack the distribution in your home directory or in a temporary location ( i.e. /tmp ).
    • cd /mytmp/location/
    • tar zxvf ncbi-blast-2.14.1+-src.tar.gz
    • gunzip isb-2.14.1+-rmblast.patch.gz
  4. Patch:
    • cd ncbi-blast-2.14.1+-src
    • patch -p1 < ../isb-2.14.1+-rmblast.patch
  5. Build:
    To compile the programs for installation in /usr/local/rmblast run:
    • cd ncbi-blast-2.14.1+-src/c++
    • ./configure –with-mt –without-debug –without-krb5 –without-openssl –with-projects=scripts/projects/rmblastn/project.lst –prefix=/usr/local/rmblast
    • make
      • make -j can be used to parallelize the build on multiprocessor systems, e.g. make -j2 to dedicate two cores to the build process.
    • make install
  6. Configure RepeatMasker/RepeatModeler:
    To use the new search engine with RepeatMasker or RepeatModeler, run/re-run the configure program in the RepeatMasker directory and the configure program in the RepeatModeler directory.

samtools faidx 索引文件.fai详解

samtools faidx 能够对fasta 序列建立一个后缀为.fai 的文件,根据这个.fai 文件和原始的fastsa文件, 能够快速的提取任意区域的序列。

例如:

samtools faidx test.fa
samtools faidx test.fa chr1:200-400

那么faidx生成的.fai文件其实为一个文本文件,可以直接打开,通常包括5列,每列内容为:


NAME	Name of this reference sequence
LENGTH	Total length of this reference sequence, in bases
OFFSET	Offset in the FASTA/FASTQ file of this sequence's first base
LINEBASES	The number of bases on each line
LINEWIDTH	The number of bytes in each line, including the newline
QUALOFFSET	Offset of sequence's first quality within the FASTQ file

第一列 NAME : 序列的名称,只保留“>”后,第一个空白之前的内容;

第二列 LENGTH: 序列的长度, 单位为bp;

第三列 OFFSET : 第一个碱基的偏移量, 从0开始计数,换行符也统计进行;

第四列 LINEBASES : 除了最后一行外, 其他代表序列的行的碱基数, 单位为bp;

第五列 LINEWIDTH : 行宽, 除了最后一行外, 其他代表序列的行的长度, 包括换行符, 在windows系统中换行符为\r\n, 要在序列长度的基础上加2;

PAF格式和SAM格式详解

1、PAF格式

paf格式为minimap2默认输出格式,结果至少包括12列:

ColTypeDescription
1stringQuery序列ID
2intQuery序列长度
3intQuery比对开始位置(*based)
4intQuery比对结束位置(*based)
5char如果query/target是正链关系,’+’表示;负链关系,’-‘表示
6stringTarget序列ID
7intTarget序列长度
8intTarget比对开始位置
9intTarget结束开始位置
10int比对上的碱基数 (matching bases)
11int对齐区域长度(包括gaps)
12int比对质量(0-255)

标签说明:

TagTypeDescription
tpAaln类型:P/primary, S/secondary and I,i/inversion
cmiNumber of minimizers on the chain
s1iChaining score
s2iChaining score of the best secondary chain
NMiTotal number of mismatches and gaps in the alignment
MDZTo generate the ref sequence in the alignment
ASiDP alignment score
SAZList of other supplementary alignments
msiDP score of the max scoring segment in the alignment
nniNumber of ambiguous bases in the alignment
tsATranscript strand (splice mode only)
cgZCIGAR string (only in PAF)
csZDifference string
dvfApproximate per-base sequence divergence
defGap-compressed per-base sequence divergence
rliLength of query regions harboring repetitive seeds

2、SAM格式

SAM文件由两部分组成,头部区和主体区,都以tab分列。

image.png

1. 头部区:以’@’开始,体现了比对的一些总体信息。比如比对的SAM格式版本,比对的参考序列,比对使用的软件等。

2. 主体区:比对结果,每一个比对结果是一行,有11个主列和一个可选列。

主体区部分:

关键字描述
1QNAMEQuery序列ID
2FLAGBwise FLAG(表示比对类型:paring,strand,mate strand等),如:0,99,256,2048等
3RENAMETarget序列ID
4POS比对到参考序列上的位置,从1开始计数;未比对上为0
5MAPQ比对的质量分数(越高说明比对到参考序列的上的位置越准确)。如果是255,说明该比对值无效。
6CIGAR简要比对信息表达式
7MRNM下一片段比对上的参考序列编号
8MPOS下一片段比对上的位置,如果不可用,此处为0
9ISIZE插入片段长度
10SEQ和参考序列在同一个链上比对的序列(若比对结果在负义链上,则序列是其反向重复序列,反向互补序列)
11QUAL比对序列的质量(ASCII-33=Phred base quality)reads碱基质量值
12Optional Fields可选的列以TAG:TYPE:VALUE的形式提供额外的信息

1. FLAG释义表如下

image.png

2.   CIGAR string,简要比对信息表达式,示例如下图

image.png

部分内容转自:https://blog.sciencenet.cn/blog-994715-1341509.html

BUSCO结果画图

1、新建一个文件夹,将BUSCO的结果文件拷贝到的这个文件夹中,注意最好不要修改文件名称,如果修改,只改“short_summary.specific.eudicots_odb10.yourname.txt”中的”yourname”部分,且其中不要出现”.”,否则识别不出来,出现“No files matching the pattern short_summary.[generic|specific]* were found in result/” 这种错误。

mkdur -p plot/result
cd plot
cp ../JDB/short_summary.specific.eudicots_odb10.JDB.txt result/
cp ../SX/short_summary.specific.eudicots_odb10.SX.txt result/
cp ../RP_draf.asm_HiC/short_summary.specific.eudicots_odb10.RP_draf.asm_HiC.txt result/short_summary.specific.eudicots_odb10.RP_draf.txt
cp ../RP_draf.asm.hic.hap1/short_summary.specific.eudicots_odb10.RP_draf.asm.hic.hap1.txt result/short_summary.specific.eudicots_odb10.RP_hap1.txt
cp ../RP_draf.asm.hic.hap2/short_summary.specific.eudicots_odb10.RP_draf.asm.hic.hap2.txt result/short_summary.specific.eudicots_odb10.RP_hap2.txt

2、运行generate_plot.py 程序生成图,如果是用conda安装的busco,可以先激活busco,或者用其绝对路径“~/anaconda3/envs/busco/bin/generate_plot.py”

conda activate busco
generate_plot.py -wd result

博客正式回归

两个月前,博客出现了“此站点出现了致使错误”,删除了插件还是不行,由于一直在组装基因组,也没有心思来打理,所以一直访问不了,平时一些流程和方法都用Typora记在本地了,也懒得去管了。博客虽然已经开通十多年了,但文章并不多,粉丝也很少,没有赠到一份钱,银子却花了不少,就像养了一个不争气的儿子,一直在啃老,现在能保留纯粹是一种情怀。常常就想,做博客是为了什么,为了做笔记心得吧,记在本地不就可以了,为什么要分享,而且随着对生物信息的不断深入,很多技术方面的心得就是自己的心血,是自己踩了无数坑摸索出来的,作为自己的核心竞争力,我为什么要告诉别人。而且网上认识的有些人,花了大量的时间手把手教会了,却连一个谢谢都没有就Bye bye 了,反正茫茫人海中谁认识谁。不得不说,年纪越大越实际,也不得不实际。指望涨粉卖课?现在短视频横行的时代,有几个人去关心博客,自己又有多少时间能做这个。也许这也是导致我这个博客半死半活的原因吧。

但是有时常常又问自己为什么要搞生信,难道不是因为热爱吗,不是因为解决一个问题获得的快乐吗,真正的热爱不是在认清真相依然还热爱吗。把这咱热爱释放出去难道不就是对自己的一种释放和认可吗,渡人渡心渡已而已,因此重拾旧心,重启博客。

ChatGPT, Copy.ai 和Playground的区别

在OpenAI中有ChatGPT, Copy.ai 和Playground三种聊天工具,他们有哪些区别呢?

Copy.ai给出的结果:

Copy.ai是一种由人工智能驱动的文案助手,可帮助用户快速轻松地创建高质量的内容。它使用自然语言处理(NLP)生成根据用户需求定制的文案。Copy.ai旨在帮助用户创建既引人入胜又符合SEO标准的内容。

ChatGPT是一种由人工智能驱动的聊天机器人,以对话的方式进行交互。它经过训练,可以回答后续问题,承认自己的错误,挑战不正确的提问,并拒绝不适当的请求。

Playground是一个交互式环境,允许用户探索和实验OpenAI的机器学习模型。它为用户提供了一个直观的界面,使他们能够快速轻松地构建和测试自己的模型。

Playground给出的结果:
Copy.ai是一个基于AI的文案营销平台,提供内容建议引擎、AI驱动的写作助手和AI驱动的博客文章生成器。聊天机器人是一种模拟人类对话的计算机程序,通常通过响应文本或语音输入来实现。Playground是一个基于Web的交互式环境,用于以可视化和交互方式创建、共享和探索人工智能。

ChatGPT给出的结果:

Copy.ai、ChatGPT(简称GPT,即“Generative Pre-trained Transformer”)和Playground都是OpenAI提供的产品或服务,但它们的用途和功能不同。

Copy.ai是一款商用的基于人工智能的写作工具,可为各种用途生成文本,例如产品描述、社交媒体标题、博客文章等。它使用机器学习算法理解上下文并生成类似于人类的文本,可以节省用户大量的时间和精力。

另一方面,ChatGPT是一个语言模型,经过大量文本数据的预训练,可以进行微调,用于特定任务,例如问答、翻译和摘要。它是自然语言处理任务的强大工具,已用于各种应用,包括聊天机器人、内容生成和语言建模。

Playground是一个平台,允许开发人员使用OpenAI的语言模型进行实验并构建应用程序。它提供了一个用户友好的界面,以访问和交互OpenAI的模型,允许开发人员测试他们的想法并构建应用程序,而不必担心底层基础架构。

总之,Copy.ai是一款商用写作工具,ChatGPT是可以进行微调以用于特定任务的语言模型,Playground是一个供开发人员实验OpenAI语言模型并构建应用程序的平台。

CentOS安装python2.7虚拟环境

我的CentOS系统中安装有python2.7,python3.8, python3.9,python3.10多个python版本,现在一个软件安装过程需要使用python2.7,但又不想改变默认python版本,就想着安装一个python虚拟环境。

  1. 安装virtualenv
pip install virtualenv

2. 安装python2.7虚拟环境

 mkdir ~/soft/python2.7 && cd ~/soft/python2.7
virtualenv --python=/usr/bin/python2.7 python27

3. 运行python2.7虚拟环境

source ./python27/bin/activate

4. 退出python2.7虚拟环境

deactivate