标签: bioinformatics

如何根据两列的匹配合并两个文件?

我有 file1 喜欢:

0   AFFX-SNP-000541  NA
0   AFFX-SNP-002255  NA
1   rs12103          0.6401
1   rs12103_1247494  0.696
1   rs12142199       0.7672
Run Code Online (Sandbox Code Playgroud)

还有一个文件2:

0   AFFX-SNP-000541   1
0   AFFX-SNP-002255   1
1   rs12103           0.5596
1   rs12103_1247494   0.5581
1   rs12142199        0.4931
Run Code Online (Sandbox Code Playgroud)

并想要一个 file3 ,这样:

0   AFFX-SNP-000541     NA       1
0   AFFX-SNP-002255     NA       1
1   rs12103             0.6401   0.5596
1   rs12103_1247494     0.696    0.5581
1   rs12142199          0.7672   0.4931
Run Code Online (Sandbox Code Playgroud)

这意味着将 file2 的第 4 列按第 2 列的名称放入 file1。

awk text-processing join bioinformatics

40
推荐指数
3
解决办法
15万
查看次数

科学计算的最佳 Linux 发行版?

我最近买了一台新的笔记本电脑,在家时用于科学研究。该机器配备 8 核 Intel i7 处理器、4 GB RAM 和 Nvidia 显卡(2 GB,Ivy Bridge)。我最需要的计算程序是 MATLAB 和 Python。

我尝试安装 Ubuntu(版本 12.10 和 13.04),但它们都很慢。当 MATLAB 100% 使用 1 个核心时,整个操作系统就会冻结。不能同时做任何事情。此外,显卡显然没有充分发挥其潜力(我要么使用 optirun 要么在启动程序时提供 DRI_PRIME 标志)并且 Unity 根本没有使用。

出于我的目的,其他一些操作系统会比 Ubuntu 更好吗?此外,我如何才能将少数核心用于操作系统,少数用于 MATLAB/Python,而将一些用于其他程序(Chrome、Messaging、LaTeX 等)?

linux distribution-choice bioinformatics

20
推荐指数
1
解决办法
5万
查看次数

对多个文件运行命令

我有一个文件夹,里面有很多文件(xyz1、xyz2,一直到 xyz5025),我需要在每个文件上运行一个脚本,得到 xyz1.faa、xyz2.faa 等等作为输出。

单个文件的命令是:

./transeq xyz1 xyz1.faa -table 11
Run Code Online (Sandbox Code Playgroud)

有没有办法自动做到这一点?也许是一个for-do组合?

scripting shell-script text-processing files bioinformatics

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

如何计算一行中的字符数,特定字符除外?

这是部分文件

N W N N N N N N N N N
N C N N N N N N N N N
N A N N N N N N N N N
N N N N N N N N N N N
N G N N N N N N N N N
N C N N N C N N N N N
N C C N N N N N N N N
Run Code Online (Sandbox Code Playgroud)

在每一行中,我想计算不是“N”的所有字符的总数

我的愿望输出 …

text-processing bioinformatics

9
推荐指数
6
解决办法
2929
查看次数

删除每列中包含 NA 的行

我有一个制表符分隔的文件,如下所示:

gene    v1  v2  v3  v4
g1  NA  NA  NA  NA
g2  NA  NA  2   3
g3  NA  NA  NA  NA
g4  1   2   3   2
Run Code Online (Sandbox Code Playgroud)

每行中的字段数是固定且相同的。我想从上面的文件中删除那些行,其中从第 2 列到最后一列的每一行的所有字段都是 NA。然后输出应如下所示:

gene    v1  v2  v3  v4
g2  NA  NA  2   3
g4  1   2   3   2 
Run Code Online (Sandbox Code Playgroud)

awk perl text-processing bioinformatics

8
推荐指数
4
解决办法
1976
查看次数

bash循环替换特定字符后的字符串中间

我有 120 个文件 (genomes.faa),每个文件之间都有标题

>GENOME1_00001 HYPOTHETICAL PROTEIN A
NQFTIAQSQVGLEDALLDL

>GENOME1_00002 HYPOTHETICAL PROTEIN B
NQFTIAQSQVGLEDALLDL

>GENOME1_00003 HYPOTHETICAL PROTEIN C
NQFTIAQSQVGLEDALLDL

etc.
Run Code Online (Sandbox Code Playgroud)

我试图删除名称后面的“_0000X”并将其替换为“|”

>GENOME1|HYPOTHETICAL PROTEIN A
NQFTIAQSQVGLEDALLDL

>GENOME1|HYPOTHETICAL PROTEIN B
NQFTIAQSQVGLEDALLDL

>GENOME1|HYPOTHETICAL PROTEIN C
NQFTIAQSQVGLEDALLDL

etc.
Run Code Online (Sandbox Code Playgroud)

我尝试这样做:

for file in *.faa
do
sed -r 's/_.*$/|/g' $file > $file.1
done
Run Code Online (Sandbox Code Playgroud)

这不会在之后保留“假设蛋白质 A”,从而导致

>ERR1156171|
MMRQSVQTVLP 
Run Code Online (Sandbox Code Playgroud)

代替

>ERR1156171|HYPOTHETICAL PROTEIN A
MMRQSVQTVLP 
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

bash for bioinformatics

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

如何在shell中合并具有不同行数的两个文件?

我有这样的file1:

CHR                     SNP     TEST   A1   A2                 GENO   O(HET)   E(HET)            P 
   0         AFFX-SNP-000541      ALL    0    0                0/0/0      nan      nan            1
   0         AFFX-SNP-000541      AFF    0    0                0/0/0      nan      nan           NA
   0         AFFX-SNP-000541    UNAFF    0    0                0/0/0      nan      nan           NA
   0         AFFX-SNP-002255      ALL    0    0                0/0/0      nan      nan            1
   0         AFFX-SNP-002255      AFF    0    0                0/0/0      nan      nan           NA
   0         AFFX-SNP-002255    UNAFF    0    0                0/0/0      nan      nan           NA
   1                 rs12103      ALL    C    T           55/250/317   0.4019   0.4113       0.5596
   1                 rs12103      AFF    C    T                0/0/0      nan …
Run Code Online (Sandbox Code Playgroud)

shell terminal join bioinformatics

7
推荐指数
2
解决办法
4648
查看次数

查找 VI 中除 ATCG 以外的任何行

我有一个大约 500 万行长的基因组数据文件,其中应该只有字符 A、T、C 和 G。问题是,我知道文件应该有多大,但它比那个稍大。这意味着,分析中出了点问题,或者有些行包含基因组数据以外的内容。

有没有办法找到除了 A、T、C 或 G 之外的任何行?由于文件的性质,不应出现任何其他字母、空格、数字、符号。我已经逐个符号搜索过,所以我希望有一种更简单的方法。

linux vi text-processing bioinformatics

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

从文件中提取对应于第 n:th 模式的子序列

我有以下数据块(多个)

chr1.trna4 (17188416-17188486)  Length: 71 bp
Type: Gly   Anticodon: CCC at 33-35 (17188448-17188450) Score: 78.3
HMM Sc=56.60    Sec struct Sc=21.70
         *    |    *    |    *    |    *    |    *    |    *    |    *    |
Seq: GCATTGGTGGTTCAGTGGTAGAATTCTCGCCTCCCACGCGGGAGaCCCGGGTTCAATTCCCGGCCAATGCA
Str: >>>>>>>..>>>>.......<<<<.>>>>>.......<<<<<....>>>>>.......<<<<<<<<<<<<.
Run Code Online (Sandbox Code Playgroud)

对于每个块,我需要在块的最后一行找到以Str. 在上述情况下,第 8 个模式是.......(7 个周期)。这是因为第一组>符号构成一个模式,第二组周期构成第二个模式,依此类推。

现在我需要从Seq模式行正上方的行中提取这 7 个字符。在示例中,这对应于子序列CTCCCAC

输出应该是 Seq is CTCCCAC and Anticodon: CCC

这在bash或任何外壳中都可能吗?

数据块的更多示例

chr19.trna11 (4724719-4724647)  Length: 73 bp
Type: Val   Anticodon: CAC at 34-36 (4724686-4724684)   Score: …
Run Code Online (Sandbox Code Playgroud)

sed awk shell-script bioinformatics pattern-matching

7
推荐指数
2
解决办法
819
查看次数

awk 将一个文件分割成多个文件,并在另一个索引文件中指定名称

我有一个集群 fasta 文件(称为 file),如下所示:

>1AB2
>1AB2 AA
NWWIEUNJRNIBGOWNGIOWGRBIGBRGRIOWGI
NCIDHFR8EHGBVPIWOBGIGRI
>1AB3 AA
WNIOREHUEBRGOUERGHBERGIORBGREUGEGO
NWFWRUBGREOUEREOBRIOBNERIOBN
>1SC4 AA
WNIOREHUEBRGOUERGHBERGIORBGREUGEGO
NWFWRUBGREOUEREOBRIOBNERIOBN
>2CD5 AA
WNIOREHUEBRGOUERGHBERGIORBGREUGEGO
NWFWRUBGREOUEREOBRIOBNERIOBN
>2AC6
>2AC6 AA
NFIGEURHGEIROHEGHTUTJGENLJBBEOWRIU
NFIROUHBOERVERUGBERUOVREOIBROEBVUE
NVHIRE
>2ONM AA
BUCIEHBUORBREOBWQVURVELLAJFLHIEBGR
NHEIBVEURIGBVNRIHEOEAJVSJDNHVUGBVR
NEBIBVVBRU
>2POD AA
BUFEWIBOEUWBWOREBRIUBGUERIGBVOSRIP
BUEIBVEO
>7KZL
>7KZL AA
BUIREBVAUREVBREOIRGPNJBFDVERUBVROR
>6GH3
>6GH3 AA
NBVUIREVOIAWRHRUGRTYUVDNJKDFHUGSEI
FHUIERBLUUIREB
>6GH4 AA
BDFUIGEVUERERHOBERIHBSDLKFJBNIERIH
NFHILRUGAURHG
Run Code Online (Sandbox Code Playgroud)

该文件有 4 组:1AB2, 2AC6, 7KZL, and 6GH3. >1AB2第一个和第一个期间的内容>2AC6属于该簇1AB2>2AC6第一个和第一个期间的内容>7KZL属于该簇2AC6

我想在第二个文件中将文件分成 4 个文件,>XXXX并在此索引文件(ind.txt)中使用特定名称:

HG001 1AB2
HG010 2AC6
HG023 …
Run Code Online (Sandbox Code Playgroud)

awk text-processing bioinformatics

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