I have a list of sequences
class(myseq)
[1] "list"
Inside of each element of the list are stores multiples elements withe the format of the Biostrings package. In this example the list myseq contain 6 samples
names(myseq)
[1] "Sample-01" "Sample-02" "Sample-03" "Sample-04" "Sample-05" "Sample-06"
and each sample have a format of the Biostrings package
class(myseq[["Sample-01"]])
[1] "AAStringSet"
attr(,"package")
[1] "Biostrings"
myseqs[["Sample-01"]]
AAStringSet object of length 143:
width seq names
[1] 453 MISIIKRFLGKRQPRQSAEHHYEFLPAHLALAQKPPSPFARLTAITLSIGVLAVLLWAY...VFPAQVQLNKNNIVIDGQTVELTPGMSVVAEIKTDKRRVIDYLLSPIREYQAEALRER IMEHDJCA_00190
[2] 701 MSNNEGLTLICIHFYLSIISGNREQFKENANLTKTNNYKEELKKIQKANKVRITTKHSQ...VITIAHRLSTVRDCNRIIVLHQGAIVEQGSHQQLLTHGKQYKQLWQLQQELKQEETTA IMEHDJCA_00191
... ... ...
[142] 275 MTAITISDQEYRDFSRFLESQCGIVLGDSKQYLVRSRLSPLVTKFKLASLSDLLRDVVT...RNVLIYFSPDMKSKVLNQMANSLNPGGYLLLGASESLTGLTDRFEMVRCNPGIIYKLK IMEHDJCA_03929
[143] 172 MPLLDSFTVDHTRMHAPAVRVAKTMQTPKGDTITVFDLRFTAPNKDILSEKGIHTLEHL...ESQNKIPELNEYQCGTAAMHSLDEAKQIAQNILAVGISVNRNDELALPEAMLKELKVD IMEHDJCA_04048
so I want to extract an specif gene of each sample using a data.frame
head(df)
qseqid samples gene
1 IMEHDJCA_02683 Sample-01 pilB
2 DIBHEKPI_01114 Sample-02 pilB
3 LLMDBGDK_00899 Sample-03 pilB
4 EBMGLGMO_01529 Sample-04 pilB
5 ILCJGNBA_00973 Sample-05 pilB
6 JAGNDBFC_01143 Sample-06 pilB
Extract the genes of each Sample using the qseqid column with a for loop
genes <- c()
for(i in 1:nrow(df)){
sample <- df[i,2]
qseq_id <- df[i,1]
seq <- myseqs[[sample]]
genes[[i]] <- Biostrings::AAStringSet(seq[qseq_id])
}
my problem is that the gene variable is a list
[[1]]
AAStringSet object of length 1:
width seq names
[1] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFDEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL IMEHDJCA_02683
[[2]]
AAStringSet object of length 1:
width seq names
[1] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFDEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL DIBHEKPI_01114
[[3]]
AAStringSet object of length 1:
width seq names
[1] 561 MTNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEQLSAIFGLPC...YEVMPFDEQLAEAIVKGASVQSLEMLAQQKGMMTLKDSGLEKLKQGITSLEELQRVLYL LLMDBGDK_00899
[[4]]
AAStringSet object of length 1:
width seq names
[1] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFNEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL EBMGLGMO_01529
[[5]]
AAStringSet object of length 1:
width seq names
[1] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFNEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL ILCJGNBA_00973
[[6]]
AAStringSet object of length 1:
width seq names
[1] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFNEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL JAGNDBFC_01143
And I want just a single Biostrings object that contain the genes of the 6 samples, something like :
genes
AAStringSet object of length 6:
width seq names
[1] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFDEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL IMEHDJCA_02683
[2] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFDEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL DIBHEKPI_01114
[3] 561 MTNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEQLSAIFGLPC...YEVMPFDEQLAEAIVKGASVQSLEMLAQQKGMMTLKDSGLEKLKQGITSLEELQRVLYL LLMDBGDK_00899
[4] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFNEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL EBMGLGMO_01529
[5] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFNEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL ILCJGNBA_00973
[6] 562 MQSNLATILRQANQLSLTQEQACRETIQASGVTAPEALLQLGFFQPDELTEKLSAIFGLP...YEVMPFNEQLAEAIVKGASVQSLEMLARQKGMMTLKDSGLEKLKQGITSLEELQRVLYL JAGNDBFC_01143
I have tried to store the gene variable without [[i]]:
genes <- Biostrings::AAStringSet(seq[qseq_id])
but it only keep the last sequence.
If I do it manually, will be like:
S01 <- Biostrings::AAStringSet(myseqs[["Sample-01"]]["IMEHDJCA_02683"])
S02 <- Biostrings::AAStringSet(myseqs[["Sample-02"]]["DIBHEKPI_01114"])
and so on for Sample-03 to Sample-n .... and then generate the Biostrings object
genes <- c(S01, S02, S03, S04, S05, S06)
Does any body know how to do it ???
Thanks So Much !!!