CentOS8安装docker

由于有一些软件需要运行在docker上,打算在CentOS8上安装试一下。一开始是按照菜鸟教程上的操作(curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun)来进行的,但出现下面错误:

Error:
 Problem 1: problem with installed package podman-3.2.3-0.10.module_el8.4.0+886+c9a8d9ad.x86_64
  - package podman-3.2.3-0.10.module_el8.4.0+886+c9a8d9ad.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
  - package containerd.io-1.6.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - cannot install the best candidate for the job
  - package runc-1.0.0-66.rc10.module_el8.5.0+1004+c00a74f5.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-72.rc92.module_el8.5.0+1006+8d0e68a2.x86_64 is filtered out by modular filtering
 Problem 2: problem with installed package buildah-1.21.4-1.module_el8.4.0+886+c9a8d9ad.x86_64

这是因为安装了podman就不能再安装docker了,需要先卸载podman:

yum install -y -q yum-utils
+ sh -c 'yum install -y -q docker-ce docker-ce-cli containerd.io docker-scan-plugin docker-compose-plugin docker-ce-rootless-extras'
Error:
 Problem 1: problem with installed package containers-common-1:1.3.1-5.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containers-common-1:1.3.1-5.module_el8.4.0+886+c9a8d9ad.x86_64 requires runc, but none of the providers can be installed
  - package containers-common-2:1-2.module_el8.5.0+890+6b136101.noarch requires runc, but none of the providers can be installed
  - package containerd.io-1.6.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-74.rc95.module_el8.4.0+886+c9a8d9ad.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - package containerd.io-1.6.8-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.2-1.module_el8.5.0+911+f19012f9.x86_64
  - cannot install the best candidate for the job
  - package runc-1.0.0-56.rc5.dev.git2abd837.module_el8.3.0+569+1bada2e4.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-66.rc10.module_el8.5.0+1004+c00a74f5.x86_64 is filtered out by modular filtering
  - package runc-1.0.0-72.rc92.module_el8.5.0+1006+8d0e68a2.x86_64 is filtered out by modular filtering
 Problem 2: problem with installed package buildah-1.21.4-1.module_el8.4.0+886+c9a8d9ad.x86_64

这是由于安装的docker版本与系统不匹配的原因,可以手动安装与之对应的版本,先找到相应系统所在的目录,如我的为CentOS 8,对应的目录为“https://download.docker.com/linux/centos/8/x86_64/stable/Packages/”,然后在里面找到需要安装的包,应下面的命令安装就可以了。

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.6.8-3.1.el8.x86_64.rpm --allowerasing
yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-ce-20.10.9-3.el8.x86_64.rpm --allowerasing
yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-compose-plugin-2.6.0-3.el8.x86_64.rpm --allowerasing

最后启动docker服务,进行测试,添加用户:

systemctl start docker    ##start docker service
docker run hello-world    ###test docker
sudo gpasswd -a $USER docker  ###Add the user
newgrp docke              ###update the user group

mysql++安装

MySQL++是基于 C++的 对MySQL和MariaDB的再次封装, 它建立在与标准c++库相同的原则之上,使处理数据库如同处理std容器(STL)一样简单。MySQL++还提供了一些工具,可以让您在自己的代码中避免重复的SQL,为这些常见任务提供了本地c++接口。 因此首先需要先安装mysql.

yum install mysql-devel

如果没有root权限,也可以下载源代码包安装。下载mysql++并编译安装:

wget https://tangentsoft.com/mysqlpp/releases/mysql++-3.3.0.tar.gz
 tar xzvf mysql++-3.3.0.tar.gz
 cd mysql++-3.3.0/
 ./configure --prefix=/home/usr/local/installdir --with-mysql=/usr/bin --with-mysql-lib=/usr/lib64/mysql --with-mysql-include=/usr/include/mysql 

make
make install

