Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
テンクーでのClojure活用事例
Search
OHTA Shogo
July 14, 2023
Technology
0
320
テンクーでのClojure活用事例
2023/07/13 ClojureエンジニアLT&交流会
OHTA Shogo
July 14, 2023
Tweet
Share
More Decks by OHTA Shogo
See All by OHTA Shogo
軽量デバッグツールPostmortemの紹介.pdf
athos
1
200
Clojure 1.10 概要紹介
athos
3
630
やってみる!clojure.spec
athos
4
1k
kitchen-async: a promising (?) Promise library, or a poor man's core.async
athos
3
460
Clojure 1.9 概要紹介
athos
4
1.4k
ここ最近のClojureScript
athos
5
1.7k
(= ? (+ nREPL Docker))
athos
0
520
clojure.specの話
athos
3
2.3k
clojure.specの話(仮)
athos
2
350
Other Decks in Technology
See All in Technology
20250413_湘南kaggler会_音声認識で使うのってメルス・・・なんだっけ?
sugupoko
1
390
TopAppBar Composableをカスタムする
hunachi
0
170
似たような課題が何度も蘇ってくるゾンビふりかえりを撲滅するため、ふりかえりのテーマをフォーカスしてもらった話 / focusing on the theme
naitosatoshi
0
390
Tokyo dbt Meetup #13 dbtと連携するBI製品&機能ざっくり紹介
sagara
0
430
テキスト解析で見る PyCon APAC 2025 セッション&スピーカートレンド分析
negi111111
0
280
Amazon CloudWatch Application Signals ではじめるバーンレートアラーム / Burn rate alarm with Amazon CloudWatch Application Signals
ymotongpoo
5
310
ブラウザのレガシー・独自機能を愛でる-Firefoxの脆弱性4選- / Browser Crash Club #1
masatokinugawa
1
390
От ручной разметки к LLM: как мы создавали облако тегов в Lamoda. Анастасия Ангелова, Data Scientist, Lamoda Tech
lamodatech
0
300
.mdc駆動ナレッジマネジメント/.mdc-driven knowledge management
yodakeisuke
24
11k
アセスメントで紐解く、10Xのデータマネジメントの軌跡
10xinc
1
360
さくらの夕べ Debianナイト - さくらのVPS編
dictoss
0
180
食べログが挑む!飲食店ネット予約システムで自動テスト無双して手動テストゼロを実現する戦略
hagevvashi
1
160
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
99
5.5k
Site-Speed That Sticks
csswizardry
5
480
Rails Girls Zürich Keynote
gr2m
94
13k
Statistics for Hackers
jakevdp
798
220k
The Pragmatic Product Professional
lauravandoore
33
6.5k
Documentation Writing (for coders)
carmenintech
69
4.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
Music & Morning Musume
bryan
47
6.5k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Become a Pro
speakerdeck
PRO
27
5.3k
Transcript
ςϯΫʔͰͷ$MPKVSF׆༻ࣄྫ $MPKVSFΤϯδχΞ-5ˍަྲྀձ גࣜձࣾςϯΫʔ !BUIPT
$MPKVSF-5@0965 ࣗݾհ w !BUIPT w ͔Β$MPKVSFΛ৮Γ࢝ΊΔ w ʹςϯΫʔೖࣾ w $MPKVSF
4DSJQU ίϯτϦϏϡʔλ 2
$MPKVSF-5@0965 ςϯΫʔͷաڈͷൃද 3 $MPKVSFDPOK 4FRVFODFBOE$PODVSSFOU1SPDFTTJOH GPS)VHF(FOPNJD%BUB https://youtu.be/ipNru1QSeWc 4IJCVZBMJTQ5FDI5BML
ςϯΫʔͰͷ$MPKVSFͷ׆༻ࣄྫ $MPKVSFͰͷή ϊϜղੳͱΤϯδχΞϦϯά https://youtu.be/ltdMlYLsb3I?t=2947
$MPKVSF-5@0965 ΞδΣϯμ w ςϯΫʔͷհ w ςϯΫʔͰͷ$MPKVSFͷΘΕํ w $MPKVSFΛ͏خ͠͞ 4
$MPKVSF-5@0965 ςϯΫʔͷհ
$MPKVSF-5@0965 ͲΜͳձࣾʁ 6 ໊ࣾ גࣜձࣾςϯΫʔ (Xcoo, Inc.) දऔక ଜ ༟
ઃཱ 20114݄1 ελοϑ 44໊ Web https://xcoo.co.jp ॴࡏ ౦ژจژ۠ຊڷ2-40-8 ࢿຊۚ 1ԯԁ ೝূ ISO/IEC 27001 (ISMS) ݈߁ܦӦ༏ྑ๏ਓ2021 ༀࣄ ୈҰछҩྍػثൢചۀऀ ҩྍػثۀऀ ߴཧҩྍػثൢചۀ/ି༩ۀऀ ใٕज़Ͱҩྍʹߩݙ ࣾձ࣮ͷՍ͚ڮ ή ϊϜҩྍͷτʔλϧιϦϡʔγϣϯιϑτΣΞ ͕Μή ϊϜҩྍͷใղੳ෦ΛτʔλϧͰαϙʔτ
$MPKVSF-5@0965 ͕Μή ϊϜҩྍ 7 ͕Μࡉ๔ͷή ϊϜͷมԽΛಛఆ ͦͷή ϊϜͷมԽʹ߹Θͤͯ ࠷దͳ࣏ྍɾஅɾ༧Λߦ͏
ۙɺή ϊϜͷมԽʹ߹ΘͤͨࢠඪతༀͷొʹΑΓɺ͕Μͷ࣏ྍ͕ܶతʹվળ T A G C A T G G G G C A T T A G C A T C A T
$MPKVSF-5@0965 ։ൃνʔϜߏ 8 Analysis Database Report όΠΦΠϯϑΥϚςΟΫεͷΞϧΰϦζϜܥ σʔλͷΞάϦήʔγϣϯ ߴͳݕࡧ
6*8FCܥ ҩֶతݟʹͱ͍ͮͯఆϩδοΫ Infrastructure + $ISPWJTΛӡ༻͢ΔͨΊͷճΓ ֤πʔϧϥΠϒϥϦ࣮ ͦͷଞͷࣾγεςϜ։ൃ Chrovisͷ։ൃνʔϜΤϯδχΞ20ਓఔ
$MPKVSF-5@0965 ςϯΫʔͰͷ$MPKVSFͷΘΕํ
$MPKVSF-5@0965 ։ൃن 10 ϦϙδτϦ ιʔείʔυͷϑΝΠϧ DMK DMKT DMKD
ιʔείʔυߦ DMK DMKT DMKD ϓϧϦΫΤετ Ҏ߱ ˞ݱࡏ
$MPKVSF-5@0965 ςϯΫʔ͕։ൃ͢Δ044 w $ISPWJTؔ࿈ͷ044IUUQTHJUIVCDPNDISPWJTͰެ։͞Ε͍ͯΔ DMKBNή ϊϜղੳͰΑ͘ΘΕΔϑΝΠϧܗࣜͷೖग़ྗΞϧΰϦζϜͷ࣮ WBSJUZมҟͷදهܗࣜ )(74˱7$'
ؒͷม DMKIHWT)(74ه๏ͷύʔαɾϑΥʔϚολ DMKEFDPOTUSVDUTJHTมҟύλʔϯ͔Βͷมҟγάωνϟͷಉఆ EVYIVOE%69༥߹Ҩࢠͷݕग़ FUDFUD 11
$MPKVSF-5@0965 Α͘ΘΕΔϑΝΠϧܗࣜ w '"452 ԘجྻͱͦͷΫΦϦςΟ ֤Ԙج͕Ͳͷఔͷ͔֬Β͠͞ͰಡΊ͔ͨ ͷใΛه w 4".#".
֤ྻΛϦϑΝϨϯεྻʹରͯ͠ΞϥΠϝϯτ ҐஔΛಉఆ ͨ݁͠ՌΛه w 7$'#$' มҟίʔϧʹΑͬͯಉఆ͞ΕͨมҟΛه 12 '"452 4". #". 7$' #$' ΞϥΠϯϝϯτ มҟίʔϧ
$MPKVSF-5@0965 DMKBNͷར༻ྫ 13 (require '[cljam.io.sam :as sam]) (with-open [r (sam/reader
"in.bam") w (sam/writer "out.bam")] (sam/write-header w (sam/read-header r)) (sam/write-refs w (sam/read-refs r) (->> (sam/read-alignments r) (sam/write-alignments w))) (require '[cljam.io.vcf :as vcf]) (with-open [r (vcf/reader "in.vcf") w (vcf/writer "out.vcf")] (->> (vcf/read-variants r) (vcf/write-variants w))) 4".#".ͷಡΈॻ͖ 7$'#$'ͷಡΈॻ͖ (… {:qname "HWI-ST216_0147:5:48:13963:160437#0/1", :flag 0, :rname "chr1", :pos 23000088, :end 23000123, :mapq 255, :seq "TATAGGATTTGTTTGTTGTGTTTAGGTGGGTATAGT", :qual "HFHHHHEHHHHFHHHHEHFHHHHBHGBFFE>EGCFC", :cigar "36M", …} …) (… {:chr "19", :pos 111, :ref "A", :alt ["C"], :qual 9.6, :filter nil, :FORMAT (:GT :HQ), :NA00001 {:GT "0|0", :HQ (10 10)}, :NA00002 {:GT "0|0", :HQ (10 10)}, …} …)
$MPKVSF-5@0965 ࣮ࡍͷγεςϜͰΘΕΔπʔϧɾϥΠϒϥϦ܈ 14 GSPN4FRVFODFBOE$PODVSSFOU1SPDFTTJOHGPS)VHF(FOPNJD%BUB
$MPKVSF-5@0965 $MPKVSFΛ͏خ͠͞
$MPKVSF-5@0965 γʔέϯεʹΑΔσʔλදݱ w ή ϊϜղੳͰΘΕΔϑΝΠϧαΠζ͕େ͖͘ͳΓ͕ͪ ώτͷή ϊϜྻԯԘج ϑΝΠϧͰेʙඦ(#ΦʔμʔʹͳΔ͜ͱ
ϑΝΠϧશମͷ༰ϝϞϦ্ʹࡌΒͳ͍ w ͜ΕΒͷେ͖ͳσʔλΛԆγʔέϯεͱͯ͠දݱ͢Δ͜ͱͰɺ$MPKVSFͰ ࣗવʹॲཧͰ͖Δ 16
$MPKVSF-5@0965 ฒྻԽ w σʔλ͕େ͖͍ͱॲཧ࣌ؒ͘ͳΓ͕ͪ σʔλαΠζʹΑͬͯύΠϓϥΠϯશମͷ࣮ߦͰҎ্͔͔Δ͜ͱ ఆഒͷߴԽ͕ޮՌతͳέʔεগͳ͘ͳ͍ w $MPKVSFͰجຊతͳσʔλܕϩʔΧϧଋറ͕Πϛϡʔλϒϧͳ͜ͱͰɺ
ϚϧνεϨουʹΑΔฒྻԽ͕༰қ w ςϯΫʔͰɺฒྻͷ੍ޚͷ͔͢͠͞ΒεϨουϓʔϧϥΠϒϥϦ $MBZQPPMF͕Α͘ΘΕΔ 17
$MPKVSF-5@0965 3&1-Ͱͷ୳ࡧ w ίʔυʹखΛண͚Δલͷ3&1-Ͱͷࢼߦࡨޡ "OBMZTJTνʔϜͷϓϩμΫτ։ൃʮԿΛͲ͏࡞Δ͔ ͔͢ ʯ͕࣮ࡍͷσʔλΛ ݟͳ͕Βܾ·Δݚڀ։ൃతͳଆ໘Λͭ͜ͱ͋Δ w
Ͳ͜ͰσόοάڥΛ࡞ΕΔ VCFSKBS͑͋͞Εɺαʔό্%PDLFSίϯςφͷڥͰ$MPKVSFͷ3&1-Λ ্ཱͪ͛ͯΞϓϦέʔγϣϯͷڥΛ͑ΒΕΔ ιέοτ3&1-Λ͑ϦϞʔτσόοά༰қ 18
$MPKVSF-5@0965 σʔλੳʹ͓͚ΔڧΈ w DG$MPKVSFGPS%BUB4DJFODFJOUIF3FBM8PSMEGSPN$MPKVSFDPOK w +7.͕ेߴͰɺ+BWBͷϥΠϒϥϦ๛ w 5FDI"TDFOU4DJ$MPKΛத৺ʹ$MPKVSFͷσʔλੳɾ౷ܭղੳɾػցֶश ϥΠϒϥϦ͕׆ൃʹ։ൃ͞Ε͍ͯΔ w
3&1-Ͱࢼߦࡨޡ͍͢͠ w ·ͱͳύοέʔδཧγεςϜ͕͋Δ😎 19
$MPKVSF-5@0965 ͍Ζ͍ΖͳϓϥοτϑΥʔϜͰ͑Δ w ςϯΫʔͰͷར༻ྫ $MPKVSF PO+7. ղੳπʔϧɺ8FCαʔϏε όοΫΤϯυ
$MPKVSF4DSJQU8FCαʔϏε ϑϩϯτΤϯυ #BCBTILB$-*πʔϧɺεΫϦϓςΟϯά w #BCBTILBBTCFUUFSγΣϧεΫϦϓτ #BCBTILBଞͷίϚϯυͱΈ߹Θ͍ͤͯ͘͢ɺେྔͷϑΝΠϧ͕ੜ͞Ε Δॲཧͷूܭʹศར $MPKVSFͷศརͳίϨΫγϣϯΛඋ͑ɺͦͷؾʹͳΕεϨου͑Δɺ͍ग़ ͕͋ΔεΫϦϓτݴޠͱͯ͠׆༻Ͱ͖Δ 20
$MPKVSF-5@0965 ·ͱΊ w ςϯΫʔͰ$ISPWJTΛ͡Ίͱͨ͠γεςϜͷେ෦Λ$MPKVSFΛͬͯ ։ൃ͍ͯ͠Δ w $MPKVSFͷγʔέϯεॲཧɾฒྻԽͷ༰қ͞ή ϊϜղੳͷڊେͳσʔλΛ ѻ͏ͷʹద͠ɺ3&1-ʹΑΔߴͳϑΟʔυόοΫݚڀ։ൃతͳࢼߦࡨޡ ͷ͢͠͞ʹߩݙ͍ͯ͠Δ
w ΞϧΰϦζϜدΓ͔ΒXFCدΓͷࣄ·Ͱ͍Ζ͍Ζ͋Γָ͍͠ʂ✌ Т ✌ w ڵຯ͕͋Δํͥͻֻ͓͚Λʂ 21