常用的一些代码指令

目录

一、序列大小写转换 

二、压缩解压、查看内存

三、随机取序列

 四、挂载U盘

五、统计文件,获取表头

六、批量下载基因组数据

七、激活环境/退出环境、创建环境、删除环境

八、统计行数

九、杀死进程

十、vim编辑

十一、删除文件

十二、目录下按时间排序

十三、从一个列表中得到(去除)匹配项

十四、度分秒转换,EXCEL表中

十五、查找出目录下对应文件

十六、python2代码转换为python3代码

重要!常用!!易忘!!!

ls | wc -l #查看当前目录下文件数量
ls XXX | wc -l #查看XXX目录下文件数量
dos2unix w999.txt #Windows系统下编写的txt会存在一些字符,linux识别不了,要转换一下

一、序列大小写转换 

$ sed '/>/!s/[a-z]/\u&/g' Umbilicaria_muehlenbergii_genomic.fna > Umbilicaria_muehlenbergii_genomic_AZ.fna 
#将序列里面的小写字母改成大写字母
$ sed '/>/!s/[A-Z]/\&/g' Umbilicaria_muehlenbergii_genomic.fna > Umbilicaria_muehlenbergii_genomic_az.fna 
#将序列里面的大写字母改成小写字母

二、压缩解压、查看内存

$ quota -uvs 
# 查看一下当前内存还够不
$ tar -cvf - corrected | pigz -p 8 > corrected.tgz  
# 快速对文件进行压缩,节约空间 甚至可以把多个文件夹压缩到一个里面
$ tar -xzvf file.tgz #解压tgz文件
$ du -sh 
# 查看当前目录的大小 
$ du -sh * 
# 查看当前目录和子目录文件大小 
# !!!每天(次)运行结束后,看看不必要的文件就可以删除了(比如中间文件、比如nohup文件)

三、随机取序列

$ seqtk sample -s100 input.fasta 100 > output.fasta
# -s参数指定随机数种子(可以自行设定),input.fasta为原始文件,100为抽取数量,output.fasta为输出文件名
$ seqtk sample -s100 bin.0.fasta 100 > bin0.random100.fasta

法二:打乱了取前几行,当作随机取~

$ sort -R Burkholderia_accession.txt |head -800|less>>Burkholderia.txt 
#随机打乱文件,然后提取前800行(相当于随机抽取800行了)

 四、挂载U盘

!!!打开虚拟机,插入U盘并让其识别
$ fdisk -l #查找一下磁盘,找到sdb,就是我们的U盘啦
$ mount /dev/sdb2 /mnt #将U盘挂载到/mnt目录下使用,U盘不能直接打开,只能先挂载再打开
$ df -h #查看设备挂载情况,后面显示在/mnt下即表示挂载成功
$ umount /dev/sdb2 #卸载已经挂载上去的U盘

五、统计文件,获取表头

#统计文件夹下有多少个文件
$ ls -l  | grep "^-" | wc -l

$ head -1 Burkholderia_accession.txt|less>Burkholderia.txt #获取文件的表头信息(第一行写入新的文件)
$ head -n 5 Bacillus.txt>test.txt  #将前5行写入新文件

六、批量下载基因组数据

$ ncbi-genome-download -g "Saccharopolyspora" bacteria -l "complete,chromosome" -F fasta,gff,protein-fasta,cds-fasta,rna-fasta --flat-output -o Saccharopolyspora  

$ ncbi-genome-download -g "Saccharopolyspora" bacteria -F fasta,gff,protein-fasta,cds-fasta,rna-fasta --flat-output -o Saccharopolyspora --parallel 28 

$ ncbi-genome-download --assembly-accessions GCF_list1 bacteria -F fasta,gff,protein-fasta,cds-fasta,rna-fasta --flat-output -o Streptomyces1 --parallel 28

$ ncbi-genome-download --assembly-accessions z130 bacteria --section genbank --formats fasta --flat-output --parallel 28

-s:选择数据库(genbank,refseq),默认是refseq数据库
-F:需要下载基因组的格式,可以多种格式同时下载,用逗号隔开,默认是genbank格式
-l:序列组装程度,可以多种格式同时下载,用逗号隔开
-g:需要下载序列的属,后面要指定类群,比如bacteria
-S:下载的具体的菌种名称,用逗号隔开,也可以写入一个文件中,一行一个菌种名称
-o:输出的文件名称
-r:失败时重新连接的次数,默认是0次
--flat-output:将下载的文件输入到一个目录中,不创建新的子文件
--output-folder
指定下载目录,后面可接你想要存放的下载目录,如--output-folder ~/Downloads(下载到当前用户的下载文件夹中)
--parallel  指定线程数
--section   指定下载的数据库,可选['refseq', 'genbank'],默认refseq
--formats   指定下载的文件格式,可选['genbank', 'fasta', 'rm', 'features', 'gff', 'protein-fasta', 'genpept', 'wgs', 'cds-fasta', 'rna-fna', 'rna-fasta', 'assembly-report', 'assembly-stats', 'all'],默认genbank
--assembly-levels  指定下载的基因组组装水平,可选['all', 'complete', 'chromosome', 'scaffold', 'contig'],默认all
--genera    根据菌种名下载,后面可接想要下载的菌种名,如--genera 'Rhizobium alamii'
--taxids    根据NCBI taxonomy ID下载,后面可接想要下载的菌种的taxonomy ID,如--taxids '492774'
--assembly-accessions   根据assembly accession下载,后面可接想要下载的菌种的assembly accession,如--assembly-accessions ‘GCF_000799895.1’

