#r #amazon-web-services #amazon-s3 #genome
#r #amazon-веб-сервисы #amazon-s3 #геном
Вопрос:
Размер файла составляет около 45 ГБ и заканчивается на «.gds» (файлы структуры геномных данных (GDS)). Как прочитать его в rstudio и aws, чтобы я мог запускать статистический анализ в облаке rstudio?
Я пытался:
library(aws.s3)
gdsfile<-get_object("s3://bucketname.s3.amazonaws.com/example.gds", bucket = "bucketname")
Это не сработало так, как я хотел.
Я хотел:
Object of class "SeqVarGDSClass"
File: D:Program FilesRR-4.0.2librarySAIGEgdsextdatagrm1k_10k_snp.gds (694.2K)
[ ] *
|-- description [ ] *
|-- sample.id { Str8 1000 LZMA_ra(12.6%), 625B } *
|-- variant.id { Int32 10000 LZMA_ra(9.87%), 3.9K } *
|-- position { Int32 10000 LZMA_ra(9.87%), 3.9K } *
|-- chromosome { Str8 10000 LZMA_ra(0.71%), 149B } *
|-- allele { Str8 10000 LZMA_ra(1.03%), 421B } *
|-- genotype [ ] *
| |-- data { Bit2 2x1000x10000 LZMA_ra(13.8%), 675.5K } *
| |-- extra.index { Int32 3x0 LZMA_ra, 18B } *
| -- extra { Int16 0 LZMA_ra, 18B }
|-- phase [ ]
| |-- data { Bit1 1000x10000 LZMA_ra(0.03%), 333B } *
| |-- extra.index { Int32 3x0 LZMA_ra, 18B } *
| -- extra { Bit1 0 LZMA_ra, 18B }
|-- annotation [ ]
| |-- id { Str8 10000 LZMA_ra(5.47%), 3.7K } *
| |-- qual { Float32 10000 LZMA_ra(0.38%), 161B } *
| |-- filter { Int32,factor 10000 LZMA_ra(0.38%), 161B } *
| |-- info [ ]
| -- format [ ]
-- sample.annotation [ ]
|-- sex { Str8 1000 LZMA_ra(9.00%), 97B } *
-- phenotype { Int32 1000 LZMA_ra(2.75%), 117B } *
Итак, что я должен сделать, чтобы извлечь файлы (в любом формате) из s3 и прочитать их в rstudio?
Я провел некоторое исследование и нашел только несколько примеров для файлов .csv. Однако мой файл, по-видимому, не является файлом .csv.
Заранее спасибо.
Редактировать: для первого,
> gdsfile<-get_object("s3://bucketname.s3.amazonaws.com/grm1k_10k_snp.gds", bucket = "bucketname")
> seqOpen(gdsfile)
Error in seqOpen(gdsfile) : is.character(gds.fn) is not TRUE
> gdsfile
[1] 43 4f 52 45 41 52 52 41 59 78 30 41 00 01 01 00 00 00
[19] 0b 02 00 00 00 80 00 00 00 00 00 00 01 00 00 00 f5 01
[37] 00 00 00 00 f5 01 00 00 00 00 04 00 08 c6 43 75 4e f6
[55] 01 0a 00 00 00 01 c7 43 75 17 e5 7d 9a 01 00 00 00 00
[73] 2a 00 00 00 00 00 03 00 09 02 f5 00 02 00 00 00 09 44
[91] 74 31 12 02 00 00 00 15 44 c6 60 10 0b 64 65 73 63 72
[109] 69 70 74 69 6f 6e 28 00 00 00 00 00 03 00 09 02 f5 00
[127] 03 00 00 00 09 44 74 31 12 00 00 00 00 15 44 c6 60 10
[145] 09 73 61 6d 70 6c 65 2e 69 64 29 00 00 00 00 00 03 00
Для второго,
library(SAIGEgds)
fn <- system.file("extdata", "grm1k_10k_snp.gds", package="SAIGEgds")
gdsfile <- seqOpen(fn)
Тогда вы бы увидели то, что я хотел.
Комментарии:
1. Не могли бы вы подробнее рассказать о том, что не сработало с первой командой? А также о том, как вы переходите ко второму? В примере показано, что файл, прочитанный с вашего диска, является экземпляром некоторого класса / объекта, но вы не показываете, как вы его прочитали / инициализировали.
2. Основываясь на новой информации, вывод
get_object
выглядит как байты, хотяseqOpen
, похоже, требуется имя файла. Вам либо нужно найти функциюSAIGEgds
, которая принимает байты, либо вы конвертируете / сохраняете эти байты во что-то, что она использует.3. Спасибо. Я попытаюсь найти функцию.