bioconda-recipes
Biopython
Our great sponsors
bioconda-recipes | Biopython | |
---|---|---|
5 | 31 | |
1,564 | 4,167 | |
1.3% | 2.0% | |
10.0 | 9.6 | |
2 days ago | 4 days ago | |
Shell | Python | |
MIT License | GNU General Public License v3.0 or later |
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.
bioconda-recipes
-
Why should academic researchers use Rust?
Rust makes distribution and maintenance near trivial. My lab develops a fairly widely-used tool, salmon, for the quantification of transcript expression from RNA-seq data. This tool is written in C++14, and has a substantial number of dependencies. The process of updating the tool (e.g. bumping dependencies) and cutting a new release is painful. To maintain widespread availability, we distribute this tool using bioconda which uses it's own CI and setup to build new releases for (in our case) Linux and MacOS. Things break all the time. For example, recently, they bumped the compiler used to build packages. This changed some default "implementation defined" behavior, causing previously functioning code to fail. We didn't find this locally, because we didn't test that specific compiler version. When we tried to release a new version, we had to go back and fix things etc. This is not just because different compilers exist, but because the C++ specification is soooo complicated and the set of undefined and implementation defined behavior is sooo broad that it's very brittle and it's easy for things to "break" via bitrot. However, the stability provided by Rust has been phenomenal so far. In our code, we only use stable Rust features, and we have benefited tremendously from the empirical guarantee that valid Rust code (except in exceptional cases like latent bugs in the language) will remain valid. While not all crates follow it religiously, there is a reasonable respect for semantic versioning. Thus, cutting a new release of one of our Rust tools is often as simple as just updating the Cargo.toml (and Cargo.lock in the case of applications), tagging a new release in GitHub, and letting the bioconda CI do it's business with the tagged artifacts. The build "scripts" are almost always trivial because the builds just work, across platforms, across CIs, etc. Now, new projects like cargo dist look like they make this process even simpler.
-
Software engineers: consider working on genomics
I contribute to Nextflow core (https://nf-co.re/) It's more of a collection of pipelines than traditional software, but there are users all around the world and a good community.
Most of the packages on bioconda (https://bioconda.github.io/) are open source. But you probably want to find a sub-field that interests you most before finding a project.
In grad school, we also had an ex-google software engineer volunteer with us one day a week. It was very impactful for many members of the lab to learn good engineering practices, and it wasn't at all like the sentiment others in this thread are expressing where engineers were "janitors".
-
Conda's Contrasting Command Clarification
Answering this because I believe there is no way other than looking at their "build.sh" in the recipes (e.g., in the build.sh of MOSCA, you can see the symbolic link in the 7th line will be mosca.py). One thing you can do to find the main script is also to run "find ~/anaconda3 (or miniconda3) -name *name_of_the_tool*" to find most of their scripts.
-
How to mix separated versions of Python in the cleanest way
In my world (research science) we usually use anaconda, which is just a slightly higher-level wrapper around python virtual envs. But they also maintain more repositories of various modules that scientists need. e.g. https://bioconda.github.io/
-
Seq: A programming language for high-performance computational genomics
Seems like there's a conda packaging on the works: https://github.com/bioconda/bioconda-recipes/pull/29660
Biopython
- Invitación a proyecto - Biopython en Español
- Biopython – Python Tools for Computational Molecular Biology
-
comparing the similarity between a set of protein sequences
Usearch will do all-against-all comparisons, cluster sequences, and produce alignments for each cluster. You can set the clustering threshold (proportion of residues identical). The alignments are in fasta format, which is pretty standard. If all you want is basic similarity it might be easiest to just write something that calculates normalized Hamming distances (typically called p-distances in the molecular evolution literature) between pairs of sequences. I suspect the biopython fasta reader (you can install biopython from https://biopython.org/) will be good enough.
-
u/Responsible-Gas3852 comments on "Why is Cancer so Hard to Cure?"
Yes, the computing tool for biological computation.
-
My boss is considering letting me take a programming course if I have some good reasons why.
Beside that their core lectures to non-computer scientists are public (survey), workshops by software carpentry move around the globe. Maybe your intent to seed hands-on knowledge is in similar tune before heading for biopython, bioperl, bioawk. It doesn't hurt to tap into resources initially written for non-labrats either, e.g. about regular expressions by programming historian.
- Can you run ScanProsite locally?
- How to iterate over the whole GRCh38 genome with python?
-
Help they’re turning me into a programmer
Well, what language do you want to learn? What is your background so far? Assuming it is more on the side of biology, software carpentry's Python may eventually lead to biopython? Though there equally is a chance for AWK (Hack the planet's text! and bioawk...
-
Biology related exercices and "challenges" to train by myself
I think you mind find something of a community around BioPython, which might be helpful. Just looking at the capabilities will probably be instructive as well.
-
Joining the Open Source Development Course
Python is the main programming language I use nowadays. In particular numpy and pandas are of course extremely useful. I also use biopython package - a collection of software tools for biological computation written in Python by an international group of researchers and developers.
What are some alternatives?
pyenv-virtualenv - a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv)
RDKit - The official sources for the RDKit library
TeamTeri - Bioinformatics on GCP, AWS or Azure
biotite - A comprehensive library for computational molecular biology
adam - ADAM is a genomics analysis platform with specialized file formats built using Apache Avro, Apache Spark, and Apache Parquet. Apache 2 licensed.
Numba - NumPy aware dynamic Python compiler using LLVM
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
Pandas - Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
seq - A high-performance, Pythonic language for bioinformatics
PyDy - Multibody dynamics tool kit.
getting-started-with-genomics-tools-and-resources - Unix, R and python tools for genomics and data science
weblogo - WebLogo 3: Sequence Logos redrawn