很多时候,我们需要对取出的SNV进行注释,这个时候可能会在R上进行注释,通常注释文件都含有Chr(染色体)、Start(开始位点)、End(结束位点)、Description(描述),而我们的SNV文件通常是拥有Position(位置),因此我们可以先定位Chr,再用Postion去定位到Start和End之间,找到相对应的Description。为了加快速度,可以使用二分查找法。
1 fregion <- function(df, value){ 2 #df:data.frame, V1 and V2 should be Start and End value: Postition used to find region return:df row number where position locates ,if no region return -1 3 low=1 4 high=nrow(df) 5 mid=high %/% 2 6 if (df[low,1] <= value & value <= df[low,2]) low 7 else if (df[high,1] <= value & value <= df[high,2]) high 8 else{ 9 while (value > df[mid,2] || value < df[mid,1]){ 10 if (value > df[mid,2]){ 11 low = mid+1 12 } else if (value < df[mid,1]) { 13 high = mid - 1 14 } 15 if(high<low){ 16 mid=-1;break 17 } 18 mid=(low+high)%/%2 19 } 20 mid 21 } 22 }
时间: 2024-10-17 17:37:00