如一些示例用法: 

$ ncbi-genome-download -g "Trebouxia" plant -l "all" -F fasta --flat-output -o Trebouxia_down --parallel 20

$ ncbi-genome-download --assembly-accessions test.txt bacteria --section genbank -l "all" -F fasta --flat-output -o Bacillus_down --parallel 20

$ ncbi-genome-download --taxids '293388' bacteria -l "all" -F fasta --flat-output -o Bacillus_down --parallel 20

七、激活环境/退出环境、创建环境、删除环境

$ conda activate funannotate #激活环境
 ~/anaconda3/envs/funannotate/bin 这个里面有超多脚本
$ conda deactivate #退出该虚拟环境
$ conda create -n antismash antismash 
#创建一个名叫antimash的环境
$ nohup conda create -y -n antismash antismash & 
#使用nohup将创建环境的操作挂后台运行,加入-y参数表示安装过程中遇到选项全部选择yes
#可以通过nohup文件查看软件安装进行
$ conda remove --name antimash --all 
#删除安装包 
#也可以去/ifs1/User/wuqi/miniconda3/envs下面查找一下,如果还要该软件目录,直接删掉

八、统计行数

wc -l XX.txt 
#后面跟要统计的文件名称就行,比如.fasta .txt等等

grep -c "^@" file.fastq #这个可以统计测序文件.fastq有多少条
同理
grep -c ">" XX.fasta #可以统计fasta文件有多少条序列
lsof | wc -l #查看当前打开了多少文件
ulimit -n 65535 #使用此命令设置一下文件数量
ls -l | grep "^-" | wc -l #统计当前目录下文件的个数(不包括目录)
ls -lR| grep "^-" | wc -l #统计当前目录下文件的个数(包括子目录)
ls -lR | grep "^d" | wc -l #查看某目录下文件夹(目录)的个数(包括子目录)
find . -name filename | wc -l #统计当前文件夹下叫某某的文件的数量
find -name "*.js" | wc -l #统计当前文件夹下指定类型的文件的数量
awk '{i++} END {print FILENAME, i, NF}' test.txt #统计文件的行数和列数

九、杀死进程

[1]+  Stopped                 vim test.txt

有这种停止的,赖着不动的,就输fg将其调到前台,然后直接ctrl+c退出,就结束啦

一般自己挂后台跑的,记一下进程号PID号XXX

然后直接kill XXX 就把进程杀死了

补充 kill -9 杀的更充分一些-_-

$ ps -p 123456 -o cmd #该指令可以查看某项目进程号所执行的命令是什么

十、vim编辑


":q! <ENTER>": 退出并丢弃所有的更改
":wq <ENTER>": 退出并保存所有的更改


"x":  删除光标所在的字符
"dw": 删除光标位置到下一个单词开头之前内容
"de": 删除光标位置到上一个单词结尾之后内容
"d$": 删除光标位置到该行的结尾的内容
"dd": 删除整行的内容

 "u": 撤销上次操作
     "U": 撤销整行的上次操作
"CTRL-R": 取消撤销动作

