积累Linux知识,方便查找
Linux下去掉^M的方法
dos2unix filename
#or
sed -i 's/^M//g' filename
or
sed -i 's/\r/\r/g'
sed
功能说明:文本处理并可对文件进行编辑
# 将file文件中的test字符替换为new_word
sed -i ‘s/test/new_word/’ file
# -i 直接在原文件中修改(默认修改后屏幕输出,原文件不变)
# 将file文件中匹配pattern字串的行进行替换操作
sed -i ‘/pattern/ s/ test/new_word/’ file
# 将文件file中的空白行删除
sed -i ‘/^$/ d’ file
# 删除file中第一行
sed -i 1d file
# 打印文件的第一行
sed -n 1p filename >new_file
# 对fasta序列碱基替换 (对ID不替换,只对序列)
sed -i 'n; s/U/T/g' test.fa
## 替换 将;或者= 替换为tab分隔符
se d 's/[;,=]/\t/'g test
- 在指定行中添加内容
## 在第一行中加入 ##gff-version 3的内容
sed '1i ##gff-version 3' test.gff >new.gff
conda
# 创建环境并安装对应软件
conda create -n python3.4 -c conda-forge -c bioconda python=3.4
# -n 环境名字
# -c channeles
# 激活环境
conda activate python3.4
#若在激活中出现如下信息:
# CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
#则需要
source activate
source deactivata
conda activiate python3.4
# 若在bioconda镜像中没有想要的软件,则对该软件进行搜索
conda search -t cnvnator
# 得到如下结果
Using binstar api site https://api.anaconda.org
Run 'anaconda show <USER/PACKAGE>' to get more details:
Packages:
Name | Version | Package Types | Platforms
------------------------- | ------ | --------------- | ---------------
pwwang/cnvnator | 0.3.3 | conda | linux-64
: a tool for CNV discovery and genotyping from depth-of-coverage by mapped reads
Found 1 packages
# 通过上面的检索结果我们就知道目前只有唯一一个保存CNVnator的conda镜像,为pwwang,这是就可以通过指定刚才找到的镜像完成软件的安装了:
#添加镜像安装
conda install -c pwwang cnvnator
###########################################
#安装package
conda install -n python3.4 numpy
#如果不用-n指定环境名称,则被安装在当前活跃环境
#更新package
conda update -n python3.4 numpy
#删除package
conda remove -n python3.4 numpy
#更新conda,保持conda最新
conda update conda
#更新anaconda
conda update anaconda
#更新python
conda update python
#假设当前环境是python 3.4, conda会将python升级为3.4.x系列的当前最新版本
+++++++++++++++++++++++++++++++++++++++++++++
# 列出conda已有的环境
conda info -envs
# 删除已有的环境
conda remove -n env_name --all
rsync
快速删除linux中大文件夹
# 假如要删除reads 这个文件夹
mkdir blanktest
rsync --delete-before -d blanktest/ reads
Perl 模块
# 自动安装
# 比如安装Hash::Merge
cpanm Hash::Merge
# 手动安装
# 例子:下载Net-Server模块0.97版的压缩文件Net-Server-0.97.tar.gztar -zxf Net-Server-0.97.tar.gz
cd Net-Server-0.97
perl Makefile.PL
make
# 具体可看说明
# 安装完成后,输入
## 以Logger::Simple为例子,若没反应,则表示没问题
perl -MLogger::Simple -e1
# 列出linux系统上所有安装的模块
find `perl -e 'print "@INC"'` -name '*.pm'
# 列出linux @INC所有的路径
perl -V
# 若安装的perl模块不在 @INC,可将其移到@INC中,或者添加perl模块的路径到#INC
export PERL5LIB="path/your/model"
# 也可以直接链接过去
从CPAN 下载perl模块
shuf 随机排列文件
在linux中,可使用shuf 随机排序,选择文件
[baicai@cu02 shehb]$ head test
1
2
3
4
5
6
7
8
9
## 选择 5行随机输出
shuf -n 5 test
[baicai@cu02 shehb]$ shuf -n 5 test
8
3
2
4
5
## -n 输出行数
## -o 输出文件
parallel 并行
并行运行命令
conda安装
#使用conda安装可以避免root权限的限制
conda install -c conda-forge parallel
parallel --help
如果有PE数据,将前缀放入fastq.list,需要对其进行过滤,如果使用for 循环
for i in fastq.list
do
fastp -i ./${i}_1.fastq.gz \
-o ./${i}_1.fastq_clean.gz \
-I ./${i}_2.fastq.gz -O ./${i}_2.fastq_clean.gz
done
则只能一个一个运行;利用parallel可以并行
cat fastq.list | parallel -j 10 'fastp \
-i ./{}_1.fastq.gz \
-o ./{}_1.fastq_clean.gz \
-I ./{}_2.fastq.gz \
-O ./{}_2.fastq_clean.gz
# 一次性运行10个fastp,其中{}代表每一次的名字;也可以把这些命令放入一个shell脚本,比如run.sh
## 则
parallel -j 3 < run.sh
注意:
- --verbose参数可以在执行命令语句前,先打印出该命令
- --progress参数可以实时显示任务的完成进度
grep
- -w 提取完全一样的列 (按照word进行匹配)
-w, --word-regexp force PATTERN to match only whole words
head test
new1 da
newd new
ab n
# ***只提取包含有new单独列的那一行
grep -w new test
newd new
- -Ff 提取两个文件中完全相同的内容 (将第一个文件按行读取,然后调取第二个文件中含有的内容)
-F, --fixed-strings PATTERN is a set of newline-separated fixed strings
-f, --file=FILE obtain PATTERN from FILE (从文件中按行读取,有点类似shell 循环)
- -wf 提取两个文件中含有列的行
网友评论