SEQanswers

Go Back   SEQanswers > Bioinformatics > Bioinformatics



Similar Threads
Thread Thread Starter Forum Replies Last Post
How would I go about calling BWA from a python script? prs321 Bioinformatics 7 07-07-2019 05:20 AM
python error in cuffdiff script bvk Bioinformatics 4 07-07-2019 05:14 AM
Calling Quiver from within a Python script verheytb Pacific Biosciences 2 05-28-2015 08:39 AM
R script to Python conversion bvk Bioinformatics 9 05-18-2015 01:35 AM
gatk python script m_elena_bioinfo Bioinformatics 7 11-20-2011 06:40 AM

Reply
 
Thread Tools
Old 01-24-2017, 10:05 PM   #1
sadiexiaoyu
Member
 
Location: Switzerland

Join Date: Apr 2013
Posts: 55
Default help about the following python script

Hello, everybody,

I would like to run the following python script, but it gives me back error report.

from Bio import SeqIO
out=open("try_out.fasta","w")
for seq_record in SeqIO.parse ("try.fasta","fasta"):
a=seq_record.seq
a=a[5:-6]
id=seq_record.id
out.write(id,a,"fasta")
out.close()

File "try", line 7, in <module>
out.write(id,a,"fasta")
TypeError: function takes exactly 1 argument (3 given)

Could anyone help me about it? I think there might be something wrong with the output file, but I cannot find the solution.

Thanks!

All the best,

Sadiexiaoyu
sadiexiaoyu is offline   Reply With Quote
Old 01-24-2017, 10:19 PM   #2
finswimmer
Member
 
Location: Europe

Join Date: Oct 2016
Posts: 60
Default

Hello,

Quote:
Originally Posted by sadiexiaoyu View Post
File "try", line 7, in <module>
out.write(id,a,"fasta")
TypeError: function takes exactly 1 argument (3 given)
write() expected only one string as parameter. So if you like to write these 3 arguments seperated with comma to the file you can do something like this:

Code:
from Bio import SeqIO

out = open("try_out.fasta", "w")
for seq_record in SeqIO.parse("try.fasta", "fasta"):
    a = seq_record.seq
    a = a[5:-6]
    id = seq_record.id
    out.write(id+","+a+","+"fasta"+"\n")
out.close()
The "\n" at the end is neccessary for linebreak, otherwise you would have all entrys in one line.

fin swimmer
finswimmer is offline   Reply With Quote
Old 01-24-2017, 11:26 PM   #3
wdecoster
Member
 
Location: Antwerp, Belgium

Join Date: Oct 2015
Posts: 97
Default

Now you are writing here a literal "fasta" string on the end of every line. I doubt whether that's what you have in mind. What about this?


Code:
from Bio import SeqIO

out = open("try_out.fasta", "a")
for seq_record in SeqIO.parse("try.fasta", "fasta"):
    out.write(seq_record[5:-6].format("fasta"))
out.close()
Note that I changed the "w" in open() to "a" (for append) because you don't want to overwrite the previous record every time again in the loop, right?
wdecoster is offline   Reply With Quote
Old 01-25-2017, 05:05 PM   #4
sadiexiaoyu
Member
 
Location: Switzerland

Join Date: Apr 2013
Posts: 55
Default hey, there

Hello,

thanks a lot for the reply!

I do it like this now, and it works!

from Bio import SeqIO
out = open('out.fa','w')
for seq_record in SeqIO.parse('original.fa','fasta'):
id = seq_record.id
seq= str(seq_record.seq)[0:-1]
out.write('>'+id+"\n"+seq+'\n')
out.close()

I think the problem is that the seq have to be string instead of characters.
Thanks for the help anyway!

Cheers,

Sadiexiaoyu
sadiexiaoyu is offline   Reply With Quote
Old 01-25-2017, 11:04 PM   #5
wdecoster
Member
 
Location: Antwerp, Belgium

Join Date: Oct 2015
Posts: 97
Default

That's not how you should write fasta output...
wdecoster is offline   Reply With Quote
Old 07-07-2019, 05:09 AM   #6
brojee
Member
 
Location: Bhopal

Join Date: Jul 2019
Posts: 19
Default

This is something that I have been looking for so long. Thanks for asking it here on this forum. I got my answer as well.
brojee is offline   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT -8. The time now is 04:04 AM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Single Sign On provided by vBSSO