[Biopython] Increase line length when writing EMBL format

Pedro Almeida p.almeida.mc at gmail.com
Fri Sep 18 12:52:40 UTC 2020


Hi Peter,

thank you so much for the prompt reply. Yes, it was downloaded directly from EMBL. It's from a recent submission early this year, so maybe there were some modifications related to these cases as you pointed out.

All the best,
Pedro


> On 18 Sep 2020, at 13:47, Peter Cock <p.j.a.cock at googlemail.com> wrote:
> 
> Hello Pedro,
> 
> Sadly this annotation value is one of those awkward cases of a long
> value with no spaces, so there is no good place to break it for line
> wrapping.
> 
> Where is your original file from? The input line was 81 characters
> long, which I believe is too long.  It is from EMBL themselves? If so,
> perhaps we need to more closely match how they now handle this corner
> case - which may have changed since I last looked at this code.
> 
> Peter
> 
> On Fri, Sep 18, 2020 at 1:36 PM Pedro Almeida <p.almeida.mc at gmail.com> wrote:
>> 
>> Dear BioPython Developers and enthusiasts,
>> 
>> I’m working in a script to perform some modifications in an EMBL file format I have at hand. Everything seems to be working OK, except for some features where `SeqIO.write(record, fh, 'embl')` seems to be writing the last closing quote (`"`) in a new line as a feat of its own.
>> 
>> Here’s how the original feature is:
>> 
>> ```
>> FT                   /standard_name="species:rnd-4_family-1331|genus:Unspecified"
>> ```
>> 
>> but with  `SeqIO.write` gets printed in 2 lines as:
>> 
>> ```
>> FT                   /standard_name="species:rnd-4_family-1331|genus:Unspecified
>> FT                   "
>> ```
>> 
>> I remember seeing (can’t remember where though) that the ‘embl’ format uses for the most part the genbank structure, so thought that increasing the value of `record.GB_LINE_LENGTH` say to 100 `record.GB_LINE_LENGTH=100` could work, but it doesn’t…
>> 
>> I actually think that `record.GB_LINE_LENGTH` is not taken into account with ‘embl’ writing format because the default value seems to be [79](https://biopython.org/docs/1.75/api/Bio.GenBank.Record.html#Bio.GenBank.Record.Record.GB_LINE_LENGTH) but by default it prints the line above with a width of 81.
>> 
>> Any ideas/suggestions on how to work around this? I could probably write another parser to correct for this but would be easier/better if this could be worked with BioPython.
>> 
>> Many thanks,
>> Pedro
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Biopython mailing list  -  Biopython at mailman.open-bio.org
>> https://mailman.open-bio.org/mailman/listinfo/biopython




More information about the Biopython mailing list