Hi Hedwig,

The problem holds with StrandedFeature. The strandeness of a feature is the transdeness of its location. StrandedFeature should be eliminated from bj1. Use biojavaX instead, something like this, once you have created a RichLocation on the appropriate strand:

public Feature.Template getFeatureTemplate(RichSequence parent,RichLocation loc) {
        RichFeature.Template templ = new RichFeature.Template();
        RichAnnotation rans = new SimpleRichAnnotation();
        templ.annotation = rans;
        templ.sourceTerm = // find an appropriate term
templ.typeTerm = RichObjectFactory.getDefaultOntology().getOrCreateTerm("CDS");
        templ.featureRelationshipSet = new TreeSet();
        templ.rankedCrossRefs = new TreeSet();
        templ.location = loc;

        // add notes if any you'd like

        return templ;
}

That should make it into the output file.

Regards,
George


Quoting Hedwig Kurka <[email protected]>:

Hello all,

I have a problem concerning creating EMBL or Genbank files.
Below is a fragment of my code and an example of how the EMBL file looks
like.

       String name = "test genome";
       String seqString = pFasta.getSequence(1, pFasta.getLength());
       Sequence seq = DNATools.createDNASequence(seqString, name);
       Alphabet dna =  AlphabetManager.alphabetForName("DNA");
       RichSequence rs =
Tools.createRichSequence(RichObjectFactory.getDefaultNamespace(), name,
seqString, dna);
       Set<Feature> rfeatSet = new HashSet<Feature>();
       StrandedFeature.Template t = new StrandedFeature.Template();
       for(int i=0; i<annotierten.size(); i++){
                   int start = (int) Math.abs(anno.get(i).getStart());
                   int stop = (int) Math.abs(anno.get(i).getStop());
                   t.type = "CDS";
                   if(start < stop){
                       t.location = new RangeLocation(start, stop);
                       t.strand = StrandedFeature.POSITIVE;
                   }
                   if(start > stop){
                       t.location = new RangeLocation(stop, start);
                       t.strand = StrandedFeature.NEGATIVE;
                   }
                   Feature f = seq.createFeature(t);
                   RichFeature rf = RichFeature.Tools.enrich(f);
                   rfeatSet.add(rf);
       }
       rs.setFeatureSet(rfeatSet);
       rs = RichSequence.Tools.enrich(rs);
       RichSequence.IOTools.writeEMBL(output, rs,
RichObjectFactory.getDefaultNamespace());

EMBL file:
FT   any             1889536..1890903
FT   any             134636..136987
FT   any             3727110..3727625
FT   any             2812636..2813517
FT   any             580648..581643
FT   any             2330962..2331921
FT   any             1012371..1013513
FT   any             1260854..1261720
FT   any             1602858..1603706
FT   any             4108079..4108999
FT   any             346637..347731
FT   any             4073395..4074549

I wonder where the information of plus and minus strand is, why is there
"any" in the file and not "CDS" and so on.

As tutorial I found that:
http://www.biojava.org/wiki/BioJava:Cookbook:Locations:Feature. Is there
another one?

Thank you for your help!

And any help is appreciated,

Hedwig

_______________________________________________
Biojava-l mailing list  -  [email protected]
http://lists.open-bio.org/mailman/listinfo/biojava-l




_______________________________________________
Biojava-l mailing list  -  [email protected]
http://lists.open-bio.org/mailman/listinfo/biojava-l

Reply via email to