我有一个数据框,其中包含我选择的外显子坐标(dataframe =我的外显子)和一个gtf数据帧(dataframe = gtf)。我试图首先从gft中找到我的外显子,然后一旦发现尝试从gft中提取前一个外显子作为输出。我在下面给出了一个例子。
start end exon_num width gene geneid_exon_num_start_end
61178981 61179171 2 191 AHSA2 AHSA2 -2-61178981-61179171
243613671 243613739 7 69 AKT3 AKT3 -7-243613671-243613739
36952886 36953296 3 411 AATF AATF -3-36952886-36953296
start end exon_num width gene geneid_exon_num_start_end
61177472 61177618 1 147 AHSA2 AHSA2 -1-61177472-61177618
61178668 61179171 1 504 AHSA2 AHSA2 -1-61178668-61179171
61185526 61185618 1 93 AHSA2 AHSA2 -1-61185526-61185618
61178981 61179171 2 191 AHSA2 AHSA2 -2-61178981-61179171
36950214 36950405 2 192 AATF AATF -2-36950214-36950405
37056601 37056858 2 258 AATF AATF -2-37056601-37056858
36952886 36953296 3 411 AATF AATF -3-36952886-36953296
19958014 19958571 4 558 AATF AATF -4-19958014-19958571
start end exon_num width gene geneid_exon_num_start_end
61177472 61177618 1 147 AHSA2 AHSA2 -1-61177472-61177618
36950214 36950405 2 192 AATF AATF -2-36950214-36950405
我正在使用它来从gtf中找到我的外显子,一旦找到上面的行就可以得到上一个外显子。
previous_exon=gft[which(gtf$geneid_exon_num_start_end %in% myexons$geneid_exon_num_start_end)+c(-1),]
问题是,我给出了(即上面只有一行)。
start end exon_num width gene geneid_exon_num_start_end
61185526 61185618 1 93 AHSA2 AHSA2 -1-61185526-61185618
37056601 37056858 2 258 AATF AATF -2-37056601-37056858
我不想要这个。如果你看到有多个先前的外显子有不同的坐标,所以我想要一个行,其中前一个外显子的末端坐标比我的外显子的开始更小(参见所需的输出)。我有一个巨大的数据框架,所以不能一个接一个,所以需要帮助来保持这个轨道并获得输出。