Мне было интересно, как объединить файлы exon/DNA fasta с помощью Python или R.
Примеры файлов:
До сих пор мне очень нравилось использовать пакет R ape для метода cbind исключительно из-за атрибута fill.with.gaps=TRUE
. Мне действительно нужны пробелы, когда у вида отсутствует экзон.
Мой код:
ex1 <- read.dna("exon1.txt", format="fasta")
ex2 <- read.dna("exon2.txt", format="fasta")
output <- cbind(ex1, ex2, fill.with.gaps=TRUE)
write.dna(output, "Output.txt", format="fasta")
Пример:
exon1.txt
>sp1
AAAA
>sp2
CCCC
exon2.txt
>sp1
AGG-G
>sp2
CTGAT
>sp3
CTTTT
Выходной файл:
>sp1
AAAAAGG-G
>sp2
CCCCCTGAT
>sp3
----CTTTT
До сих пор у меня возникли проблемы с попыткой применить эту технику, когда у меня есть несколько файлов exon (пытаясь найти цикл для открытия и выполнения метода cbind для всех файлов, заканчивающихся на .fa в каталоге), и иногда не все файлы имеют экзоны все одинаковые по длине, поэтому DNAbin перестает работать.
Пока у меня есть:
file_list <- list.files(pattern=".fa")
myFunc <- function(x) {
for (file in file_list) {
x <- read.dna(file, format="fasta")
out <- cbind(x, fill.with.gaps=TRUE)
write.dna(out, "Output.txt", format="fasta")
}
}
Однако, когда я запускаю это и проверяю свой выходной текстовый файл, он пропускает много экзонов, и я думаю, что это потому, что не все файлы имеют одинаковую длину экзона... или мой скрипт где-то дает сбой, и я не могу это понять: (
Любые идеи? Я также могу попробовать Python.