小编Kum*_*mar的帖子

需要在 sed 命令中指定数字

我有一个fasta文件,如下所示,

>accessory/4745/24/lake_sample_pv_strain_LH201_chromosome_Gene2509
ATGCTAG
>accessory/95/89.78/lake_sample_pv_strain_LH201_Gene125
TAGTCT
Run Code Online (Sandbox Code Playgroud)

我需要accessory/numericals/numericals/从 fasta 标头中删除字符,所以我使用了以下命令,但它未能达到我的目的。

sed 's/accessory[/][0-9][/][0-9]//g' accessory.fasta
Run Code Online (Sandbox Code Playgroud)

预期的输出是

>lake_sample_pv_strain_LH201_chromosome_Gene2509
ATGCTAG
>lake_sample_pv_strain_LH201_Gene125
TAGTCT
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。提前致谢。

linux sed text-processing

3
推荐指数
1
解决办法
96
查看次数

如何在单个 for 循环中分配两个变量?

我一直在运行roarypangenome管道,我需要在for循环中编写一个脚本,例如我有一个gff文件如下,

a.gff
b.gff
5.gff
101.gff
clustered_proteins
Run Code Online (Sandbox Code Playgroud)

我需要运行一个命令来从roary管道中检索独特的基因,如下所示,

query_pan_genome -a difference --input_set_one a.gff --input_set_two b.gff,5.gff,101.gff -g clustered_proteins
 
query_pan_genome -a difference --input_set_one b.gff --input_set_two a.gff,5.gff,101.gff -g clustered_proteins

query_pan_genome -a difference --input_set_one 5.gff --input_set_two a.gff,b.gff,101.gff -g clustered_proteins

query_pan_genome -a difference --input_set_one 101.gff --input_set_two a.gff,b.gff,5.gff -g clustered_proteins
Run Code Online (Sandbox Code Playgroud)

为了做同样的事情,我写了一个脚本如下,

file1=*.gff
file2=*.gff
file3="-f "$file1-$file2"
for file in *.gff
do
query_pan_genome -a difference --input_set_one "$file1" --input_set_two "$file3" -g clustered_proteins 
done
Run Code Online (Sandbox Code Playgroud)

但是上面的脚本并没有达到我的目的,我只知道简单的脚本,这对我来说很难写。请帮助我使脚本完美。

提前致谢。

shell bash shell-script

3
推荐指数
3
解决办法
325
查看次数

如何从文本文件中解析特定的 id?

我有一个很长的文本文件,部分文件内容如下所示,

[{"site":"1a2v_1","pfam":"Cu_amine_oxid","uniprot":"P12807"},{"site":"1a2v_2","pfam":"Cu_amine_oxid","uniprot":"P12807"},{"site":"1a2v_3","pfam":"Cu_amine_oxid","uniprot":"T12807"},{"site":"1a2v_4","pfam":"Cu_amine_oxid","uniprot":"P12808"},{"site":"1a2v_5","pfam":"Cu_amine_oxid","uniprot":"Z12809"},{"site":"1a2v_6","pfam":"Cu_amine_oxid","uniprot":"P12821"},{"site":"1a3z_1","pfam":"Copper-bind,SoxE","uniprot":"P0C918"},
Run Code Online (Sandbox Code Playgroud)

我需要uniprot从上面的文本文件中解析ids,下面给出了预期的结果,

P12807
P12807
T12807
P12808
Z12809
P12821
P0C918
Run Code Online (Sandbox Code Playgroud)

为了做到这一点,我尝试了以下命令,但对我没有任何作用,

sed -e 's/"uniprot":"\(.*\)"},{"site":"/\1/' file.txt
cat file.txt | sed 's/.*"uniprot":" //' | sed 's/"site":".*$//'
Run Code Online (Sandbox Code Playgroud)

请帮我解析上面提到的 id。

提前致谢。

shell-script text-processing json

1
推荐指数
1
解决办法
335
查看次数

如何打印文件名和fasta序列总数?

我有一个 fasta 文件,即 test.fasta、pas.fasta、cel.fasta 如下所示

test.fasta
>tile
ATGTC
>259
TGAT

pas.fasta
>ta
ATGCT

cel.fasta
>787
TGTAG
>yog
TGTAT
>In
NNTAG
Run Code Online (Sandbox Code Playgroud)

我需要打印文件名和 fasta 序列总数,如下所示,

test,2
pas,1
cel,3
Run Code Online (Sandbox Code Playgroud)

我使用了以下命令但未能达到我的目的

grep ">" test.fasta | wc -l && ls test.fasta
Run Code Online (Sandbox Code Playgroud)

请帮助我做同样的事情。

提前致谢。

python shell-script bioinformatics

0
推荐指数
1
解决办法
632
查看次数