https://github.com/imamachi-n/bio-js
JavaScript sources for biology
https://github.com/imamachi-n/bio-js
Last synced: 3 months ago
JSON representation
JavaScript sources for biology
- Host: GitHub
- URL: https://github.com/imamachi-n/bio-js
- Owner: Imamachi-n
- Created: 2018-12-08T11:20:14.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-01-15T13:34:57.000Z (over 6 years ago)
- Last Synced: 2025-01-21T02:08:10.873Z (5 months ago)
- Language: TypeScript
- Homepage:
- Size: 167 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# bio-js
Javascript sources for biology
## Read 2bit human genome
### 参考
.2bit format
https://genome.ucsc.edu/FAQ/FAQformat.html#format72bit のバイナリファイルのゲノム配列をバイナリエディタで開く。
内容を確認すると16進数で表現されており、基本的に32bit単位で情報が格納されている。
16進数(2^4, 4bit)なので、4bit × 8文字 = 32bitとなることから、8文字で32bit分(4byte)となる。例えば、ヘッダーの先頭は以下のようになっている。
```
4327411A 00000000 C7010000 00000000
```余談だが、上記のような32bitの16進数表記を`0x4327411A`のように記述する。
参考
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators| バイナリ | 説明 |
| -------- | ---------------------------------------------- |
| 4327411A | ファイルを作成したマシンのアーキテクチャの番号 |
| 00000000 | バージョン(基本、0とする) |
| C7010000 | ファイル内のシーケンス(配列)の数 |
| 00000000 | reversed(常に0) |`C701000`を16進数から10進数に変換すると、`3,338,731,520`bpとなり、ヒトゲノムのサイズである約3億bpであることがわかる。
続きのヘッダー情報を読み取っていく。
```
04636872 31F72800 00
```最初の4bite * 2 = 8biteは染色体名の長さを表している。また、それに続く染色体名はASCIIの文字コードに変換することで人間が解釈できる文字列となる。
ASCIIコード変換表 - wiki
https://ja.wikipedia.org/wiki/ASCII| バイナリ | 説明 |
| --------- | --------------------------------------------------------- |
| 04 | 染色体名の長さ(ここでは4文字・32bit()分) |
| 636872 31 | 染色体名(ここでは長さ4) |
| F72800 00 | ファイルの開始地点から比較した配列データの32bitオフセット |染色体名を変換すると、以下の通りになる。結果として、`chr1`を指していることがわかる。
| バイナリ | ASCIIコード |
| -- | -- |
| 63 | c |
| 68 | h |
| 72 | r |
| 31| 1 |このようにして、先頭にあるヘッダー情報を読み取っていくことができる。
## TODOリスト
* JavaScriptでバイナリファイルをインポートするライブラリを見つける。
* ヘッダー情報とシーケンス情報をバイナリから変換する方法を探す。## エンディアンとは
参考
https://www.uquest.co.jp/embedded/learning/lecture05.html## Uint8Array
参考
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Uint8ArrayUint8Array タイプは、8 ビット符号なし整数値の配列を表します。各要素は0で初期化されます。生成された Uint8Array オブジェクトのメソッドあるいは配列のような表記法 ("[]") を用いて、要素を参照することができます。