如果没有管理员权限的话可以安装在用户自己的目录下,通过设置“–prefix=/home/usr/local/installdir”目录,如果配置时出现”
configure: error: The MySQL library cannot be found. “找不到MySQL库,但是mysql已经安装了,那是因为配置程序在固定位置找不到所需要库,可以手动指定mysql库所在位置,如果是用yum安装的可以使用“–with-mysql-lib=/usr/lib64/mysql –with-mysql-include=/usr/include/mysql”指定mysql及库所有的位置,如果不是yum安装的,自己也不知道安装在哪里,可以使用“whereis mysql”查找mysql安装的位置,然后更改为其位置。

由于默认多线程是不开启的,如果需要开启,配置时添加–enable-thread-check这个参数,但是会显示”Didn’t find mysqlclient_r library in “这个错误,找不半天还是没有解决这个错误,最后还是去掉这个参数,舍弃多线程。

如果其它程序需要调用mysql++,但却显示找不到mysql++库,可以运行下面程序:

echo "/usr/local/lib64" > /etc/ld.so.conf
ldconfig
ln -s /usr/local/lib/libmysqlpp.so /usr/lib/libmysqlpp.so 

如果是安装在用户自己的目录下,把“/usr/local/lib64″更改成安装目录的库文件夹,libmysqlpp.so的位置也做相应的修改。

Error loading shared libraries libcrypto.so.1.1

openssh文件损坏,导致连不上网,也运行不了远程连接。连网时出现“Error loading shared libraries libcrypto.so.1.1”,“error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory”,因为OpenSSL库默认存储在/usr/lib64下,该目录也将包含在搜索路径中。如果OpenSSL是从源代码编译的,那么共享库将安装在/usr/local/lib64下(如果在配置OpenSSL时未使用前缀选项)。这意味着,新安装的库不在搜索路径中,这就是此错误的原因。所以我们需要做的就是,使用下面的命令在搜索路径中包含OpenSSL库。

echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
ldconfig

BUSCO数据库包含物种

conda activate busco  ##激活busco
busco --list-datasets  ###查看可用的BUSCO数据库,查找目标物种属于哪个分类,分类越小越好

奈何很多物种名字不知道中文名字,我简单百度了一下,现列出真核生物包含的种类及中文翻译。

stramenopiles_odb10菌界
fungi_odb10真菌
ascomycota_odb10子囊菌门
basidiomycota_odb10担子菌门
mucoromycota_odb10毛霉门
saccharomycetes_odb10酵母纲
dothideomycetes_odb10座囊菌纲
eurotiomycetes_odb10散囊菌纲
leotiomycetes_odb10锤舌菌纲
sordariomycetes_odb10粪壳菌纲
mucorales_odb10毛霉目
boletales_odb10牛肝菌目
eurotiales_odb10散囊菌目
helotiales_odb10柔膜菌目
hypocreales_odb10肉座菌目
onygenales_odb10散囊菌目
pleosporales_odb10格孢腔菌目
polyporales_odb10多孔菌目
actinopterygii_odb10放线菌
agaricomycetes_odb10琼脂菌
agaricales_odb10伞菌
glomerellales_odb10炭疽病菌属
tremellomycetes_odb10植物银耳纲
viridiplantae_odb10植物绿色植物界
chlorophyta_odb10植物绿藻门
embryophyta_odb10植物有胚植物
eudicots_odb10植物真双子叶植物
liliopsida_odb10植物百合纲
brassicales_odb10植物十字花目
fabales_odb10植物豆目
poales_odb10植物禾本目
solanales_odb10植物茄目
microsporidia_odb10动物微孢子虫
nematoda_odb10动物线虫纲
alveolata_odb10动物囊泡虫类
plasmodium_odb10动物疟原虫属
euglenozoa_odb10动物眼虫门
arthropoda_odb10动物节肢动物门
insecta_odb10动物昆虫纲
arachnida_odb10动物蛛形纲
endopterygota_odb10动物全变态类
hemiptera_odb10动物半翅目
hymenoptera_odb10动物膜翅目
diptera_odb10动物双翅目
coccidia_odb10动物球虫
lepidoptera_odb10动物鳞翅目
mollusca_odb10动物软体动物门
aconoidasida_odb10动物无类锥体纲
apicomplexa_odb10动物顶复亚门
vertebrata_odb10动物脊椎动物亚门
metazoa_odb10动物后生动物
aves_odb10动物鸟纲
mammalia_odb10动物哺乳动物纲
eutheria_odb10动物真兽亚纲
cetartiodactyla_odb10动物鲸偶蹄类
primates_odb10动物灵长类
sauropsida_odb10动物蜥形类
tetrapoda_odb10动物四足类
capnodiales_odb10动物煤炱目
carnivora_odb10动物食肉目
chaetothyriales_odb10动物刺盾炱目
cyprinodontiformes_odb10动物 鳉形目
euarchontoglires_odb10动物灵长总目
eukaryota_odb10动物真核生物
glires_odb10动物啮类动物
laurasiatheria_odb10动物亚兽总目
passeriformes_odb10动物雀形目

