Releases: VerisimilitudeX/DNAnalyzer
DNAnalyzer v3.5.0-beta.0
Introduction
This release introduces full batch FASTA file support, quantitative insights into disease-associated gene expression sites, annotations for CFTR sequences, and parallelized codon mapping for even faster data processing. Additionally, it addresses several major compatibility bugs on Linux and uses Multi-Task Learning (MTL) to further improve performance by learning multiple machine learning tasks at the same time.
DNAnalyzer currently takes just 11 minutes to conduct analyses on a full human genome running on an M4 Max MacBook Pro, a 47% reduction on average from v3.0.0-beta.0
. The end goal for DNAnalyzer is to be able to run on a mobile device in mere seconds.
Of course, this release would not have been possible without contributions from the computational biology research community, and we are grateful to the 43 returning and first-time contributors for their commits, discussion posts, and issues. Please continue reading for more updates and the full change log.
Updates to Citations
If you utilize this software for personal, institutional, or company purposes, please cite DNAnalyzer using:
Acharya, P. (2022). Democratizing ML-powered DNA analysis through efficient on-device analysis and interpretive tools. (Version 3.5.0-beta.0) [Computer software]. https://github.com/VerisimilitudeX/DNAnalyzer
What's Changed
Features
- Genes and analysis parameters by @i2kmt in #379
- Make a full FASTA implementation by @Nv7-GitHub in #391
- Add basic FastQ implementation by @Nv7-GitHub in #399
- Genes and their evolutionary background involved in diseases by @VerisimilitudeX in #398
- CFTR Sequence by @Karzinisierung in #406
- CFTR Annotations by @Karzinisierung in #408
Fixes
- Fixes Undocumented class found JAVA-D1000 by @VerisimilitudeX in #392
- Fix broken lines of code badge by @VerisimilitudeX in #393
- Fix RBC error from Grace C by @VerisimilitudeX in #418
- Fix Deepsource issues for #422 by @ishche in #424
Code Improvements
- Parallelize build codon map by @garyglatfelter in #407
- Switch to personal PayPal by @VerisimilitudeX in #389
- Update goals by @VerisimilitudeX in #388
Documentation Updates
- Add Armaan to citation by @VerisimilitudeX in #412
- Update README.md by @IcebergSnow in #414
- Fix typos and broken links in contribution guides by @taylorreiter in #425
Styling and Formatting
- Style: format code with Autopep8 and Google Java Format by @deepsource-autofix in #450 and other PRs.
- [ImgBot] Optimize images by @imgbot in #396
Miscellaneous
- Better Linux instructions for downloading by @LimesKey in #390
- Create
codeql.yml
by @VerisimilitudeX in #404 - Intro Spring Boot by @MartinGallauner in #427
New Contributors
- @i2kmt made their first contribution in #379
- @Karzinisierung made their first contribution in #406
- @IcebergSnow made their first contribution in #413
- @taylorreiter made their first contribution in #425
- @Mrigankkh made their first contribution in #431
Full Changelog: v3.0.0-beta.0...v3.5.0-beta.0
Meet DNAI: A ML-Based Analysis of DNA
Note: Some features mentioned below will be rolling out to users over the next couple of weeks as we haven't finished verifying its reliability
Today, we are proud to introduce DNA.I., a groundbreaking open source project that brings the power of machine learning to DNA analysis. DNAnalyzer is the first and only tool that lets you explore, understand, and discover the secrets of your DNA sequences with ease and elegance. DNAnalyzer is built on DNA.I., a revolutionary ML-based framework that can reveal the hidden patterns and properties of DNA sequences, such as gene expression, methylation, transcription factors, and more.
DNA.I. uses cutting-edge deep learning models and techniques to learn from massive genomic data and generate stunning insights. DNA.I. can also do amazing things like sequence alignment, motif discovery, and annotation. DNA.I. is designed to be flexible and modular, so you can tailor your analysis pipelines and integrate your own data sources.
Some of the amazing features of DNAnalyzer v3.0.0-beta.0 are:
- A beautiful and intuitive graphical user interface (GUI) that lets you easily upload your DNA sequences, choose the analysis options, and see the results in gorgeous visualizations.
- A powerful command-line interface (CLI) that gives you more control and functionality for those who love to work in a terminal environment.
- A rich collection of pre-trained models and datasets that cover a wide range of DNA analysis tasks, such as gene expression prediction, methylation detection, transcription factor binding site identification, and more.
- A comprehensive documentation that guides you through how to install, use, and extend DNAnalyzer and DNA.I.
- A community forum where you can connect with other users, ask questions, share feedback, report issues, and contribute to the development of the project.
- We believe that DNAnalyzer will be an invaluable and delightful resource for researchers, students, educators, and enthusiasts who want to explore the fascinating world of DNA. We welcome any suggestions, comments, or contributions that can help us make our project better and more accessible and beneficial for everyone.
To download the new DNAnalyzer, please visit our GitHub repository: https://github.com/VerisimilitudeX/DNAnalyzer/releases
To learn more about DNA.I. and how it works, please read our upcoming research paper (releasing on 8/31/2023): A ML-Based Analysis of DNA
As always, thank you for your support and interest in DNAnalyzer! 🧬
What's Changed
- Adds a background video to the website by @ArchontisKostis in #336
- JAVA-D1001 adds javadoc to method by @MartinGallauner in #322
- Unnecessary imports removed. by @Rishav1707 in #346
- Revert "Unnecessary imports removed." by @VerisimilitudeX in #349
- Boolean literal is redundant. by @Rishav1707 in #347
- Fix unsafe usage of getResource by @Ravina-Deogadkar in #335
- Add Additional testcases by @Ravina-Deogadkar in #340
- Adds test case for launching the GUI by @LimesKey in #350
- Update Gradle from V2 --> V2.3.3 by @LimesKey in #351
- Automatic downloading, Automatic GUI display, Automatic Gradlew building in one simple executable file by @LimesKey in #339
- Deepsource Wrong argument order in test assertions fix by @LimesKey in #353
- Add Rating GUI by @Ravina-Deogadkar in #355
- Executable installer and GUI launcher by @LimesKey in #354
- Changed wording prompt to allow for better understanding for ChatGpt by @LimesKey in #365
- Updating Java download link by @LimesKey in #366
- [AI] Human-friendly Analysis by @VerisimilitudeX in #364
- Update README.md by @VerisimilitudeX in #363
- New Feature - AI Analysis by @VerisimilitudeX in #369
- refactor: Use stream.allMatch in isRandomDNA by @xlxs4 in #374
New Contributors
- @MartinGallauner made their first contribution in #322
- @Rishav1707 made their first contribution in #346
- @xlxs4 made their first contribution in #374
Full Changelog: v2.1.1...v3.0.0-beta.0
Website v2, Configure Sentry API, Other Minor Enhancements
What's Changed
- Change tutorial video from OneDrive to Youtube by @LimesKey in #312
- Update style.css by @a5a7 in #316
- New web UI by @Verisimilitude11 in #317
- Refactor Junit test classes and methods to be package-private by @Ravina-Deogadkar in #319
- Add copyright headers and modify to 2023 by @Verisimilitude11 in #333
New Contributors
What's Next?
The project may seem to have been relatively quiet for the past couple of weeks, but in reality, the team has been hard at work revamping the project and recruiting new contributors. Stay tuned for more updates as we continue to incorporate machine learning into DNAnalyzer. Expect the next release to be a big one!
Downloading
To download the source files, expand the "Assets" section below and choose either the zip or tar.gz file, depending on your operating system. Once downloaded, you can run the program using the command line interface (CLI) commands explained in the README or via the new GUI.
Video tutorial on installation and usage: https://youtu.be/dOwkInn6eDw
As always, thanks everyone for your contributions! I'll see you all in the next release. 👋
Full Changelog: v2.1.0...v2.1.1
Introducing An All-New GUI & Website
GUI
Thanks, @frankschmitt for implementing a cross-platform GUI application for DNAnalyzer. Currently, it supports the following features:
- Set the name of the DNA file to analyze
- Set minimum and maximum number of reading frames
- Run analysis
The Met CLI continues to be the best way to run the program, with more features to be added to both in the future.
Website
Thanks, @krishnabiradar310802 for developing a website that creates awareness for DNAnalyzer and outlines the main features. It is accessible via https://www.dnanalyzer.live/ and is hosted on GitHub Pages. We are currently working on linking the backend to the frontend with the help of @aryanagrawal8808. @zackwebster and @BLUE-DEVIL1134 who are working on improving the frontend code.
As always, thanks, everyone for your contributions! I'll see you all in the next release.
What's Changed
- Fixed bugs in README by @Verisimilitude11 in #201
- Format code with autopep8 and google-java-format by @deepsource-autofix in #200
- Webpage by @krishnabiradar310802 in #202
- Updated padding by @krishnabiradar310802 in #203
- Refactor CodonDataConstants by @Kit-p in #194
- Revert "Refactor CodonDataConstants" by @Verisimilitude11 in #209
- Refactor CmdArgs.run() by @ishche in #196
- Format code with autopep8 and google-java-format by @deepsource-autofix in #211
- Organize code into folders by @plopez26DPU in #214
- Add Wiki markdown by @plopez26DPU in #217
- Refactor CmdArgs by @singloon in #198
- Refactor Properties.isRandomDNA(String) - Issue #73 by @B4CKF1SH in #97
- Fix deploy GitHub page workflow by @Kit-p in #227
- Changing wording, Gradle may not work with JDK 19. by @LimesKey in #235
- Update CodonFrame.java by @sourabhkashyap95 in #213
- refactor: protein finder by @boaglio in #216
- Format code with autopep8 and google-java-format by @deepsource-autofix in #221
- Refactor CodonDataConstants by @LoicB in #233
- Refactor output codons by @plopez26DPU in #234
- Format code with autopep8 and google-java-format by @deepsource-autofix in #238
- About us page by @krishnabiradar310802 in #241
- New CLI documentation by @plopez26DPU in #244
- Added some new future improvements to the read.md by @LimesKey in #257
- Update .deepsource.toml by @deepsource-autofix in #259
- fixed typo in link by @LimesKey in #264
- Added Dependabot Configuration by @jenistenxavier in #263
- Refactored the methods relating to printing neucleotide count by @zaino97 in #253
- Use const declarations for variables that are never reassigned by @LimesKey in #267
- Count base pairs update by @garyglatfelter in #260
- Refactorings of getAminoAcidMapping by @Speedro in #243
- [ImgBot] Optimize images by @imgbot in #254
- Fix For Broken CodeQL Java Analysis by @Speedro in #272
- Update .deepsource.toml by @deepsource-autofix in #279
- Adding information about DNA to README by @LimesKey in #282
- Add .DS_Store to .gitignore by @ImpossibleReality in #288
- 'toggle' is never reassigned. Use 'const' instead by @LimesKey in #281
- Condensed code in countBasePairs as to resolve #274 by @garyglatfelter in #285
- Issue 252 publish gradle package by @jaybob007 in #290
- #270 Added highCoverageRegions call to CmdArgs by @jaybob007 in #284
- Refactorings of DNAAnalysis.countBasePairs(String) by @Speedro in #278
- Undocumented declaration found by @LimesKey in #292
- Refactoring #276 by @salahhalkhoums in #287
- Feature/add javafx gui #121 by @frankschmitt in #286
- Code refactoring by @ArchontisKostis in #219
- Refactor ProteinFinder.getProtein method by @Ravina-Deogadkar in #294
- Updating correct wording for feature by @LimesKey in #304
New Contributors
- @krishnabiradar310802 made their first contribution in #202
- @ishche made their first contribution in #196
- @plopez26DPU made their first contribution in #214
- @singloon made their first contribution in #198
- @LimesKey made their first contribution in #235
- @sourabhkashyap95 made their first contribution in #213
- @boaglio made their first contribution in #216
- @LoicB made their first contribution in #233
- @jenistenxavier made their first contribution in #263
- @zaino97 made their first contribution in #253
- @garyglatfelter made their first contribution in #260
- @ImpossibleReality made their first contribution in #288
- @jaybob007 made their first contribution in #290
- @salahhalkhoums made their first contribution in #287
- @ArchontisKostis made their first contribution in #219
- @Ravina-Deogadkar made their first contribution in #294
Full Changelog: v2.0.0...v2.1.0
Introducing a CLI and Gradle Support
What's Changed
- Use user input filename for analysis by @Kit-p in #85
- Format code with autopep8 and google-java-format by @deepsource-autofix in #86
- Test DNA From GDV by @Verisimilitude11 in #87
- Create codeql-analysis.yml by @Verisimilitude11 in #88
- Format code with autopep8 and google-java-format by @deepsource-autofix in #89
- added Contributing_Guidelines.md file by @sumitbishti in #92
- Update ProteinFinder.java by @aakash232 in #93
- resolves #90: added and update java docs by @iamHrithikRaj in #100
- Refactor for Utility classes - Issue #84 by @B4CKF1SH in #98
- resolves #80: Refactor CoreExecutor.createProteinList(String,String) by @iamHrithikRaj in #101
- Fixed formatting inconsistencies by @Verisimilitude11 in #102
- Refactor CodonData class #69 by @shubhwip in #94
- Revert "Refactor CodonData class #69" by @Verisimilitude11 in #110
- Separate constants from static functions by @shubhwip in #109
- Refactor ProteinFinder.getProtein with many args by @shubhwip in #99
- Refactor ReadingFrames constructor by @shubhwip in #111
- added min and max count User input at beginning of program. by @Lumary2 in #113
- Format code with autopep8 and google-java-format by @deepsource-autofix in #114
- Get ReadingFrame from user input by @klurpicolo in #115
- #74 refactoring of Properties.countNucleotides method by @Speedro in #116
- Refactor getAminoAcid method with reduced branches by @androlover98 in #118
- Fixed broken link for DNA Generator by @Verisimilitude11 in #120
- Format code with autopep8 and google-java-format by @deepsource-autofix in #119
- Refactor getAminoAcid by @shubhwip in #112
- Format code with autopep8 and google-java-format by @deepsource-autofix in #124
- resolves #68 : updated README.md by @iamHrithikRaj in #127
- Closes #128 : handled infinite loop when file-path is incorrect by @iamHrithikRaj in #129
- Switch to picocli by @Nv7-GitHub in #123
- Move CoreExecutor code into CmdArgs by @Nv7-GitHub in #155
- Protein finding by @Nv7-GitHub in #158
- Format code with autopep8 and google-java-format by @deepsource-autofix in #159
- Reformatted by @Verisimilitude11 in #163
- Updates readme to include cli by @aminisonya in #162
- Fix #95: added code conventions by @sumitbishti in #161
- Configure Gradle build. Implements #117. by @frankschmitt in #125
- Make compile work + picocli as external dependency + fat jar by @Nv7-GitHub in #164
- Format code with autopep8 and google-java-format by @deepsource-autofix in #166
- Document the CmdArgs class, resolves #169 by @bufutda in #172
- Format code with autopep8 and google-java-format by @deepsource-autofix in #174
- Reverse option by @Nv7-GitHub in #167
- Format code with autopep8 and google-java-format by @deepsource-autofix in #177
- Adding Gradle instructions in Read Me by @Saket2 in #175
- removed instantiation of class with only static methods by @AbbasSalloum in #171
- Updated contributors in main readme.md by @sb-decoder in #180
- Added inline video, removed markdown by @zackrhodes86 in #192
- Format code with autopep8 and google-java-format by @deepsource-autofix in #179
New Contributors
- @Kit-p made their first contribution in #85
- @sumitbishti made their first contribution in #92
- @aakash232 made their first contribution in #93
- @iamHrithikRaj made their first contribution in #100
- @B4CKF1SH made their first contribution in #98
- @shubhwip made their first contribution in #94
- @Lumary2 made their first contribution in #113
- @klurpicolo made their first contribution in #115
- @Speedro made their first contribution in #116
- @androlover98 made their first contribution in #118
- @Nv7-GitHub made their first contribution in #123
- @aminisonya made their first contribution in #162
- @frankschmitt made their first contribution in #125
- @bufutda made their first contribution in #172
- @Saket2 made their first contribution in #175
- @AbbasSalloum made their first contribution in #171
- @sb-decoder made their first contribution in #180
- @zackrhodes86 made their first contribution in #192
Full Changelog: v1.2.2...v2.0.0
[MINOR] Introducing A Slightly Refined Algorithm
A major release is coming up soon, currently slated for a mid-October release. This is going to be the last stable release before the major update. Thorough testing was conducted on this refined algorithm to ensure its accuracy.
What's Changed
- Add .deepsource.toml by @deepsource-autofix in #39
- Update .deepsource.toml by @deepsource-autofix in #40
- Format code with prettier and google-java-format by @deepsource-autofix in #41
- Update .deepsource.toml by @deepsource-autofix in #52
- Update .deepsource.toml by @deepsource-autofix in #54
- Update .deepsource.toml by @deepsource-autofix in #53
- [ImgBot] Optimize images by @imgbot in #58
- Update .deepsource.toml by @deepsource-autofix in #55
- Format code with autopep8 and google-java-format by @deepsource-autofix in #57
- Format code with autopep8 and google-java-format by @deepsource-autofix in #56
- Format code with autopep8 and google-java-format by @deepsource-autofix in #64
- Format code with autopep8 and google-java-format by @deepsource-autofix in #62
- Format code with autopep8 and google-java-format by @deepsource-autofix in #63
- Format code with autopep8 and google-java-format by @deepsource-autofix in #66
New Contributors
- @deepsource-autofix made their first contribution in #39
Full Changelog: v1.2.1...v1.2.2
Introducing Major Performance Boost
What's Changed
- Speed up nucleotide count by @Nv7-GitHub in 97a1b4d
- Codon count by @Verisimilitude11 in #30
- Updated logo by @Verisimilitude11 in #25
- Random DNA generator script by @Nv7-GitHub in 1193dc0
- Timing code (and gitignore) by @Nv7-GitHub in bc86e34
- Merge by @Verisimilitude11 in #26
- Merge by @Verisimilitude11 in #27
- [ImgBot] Optimize images by @imgbot in #31
New Contributors
- @Nv7-GitHub made their first contribution in #26
- @imgbot made their first contribution in #31
Known Issues
- Gene(s) with the highest coverage doesn't work as expected in #11
How to download
- Download and extract
DNAnalyzer.jar
/DNAnalyzer.rar
/DNAnalyzer.zip
- Open the extracted folder through an IDE
- Make sure that you have JDK 11 or above
- Run
Main.java
which can be found under thefiles
folder
Full Changelog: v1.1.0...v1.2.0
Introducing Performance Tests
What's Changed
- Added time trackers by @Nv7-GitHub in #26
- Updated logo by @Verisimilitude11 in #25
Known Issues
- Gene(s) with the highest coverage doesn't work as expected in #11
How to download
- Download and extract
DNAnalyzer.jar
/DNAnalyzer.rar
/DNAnalyzer.zip
- Open the extracted folder through an IDE
- Make sure that you have JDK 11 or above
- Run
Main.java
which can be found under thefiles
folder
Full Changelog: v1.1.0...v1.1.5
Note: This release is for testing purposes only
Introducing Reduced External Dependencies
What's Changed
- Create dependabot.yml in #14
- Create codeql.yml in #15
- Create maven.yml in #16
- Delete ideas.txt in #20
- Removed all dependencies on the Duke Software Library as it wasn't fully compatible in #22
Known Issues
- #11
- FASTA file compatibility isn't fully tested in this build as it shifted to directly using a StringBuilder from a StorageResource.
How to download
- Download and extract
Algorithm-for-Analyzing-Genes-in-DNA.zip
- Open the extracted folder through an IDE
- Make sure that you have JDK 11 or above
- Run
entrypoint.java
which can be found under thefiles
folder
Full Changelog: v1.0.0...v1.1.0
Introducing FASTA File Compatibility
What's Changed
- Update README.md to add citations and more content by @Verisimilitude11 in #4
- Create CODE_OF_CONDUCT.md by @Verisimilitude11 in #5
- Create LICENSE by @Verisimilitude11 in #6
- Added issue templates by @Verisimilitude11 in #7
- StorageResource and FASTA file compatibility check by @Verisimilitude11 in #9
Improvements
This release introduces the capability to parse .fa (FASTA files). In bioinformatics, the FASTA format is a text-based format for representing either nucleotide sequences or amino acid (protein) sequences, in which nucleotides or amino acids are represented using single-letter codes. The format also allows for sequence names and comments to precede the sequences. The format originates from the FASTA software package, but has now become a near universal standard in the field of bioinformatics.
How to download
- Download and extract
files.jar
anddocs.zip
- Open the extracted folder through an IDE
- Make sure that you have JDK 11 or above
- Run
entrypoint.java
Full Changelog: v1.0.0-beta.0...v1.0.0