Package data.human.inhouse.region

Source Code of data.human.inhouse.region.GenerateGenic

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

package data.human.inhouse.region;

import fork.lib.base.file.FileName;
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.util.ArrayList;

/**
*
* @author man-mqbpjmg4
*/
public class GenerateGenic {
   


protected GenomicRegionsBuilder gb;
   
   
    public GenerateGenic(GenomicRegionsBuilder gb){
        this.gb=gb;
        init();
    }
   
   
   
   
protected void init(){}


public static ArrayList<File> getFiles(){
    File dir= Dirs.getFile("dir");
    File d= new File(dir+"/anno//bed/hg19/refGene_hg19/genic");
    File[] fs= d.listFiles();
    ArrayList<File> ret= new ArrayList<>();
    for( int i=0; i<fs.length; i++ ){
        File f= fs[i];
        if(FileName.getExt(f).equals("bed")){
            ret.add(f);
        }
    }
    return ret;
}
   

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(500, 0).writeToFileBed(new File(od+"/"+org+"_gene_five_500.0.bed"));
    gm.getFivePrimeEnds(0, 500).writeToFileBed(new File(od+"/"+org+"_gene_five_0.500.bed"));
    gm.getFivePrimeEnds(500, 500).writeToFileBed(new File(od+"/"+org+"_gene_five_500.500.bed"));
    new GenomicRegionsModifier(gm.getGenicRegions(1000, 1000)).lengthGreaterThan(100).writeToFileBed(new File(od+"/"+org+"_gene_cds_1000.1000.bed"));
    gm.getThreePrimeEnds(500, 0).writeToFileBed(new File(od+"/"+org+"_gene_three_500.0.bed"));
    gm.getThreePrimeEnds(0, 500).writeToFileBed(new File(od+"/"+org+"_gene_three_0.500.bed"));
    gm.getThreePrimeEnds(500, 500).writeToFileBed(new File(od+"/"+org+"_gene_three_500.500.bed"));
    gm.getAllIntergenicRegions().writeToFileBed(new File(od+"/"+org+"_intergenic_full.bed"));
    new GenomicRegionsModifier(gm.getAllIntergenicRegions()).getGenicRegions(1000, 1000) .writeToFileBed(new File(od+"/"+org+"_intergenic_1000.bed"));
    new GenomicRegionsModifier(gm.getAllIntergenicRegions()).getGenicRegions(5000, 5000) .writeToFileBed(new File(od+"/"+org+"_intergenic_5000.bed"));
}
   
   
   
   
   
public static void main(String[] args) throws Exception {
    File dir= Dirs.getFile("dir");
   
    //File f= new File(dir+"/anno/refGene_hg19.bed");String org= "hg19"; String tag= "refGene";
    File f= new File(dir+"/anno/ensGene_hg19_exon.bed");String org= "hg19"; String tag= "ensGene";
   
    File od= new File(dir+"/anno/bed/"+org+"/"+tag+"_"+org+"/genic");
   
    BedReaderParam par= new BedReaderParam();
    par.ifDirectional=true;
   
    GenomicRegionsBuilder gb= new BedReader(f, par).getGenomicRegionsBuilder();
   
    GenerateGenic gg= new GenerateGenic(gb);
    gg.writeToDirectory(od, org);
}

   
}
TOP

Related Classes of data.human.inhouse.region.GenerateGenic

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.