/*
* 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.statham2014mods.processed;
import fork.lib.base.collection.Table;
import fork.lib.base.file.FileName;
import fork.lib.base.file.io.txt.ReadTable;
import fork.lib.base.file.management.Dirs;
import fork.lib.bio.anno.genomic.BedAttribute;
import fork.lib.bio.anno.genomic.BedExporter;
import fork.lib.bio.anno.genomic.SplicedBedReader;
import fork.lib.bio.anno.genomic.region.DirectionalGenomicRegion;
import fork.lib.bio.anno.genomic.region.GenomicRegionsBuilder;
import fork.lib.bio.anno.genomic.region.SplicedRegionsLocator;
import java.io.File;
import java.util.ArrayList;
/**
*
* @author man-mqbpjmg4
*/
public class BedToLocate {
public static void main(String[] args) throws Exception { //debug
File dir= Dirs.getFile("dir");
File d= new File(dir+"/other_datasets/statham2014_mcf7-mods/");
File f= new File(d+"/GSM1383850_MCF7_NDR.bed");
File anno= new File(dir+"/anno/ensGene_hg19_exon.bed");
GenomicRegionsBuilder gb= new GenomicRegionsBuilder();
ReadTable rt= new ReadTable(f);
Table<String> tab= rt.getTable();
for( int i=0; i<tab.getRowNumber(); i++ ){
ArrayList<String> r= tab.getRow(i);
DirectionalGenomicRegion gr= new DirectionalGenomicRegion(
r.get(0),
'+',
Integer.parseInt(r.get(1)),
Integer.parseInt(r.get(2))
);
gr.setValue(Double.parseDouble(r.get(3)));
gb.add(gr);
}
gb.sortAll();
SplicedRegionsLocator sl= new SplicedRegionsLocator(gb, new SplicedBedReader(anno));
File od= new File(d+"/locate");
File out= new File(d+"/"+FileName.getBaseName(f)+"_locate.bed");
sl.writeToFile(out);
sl.writeToDir(od, FileName.getBaseName(f));
}
}