
แ แแแแ แฌแแแแแแแฎแแ แแก แกแขแแขแแ: แแแแแจแก แแแฎแแ, แ แแ แขแแฅแกแขแ แแกแแแ แแ แซแแแ แแ แฅแแแขแฃแ แแ. แแ แแแก แแแแแแแแก แแแแแแ, แแ แแแฌแงแแ แแแแแแฃแ แแแแก "แ แ แแแกแฌแแแแ" แจแแกแแแแแแ, แ แแแแแแช แแฏแแแแแก แแแแแก แแ แกแก แแ แ แแ แแ แฌแแแแแแแแแแจแ.
"แฃแแ แแแแ แแแฉแแแแ แแแแแกแแแแแ!" แแฃ แฃแแ แแแแ แแกแฃแ แ แแแฎแแ, แกแแแแแ แแแแแแ, แแแแแแแ แแแแจแ โแแแฎแแ แฃแคแ แ แแแแแแแแแแแแแโ, แแแแ แแ แแคแแฅแ แแ, แ แแ แฌแแ แฃแแแขแแแแแแแก แจแแกแแฎแแ แฌแแแแแฎแแ แฃแคแ แ แกแแแแขแแ แแกแ แแ แกแแกแแ แแแแแแ.
แแ แแฎแแแฎแแ แแแแแแแแ แแแแแงแแแแแแแ แแ แแชแแกแ แแแแ แแแชแฃแแแแแก แแแแแแฃแแ แแแ-แแก แแแแแแแแแแ แแแแก (แขแแฅแแแแฃแ แแ SNP แฉแแแ) แแแแฃแจแแแแแแกแแแแก. แกแแญแแ แ แแงแ แแแแแชแแแแ แกแฌแ แแคแแ แแแแแแแแ แแแชแแแฃแแ แแแแแขแแแฃแ แ แแแแแแ แแแแแก แจแแกแแฎแแ (แ.แฌ. SNP) แจแแแแแแแ แแแแแแแ แแแแกแแแแก แแ แกแฎแแ แแแแชแแแแแแกแแแแก. R-แแกแ แแ AWK-แแก แแแแแงแแแแแแ แจแแแซแแแ แแแแแชแแแแ แแฃแแแแ แแแ แแแแ แแแฌแแแแแ แแ แแ แแแแแแแแ, แ แแช แแแแจแแแแแแแแแ แแฉแฅแแ แแแก แจแแแแแฎแแแก แแแแฃแจแแแแแแก. แแก แฉแแแแแแก แแแแแแ แแ แแงแ แแ แแแแ แแแแแแ แแแแก แแแแแฎแแแแ. แแก แกแขแแขแแ แแแแแฎแแแ แแแแ แแแแแแแ แแแชแแแแ แฉแแแ แแแแแแ แแ แจแแชแแแแ แแ แแแฉแแแแแ, แ แ แแแแแแแแแ แ.
แแแ แแแแ, แ แแแแแแแแ แจแแกแแแแแ แแฎแกแแ.
แแแแแชแแแแ
แฉแแแแแ แฃแแแแแ แกแแขแแขแแก แแแแแขแแแฃแ แ แแแคแแ แแแชแแแก แแแแฃแจแแแแแแก แชแแแขแ แแ แแแแแแฌแแแ แแแแแชแแแแแ 25 แขแ TSV-แแก แกแแฎแแ. แแ แแแแแฆแ แแกแแแ แแแงแแคแแแ 5 แแแแแขแแ, แจแแแฃแแจแฃแแ Gzip-แแ, แ แแแแแแแแแ แแแแแแฃแแ แจแแแชแแแแ แแแแฎแแแแแแ 240 แแแฎ แแแแแแแแขแแแ แคแแแแก. แแแแแแฃแแ แแฌแแ แแแ แจแแแชแแแแ แแแแแชแแแแแก แแ แแ SNP-แแกแแแแก แแ แแ แแแแแแแแแกแแแ. แกแแแ แแ แฏแแแจแ แแแแแชแแแฃแแแ ~2,5 แแแแแแแ SNP-แแก แแ ~60 แแแแกแ แแแแแแแแแก แจแแกแแฎแแ แแแแแชแแแแแ. SNP แแแคแแ แแแชแแแก แแแ แแ, แคแแแแแแ แจแแแชแแแแ แฃแแแ แแ แกแแแขแก แ แแชแฎแแแแแ, แ แแแแแแแช แแกแแฎแแแก แกแฎแแแแแกแฎแแ แแแฎแแกแแแแแแแแแก, แ แแแแ แแชแแ แฌแแแแแฎแแแก แแแขแแแกแแแแแ, แกแฎแแแแแกแฎแแ แแแแแแแแก แกแแฎแจแแ แ แแ แ.แจ. แกแแแ แแ แฏแแแจแ แแงแ แแแแฎแแแแแแ 30 แกแแแขแ แฃแแแแแแฃแ แ แแแแจแแแแแแแแแแ.
แแแแแแ
แ แแแแ แช แแแแแชแแแแ แแแ แแแแก แแแแแกแแแแ แแ แแแฅแขแจแ, แงแแแแแแ แแแแจแแแแแแแแแ แแงแ แแแแก แแแแแแแ, แแฃ แ แแแแ แแฅแแแแแแ แแแแแงแแแแแฃแแ แแแแแชแแแแแ. แฒแ แจแแแแฎแแแแแจแ แฉแแแ แซแแ แแแแแแ แจแแแแ แฉแแแ แแแแแแแแกแ แแ แกแแแฃแจแแ แแ แแชแแกแแแก SNP-แแกแแแแก SNP-แแ แแแงแ แแแแแแ. แแแฃ, แฉแแแ แแแแแญแแ แแแแ แแฎแแแแ แแแแแชแแแแแ แแ แ SNP-แแ แแ แแแ แแฃแแแ. แแ แฃแแแ แแแกแฌแแแแ, แ แแแแ แแฆแแแแแแแ แงแแแแ แฉแแแแฌแแ แ, แ แแแแแแช แแแแแแจแแ แแแฃแแแ 2,5 แแแแแแแ SNP-แแแ แแ แ-แแ แแแแ, แ แแช แจแแแซแแแแ แแแ แขแแแแ, แกแฌแ แแคแแ แแ แแแคแแ.
แ แแแแ แแ แฃแแแ แแแแแแแแแ แแก
แจแแกแแคแแ แแกแ แแแแจแแก แชแแขแแ แแแ:
แแ แแแแกแฏแแ แแ แแแแแแ แชแฎแแ, แฃแแ แแแแ แแฆแแแแแฉแแแ แแแแกแ แแแ, แ แแแ แแแแแแแ แแแแชแแแแ แแแแแชแแแแ แแ แแแฃแแแก แแแแแแแแแแแ แจแแแแแฎแแแกแแแแก แแแกแแฎแแ แฎแแแแแ แคแแ แแแขแจแ.
แแแ แแแแ แกแชแแแแ
แ แ แแแกแฌแแแแ: แแ แแ แกแแแแแก แแแคแ แแแ 25 แขแ แแ แแแ แแฃแแแ แแแกแแแแแแแแแแแแ.
แแแแแแ แแแแขแแก แฃแแแแแ แกแแขแแขแจแ โแแแแ แแแแแชแแแแ แแแแฃแจแแแแแแก แแแคแแ แแแแแฃแแ แแแแแแแแโ แแฃแ แกแแก แแแแแแก แจแแแแแ, แแแ แฌแแฃแแแแฃแแ แแแงแแแ, แ แแ แแก แฎแ แแแ แฉแแแแแจแ แแงแ. แกแแแแ แแฃแแแ, แแ แแ แแ แแ แ แกแแแแ แแแกแญแแ แแแแ Hive แกแแ แแแ แแก แแแงแแแแแแก, แ แแแ แแแแแ แแก แงแแแแ แแแแแชแแแ แแ แแแแฎแกแแแแก แจแแแแแ. แแแแแแแแ แฉแแแแ แแแแแชแแแแแ แแแแฎแแแ AWS S3-แจแ, แแ แแแแแแแงแแแ แกแแ แแแกแ , แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแงแแแแ Hive SQL แแแแฎแแแแแแ S3 แแแแแชแแแแแแ. แแฅแแแ แแ แแญแแ แแแแแ Hive แแแแกแขแแ แแก แแแงแแแแแ/แแแแฆแแแแ แแ แแกแแแ แแฎแแแ แแฎแแแแ แแ แแแแแชแแแแแก, แ แแแแแแกแแช แแซแแแ.
แแแก แจแแแแแ แ แแช แแแแแแก แแแฉแแแแ แฉแแแ แแแแแชแแแแแ แแ แแแกแ แคแแ แแแขแ, แฉแแแแขแแ แ แ แแแแแแแแ แขแแกแขแ แแกแแแ แแแแฎแแแแแแแ:
select * from intensityData limit 10;
แแ แกแฌแ แแคแแ แแแแฆแ แแแ แแแ แกแขแ แฃแฅแขแฃแ แแ แแแฃแแ แจแแแแแแแ. แแแแแแ.
แกแแแแ แฉแแแ แแชแแแแแแแแ แแแแแชแแแแแแก แแแแแงแแแแแแจแ แแฃแจแแแแแจแ...
แแ แแแฎแแแแก แแแแฆแ แงแแแแ SNP แแแคแแ แแแชแแ แแแแแแแก แจแแกแแแแฌแแแแแแ. แแ แฉแแแแขแแ แ แจแแแแแฎแแ:
select * from intensityData
where snp = 'rs123456';
...แแ แแแแฌแงแ แแแแแแ. แ แแ แฌแฃแแแก แจแแแแแ แแ 4 แขแ-แแ แแแขแ แแแแฎแแแแแแ แแแแแชแแแแแแก แจแแแแแ แแแแแฆแ แจแแแแแ. Athena แแแแแฆแแฃแ แแแก แแแแแแแ แแแแแชแแแแแแก แแแชแฃแแแแแก แแแฎแแแแแ, $5 แขแแ แแแแแขแแ. แแกแ แ แแ, แแก แแ แแ แแแแฎแแแแ แฆแแ แแ $20 แแ แ แแ แฌแฃแแ แแแแแแ. แแแแแแแก แงแแแแ แแแแแชแแแแ แแแกแแจแแแแแ แแแแแแฌแแ 38 แฌแแแ แแแแแแ แแ 50 แแแแแแแ แแแแแ แแก แแแแแฎแแ, แชแฎแแแแ, แแก แฉแแแแแแแก แแ แแงแ แจแแกแแคแแ แแกแ.
แกแแญแแ แ แแงแ แแแ แแแขแแก แแแแแงแแแแแ...
แ แ แแแกแฌแแแแ: แคแ แแฎแแแแ แแงแแแแ แแฅแแแแ แแแ แแแขแแก แคแแแแแแแก แแแแแกแแแ แแ แแแ แแ แแแแแแแชแแแกแแแ.
แแ แแแ แแแแแ แแชแแแ แกแแขแฃแแชแแแก แแแแแกแฌแแ แแแ แงแแแแ TSV-แแก แแแแแแ แขแแชแแแ . แแกแแแ แแแกแแฎแแ แฎแแแแแแ แแแแแชแแแแ แแแ แแแแ แแแแแแแ แแฃแจแแแแแกแแแแก, แ แแแแแ แแแแจแ แแ แกแแแฃแแ แแแคแแ แแแชแแ แแแแฎแแแ แกแแแขแแก แกแแฎแแ: แแแแแแฃแแ แกแแแขแ แแแแก แแแแแก แแแฎแกแแแ แแแแจแ/แแแกแแแก แกแแแแแแขแจแ, แขแแฅแกแขแฃแ แ แคแแแแแแแกแแแ แแแแกแฎแแแแแแแ, แ แแแแแแจแแช แ แแแแแ แจแแแชแแแก แแแแแแฃแแ แกแแแขแแก แแแแแแแขแแแก. แแ แแฃ แ แแแแแก แแแแแ แแญแแ แแแแแ, แฃแแ แแแแ แฌแแแแแแฎแแ แกแแญแแ แ แกแแแขแ. แแแ แแ แแแแกแ, แแแแแแฃแแ แคแแแแ แแแแฎแแแก แแแแจแแแแแแแแแแก แแแแแแแแแก แกแแแขแจแ, แแกแ แ แแ, แแฃ แแแแจแแแแแแแ, แ แแแแแกแแช แแซแแแ, แแ แแ แแก แกแแแขแแก แแแแแแแแแจแ, Spark แแ แแแแแ แแแแก แแ แแก แแแแแ แคแแแแแก แกแแแแแ แแแแแ.
แแ แจแแแแกแ แฃแแ แแแ แขแแแ แแแแแแแแ แฉแแแแ TSV-แแแแก แแแ แแแขแแ แแแแแฅแชแแแ แแ แแฎแแแ แคแแแแแแ Athena-แจแ แฉแแจแแแแ. แแแแฎแแแแแแ 5 แกแแแแ แแแกแญแแ แแ. แแแแ แแ แ แแแแกแแช แแ แจแแแแกแ แฃแแ แแแแฎแแแแ, แแแแฎแแแแแแ แแแแแ แแ แ แแ แชแแขแ แแแแแแแ แคแฃแแ แแแแญแแ แแ แแแกแ แฃแแแแแก. แคแแฅแขแแ, แ แแ Spark-แแ, แ แแแแแแช แชแแแแแแแ แแแแชแแแแก แแแขแแแแแแชแแแก, แฃแแ แแแแ แแแแจแแแ แแ แแ TSV แแแญแแ แ แแ แแแแแแแกแ แแแ แแแขแแก แกแแแฃแแแ แแแญแแ แจแ. แแ แแแแก แแแแ, แ แแ แแแแแแฃแแ แแแฌแแแ แกแแแแแ แแกแแ แแแแ แแงแ, แ แแ แจแแแชแแแแแก แแ แแแแแ แแแแแแแแแก แแแแแแ แฉแแแแฌแแ แก, แแแแแแฃแแ แคแแแแ แจแแแชแแแแ แงแแแแ SNP-แก, แแแแขแแ Spark-แก แฃแแแ แแแแฎแกแแ แงแแแแ แคแแแแ แกแแญแแ แ แแแคแแ แแแชแแแก แแแแแกแแขแแแแ.
แกแแแแขแแ แแกแแ, แ แแ แแแ แแแขแแก แแแแฃแแแกแฎแแแแ (แแ แ แแแแแแแแแแฃแแ) แจแแแฃแแจแแแก แขแแแ, snappy, แแ แแ แแก แแแงแแคแแแ. แแฅแแแแ แแแแแแแแแแ แ, แแแแแแฃแแ แจแแแกแ แฃแแแแแแ แฉแแ แแแแแแ 3,5 GB แกแ แฃแแ แแแแแชแแแแ แแแแแขแแก แแแแฎแกแแแกแ แแ แฉแแแแขแแแ แแแแก แแแแชแแแแแ.

