First of all: Welcome :)
This repository provides guidelines and best practices for Python development within the Molecular Informatics Vienna platform. Whether you're new to coding or an experienced developer, you'll find valuable information to help you write clean, maintainable, and collaborative code.
The Molecular Informatics Vienna platform consists of three teams:
- Christian-Doppler Laboratory for Molecular Informatics in the Bioscience team
- Cheminfo team
- comp3d team
This guide is designed to help everyone set up a molecular informatics project in Python quickly and easily, with a focus on creating reusable packages to maximize collaboration and efficiency.
- Project Structure
- Documentation
- Linting
- Version Control Basics
- Testing Fundamentals
- Continues Integration (CI)
- IDE Setup for Beginners
- Packaging and Distribution
- Advanced Continuous Integration (CI)
- Licensing
- Machine Learning Resources
If you're new to the group or to coding in general, we recommend starting with the Essential Practices. These will help you set up a solid foundation for writing good Python code.
- Begin by setting up your Integrated Development Environment (IDE).
- Learn about proper Project Structure.
- Familiarize yourself with our Documentation and Linting guidelines.
- Understand the basics of Version Control.
- Learn about Testing your code.
For those looking to dive deeper or contribute to more complex projects, check out the Advanced Topics section.
When working on code in the CD-Lab Molecular Informatics in the Biosciences, please ensure you follow these minimum requirements. A template or another one is provided to ensure all of these points (you can also checkout this repo). It should be copied to your project and used there.
- Use the specified linters isort, black and pylint.
- Use the specified documentation check with pydocstyle
- Make sure the test coverage is sufficient (include most common usecases - for more details see the test section).
- Distribute your library as a package. For details see the packaging section
For further reading see also the sections CI/CD Guidelines, advanced, linting, good documentation.
- Communications: Join our Mattermost channels. The Cheminfo team also has a team calendar and mailing list.
- Software project good-practices: Read through this software development guide and follow the coding best practices.
- Issues and bug reporting: Use the repository's issue tracker or the CD-Lab MiB dedicated issue repository for general requests.
After reading the guidelines, create a repo on the Mol-Info GitHub page, use the cookiecutter template to set it up locally, and push it to the remote repository.
Information about server usage and self-hosted runners can be found in our Best Practice Computer Resources Guide.
The Chemical Data Processing Toolkit (CDPKit) is an open-source cheminformatics toolkit. You can install it via:
pip install cdpkit
We encourage all members to contribute to this repository by suggesting improvements, reporting issues, or submitting pull requests. Please feel free to:
- Open a new issue with your feedback and suggestions.
- Make a pull request from your branch or fork.
- Comment on a commit.
Be sure to check out these related guides and materials:
- MolSSI Software Best Practices
- MolSSI Education resources
- Software Sustainability Institute Guides
- Chodera-Lab Software Development
If you have any questions or need support, please open an issue or contact Thomas Seidel ([email protected]) or Oliver Wieder ([email protected]).
Happy coding!
We also want to thank the BASF, in particular Conrad Stork and Jochen Sieg for their contributions.