-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge dev to master and deprecate use of dedicated dev branch #170
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
increment `gradle.build` JAR-naming version and GUI window interface version in `src/objects/ToolDescriptions.java` to "v0.14-dev"
update JavaDocs for Coordinate_Manipulation tools (exclude GFF_Manipulation set for now) with the `@see` tags linking between tool script, cli, and window_interface classes. Also add descriptions to *CLI classes. Skip BEDtoGFF for now (add in later commit)
Replace usage of `util.FASTAUtilities.buildFASTAIndex` `htsjdk.samtools.reference.FastaSequenceIndexCreator.create()` which also involves stripping out the FASTAException across all tools using the FASTA Index (FAI). FilterforPIPseq, DNAShapefromBED, and FASTAExtract all automatically build an FAI if one isn't detected so their scripts, CLI, and Window/Output classes are all affected. The `buildFASTAIndex` method from `FASTAUtilities` was the only thing in the code base to use `FASTAException` and `LineReader` classes so those were removed as well. Also included JavaDoc comments for FASTAUtilities
missed adding full fragment flag to TagPileupCLI
fill in JavaDocs for util package
PileupParameters includes final constants that encode read type, read aspect, stand info, and smoothing info. Among the classes that use the PileupParameters class, updates were made to switch over to the use of these public constants.
remove unused import statements
This fixes #101 so that the RadioButtons that are instantiated are saved to the class attributes that are accessed by the Task calling the script. (problem was that they were saved to vars with scope local to method). Tested only for different behavior between params.
Move method for validating IUPAC characters for the SearchMotif script to the FASTAUtilities class as a static method and update it to run a regex-based check. Other minor changes: -unnecessary `counter` variable removed from the Window class and the progress bar updates were changed to use more concise statements. -script class updated to print only to the input stream (CLI class switches to pass System.err instead of null)
#91 contribution for the SearchMotif tool CLI - add new `-z` flag to output options - update default output to use `.gz` extension - update script call to include gzip output script - update input and output filestream object setup to dynamically handle if input is gzip compressed and gzip compress output if specified Output -update output window to add `.gz` extension as appropriate -update script call to include gzip output Window -add gzip output checkbox option -allow for `fa.gz` extension to be shown as options in the file selector -update script call to include gzip output
create a new class for shared methods to be used across script classes, starting with FASTAExtract's loadCoord method. This static method loads a BED file into an ArrayList of BEDCoord objects. Other minor changes: - CLI PrintStream object set to STDERR
#91 contribution for the FASTAExtract tool (no gzip support for genomic fasta yet) CLI - add new `-z` flag to output options - update default output to use `.gz` extension - update script call to include gzip output - strip extension restrictions on input/outputs script - update output filestream object setup to handle gzip compress output if specified Output -update output window to add `.gz` extension as appropriate -update script call to include gzip output Window -add gzip output checkbox option -allow for `bed.gz` extension to be shown as options in the file selector -update script call to include gzip output
Decorate cli, script, and window_interface package tools for the Sequence_Analysis group with `@see` tags included
#91 add Gzip support to the BED-to-GFF coordinate manipulation tool and decorate JavaDocs annotations
Create a Github Actions workflow that tests Gradle builds across different operating systems (OS) and Java versions (11 and 17 Temurin)
…not output directory
Decorate the classes and final constants with `@see` tags included. PileupParameters had variable and methods reshuffled a little.
#91 - decorate script, cli, and window classes with JavaDocs annotations - update script to detect gzip input and configure gzip writer by flag - update cli and window_interface calls to store gzip output option and allow for gzip input - strip cli extension restrictions on input and output
I suspect the first workflow failed because gradle needs to be upgraded. I will upgrade this after the file directory structure has been updated.
This non-functional change commit will trigger a rerun of github action testing on JavaCI with Java 17 test case removed on the dev workflow. If no workflows are triggered, may need to adjust workflow on this branch or change trigger conditions
Merge working-dev in preparation for file structure reorganization
#110 This commit includes changes that move Java source files without changing them. For clarity of commit history I will modify them in the next commit with package name updates. The project appears to still build a working JAR after moving the files without edits. Also removed straggling .DS_Store file
#110 Package names updated to fit convention ("scriptmanager.subpackage..."). Used the following sed commands to update package statements, import statements, and the "@see" tag in the JavaDoc comments. Gradle build file configurations updated main class name to include update to package prefix. Had to repeat these sed commands at various directory levels. ``` sed -i '' -e 's/^package /package scriptmanager./' **/*.java sed -i '' -e 's/^import main./import scriptmanager.main./' **/*.java sed -i '' -e 's/^import cli./import scriptmanager.cli./' **/*.java sed -i '' -e 's/^import charts./import scriptmanager.charts./' **/*.java sed -i '' -e 's/^import scripts./import scriptmanager.scripts./' **/*.java sed -i '' -e 's/^import util./import scriptmanager.util./' **/*.java sed -i '' -e 's/^import objects./import scriptmanager.objects./' **/*.java sed -i '' -e 's/^import window_interface./import scriptmanager.window_interface./' **/*.java sed -i '' -e 's/@see main./@see scriptmanager.main./' **/*.java sed -i '' -e 's/@see cli./@see scriptmanager.cli./' **/*.java sed -i '' -e 's/@see charts./@see scriptmanager.charts./' **/*.java sed -i '' -e 's/@see scripts./@see scriptmanager.scripts./' **/*.java sed -i '' -e 's/@see util./@see scriptmanager.util./' **/*.java sed -i '' -e 's/@see objects./@see scriptmanager.objects./' **/*.java sed -i '' -e 's/@see window_interface./@see scriptmanager.window_interface./' **/*.java ```
.classpath - update to be configure by gradle (instead of manually hardcode from lib) .project - update to use gradle builder when using Eclipse build.gradle - remove sourceSets explicit assignment -- allow defaults to take over now that source is restructured to match standard file organization - remove out-of-date 'findbugs' plugin statement and keep 'pmd' and 'checkstyle' commented for now (throw errors and warnings that are not breaking issues) - add Shadow plugin to handle JAR building for minimized storage footprint, faster compile time, and convenient syntax. - add explicit dependency declarations for ShadowJar command (need for Gradle 7.X to avoid warnings) - change dependency keyword from "compile" to "implementation" per 7.5 requirements - remove fatJar and jar task configuration (default jar called by shadowJar) #112 build.gradle - updated for compatibility with Gradle 7.5 (see specific list above) gradle-wrapper.properties - update distributionUrl to point to 7.5 zip gradle-wrapper.jar - update with 7.5 version gradlew - reinitialize with eclipse to get latest gradlew.bat - reinitialize with eclipse to get latest
#112 Add Java 17 back to the matrix test for github actions to test gradle upgrade.
Update TagPileup graphical interface according to new UI/UX specs. #115
#115 update file loader for Output Directory and Blacklist Filter to display a truncated file path (instead of just file name itself), so that just the last 30-50 characters are displayed. Full filepaths can always be displayed by hovering to get it in the tool tips. This involved creating a "getSubstringEnd" static method under the ExtensionFileFilter utility class. Bugfix: opening Output directory file selector and then "canceling" out to create a null reference that causes the script to throw an error when executing. This is fixed by adding handling for null output ("else" block added when updating "OUT_DRI").
Move singularity definition file into its own directory (for clarity and organization). Also give it a README for documenting usage.
#117 The original code has been modified to use updated JFree libraries and HTSJDK over net.sf.samtools. This includes a new description, Window, script, CLI, helper objects, and edits to main driver objects. These were mostly decorated with JavaDocs.
allow window components to track output filename and verbosity level (remove getters and setters too)
ScriptManagerGUI - add property change listener for AggregateData AggregateData - create final static constants for encoding aggregation types - throw Exceptions instead of setting "endMessage" variable - restructure PrintStream construction AggregateDataCLI - add getCLIcommand() with javadocs - add support for static constants encoding aggregation types AggregateDataOutput and Window - add logitem creation and update steps - add logging propertyChange listener - add final progress bar update to 100% - set OUT_DIR button will no longer set OUT_DIR to null if user clicks "Cancel" in FileSelector
Add skeleton code for GeneTrack, PeakPair, SignalDuplication, and Similarity matrix tools
- default filename construction for ConvertBED/GFFChrNames tools fixed to match flags - remove extra update log item code block in BAMMarkDupWindow - include final setProgress(100) for ExpandBED and SortBAM - make sure to initialize LogItem old_li to null for BEDtoGFFWindow (for consistency with other tools) - Change handling of null values from OUT_DIR file selector in TagPileup
Incorportate batch of logging support changes
#146 - also created alternative method signature with reduced parameters for CLI - also restructured output directory selection so that OUT_DIR would not be set to null if FileSelection window was cancelled
adjust for corepipeline
CLI call of pe-stats input parameters were out-of order, resulting in the input being used as output and vice versa
various script instantiation/execution have input/output files swapped. this commit fixes these bugs
- update TagPileup to throw ScriptManager OptionExceptions for invalid PileupParameter values instead of "This should not print" print statements - also throw OptionException during CLI validation of input options - add javadocs to `getCLIcommand()` method - handle (catch and throw) exceptions for window_interface classes
DNAShapefromBEDCLI and FASTA - rename composite and matrix flags - include matrix format specification - update outputBasename to File type (instead of String) - adjust `getCLIcommand()` according to above changes and use switch statement for matrix type encoding DNAShapefromBED and FASTA - add constructor without PrintStream list - move genome FAI check from constructor to `run()` (BED only) - update constructor to use outputMatrix and outputComposite instead of avgCDT - add constants encoding matrix output types (NO_MATRIX, CDT, TAB) - use constants and composite boolean to print to output and display printstreams DNAShapefromBEDOutput and FASTA - adjust to update with new method signature (add outputComposite and outputMatrix to replace avgCDT) - standardize output file construction for consitency with other tools DNAShapefromBEDWindow and FASTA - restructure window to organize subpanels for output options and shape options - turn "all" into a toggle button that affects specific shape type checkboxes - add OptionException handling
The exception thrown when input FASTA has N-containing sequences is not properly handled. This commit adds appropriate `throws` and `catch` statements
Add matrix output for DNAShape tools (#126 )
charts.Histogram - include new histogram type formatted for FRiX tool cli.Peak_Analysis.FRiXCalculatorCLI - write CLI with Javadoc and Picocli decorators, validation methods, and CLI command building methods based on TagPileup (with unused elements stripped) main.ScriptManagerGUI - add FRiX Score Calculator to Peak_Analysis tab objects.ToolDescriptions - add FRiX Calculator description scripts.Peak_Analysis.FRiXCalculator - write FRiXCalculator script based on TagPileup and leveraging PileupExtract helper script util.BAMUtilities - modify BAMUtilities helper script for getting StandardizationRatio such that TagPileup behavior is unchanged but separates out statistics needed by FRiXCalculator window_interface.Peak_Analysis.FRiXCalculatorOutput/Window - build GUI interface for user selection of options and to display output
New Tool: FRiX Calculator and restructure main GUI
logging missed including gzOutput option
#169 - adjust peak-overlap check logic to cover edge case of peak fully covering ref interval. New logic should reduce operations and may result in a minor improvement on performance. - Rewrite peak overlap check logic to use BEDCoord object for readability (instead of using string arrays). - add javadoc to private printPS method (in case we want to switch to static object calls - add comments
- New option to output separate CDT files for strand-same and strand-opposite (sense/anti) - ALSO: changed peak align behavior to use exclusive stop interval notation except for when START=STOP where behavior is to mark just the start nucleotide - changed class to execute statically (we want to use static script calls for straightforward scripts like this). Cosmetic changes: - reorganized script window to nest options into their own JPanel (for convenient code recycling - also readjusted window to stretch the peak scroll bar when window is resized
rename tool to be more precise
add javadocs in standard format with other tools (see dev branch) clean up trailing whitespace
SortByRefCLI - strip out filename extension restrictions - change validation to allow for positive and negative up/downstream bounds and add relational check - clarify up/downstream bounds flag documenation language - rename default filename to have "DistSort" suffix - reorganize method signature to put printstream object last SortByRef - redo implementation to use two large maps instead of parallel sort index array - redo validation logic for identifying closer peak - store search range restriction values such that null indicates no restriction - remove negative/positive-based validation of upstream/downstream restrictions - reorganize method signature to put printstream object last SortByRefOutput - rewrite output filepath construction to use ExtensionFileFilter - add missing stop timestamp on log item - rename default filename to have "DistSort" suffix - reorganize method signature to put printstream object last - comment and clean whitespace SortByRefWindow - restructure option parsing and validation (Task class) - change validation to allow for positive and negative up/downstream bounds and add relational check - make greater use of Exception-based error pop ups - rename execution language to "Sort" rather than "Align" based - reduce scope of variables that don't need large scope (e.g. moved UPSTREAM from class attribute to initialize within Task.doInBackground()) - reorganize options into subpanel - reformat components to leverage "enabled" features for formatting, etc. - separate up and downstream search restrictions - comment and clean whitespace
added Sort By Distance tool
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Separating the dev branch from the master branch creates more maintenance challenges so we are going back to organizing the project with the latest changes on master (plan to rename main soon)