AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ

AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ
เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจชเฉœเฉเจนเจจเจพ เจนเฉˆ: เจฒเจฟเจ–เจค เจฆเฉ‡ เจ‡เฉฐเจจเฉ‡ เจฒเฉฐเจฌเฉ‡ เจ…เจคเฉ‡ เจ…เจฐเจพเจœเจ• เจนเฉ‹เจฃ เจฒเจˆ เจฎเฉˆเจ‚ เจฎเฉเจ†เจซเฉ€ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚เฅค เจคเฉเจนเจพเจกเจพ เจธเจฎเจพเจ‚ เจฌเจšเจพเจ‰เจฃ เจฒเจˆ, เจฎเฉˆเจ‚ เจนเจฐเฉ‡เจ• เจ…เจงเจฟเจ†เจ‡ เจจเฉ‚เฉฐ "เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ†" เจฆเฉ€ เจœเจพเจฃ-เจชเจ›เจพเจฃ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจœเฉ‹ เจ…เจงเจฟเจ†เจ‡ เจฆเฉ‡ เจธเจพเจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจœเจพเจ‚ เจฆเฉ‹ เจตเจพเจ•เจพเจ‚ เจตเจฟเฉฑเจš เจธเฉฐเจ–เฉ‡เจช เจ•เจฐเจฆเจพ เจนเฉˆเฅค

"เจฌเฉฑเจธ เจฎเฉˆเจจเฉ‚เฉฐ เจนเฉฑเจฒ เจฆเจฟเจ–เจพเจ“!" เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจ‡เจน เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจฎเฉˆเจ‚ เจ•เจฟเฉฑเจฅเฉ‹เจ‚ เจ†เจ‡เจ† เจนเจพเจ‚, เจคเจพเจ‚ "เจนเฉ‹เจฐ เจ–เฉ‹เจœเฉ€ เจฌเจฃเจจเจพ" เจ…เจงเจฟเจ†เจ‡ 'เจคเฉ‡ เจœเจพเจ“, เจชเจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ…เจธเจซเจฒเจคเจพ เจฌเจพเจฐเฉ‡ เจชเฉœเฉเจนเจจเจพ เจตเจงเฉ‡เจฐเฉ‡ เจฆเจฟเจฒเจšเจธเจช เจ…เจคเฉ‡ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉˆเฅค

เจฎเฉˆเจจเฉ‚เฉฐ เจนเจพเจฒ เจนเฉ€ เจตเจฟเฉฑเจš เจ•เฉฑเจšเฉ‡ เจกเฉ€เจเจจเจ เจ•เฉเจฐเจฎ (เจคเจ•เจจเฉ€เจ•เฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• SNP เจšเจฟเฉฑเจช) เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจธเฉˆเจธ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเจพ เจ•เฉฐเจฎ เจธเฉŒเจ‚เจชเจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจฌเจพเจ…เจฆ เจฆเฉ‡ เจฎเจพเจกเจฒเจฟเฉฐเจ— เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจฆเจฟเฉฑเจคเฉ‡ เจœเฉˆเจจเฉ‡เจŸเจฟเจ• เจธเจฅเจพเจจ (เจœเจฟเจธเจจเฉ‚เฉฐ SNP เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ) เจฌเจพเจฐเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจกเจพเจŸเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€เฅค R เจ…เจคเฉ‡ AWK เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจ•เฉเจฆเจฐเจคเฉ€ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ…เจคเฉ‡ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจธเฉ€, เจœเจฟเจธ เจจเจพเจฒ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจคเฉ‡เจœเจผ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจ‡เจน เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจ†เจธเจพเจจ เจจเจนเฉ€เจ‚ เจธเฉ€ เจ…เจคเฉ‡ เจ•เจˆ เจฆเฉเจนเจฐเจพเจ“ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€เฅค เจ‡เจน เจฒเฉ‡เจ– เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ•เฉเจ เจ—เจฒเจคเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฆเจฟเจ–เจพเจ‰เจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ เจ•เจฟ เจฎเฉˆเจ‚ เจ•เฉ€ เจ•เฉ€เจคเจพเฅค

เจชเจนเจฟเจฒเจพเจ‚, เจ•เฉเจ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจตเจฟเจ†เจ–เจฟเจ†เจตเจพเจ‚เฅค

เจกเจพเจŸเจพ

เจธเจพเจกเฉ‡ เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฟเจŸเฉ€ เจœเฉˆเจจเฉ‡เจŸเจฟเจ• เจ‡เจจเจซเจฐเจฎเฉ‡เจธเจผเจจ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจธเฉˆเจ‚เจŸเจฐ เจจเฉ‡ เจธเจพเจจเฉ‚เฉฐ 25 TB TSV เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ 5 เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฟเจ† เจนเฉ‹เจ‡เจ†, Gzip เจฆเฉเจ†เจฐเจพ เจธเฉฐเจ•เฉเจšเจฟเจค เจ•เฉ€เจคเจพ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจนเจฐ เจ‡เฉฑเจ• เจตเจฟเฉฑเจš เจฒเจ—เจญเจ— 240 เจšเจพเจฐ-เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจซเจพเจˆเจฒเจพเจ‚ เจธเจจเฅค เจนเจฐเฉ‡เจ• เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจฟเจ…เจ•เจคเฉ€ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• SNP เจฒเจˆ เจกเฉ‡เจŸเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡, ~ 2,5 เจฎเจฟเจฒเฉ€เจ…เจจ SNPs เจ…เจคเฉ‡ ~ 60 เจนเจœเจผเจพเจฐ เจฒเฉ‹เจ•เจพเจ‚ เจฆเจพ เจกเฉ‡เจŸเจพ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค SNP เจœเจพเจฃเจ•เจพเจฐเฉ€ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจฃ เจตเจพเจฒเฉ‡ เจจเฉฐเจฌเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เจˆ เจ•เจพเจฒเจฎ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเฉœเฉเจนเจจ เจฆเฉ€ เจคเฉ€เจฌเจฐเจคเจพ, โ€‹โ€‹เจตเฉฑเจ–-เจตเฉฑเจ– เจเจฒเฉ€เจฒเจพเจ‚ เจฆเฉ€ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ, เจ†เจฆเจฟเฅค เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡ เจตเจฟเจฒเฉฑเจ–เจฃ เจฎเฉเฉฑเจฒเจพเจ‚ เจตเจพเจฒเฉ‡ เจฒเจ—เจญเจ— 30 เจ•เจพเจฒเจฎ เจธเจจเฅค

เจŸเฉ€เจšเจพ

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจกเฉ‡เจŸเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจจเจพเจฒ, เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ—เฉฑเจฒ เจ‡เจน เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจเจพ เจธเฉ€ เจ•เจฟ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจœเจฟเจ†เจฆเจพเจคเจฐ SNP เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ SNP เจฒเจˆ เจฎเจพเจกเจฒ เจ…เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจพเจ‚เจ—เฉ‡. เจญเจพเจต, เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซ เจ‡เฉฑเจ• SNP 'เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจน เจธเจฟเฉฑเจ–เจฃเจพ เจชเจฟเจ† เจ•เจฟ 2,5 เจฎเจฟเจฒเฉ€เจ…เจจ SNPs เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเจพเจฒ เจœเฉเฉœเฉ‡ เจธเจพเจฐเฉ‡ เจฐเจฟเจ•เจพเจฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจœเจฟเฉฐเจจเฉ€ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ, เจœเจฒเจฆเฉ€ เจ…เจคเฉ‡ เจธเจธเจคเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเฉฐเจญเจต เจนเฉ‹ เจธเจ•เฉ‡ เจฎเฉเฉœ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ

เจ‡เฉฑเจ• เจขเฉเจ•เจตเฉ€เจ‚ เจ•เจฒเฉ€เจš เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ‡เจฃ เจฒเจˆ:

เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจนเจœเจผเจพเจฐ เจตเจพเจฐ เจ…เจธเจซเจฒ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ†, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเจตเจพเจฒ-เจ…เจจเฉเจ•เฉ‚เจฒ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจฆเฉ‡ เจ‡เฉฑเจ• เจนเจœเจผเจพเจฐ เจคเจฐเฉ€เจ•เฉ‡ เจฒเฉฑเจญเฉ‡ เจนเจจเฅค

เจชเจนเจฟเจฒเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจ‡เฉฑเจ• เจตเจพเจฐ เจตเจฟเฉฑเจš 25 เจŸเฉ€เจฌเฉ€ เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจ เจฆเจพ เจ•เฉ‹เจˆ เจธเจธเจคเจพ เจคเจฐเฉ€เจ•เจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจตเฉˆเจ‚เจกเจฐเจฌเจฟเจฒเจŸ เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฟเจŸเฉ€ เจตเจฟเฉฑเจš "เจฌเจฟเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจฒเจˆ เจเจกเจตเจพเจ‚เจธเจก เจฎเฉˆเจฅเจกเจœเจผ" เจ•เฉ‹เจฐเจธ เจฒเฉˆเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจธเฉ€ เจ•เจฟ เจ‡เจน เจšเจพเจฒ เจฌเฉˆเจ— เจตเจฟเฉฑเจš เจธเฉ€เฅค เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เจฐเจจ เจฒเจˆ Hive เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจธเจผเจพเจ‡เจฆ เจ‡เฉฑเจ• เจœเจพเจ‚ เจฆเฉ‹ เจ˜เฉฐเจŸเฉ‡ เจฒเฉฑเจ— เจœเจพเจฃเจ—เฉ‡เฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจพเจกเจพ เจกเฉ‡เจŸเจพ AWS S3 เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจฎเฉˆเจ‚ เจธเฉ‡เจตเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจ…เจฅเฉ€เจจเจพ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ S3 เจกเฉ‡เจŸเจพ เจฒเจˆ Hive SQL เจธเจตเจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ Hive เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‚เฉฐ เจธเฉˆเจŸ เจ…เจช/เจ‰เจญเจพเจฐเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจ‰เจธ เจกเฉ‡เจŸเจพ เจฒเจˆ เจญเฉเจ—เจคเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจœเจฟเจธ เจฆเฉ€ เจคเฉเจธเฉ€เจ‚ เจญเจพเจฒ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹เฅค

