Beispiel #1
0
 def get_interval(
         self,
         interval,
         return_ids=False):  #Return all genes that intersect interval
     #Also counts partial intersections
     return intersect_with_interval(self.chr_data,
                                    interval,
                                    return_ids=return_ids)
Beispiel #2
0
def compare_intervalfuncs(tree, df, df2, df3):
    data1 = {"chr1":df}
    data2 = {"chr1":df2}
    data3 = {"chr1":df3}

    count_match_v1 = 0
    count_match_v2 = 0
    count_match_v3 = 0
    count_match_v4 = 0
    N_tests = 100
    for i in range(0,N_tests):
        start = random.randint(0,maxPos)
        l = random.randint(minLen,maxLen*5)
        # start = 2200
        # l = 2550 - 2200
        interval = Interval("chr1",start,start+l)
        res_v1 = intersect_with_interval(data1,interval)
        res_v2 = intersect_with_interval_v2(data2, interval)
        if len(res_v2) > 0:
            ids = np.unique(res_v2.ids.values)
            res_v2 = df.loc[ids]
            #print (res_v2)
            #break
        res_v3 = intersect_with_interval_v3(data1,interval)
        res_v4 = intersect_with_interval_v4(data3,interval)
        res_intTree = np.array([ q.data for q in tree[start:start+l+1] ])
        match_v1 = compare_results(res_v1,res_intTree)
        match_v2 = compare_results(res_v2,res_intTree)
        match_v3 = compare_results(res_v3,res_intTree)
        match_v4 = compare_results(res_v4,res_intTree)
        count_match_v1 += match_v1
        count_match_v2 += match_v2
        count_match_v3 += match_v3
        count_match_v4 += match_v4
        if not match_v3:
            print("---------------")
            print (interval)
            print (res_v3)
            print (res_intTree)
    print(count_match_v1, " of ", N_tests)
    print(count_match_v2, " of ", N_tests)
    print(count_match_v3, " of ", N_tests)
    print(count_match_v4, " of ", N_tests)