标签: bioinformatics

匹配文件名的正面和背面时的for循环

我正在尝试设置一个 for 循环来对成对的文件运行一个进程。文件名看起来像这样

36_002_CGATGT_L001_ R1 _005.fastq.gz
36_002_CGATGT_L001_ R2 _005.fastq.gz

36_002_CGATGT_L001_ R1 _002.fastq.gz
36_002_CGATGT_L001_ R2 _002.fastq.gz

62_013_AGTCAA_L001_ R1 _003.fastq.gz
62_013_AGTCAA_L001_ R2 _003.fastq.gz

我需要在以下命令中使用每一对

sickle pe -f 36_002_CGATGT_L001_R1_005.fastq.gz \
 -r 36_002_CGATGT_L001_R2_005.fastq.gz\
 -o trimmed_36_002_CGATGT_L001_R1_005.fastq.gz\
 -p trimmed_36_002_CGATGT_L001_R2_005.fastq.gz\
 -s 36_002_CGATGT_L001_singles_005.fastq.gz
Run Code Online (Sandbox Code Playgroud)

首先,我正在尝试:

for n in *R1*; do m='basename $n R2' ; echo $m; done
Run Code Online (Sandbox Code Playgroud)

但显然这种方法不起作用,因为文件名的正面和背面都很重要。我是否需要重命名文件,以便 R1 和 R2 是名称的最后一部分?这会很尴尬但并非不可能

command-line bash filenames bioinformatics

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

如果一行包含特定模式,如何打印,如果不包含该模式,如何不打印

">16RI1_0 M01230:42:000000000-AWMRD:1:1101:15012:1778 1:N:0:0 
TATCCGGATTTACTGGGTGTAAAGGGAGCGTAGGCGGCCATGCAAGTCAGAAGTGAAAAC
">16RA2_1 M01230:42:000000000-AWMRD:1:1101:15923:1780 1:N:0:0 
TTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTCTTAAGTCTGATGTGAAAGC
">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA
">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0 
GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC
Run Code Online (Sandbox Code Playgroud)

您好,我有一个包含此类信息的文件。我想打印所有以“>”开头的行和下一行,但有一个条件,以“>”开头的行应该包含字母V。请帮助我。

linux text-processing bioinformatics

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

使用 xargs 将 `ls` 输出重定向到另一个命令

在我正在处理的目录中,我有两个扩展名为 的文件.sam

PD180425_aligned_minimap.sam
PD180793_aligned_minimap.sam
Run Code Online (Sandbox Code Playgroud)

对于这两个文件中的每一个,我都需要应用如下所示的命令:

samtools view -Sb pattern.sam > pattern.bam
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用xargs它。我想要做的是在之前捕获前缀_aligned_minimap并使用它来保存到我的输出。我尝试的是以下内容:

ls *.sam | cut -d "_" -f 1 | xargs -i samtools view -Sb {}_aligned_minimap.sam > {}_aligned_minimap.bam
Run Code Online (Sandbox Code Playgroud)

我希望必须生成 iePD180425_aligned_minimap.bamPD180793_aligned_minimap.bam. 尽管我的命令正在运行,但我在我正在处理的目录中看到该文件{}_aligned_minimap.bam已生成,这表明我尝试使用 xargs ( PD180425and PD180793)捕获的输入不起作用。

我该怎么做呢?

pipe io-redirection xargs bioinformatics

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

将共享匹配项的列转换为行

我有一个具有以下结构的文件:

Locus7625186 GO0004866
Locus7625186 GO0010951
Locus7625186 GO0005615
Locus7625186 GO0016021
Locus7360093 GO0004712
Locus7360093 GO0007093
Locus1507198 GO0044212
Locus1507198 GO0045944
Locus1507198 GO0005634
Locus1507198 GO0036464
Locus1507198 GO0046982
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为:

Locus7625186 GO0004866 GO0010951 GO0005615 GO0016021
Locus7360093 GO0004712 GO0007093
Locus1507198 GO0044212 GO0045944 GO0005634 GO0036464 GO0046982
Run Code Online (Sandbox Code Playgroud)

请注意,GOxxxxxxx共享相同第一列匹配的数量各不相同。

sed awk text-processing bioinformatics

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

awk 去除小数点后的数字

我有一个包含这些字段的输入文件:

ENST00000456328.2   1657    1350.015    0   0
Run Code Online (Sandbox Code Playgroud)

我正在尝试 awk 删除小数点后的数字并按原样打印其余部分

awk -F[.] '{print $1"\t"$2"\t"$3}{next;}'
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为它给出了这样的输出:

ENST00000456328 2   1657    1350    015 0   0
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗。

问候。

awk text-processing bioinformatics

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

如何向文件的每一行添加一个新元素

我有一个包含此内容的文件:

CHROM_POS
chr10_100009635
chr10_100187980
chr10_100229692
chr10_100267650
chr10_100269675
chr10_100279430
chr10_100285899
Run Code Online (Sandbox Code Playgroud)

我想向此文件添加新内容,例如:

chrX-1, chrX
Run Code Online (Sandbox Code Playgroud)

其中X代表上面的数字 所以应该是

chr10_100285898 chr10_100285899
Run Code Online (Sandbox Code Playgroud)

text-processing bioinformatics

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

当不同列中的连续单元格相等时,如何使用 shell 脚本计算列中的单词数!

当第 2 列、第 3 列和第 1 列中的连续单元格相同时,我尝试计算第 9 列中C_R和的数量。S_R该文件采用床格式(制表符分隔格式)。原始文件很大,第一列定义了染色体编号。文件的前几行看起来像这样,

chr1    10200   10300   8   10000   10214   100 214 S_R
chr1    10200   10300   8   10009   10233   100 224 S_R
chr1    10200   10300   8   10014   10220   100 206 S_R
chr1    10200   10300   8   10045   10215   100 170 S_R
chr1    10200   10300   8   10068   10209   100 141 S_R
chr1    10200   10300   8   10074   10300   100 226 C_R
chr1    10200   10300   8   10182   10283   100 101 S_R
chr1    10200   10300   8 …
Run Code Online (Sandbox Code Playgroud)

bash shell-script bioinformatics

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

如何打印文件名和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
查看次数

如何将一列中另一列指示的位置处的字符替换为不同列中的字​​符串

我对生物信息学相当陌生(这是我的第一篇文章!),我希望对困扰我的任务提供一些帮助。

我有一个包含三列的制表符分隔数据表:

AATTCTTGCA 4 [A/T]
AATTCCTTCG 7 [C/T]
AATTCAACAA 2 [T/C]
Run Code Online (Sandbox Code Playgroud)

我想用第三列中的字符串替换第二列指示的位置处的第一列中的字符,以便输出为:

AAT[A/T]CTTGCA
AATTCC[C/T]TCG
A[T/C]TTCAACAA
Run Code Online (Sandbox Code Playgroud)

我现在正在学习各种教程,当我有一些带有sed/的(失败的)命令时,我会更新我的帖子awk

提前致谢!

sed awk text-processing bioinformatics

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

将 fasta 文件转换为纯文本

如何将带有“>”的fasta格式转换为纯文本文件ex。输入:fasta文件

>1M14
GATCGGACTAGCTAA
Run Code Online (Sandbox Code Playgroud)

输出:纯文本文件

GATCGGACGAGCTAA
Run Code Online (Sandbox Code Playgroud)

shell-script text-processing bioinformatics

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

用于一系列数字的 Grep

我有一个包含多行的 .txt 文件,其中提供了氨基酸和残基数据。数据如下所示:

ARG262-Side ASP368-Side 140,83%
ARG95-Side GLU107-Side 103,73%
ARG474-Side VAL468-Main 94,93%
PHE169-Main ALA190-Main 94,63%
THR205-Side ASP203-Side 94,07%
ILE299-Main LYS249-Main 94%
LEU354-Main LYS365-Main 93,6%
ARG346-Side GLU263-Side 93,57%
LEU301-Main ALA247-Main 93,43%
ALA190-Main PHE169-Main 93,37%
SER252-Side ASP296-Side 93,1%
TYR424-Side ASN446-Main 93%
Run Code Online (Sandbox Code Playgroud)

我可以粗略地说,数字表示残基,字母表示氨基酸。因此,在每行的第一个和第二个字段中, 之前的部分-由氨基酸标识符和残基值组成。我只想打印看到残基值在特定范围内的行,而不管氨基酸如何,也不管第一个或第二个字段是否与标准匹配。

例如,从上面的输入文件中,我想提取仅包含300-425之间的残基的数据。在这种情况下,我的输出应如下所示:

ARG262-Side ASP368-Side 140,83%
LEU354-Main LYS365-Main 93,6%
ARG346-Side GLU263-Side 93,57%
LEU301-Main ALA247-Main 93,43%
TYR424-Side ASN446-Main 93%
Run Code Online (Sandbox Code Playgroud)

我尝试grep为此使用该命令,但我不是很成功。除了 ,还有其他我可以使用的命令grep吗?

grep awk text-processing bioinformatics

-1
推荐指数
2
解决办法
132
查看次数