เจฎเฉˆเจ‚ เจเจฅเฉ€เจจเจพ เจจเฉ‚เฉฐ เจ†เจชเจฃเจพ เจกเฉ‡เจŸเจพ เจ…เจคเฉ‡ เจ‡เจธเจฆเจพ เจซเจพเจฐเจฎเฉˆเจŸ เจฆเจฟเจ–เจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจ‚ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจ เจŸเฉˆเจธเจŸ เจšเจฒเจพเจ:

select * from intensityData limit 10;

เจ…เจคเฉ‡ เจœเจฒเจฆเฉ€ เจนเฉ€ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเฉฐเจ—เจ เจฟเจค เจจเจคเฉ€เจœเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡. เจคเจฟเจ†เจฐ เจนเฉˆเฅค

เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ•เฉฐเจฎ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ ...

เจฎเฉˆเจจเฉ‚เฉฐ เจฎเจพเจกเจฒ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ เจธเจพเจฐเฉ€ SNP เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ•เฉฑเจขเจฃ เจฒเจˆ เจ•เจฟเจนเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจฎเฉˆเจ‚ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจšเจฒเจพเจˆ:


select * from intensityData 
where snp = 'rs123456';

...เจ…เจคเฉ‡ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเจจ เจฒเฉฑเจ—เจพเฅค เจ…เฉฑเจ  เจฎเจฟเฉฐเจŸเจพเจ‚ เจ…เจคเฉ‡ เจฌเฉ‡เจจเจคเฉ€ เจ•เฉ€เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ‡ 4 TB เจคเฉ‹เจ‚ เจตเฉฑเจง เจฆเฉ‡ เจฌเจพเจ…เจฆ, เจฎเฉˆเจจเฉ‚เฉฐ เจจเจคเฉ€เจœเจพ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจ‡เจ†เฅค เจฎเจฟเจฒเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจฆเฉเจ†เจฐเจพ เจเจฅเฉ€เจจเจพ เจšเจพเจฐเจœ, $5 เจชเฉเจฐเจคเฉ€ เจŸเฉˆเจฐเจพเจฌเจพเจˆเจŸเฅค เจ‡เจธ เจฒเจˆ เจ‡เจธ เจธเจฟเฉฐเจ—เจฒ เจฌเฉ‡เจจเจคเฉ€ เจจเฉ‚เฉฐ $20 เจ…เจคเฉ‡ เจ…เฉฑเจ  เจฎเจฟเฉฐเจŸ เจ‰เจกเฉ€เจ• เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ€เจฎเจค เจนเฉˆเฅค เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ 'เจคเฉ‡ เจฎเจพเจกเจฒ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ 38 เจธเจพเจฒ เจ‰เจกเฉ€เจ• เจ•เจฐเจจเฉ€ เจชเจˆ เจ…เจคเฉ‡ $50 เจฎเจฟเจฒเฉ€เจ…เจจ เจฆเจพ เจญเฉเจ—เจคเจพเจจ เจ•เจฐเจจเจพ เจชเจฟเจ†เฅค เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจธเจพเจกเฉ‡ เจฒเจˆ เจขเฉเจ•เจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค

เจ‡เจน Parquet เจตเจฐเจคเจฃ เจฒเจˆ เจœเจผเจฐเฉ‚เจฐเฉ€ เจธเฉ€ ...

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจ†เจชเจฃเฉ€เจ†เจ‚ Parquet เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจธเฉฐเจ—เจ เจจ เจจเจพเจฒ เจธเจพเจตเจงเจพเจจ เจฐเจนเฉ‹เฅค

เจฎเฉˆเจ‚ เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ TSVs เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจ•เฉ‡ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ Parquet เจซเจพเจ‡เจฒ. เจ‰เจน เจตเฉฑเจกเฉ‡ เจกเฉ‡เจŸเจพ เจธเฉˆเฉฑเจŸเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ•เจพเจฒเจฎ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ: เจนเจฐเฉ‡เจ• เจ•เจพเจฒเจฎ เจŸเฉˆเจ•เจธเจŸ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ‡ เจ‰เจฒเจŸ, เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€/เจกเจฟเจธเจ• เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจนเจฐ เจ‡เฉฑเจ• เจ•เจพเจฒเจฎ เจฆเฉ‡ เจคเฉฑเจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ…เจคเฉ‡ เจœเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจคเจพเจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ•เจพเจฒเจฎ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเฉ‹. เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจนเจฐเฉ‡เจ• เจซเจพเจˆเจฒ เจ‡เฉฑเจ• เจ•เจพเจฒเจฎ เจตเจฟเฉฑเจš เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฐเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจœเฉ‹ เจฎเฉเฉฑเจฒ เจฒเฉฑเจญ เจฐเจนเฉ‡ เจนเฉ‹ เจ‰เจน เจ•เจพเจฒเจฎ เจฆเฉ€ เจฐเฉ‡เจ‚เจœ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจธเจชเจพเจฐเจ• เจชเฉ‚เจฐเฉ€ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจธเจ•เฉˆเจจ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจธเจฎเจพเจ‚ เจฌเจฐเจฌเจพเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค

เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ•เฉฐเจฎ เจšเจฒเจพเจ‡เจ† AWS เจ—เจฒเฉ‚ เจธเจพเจกเฉ‡ TSVs เจจเฉ‚เฉฐ Parquet เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒ เจ•เจฐเจจ เจฒเจˆ เจ…เจคเฉ‡ เจจเจตเฉ€เจ‚เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจเจฅเฉ€เจจเจพ เจตเจฟเฉฑเจš เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจธ เจตเจฟเฉฑเจš เจฒเจ—เจญเจ— 5 เจ˜เฉฐเจŸเฉ‡ เจฒเฉฑเจ— เจ—เจเฅค เจชเจฐ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจฌเฉ‡เจจเจคเฉ€ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‡เจ†, เจคเจพเจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจ เจฒเจˆ เจฒเจ—เจญเจ— เจ‰เจจเจพ เจนเฉ€ เจธเจฎเจพเจ‚ เจ…เจคเฉ‡ เจฅเฉ‹เฉœเจพ เจ˜เฉฑเจŸ เจชเฉˆเจธเจพ เจฒเฉฑเจ—เจพเฅค เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจชเจพเจฐเจ•, โ€‹โ€‹เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ, เจฌเจธ เจ‡เฉฑเจ• TSV เจŸเฉเจ•เฉœเฉ‡ เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจ†เจชเจฃเฉ‡ เจชเจพเจฐเจ•เจตเฉ‡เจŸ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš เจชเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ…เจคเฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจนเจฐเฉ‡เจ• เจŸเฉเจ•เฉœเจพ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ เจฆเฉ‡ เจชเฉ‚เจฐเฉ‡ เจฐเจฟเจ•เจพเจฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเจจ เจฒเจˆ เจ•เจพเจซเฉ€ เจตเฉฑเจกเจพ เจธเฉ€, เจนเจฐเฉ‡เจ• เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ SNP เจธเจผเจพเจฎเจฒ เจธเจจ, เจ‡เจธเจฒเจˆ เจธเจชเจพเจฐเจ• เจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ เจธเจพเจฐเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ–เฉ‹เจฒเฉเจนเจฃเจพ เจชเจฟเจ†เฅค

เจฆเจฟเจฒเจšเจธเจช เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ, Parquet เจฆเฉ€ เจกเจฟเจซเจพเจฒเจŸ (เจ…เจคเฉ‡ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เฉ€เจคเฉ€) เจ•เฉฐเจชเจฐเฉˆเจธเจผเจจ เจ•เจฟเจธเจฎ, เจธเจจเฉˆเจชเฉ€, เจตเฉฐเจกเจฃ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจนเจฐเฉ‡เจ• เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเจฐ เจชเฉ‚เจฐเฉ‡ 3,5 GB เจกเฉ‡เจŸเจพเจธเฉˆเจŸ เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเจจ เจ…เจคเฉ‡ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉฐเจฎ 'เจคเฉ‡ เจซเจธเจฟเจ† เจนเฉ‹เจ‡เจ† เจธเฉ€เฅค

AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ

เจ†เจ“ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจธเจฎเจเฉ€เจ

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจ›เจพเจ‚เจŸเฉ€ เจ•เจฐเจจเจพ เจ”เจ–เจพ เจนเฉˆ, เจ–เจพเจธ เจ•เจฐเจ•เฉ‡ เจœเฉ‡เจ•เจฐ เจกเฉ‡เจŸเจพ เจตเฉฐเจกเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เจน เจฎเฉˆเจจเฉ‚เฉฐ เจœเจพเจชเจฆเจพ เจธเฉ€ เจ•เจฟ เจนเฉเจฃ เจฎเฉˆเจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจธเจพเจฐ เจธเจฎเจ เจ—เจฟเจ† เจนเจพเจ‚. เจฎเฉˆเจจเฉ‚เฉฐ เจธเจฟเจฐเจซ SNP เจ•เจพเจฒเจฎ เจฆเฉเจ†เจฐเจพ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€, เจฒเฉ‹เจ•เจพเจ‚ เจฆเฉเจ†เจฐเจพ เจจเจนเฉ€เจ‚. เจซเจฟเจฐ เจ•เจˆ SNPs เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจกเฉ‡เจŸเจพ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจซเจฟเจฐ Parquet เจฆเจพ "เจธเจฎเจพเจฐเจŸ" เจซเฉฐเจ•เจธเจผเจจ "เจธเจฟเจฐเจซเจผ เจคเจพเจ‚ เจนเฉ€ เจ–เฉเฉฑเจฒเฉเจนเจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจฎเฉเฉฑเจฒ เจฐเฉ‡เจ‚เจœ เจตเจฟเฉฑเจš เจนเฉ‹เจตเฉ‡" เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจชเฉ‚เจฐเฉ€ เจธเจผเจพเจจ เจตเจฟเฉฑเจš เจฆเจฟเจ–เจพเจเจ—เจพเฅค เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ–เจฟเฉฐเจกเฉ‡ เจนเฉ‹เจ เจ…เจฐเจฌเจพเจ‚ เจ•เจคเจพเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ›เจพเจ‚เจŸเฉ€ เจ•เจฐเจจเจพ เจ‡เฉฑเจ• เจฎเฉเจธเจผเจ•เจฒ เจ•เฉฐเจฎ เจธเจพเจฌเจค เจนเฉ‹เจ‡เจ†เฅค

