viroiddb
scikit-bio
viroiddb | scikit-bio | |
---|---|---|
2 | 2 | |
5 | 838 | |
- | 1.4% | |
0.0 | 8.8 | |
about 1 year ago | 6 days ago | |
Vue | Python | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
viroiddb
-
Why I Use Nim instead of Python for Data Processing
That's great. However the method that you use to find the canonical representative [1] is quadratic (when the string has length N, there are N rotations and for each rotation you need to check N characters to determine whether this is earlier than the best on that you have found so far). For large strings you would probably want to switch to one of the linear minimal string rotation algorithms [2].
[1] https://github.com/Benjamin-Lee/viroiddb/blob/main/scripts/c...
[2] https://en.wikipedia.org/wiki/Lexicographically_minimal_stri...
scikit-bio
- What are some of the bioinformatic projects I could do on python as a beginner?
-
Why I Use Nim instead of Python for Data Processing
You make a fair point that using optimized numerical libraries instead of string methods will be ridiculously fast because they're compiled anyway. For example, scikit-bio does just this for their reverse complement operation [1]. However, they use an 8 bit representation since they need to be able to represent the extended IUPAC notation for ambiguous bases, which includes things like the character N for "aNy" nucleotide [2]. One could get creative with a 4 bit encoding and still end up saving space (assuming you don't care about the distinction between upper versus lowercase characters in your sequence [2]). Or, if you know in advance your sequence is unambiguous (unlikely in DNA sequencing-derived data) you could use the 2 bit encoding. When dealing with short nucleotide sequences, another approach is to encode the sequence as an integer. I would love to see a library—Python, Nim, or otherwise—that made using the most efficient encoding for a sequence transparent to the developer.
[1] https://github.com/biocore/scikit-bio/blob/b470a55a8dfd054ae...
[2] https://en.wikipedia.org/wiki/Nucleic_acid_notation
[3]
What are some alternatives?
benchmarks - Some benchmarks of different languages
PrimesResult - The results of the Dave Plummer's Primes Drag Race
nimpy - Nim - Python bridge
nimpylib - Some python standard library functions ported to Nim
nimtorch - PyTorch - Python + Nim
biofast - Benchmarking programming languages/implementations for common tasks in Bioinformatics
Arraymancer - A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends
RecursiveFactorization.jl
Primes - Prime Number Projects in C#/C++/Python