แแแแแ แแแแแแแ แแ แแแแแแ
แ แ แแแกแฌแแแแ: แแแฎแแ แแกแฎแแแ แ แแฃแแแ, แแแ แฃแแแขแแก, แแฃ แแแแแชแแแแแ แแแแแฌแแแแแฃแแแ.
แแแแแฉแแแแ, แ แแ แแฎแแ แแแแฎแแแ แแ แแแแแแแก แแ แกแก. แแ แแฎแแแแ แแแแแชแแแแแแก แแแแแแแแ แแญแแ แแแแแแ SNP แกแแแขแแก แแแฎแแแแแ แแ แแ แ แแแแแแแแแแแก แแแฎแแแแแ. แจแแแแแ แ แแแแแแแแ SNP แจแแแแแฎแแแ แชแแแแแฃแ แแแแแชแแแแ แแแแแจแ, แจแแแแแ แแ แแแ แแแขแแก "แญแแแแแแ" แคแฃแแฅแชแแ "แฆแแ แแฎแแแแ แแ แจแแแแฎแแแแแจแ, แแฃ แแแแจแแแแแแแ แแ แแก แแแแแแแแแจแ" แแแแแฉแแแแแ แแแแแ แแแแแกแ แแแแแแแ. แกแแแฌแฃแฎแแ แแ, แแแแกแขแแ แแ แแแแแคแแแขแฃแแ แแแแแแ แแแแแ แแฌแแ แแแแก แแแแแแแแ แ แแฃแแ แแแแชแแแ แแฆแแแฉแแแ.
แแแแแฏแจแ แแแขแแ แแ แแแแแ แแแแแแแก แแแแแแแแแก: โแแฐ, แแ แแแแก แแแแขแแ แแกแแแก แงแแแแ แแ แแแฎแแ แแกแฎแแแแก แแแแแ แแแแแก แแแแแแแแแแ แกแแ แแฃแแโ
แแชแแแแแ แแแแแแแ แกแแแขแ 20 แขแ-แจแ แชแฎแ แแแ: "แ แแขแแ แญแแ แแแแ แแแแก แแแแแแ แแ แ?" แแ แซแแแแก.
- แแแ แกแขแ แแแแ แ (@NicholasStrayer)
AWS-แก แแแแแแแแแ แแ แกแฃแ แก แแแแฎแแก แแแแ แฃแแแแ โแแ แแแ แงแฃแ แแแฆแแแแก แแแฆแแ แกแขแฃแแแแขแโ แแแแแแแก แแแแ. แแแก แจแแแแแ, แ แแช Amazon Glue-แแ แแแแแแแแ แแแแแฅแแชแ, แแก 2 แแฆแ แแฃแจแแแแแ แแ แฉแแแแแแ แแ.
แ แแช แจแแแฎแแแ แแแงแแคแแก?
แ แ แแแกแฌแแแแ: Spark-แจแ แขแแฎแ แแแ แฃแแแ แแงแแก แแแแแแแแกแแแฃแแ.
แจแแแแแ แแแแแฉแแแ แฅแ แแแแกแแแแแจแ แแแแแชแแแแแแก แแแงแแคแแก แแแแ. แแ แแก 23 แแแแแแแ (แแ แแแแแ แ แแแแแแแแ, แแฃ แแแแแแแแแกแฌแแแแแ แแแขแแฅแแแแ แแฃแ แแแ-แก แแ แแแฃแแฃแกแขแแแแ แ แแแแแแแแก).
แแก แกแแจแฃแแแแแแก แแแแชแแแ แแแงแแ แแแแแชแแแแแ แแแขแแ แ แแแฌแแแแแแ. แแฃ แแฅแแแ แแแแแแขแแแ แแฎแแแแ แแ แ แฎแแแก Spark แแฅแกแแแ แขแแก แคแฃแแฅแชแแแก Glue แกแแ แแแขแจแ partition_by = "chr", แแแจแแ แแแแแชแแแแแ แฃแแแ แแแแงแแก แแแแแฃแแแแแ.

