[Biojava-l] IllegalArgumentException when parsing an embl file

mark.schreiber at group.novartis.com mark.schreiber at group.novartis.com
Thu Jan 13 04:00:54 EST 2005


Hi Anna -

It seems the problem may be with the EMBL file.

java.lang.IllegalArgumentException: Location [1045891,1046196] is outside
1..1000000

This part indicates BioJava is trying to make a Feature with the Location [1045891,1046196] which is outside the bounds of the available sequence. It is not allowed 
to create features outside of the available Sequence. Apparently BioJava 
is able to find 1000000 bases. Is there actually more sequence than this in the EMBL file?

There are two possible solutions (unless you can get a full version of the 
EMBL file)...

1) If you are only interested in comparing Feature Locations you could use 
a DummySequence of the appropriate length.
2) You could write a custom org.biojava.bio.seq.io.SeqIOFilter which 
overloads the startFeature and method and only passes the Feature.Template 
to the delegate if the Location in that Feature.Template is inside the 
valid range.

If you want to use option 2 and need more help then post to the list.

- Mark

Mark Schreiber
Principal Scientist (Bioinformatics)

Novartis Institute for Tropical Diseases (NITD)
10 Biopolis Road
#05-01 Chromos
Singapore 138670
www.nitd.novartis.com

phone +65 6722 2973
fax  +65 6722 2910





"Anna Henricson" <Anna.Henricson at cgb.ki.se>
Sent by: biojava-l-bounces at portal.open-bio.org
01/13/2005 04:40 PM

 
        To:     "Biojava" <biojava-l at open-bio.org>
        cc:     (bcc: Mark Schreiber/GP/Novartis)
        Subject:        [Biojava-l] IllegalArgumentException when parsing an embl file


Hi,
I'm parsing the feature table in an embl file to retrieve the information
under feature key CDS. For instance, I am calculating the number of exons,
the length of the exons, retrieving the protein sequence and id etc.
Sometimes an IllegalArgumentException is thrown by the code
sequence = seqIterator.nextSequence();           //(see below in this 
email)

I guess there is some problem in the embl file with the Location, so that
the Sequence cannot be instantiated, and as a result these sequences will
not be present in my resulting output file. Why is this exception thrown 
and
is there any way to avoid or handle this problem? Please bear in mind that 
I
am new to BioJava and therefore would greatly appreciate a more detailed
explanation.
Thanks!
/Anna

The code and the exceptions that are thrown are as follows:

....
                 private Sequence sequence;

....

                 SequenceIterator seqIterator = SeqIOTools.readEmbl 
(bufferedReader);

                 SequenceIterator seqIterator = SeqIOTools.readEmbl 
(bufferedReader);
                 while (seqIterator.hasNext()){
                                 try{
                                                 sequence = 
seqIterator.nextSequence();
                                 }

                                 catch (BioException e){
                                                 e.printStackTrace();
                                 }
                                 catch (NoSuchElementException e){
                                                 e.printStackTrace();
                                 }
....

java.lang.IllegalArgumentException: Location [1045891,1046196] is outside
1..1000000
        at
org.biojava.bio.seq.impl.SimpleFeature.<init>(SimpleFeature.java:306)
        at
org.biojava.bio.seq.impl.SimpleStrandedFeature.<init>(SimpleStrandedFeature.
java:74)
        at sun.reflect.GeneratedConstructorAccessor1.newInstance(Unknown
Source)
        at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc
torAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
        at
org.biojava.bio.seq.SimpleFeatureRealizer$TemplateImpl.realize(SimpleFeature
Realizer.java:138)
rethrown as org.biojava.bio.BioException: Couldn't realize feature
        at
org.biojava.bio.seq.SimpleFeatureRealizer$TemplateImpl.realize(SimpleFeature
Realizer.java:144)
        at
org.biojava.bio.seq.SimpleFeatureRealizer.realizeFeature(SimpleFeatureRealiz
er.java:94)
        at
org.biojava.bio.seq.impl.SimpleSequence.realizeFeature(SimpleSequence.java:1
98)
        at
org.biojava.bio.seq.impl.SimpleSequence.createFeature(SimpleSequence.java:20
4)
        at
org.biojava.bio.seq.io.SequenceBuilderBase.makeSequence(SequenceBuilderBase.
java:168)
        at
org.biojava.bio.seq.io.SmartSequenceBuilder.makeSequence(SmartSequenceBuilde
r.java:87)
        at
org.biojava.bio.seq.io.SequenceBuilderFilter.makeSequence(SequenceBuilderFil
ter.java:98)
        at
org.biojava.bio.seq.io.StreamReader.nextSequence(StreamReader.java:101)
        at EmblFileParser.<init>(EmblFileParser.java:34)
        at EmblToExintFormat.main(EmblToExintFormat.java:57)

--------------------------------------------
Anna Henricson, MSc, PhD student
Center for Genomics and Bioinformatics (CGB)
Karolinska Institutet
S-171 77 Stockholm
Sweden
Phone: +46 (0)8 524 87296
Fax: +46 (0)8 337983


_______________________________________________
Biojava-l mailing list  -  Biojava-l at biojava.org
http://biojava.org/mailman/listinfo/biojava-l





More information about the Biojava-l mailing list