标签: biopython

如何在iPython笔记本中调用用argparse编写的模块

我试图将BioPython序列传递给Ilya Stepanov在iPython笔记本环境中实现Ukkonen的后缀树算法.我在argparse组件上遇到了绊脚石.

我之前从未直接与argparse打过交道.如何在不重写main()的情况下使用它?

通过这个,这个Ukkonen算法的写法非常棒.

python bioinformatics suffix-tree ipython biopython

24
推荐指数
4
解决办法
2万
查看次数

如何在Python中找到一个开放的阅读框架

我正在使用Python和正则表达式来查找ORF(开放阅读框架).

查找一个子字符串,该字符串仅由字母组成ATGC(不包含空格或新行):

开头ATG,结尾TAGTAATGA并应考虑从第一个字符的序列,那么第二和第三然后:

Seq= "CCTCAGCGAGGACAGCAAGGGACTAGCCAGGAGGGAGAACAGAAACTCCAGAACATCTTGGAAATAGCTCCCAGAAAAGC
AAGCAGCCAACCAGGCAGGTTCTGTCCCTTTCACTCACTGGCCCAAGGCGCCACATCTCCCTCCAGAAAAGACACCATGA
GCACAGAAAGCATGATCCGCGACGTGGAACTGGCAGAAGAGGCACTCCCCCAAAAGATGGGGGGCTTCCAGAACTCCAGG
CGGTGCCTATGTCTCAGCCTCTTCTCATTCCTGCTTGTGGCAGGGGCCACCACGCTCTTCTGTCTACTGAACTTCGGGGT
GATCGGTCCCCAAAGGGATGAGAAGTTCCCAAATGGCCTCCCTCTCATCAGTTCTATGGCCCAGACCCTCACACTCAGAT
CATCTTCTCAAAATTCGAGTGACAAGCCTGTAGCCCACGTCGTAGCAAACCACCAAGTGGAGGAGCAGCTGGAGTGGCTG
AGCCAGCGCGCCAACGCCCTCCTGGCCAACGGCATGGATCTCAAAGACAACCAACTAGTGGTGCCAGCCGATGGGTTGTA
CCTTGTCTACTCCCAGGTTCTCTTCAAGGGACAAGGCTGCCCCGACTACGTGCTCCTCACCCACACCGTCAGCCGATTTG
CTATCTCATACCAGGAGAAAGTCAACCTCCTCTCTGCCGTCAAGAGCCCCTGCCCCAAGGACACCCCTGAGGGGGCTGAG
CTCAAACCCTGGTATGAGCCCATATACCTGGGAGGAGTCTTCCAGCTGGAGAAGGGGGACCAACTCAGCGCTGAGGTCAA
TCTGCCCAAGTACTTAGACTTTGCGGAGTCCGGGCAGGTCTACTTTGGAGTCATTGCTCTGTGAAGGGAATGGGTGTTCA
TCCATTCTCTACCCAGCCCCCACTCTGACCCCTTTACTCTGACCCCTTTATTGTCTACTCCTCAGAGCCCCCAGTCTGTA
TCCTTCTAACTTAGAAAGGGGATTATGGCTCAGGGTCCAACTCTGTGCTCAGAGCTTTCAACAACTACTCAGAAACACAA
GATGCTGGGACAGTGACCTGGACTGTGGGCCTCTCATGCACCACCATCAAGGACTCAAATGGGCTTTCCGAATTCACTGG
AGCCTCGAATGTCCATTCCTGAGTTCTGCAAAGGGAGAGTGGTCAGGTTGCCTCTGTCTCAGAATGAGGCTGGATAAGAT
CTCAGGCCTTCCTACCTTCAGACCTTTCCAGATTCTTCCCTGAGGTGCAATGCACAGCCTTCCTCACAGAGCCAGCCCCC
CTCTATTTATATTTGCACTTATTATTTATTATTTATTTATTATTTATTTATTTGCTTATGAATGTATTTATTTGGAAGGC
CGGGGTGTCCTGGAGGACCCAGTGTGGGAAGCTGTCTTCAGACAGACATGTTTTCTGTGAAAACGGAGCTGAGCTGTCCC
CACCTGGCCTCTCTACCTTGTTGCCTCCTCTTTTGCTTATGTTTAAAACAAAATATTTATCTAACCCAATTGTCTTAATA
ACGCTGATTTGGTGACCAGGCTGTCGCTACATCACTGAACCTCTGCTCCCCACGGGAGCCGTGACTGTAATCGCCCTACG
GGTCATTGAGAGAAATAA"
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