แแแแแแ แจแแแแแแ แแ แแแแแ แคแ แแแแแแขแแกแแแ, แ แแแแแกแแช แฅแ แแแแกแแแ แแฌแแแแแ.
แกแแแฌแฃแฎแแ แแ, แแ แแฃแจแแแแแ. แฅแ แแแแกแแแแแก แแฅแแ แกแฎแแแแแกแฎแแ แแแแแแ, แ แแช แแแจแแแแก แแแคแแ แแแชแแแก แกแฎแแแแแกแฎแแ แ แแแแแแแแแก. แแก แแแจแแแแก, แ แแ แแแแแแแแแแ, แ แแแแแแแช แกแแแ แแแ แแแฃแแแแแแ แแฃแจแแแก, แแ แแงแ แแแแแแแแกแแแฃแแ แแ แแแแ แกแ แฃแแแแแแแ, แ แแแแแ แแแแแแ แแ แแแแแซแ แแแ แ แแแกแ แฃแแแ แแ แฃแแแฅแแแแ แแงแ. แแฃแแชแ, แแแแแแแแแแ แจแแกแ แฃแแแ. แแแแ แแ แแ แแ SNP-แแก แแแแฎแแแแแกแแก, แแแกแแแแแแกแแ แแแแแ แแ แแแแแแแแ แแแแแแฌแแแ. แฃแคแ แ แแแ แฅแ แแแแกแแแแแแ SNP-แแแแก แแแแฃแจแแแแแแก แฆแแ แแแฃแแแแ (แแแฃ แกแแแแช แแแแแแ แแแแแชแแแแแแก แแแฆแแแ) แแฎแแแแ 10-แฏแแ แจแแแชแแ แแ. แแแแ แ, แแแแ แแ แแ แ แกแแแแแ แแกแ.
แ แ แแแฎแแแแ, แแฃ แแแก แแแแแ แฃแคแ แ แแแขแแ แ แแแฌแแแแแแ แแแแงแแคแ?
แ แ แแแกแฌแแแแ: แแ แแกแแแแก แกแชแแแแ 2,5 แแแแแแแ แแแแแงแแคแแก แแแแแแแแ แกแแแ แแแ.
แแ แแแแแแฌแงแแแขแ แแแแแแแแแแแแ แงแแแแแคแแ แ แแ แแแแแแแฌแแแ แแแแแแฃแแ SNP. แแก แฃแแ แฃแแแแแงแแคแแ, แ แแ แแแแแงแแคแแแ แแแแแแแ แ แแแแแก แแงแ. แแก แแงแ แชแฃแแ แแแแ. แแแแแแแงแแแ แฌแแแ แแ แแแแแแแขแ แฃแแแแแจแแฃแแ แฎแแแ partition_by = 'snp'. แแแแแแแแ แแแแฌแงแ แแ แแแแฌแงแ แจแแกแ แฃแแแแ. แแ แแ แแฆแแก แจแแแแแ แจแแแแแแฌแแ แแ แแแแแแแฎแ, แ แแ S3-แแ แฏแแ แแแแแ แแ แแคแแ แ แแฌแแ แ แแ แแแแแแแแ แแแแแแแ. แ แแแแ แช แฉแแแก, Glue แฌแแ แแ แจแฃแแแแแฃแ แคแแแแแแก S3-แจแ แแแแแแฃแ แแแแแแแก, แฃแแแ แแ แคแแแแก, แจแแกแแซแแแ, แ แแแแแแแแ แแแแแแแก. แจแแแแแแ, แฉแแแ แจแแชแแแแ แแแแก แแแแแ แแ แแแขแ แแแฏแแ แแ แแ แแแแฌแแแ แฉแแแก แแแแขแแ แก.
แแแงแแคแ + แแแฎแแ แแกแฎแแแ
แ แ แแแกแฌแแแแ: แแแฎแแ แแกแฎแแแ แฏแแ แแแแแ แ แแฃแแแ, แแกแแแ แ แแแแ แช Spark-แแก แขแแฃแแแแแ.
แแแงแแคแแก แฉแแแ แแแแ แแชแแแแแแ แแแแชแแแแ แฅแ แแแแกแแแแแแก แแแงแแคแแก แแ แจแแแแแ แแแแแแฃแแ แแแแแงแแคแแก แแแฎแแ แแกแฎแแแแก. แแแแ แแฃแแแ, แแก แแแแฉแฅแแ แแแก แแแแแแฃแ แจแแแแแฎแแแก, แ แแแแแ แกแแกแฃแ แแแแ SNP แแแแแชแแแแแ แฃแแแ แแงแแก แแแ แแแขแแก แ แแแแแแแแ แแแญแแ แจแ แแแชแแแฃแ แแแแแแแแแจแ. แกแแแฌแฃแฎแแ แแ, แแแแแฌแแแแแฃแแ แแแแแชแแแแแแก แแแฎแแ แแกแฎแแแแช แแ แ แแฃแแ แแแแชแแแ แแฆแแแฉแแแ. แจแแแแแแ, แแ แแแแแแแแ EMR-แแ แแแ แแแแฃแแ แแแแกแขแแ แแกแแแแก แแ แแแแแแแงแแแ แ แแ แซแแแแ แ แแแกแขแแแชแแ (C5.4xl) แแ Sparklyr แฃแคแ แ แแแฅแแแแ แกแแแฃแจแแ แแแแแแแก แจแแกแแฅแแแแแแ...
# Sparklyr snippet to partition by chr and sort w/in partition
# Join the raw data with the snp bins
raw_data
group_by(chr) %>%
arrange(Position) %>%
Spark_write_Parquet(
path = DUMP_LOC,
mode = 'overwrite',
partition_by = c('chr')
)
...แแฃแแชแ แแแแแแแแ แแแแแช แแ แจแแกแ แฃแแแแฃแแ. แแ แแแแแงแแแ แแแกแ แแแแคแแแฃแ แแชแแ แกแฎแแแแแกแฎแแ แแแแ: แแแแแแ แแ แแแฎแกแแแ แแแแก แแแแแฌแแแแแ แแแแแแฃแแ แแแแฎแแแแแก แจแแแกแ แฃแแแแแแกแแแแก, แแแงแแแแแแ แแแแแซแแแก แแแแ แ แแแแแแแแแ แแแฎแกแแแ แแแแ, แแแงแแแแแแ แกแแแแฃแฌแงแแแแ แชแแแแแแแก (แแแฃแฌแงแแแแแแแก แชแแแแแแแ), แแแแ แแ แงแแแแ แฏแแ แแ แแก แแแฎแแแ แแ แกแแแแแ แแฆแแแฉแแแ แแ แแแแแแแแแแแแ แจแแแกแ แฃแแแแแแแ แแฌแงแแแแแแ แแแ แชแฎแ แกแแแแ แงแแแแแคแแ แ แแ แจแแฉแแ แแแแ.
แแแแแฎแแแแ: แแกแ แแฌแงแแแ.
- แแแ แกแขแ แแแแ แ (@NicholasStrayer)
แฃแคแ แ แแ แแแขแแฃแแ แแฎแแแแ
แ แ แแแกแฌแแแแ: แแแแฏแแ แกแแแชแแแแฃแ แ แแแแแชแแแแแ แแแแแฎแแแก แกแแแชแแแแฃแ แแแแแฌแงแแแขแแแแแแแก.
แแแแแแฃแ SNP-แก แแฅแแก แแแแแชแแแก แแแแจแแแแแแแ. แแก แแ แแก แ แแชแฎแแ, แ แแแแแแช แจแแแกแแแแแแแ แแแกแ แฅแ แแแแกแแแแก แแแกแฌแแ แแ แคแฃแซแแแแแก แ แแแแแแแแแก. แแก แแ แแก แแแ แแ แแ แแฃแแแแ แแแ แแแ แฉแแแแ แแแแแชแแแแแแก แแ แแแแแแแแแกแแแแก. แแแแแแแ แแแแแแแ แแแงแแคแ แแแแแแฃแแ แฅแ แแแแกแแแแก แ แแแแแแแแแก แแแฎแแแแแ. แแแแแแแแแ, แแแแแชแแแแ 1 - 2000, 2001 - 4000 แแ แ.แจ. แแแแ แแ แแ แแแแแแ แแก แแ แแก, แ แแ SNP แแ แแ แแก แแแแแแ แแ แแแแแฌแแแแแฃแแ แฅแ แแแแกแแแแแแ, แแแแขแแ แฏแแฃแคแแก แแแแแแ แแแแจแแแแแแแแแ แแแแกแฎแแแแแแแ.

แจแแแแแแ, แแแแแแ แแแแแชแแแแแก แแแขแแแแ แแแแแ แแแงแแคแแแแ (แ แแแแ). แฃแแแ แแแแแแฌแแ แแแ แแแแแชแแแแแแก แแแแแงแแแแแแ, แแ แจแแแแขแแแ แแแแฎแแแแ แฃแแแแแแฃแ แ SNP-แแแแก แกแแแก, แแแแ แแแแแชแแแแแกแ แแ แฅแ แแแแกแแแแแแก แแแแแแแแแกแแแแก. แจแแแแแ แแแแแฎแแ แแกแฎแ แแแแแชแแแแแ แแแแแแฃแ แฅแ แแแแกแแแแจแ แแ แจแแแแแ แแแ SNP-แแแ แแแชแแแฃแแ แแแแแก แฏแแฃแคแแแแ (แแแแแแ). แแแฅแแแ 1000 SNP แแแแแแฃแแ. แแแแ แแแแชแ แแแแจแแ แ SNP-แฏแแฃแคแ-แแแแ แฅแ แแแแกแแแแแ.
แกแแแแแแแ แแแแแแแแ แฏแแฃแคแแแ (แแแแ) 75 SNP-แแกแแแ, แแแแแแ แฅแแแแแ แแฅแแแแ แแฎแกแแแแ.
snp_to_bin <- unique_snps %>%
group_by(chr) %>%
arrange(position) %>%
mutate(
rank = 1:n()
bin = floor(rank/snps_per_bin)
) %>%
ungroup()
แฏแแ แกแชแแแแ Spark-แแ
แ แ แแแกแฌแแแแ: แแแแแ แฌแแแแก แแแ แแแแชแแ แกแฌแ แแคแแ, แแแแ แแ แแแงแแคแ แแแแแช แซแแแ แแ.
แแกแฃแ แแ แแ แแชแแ แ (2,5 แแแแแแแ แแฌแแ แแแ) แแแแแชแแแแ แฉแแ แฉแแก แฌแแแแแฎแแ Spark-แจแ, แแแแ แแแแแแ แแแ แแแแแแฃแ แแแแแชแแแแแแแ แแ แจแแแแแ แแแงแแคแ แแฎแแแ แแแแแขแแแฃแแ แกแแแขแแ. bin.
# Join the raw data with the snp bins
data_w_bin <- raw_data %>%
left_join(sdf_broadcast(snp_to_bin), by ='snp_name') %>%
group_by(chr_bin) %>%
arrange(Position) %>%
Spark_write_Parquet(
path = DUMP_LOC,
mode = 'overwrite',
partition_by = c('chr_bin')
)
แแ แแแแแแแงแแแ sdf_broadcast()แแกแ แ แแ, Spark-แแ แแชแแก, แ แแ แแแ แฃแแแ แแแแแแแแแก แแแแแชแแแแ แฉแแ แฉแ แงแแแแ แแแแแซแจแ. แแก แกแแกแแ แแแแแแ, แแฃ แแแแแชแแแแแ แแชแแ แ แแแแแกแแ แแ แกแแญแแ แแ แงแแแแ แแแแชแแแแกแแแแก. แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ, Spark แชแแแแแแก แแงแแก แญแแแแแแ แแ แกแแญแแ แแแแแกแแแแแ แแแ แชแแแแแก แแแแแชแแแแแก, แ แแแแช แจแแแซแแแแ แแแแแแฌแแแแก แจแแแแแแแ.
แแ แแกแแ, แฉแแแแ แแแแแ แแ แแแแแแ แแแ: แแแแชแแแแแ แแฃแจแแแแแ แแแ แแแแฃแแ แแแ แแแแแก แแแแแแแแแแแจแ, แแแแกแ แฃแแแก แแแแ แแแแแแแ แแ แจแแแแแ, แแแงแแคแแ แแแฌแงแแแฃแแ แจแแแกแ แฃแแแแแแแแก แแกแแแแกแแ, แแแ แแแแฌแงแแก แแแ แชแฎแ.
AWK-แแก แแแแแขแแแ
แ แ แแแกแฌแแแแ: แแ แแแแซแแแ, แ แแชแ แกแแคแฃแซแแแแแก แแแกแฌแแแแแแ. แ แ แแฅแแ แฃแแแ, แแแแแแ แฃแแแ แแแแแแแ แ แแฅแแแแ แแ แแแแแแ แฏแแ แแแแแ 1980-แแแ แฌแแแแจแ.
แแ แแ แแแแ, Spark-แแแ แฉแแแ แงแแแแ แฌแแ แฃแแแขแแแแแแแก แแแแแแ แแงแ แแแแกแขแแ แจแ แแ แกแแแฃแแ แแแแแชแแแแแแก แแ แแฃแแแแ. แจแแกแแซแแแ, แแแแแแแ แแแแ แแแแแกแฌแแ แแแก แฌแแแแกแฌแแ แ แแแฃแ แแแแแแแ. แแแแแแฌแงแแแขแ, แแแแแแแงแแแแแแแ แแแฃแแฃแจแแแแแแแ แขแแฅแกแขแแก แแแแแชแแแแแ แฅแ แแแแกแแแแแแก แกแแแขแแแแ, แแแแขแแ แแแแแ แแฅแแแแ, แ แแ Spark-แก โแฌแแแแกแฌแแ แแแงแแคแแโ แแแแแชแแแแแก แแแแแฌแแแแแแ.
StackOverflow-แแ แแแซแแแ แ แแแแ แแแแงแ แกแแแขแแก แแแแจแแแแแแแแแ แแ แแแแแแ AWK-แแ แจแแแแซแแแแ แขแแฅแกแขแฃแ แ แคแแแแ แแแงแแ แกแแแขแแก แแแแจแแแแแแแแแแ, แกแแ แแแขแจแ แฉแแฌแแ แแ, แแแแ แ แจแแแแแแแแก แแแแแแแแแ stdout.
แแ แแแแฌแแ แ Bash แกแแ แแแขแ, แ แแ แแแแแแแชแแแ. แฉแแแแขแแแ แแ แแ แ-แแ แแ แจแแคแฃแแฃแแ TSV, แจแแแแแ แแแแจแแแ แแแกแ แแแแแงแแแแแแ gzip แแ แแแแแแแแแก awk.
gzip -dc path/to/chunk/file.gz |
awk -F 't'
'{print $1",..."$30">"chunked/"$chr"_chr"$15".csv"}'
แแแฃแจแแแ!
แแแ แแแแแแก แจแแแกแแแ
แ แ แแแกแฌแแแแ: gnu parallel - แฏแแแแกแแฃแ แ แ แแแแ, แงแแแแแ แฃแแแ แแแแแแงแแแแก.
แแแแจแแ แแแ แกแแแแแแ แแแแ แแงแ แแ แ แแชแ แแแแแฌแงแ htopแแซแแแแ แ (แแ แซแแแ แ) EC2 แแแกแขแแแชแแแก แแแแแงแแแแแแก แจแแกแแแแฌแแแแแแ, แแฆแแแฉแแแ, แ แแ แแ แแแงแแแแแแ แแฎแแแแ แแ แ แแแ แแแก แแ แแแแฎแแแแแแ 200 แแ แแแฎแกแแแ แแแแก. แแ แแแแแแแก แแแแแกแแญแ แแแแ แแ แแแแ แ แคแฃแแ แ แแ แแ แแแแแแแแ แแ, แฃแแแ แแแแแแ แแแแ, แ แแแแ แแแแแขแแ แแ แกแแแฃแจแแแก แแแ แแแแแแแแแ. แกแแแแแแแแ แแ, แแแกแแแฃแขแฃแ แแ แแแกแแแชแแ แฌแแแแจแ แแ แแแแแแ แฏแแ แแ แแแแกแแแกแแก แแแแ แแแ แแแแแแแแแแก แจแแกแแฎแแ. แแแแก แจแแกแแฎแแ แแแแแแ gnu parallel, แซแแแแแ แแแฅแแแแ แแแแแแ Unix-แจแ แแ แแแแแแแแแแแก แแแแฎแแ แชแแแแแแแกแแแแก.