AWS เจฏเจ•เฉ€เจจเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ "เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจตเจฟเจšเจฒเจฟเจค เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€ เจนเจพเจ‚" เจ•เจพเจฐเจจ เจฐเจฟเจซเฉฐเจก เจœเจพเจฐเฉ€ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจเจฎเจพเจœเจผเจพเจจ เจ—เจฒเฉ‚ 'เจคเฉ‡ เจ›เจพเจ‚เจŸเฉ€ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‡เจน 2 เจฆเจฟเจจเจพเจ‚ เจฒเจˆ เจšเฉฑเจฒเจฟเจ† เจ…เจคเฉ‡ เจ•เจฐเฉˆเจธเจผ เจนเฉ‹ เจ—เจฟเจ†.

เจตเฉฐเจก เจฌเจพเจฐเฉ‡ เจ•เฉ€?

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจธเจชเจพเจฐเจ• เจตเจฟเฉฑเจš เจญเจพเจ— เจธเฉฐเจคเฉเจฒเจฟเจค เจนเฉ‹เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจเฅค

เจซเจฟเจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎเจœเจผ เจตเจฟเฉฑเจš เจกเจพเจŸเจพ เจตเฉฐเจกเจฃ เจฆเจพ เจตเจฟเจšเจพเจฐ เจ†เจ‡เจ†เฅค เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ 23 เจนเจจ (เจ…เจคเฉ‡ เจ•เจˆ เจนเฉ‹เจฐ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฎเจพเจˆเจŸเฉ‹เจ•เฉŒเจ‚เจกเจฐเฉ€เจ…เจฒ เจกเฉ€เจเจจเจ เจ…เจคเฉ‡ เจ…เจฃเจฎเฉˆเจช เจ•เฉ€เจคเฉ‡ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹)เฅค
เจ‡เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ›เฉ‹เจŸเฉ‡ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเฉ‡เจตเฉ‡เจ—เจพ. เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ—เจฒเฉ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจธเจชเจพเจฐเจ• เจเจ•เจธเจชเฉ‹เจฐเจŸ เจซเฉฐเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจฒเจพเจˆเจจ เจœเฉ‹เฉœเจฆเฉ‡ เจนเฉ‹ partition_by = "chr", เจซเจฟเจฐ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฌเจพเจฒเจŸเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ
เจœเฉ€เจจเฉ‹เจฎ เจตเจฟเฉฑเจš เจ•เจˆ เจŸเฉเจ•เฉœเฉ‡ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เจธ เจจเฉ‡ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพเฅค เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจ†เจ•เจพเจฐ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจœเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจตเฉฑเจ–-เจตเฉฑเจ– เจฎเจพเจคเจฐเจพเจตเจพเจ‚ เจฆเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจธเจชเจพเจฐเจ• เจฆเฉเจ†เจฐเจพ เจ•เจฐเจฎเจšเจพเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจญเฉ‡เจœเฉ‡ เจ—เจ เจ•เฉฐเจฎ เจธเฉฐเจคเฉเจฒเจฟเจค เจจเจนเฉ€เจ‚ เจธเจจ เจ…เจคเฉ‡ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจชเฉ‚เจฐเฉ‡ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เฉเจ เจจเฉ‹เจก เจœเจฒเจฆเฉ€ เจ–เจคเจฎ เจนเฉ‹ เจ—เจ เจธเจจ เจ…เจคเฉ‡ เจตเจฟเจนเจฒเฉ‡ เจธเจจเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ•เฉฐเจฎ เจชเฉ‚เจฐเฉ‡ เจนเฉ‹ เจ—เจ เจธเจจ. เจชเจฐ เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• SNP เจฆเฉ€ เจฎเฉฐเจ— เจ•เฉ€เจคเฉ€, เจคเจพเจ‚ เจ…เจธเฉฐเจคเฉเจฒเจจ เจจเฉ‡ เจฆเฉเจฌเจพเจฐเจพ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจชเฉˆเจฆเจพ เจ•เฉ€เจคเฉ€เจ†เจ‚เฅค เจตเฉฑเจกเฉ‡ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎเจธ (เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจกเฉ‡เจŸเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚) 'เจคเฉ‡ SNPs เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ€ เจฒเจพเจ—เจค เจธเจฟเจฐเจซ 10 เจฆเฉ‡ เจ‡เฉฑเจ• เจ•เจพเจฐเจ• เจฆเฉเจ†เจฐเจพ เจ˜เจŸเฉ€ เจนเฉˆเฅค เจฌเจนเฉเจค เจ•เฉเจ, เจชเจฐ เจ•เจพเจซเจผเฉ€ เจจเจนเฉ€เจ‚เฅค

เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจ›เฉ‹เจŸเฉ‡ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฆเฉ‡ เจนเจพเจ‚ เจคเจพเจ‚ เจ•เฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพ?

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจ•เจฆเฉ‡ เจตเฉ€ 2,5 เจฎเจฟเจฒเฉ€เจ…เจจ เจชเจพเจฐเจŸเฉ€เจธเจผเจจ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจจเจพ เจ•เจฐเฉ‹เฅค

เจฎเฉˆเจ‚ เจธเจญ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจœเจพเจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจนเจฐเฉ‡เจ• SNP เจจเฉ‚เฉฐ เจตเฉฐเจกเจฟเจ†เฅค เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจญเจพเจ— เจฌเจฐเจพเจฌเจฐ เจ†เจ•เจพเจฐ เจฆเฉ‡ เจธเจจเฅค เจ‡เจน เจ‡เฉฑเจ• เจฎเจพเฉœเจพ เจตเจฟเจšเจพเจฐ เจธเฉ€. เจฎเฉˆเจ‚ เจ—เจฒเฉ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจจเจฟเจฐเจฆเฉ‹เจธเจผ เจฒเจพเจˆเจจ เจœเฉ‹เฉœเฉ€ partition_by = 'snp'. เจ•เฉฐเจฎ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเจพเฅค เจ‡เฉฑเจ• เจฆเจฟเจจ เจฌเจพเจ…เจฆ เจฎเฉˆเจ‚ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจ…เจคเฉ‡ เจฆเฉ‡เจ–เจฟเจ† เจ•เจฟ S3 เจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€, เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจ–เจคเจฎ เจ•เจฐ เจฆเจฟเฉฑเจคเจพเฅค เจ…เจœเจฟเจนเจพ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ—เจฒเฉ‚ S3 เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฒเฉเจ•เจตเฉ‡เจ‚ เจธเจฅเจพเจจ 'เจคเฉ‡ เจตเจฟเจšเจ•เจพเจฐเจฒเฉ€ เจซเจพเจˆเจฒเจพเจ‚ เจฒเจฟเจ– เจฐเจฟเจนเจพ เจธเฉ€, เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚, เจธเจผเจพเจ‡เจฆ เจ•เฉเจ เจฎเจฟเจฒเฉ€เจ…เจจ. เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจฎเฉ‡เจฐเฉ€ เจ—เจฒเจคเฉ€ เจฆเฉ€ เจ•เฉ€เจฎเจค เจ‡เฉฑเจ• เจนเจœเจผเจพเจฐ เจกเจพเจฒเจฐ เจคเฉ‹เจ‚ เจตเฉฑเจง เจนเฉˆ เจ…เจคเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจธเจฒเจพเจนเจ•เจพเจฐ เจจเฉ‚เฉฐ เจ–เฉเจธเจผ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ.

เจตเจฟเจญเจพเจ—เฉ€เจ•เจฐเจจ + เจ›เจพเจ‚เจŸเฉ€

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจ›เจพเจ‚เจŸเฉ€ เจ•เจฐเจจเจพ เจ…เจœเฉ‡ เจตเฉ€ เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเจชเจพเจฐเจ• เจจเฉ‚เฉฐ เจŸเจฟเจŠเจจ เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจตเฉฐเจกเจฃ เจฆเฉ€ เจฎเฉ‡เจฐเฉ€ เจ†เจ–เจฐเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจตเจฟเฉฑเจš เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฃเจพ เจ…เจคเฉ‡ เจซเจฟเจฐ เจนเจฐเฉ‡เจ• เจญเจพเจ— เจจเฉ‚เฉฐ เจ›เจพเจ‚เจŸเจฃเจพ เจธเจผเจพเจฎเจฒ เจธเฉ€เฅค เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจนเจฐเฉ‡เจ• เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจ•เจฐเฉ‡เจ—เจพ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ SNP เจกเฉ‡เจŸเจพ เจ‡เฉฑเจ• เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจธเฉ€เจฎเจพ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ•เฉเจ เจชเจพเจฐเจ•เฉเจเจŸ เจญเจพเจ—เจพเจ‚ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจธเฉ€เฅค เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจตเจฟเจญเจพเจœเจจเจฟเจค เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ›เจพเจ‚เจŸเจฃเจพ เจ‡เฉฑเจ• เจฎเฉเจธเจผเจ•เจฒ เจ•เฉฐเจฎ เจธเจพเจฌเจค เจนเฉ‹เจ‡เจ†เฅค เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจ•เจธเจŸเจฎ เจ•เจฒเฉฑเจธเจŸเจฐ เจฒเจˆ EMR เจตเจฟเฉฑเจš เจธเจตเจฟเจš เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจตเจงเฉ‡เจฐเฉ‡ เจฒเจšเจ•เจฆเจพเจฐ เจตเจฐเจ•เจซเจฒเฉ‹ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ…เฉฑเจ  เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ (C5.4xl) เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ•เจฒเจพเจˆเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€...

