/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package data.cerevisiae.region;
import fork.lib.base.file.management.Dirs;
import fork.lib.bio.anno.genomic.BedReader;
import fork.lib.bio.anno.genomic.BedReaderParam;
import fork.lib.bio.anno.genomic.region.GenomicRegionsBuilder;
import fork.lib.bio.anno.genomic.region.GenomicRegionsModifier;
import java.io.File;
import java.io.IOException;
/**
*
* @author forksapien
*/
public class GenerateGenic {
protected GenomicRegionsBuilder gb;
public GenerateGenic(GenomicRegionsBuilder gb){
this.gb=gb;
init();
}
protected void init(){}
public void writeToDirectory(File od, String org) throws Exception{
GenomicRegionsModifier gm= new GenomicRegionsModifier(gb);
gm.gb.writeToFileBed(new File(od+"/"+org+"_gene_cds_full.bed"));
gm.getComplementaryStrand().writeToFileBed(new File(od+"/"+org+"_gene_cds-rev_full.bed"));
gm.getFivePrimeEnds(300, -150).writeToFileBed(new File(od+"/"+org+"_gene_five_300.-150.bed"));
gm.getFivePrimeEnds(150, 0).writeToFileBed(new File(od+"/"+org+"_gene_five_150.0.bed"));
gm.getFivePrimeEnds(0, 150).writeToFileBed(new File(od+"/"+org+"_gene_five_0.150.bed"));
gm.getFivePrimeEnds(-150, 300).writeToFileBed(new File(od+"/"+org+"_gene_five_-150.300.bed"));
new GenomicRegionsModifier(gm.getGenicRegions(300, 300)).lengthGreaterThan(100).writeToFileBed(new File(od+"/"+org+"_gene_cds_300.300.bed"));
gm.getThreePrimeEnds(300, -150).writeToFileBed(new File(od+"/"+org+"_gene_three_300.-150.bed"));
gm.getThreePrimeEnds(150, 0).writeToFileBed(new File(od+"/"+org+"_gene_three_150.0.bed"));
gm.getThreePrimeEnds(0, 150).writeToFileBed(new File(od+"/"+org+"_gene_three_0.150.bed"));
gm.getThreePrimeEnds(-150, 300).writeToFileBed(new File(od+"/"+org+"_gene_three_-150.300.bed"));
gm.getAllIntergenicRegions().writeToFileBed(new File(od+"/"+org+"_intergenic_full.bed"));
new GenomicRegionsModifier(gm.getAllIntergenicRegions()).getGenicRegions(300, 300) .writeToFileBed(new File(od+"/"+org+"_intergenic_300.bed"));
gm.getFivePrimeEnds(300, 0).writeToFileBed(new File(od+"/"+org+"_gene_five_300.0.bed"));
gm.getFivePrimeEnds(0, 300).writeToFileBed(new File(od+"/"+org+"_gene_five_0.300.bed"));
}
public static void main(String[] args) throws Exception {
File dir= Dirs.getFile("dir");
//File f= new File(dir+"/anno/sgdGene_sacCer1.bed");String org= "sacCer1";
File f= new File(dir+"/anno/xu_2009_orfs.bed");String org= "sacCer1-xu";
//File f= new File(dir+"/anno/refGene_hg19.bed");String org= "refGene_hg19";
File od= new File(dir+"/anno/bed/"+org);
BedReaderParam par= new BedReaderParam();
par.ifDirectional=true;
GenomicRegionsBuilder gb= new BedReader(f, par).getGenomicRegionsBuilder();
GenerateGenic gg= new GenerateGenic(gb);
gg.writeToDirectory(od, org);
}
}