# finding the  stop codon here 

def stop_codon(seq_0):

        for i in range(0,len(seq_0),3):
            if (seq_0[i:i+3]== "TAA" and i%3==0) or (seq_0[i:i+3]== "TAG" and i%3==0) or (seq_0[i:i+3]== "TGA" and i%3==0) :
                a =i+3

                break

            else:
                a = None

# finding the start codon here 

startcodon_find …
Run Code Online (Sandbox Code Playgroud)

python biopython python-2.7 python-3.x

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

如何使用python或R将三个字母的氨基酸代码转换为一个字母代码?

我有一个fasta文件,如下所示.我想将三个字母的代码转换为一个字母代码.我怎么能用python或R做到这一点?

>2ppo
ARGHISLEULEULYS
>3oot
METHISARGARGMET
Run Code Online (Sandbox Code Playgroud)

期望的输出

>2ppo
RHLLK
>3oot
MHRRM
Run Code Online (Sandbox Code Playgroud)

你的建议将不胜感激!

python r bioinformatics biopython

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

SeqIO.parse在fasta.gz上

编码新手.Pytho/biopython新手; 这是我在网上的第一个问题.如何打开压缩的fasta.gz文件以提取信息并在我的函数中执行计算.这是我正在尝试做的一个简化示例(我尝试过不同的方法),以及错误是什么.我正在使用的gzip命令似乎不起作用.

with gzip.open("practicezip.fasta.gz", "r") as handle:
    for record in SeqIO.parse(handle, "fasta"):
        print(record.id)

Traceback (most recent call last):

  File "<ipython-input-192-a94ad3309a16>", line 2, in <module>
    for record in SeqIO.parse(handle, "fasta"):

  File "C:\Users\Anaconda3\lib\site-packages\Bio\SeqIO\__init__.py", line 600, in parse
    for r in i:

  File "C:\Users\Anaconda3\lib\site-packages\Bio\SeqIO\FastaIO.py", line 122, in FastaIterator
    for title, sequence in SimpleFastaParser(handle):

  File "C:\Users\Anaconda3\lib\site-packages\Bio\SeqIO\FastaIO.py", line 46, in SimpleFastaParser
    if line[0] == ">":

IndexError: index out of range
Run Code Online (Sandbox Code Playgroud)

python gzip bioinformatics biopython

10
推荐指数
2
解决办法
4567
查看次数

具有仿射空位罚分的Smith-Wateman算法中的回溯

我正在尝试使用仿射空位罚函数实现用于局部序列比对的Smith-Waterman算法.我想我理解如何启动和计算计算校准分数所需的矩阵,但我不知道如何追溯以找到对齐.要生成所需的3个矩阵,我有以下代码

for j in range(1, len2):
    for i in range(1, len1):
        fxOpen = F[i][j-1] + gap
        xExtend = Ix[i][j-1] + extend
        Ix[i][j] = max(fxOpen, xExtend)

        fyOpen = F[i-1][j] + gap
        yExtend = Iy[i-1][j] + extend
        Iy[i][j] = max(fyOpen, yExtend)

        matchScore = (F[i-1][j-1]  + simMatrixDict[seq1[i-1]+seq2[j-1]])
        xScore = Ix[i-1][j-1] + simMatrixDict[seq1[i-1]+seq2[j-1]]
        yScore = Iy[i-1][j-1] + simMatrixDict[seq1[i-1]+seq2[j-1]]
        F[i][j] = max(0, matchScore, xScore, yScore)
Run Code Online (Sandbox Code Playgroud)

我不确定我是否需要一个矩阵用于追溯,或者只需要1?任何关于如何从F中的最大分数追溯的澄清将非常感激.

python bioinformatics biopython sequence-alignment

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

multiFASTA文件处理

我很想知道是否有任何生物信息学工具能够处理multiFASTA文件,给我信息序列,长度,核苷酸/氨基酸含量等信息,并可能自动绘制描述性图.也可以使用R BIoconductor解决方案或BioPerl模块,但我找不到任何东西.

你能帮助我吗?非常感谢 :-)

bioinformatics fasta bioconductor biopython bioperl

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

当我从网上运行CGI脚本时,为什么python不能找到一些模块?