# 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')
  )

...เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ•เฉฐเจฎ เจ…เจœเฉ‡ เจตเฉ€ เจชเฉ‚เจฐเจพ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ† เจธเฉ€เฅค เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเจพเจฒ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเจพ: เจนเจฐเฉ‡เจ• เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเจฐ เจฒเจˆ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเฉฐเจก เจจเฉ‚เฉฐ เจตเจงเจพเจ‡เจ†, เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจพเจฒเฉ‡ เจจเฉ‹เจก เจตเจฐเจคเฉ‡ เจ—เจ, เจชเฉเจฐเจธเจพเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ (เจชเฉเจฐเจธเจพเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ) เจตเจฐเจคเฉ‡ เจ—เจ, เจชเจฐ เจนเจฐ เจตเจพเจฐ เจ‡เจน เจ…เฉฑเจงเฉ‡-เจฎเจพเจชเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจ—เจ, เจ…เจคเฉ‡ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเจฐ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจ—เจเฅค เจธเจญ เจ•เฉเจ เจฌเฉฐเจฆ เจนเฉ‹เจฃ เจคเฉฑเจ• เจ…เจธเจซเจฒ เจนเฉ‹เจฃ เจฒเจˆ.

เจฎเฉˆเจ‚ เจนเฉ‹เจฐ เจฐเจšเจจเจพเจคเจฎเจ• เจฌเจฃ เจฐเจฟเจนเจพ เจนเจพเจ‚

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจ•เจˆ เจตเจพเจฐ เจตเจฟเจธเจผเฉ‡เจธเจผ เจกเฉ‡เจŸเจพ เจฒเจˆ เจตเจฟเจธเจผเฉ‡เจธเจผ เจนเฉฑเจฒ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจนเจฐเฉ‡เจ• SNP เจฆเจพ เจ‡เฉฑเจ• เจธเจฅเจฟเจคเฉ€ เจฎเฉเฉฑเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‡เฉฑเจ• เจธเฉฐเจ–เจฟเจ† เจนเฉˆ เจœเฉ‹ เจ‡เจธเจฆเฉ‡ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจฆเฉ‡ เจจเจพเจฒ เจ…เจงเจพเจฐเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจธเจพเจกเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐเจจ เจฆเจพ เจ‡เฉฑเจ• เจตเจงเฉ€เจ† เจ…เจคเฉ‡ เจ•เฉเจฆเจฐเจคเฉ€ เจคเจฐเฉ€เจ•เจพ เจนเฉˆเฅค เจชเจนเจฟเจฒเจพเจ‚ เจฎเฉˆเจ‚ เจนเจฐเฉ‡เจ• เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจฆเฉ‡ เจ–เฉ‡เจคเจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจตเฉฐเจกเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ…เจนเฉเจฆเฉ‡ 1 - 2000, 2001 - 4000, เจ†เจฆเจฟเฅค เจชเจฐ เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจนเฉˆ เจ•เจฟ SNPs เจจเฉ‚เฉฐ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจตเจฟเฉฑเจš เจฌเจฐเจพเจฌเจฐ เจตเฉฐเจกเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจธเจฎเฉ‚เจน เจฆเฉ‡ เจ†เจ•เจพเจฐ เจฌเจนเฉเจค เจตเฉฑเจ–เจฐเฉ‡ เจนเฉ‹เจฃเจ—เฉ‡เฅค

AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจฎเฉˆเจ‚ เจ…เจนเฉเจฆเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‡เจฃเฉ€เจ†เจ‚ (เจฐเฉˆเจ‚เจ•) เจตเจฟเฉฑเจš เจตเฉฐเจกเจฃ เจฒเจˆ เจ†เจ‡เจ† เจนเจพเจ‚เฅค เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจกเจพเจ‰เจจเจฒเฉ‹เจก เจ•เฉ€เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจฎเฉˆเจ‚ เจตเจฟเจฒเฉฑเจ–เจฃ SNPs, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎเจธ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฌเฉ‡เจจเจคเฉ€ เจšเจฒเจพเจˆเฅค เจซเจฟเจฐ เจฎเฉˆเจ‚ เจนเจฐเฉ‡เจ• เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฆเจฟเฉฑเจคเฉ‡ เจ†เจ•เจพเจฐ เจฆเฉ‡ เจธเจฎเฉ‚เจนเจพเจ‚ (เจฌเจฟเจจ) เจตเจฟเฉฑเจš SNPs เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพเฅค เจฎเฉฐเจจ เจฒเจ“ 1000 SNPs เจนเจฐเฉ‡เจ•เฅค เจ‡เจธเจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ SNP-เจคเฉ‹เจ‚-เจธเจฎเฉ‚เจน-เจชเฉเจฐเจคเฉ€-เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจฐเจฟเจธเจผเจคเจพ เจฆเจฟเฉฑเจคเจพเฅค

เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ 75 SNPs เจฆเฉ‡ เจธเจฎเฉ‚เจน (เจฌเจฟเจจ) เจฌเจฃเจพเจ, เจ•เจพเจฐเจจ เจนเฉ‡เจ เจพเจ‚ เจฆเฉฑเจธเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

snp_to_bin <- unique_snps %>% 
  group_by(chr) %>% 
  arrange(position) %>% 
  mutate(
    rank = 1:n()
    bin = floor(rank/snps_per_bin)
  ) %>% 
  ungroup()

เจชเจนเจฟเจฒเจพเจ‚ เจธเจชเจพเจฐเจ• เจจเจพเจฒ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจธเจชเจพเจฐเจ• เจเจ—เจฐเฉ€เจ—เฉ‡เจธเจผเจจ เจคเฉ‡เจœเจผ เจนเฉˆ, เจชเจฐ เจตเจฟเจญเจพเจ—เฉ€เจ•เจฐเจจ เจ…เจœเฉ‡ เจตเฉ€ เจฎเจนเจฟเฉฐเจ—เจพ เจนเฉˆเฅค

เจฎเฉˆเจ‚ เจ‡เจธ เจ›เฉ‹เจŸเฉ€ (2,5 เจฎเจฟเจฒเฉ€เจ…เจจ เจ•เจคเจพเจฐเจพเจ‚) เจกเฉ‡เจŸเจพ เจซเจฐเฉ‡เจฎ เจจเฉ‚เฉฐ เจธเจชเจพเจฐเจ• เจตเจฟเฉฑเจš เจชเฉœเฉเจนเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€, เจ‡เจธเจจเฉ‚เฉฐ เจ•เฉฑเจšเฉ‡ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจœเฉ‹เฉœเจจเจพ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจจเจตเฉ‡เจ‚ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจ•เจพเจฒเจฎ เจฆเฉเจ†เจฐเจพ เจตเฉฐเจกเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€ 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(), เจ‡เจธเจฒเจˆ เจธเจชเจพเจฐเจ• เจœเจพเจฃเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจธเจจเฉ‚เฉฐ เจธเจพเจฐเฉ‡ เจจเฉ‹เจกเจพเจ‚ เจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพ เจซเจฐเฉ‡เจฎ เจญเฉ‡เจœเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉˆ เจœเฉ‡เจ•เจฐ เจกเฉ‡เจŸเจพ เจ†เจ•เจพเจฐ เจตเจฟเฉฑเจš เจ›เฉ‹เจŸเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเจพเจฐเฉ‡ เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจนเฉˆเฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚, เจธเจชเจพเจฐเจ• เจธเจฎเจพเจฐเจŸ เจฌเจฃเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฒเฉ‹เฉœ เจ…เจจเฉเจธเจพเจฐ เจกเจพเจŸเจพ เจตเฉฐเจกเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจฎเฉฐเจฆเฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค

เจ…เจคเฉ‡ เจฆเฉเจฌเจพเจฐเจพ, เจฎเฉ‡เจฐเฉ‡ เจตเจฟเจšเจพเจฐ เจจเฉ‡ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ: เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‡ เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ, เจฏเฉ‚เจจเฉ€เจ…เจจ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เฉ€เจคเจพ, เจ…เจคเฉ‡ เจซเจฟเจฐ, เจตเฉฐเจก เจฆเฉเจ†เจฐเจพ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ‡ เจ—เจ เจเจ—เจœเจผเฉˆเจ•เจŸเจฐเจพเจ‚ เจตเจพเจ‚เจ—, เจ‰เจน เจ…เจธเจซเจฒ เจนเฉ‹เจฃ เจฒเฉฑเจ—เฉ‡เฅค

AWK เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเฉ‚เจฒ เจ—เฉฑเจฒเจพเจ‚ เจธเจฟเจ–เจพเจˆเจ†เจ‚ เจœเจพ เจฐเจนเฉ€เจ†เจ‚ เจนเฉ‹เจฃ เจคเจพเจ‚ เจจเจพ เจธเฉŒเจ‚เจตเฉ‹เฅค เจฏเจ•เฉ€เจจเจจ เจ•เจฟเจธเฉ‡ เจจเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ 1980 เจฆเฉ‡ เจฆเจนเจพเจ•เฉ‡ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจ‡เจธ เจฌเจฟเฉฐเจฆเฉ‚ เจคเฉฑเจ•, เจธเจชเจพเจฐเจ• เจจเจพเจฒ เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ…เจธเจซเจฒเจคเจพเจตเจพเจ‚ เจฆเจพ เจ•เจพเจฐเจจ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ—เฉœเจฌเฉœ เจธเฉ€เฅค เจธเจผเจพเจ‡เจฆ เจชเฉ‚เจฐเจต-เจ‡เจฒเจพเจœ เจจเจพเจฒ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉเจงเจพเจฐเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ. เจฎเฉˆเจ‚ เจ•เฉฑเจšเฉ‡ เจŸเฉˆเจ•เจธเจŸ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎเจธ เจฆเฉ‡ เจ•เจพเจฒเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ "เจชเฉ‚เจฐเจต-เจตเจฟเจญเจพเจœเจจ" เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจธเจชเจพเจฐเจ• เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เฉ€เจคเฉ€เฅค

