Python ImportError:没有名为writers.SeqRecord.fasta的模块

Python ImportError:没有名为writers.SeqRecord.fasta的模块,python,biopython,Python,Biopython,获取此错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\Hemant\Desktop\RandonProteinSequences.py”,第10行,在 导入Bio.writers.SeqRecord.fasta 导入错误:没有名为writers.SeqRecord.fasta的模块可能您必须更改: # File Name RandonProteinSequences.py # standard library import os import random # biopytho

获取此错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\Hemant\Desktop\RandonProteinSequences.py”,第10行,在 导入Bio.writers.SeqRecord.fasta
导入错误:没有名为writers.SeqRecord.fasta的模块可能您必须更改:

# File Name RandonProteinSequences.py
# standard library
import os
import random

# biopython
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
from Bio.SeqRecord import SeqRecord
import Bio.writers.SeqRecord.fasta
from Bio import SeqIO
from sys import *

residueList1 = ["C","D","E","F","G","H","I"]
residueList2 = ["A","K","L","M","N","S"]
residueList3 = ["P","Q","R","T","V","W","Y"]
residueList4 = ["C","A","G","U"]
def getProteinSeqRecord(residue, seqcount):
    strSeq = ""
    for i in range(0,100,1):
        index = random.randint(0, len(residue)-1)
        strSeq += residue[index]

    sequence = Seq(strSeq, IUPAC.IUPACProtein)
    seqRec = SeqRecord(sequence, id = 'randSeq' + str(seqcount), description= 'A random sequence using Amino acid residues.')
    return seqRec

def getProteinSequence(residue):
    strSeq = ""
    for i in range(0,100,1):
        index = random.randint(0, len(residue)-1)
        strSeq += residue[index]

    sequence = Seq(strSeq, IUPAC.IUPACProtein)
    return sequence

def randomProteinSeqRecord(index):
    if(index%2)==0:
        return getProteinSeqRecord(residueList1, index)
    elif(index%3)==0:
        return getProteinSeqRecord(residueList2, index)
    else:
        return getProteinSeqRecord(residueList3, index)

#information
print '--- This is python based program to generate random sequences ---'
print '--- Provide number of random sequences to generate. Default 10 ---'
print '--- Inorder to save to a file provide file path or filename ---'
print '--- If none or invalid filepath is provided then results will be displayed to console ---'
print '--- The file will be created in fasta format ---'
print

filepathProvided = False
#raw_input received the user input as string
try:
    filepath = raw_input('Enter filepath to save sequences ... ')
    filepath = filepath + '.fasta'
    handle = open(filepath, "w")
    handle.close()

    filepathProvided = True
except IOError:
    print 'Invalid or No File provided will print results to console'
print
ranSeqCount = 10
try:
    ranSeqCount = int(raw_input('Enter number of random sequences to generate ... '))
except ValueError:
    ranSeqCount = 10
pass

if(filepathProvided):
    handle = open(filepath, "w")

if(filepathProvided):
    fasta_writer = Bio.writers.SeqRecord.fasta.WriteFasta(handle)
else:
    fasta_writer = Bio.writers.SeqRecord.fasta.WriteFasta(stdout)
print 'Sequence Count : '
print ranSeqCount

for i in range(0,ranSeqCount,1):
    fasta_writer.write(randomProteinSeqRecord(i+1))
if(filepathProvided):
    handle.close()
print 'File created at : ' + filepath

print
raw_input('Press any key to exit ...')
print
用于:


我已经在中提到了这一点,我将在这里再说一遍:
此代码需要更新,因为

我快速浏览了Biopython的文档,试图找出如何编写FASTA文件。
试试这个:

from Bio.writers.SeqRecord import fasta
请注意:我没有安装Biopython,因此我没有运行此代码。

我试图在这里帮助您,但事实是我还有更好的事情要做。

欢迎来到代码回顾。对于像您这样无法工作的代码,请使用stackoverflow。此站点用于改进工作代码。这可能在StackOverflow上更好。AIUI本网站用于审查工作代码以提出改进建议,而不是修复非工作代码。您的意思是[导入Bio.writers.SeqRecord.fasta]到[从Bio.writers.SeqRecord导入fasta]还是类似的。。。ImportError:没有名为writers.seqRecord的模块Biopython的Bio.writers位在几年前就被弃用并删除了-您想要的是Bio.SeqIO,就像其他(已接受的)答案一样。
from Bio.writers.SeqRecord import fasta
# File Name RandonProteinSequences.py
# standard library
import os
import random

# biopython
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
from Bio.SeqRecord import SeqRecord
from Bio import SeqIO
from sys import *

residueList1 = ["C","D","E","F","G","H","I"]
residueList2 = ["A","K","L","M","N","S"]
residueList3 = ["P","Q","R","T","V","W","Y"]
residueList4 = ["C","A","G","U"]

def getProteinSeqRecord(residue, seqcount):
    strSeq = ""
    for i in range(0,100,1):
        index = random.randint(0, len(residue)-1)
        strSeq += residue[index]

    sequence = Seq(strSeq, IUPAC.IUPACProtein)
    seqRec = SeqRecord(sequence, id = 'randSeq' + str(seqcount), description= 'A random sequence using Amino acid residues.')
    return seqRec

def getProteinSequence(residue):
    strSeq = ""
    for i in range(0,100,1):
        index = random.randint(0, len(residue)-1)
        strSeq += residue[index]

    sequence = Seq(strSeq, IUPAC.IUPACProtein)
    return sequence

def randomProteinSeqRecord(index):
    if(index%2)==0:
        return getProteinSeqRecord(residueList1, index)
    elif(index%3)==0:
        return getProteinSeqRecord(residueList2, index)
    else:
        return getProteinSeqRecord(residueList3, index)

#information
print '--- This is python based program to generate random sequences ---'
print '--- Provide number of random sequences to generate. Default 10 ---'
print '--- Inorder to save to a file provide file path or filename ---'
print '--- If none or invalid filepath is provided then results will be displayed to console ---'
print '--- The file will be created in fasta format ---'
print

filepathProvided = False
#raw_input received the user input as string
try:
    filepath = raw_input('Enter filepath to save sequences ... ')
    filepath = filepath + '.fasta'
    #handle = open(filepath, "w")
    #handle.close()

    filepathProvided = True
except IOError:
    print 'Invalid or No File provided will print results to console'
print
ranSeqCount = 10
try:
    ranSeqCount = int(raw_input('Enter number of random sequences to generate ... '))
except ValueError:
    ranSeqCount = 10
    pass

print 'Sequence Count : '
print ranSeqCount

records = []
for i in range(0,ranSeqCount,1):
    records.append(randomProteinSeqRecord(i+1))

if(filepathProvided):
    SeqIO.write(records, filepath, "fasta")
    print 'File created at : ' + filepath

else:
    print 'Writing to console is actually not supported!  :/'

print
raw_input('Press any key to exit ...')
print