Как прочитать файл (не .csv-файл) в S3 в rstudio и AWS

#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. Спасибо. Я попытаюсь найти функцию.