เจฎเฉˆเจ‚ เจธเจŸเฉˆเจ•เจ“เจตเจฐเจซเจฒเฉ‹ 'เจคเฉ‡ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจพเจฒเจฎ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจตเฉฐเจกเจฟเจ† เจœเจพเจตเฉ‡ เจ…เจคเฉ‡ เจชเจพเจ‡เจ† เจ‡เฉฐเจจเจพ เจตเจงเฉ€เจ† เจœเจตเจพเจฌ. AWK เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจŸเฉˆเจ•เจธเจŸ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจจเจคเฉ€เจœเฉ‡ เจญเฉ‡เจœเจฃ เจฆเฉ€ เจฌเจœเจพเจ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจฒเจฟเจ– เจ•เฉ‡ เจ•เจพเจฒเจฎ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจตเฉฐเจก เจธเจ•เจฆเฉ‡ เจนเฉ‹ stdout.

เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ…เจœเจผเจฎเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• Bash เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ–เฉ€ เจนเฉˆเฅค เจชเฉˆเจ• เจ•เฉ€เจคเฉ‡ TSVs เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ, เจซเจฟเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจตเจฐเจค เจ•เฉ‡ เจ…เจจเจชเฉˆเจ• เจ•เจฐเฉ‹ 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 MB เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€เฅค เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเจพ เจชเฉˆเจธเจพ เจจเจพ เจ—เฉเจ†เจ‰เจฃ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃเจพ เจชเจฟเจ† เจ•เจฟ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจธเจฎเจพเจจเจคเจพ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ. เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เฉฑเจ• เจฌเจฟเจฒเจ•เฉเจฒ เจ…เจฆเจญเฉเจค เจ•เจฟเจคเจพเจฌ เจตเจฟเฉฑเจš เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ 'เจคเฉ‡ เจกเจพเจŸเจพ เจธเจพเจ‡เฉฐเจธ เจฎเฉˆเจจเฉ‚เฉฐ เจธเจฎเจพเจจเจคเจพ 'เจคเฉ‡ เจœเฉ‡เจฐเฉ‹เจจ เจœเฉˆเจจเจธเฉˆเจ‚เจธ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจ…เจงเจฟเจ†เจ‡ เจฎเจฟเจฒเจฟเจ†. เจ‡เจธ เจคเฉ‹เจ‚ เจฎเฉˆเจจเฉ‚เฉฐ เจชเจคเจพ เจฒเฉฑเจ—เจพ gnu parallel, เจฏเฉ‚เจจเจฟเจ•เจธ เจตเจฟเฉฑเจš เจฎเจฒเจŸเฉ€เจฅเฉเจฐเฉˆเจกเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฌเจนเฉเจค เจนเฉ€ เจฒเจšเจ•เจฆเจพเจฐ เจขเฉฐเจ— เจนเฉˆเฅค

AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ
เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจจเจตเฉ€เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจตเจฟเจญเจพเจ—เฉ€เจ•เจฐเจจ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเจพ, เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจธเฉ€, เจชเจฐ เจ…เจœเฉ‡ เจตเฉ€ เจ‡เฉฑเจ• เจฐเฉเจ•เจพเจตเจŸ เจธเฉ€ - เจกเจฟเจธเจ• 'เจคเฉ‡ S3 เจ†เจฌเจœเฉˆเจ•เจŸเจธ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจคเฉ‡เจœเจผ เจจเจนเฉ€เจ‚ เจธเฉ€ เจ…เจคเฉ‡ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค เจ‡เจธ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เจน เจ•เฉ€เจคเจพ:

  1. เจฎเฉˆเจจเฉ‚เฉฐ เจชเจคเจพ เจฒเฉฑเจ—เจพ เจ•เจฟ S3 เจกเจพเจ‰เจจเจฒเฉ‹เจก เจชเฉœเจพเจ… เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเฉ‡ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆ, เจกเจฟเจธเจ• 'เจคเฉ‡ เจ‡เฉฐเจŸเจฐเจฎเฉ€เจกเฉ€เจเจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ–เจคเจฎ เจ•เจฐเจจเจพ. เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจฎเฉˆเจ‚ เจกเจฟเจธเจ• 'เจคเฉ‡ เจ•เฉฑเจšเจพ เจกเฉ‡เจŸเจพ เจฒเจฟเจ–เจฃ เจคเฉ‹เจ‚ เจฌเจš เจธเจ•เจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธ เจคเฉ‹เจ‚ เจตเฉ€ เจ›เฉ‹เจŸเจพ, เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจธเจธเจคเจพ, AWS 'เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚เฅค
  2. เจŸเฉ€เจฎ aws configure set default.s3.max_concurrent_requests 50 AWS CLI เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจฅเจฐเจฟเฉฑเจกเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจตเจพเจงเจพ เจนเฉ‹เจ‡เจ† เจนเฉˆ (เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš 10 เจนเจจ)เฅค
  3. เจฎเฉˆเจ‚ เจจเจพเจฎ เจตเจฟเฉฑเจš เจ…เฉฑเจ–เจฐ n เจฆเฉ‡ เจจเจพเจฒ, เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจชเฉ€เจก เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ‡เฉฑเจ• EC2 เจ‰เจฆเจพเจนเจฐเจจ 'เจคเฉ‡ เจธเจตเจฟเจš เจ•เฉ€เจคเจพเฅค เจฎเฉˆเจ‚ เจชเจพเจ‡เจ† เจนเฉˆ เจ•เจฟ n-เจ‡เจจเจธเจŸเฉˆเจ‚เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเจพเจตเจฐ เจฆเจพ เจจเฉเจ•เจธเจพเจจ เจฒเฉ‹เจกเจฟเฉฐเจ— เจธเจชเฉ€เจก เจตเจฟเฉฑเจš เจตเจพเจงเฉ‡ เจฆเฉเจ†เจฐเจพ เจฎเฉเจ†เจตเจœเจผเฉ‡ เจจเจพเจฒเฉ‹เจ‚ เจตเฉฑเจง เจนเฉˆเฅค เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ เจฎเฉˆเจ‚ c5n.4xl เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€เฅค
  4. เจฌเจฆเจฒเจฟเจ† gzip 'เจคเฉ‡ pigz, เจ‡เจน เจ‡เฉฑเจ• 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 เจŸเฉˆเจฐเจพเจฌเจพเจˆเจŸ เจชเฉˆเจ•เฉ‡เจœ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚เฅค

เจ‡เจธ เจŸเจตเฉ€เจŸ 'เจš 'TSV' เจฆเจพ เจœเจผเจฟเจ•เจฐ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจธเฉ€เฅค เจนเจพเจเฅค

เจจเจตเฉ‡เจ‚ เจชเจพเจฐเจธ เจ•เฉ€เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจธเจชเจพเจฐเจ• เจจเฉ‚เฉฐ เจธเฉฐเจ•เฉเจšเจฟเจค เจกเฉ‡เจŸเจพ เจชเจธเฉฐเจฆ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ…เจคเฉ‡ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจเจพ เจชเจธเฉฐเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค

เจนเฉเจฃ เจกเฉ‡เจŸเจพ เจ‡เฉฑเจ• เจ…เจจเจชเฉˆเจ•เจก (เจชเฉœเฉเจนเฉ‹: เจธเจพเจ‚เจเจพ) เจ…เจคเฉ‡ เจ…เจฐเจง-เจ†เจฐเจกเจฐเจก เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš S3 เจตเจฟเฉฑเจš เจธเฉ€, เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจฆเฉเจฌเจพเจฐเจพ เจธเจชเจพเจฐเจ• เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจ† เจธเจ•เจฆเจพ เจนเจพเจ‚เฅค เจ‡เฉฑเจ• เจนเฉˆเจฐเจพเจจเฉ€ เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจ‰เจกเฉ€เจ• เจ•เจฐ เจฐเจนเฉ€ เจธเฉ€: เจฎเฉˆเจ‚ เจœเฉ‹ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€ เจ‰เจน เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฆเฉเจฌเจพเจฐเจพ เจ…เจธเจซเจฒ เจฐเจฟเจนเจพ! เจธเจชเจพเจฐเจ• เจจเฉ‚เฉฐ เจ‡เจน เจฆเฉฑเจธเจฃเจพ เจฌเจนเฉเจค เจฎเฉเจธเจผเจ•เจฒ เจธเฉ€ เจ•เจฟ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจ…เจคเฉ‡ เจ‰เจฆเฉ‹เจ‚ เจตเฉ€ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจ‡เจน เจ•เฉ€เจคเจพ, เจ‡เจน เจชเจคเจพ เจšเจฒเจฟเจ† เจ•เจฟ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจญเจพเจ— เจธเจจ (95 เจนเจœเจผเจพเจฐ), เจ…เจคเฉ‡ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจตเจฐเจคเจฟเจ† coalesce เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจจเฉ‚เฉฐ เจตเจพเจœเจฌ เจธเฉ€เจฎเจพเจตเจพเจ‚ เจคเฉฑเจ• เจ˜เจŸเจพ เจฆเจฟเฉฑเจคเจพ, เจ‡เจธ เจจเจพเจฒ เจฎเฉ‡เจฐเจพ เจตเจฟเจญเจพเจœเจจ เจจเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ†เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจนเฉˆ เจ•เจฟ เจ‡เจน เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจ•เฉเจ เจฆเจฟเจจเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจนเฉฑเจฒ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเจฟเจ†เฅค เจฎเฉˆเจ‚ เจ†เจ–เจฐเจ•เจพเจฐ เจธเจชเจพเจฐเจ• เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐ เจฒเจฟเจ†, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉเจ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจฟเจ† เจ…เจคเฉ‡ เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจธเจชเจฒเจฟเจŸ เจชเจพเจฐเจ•เฉเจเจŸ เจซเจพเจˆเจฒเจพเจ‚ เจฌเจนเฉเจค เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจธเจจ (~ 200 KB)เฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจกเฉ‡เจŸเจพ เจ‰เฉฑเจฅเฉ‡ เจธเฉ€ เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€เฅค

AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ
เจฌเจนเฉเจค เจ›เฉ‹เจŸเจพ เจ…เจคเฉ‡ เจ…เจธเจฎเจพเจจ, เจธเจผเจพเจจเจฆเจพเจฐ!

เจธเจฅเจพเจจเจ• เจธเจชเจพเจฐเจ• เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจธเจงเจพเจฐเจจ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจธเจชเจพเจฐเจ• เจฆเจพ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ“เจตเจฐเจนเฉˆเฉฑเจก เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจšเจฒเจพเจ• เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจ•เฉ‡, เจฎเฉˆเจ‚ เจ—เจคเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจธเฉ€. เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• เจธเจชเจพเจฐเจ• เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจ†เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเฉ‹, เจ…เจคเฉ‡ เจซเจฟเจฐ เจจเจฟเจฐเจงเจพเจฐเจค Parquet เจ—เจฐเฉเฉฑเจช เจธเจŸเฉ‹เจฐเฉ‡เจœ (bin) เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเจชเจพเจฐเจ• เจกเฉ‡เจŸเจพ เจซเจฐเฉ‡เจฎ เจฒเฉ‹เจก เจ•เจฐเฉ‹เฅค เจฎเฉˆเจ‚ เจธเจพเจฐเจพ เจกเจพเจŸเจพ เจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจชเจฐ เจธเจชเจพเจฐเจ•เจฒเจพเจˆเจฐ เจจเฉ‚เฉฐ เจตเจฟเจญเจพเจ—เฉ€เจ•เจฐเจจ เจฆเฉ€ เจชเจ›เจพเจฃ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฟเจ†เฅค

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 เจธเจ•เจฟเฉฐเจŸ เจฆเจพ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจพเฅค เจฌเจนเฉเจค เจตเจงเฉ€เจ†, เจชเจฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจšเฉ€เจœเจผ เจฆเฉ€ เจชเฉเฉฐเจœ เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจฒเจˆ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจจเจนเฉ€เจ‚เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฎเฉˆเจ‚ เจ•เฉˆเจšเจฟเฉฐเจ— เจจเจพเจฒ เจšเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฟเจ† เจ•เจฟเจ‰เจ‚เจ•เจฟ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพ เจซเฉเจฐเฉ‡เจฎ เจจเฉ‚เฉฐ เจ•เฉˆเจธเจผ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€, เจคเจพเจ‚ เจธเจชเจพเจฐเจ• เจนเจฎเฉ‡เจธเจผเจพ เจ•เฉเจฐเฉˆเจธเจผ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจฎเฉˆเจ‚ 50 เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจตเจœเจผเจจ เจตเจพเจฒเฉ‡ เจกเฉ‡เจŸเจพเจธเฉˆเจŸ เจฒเจˆ 15 GB เจคเฉ‹เจ‚ เจตเฉฑเจง เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ€ เจนเฉ‹เจตเฉ‡เฅค

AWK โ€™เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจ“

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: AWK เจตเจฟเฉฑเจš เจเจธเฉ‹เจธเฉ€เจเจŸเจฟเจต เจเจฐเฉ‡ เจฌเจนเฉเจค เจ•เฉเจธเจผเจฒ เจนเจจเฅค

เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจนเจฟเจธเจพเจธ เจนเฉ‹เจ‡เจ† เจ•เจฟ เจฎเฉˆเจ‚ เจ‰เฉฑเจš เจ—เจคเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚. เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจผเจพเจจเจฆเจพเจฐ เจตเจฟเฉฑเจš เจฏเจพเจฆ เจนเฉˆ เจฌเจฐเฉ‚เจธ เจฌเจพเจฐเจจเฉ‡เจŸ เจฆเฉเจ†เจฐเจพ AWK เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเจผเจพเจจเจฆเจพเจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฌเจพเจฐเฉ‡ เจชเฉœเฉเจนเจฟเจ† เจœเจฟเจธ เจจเฉ‚เฉฐ "เจธเจนเจฟเจฏเฉ‹เจ—เฉ€ เจเจฐเฉ‡" เจœเจผเจฐเฉ‚เจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจ•เฉเฉฐเจœเฉ€-เจฎเฉเฉฑเจฒ เจฆเฉ‡ เจœเฉ‹เฉœเฉ‡ เจนเจจ, เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจ•เจพเจฐเจจ เจ•เจฐเจ•เฉ‡ AWK เจตเจฟเฉฑเจš เจตเฉฑเจ–เจฐเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจธเฉ€, เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจ‰เจจเฉเจนเจพเจ‚ เจฌเจพเจฐเฉ‡ เจฌเจนเฉเจคเจพ เจจเจนเฉ€เจ‚ เจธเฉ‹เจšเจฟเจ†เฅค เจฐเฉ‹เจฎเจจ เจšเฉ‡เจชเจฒเจฟเจ†เจ•เจพ เจฏเจพเจฆ เจ•เฉ€เจคเจพ เจ•เจฟ เจธเจผเจฌเจฆ "เจเจธเฉ‹เจธเฉ€เจเจŸเจฟเจต เจเจฐเฉ‡" เจธเจผเจฌเจฆ "เจ•เฉเฉฐเจœเฉ€-เจฎเฉเฉฑเจฒ เจœเฉ‹เฉœเจพ" เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจชเฉเจฐเจพเจฃเจพ เจนเฉˆเฅค เจญเจพเจตเฉ‡เจ‚ เจคเฉเจธเฉ€เจ‚ เจ—เฉ‚เจ—เจฒ เจเจจเจ—เฉเจฐเจพเจฎ เจตเจฟเฉฑเจš เจ•เฉเฉฐเจœเฉ€-เจฎเฉเฉฑเจฒ เจฆเฉ‡เจ–เฉ‹, เจคเฉเจธเฉ€เจ‚ เจ‰เฉฑเจฅเฉ‡ เจ‡เจน เจธเจผเจฌเจฆ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เฉ‹เจ—เฉ‡, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจนเจฟเจฏเฉ‹เจ—เฉ€ เจเจฐเฉ‡ เจฎเจฟเจฒเจฃเจ—เฉ‡! เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, "เจ•เฉเฉฐเจœเฉ€-เจฎเฉเฉฑเจฒ เจœเฉ‹เฉœเจพ" เจ…เจ•เจธเจฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเจพเจฒ เจœเฉเฉœเจฟเจ† เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจนเฉˆเจธเจผเจฎเฉˆเจช เจจเจพเจฒ เจ‡เจธเจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเจฎเจเจฆเจพเจฐเฉ€ เจตเจพเจฒเจพ เจนเฉˆเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจนเจฟเจธเจพเจธ เจนเฉ‹เจ‡เจ† เจ•เจฟ เจฎเฉˆเจ‚ เจธเจชเจพเจฐเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ†เจชเจฃเฉ‡ SNPs เจจเฉ‚เฉฐ เจฌเจฟเจจ เจŸเฉ‡เจฌเจฒ เจ…เจคเฉ‡ เจ•เฉฑเจšเฉ‡ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ‡เจนเจจเจพเจ‚ เจธเจนเจฟเจฏเฉ‹เจ—เฉ€ เจเจฐเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚เฅค

เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, 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 เจฆเฉ‡ เจจเจพเจฒ เจฎเฉ‡เจฐเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจชเฉเจฐเจฏเฉ‹เจ— เจคเฉ‹เจ‚ เจฌเจšเฉ‡ เจนเฉ‹เจ เจธเจพเจฐเฉ‡ เจ•เฉฑเจšเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎเจœเจผ 'เจคเฉ‡ เจซเฉ‹เจฒเจกเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ–เจฟเฉฐเจกเจพ เจฆเจฟเฉฑเจคเจพ เจนเฉˆ, เจนเฉเจฃ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจฌเจพเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ– เจธเจ•เจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจกเฉ‚เฉฐเจ˜เฉ‡ เจตเจฟเจญเจพเจœเจจเจฟเจค เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ 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. เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจกเจฟเจธเจ• 'เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเฉ€เจ†เจ‚ เจนเจจ (เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจฎเฉˆเจ‚ เจŸเฉˆเจฐเจพเจฌเจพเจˆเจŸ เจˆเจฌเฉ€เจเจธ เจตเจพเจฒเฉ€เจ…เจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ).

เจฆเฉ‚เจœเฉ‡ เจญเจพเจ— เจคเฉ‹เจ‚ เจ•เจจเจตเฉ‡เจ…เจฐ parallel เจธเจฎเฉ‚เจนเจพเจ‚ (เจฌเจฟเจจ) เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจฎ CSV c เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ catเจ…เจคเฉ‡ เจซเจฟเจฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจฏเจพเจค เจฒเจˆ เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค

เจ†เจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจธเจพเจฐเจฃ?

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจคเฉเจธเฉ€เจ‚ เจธเฉฐเจชเจฐเจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ stdin ะธ stdout เจ‡เฉฑเจ• เจ†เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเฉ‹เจ‚, เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจ‡เจธเจจเฉ‚เฉฐ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‹เฅค

