/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package data.cerevisiae.test;
import fork.lib.base.file.management.Dirs;
import fork.lib.bio.anno.genomic.BedGraphReader;
import fork.lib.bio.anno.genomic.BedReader;
import fork.lib.bio.anno.genomic.LandscapeBuilder;
import fork.lib.bio.anno.genomic.LandscapeScoring;
import fork.lib.bio.anno.genomic.LandscapeScoringResultEntry;
import fork.lib.bio.anno.genomic.region.GenomicRegion;
import fork.lib.bio.anno.genomic.region.GenomicRegionsBuilder;
import fork.lib.math.algebra.elementary.set.continuous.Region;
import fork.lib.math.algebra.elementary.set.continuous.RegionException;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
/**
*
* @author forksapien
*/
public class T {
public static void main(String[] args) throws Exception{ //debug
double sthr= 0.6;
double zthr= 80;
File dir= Dirs.getFile("dir");
GenomicRegionsBuilder gbl= new BedReader(new File(dir+"/anno/bed/len/len_150_off_0.bed")).getGenomicRegionsBuilder();
ArrayList<LandscapeScoringResultEntry> rsz= new LandscapeScoring(
new BedGraphReader(new File(dir+"/data/chip-seq/norm/norm_wig_chip_742-wt_r1_sacCer1.wig")).getLandscapeBuilder(),
gbl
).getResultEntries();
LandscapeBuilder lbs= new BedGraphReader(new File(dir+"/other_datasets/venters_2009/Swr1_MAT01.bar.wig")).getLandscapeBuilder();
ArrayList<LandscapeScoringResultEntry> rss= new LandscapeScoring(
lbs, gbl
){
protected double[] score(ArrayList<Region> bufs, GenomicRegion gr) throws RegionException{
double max= 0;
for(int i=0; i<bufs.size() ; i++){
double v= (Double) bufs.get(i).attribute();
if(v>max){
max=v;
}
}
return new double[]{max};
}
}.getResultEntries();
HashMap<GenomicRegion, Double> maps= LandscapeScoringResultEntry.toHashMap(rss, 0);
GenomicRegionsBuilder gbout= new GenomicRegionsBuilder();
for(int i=0; i<rsz.size() ; i++){
LandscapeScoringResultEntry rz= rsz.get(i);
double vz= rz.scores[0], vs= maps.get(rz.gr);
if(vz>zthr && vs<sthr){
System.out.println(rz.gr.toUCSCFormat()+" "+ vz+" "+ vs);
gbout.add(rz.gr);
}
}
gbout.join(0);
gbout.writeToFileBed(new File("out/swr1_z.bed"));
}
}