我不知道这里可能出现什么问题:

我有一些来自Biopython的模块,我可以在使用交互式提示或通过命令行执行python脚本时轻松导入.

问题是,当我尝试在web可执行的cgi脚本中导入相同的biopython模块时,我得到一个"导入错误"

:没有名为Bio的模块

这里有什么想法?

python cgi bioinformatics biopython

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

Phylo BioPython建筑树木

我试图用BioPython,Phylo模块构建一棵树.
到目前为止我所做的是这张图片:替代文字

每个名称都有一个四位数字后跟 - 和一个数字:这个数字表示该序列的表示次数.这意味着1578 - 22,该节点应代表22个序列.

对准序列的文件:文件
与距离该文件以建立一个树:文件

所以现在我知道如何更改节点的每个大小.每个节点都有不同的大小,这很容易做一个不同值的数组:

    fh = open(MEDIA_ROOT + "groupsnp.txt")    
    list_size = {}
    for line in fh:
        if '>' in line:
            labels = line.split('>')
            label = labels[-1]
            label = label.split()
            num = line.split('-')
            size = num[-1]
            size = size.split()
            for lab in label:
                for number in size:
                    list_size[lab] = int(number)

    a = array(list_size.values())
Run Code Online (Sandbox Code Playgroud)

但是数组是任意的,我想将正确的节点大小放入正确的节点,我试过这个:

         for elem in list_size.keys():
             if labels == elem:
                 Phylo.draw_graphviz(tree_xml, prog="neato", node_size=a)
Run Code Online (Sandbox Code Playgroud)

但是当我使用if语句时没有出现.

无论如何这样做?

我真的很感激!

谢谢大家

python numpy graphviz biopython

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

使用Python反向补充DNA链

我有一个DNA序列,并希望使用Python获得它的反向补码.它位于CSV文件的其中一列中,我想将反向补码写入同一文件中的另一列.棘手的部分是,有一些单元格不同于A,T,G和C.我能够通过这段代码得到反向补码:

def complement(seq):
    complement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'} 
    bases = list(seq) 
    bases = [complement[base] for base in bases] 
    return ''.join(bases)
    def reverse_complement(s):
        return complement(s[::-1])

    print "Reverse Complement:"
    print(reverse_complement("TCGGGCCC"))
Run Code Online (Sandbox Code Playgroud)

但是,当我试图找到补码词典中没有的项目时,使用下面的代码,我只得到最后一个基础的补充.它不会迭代.我想知道如何解决它.

def complement(seq):
    complement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A'} 
    bases = list(seq) 
    for element in bases:
        if element not in complement:
            print element  
        letters = [complement[base] for base in element] 
        return ''.join(letters)
def reverse_complement(seq):
    return complement(seq[::-1])

print "Reverse Complement:"
print(reverse_complement("TCGGGCCCCX"))
Run Code Online (Sandbox Code Playgroud)

python list bioinformatics dna-sequence biopython

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

频率不等于一

我正在编写一个函数,该函数应该通过DNA序列的.fasta文件,并为文件中的每个序列创建核苷酸(nt)和二核苷酸(dnt)频率的字典.然后我将每个字典存储在一个名为"频率"的列表中.这是一段奇怪的代码:

for fasta in seq_file:
    freq = {}
    dna = str(fasta.seq)
    for base1 in ['A', 'T', 'G', 'C']:
        onefreq = float(dna.count(base1)) / len(dna)
        freq[base1] = onefreq
        for base2 in ['A', 'T', 'G', 'C']:
            dinucleotide = base1 + base2
            twofreq = float(dna.count(dinucleotide)) / (len(dna) - 1) 
            freq[dinucleotide] = twofreq
    frequency.append(freq)
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,我正在使用biopython,所以我不必将整个fasta文件提交到内存.这也适用于ssDNA,所以我不需要考虑反义dnt)

为单个nt记录的频率增加到1.0,但是dnt的频率不会增加到1.0.因为计算两种频率的方法在我眼中是相同的,所以这是od.

我将诊断打印语句和"检查"变量留在:

for fasta in seq_file:
    freq = {}
    dna = str(fasta.seq)
    check = 0.0
    check2 = 0.0
    for base1 in ['A', 'T', 'G', 'C']:
        onefreq = float(dna.count(base1)) / len(dna) …
Run Code Online (Sandbox Code Playgroud)

python biopython python-2.7

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