[BioRuby] Reading ab1 files in bioruby

George Githinji georgkam at gmail.com
Sun Jul 8 13:11:31 UTC 2012


Hi Naohisa,
Many thanks for the tip. Opening the file in Binary mode works fine now.
George

On Sun, Jul 8, 2012 at 1:25 PM, Naohisa GOTO
<ngoto at gen-info.osaka-u.ac.jp> wrote:
> Hi,
>
> It seems that the Bio::Abif.open opens file with ASCII mode.
> With Ruby 1.9 and/or on Windows, with ASCII mode, conversions
> of encoding and/or line ending characters may break binary data.
>
> Simple workaround is to open the file with binary mode.
>
>  f = File.open(filename, 'rb')
>  chromatogram_ff = Bio::Abif.open(f)
>  chromatogram_ff.each do |ch|
>    ch.to_seq
>  end
>
> With the latest git version, Bio::FlatFile opens file with
> binary modde by default, and the problem would not occur.
>
> Related topic:
> http://lists.open-bio.org/pipermail/bioruby/2012-June/002342.html
>
> Naohisa Goto
> ngoto at gen-info.osaka-u.ac.jp / ng at bioruby.org
>
> On Sat, 7 Jul 2012 06:35:59 +0300
> George Githinji <georgkam at gmail.com> wrote:
>
>> Dear list,
>> Is there a Bioruby best practice way of reading an ab1 chromatogram file?
>> I am processing a long list of  ab1 chromatogram files like this
>>
>> file= "filename"
>> chromatogram_ff = Bio::Abif.open(filename)
>> chromatogram_ff.each do |ch|
>>   ch.to_seq
>> end
>>
>> however I came across this error with some files
>>
>> /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/db/sanger_chromatogram/abif.rb:107:in
>> `get_entry_data': undefined method `match' for nil:NilClass
>> (NoMethodError)
>>       from /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/db/sanger_chromatogram/abif.rb:83:in
>> `block in get_directory_entries'
>>       from /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/db/sanger_chromatogram/abif.rb:77:in
>> `times'
>>       from /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/db/sanger_chromatogram/abif.rb:77:in
>> `get_directory_entries'
>>       from /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/db/sanger_chromatogram/abif.rb:42:in
>> `initialize'
>>       from /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/io/flatfile/splitter.rb:55:in
>> `new'
>>       from /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/io/flatfile/splitter.rb:55:in
>> `get_parsed_entry'
>>       from /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/io/flatfile.rb:288:in
>> `next_entry'
>>       from /Users/george/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bio-1.4.2/lib/bio/io/flatfile.rb:335:in
>> `each_entry'
>>       from parse_ab1.rb:11:in `<main>'
>>
>>
>> When I read the files that generated the error with convert_trace to
>> attempt to transform  to scf trace, they are parsed properly meaning
>> their is an issue with the way the  abif package works or the
>> bio::flatfile iteration procedure in bioruby. Are there known bugs?
>> some solution?
>>
>>
>> --
>> ---------------
>> Sincerely
>> George
>> Skype: george_g2
>> Blog: http://biorelated.wordpress.com/
>> Twitter: http://twitter.com/#!/george_l
>> _______________________________________________
>> BioRuby Project - http://www.bioruby.org/
>> BioRuby mailing list
>> BioRuby at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioruby
>
>
> _______________________________________________
> BioRuby Project - http://www.bioruby.org/
> BioRuby mailing list
> BioRuby at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioruby



-- 
---------------
Sincerely
George
Skype: george_g2
Blog: http://biorelated.wordpress.com/
Twitter: http://twitter.com/#!/george_l



More information about the BioRuby mailing list