เจคเฉเจธเฉ€เจ‚ เจธเจผเจพเจ‡เจฆ เจ†เจชเจฃเฉ€ Bash เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ‡เจธ เจฒเจพเจˆเจจ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ† เจนเฉ‹เจตเฉ‡เจ—เจพ: ...cat chunked/*_bin_{}_*.csv | ./upload_as_rds.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, เจ†เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ…เจจเฉเจตเจพเจฆ เจ•เฉ€เจคเฉ‡ เจ—เจ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเจฐเฉ‡เจฎ เจตเจฟเฉฑเจš เจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจซเจฟเจฐ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจนเฉเฉฐเจฆเจพ เจนเฉˆ .rds-เจซเจพเจ‡เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ aws.s3 S3 เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ†เฅค

RDS Parquet เจฆเฉ‡ เจœเฉ‚เจจเฉ€เจ…เจฐ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฐเจ—เจพ เจนเฉˆ, เจธเจชเฉ€เจ•เจฐ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฆเฉ‡ เจซเจฐเจฟเฉฑเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚เฅค

เจฌเจพเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸ เจ–เจคเจฎ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฌเฉฐเจกเจฒ เจฎเจฟเจฒเจฟเจ† .rds-S3 เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจซเจพเจˆเจฒเจพเจ‚, เจœเจฟเจธ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉเจธเจผเจฒ เจ•เฉฐเจชเจฐเฉˆเจธเจผเจจ เจ…เจคเฉ‡ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฑเจคเฉ€เฅค

เจฌเฉเจฐเฉ‡เจ• เจ†เจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ, เจธเจญ เจ•เฉเจ เจฌเจนเฉเจค เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ. เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ€ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ, R เจฆเฉ‡ เจ‰เจน เจนเจฟเฉฑเจธเฉ‡ เจœเฉ‹ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจฆเฉ‡ เจ…เจคเฉ‡ เจฒเจฟเจ–เจฆเฉ‡ เจนเจจ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‡เฉฑเจ• เจฎเฉฑเจงเจฎ เจ†เจ•เจพเจฐ เจฆเฉ‡ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ 'เจคเฉ‡ เจŸเฉˆเจธเจŸ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ•เฉฐเจฎ เจฒเจ—เจญเจ— เจฆเฉ‹ เจ˜เฉฐเจŸเจฟเจ†เจ‚ เจตเจฟเฉฑเจš C5n.4xl เจฎเฉŒเจ•เฉ‡ 'เจคเฉ‡ เจชเฉ‚เจฐเจพ เจนเฉ‹ เจ—เจฟเจ†เฅค

S3 เจธเฉ€เจฎเจพเจตเจพเจ‚

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจธเจฎเจพเจฐเจŸ เจฎเจพเจฐเจ— เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ, S3 เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจฎเฉˆเจ‚ เจšเจฟเฉฐเจคเจค เจธเฉ€ เจ•เจฟ เจ•เฉ€ S3 เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‹ เจ‡เจธเจจเฉ‚เฉฐ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจธเจจ. เจฎเฉˆเจ‚ เจซเจพเจˆเจฒ เจฆเฉ‡ เจจเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจเจฆเจพเจฐ เจฌเจฃเจพ เจธเจ•เจฆเจพ เจนเจพเจ‚, เจชเจฐ S3 เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเฉฑเจญเฉ‡เจ—เจพ?

AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ
S3 เจตเจฟเฉฑเจš เจซเฉ‹เจฒเจกเจฐ เจธเจฟเจฐเจซ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฒเจˆ เจนเจจ, เจ…เจธเจฒ เจตเจฟเฉฑเจš เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเจคเฉ€เจ• เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจจเจนเฉ€เจ‚ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ /. S3 FAQ เจชเฉฐเจจเฉ‡ เจคเฉ‹เจ‚เฅค

เจ…เจœเจฟเจนเจพ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ S3 เจนเฉˆเจธเจผ เจŸเฉ‡เจฌเจฒ เจœเจพเจ‚ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ-เจ…เจงเจพเจฐเจฟเจค เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ•เฉเฉฐเจœเฉ€ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ–เจพเจธ เจซเจพเจˆเจฒ เจฆเฉ‡ เจฎเจพเจฐเจ— เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจฌเจพเจฒเจŸเฉ€ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจพเจฐเจฃเฉ€ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเฉ‹เจšเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจธ เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจฐเจฟเจ•เจพเจฐเจก เจฎเฉฐเจจเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจเจฎเจพเจœเจผเจพเจจ 'เจคเฉ‡ เจฎเฉเจจเจพเจซเจผเจพ เจ•เจฎเจพเจ‰เจฃ เจฒเจˆ เจ—เจคเฉ€ เจ…เจคเฉ‡ เจ•เฉเจธเจผเจฒเจคเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเจจ, เจ‡เจธ เจฒเจˆ เจ‡เจน เจ•เฉ‹เจˆ เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ€ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เฉเฉฐเจœเฉ€-เจ-เจ-เจซเจพเจˆเจฒ-เจชเจพเจฅ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเฉฐเจคเฉเจฒเจจ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€: เจคเจพเจ‚ เจœเฉ‹ เจฎเฉˆเจจเฉ‚เฉฐ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจพ เจชเจตเฉ‡, เจชเจฐ เจ‡เจน เจ•เจฟ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจœเจฒเจฆเฉ€ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจ‡เจน เจชเจคเจพ เจšเจฒเจฟเจ† เจ•เจฟ เจฒเจ—เจญเจ— 20 เจนเจœเจผเจพเจฐ เจฌเจฟเจจ เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเจพเจ‰เจฃเจพ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจนเฉˆ. เจฎเฉˆเจจเฉ‚เฉฐ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ—เจคเฉ€ เจตเจฟเฉฑเจš เจตเจพเจงเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ (เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจธเจฟเจฐเจซ เจกเฉ‡เจŸเจพ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจฌเจพเจฒเจŸเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ, เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฒเฉเฉฑเจ•เจ…เจช เจŸเฉ‡เจฌเจฒ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃเจพ)เฅค เจชเจฐ เจนเฉ‹เจฐ เจชเฉเจฐเจฏเฉ‹เจ—เจพเจ‚ เจฒเจˆ เจ•เฉ‹เจˆ เจธเจฎเจพเจ‚ เจœเจพเจ‚ เจชเฉˆเจธเจพ เจจเจนเฉ€เจ‚ เจธเฉ€.

เจ•เจฐเจพเจธ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจฌเจพเจฐเฉ‡ เจ•เฉ€?

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ†: เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจฌเจฐเจฌเจพเจฆเฉ€ เจฆเจพ เจจเฉฐเจฌเจฐ เจ‡เฉฑเจ• เจ•เจพเจฐเจจ เจคเฉเจนเจพเจกเฉ€ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเจงเฉ€ เจจเฉ‚เฉฐ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆเฅค

เจ‡เจธ เจฎเฉŒเจ•เฉ‡ 'เจคเฉ‡, เจ†เจชเจฃเฉ‡ เจ†เจช เจคเฉ‹เจ‚ เจ‡เจน เจชเฉเฉฑเจ›เจฃเจพ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ: "เจ‡เฉฑเจ• เจฎเจฒเจ•เฉ€เจ…เจค เจตเจพเจฒเฉ€ เจซเจพเจˆเจฒ เจซเจพเจฐเจฎเฉˆเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจ‰เจ‚ เจ•เจฐเฉ‹?" เจ‡เจธ เจฆเจพ เจ•เจพเจฐเจจ เจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจ—เจคเฉ€ (gzipped CSV เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจนเฉ‹เจฃ เจตเจฟเฉฑเจš 7 โ€‹โ€‹เจ—เฉเจฃเจพ เจœเจผเจฟเจ†เจฆเจพ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจพ) เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจจเจพเจฒ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจตเจฟเฉฑเจš เจนเฉˆเฅค เจฎเฉˆเจ‚ เจฎเฉเฉœ เจตเจฟเจšเจพเจฐ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจ•เฉ€ R เจธเจชเจพเจฐเจ• เจฒเฉ‹เจก เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจชเจพเจฐเจ•เฉเจเจŸ (เจœเจพเจ‚ เจเจฐเฉ‹) เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจฒเฉ‹เจก เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจธเจพเจกเฉ€ เจฒเฉˆเจฌ เจตเจฟเฉฑเจš เจนเจฐ เจ•เฉ‹เจˆ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจคเจพเจ‚ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ…เจœเฉ‡ เจตเฉ€ เจฎเฉ‚เจฒ เจŸเฉˆเจ•เจธเจŸ เจกเฉ‡เจŸเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ เจฆเฉเจฌเจพเจฐเจพ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจšเจฒเจพ เจธเจ•เจฆเจพ เจนเจพเจ‚เฅค

เจ•เฉฐเจฎ เจฆเฉ€ เจตเฉฐเจก

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจจเฉŒเจ•เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจจเจพ เจ•เจฐเฉ‹, เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจจเฉ‚เฉฐ เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฆเจฟเจ“เฅค

เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ 'เจคเฉ‡ เจตเจฐเจ•เจซเจฒเฉ‹ เจจเฉ‚เฉฐ เจกเฉ€เจฌเฉฑเจ— เจ•เฉ€เจคเจพ เจนเฉˆ, เจนเฉเจฃ เจฎเฉˆเจจเฉ‚เฉฐ เจฌเจพเจ•เฉ€ เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
เจฎเฉˆเจ‚ เจชเจฐเจฟเจตเจฐเจคเจจ เจฒเจˆ เจ•เจˆ EC2 เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€, เจชเจฐ เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚ เจฎเฉˆเจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจจเฉŒเจ•เจฐเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจ…เจธเฉฐเจคเฉเจฒเจฟเจค เจฒเฉ‹เจก เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจกเจฐเจฆเจพ เจธเฉ€ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเจชเจพเจฐเจ• เจ…เจธเฉฐเจคเฉเจฒเจฟเจค เจญเจพเจ—เจพเจ‚ เจคเฉ‹เจ‚ เจชเฉ€เฉœเจค เจธเฉ€)เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฎเฉˆเจจเฉ‚เฉฐ เจชเฉเจฐเจคเฉ€ เจ•เฉเจฐเฉ‹เจฎเฉ‹เจธเฉ‹เจฎ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจตเจงเจพเจ‰เจฃ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจจเจนเฉ€เจ‚ เจธเฉ€, เจ•เจฟเจ‰เจ‚เจ•เจฟ AWS เจ–เจพเจคเจฟเจ†เจ‚ เจฒเจˆ 10 เจฎเฉŒเจ•เจฟเจ†เจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจกเจฟเจซเฉŒเจฒเจŸ เจธเฉ€เจฎเจพ เจนเฉˆเฅค

เจซเจฟเจฐ เจฎเฉˆเจ‚ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจจเฉŒเจ•เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ†เจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ–เจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพเฅค

เจชเจนเจฟเจฒเจพเจ‚, เจฎเฉˆเจ‚ 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)

เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจฆเฉ‡ เจจเจพเจฒ เจธเจฎเจพเจชเจค เจ•เฉ€เจคเจพ เจœเฉ‹ เจ†เจ•เจพเจฐ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจฎเจพเจจ เจธเจจเฅค เจซเจฟเจฐ เจœเฉ‹ เจ•เฉเจ เจฌเจšเจฟเจ† เจธเฉ€ เจ‰เจน เจฎเฉ‡เจฐเฉ€ เจชเจฟเจ›เจฒเฉ€ เจฌเฉˆเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ‡ เจฒเฉ‚เจช เจตเจฟเฉฑเจš เจธเจฎเฉ‡เจŸเจฃเจพ เจธเฉ€ for. เจ‡เจธ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฃ เจฒเจˆ เจฒเจ—เจญเจ— 10 เจฎเจฟเฉฐเจŸ เจฒเฉฑเจ—เฉ‡เฅค เจ…เจคเฉ‡ เจ‡เจน เจ‰เจธ เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจนเฉˆ เจœเฉ‹ เจฎเฉˆเจ‚ เจนเฉฑเจฅเฉ€เจ‚ เจ•เฉฐเจฎ เจฌเจฃเจพเจ‰เจฃ 'เจคเฉ‡ เจ–เจฐเจš เจ•เจฐเจพเจ‚เจ—เจพ เจœเฉ‡ เจ‰เจน เจ…เจธเฉฐเจคเฉเจฒเจฟเจค เจธเจจเฅค เจ‡เจธ เจฒเจˆ, เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจฎเฉˆเจ‚ เจ‡เจธ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจธเจนเฉ€ เจธเฉ€.

for DESIRED_CHR in "16" "9" "7" "21" "MT"
do
# Code for processing a single chromosome
fi

เจ…เฉฐเจค เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ shutdown เจ•เจฎเจพเจ‚เจก เจœเฉ‹เฉœเจฆเจพ เจนเจพเจ‚:

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 Parquet เจซเจพเจˆเจฒเจพเจ‚ เจฒเจˆ, เจคเจพเจ‚ เจ‡เจน เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจธเจฎเฉฑเจธเจฟเจ† เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจฎเฉ‡เจฐเฉ‡ เจธเจพเจฅเฉ€เจ†เจ‚ เจฒเจˆ เจจเจนเฉ€เจ‚เฅค เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจ†เจฐ เจชเฉˆเจ•เฉ‡เจœ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพเฅค

เจ‡เฉฑเจ• เจฌเจนเฉเจค เจนเฉ€ เจธเจงเจพเจฐเจจ เจชเฉˆเจ•เฉ‡เจœ เจฌเจฃเจพเจ“ เจ…เจคเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฌเจฃเจพเจ“ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ‡ เจ†เจฒเฉ‡-เจฆเฉเจ†เจฒเฉ‡ เจธเฉฐเจ—เจ เจฟเจค เจ•เฉเจ เจกเจพเจŸเจพ เจเจ•เจธเฉˆเจธ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจธเจผเจพเจฎเจฒ เจนเจจ get_snp. เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจธเจพเจฅเฉ€เจ†เจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจตเฉˆเจฌเจธเจพเจˆเจŸ เจตเฉ€ เจฌเจฃเจพเจˆ เจนเฉˆ pkgdown, เจคเจพเจ‚ เจœเฉ‹ เจ‰เจน เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจ…เจคเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฆเฉ‡เจ– เจธเจ•เจฃเฅค

AWK เจ…เจคเฉ‡ R เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ 25TB เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ

เจธเจฎเจพเจฐเจŸ เจ•เฉˆเจšเจฟเฉฐเจ—

เจฎเฉˆเจ‚ เจ•เฉ€ เจธเจฟเฉฑเจ–เจฟเจ† เจนเฉˆ: เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเจพ เจกเฉ‡เจŸเจพ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจคเจฟเจ†เจฐ เจนเฉˆ, เจคเจพเจ‚ เจ•เฉˆเจšเจฟเฉฐเจ— เจ†เจธเจพเจจ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เฉ€!

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฎเฉเฉฑเจ– เจตเจฐเจ•เจซเจฒเฉ‹เจœเจผ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเฉ‡ 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. เจ‡เจน เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน (เจฌเจฟเจจ) เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจตเจฟเจฒเฉฑเจ–เจฃ SNPs เจฆเฉ€ เจ‡เฉฑเจ• เจฒเฉœเฉ€ เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจœเจพเจ‚เจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เฉ€ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจชเจฟเจ›เจฒเฉ€ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจนเฉˆ เจœเจพเจ‚ เจจเจนเฉ€เจ‚เฅค เจ‡เจน เจ‡เจธ เจ•เฉ‹เจก เจจเจพเจฒ เจธเจฎเฉ‚เจน (เจฌเจฟเจจ) เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ SNPs เจจเฉ‚เฉฐ เจฒเฉ‚เจช เจ•เจฐเจจเจพ เจตเฉ€ เจ†เจธเจพเจจ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ:

# 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 เจŸเฉ€เจฌเฉ€ เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจ เจฆเจพ เจ•เฉ‹เจˆ เจธเจธเจคเจพ เจคเจฐเฉ€เจ•เจพ เจจเจนเฉ€เจ‚ เจนเฉˆ;
  • เจ†เจชเจฃเฉ€เจ†เจ‚ Parquet เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจธเฉฐเจ—เจ เจจ เจจเจพเจฒ เจธเจพเจตเจงเจพเจจ เจฐเจนเฉ‹;
  • เจธเจชเจพเจฐเจ• เจตเจฟเฉฑเจš เจญเจพเจ— เจธเฉฐเจคเฉเจฒเจฟเจค เจนเฉ‹เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจ;
  • เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ•เจฆเฉ‡ เจตเฉ€ 2,5 เจฎเจฟเจฒเฉ€เจ…เจจ เจญเจพเจ— เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจจเจพ เจ•เจฐเฉ‹;
  • เจ›เจพเจ‚เจŸเฉ€ เจ•เจฐเจจเจพ เจ…เจœเฉ‡ เจตเฉ€ เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเจชเจพเจฐเจ• เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ;
  • เจ•เจˆ เจตเจพเจฐ เจตเจฟเจธเจผเฉ‡เจธเจผ เจกเฉ‡เจŸเจพ เจฒเจˆ เจตเจฟเจธเจผเฉ‡เจธเจผ เจนเฉฑเจฒ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ;
  • เจธเจชเจพเจฐเจ• เจเจ—เจฐเฉ€เจ—เฉ‡เจธเจผเจจ เจคเฉ‡เจœเจผ เจนเฉˆ, เจชเจฐ เจตเจฟเจญเจพเจ—เฉ€เจ•เจฐเจจ เจ…เจœเฉ‡ เจตเฉ€ เจฎเจนเจฟเฉฐเจ—เจพ เจนเฉˆ;
  • เจœเจฆเฉ‹เจ‚ เจ‰เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเฉเจจเจฟเจ†เจฆ เจธเจฟเจ–เจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจคเจพเจ‚ เจจเฉ€เจ‚เจฆ เจจเจพ เจฒเจ“, เจธเจผเจพเจ‡เจฆ เจ•เจฟเจธเฉ‡ เจจเฉ‡ 1980 เจฆเฉ‡ เจฆเจนเจพเจ•เฉ‡ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจนเฉˆ;
  • gnu parallel - เจ‡เจน เจ‡เฉฑเจ• เจœเจพเจฆเฉ‚เจˆ เจšเฉ€เจœเจผ เจนเฉˆ, เจนเจฐ เจ•เจฟเจธเฉ‡ เจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ;
  • เจธเจชเจพเจฐเจ• เจ…เจธเฉฐเจ•เฉเจšเจฟเจค เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจชเจธเฉฐเจฆ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจเจพ เจชเจธเฉฐเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ;
  • เจธเจงเจพเจฐเจจ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจธเจชเจพเจฐเจ• เจฆเจพ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ“เจตเจฐเจนเฉˆเฉฑเจก เจนเฉเฉฐเจฆเจพ เจนเฉˆ;
  • AWK เจฆเฉ‡ เจธเจนเจฟเจฏเฉ‹เจ—เฉ€ เจเจฐเฉ‡ เจฌเจนเฉเจค เจ•เฉเจธเจผเจฒ เจนเจจ;
  • เจคเฉเจธเฉ€เจ‚ เจธเฉฐเจชเจฐเจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ stdin ะธ stdout เจ‡เฉฑเจ• เจ†เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเฉ‹เจ‚, เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจ‡เจธเจจเฉ‚เฉฐ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‹;
  • เจธเจฎเจพเจฐเจŸ เจฎเจพเจฐเจ— เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ, S3 เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ;
  • เจธเจฎเจพเจ‚ เจฌเจฐเจฌเจพเจฆ เจ•เจฐเจจ เจฆเจพ เจฎเฉเฉฑเจ– เจ•เจพเจฐเจจ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจกเฉ€ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเจงเฉ€ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆ;
  • เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจจเจพ เจ•เจฐเฉ‹, เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจจเฉ‚เฉฐ เจ‡เจน เจ•เจฐเจจ เจฆเจฟเจ“;
  • เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€ เจธเฉŒเจ– เจ…เจคเฉ‡ เจฒเจšเจ•เจคเจพ เจฒเจˆ API เจจเฉ‚เฉฐ เจธเจงเจพเจฐเจจ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ;
  • เจœเฉ‡ เจคเฉเจนเจพเจกเจพ เจกเฉ‡เจŸเจพ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจคเจฟเจ†เจฐ เจนเฉˆ, เจคเจพเจ‚ เจ•เฉˆเจšเจฟเฉฐเจ— เจ†เจธเจพเจจ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เฉ€!

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