我有一个名为的文本文件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 …标准化工作流程中的 Snakemake 规则使用指令运行 Python 脚本script,例如此模板规则:
rule XXXXX:
    input:
        ...,
    output:
        ....,
    params:
        ...,
    conda:
        "../envs/python.yaml"
    script:
        "../scripts/XXXX.py"
然后在脚本中,可以使用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}"
在这种方法中,python 脚本与 Snakemake 规则解耦。而且它看起来更有凝聚力,因为调用的参数在规则中很清楚,而不是隐藏在脚本中。我刚刚开始编写 Snakemake 工作流程,所以我只是一个初学者。我不明白为什么第一种方法比第二种方法更受青睐(或在标准化 Snakemake 工作流程中使用)?我错过了什么吗?第二种方法有问题吗?非常感谢您的解答!
我想要
我怎么能在BioPython中做到这一点?
我正在定义一个计算列表标准偏差的函数.有时候这个列表的平均值是负数,所以我的函数不能取负数的平方根,给我一个错误.
这看起来很简单,我只是想不起来.我想为我的函数写一个条件,如果有一个负数,则乘以-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
我想import pygr:
它失败了:
>>> import seqfmt
ImportError: No module named seqfmt
使用它的程序在Python中运行良好.然而,它调用一个名为C的库seqfmt(它有一个C文件和一个PYX文件).这是可能import转移到Jython或者自C上午我运气不好?
我正在绘制热图,我不希望行名和列名在x和y轴上可见.
所以我使用了以下代码:
heatmap.2(data, xlab="PROTEINS", ylab="DRUGS", labRow=FALSE, labCol = FALSE)
再有就是热图和之间有很大的空间PROTEINS,并DRUGS在每个轴的标签.
我想取一个6列(~130万行)文件,并根据第4列中的值复制行.输入:
chr1    6209    6234    2   255 +
chr1    6686    6710    1   255 +
chr1    6755    6780    3   255 +
输出:
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 +
我发现这个问题非常相似,但是当我尝试使用代码时,我无法维护我的列:
请原谅我的脚本无知.任何建议表示赞赏.
我有一个文本文件,其中每个ID行开头,>下一行是一系列字符.字符序列之后的下一行将是另一个以ID开头的ID行>.但在其中一些,而不是我有序列“Sequence unavailable”.ID行之后的序列可以是一行或多行.像这样的例子:
>ENSG00000173153|ENST00000000442|64073050;64074640|64073208;64074651
AAGCAGCCGGCGGCGCCGCCGAGTGAGGGGACGCGGCGCGGTGGGGCGGCGCGGCCCGAGGAGGCGGCGGAGGAGGGGCCGCCCGCGGCCCCCGGCTCACTCCGGCACTCCGGGCCGCTC
>ENSG00000004139|ENST00000003834
Sequence unavailable
我想过滤掉那些ID “Sequence unavailable”.输出应如下所示:
输出:
>ENSG00000173153|ENST00000000442|64073050;64074640|64073208;64074651
AAGCAGCCGGCGGCGCCGCCGAGTGAGGGGACGCGGCGCGGTGGGGCGGCGCGGCCCGAGGAGGCGGCGGAGGAGGGGCCGCCCGCGGCCCCCGGCTCACTCCGGCACTCCGGGCCGCTC
你知道如何在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) …我想找到相当于2种不同核苷酸的IUPAC.
例如:我有A和C,我想要M.或者:我有R和T而我想要D.
在Biopython中有没有这样做的方法?(这听起来很容易,但我只找到了使用对齐的方法,这在我的情况下是不合适的.)
谢谢!
bioinformatics ×10
python ×7
biopython ×2
python-3.x ×2
string ×2
blast ×1
c ×1
command-line ×1
conditional ×1
fasta ×1
heatmap ×1
jython ×1
math ×1
r ×1
sequences ×1
snakemake ×1
unix ×1