Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
大量塩基配列登録申請システムができるまで
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Keita Urashima
October 21, 2022
3.1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大量塩基配列登録申請システムができるまで
Keita Urashima
October 21, 2022
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
770
Believing is Seeing
oripsolob
1
220
Typedesign – Prime Four
hannesfritz
42
3.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
500
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
530
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
ラッコキーワード サービス紹介資料
rakko
1
5M
For a Future-Friendly Web
brad_frost
183
10k
The browser strikes back
jonoalderson
0
1.7k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Transcript
େྔԘجྻొਃγεςϜ͕ Ͱ͖Δ·Ͱ ,FJUB6SBTIJNB !VSTN 0DU ,BJHJPO3BJMT
w ࠃཱҨֶݚڀॴੜ໋ใɾ%%#+ηϯλʔ͕ w ԘجྻʢੜͷҨใʣΛσʔλϕʔεԽͯ͠ެ։͢ΔͨΊʹ w όΠΦݚڀऀ͔ΒԘجྻͷొਃΛड͚͚ΔࡍʹΘΕΔγε ςϜ w (PPHMFϑΥʔϜʹϑΝΠϧΞοϓϩʔυػೳ͕͍ͨΑ͏ͳΠϝʔδ w
ͨͩ͠ѻ͏ϑΝΠϧ͕େ͖͍ ຊͷ͓େྔԘجྻొਃγεςϜ
ݱঢ়ͱΰʔϧ ԘجྻͷొਃΛड͚͚Δͱ͖ɺݱঢ়Ͱ w (PPHMFϑΥʔϜͰҰใΛೖΕͯΒ͏ w ϝʔϧͰΓऔΓΛͯ͠ඞཁͳใΛώΞϦϯά͢Δ w TDQͰϑΝΠϧΛసૹͯ͠Β͏ ͷΑ͏ͳखॱͰߦΘΕ͍ͯͯɺͱͯखֻ͕͔ؒΔͷͰվળ͍ͨ͠
μΠϨΫτΞοϓϩʔυ "DUJWF4UPSBHF w ϒϥβ͔ΒετϨʔδαʔϏεʹϑΝΠϧΛΞοϓϩʔυͤ͞Δ w ΞϓϦέʔγϣϯʹ࣮ϑΝΠϧͷΘΓʹϑΝΠϧΛࣝผ͢ΔΩʔ͕ͬͯ ͘Δ w ඞཁͰ͋Ε͜ͷΩʔΛͬͯݩͷϑΝΠϧΛऔಘͰ͖Δ w
ΞοϓϩʔυͷϋϯυϦϯάΛετϨʔδαʔϏεʹؙ͛Ͱ͖Δ
Ξοϓϩʔυ͚ͩͰͳ͔ͬͨ w Ξοϓϩʔυ͞ΕͨϑΝΠϧͷதΛಡΈग़ͯ͠ϑΥʔϜͷ߲ΛҰ෦ࣗಈͰ ຒΊ͍ͨ w ϑΝΠϧ͕େ͖͍ͱۃΊ͍ͯ͠
None
4USFBNT"1* w ϒϥβ্ͰσʔλΛࡉΕʹಡΈॻ͖͢ΔΠϯλʔϑΣʔεΛఏڙ͢Δ w ରϑΝΠϧωοτϫʔΫϦΫΤετϨεϙϯεͳͲ w ϝϞϦരൃͷ৺ͳ͘େ͖ͳσʔλΛѻ͑Δ const res =
await fetch('https://example.com'); res.body // これが ReadableStream
<input type="file" /> <script> document.querySelector('input') .addEventListener('change', async (e) => {
const file = e.target.files[0]; const reader = file.stream().getReader(); for (;;) { const {done, value} = await reader.read(); if (done) { break; } console.log(value); } }); </script>
None
>NIES3753_TRINITY_DN0_c0_g1_i1_len285 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCTCTTCATCAAACTCCTGCGCTGCCACT GCAGCCAAACACACAGCTGACACAGCACCAAAATAACCCCACGCCCTGCAGCTACAG // >NIES3753_TRINITY_DN1_c3_g1_i1_len267 CCTCAACGGGAGCAGCTGATCAAACTACAGAACTCCACACGCCCCATGGCACCACTT GTGACGGGACGGGCCTGGAGGTGGATTCATATCAGCCCCACCACTCCAAGCATGCTG // >NIES3753_TRINITY_DN1_c4_g1_i1_len257 GTCCATACTGGTCCTAGCAGGTCCCAGAATCTACCTCTTGCTTGCACCATATGCACT
TTCTGCATGCCTGGCCACAGTCTGGCTTGAGCCATTGGATGTGCCAGTTAACAGTAT // >NIES3753_TRINITY_DN1_c2_g1_i1_len229 CCCCCCCCCCCCCCCCCCCTCTCCTGCTGCATCTGTGGGGACATGCCCATCTGAGAG GCAGCCCAGCACTCATTGCAGATCGCAAGACCACTCGCCTCAACTCCCTTCACCCCA //
const LF = '\n'.codePointAt(0); const CR = '\r'.codePointAt(0); const GT
= '>'.codePointAt(0); async function parse(file) { const reader = file.stream().getReader(); let done, value; let entriesCount = 0; let isBOL = true; while (({done, value} = await reader.read()), !done) { for (const byte of value) { if (isBOL && byte === GT) { entriesCount++; isBOL = false; } else { isBOL = byte === LF || byte === CR; } } } return {entriesCount}; }
ύʔεதʹϒϥβ͕ݻ·Δ w େ͖ͳϑΝΠϧΛύʔε͢Δͱλϒͷඳը͕ࢭ·ͬͯૢ࡞ʹԠ͠ͳ͍ঢ়ଶ ʹͳͬͯ͠·͏ w ύʔε͕ऴΘΔͱݩʹΔ w +BWB4DSJQUγϯάϧεϨουͳͷͰ$16ͳίʔυଞͷͯ͢ΛࢭΊ ͯ͠·͏Մೳੑ͕͋Δ w
ҰൠతʹTFU5JNFPVUͳͲͰଞͷॲཧׂ͕ΓࠐΉ༨Λ࡞ͬͯରԠ͢Δ
8FC8PSLFST w ϝΠϯεϨουͱશʹಠཱͨ͠ผεϨουͰॲཧΛ࣮ߦ͢ΔΈ w ϫʔΧϝΠϯεϨουͷඳըૢ࡞Λ͛ͳ͍ w ϫʔΧฒྻʹಈ࡞͢ΔͨΊϚϧνίΞΛ׆༻Ͱ͖Δ
const worker = new Worker('./worker.js'); worker.addEventListener('message', e => { console.log(e.data);
}); worker.postMessage('hello, world'); addEventListener('message', e => { postMessage(e.data.toUpperCase()); }); NBJOKT XPSLFSKT ᶃ ᶄ ᶅ ᶆ
addEventListener('message', async ({data: {file}}) => { try { const payload
= await parse(file); postMessage([null, payload]); } catch (err) { postMessage([err, null]); } }); async function parse(file) { const reader = file.stream().getReader(); // ... return {entriesCount}; }
ϋογϡͷܭࢉ͕͍ w "DUJWF4UPSBHFμΠϨΫτΞοϓϩʔυͷͱ͖ϑΝΠϧͱҰॹʹϋογϡ ΛૹΔ w େ͖ͳϑΝΠϧͩͱϋογϡͷܭࢉʹֻ͕͔࣌ؒΔ w "DUJWF4UPSBHFTQBSLNEͱ͍͏ϥΠϒϥϦΛͬͯϋογϡΛٻΊ ͍ͯΔ w
TQBSLNEಉछͷϥΠϒϥϦͷதͰτοϓϨϕϧʹ͍
8FC"TTFNCMZ w ओʹϒϥβͰ࣮ߦ͢ΔͨΊͷԾతͳػցޠ w +BWB4DSJQUͰ౸ୡͰ͖ͳ͍ωΠςΟϒίʔυʹ͍ۙੑೳ͕ಘΒΕΔ w 8FC"TTFNCMZʹΑΔϋογϡؔͷ࣮IBTIXBTN w TQBSLNEͱൺֱͯ͠ഒҎ্ͷվળ
None
github.com/ddbj/submission-mss