В кои-то веки решил попрограммировать:) После 25 летнего перерыва.
Практическая задача.
Имеется BED файл с данными о прочтении конкретных позиций (сайтов) Y-хромосомы. Данные, как и положено, заданы попарными значениями начала и конца интервала. Интервалов много:)
Также имеется файл в формате VCF. Точнее - список отличных от референса позиций, вытащенный из него.
Необходимо определить значения, попадающие в определенный BED файлов составной интервал.
Конечная цель, определение позиций, соответствующих стандартному покрытию типа combBED.
Вот что получилось на языке R:
bed.f <- function(bed1, p1)
{
sink ("bedlog.txt")
for (i in seq(along=bed1$V2))
{
for (j in seq(along=p1))
{
cond1<-bed1$V1[i]<=p1[j]
cond2<-bed1$V2[i]>=p1[j]
cond <- cond1 & cond2
if (cond == 'TRUE') {print(p1[j])} else {}
}
}
sink()
}
В параметрах функции задается bed (с двумя колонками данных) и числовым вектором (набором позиций из VCF).