标签: bioinformatics

如何使用Python使用fasta之类的标头将字符串序列格式化为预定长度

我有一个名为的文本文件input.txt,看起来像这样。

A C H E C Q D S S C H H C R Q K L E D T S C H L E D V G K M
N T Y H C G E G I N N G P N A S C K F M L P C V V A E F E N H T
E T D W R C K L E A E H C D C …
Run Code Online (Sandbox Code Playgroud)

python string bioinformatics python-3.x

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

为什么 Snakemake 更喜欢使用 script 指令调用脚本而不是从 shell 调用?

标准化工作流程中的 Snakemake 规则使用指令运行 Python 脚本script,例如此模板规则:

rule XXXXX:
    input:
        ...,
    output:
        ....,
    params:
        ...,
    conda:
        "../envs/python.yaml"
    script:
        "../scripts/XXXX.py"
Run Code Online (Sandbox Code Playgroud)

然后在脚本中,可以使用snakemake对象。然而,脚本与该规则紧密耦合,这似乎是一个很大的缺点。

为什么这种方法比使用调用脚本的 shell 的方法更受青睐,例如在本规则中?

rule XXXXX:
    input:
        ...,
    output:
        ....,
    params:
        absolute_script_path = ..., # get
        argument1 = ..., 
    conda:
        "../envs/python.yaml"
    shell:
        "python {params.absolute_script_path} {input} {params.argument1} > {output}"
Run Code Online (Sandbox Code Playgroud)

在这种方法中,python 脚本与 Snakemake 规则解耦。而且它看起来更有凝聚力,因为调用的参数在规则中很清楚,而不是隐藏在脚本中。我刚刚开始编写 Snakemake 工作流程,所以我只是一个初学者。我不明白为什么第一种方法比第二种方法更受青睐(或在标准化 Snakemake 工作流程中使用)?我错过了什么吗?第二种方法有问题吗?非常感谢您的解答!

python bioinformatics python-3.x snakemake

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

使用BioPython运行BLAST查询

我想要

  1. BLAST几个序列
  2. 从每个查询中检索前100个匹配
  3. 汇集下载的序列
  4. 删除重复项

我怎么能在BioPython中做到这一点?

sequences bioinformatics biopython blast

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

负整数的条件

我正在定义一个计算列表标准偏差的函数.有时候这个列表的平均值是负数,所以我的函数不能取负数的平方根,给我一个错误.

这看起来很简单,我只是想不起来.我想为我的函数写一个条件,如果有一个负数,则乘以-1,因为不能取负数的平方根.

我怎么写这个陈述?

def stdevValue(lst):
"""calculates the standard deviation of a list of numbers
input: list of numbers
output: float that is the standard deviation
"""
    stdev = 0
    stdevCalc = (((sum(lst) - (meanValue(x)))/(len(lst)-1)))**0.5
    stdev += stdevCalc
    return stdev
Run Code Online (Sandbox Code Playgroud)

python math conditional bioinformatics

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

将pygr导入jython失败的C库

我想import pygr:

它失败了:

>>> import seqfmt
ImportError: No module named seqfmt
Run Code Online (Sandbox Code Playgroud)

使用它的程序在Python中运行良好.然而,它调用一个名为C的库seqfmt(它有一个C文件和一个PYX文件).这是可能import转移到Jython或者自C上午我运气不好?

c python jython bioinformatics

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

删除行名和列名 - heatmap.2

我正在绘制热图,我不希望行名和列名在x和y轴上可见.

所以我使用了以下代码:

heatmap.2(data, xlab="PROTEINS", ylab="DRUGS", labRow=FALSE, labCol = FALSE)
Run Code Online (Sandbox Code Playgroud)

再有就是热图和之间有很大的空间PROTEINS,并DRUGS在每个轴的标签.

r bioinformatics heatmap

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

根据列值复制或复制行

我想取一个6列(~130万行)文件,并根据第4列中的值复制行.输入:

chr1    6209    6234    2   255 +
chr1    6686    6710    1   255 +
chr1    6755    6780    3   255 +
Run Code Online (Sandbox Code Playgroud)

输出:

chr1    6209    6234    2   255 +
chr1    6209    6234    2   255 +
chr1    6686    6710    1   255 +
chr1    6755    6780    3   255 +
chr1    6755    6780    3   255 +
chr1    6755    6780    3   255 +
Run Code Online (Sandbox Code Playgroud)

我发现这个问题非常相似,但是当我尝试使用代码时,我无法维护我的列:

请原谅我的脚本无知.任何建议表示赞赏.

unix command-line bioinformatics

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

在python中过滤一个奇怪的文本文件

我有一个文本文件,其中每个ID行开头,>下一行是一系列字符.字符序列之后的下一行将是另一个以ID开头的ID行>.但在其中一些,而不是我有序列“Sequence unavailable”.ID行之后的序列可以是一行或多行.像这样的例子:

>ENSG00000173153|ENST00000000442|64073050;64074640|64073208;64074651
AAGCAGCCGGCGGCGCCGCCGAGTGAGGGGACGCGGCGCGGTGGGGCGGCGCGGCCCGAGGAGGCGGCGGAGGAGGGGCCGCCCGCGGCCCCCGGCTCACTCCGGCACTCCGGGCCGCTC
>ENSG00000004139|ENST00000003834
Sequence unavailable
Run Code Online (Sandbox Code Playgroud)

我想过滤掉那些ID “Sequence unavailable”.输出应如下所示:

输出:

>ENSG00000173153|ENST00000000442|64073050;64074640|64073208;64074651
AAGCAGCCGGCGGCGCCGCCGAGTGAGGGGACGCGGCGCGGTGGGGCGGCGCGGCCCGAGGAGGCGGCGGAGGAGGGGCCGCCCGCGGCCCCCGGCTCACTCCGGCACTCCGGGCCGCTC
Run Code Online (Sandbox Code Playgroud)

你知道如何在python中做到这一点吗?

python bioinformatics fasta

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

如何在python字符串中找到子串之间的子串?

让字符串成为"AAAGQWERTYUIOPAGCTHJKLAAAGZXCVBNMAGCT".我想找到AAAG和AGCT之间的字符串.

我想输出["QWERTYUIOP","ZXCVBNM"],即字符串列表.

我如何使用正则表达式或类似的技术来做到这一点?

我试过这个

def find_distances_between_motifs(positions1, positions2, motif_length1):
diff1 = []
diff2 = []
pos2 = 0
flag = 0
for pos1 in range(len(positions1)):
    if pos2 >= len(positions2):
        break
    if flag == 1:
        flag = 0
        pos1 -= 1
    if positions2[pos2] - positions1[pos1] > 30:
        diff1.append(NaN)
        diff2.append(NaN)
        continue
    elif positions2[pos2] - positions1[pos1] < 1:
        pos2 += 1
        diff2.append(NaN)
        flag = 1
    elif pos1 < len(positions1) - 1 and positions1[pos1+1] > positions2[pos2]:
        diff1.append(positions[pos2] - positions[pos1] - motif_length1) …
Run Code Online (Sandbox Code Playgroud)

python string bioinformatics

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

如何从核苷酸生成IUPAC代码?

我想找到相当于2种不同核苷酸的IUPAC.

例如:我有A和C,我想要M.或者:我有R和T而我想要D.

在Biopython中有没有这样做的方法?(这听起来很容易,但我只找到了使用对齐的方法,这在我的情况下是不合适的.)

谢谢!

python bioinformatics biopython

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