Code Monkey home page Code Monkey logo

nucleotide-swift's Introduction

rrbox

主要な開発言語

  • Swift

ジャンル

  • 2Dゲーム開発

主なプラットフォーム

  • macOS
  • iOS

nucleotide-swift's People

Contributors

rrbox avatar

Stargazers

 avatar  avatar

Watchers

 avatar

nucleotide-swift's Issues

高速化

SIMD を使用した配列オブジェクトを試作し, 転写, 相補鎖の生成などがどれだけ高速化されるか検証する.

相補塩基を出力する計算の高速化

Dictionary を使ったグラフを使用した方が早いかもしれない.

こちらの開発環境では, 以下の結果が出ている.

  • ビット演算による計算 : 10万塩基での計算で 0.165 ~ 0.210 sec
  • グラフ(元の塩基を key, 相補塩基を value にしたハッシュマップ)による計算 : 10万塩基での計算でおよそ 0.104 sec

おそらく, Dictionary を使用するとメモリ消費を犠牲に計算が高速になっていると考えられる. また, Dictionary には全ての複合塩基を変換するのは難しいというデメリットがあることもわかった(ビット演算はいかなる複合塩基も同じようにビット回転させるだけなので一つの関数だけですむ).

Unicode と UInt8 との相互変換

配列オブジェクト生成時間が, Nucleotide の値を介する方法よりも高速になる可能性がある。実際に測ってみて検討する。

N と -(gap) の rawValue

今は 0b11111111 にしているが, GC含有率を計算することなどを考えると, 0 にするべきなのだろうか.
CG含有率など, 特定の塩基を検索する場合は N を除外するべきか?

GitHub action

  • Swift 5.6 で動くかをチェック
  • Swift 5.5 に変更する

命名

baseConvertToUnicode
convertBaseToUnicode

README.md と Wiki を充実させたい

記載したい事項は以下の通りです(思いつき次第追加しましょう).

  • このパッケージの特徴(わざわざこのパッケージを使う理由)
  • API の詳細(メモリ管理や計算速度についても解説したい)

相補鎖

相補鎖を生成する際は, 変換後の配列を逆転させた方が正しい.

Tm 値の計算

プライマーの設計などで, 短めのオリゴヌクレオチドの Tm 値を計算する必要がある. コード上で計算できると便利.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.