АвторТема: BED in R  (Прочитано 1159 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ШадАвтор темы

  • Главный модератор
  • *****
  • Сообщений: 6335
  • Страна: ru
  • Рейтинг +1333/-4
  • Ex oriente lux
  • Y-ДНК: Q-Y2750
  • мтДНК: J1c2z
BED in R
« : 06 Декабрь 2015, 22:30:22 »
В кои-то веки решил попрограммировать:) После 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).

 

© 2007 Молекулярная Генеалогия (МолГен)

Внимание! Все сообщения отражают только мнения их авторов.
Все права на материалы принадлежат их авторам (владельцам) и сетевым изданиям, с которых они взяты.