[Biojava-l] make feature to create embl or genbank file
Hedwig Kurka
kurka at mikro.biologie.tu-muenchen.de
Thu Jun 30 08:31:47 UTC 2011
Hi George,
Thank you for your answer.
I have some questions. Maybe very stupid, but I don't know how to get
RichLocation objects.
RichLocation loc = (RichLocation) new RangeLocation(start, stop);
That doesn't work.
And where does the programm know, that the feature lies on the plus or
the minus strand?
Regards,
Hedwig
Am 29.06.2011 17:39, schrieb George Waldon:
> 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 <kurka at mikro.biologie.tu-muenchen.de>:
>
>> 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 - Biojava-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/biojava-l
>>
>
>
>
>
>
More information about the Biojava-l
mailing list