miRanda的安装与使用

  1. miRanda的下载

现网上介绍的下载地址很多已经不能打开了,我使用的是linux版本,这个网址可以打开 http://cbio.mskcc.org/microrna_data/miRanda-aug2010.tar.gz 像这种
http://www.microrna.org/microrna/getDownloads.do 已经打不开了,我记得还有一个java版本的,能在windows下运行,但现在也是找不到下载地址了。

2. 解压安装

按照一般软件解压安装的方法安装就可以了。

tar zxvf miRanda-aug2010.tar.gz
cd miRanda-3.3a/
./configure
make install

3. miRanda的运行

 miranda mirna.fa MK012335.1.fa -en -20 -out results.txt

第一个参数为miRNA的序列,第二个参数为靶标序列,比如基因组序列、转录本对应的3’UTR序列等,-sc指定序列比对打分的阈值,一般使用默认值140就可以了,小于该阈值的结合位点会被过滤掉,-en指定自由能的阈值,也就是常用的MFE值( Minimum Free Energy,最小自由能)结果必须小于该阈值才可以,更多用法请参考官方文档。

4. 提取能找到靶标的miRNA

grep "^>" results.txt >hits_mirna.txt

NCBI测序原始数据上传

具体操作可以参照这篇博客,这里只补充几点。

1、申请登录号顺序

建议首先申请Biosample号,再申请BioProject号,最后申请SRA号。在第二步的过程中只需要填写第一个Biosample号就可以了。也可以先申请BioProject号,Biosample号先空着,再申请Biosample号,然后在填表中”bioproject_accession”填上申请的BioProject号就可以了。

2、填表的疑问

遇到最多的问题就是sample_name通不过,按照参考中的方法在最后添加一列“replicate”,然后填上对应的replicate描述就可以了。在填写“collection_date”时也应注意要使用标准日期格式,如“2021-07-01”,不能把月份和日期前面的0省略。“geo_loc_name”这栏填写上传样品基因型的位置,国家要采用标准的国家名称,后面跟冒号和省份,也可以不加。

在填写”SRA_metadata_acc”表时,”library_ID”可以自己编一个,不能重复,”title” 填写样品描述信息,可以采用如以下格式“RNA-Seq of organism: cultivar tissue”,“design_description”可以填写实验设计时的信息,如”control,replication 1″,”Treatment,replication 1″。

3、测序原始数据上传

建议使用Aspera上传,特别是数据量比较大时。可以参考这篇文章的方法,不过需要特别注意的最好上传文件夹,里面包含了所有需要上传的测序文件,不然是上传到根目录了,不能显示,费半天劲白传了。可以参考我的这个代码。”samples_dir”为包含测序文件的文件夹,“root_link”为NCBI提供的链接,点“Aspera Command-Line upload”右边的加号就会出现,一般是邮箱加密钥。一般是上传完成后10分钟才会看到结果。

nohup ~/.aspera/connect/bin/ascp -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh -QT -l100m -k1 -d ~/data/transcriptome/samples/fleshed/samples_dir subasp@upload.ncbi.nlm.nih.gov:uploads/root_link &

SnpEff安装和使用中的问题

