BioJava:Cookbook:Sequence:ExtractGeneRegions
How can I extract all regions beeing marked (or not) with a special feature (e.g. ‘gene’ or ‘CDS’)?
` public Sequence sequenceJustFeatues(Sequence seq, String featureName)`
` throws Exception {`
` Location loccollection = this.genLocationsOfSequence(seq, featureName);`
` SymbolList extract = loccollection.symbols(seq);`
` Sequence seqmodif = DNATools`
` .createDNASequence(extract.seqString(), "New Sequence");`
` return seqmodif;`
` }`
` public Sequence sequenceWithoutFeature(Sequence seq, String featureName)`
` throws Exception {`
` // featureName: the name of the feature which describes genes: gene or CDS`
` Location loccollection = this.genLocationsOfFeature(seq, featureName); // see below`
` SimpleSymbolList modif = new SimpleSymbolList(seq);`
` Edit e = null;`
` for (int i = seq.length(); i > 0; i--){ // this is slow. For a better implementation drop me an email`
` if (loccollection.contains(i)) {`
` e = new Edit(i, 1, SymbolList.EMPTY_LIST);`
` modif.edit(e);`
` }`
` }`
` Sequence seqmodif = DNATools.createDNASequence(modif.seqString(), "New Sequence");`
` return seqmodif;`
` }`
` public Location genLocationsOfFeature(Sequence seq, String featureName)`
` throws Exception {`
` Location loccollection = null;`
` for (Iterator i = seq.features(); i.hasNext();) {`
` Feature f = (Feature) i.next();`
` if (f.getType().equals(featureName)) {`
` if (loccollection == null) {`
` loccollection = f.getLocation();`
` } else {`
` loccollection = loccollection.union(f.getLocation());`
` }`
` }`
` }`
` return loccollection;`
` }`