แ แแแแกแแช แแแแแฌแงแ แแแแแงแแคแแก แแแงแแคแ แแฎแแแ แแ แแชแแกแแก แแแแแงแแแแแแ, แงแแแแแคแแ แ แแแ แแแ แแงแ, แแแแ แแ แแแแแช แแ แกแแแแแแ แจแแคแแ แฎแแแ - S3 แแแแแฅแขแแแแก แแแกแแแ แฉแแแแขแแแ แแแ แแ แแงแ แซแแแแแ แกแฌแ แแคแ แแ แแ แ แกแ แฃแแแ แแแ แแแแแแแแแฃแแ. แแแแก แแแแแกแแกแฌแแ แแแแแ แแ แแแแแแแแ แแก:
- แแ แแแแแ แแแแ, แ แแ แจแแกแแซแแแแแแแ S3 แฉแแแแขแแแ แแแแก แแขแแแแก แแแแแ แแแ แแแ แแแแแ แแแแกแแแแแจแ, แ แแช แแแแแแแแ แแแแแ แแชแฎแแแก แแแกแแแ แจแฃแแแแแฃแ แจแแแแฎแแแก. แแก แแแจแแแแก, แ แแ แแ แจแแแแซแแแ แแแแแแแ แแแแชแแแ แแแแแ แแแแแชแแแแแแก แแแกแแแ แฉแแฌแแ แ แแ แแแแแแแงแแแ แแแแแ แฃแคแ แ แแชแแ แ แแ, แจแแกแแแแแแกแแ, แแแคแ แแแฎแกแแแ แแแ AWS-แแ.
- แแฃแแแ
aws configure set default.s3.max_concurrent_requests 50แแแแจแแแแแแแแแ แแแแแ แแ AWS CLI แซแแคแแแแก แ แแแแแแแแ (แแแแฃแแแกแฎแแแแแ แแ แแก 10). - แแ แแแแแแแแ EC2 แแแกแขแแแชแแแแ, แ แแแแแแช แแแขแแแแแแ แแแฃแแแ แฅแกแแแแก แกแแฉแฅแแ แแกแแแแก, แกแแฎแแแจแ แแกแ n-แแ. แแ แแฆแแแแแฉแแแ, แ แแ แแแแฃแจแแแแแแก แกแแแซแแแแ แแก แแแแแ แแแ n-แแแกแขแแแชแแแก แแแแแงแแแแแแกแแก แฃแคแ แ แแแขแแ, แแแแ แ แแแแแแแกแแ แแแฃแแแ แแแขแแแ แแแแก แกแแฉแฅแแ แแก แแ แแแ. แแแแแแแแแแแก แฃแแแขแแกแแแแกแแแแก แแแแแแแงแแแ c5n.4xl.
- แจแแแชแแแแ
gzipon , แแก แแ แแก gzip แแแกแขแ แฃแแแแขแ, แ แแแแแกแแช แจแแฃแซแแแ แแแแแ แ แ แแ แแแแแแแแก แคแแแแแแแก แแแแแแแ แแกแแแก แแแแแแแแ แแแแแ แแ แแแแ แแแแแแแแแฃแแ แแแแชแแแแก แแแ แแแแแแแแแแกแแแแก (แแก แงแแแแแแ แแแแแแแแ แแแแฎแแแ แ).
# Let S3 use as many threads as it wants
aws configure set default.s3.max_concurrent_requests 50
for chunk_file in $(aws s3 ls $DATA_LOC | awk '{print $4}' | grep 'chr'$DESIRED_CHR'.csv') ; do
aws s3 cp s3://$batch_loc$chunk_file - |
pigz -dc |
parallel --block 100M --pipe
"awk -F 't' '{print $1",..."$30">"chunked/{#}_chr"$15".csv"}'"
# Combine all the parallel process chunks to single files
ls chunked/ |
cut -d '_' -f 2 |
sort -u |
parallel 'cat chunked/*_{} | sort -k5 -n -S 80% -t, | aws s3 cp - '$s3_dest'/batch_'$batch_num'_{}'
# Clean up intermediate data
rm chunked/*
done
แแก แแแแแฏแแแ แแ แแแแแแแแแ แแ แแก แจแแ แฌแงแแฃแแ, แ แแแ แงแแแแแคแแ แ แซแแแแแ แกแฌแ แแคแแ แแแฃแจแแแก. แฉแแแแขแแแ แแแแก แกแแฉแฅแแ แแก แแแแ แแแ แแ แแแกแแแ แฉแแฌแแ แแก แแฆแแแคแฎแแ แแ, แแฎแแ แจแแแแซแแ 5 แขแแ แแแแแขแแแแ แแแแแขแแก แแแแฃแจแแแแแ แกแฃแ แ แแแแแแแแ แกแแแแจแ.
แแ แแคแแ แแ แแแแแ แขแแแแแ, แแแแ แ แงแแแแ แแแ แแแแก แแแฎแแ, แ แแแแแกแแช แแฎแแแ AWS-แแ. gnu-parallel-แแก แฌแงแแแแแแ แจแแแแซแแแ แแแแฎแกแแ แแ แแแแงแ 19 แแแแแแแ csv แแกแแแ แกแฌแ แแคแแ, แ แแแแ แช แแแแแแแฌแแ . แแแแก แแแกแแจแแแแแ แแแแแ แฌแแแแแช แแ แแแ แแแแแฆแ.
- แแแ แกแขแ แแแแ แ (@NicholasStrayer)
แแ แขแแแขแจแ แฃแแแ แงแแคแแแแงแ แแแฎแกแแแแแ "TSV". แแแ.
แแฎแแแ แแแแแแแแแแแฃแแ แแแแแชแแแแแแก แแแแแงแแแแแ
แ แ แแแกแฌแแแแ: Spark-แก แแแกแฌแแแก แจแแฃแแฃแแจแฃแแ แแแแแชแแแแแ แแ แแ แแแกแฌแแแก แขแแฎแ แแแแก แแแแ แแแแแแแ.
แแฎแแ แแแแแชแแแแแ แแงแ S3-แจแ แจแแฃแคแฃแแแแ (แฌแแแแแแฎแแ: แแแแแแ แแแฃแแ) แแ แแแฎแแแ แแ แจแแแแแแแแ แคแแ แแแขแแ แแ แจแแแแซแแ แแกแแ แแแแแ แฃแแแแฃแแแงแแแ Spark-แจแ. แกแแฃแ แแ แแแ แแแแแแ: แแกแแ แแแ แแแแแฆแฌแแ แแแแก, แ แแช แแแแแแแ! แซแแแแแ แ แแฃแแ แแงแ แกแแแ แแแกแแแแก แแแแก แแฅแแ, แแฃ แ แแแแ แแงแ แแแแแชแแแแแแก แแแงแแคแ. แแ แแแจแแแแช แแ, แ แแแแกแแช แแก แแแแแแแแ, แแฆแแแฉแแแ, แ แแ แซแแแแแ แแแแ แ แแแแแงแแคแ แแงแ (95 แแแแกแ) แแ แ แแแแกแแช แแแแแแแงแแแ coalesce แจแแแแชแแ แ แแแแ แ แแแแแแแแ แแแแแแ แฃแ แแฆแแ แแแแ, แแแแ แแแแแแแแฃแ แ แฉแแแ แแแแแงแแคแ. แแแ แฌแแฃแแแแฃแแ แแแ , แแก แจแแแซแแแแ แแแแแกแฌแแ แแแก, แแแแ แแ แ แแแแแแแแ แแฆแแก แซแแแแแก แจแแแแแ แแแแแกแแแแแ แแแ แแแแแแ. แกแแแแแแแ แแแแแกแ แฃแแ แงแแแแ แแแแแแแแ Spark-แจแ, แแฃแแชแ แแแแก แแแ แแแแฃแแ แแ แ แแแกแญแแ แแ แแ แฉแแแ แแแงแแคแแแ แแแ แแแขแแก แคแแแแแแ แแ แช แแฃ แแกแ แแชแแ แ แแงแ (~200 KB). แแฃแแชแ, แแแแแชแแแแแ แแฅ แแงแ, แกแแแแช แกแแญแแ แ แแงแ.

แซแแแแแ แแแขแแ แ แแ แแ แแแแแแแแ แ, แแจแแแแแแ แ!
แแแแแแแแ แแแ Spark แแแแฎแแแแแแแก แขแแกแขแแ แแแ
แ แ แแแกแฌแแแแ: แแแแแ แฌแแแก แซแแแแแ แแแแ แ แฎแแ แฏแ แแฅแแก แแแ แขแแแ แแ แแแแแแแแแก แแแแแญแ แแกแแก.
แแแแแชแแแแแแก แญแแแแแ แคแแ แแแขแจแ แฉแแแแขแแแ แแแแก แกแแจแฃแแแแแแ แจแแแซแแแ แกแแฉแฅแแ แแก แจแแแแฌแแแแ. แแแแงแแแแ R แกแแ แแแขแ แแแแแแฃแ แ Spark แกแแ แแแ แแก แแแกแแจแแแแแ แแ แจแแแแแ แฉแแขแแแ แแแ Spark แแแแแชแแแแ แฉแแ แฉแ แแแแแแแแฃแแ แแแ แแแขแแก แฏแแฃแคแแก แกแแชแแแแแแ (แแแแแแแ). แแชแแแ แงแแแแ แแแแแชแแแแก แฉแแขแแแ แแแ, แแแแ แแ Sparklyr-แก แแแแแงแแคแแก แแแแชแแแแ แแแ แแแแแฎแแ แฎแ.
sc <- Spark_connect(master = "local")
desired_snp <- 'rs34771739'
# Start a timer
start_time <- Sys.time()
# Load the desired bin into Spark
intensity_data <- sc %>%
Spark_read_Parquet(
name = 'intensity_data',
path = get_snp_location(desired_snp),
memory = FALSE )
# Subset bin to snp and then collect to local
test_subset <- intensity_data %>%
filter(SNP_Name == desired_snp) %>%
collect()
print(Sys.time() - start_time)
แแฆแกแ แฃแแแแแก 29,415 แฌแแแ แแแกแญแแ แแ. แแแแ แแ แฃแแแแแกแ, แแแแ แแ แแ แช แแกแ แแแ แแ แ แแแแแก แแแกแแแ แแแ แขแแกแขแแ แแแแกแแแแก. แแแ แแ แแแแกแ, แแ แแแ แแแแแฉแฅแแ แ แฅแแจแแ แแแ, แ แแแแแ แ แแชแ แแแแแชแแแแ แฉแแ แฉแแก แฅแแจแแ แแแแก แแชแแแแแแแ แแแฎแกแแแ แแแแจแ, Spark แงแแแแแแแแก แแจแแแแแแ, แแแจแแแแช แแ, แ แแชแ 50 แแ-แแ แแแขแ แแแฎแกแแแ แแแ แแแแแแงแแแ แแแแแชแแแแ แแแแ แแแก, แ แแแแแแช แแฌแแแแแ 15-แแ แแแแแแแก.
AWK-แแ แแแแ แฃแแแแ
แ แ แแแกแฌแแแแ: แแกแแชแแแชแแฃแ แ แแแกแแแแแ AWK-แจแ แซแแแแแ แแคแแฅแขแฃแ แแ.
แแแแฎแแแ, แ แแ แฃแคแ แ แแแฆแแแ แกแแฉแฅแแ แแก แแแฆแฌแแแ แจแแแแซแแ. แแจแแแแแแ แแ แแแแแฎแกแแแแ แฌแแแแแแแฎแ แแแแแ แ แแแฎแแกแแแแแแแแก แจแแกแแฎแแ, แกแแฎแแแฌแแแแแแ "" แแ แกแแแแแแ, แแก แแ แแก แแแกแแฆแแแ-แแแแจแแแแแแแแก แฌแงแแแแแแ, แ แแแแแแกแแช แ แแขแแแฆแแช แกแฎแแแแแแ แแ แแซแแฎแแแแ AWK-แจแ แแ แแแแขแแ แ แแขแแแฆแแช แแแแแ แแแแ แ แแ แแแคแแฅแ แแ. แแแแฎแกแแแ, แ แแ แขแแ แแแแ โแแกแแชแแแชแแฃแ แ แแแกแแแแแโ แแแแ แแ แฃแคแ แ แซแแแแแ, แแแแ แ แขแแ แแแแ โแแแกแแฆแแแ-แแแแจแแแแแแแแก แฌแงแแแแโ. แแฃแแแแช แจแแ , แแฅแแแ แแแ แแแฎแแแ แแ แขแแ แแแแก แแฅ, แแแแ แแ แแแฎแแแ แแกแแชแแแชแแฃแ แแแกแแแแแก! แแแ แแ แแแแกแ, "แแแกแแฆแแแ-แแแแจแแแแแแแแก แฌแงแแแแ" แงแแแแแแ แฎแจแแ แแ แแกแแชแแ แแแแ แแแแแชแแแแ แแแแแแแแ, แแกแ แ แแ, แแแแ แแ แฃแคแ แ แแแ แแแแแ แแแกแ แจแแแแ แแแ แฐแแจแแแฅแแแ. แแแแฎแแแ, แ แแ แจแแแแซแแ แแแแแแแงแแแแแแแ แแก แแกแแชแแแชแแฃแ แ แแแกแแแแแ แฉแแแ SNP-แแแแก แแแกแแแแแจแแ แแแแแ แฃแ แแแก แชแฎแ แแแแแ แแ แแแแแแฃแ แแแแแชแแแแแแแ Spark-แแก แแแแแงแแแแแแก แแแ แแจแ.
แแแแกแแแแแก AWK แกแแ แแแขแจแ แแแแแแแงแแแ แแแแแ BEGIN. แแก แแ แแก แแแแแก แแแฌแแแ, แ แแแแแแช แจแแกแ แฃแแแแฃแแแ แแแแแ, แกแแแแ แแแแแชแแแแแแก แแแ แแแแ แฎแแแ แแแแแแชแแแ แกแแ แแแขแแก แแแแแแ แแแฌแแแก.
join_data.awk
BEGIN {
FS=",";
batch_num=substr(chunk,7,1);
chunk_id=substr(chunk,15,2);
while(getline < "snp_to_bin.csv") {bin[$1] = $2}
}
{
print $0 > "chunked/chr_"chr"_bin_"bin[$1]"_"batch_num"_"chunk_id".csv"
}
แแฃแแแ while(getline...) แฉแแแขแแแ แแ แงแแแแ แแฌแแ แแแ CSV แฏแแฃแคแแแแ (แแแแแแแ), แแแแงแแแ แแแ แแแแ แกแแแขแ (SNP แกแแฎแแแ) แแกแแชแแแชแแฃแ แ แแแกแแแแก แแแกแแฆแแแแ bin แฎแแแ แแแแ แ แแแแจแแแแแแแ (แฏแแฃแคแ) แ แแแแ แช แแแแจแแแแแแแ. แจแแแแแ แแแแแจแ { }, แ แแแแแแช แจแแกแ แฃแแแแฃแแแ แซแแ แแแแแ แคแแแแแก แงแแแแ แกแขแ แแฅแแแแ, แแแแแแฃแแ แฎแแแ แแแแแแแแแ แแแแแแแแแ แคแแแแจแ, แ แแแแแแช แแฆแแแก แฃแแแแแแฃแ แกแแฎแแแก แแแกแ แฏแแฃแคแแก (แแแแแก) แแแฎแแแแแ: ..._bin_"bin[$1]"_....
แชแแแแแแแ batch_num ะธ chunk_id แแแแแแฎแแ แแแแกแแแแแแก แแแแ แแแฌแแแแแฃแ แแแแแชแแแแแก, แแแแแแแ แแแชแแแ แ แแแแแก แแแแแแแ แแแแ แแ แงแแแแแ แจแแกแ แฃแแแแแก แแแแ แแแจแแแแฃแแ parallel, แแแฌแแ แ แกแแแฃแแแ แฃแแแแแแฃแ แคแแแแจแ.
แแแก แจแแแแแ, แ แแช แแ แแแแแคแแแขแ แงแแแแ แแแแแแฃแแ แแแแแชแแแ แฅแ แแแแกแแแแแแก แกแแฅแแฆแแแแแแแจแ, แ แแแแแแแช แแแ แฉแแแแแ แแงแ AWK-แกแแแ แฉแแแ แฌแแแ แแฅแกแแแ แแแแแขแแแแ, แแฎแแ แจแแแแซแแแ แแแแฌแแ แ แแแแแ แแ แแ Bash แกแแ แแแขแ, แ แแ แแแแฃแจแแแแแก แแ แแแ แแฃแแแ แแ แแ แฅแ แแแแกแแแ แแ แแแแแแแแแแ แฃแคแ แ แฆแ แแ แแแแแฌแแแแแฃแแ แแแแแชแแแแแ S3-แแ.
DESIRED_CHR='13'
# Download chromosome data from s3 and split into bins
aws s3 ls $DATA_LOC |
awk '{print $4}' |
grep 'chr'$DESIRED_CHR'.csv' |
parallel "echo 'reading {}'; aws s3 cp "$DATA_LOC"{} - | awk -v chr=""$DESIRED_CHR"" -v chunk="{}" -f split_on_chr_bin.awk"
# Combine all the parallel process chunks to single files and upload to rds using R
ls chunked/ |
cut -d '_' -f 4 |
sort -u |
parallel "echo 'zipping bin {}'; cat chunked/*_bin_{}_*.csv | ./upload_as_rds.R '$S3_DEST'/chr_'$DESIRED_CHR'_bin_{}.rds"
rm chunked/*
แกแแ แแแขแก แแ แ แกแแฅแชแแ แแฅแแก parallel.
แแแ แแแ แแแแงแแคแแแแแแจแ แแแแแชแแแแแ แแแแแฎแแแ แงแแแแ แคแแแแแแแ, แ แแแแแแช แจแแแชแแแก แแแคแแ แแแชแแแก แกแแกแฃแ แแแ แฅแ แแแแกแแแแแ, แจแแแแแ แแก แแแแแชแแแแแ แแแฌแแแแแแ แซแแคแแแแ, แ แแแแแแแช แแแแฌแแแแแแ แคแแแแแแก แจแแกแแแแแแก แฏแแฃแคแแแจแ (แแแ). แ แแแแแก แแแ แแแแแแก แแแแแแแ แแชแแแแแแก แแแแแแ, แ แแแแกแแช แ แแแแแแแแ แแแแ แแฌแแ แแแ แแ แแกแ แแ แแแแแ แคแแแแจแ, AWK แแแแแกแชแแแก แคแแแแแก แกแแฎแแแแแก แแแแแชแแแแแแก แกแฎแแแแแกแฎแแ แแแแแแแก แฉแแกแแฌแแ แแ, แแแ. chr_10_bin_52_batch_2_aa.csv. แจแแแแแแ, แแแกแแแ แแฅแแแแแ แแ แแแแแ แแแขแแ แ แคแแแแ (แแแแกแแแแก แแแแแแแงแแแ แขแแ แแแแแขแแก EBS แขแแแแแ).
แแแแแแแแ แ แแแแ แ แแแแงแแคแแแแแแแแ parallel แแแแแก แฏแแฃแคแแแจแ (แแแแแจแ) แแ แแแ แแแแแแแก แแแ แแแแแแแแฃแแแฃแ แคแแแแแแก แกแแแ แแ CSV c catแแ แจแแแแแ แแแแแแแแก แแแ แแฅแกแแแ แขแแ.
แแแฃแฌแงแแแแแแ R-แจแ?
แ แ แแแกแฌแแแแ: แจแแแแซแแแแ แแแฃแแแแจแแ แแแ stdin ะธ stdout R แกแแ แแแขแแแแ แแ, แจแแกแแแแแแกแแ, แแแแแแงแแแแ แแแ แแแแกแแแแแจแ.
แแฅแแแ แจแแแซแแแแ แจแแแแจแแแ แแก แฎแแแ แแฅแแแแก Bash แกแแ แแแขแจแ: ...cat chunked/*_bin_{}_*.csv | ./upload_as_rds.R.... แแก แแแ แแแแแก แงแแแแ แแแแแแแแแแ แฃแ แฏแแฃแคแฃแ แคแแแแก (แแแ) แฅแแแแแ แแแชแแแฃแ R แกแแ แแแขแจแ. {} แแแแกแแแฃแแ แแแฃแแ แขแแฅแแแแแ parallel, แ แแแแแแช แแแแแกแแแก แแแแแกแแแแ แแแแแชแแแก, แ แแแแแกแแช แแก แฃแแแแแแแก แแแแแแแแฃแ แแแแแแก แฃแจแฃแแแแ แแแแแ แแ แซแแแแแแจแ. แแแ แแแแขแ {#} แฃแแ แฃแแแแแงแแคแก แฃแแแแแแฃแ แแแแแขแฃแ แ ID-แก แแ {%} แฌแแ แแแแแแแแก แกแแแฃแจแแ แแแแแแแก แแแแแ แก (แแแแแแแ แแแแ, แแแแ แแ แแ แแกแแ แแก แแ แแแ แแฃแแแ). แงแแแแ แแแ แแแแขแแก แกแแ แจแแแแซแแแแ แแแฎแแ
#!/usr/bin/env Rscript
library(readr)
library(aws.s3)
# Read first command line argument
data_destination <- commandArgs(trailingOnly = TRUE)[1]
data_cols <- list(SNP_Name = 'c', ...)
s3saveRDS(
read_csv(
file("stdin"),
col_names = names(data_cols),
col_types = data_cols
),
object = data_destination
)
แ แแชแ แชแแแแแ file("stdin") แแแแแแชแแแ readr::read_csv, R แกแแ แแแขแจแ แแแแแแแ แแแแแแ แแแแแชแแแแแ แแขแแแ แแแแ แฉแแ แฉแแจแ, แ แแแแแแช แจแแแแแ แคแแ แแแจแแ .rds- แคแแแแแก แแแแแงแแแแแแ aws.s3 แแแฌแแ แแแ แแแ แแแแแ S3-แแ.
RDS แแ แแก แแแ แแแขแแก แฃแแชแ แแกแ แแแ แกแแ, แแแแแแแแแแแก แจแแกแแแแฎแ แฌแแ แแแแแแแก แแแ แแจแ.
Bash แกแแ แแแขแแก แแแกแ แฃแแแแแก แจแแแแแ แแแแแฆแ แแแแแขแ .rds-S3-แจแ แแแแแแแกแแแฃแแ แคแแแแแแ, แ แแแแแแแแช แแแแชแ แกแแจแฃแแแแแ แแแแแแแงแแแแแแแ แแคแแฅแขแฃแ แ แจแแแฃแแจแแ แแ แฉแแจแแแแแฃแแ แขแแแแแ.
แกแแแฃแฎแ แฃแญแ R-แแก แแแแแงแแแแแแก แแแฃแฎแแแแแแ, แงแแแแแคแแ แ แซแแแแแ แกแฌแ แแคแแ แแฃแจแแแแแ. แแแกแแแแแ แ แแ แแ แแก, แ แแ R-แแก แแแฌแแแแแ, แ แแแแแแแช แแแแฎแฃแแแแแ แแ แฌแแ แแ แแแแแชแแแแแก, แซแแแแแ แแแขแแแแแแ แแแฃแแแ. แแ แ แกแแจแฃแแแ แแแแแก แฅแ แแแแกแแแแแ แขแแกแขแแ แแแแก แจแแแแแ, แกแแแฃแจแแ แแแกแ แฃแแแ C5n.4xl แแแแแแแแแ แแแแฎแแแแแแ แแ แกแแแแจแ.
S3 แจแแแฆแฃแแแแแ
แ แ แแแกแฌแแแแ: แญแแแแแแ แแแแแแแก แแแแฎแแ แชแแแแแแแก แฌแงแแแแแแ, S3-แก แจแแฃแซแแแ แแ แแแแแ แคแแแแแก แแแ แแแ.
แแแแ แแแฃแแแแแ, แจแแซแแแแแ แแฃ แแ แ S3 แแแฃแแแแแแแแก แแแกแจแ แแแแแขแแแแ แแแแ แคแแแแก. แจแแแแซแแ แคแแแแแแแก แกแแฎแแแแแก แแแ แ แแแแแแแฅแแ, แแแแ แแ แ แแแแ แแซแแแก แแแ S3?

แกแแฅแแฆแแแแแแแ S3-แจแ แแ แแก แแฎแแแแ แกแแฉแแแแแแแแ, แกแแแแแแแแแแจแ แกแแกแขแแแ แแ แแแแขแแ แแกแแแก แกแแแแแแแก /.
แ แแแแ แช แฉแแแก, S3 แฌแแ แแแแแแแแก แแแแแ แแขแฃแแ แคแแแแแกแแแ แแแแแแแ แแแแก, แ แแแแ แช แแแ แขแแ แแแแแแจแก แฐแแจแแก แชแฎแ แแแแก แแ แแแแฃแแแแขแแ แแแคแฃแซแแแแฃแแ แแแแแชแแแแ แแแแแจแ. bucket แจแแแซแแแแ แฉแแแแแแแแก แ แแแแ แช แชแฎแ แแแ แแ แคแแแแแแ แจแแแซแแแแ แฉแแแแแแแแก แฉแแแแฌแแ แแแแ แแ แชแฎแ แแแจแ.
แแแแก แแแแ, แ แแ แกแแฉแฅแแ แ แแ แแคแแฅแขแฃแ แแแ แแแแจแแแแแแแแแแ แแแแแแแจแ แแแแแแแก แแแกแแฆแแแแ, แแแกแแแแแ แ แแ แแ แแก, แ แแ แแก แแแกแแฆแแแ-แ แแแแ แช-แคแแแแแก แแแ แกแแกแขแแแ แกแแแชแ แแ แแแขแแแแแแ แแแฃแแแ. แแชแแแแแแแ แแแแแแ แแแแแแกแ: แแกแ, แ แแ แแแแ แ แแแแฎแแแแแก แแแแแแแแ แแ แแแแแฌแแ, แแแแ แแ แแแแฎแแแแแแ แกแฌแ แแคแแ แจแแกแ แฃแแแแฃแแแงแ. แแฆแแแฉแแแ, แ แแ แฃแแฏแแแแกแแ แแแแฎแแแแแแ 20 แแแแกแ bin แคแแแแแก แจแแฅแแแ. แแคแแฅแ แแ, แแฃ แแแแแแ แซแแแแแ แแแขแแแแแแชแแแก, แจแแแแแซแแแ แแแแแฆแฌแแแ แกแแฉแฅแแ แแก แแ แแแก (แแแแแแแแแ, แกแแแชแแแแฃแ แ แแแแแฃแแแก แแแแแแแแ แแฎแแแแ แแแแแชแแแแแแกแแแแก, แ แแแแช แจแแแแแชแแ แแแ แกแแซแแแแ แชแฎแ แแแแก แแแแแก). แแแแ แแ แแ แแงแ แแ แ แแ แคแฃแแ แจแแแแแแแ แแฅแกแแแ แแแแแขแแแแกแแแแก.
แ แแช แจแแแฎแแแ แฏแแแ แแแแแ แแแแกแแแแแแแแก?
แ แ แแแกแฌแแแแ: แแ แแแก แแแแแ แแแ แแแแแ แแแ แแแแ แแแแแแแ แแฅแแแแ แจแแแแฎแแแก แแแแแแแก แแแแแ แแแ แแแขแแแแแแชแแ.
แแ แแขแแแแ, แซแแแแแ แแแแจแแแแแแแแแแ แกแแแฃแแแ แแแแก แฐแแแแฎแแ: "แ แแขแแ แแแแแแงแแแแ แกแแแฃแแ แแแแก แคแแแแแก แคแแ แแแขแ?" แแแแแแ แแแแแแแ แแแแก แฉแแขแแแ แแแแก แกแแฉแฅแแ แแจแ (gzipped CSV แคแแแแแแแก แฉแแขแแแ แแแแก 7-แฏแแ แแแขแ แแ แ แแแกแญแแ แแ) แแ แฉแแแแก แกแแแฃแจแแ แแ แแชแแกแแแแแ แแแแกแแแแแแแแจแ. แจแแแซแแแแ แแแแแแแคแแฅแ แ, แจแแฃแซแแแ แแฃ แแ แ R-แก แแแแแแแ แฉแแขแแแ แแแก แแแ แแแขแแก (แแ แแกแ แแก) แคแแแแแแ Spark แแแขแแแ แแแแก แแแ แแจแ. แฉแแแแก แแแแแ แแขแแ แแแจแ แงแแแแ แแงแแแแแก R-แก แแ แแฃ แแญแแ แแแแ แแแแแชแแแแแแก แกแฎแแ แคแแ แแแขแจแ แแแแแงแแแแ, แแ แแแแแช แแแฅแแก แแ แแแแแแแฃแ แ แขแแฅแกแขแแก แแแแแชแแแแแ, แแกแ แ แแ, แจแแแแซแแแ แฃแแ แแแแ แแแแแขแแ แ แแแแกแแแแแ.
แกแแแฃแจแแแก แแแงแแคแ
แ แ แแแกแฌแแแแ: แแฃ แชแแแแแแ แกแแแฃแจแแแแแแก แฎแแแแ แแแขแแแแแแชแแแก, แแแแชแแ แแแแแแฃแขแแ แก แแแแก แแแแแแแแ.
แแ แแแแแแ แแ แกแแแฃแจแแ แแ แแชแแกแ แแ แ แฅแ แแแแกแแแแแ, แแฎแแ แแญแแ แแแแ แงแแแแ แกแฎแแ แแแแแชแแแแก แแแแฃแจแแแแแ.
แแกแฃแ แแ แ แแแแแแแแ EC2 แแแกแขแแแชแแแก แแแแ แแ แแแแแแ แขแแชแแแกแแแแก, แแแแ แแ แแแแแ แแ แแก แแแจแแแแแ แซแแแแแ แแแฃแฌแแแแกแฌแแ แแแแแ แแแขแแแ แแแ แกแฎแแแแแกแฎแแ แแแแฃแจแแแแแแก แกแแแฃแจแแแแแแ (แแกแแแ, แ แแแแ แช Spark แแแแแชแแแแ แแแฃแฌแแแแกแฌแแ แแแแ แแแแแงแแคแแแก). แแแ แแ แแแแกแ, แแ แแ แแแแแขแแ แแกแแแแ แแแแ แฅแ แแแแกแแแแแ แแ แแ แแแกแขแแแชแแแก แแแแ แแ, แ แแแแแ AWS แแแแแ แแจแแแแกแแแแก แแ แแก แแแแฃแแแกแฎแแแแ แแแแแขแ 10 แแแกแขแแแชแแแ.
แจแแแแแ แแแแแแฌแงแแแขแ แแแแแฌแแ แ แกแแ แแแขแ R-แจแ แแแแฃแจแแแแแแก แกแแแฃแจแแแแแแก แแแขแแแแแแชแแแกแแแแก.
แแแ แแแ แ แแแจแ, แแ แแแฎแแแ S3-แก, แแแแแแแแแแ แ แแแแแแ แแแแแแ แแแแแแแ แแแแแแฃแ แฅแ แแแแกแแแแจแ.
library(aws.s3)
library(tidyverse)
chr_sizes <- get_bucket_df(
bucket = '...', prefix = '...', max = Inf
) %>%
mutate(Size = as.numeric(Size)) %>%
filter(Size != 0) %>%
mutate(
# Extract chromosome from the file name
chr = str_extract(Key, 'chr.{1,4}.csv') %>%
str_remove_all('chr|.csv')
) %>%
group_by(chr) %>%
summarise(total_size = sum(Size)/1e+9) # Divide to get value in GB
# A tibble: 27 x 2
chr total_size
<chr> <dbl>
1 0 163.
2 1 967.
3 10 541.
4 11 611.
5 12 542.
6 13 364.
7 14 375.
8 15 372.
9 16 434.
10 17 443.
# โฆ with 17 more rows
แจแแแแแ แแแแฌแแ แ แคแฃแแฅแชแแ, แ แแแแแแช แแฆแแแก แแแแแแ แแแแแก, แแแแฌแแแแแก แฅแ แแแแกแแแแแแก แแแแแแแแแแ แแแแก, แงแแคแก แแแ แฏแแฃแคแแแแ num_jobs แแ แแแขแงแแแ, แ แแแแแแแ แแแแกแฎแแแแแแฃแแแ แงแแแแ แแแแฃแจแแแแแแก แกแแแฃแจแแแก แแแแแแ.
num_jobs <- 7
# How big would each job be if perfectly split?
job_size <- sum(chr_sizes$total_size)/7
shuffle_job <- function(i){
chr_sizes %>%
sample_frac() %>%
mutate(
cum_size = cumsum(total_size),
job_num = ceiling(cum_size/job_size)
) %>%
group_by(job_num) %>%
summarise(
job_chrs = paste(chr, collapse = ','),
total_job_size = sum(total_size)
) %>%
mutate(sd = sd(total_job_size)) %>%
nest(-sd)
}
shuffle_job(1)
# A tibble: 1 x 2
sd data
<dbl> <list>
1 153. <tibble [7 ร 3]>
แจแแแแแ แแแแกแแแแ แ แจแแฎแแแแแ แแแแแแ แ purrr-แแก แแแแแงแแแแแแ แแ แแแแ แฉแแ แกแแฃแแแแแกแ.
1:1000 %>%
map_df(shuffle_job) %>%
filter(sd == min(sd)) %>%
pull(data) %>%
pluck(1)
แแกแ แ แแ, แแ แแแแแกแ แฃแแ แแแแชแแแแแแก แแแแ แแแ, แ แแแแแแช แซแแแแแ แฐแแแแแ แแแแแ. แจแแแแแ แแแ แฉแ แแฎแแแแ แฉแแแ แฌแแแ Bash แกแชแแแแ แแก แแแ แแแ แงแฃแแจแ แแแแแขแแแ for. แแ แแแขแแแแแแชแแแก แแแฌแแ แแก แแแแฎแแแแแแ 10 แฌแฃแแ แแแกแญแแ แแ. แแ แแก แแแแ แแ แแแแแแแแ, แแแแ แ แแ แแแแฎแแ แฏแแแแ แแแแชแแแแแแก แฎแแแแ แจแแฅแแแแแ, แแฃ แแกแแแ แแแฃแแแแแแกแแแแแ แแฅแแแแแแ. แแแแขแแ, แแคแแฅแ แแ, แ แแ แแแ แแแแ แแแงแแแ แแ แฌแแแแกแฌแแ แ แแแขแแแแแแชแแแจแ.
for DESIRED_CHR in "16" "9" "7" "21" "MT"
do
# Code for processing a single chromosome
fi
แแแกแแกแ แฃแแก แแแแแขแแ แแแแแ แแแแก แแ แซแแแแแแก:
sudo shutdown -h now
... แแ แงแแแแแคแแ แ แแแแแแแแ! AWS CLI-แแก แแแแแงแแแแแแ, แแ แแฆแแแแจแแ แจแแแแฎแแแแแแ แแคแชแแแก แแแแแงแแแแแแ user_data แแแกแชแ แแแ Bash แกแแ แแแขแแแ แแแแ แแแแชแแแแแแก แแแกแแแฃแจแแแแแแแ. แแกแแแ แแแแฅแชแแแ แแ แแแขแแแแขแฃแ แแ แแแแฎแฃแ แแก, แแแแขแแ แแ แแ แแแฎแแแแ แแแแแขแแแแ แแแแแแแแฃแจแแแแแแ แซแแแแก.
aws ec2 run-instances ...
--tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=<<job_name>>}]"
--user-data file://<<job_script_loc>>
แแแแ แฉแแแแแแแแ!
แ แ แแแกแฌแแแแ: API แฃแแแ แแงแแก แแแ แขแแแ แแแแแงแแแแแแก แกแแแแ แขแแแแกแ แแ แแแฅแแแแแแแกแแแแก.
แกแแแแแแแ แแแแแฆแ แแแแแชแแแแแ แกแฌแแ แแแแแแแก แแ แคแแ แแแจแ. แแแ แฉแ แแฎแแแแ แแแแแชแแแแแแก แแแแแงแแแแแแก แแ แแชแแกแแก แแแฅแกแแแแแฃแ แแ แแแแแ แขแแแแแ, แ แแแ แแแแแแแแแแแแแแ แฉแแแ แแแแแแแแ. แแแแแแแ แจแแแแฅแแแ แแแ แขแแแ API แแแแฎแแแแแแแก แจแแกแแฅแแแแแแ. แแฃ แแแแแแแแจแ แแแแแแฌแงแแแข แแแแแ แแแแก .rds แแแ แแแขแแก แคแแแแแแแ, แแแจแแ แแก แฉแแแแแแก แแ แแแแแแ แฃแแแ แแงแแก แแ แแ แ แฉแแแ แแแแแแแแแกแแแแก. แแแแกแแแแก แแแแแแฌแงแแแขแ แจแแแ R แแแแแขแแก แแแแแแแแ.
แจแแฅแแแแแ แแ แแแแคแแฅแกแแ แแ แซแแแแแ แแแ แขแแแ แแแแแขแ, แ แแแแแแช แจแแแชแแแก แคแฃแแฅแชแแแก แแ แแแแแ แแ แแแแแแแแฃแ แแแแแชแแแแแแ แฌแแแแแแก แแฎแแแแ แ แแแแแแแแ แคแฃแแฅแชแแแก get_snp. แฉแแแ แแแแแแแแแกแแแแก แแแแแแแ แแแช แแแแแแแแ , แแกแ แ แแ แแแ แจแแฃแซแแแแ แแแแแแแ แแแฎแแ แแแแแแแแแแ แแ แแแแฃแแแแขแแชแแ.

แญแแแแแแ แฅแแจแแ แแแ
แ แ แแแกแฌแแแแ: แแฃ แแฅแแแแ แแแแแชแแแแแ แแแ แแแ แแ แแก แแแแแแแแแฃแแ, แฅแแจแแ แแแ แแแแแแ แแฅแแแแ!
แแแก แจแแแแแ, แ แแช แแ แ-แแ แแแ แซแแ แแแแแแ แกแแแฃแจแแ แแ แแชแแกแแ แแแแแแงแแแ แแแแแ แแแแแแแแก แแแแแแ SNP แแแแแขแแ, แแ แแแแแแฌแงแแแขแ แแแแแแแงแแแแแแแ แแแแแแแ แฉแแแก แกแแกแแ แแแแแแ. SNP-แแ แแแแแชแแแแแแก แแแแแชแแแแกแแก, แฏแแฃแคแแแแ (แแแแแแแ) แแแแแ แแแคแแ แแแชแแ แแแแแแ แแแฃแแแ แแแแ แฃแแแแฃแ แแแแแฅแขแแ. แแแฃ, แซแแแ แจแแแแแฎแแแแก แจแแฃแซแแแ (แแแแ แแฃแแแ) แแแแฉแฅแแ แแก แแฎแแแ แแแแฎแแแแแแแก แแแแฃแจแแแแแ.
# Part of get_snp()
...
# Test if our current snp data has the desired snp.
already_have_snp <- desired_snp %in% prev_snp_results$snps_in_bin
if(!already_have_snp){
# Grab info on the bin of the desired snp
snp_results <- get_snp_bin(desired_snp)
# Download the snp's bin data
snp_results$bin_data <- aws.s3::s3readRDS(object = snp_results$data_loc)
} else {
# The previous snp data contained the right bin so just use it
snp_results <- prev_snp_results
}
...
แแแแแขแแก แจแแฅแแแแกแแก, แแ แจแแแแแแ แ แแ แแแแแ แแ แแขแแ แแฃแแ, แ แแ แจแแแแแแ แ แกแแฉแฅแแ แ แกแฎแแแแแกแฎแแ แแแแแแแก แแแแแงแแแแแแกแแก. แแแ แฉแแแ, แฃแแฃแแแแแแงแแ แแก, แ แแแแแ แแแแฏแแ แจแแแแแแแ แแแฃแแแแแแแแ. แฒแแแแแแแแ, dplyr::filter แแแแ แแ แฃแคแ แ แกแฌแ แแคแ แแงแ, แแแแ แ แ แแแแแแก แแฆแแแ แแแแแฅแกแแ แแแแแ แแแคแฃแซแแแแฃแแ แคแแแขแ แแชแแแก แแแแแงแแแแแแ, แฎแแแ แแ แแ แกแแแขแแก แแแแฆแแแ แแแคแแแขแ แฃแแ แแแแแชแแแแ แฉแแ แฉแแแแ แแแแ แแ แฃแคแ แ แกแฌแ แแคแ แแงแ, แแแแ แ แแแแแฅแกแแ แแแแก แกแแแขแแฅแกแแก แแแแแงแแแแแ.
แแแฎแแแ แแแแแแแแแกแฌแแแแ, แ แแ แแแแแฅแขแ prev_snp_results แจแแแชแแแก แแแกแแฆแแแก snps_in_bin. แแก แแ แแก แงแแแแ แฃแแแแแแฃแ แ SNP-แแก แแแกแแแ แฏแแฃแคแจแ (แฃแ แแแจแ), แ แแแแแแช แกแแจแฃแแแแแแก แแแซแแแแ แกแฌแ แแคแแ แจแแแแแฌแแแ, แแแฅแแ แแฃ แแ แ แแแแแชแแแแแ แฌแแแ แแแแฎแแแแแแแ. แแก แแกแแแ แแแแแแแแแก แฏแแฃแคแจแ (แแแแแจแ) แงแแแแ SNP-แก แแ แแแแแก แแแจแแแแแแ:
# Get bin-mates
snps_in_bin <- my_snp_results$snps_in_bin
for(current_snp in snps_in_bin){
my_snp_results <- get_snp(current_snp, my_snp_results)
# Do something with results
}
แแแกแแแแแแ
แแฎแแ แฉแแแ แจแแแแแซแแแ (แแ แแแแแฌแงแแ แกแแ แแแแฃแแแ) แแแแแแแแ แแ แกแชแแแแ แแแ, แ แแแแแแแช แแแ แ แฉแแแแแแแก แแแฃแฌแแแแแแแ แแงแ. แงแแแแแแ แแแ แแ แแก แแ แแก, แ แแ แฉแแแก แแแแแ แแขแแ แแฃแ แแแแแแแแก แแ แฃแฌแแแ แ แแแแ แแแ แแฃแแแแแแ แคแแฅแ แ. แแแ แฃแแ แแแแ แแฅแแ แคแฃแแฅแชแแ, แ แแแแแแช แแฃแจแแแแก.
แแ แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแแแแขแ แแแแแแก แแแ แแแขแแแแแก, แแ แจแแแแชแแแ แแแแแชแแแแ แคแแ แแแขแ แกแแแแแ แแกแแ แแแ แขแแแ แแแแแแแแแแแแ, แ แแ แแแ แจแแแซแแแ แแแแ แแแแแ, แแฃ แฎแแแ แแแฃแแแแแแแแ แแแแฅแ แแแแแ...
แกแแฉแฅแแ แ แจแแกแแแฉแแแแแ แแแแแแ แแ. แฉแแแ แฉแแแฃแแแแ แแ แแแแแฌแแแแ แคแฃแแฅแชแแฃแ แแ แแแแจแแแแแแแแ แแแแแแแก แคแ แแแแแแขแแแก. แแแ แ แแแแก แแแ แแแแแแแแแแ (แซแแแแแ แซแแแ แ แแฆแแแฉแแแ), แแแแ แแ แแฎแแ, แฏแแฃแคแแก (แแแแแก) แกแขแ แฃแฅแขแฃแ แแกแ แแ แฅแแจแแ แแแแก แฌแงแแแแแแ, แแ แแ SNP-แแก แแแแฎแแแแแก แกแแจแฃแแแแ 0,1 แฌแแแแ แแแแแแแ แกแญแแ แแแแ แแ แแแแแชแแแแ แแแแแงแแแแแ แแกแแ. แแแแแแ, แ แแ แฎแแ แฏแแแ S3 แแ แแก แแ แแฅแแกแ.
แแฎแแแฎแแ แแ แจแแแชแแแแ 25+ แขแฃแแแ แแฃแแแแแก แแแแแแฃแแ แแแแแขแแแแก แแแแแชแแแแแ แฉแแแ แแแแแ แแขแแ แแแกแแแแก. แ แแแแกแแช แแแแแฌแงแ, แแแแแ แฌแแแแก แแแแแงแแแแแแก 8 แฌแฃแแ แแแกแญแแ แแ แแ 20 แแแแแ แ แแแฏแแ SNP-แแก แแแแฎแแแแแ. AWK+ แแแแแงแแแแแแก แจแแแแแ แแแแฃแจแแแแแแก แแฎแแ แฌแแแแก 10-แแ แแแแแแแ แกแญแแ แแแแ แแ แฆแแ แก $0.00001. แฉแแแ แแแ แแแ แแแแแ แฏแแแแ.
- แแแ แกแขแ แแแแ แ (@NicholasStrayer)
แแแกแแแแ
แแก แกแขแแขแแ แกแแแ แแแ แแ แแ แแก แกแแฎแแแแซแฆแแแแแแ. แแแแแกแแแแแ แแฆแแแฉแแแ แแแแแแแแฃแแแฃแ แ แแ แแแแฅแแแก แแ แแ แแก แแแขแแแแแฃแ แ. แฃแคแ แ แกแฌแแ แแ, แแก แแ แแก แแแแแแฃแ แแแแก แฌแแแแ. แแแแแ, แกแฎแแแแแ แแแแแแ, แ แแ แแกแแแ แแแแแฌแงแแแขแแแแแแแ แแ แฉแแแก แกแ แฃแแงแแคแแแแ แฉแแแแงแแแแแแแฃแแ แแแแจแ, แแกแแแ แชแแแกแ แแ แจแแชแแแแแก แจแแแแแแ. แแกแแแ, แแฃ แแฅแแแ แแซแแแ แแแแแชแแแแ แแแชแแแแ แก, แแแแแแแแแกแฌแแแแ, แ แแ แแ แแแกแขแ แฃแแแแขแแแแก แแคแแฅแขแฃแ แแ แแแแแงแแแแแ แแแแแชแแแแแแแก แแแแแฎแแแก, แแแแแชแแแแแแ แแ แคแฃแแ แฆแแ แก. แแแฎแแ แแ, แ แแ แแแแแฎแแแก แกแแจแฃแแแแแ แแฅแแแแ, แแแแ แแ แแแแ แกแฎแแแก, แแแกแแช แฉแแแแ แฃแแแ แจแแฃแซแแแ แแแแแ แกแแฅแแแก แแแแแแ, แแ แแกแแ แแก แแฅแแแแ แกแแจแฃแแแแแ, แ แแ แฃแกแแฎแกแ แแแแก แแแแ แแชแแแแก.
แแแแ แแแแแชแแแแ แแแกแขแ แฃแแแแขแแแ แแ แแแแแแฎแ แแแแ. แแฃ แแ แ แแแฅแแ, แจแแแแซแแแแ แแแฌแแ แแ แฃแคแ แ แกแฌแ แแคแ แแแแแฌแงแแแขแ แญแแแแแแฃแ แ แแแแแชแแแแแแก แแแฌแแแแแแก, แจแแแแฎแแแกแ แแ แแแแฆแแแแก แขแแฅแแแแแก แแแแแงแแแแแแ. แกแแแแแแ แฏแแแจแ, แกแแฅแแ แแฎแแแ แฎแแ แฏ-แกแแ แแแแแแก แแแแแแแก.
แ แแช แแแกแฌแแแแ:
- แแ แแ แกแแแแแก แแแคแ แแแ 25 แขแ แแ แแแ แแฃแแแ แแแกแแแแแแแแแแแแ;
- แคแ แแฎแแแแ แแงแแแแ แแฅแแแแ แแแ แแแขแแก แคแแแแแแแก แแแแแกแแแ แแ แแแ แแ แแแแแแแชแแแกแแแ;
- Spark-แจแ แขแแฎแ แแแ แฃแแแ แแงแแก แแแแแแแแกแแแฃแแ;
- แแแแแแแ, แแ แแกแแแแก แกแชแแแแ 2,5 แแแแแแแ แแแแแงแแคแแก แแแแแแแแ;
- แแแฎแแ แแกแฎแแแ แฏแแ แแแแแ แ แแฃแแแ, แแกแแแ แ แแแแ แช Spark-แแก แแแงแแแแแ;
- แแแแฏแแ แกแแแชแแแแฃแ แ แแแแแชแแแแแ แแแแแฎแแแก แกแแแชแแแแฃแ แแแแแฌแงแแแขแแแแแแแก;
- แแแแแ แฌแแแแก แแแ แแแแชแแ แกแฌแ แแคแแ, แแแแ แแ แแแงแแคแ แแแแแช แซแแแ แแ;
- แแ แแแแซแแแ, แ แแชแ แกแแคแฃแซแแแแแก แแแกแฌแแแแแแ, แแแฆแแชแแ แแแแแ แฃแแแ แแแแแแแ แ แจแแแ แแ แแแแแแ 1980-แแแ แฌแแแแจแ;
gnu parallel- แแก แแ แแก แฏแแแแกแแฃแ แ แ แแ, แงแแแแแ แฃแแแ แแแแแแงแแแแก แแแ;- Spark-แก แแแกแฌแแแก แจแแฃแแฃแแจแฃแแ แแแแแชแแแแแ แแ แแ แแแกแฌแแแก แขแแฎแ แแแแก แแแแ แแแแแแแ;
- แแแแแ แฌแแแก แแฅแแก แซแแแแแ แแแแ แ แแแแแแแแแ แแแ แขแแแ แแ แแแแแแแแแก แแแแแญแ แแกแแก;
- AWK-แแก แแกแแชแแแชแแฃแ แ แแแกแแแแแ แซแแแแแ แแคแแฅแขแฃแ แแ;
- แจแแแแซแแแแ แแแฃแแแแจแแ แแแ
stdinะธstdoutR แกแแ แแแขแแแแ แแ, แจแแกแแแแแแกแแ, แแแแแแงแแแแ แแแ แแแแกแแแแแจแ; - แญแแแแแแ แแแแแแแก แแแแฎแแ แชแแแแแแแก แฌแงแแแแแแ, S3-แก แจแแฃแซแแแ แแ แแแแแ แคแแแแแก แแแแฃแจแแแแแ;
- แแ แแแก แแแแแ แแแแก แแแแแแ แ แแแแแแ แแ แแก แแฅแแแแ แจแแแแฎแแแก แแแแแแแก แแแแแ แแแ แแแขแแแแแแชแแ;
- แแฃ แแชแแแแแ แแแแชแแแแแแก แฎแแแแ แแแขแแแแแแชแแแก, แแแแชแแ แแแแแแฃแขแแ แก แแแแก แแแแแแแแ;
- API แฃแแแ แแงแแก แแแ แขแแแ แแแแแงแแแแแแก แกแแแแ แขแแแแกแ แแ แแแฅแแแแแแแกแแแแก;
- แแฃ แแฅแแแแ แแแแแชแแแแแ แแแ แแแ แแ แแก แแแแแแแแแฃแแ, แฅแแจแแ แแแ แแแแแแ แแฅแแแแ!
แฌแงแแ แ: www.habr.com