SnpEff 软件通过基因组序列和注释文件对VCF文件中的SNP/InDel信息进行注释的软件,即主要解释了SNP/InDel是否能够对编码蛋白基因造成影响。关于snpEff使用和安装的文章很多了(如SnpEff使用方法SnpEFF注释vcf-笔记),我这里就不再列出了,主要晒晒我在安装和使用过程中踩过的坑。

一、版本下载的问题。在这个页面有所有snpEff的版本,第一次我下了排在最前面的snpEff_v4_5covid19_core.zip,后面在安装数据库时,发现所有常见物种的数据库都安装不了,后面看到这个包的前缀才知道是covid19版本的,只有covid19的库,想重新下一个,怎奈下载速度实在是太慢,只能放弃了。用这个版本自建了个库,发现可以用。所以下载包时要注意。

二、建库。

我使用的是NCBI中的拟南芥参考数据库建的库,先是用的基因组序列和gtf文件,用的下面代码。

java -jar ~/snpEff/snpEff.jar build -c ~/snpEff/snpEff.config -gtf22 -v AT_10

但是当使用的时候出现了下列错误:

java.lang.RuntimeException: java.lang.RuntimeException: File not found on the server. Make sure the database name is correct.

也没找到是什么原因,后来想想NCBI注释文件一直使用的gff3的文件,参考数据库中所带的gft文件可能不太对。所以就换了gff3的注释文件重新建库,果然可以了。

java -jar ~/snpEff/snpEff.jar build -c ~/snpEff/snpEff.config -gff -v AT_10

最后运行分析程序就可以了。

java -Xmx10G -jar ~/snpEff/snpEff.jar eff -c ~/snpEff/snpEff.config AT_10 positive.vcf > positive.snp.eff.vcf

对于结果解读可以参考这篇文章(SnpEff结果解读)。

CIRCOS快速安装

因要画圈图来展现测序获得的SNP的密度和质量,打算用用这个原来见过无数次但都没有用过的circos(听说非常强大)。

其实官网上已经给出了详细的安装教程,没有必要重复列出,这里主要说一下需要注意的问题。先简要说一下安装的顺序。

1、下载 circos (建议去官网下载)。

2、解压circos-current.tgz, 进入到解压后的文件,打开bin这个文件夹,运行

> circos -modules
ok       1.26 Carp
ok       0.37 Clone
ok       2.50 Config::General
ok       3.33 Cwd
ok      2.145 Data::Dumper
ok       2.52 Digest::MD5
ok       2.76 File::Basename
ok       3.33 File::Spec::Functions
ok       0.22 File::Temp
ok       1.49 FindBin
ok       0.39 Font::TTF::Font
ok       2.43 GD
ok        0.2 GD::Polyline
ok       2.37 Getopt::Long
ok       1.14 IO::File
ok       0.33 List::MoreUtils
ok       1.38 List::Util
ok       0.01 Math::Bezier
ok       1.59 Math::BigFloat
ok       0.06 Math::Round
ok       0.08 Math::VecStat
ok    1.01_02 Memoize
ok       1.13 POSIX
ok       0.95 Params::Validate
ok       1.36 Pod::Usage
ok       1.03 Readonly
ok 2010010201 Regexp::Common
ok       2.49 SVG
ok       1.16 Set::IntSpan
ok     1.6607 Statistics::Basic
ok       2.30 Storable
ok       1.11 Sys::Hostname
ok       2.02 Text::Balanced
ok       0.53 Text::Format
ok     1.9725 Time::HiRes

确定每个模块都ok,对于标记为missing的模块,使用cpan安装。GD模块安装不上的话接着看下一步。

3、安装GD

建议使用yum install 安装,附带的库也会一起安装,不然还要一下一个的下载源代码去安装,如ncurses, zlib,PNG,ttf ,libmcrypt,JPEG6libxml2,Fontconfig 非常麻烦。如果没有yum权限那就没有办法了,乖乖的一个一个安吧。

>yum -y install gd-devel.x86_64

4、安装好上面的GD库后,再返回再用cpan安装GD模块。

5、进入到circos的安装目录的example文件夹中,运行事例文件。

> ./run