"y": 复制选中内容(可以用"v"选中的内容,也可以是"w"、"e"等指定范围内容
         "yy": 复制整行内容
          "p":在光标之后粘贴被删除的文本内容
":r FILENAME": 将文件名为FILENAME的文件内容粘贴到光标处
":r !command": 将执行外部命令的输出粘贴到光标处

"/word"或"?word": 搜索word所在的位置,通过"n"或者"N"跳转下一个位置或上一个位置

十一、删除文件

$ find  ~/Qxy/knowngenome/gongxianxing -not -iname '*.fna' -delete 
#删除非*.fna格式的文件,虽然会报问题,不用管

十二、目录下按时间排序

$ ls -lrt #按时间升序排列,最早的在最前面
$ ls -lt  #按降序排列

十三、从一个列表中得到(去除)匹配项

首先要有一个list,如每行一个基因名称的gene.list
接着有背景内容,如总的fasta文件all.fasta
然后用grep命令进行匹配(或不匹配)
grep -f gene.list all.fasta > output.fasta #从all中输出list中的基因序列
grep -vf gene.list all.fasta > reoutput.fasta #从all中删除list中的基因序列

十四、度分秒转换,EXCEL表中

=TEXT(ABS(INT(A2)),"0")&"°"&TEXT(INT((ABS(A2)-INT(ABS(A2)))*60),"00")&"'"&TEXT((ABS(A2)*3600-INT(ABS(A2)*3600)-INT((ABS(A2)-INT(ABS(A2)))*60)*60),"00")&"''"

在Excel中粘入这个公式,要改一下A2,指表格,然后注意中英文符号

这个是把117.6563转变成XX°XX′XX″

如果想把A°B′C″换算成数字,公式没跑通,我一般都是把数字分列,然后用A+B/60+C/3600

十五、查找出目录下对应文件

如:目录下有多个基因文件、多个步骤等等,想查找一下其中的脚本文件

查看当前目录,没有涵盖递归目录下的

find ./ -maxdepth 1 -type f \( -name "*.sh" -o -name "*.py" \)

十六、python2代码转换为python3代码

2to3 -w ~/Qxy/qxyjiaoben/XX.py

该代码能把Python2中的语法转换为Python3中的,结果文件为XX.py和XX.py.bak,其中.bak为原始文件,而.py为改过的

十七、vim编辑删除

1.删除单个字符

在正常模式下linux 常用命令,按下x键即可删除光标所在位置的一个字符。如果要删除光标后面的n个字符,可以使用nx命令。如果要删除光标前面的n个字符linux命令vim删除操作,则可以使用nX命令。

2.删除整行

在正常模式下,按下dd键即可删除整行。如果要删除光标所在行及其后面的n行,可以使用ndd命令。

3.删除单词

在正常模式下,按下dw键即可删除光标所在位置到下一个单词开头之间的所有字符。如果要删除光标所在位置到上一个单词结尾之间的所有字符,则可以使用dW命令。

4.删除到行末

在正常模式下,按下D键即可删除光标所在位置到行末之间的所有字符。如果要删除光标所在位置及其后面n个字符到行末之间的所有字符,则可以使用ndD命令。

5.删除到行首

在正常模式下linux命令vim删除操作,按下d0键即可删除光标所在位置到行首之间的所有字符。如果要删除光标所在位置及其前面n个字符到行首之间的所有字符,则可以使用nd0命令。

6.删除括号内的内容

在正常模式下,将光标移动到括号内,然后按下%键即可跳转到括号匹配的另一个位置。如果要删除括号内的所有内容,可以使用d%命令。

7.撤销删除

在Vim中,撤销删除操作是非常方便的。只需要按下u键即可撤销最近一次的操作。如果要撤销多次删除操作,则可以按下多次u键。

8.恢复删除

如果误删了一些内容,可以使用恢复删除操作来恢复被删除的内容。在正常模式下,按下p键即可将最近一次删除的内容粘贴到光标所在位置。

十八、序列处理

18.1序列不换行,一行一条序列

~/Qxy/qxyjiaoben/fasta_no_blank.pl XX.fasta > XX_noblank.fasta

18.2 序列名字取前几位

如从>KY972582.1 Umbilicaria pulvinaria isolate acpED018 DNA-dependent RNA polymerase II second largest subunit gene, partial cds

变成>KY972582.1 Umbilicaria pulvinaria

vim make_seq3.py #意思是获取序列前三个名字,重新给序列命名

import re

def change_fasta_header(input_file, output_file):
    with open(input_file) as f:
        lines = f.readlines()

    with open(output_file, 'w') as f_out:
        for line in lines:
            if line.startswith('>'):
                header = line.strip()
                # 使用正则表达式匹配前三个单词
                match = re.search(r'^>[^ ]+ [^ ]+ [^ ]+', header) #关键是这一步
                if match:
                    new_header = match.group(0)
                else:
                    new_header = header
                f_out.write(new_header + '\n')
            else:
                f_out.write(line)

input_file = "input.fasta" #这里要更改一下输入文件和输出文件的名字
output_file = "output.fasta"
change_fasta_header(input_file, output_file)

注!上述代码也可以灵活使用,匹配前一个、两个等等字符~

十九、补充一个可以提取图片中颜色代码的网站

在线图像颜色识别 - 码工具

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
git上传代码指令有多种,以下是其中几个常用指令: 1. git add . :将当前目录下的所有修改过的文件添加到暂存区,准备提交到本地仓库。 2. git commit -m '自定义注释' :提交暂存区中的文件到本地仓库,并附上自定义的注释。 3. git push origin master :将本地仓库的代码推送到远程仓库的master分支。如果需要推送到其他分支,可以将master替换为对应的分支名。 4. git tag 'tag名' :给当前代码打上一个标签,可以用于版本控制和发布。 5. git pull :从远程仓库拉取最新的代码到本地仓库。 6. git push :将本地仓库的所有修改推送到远程仓库。 总结起来,git上传代码指令主要包括添加文件到暂存区、提交到本地仓库、推送到远程仓库以及拉取最新代码。具体的指令可以根据实际情况进行调整和组合使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [git代码上传常用命令行](https://blog.csdn.net/weixin_45024453/article/details/129366710)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [如何在git上传代码](https://blog.csdn.net/weixin_49092622/article/details/128472055)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [github创建仓库及gitbash代码管理](https://download.csdn.net/download/qq_39466755/88112566)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值