package org.seqcode.tools.sequence; import java.io.*; import org.seqcode.genome.Genome; import org.seqcode.genome.Species; import org.seqcode.genome.location.StrandedRegion; import org.seqcode.genome.sequence.SequenceGenerator; import org.seqcode.genome.sequence.SequenceUtils; import org.seqcode.gsebricks.verbs.location.StrandedRegionParser; import org.seqcode.gseutils.Args; import org.seqcode.gseutils.Pair; /** * reads a list of stranded regions (one per line) on STDIN. Produces on stdout a fasta file containing those regions. The genome is specified on the command line as --species "Mus musculus;mm8" */ public class StrandedRegionsToFasta { public static void main(String args[]) { try { Pair<Species,Genome> pair = Args.parseGenome(args); Species organism = pair.car(); Genome genome = pair.cdr(); StrandedRegionParser parser = new StrandedRegionParser(genome); SequenceGenerator seqgen = new SequenceGenerator(); boolean cache = Args.parseFlags(args).contains("cache"); seqgen.useCache(cache); String line; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while ((line = reader.readLine()) != null) { line = line.trim(); StrandedRegion r = parser.execute(line); String seq = seqgen.execute(r); if(r.getStrand()=='-'){ seq = SequenceUtils.reverseComplement(seq); } System.out.println(">"+r.toString()+"\n"+seq); } } catch (Exception e) { e.printStackTrace(); } } }